article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
nav,
section {
  display: block;
}
audio,
canvas,
video {
  display: inline-block;
  *display: inline;
  *zoom: 1;
}
audio:not([controls]) {
  display: none;
}
html {
  font-size: 100%;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
}
a:focus {
  outline: thin dotted #333;
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
a:hover,
a:active {
  outline: 0;
}
sub,
sup {
  position: relative;
  font-size: 75%;
  line-height: 0;
  vertical-align: baseline;
}
sup {
  top: -0.5em;
}
sub {
  bottom: -0.25em;
}
img {
  max-width: 100%;
  vertical-align: middle;
  border: 0;
  -ms-interpolation-mode: bicubic;
}
#map_canvas img {
  max-width: none;
}
button,
input,
select,
textarea {
  margin: 0;
  font-size: 100%;
  vertical-align: middle;
}
button,
input {
  *overflow: visible;
  line-height: normal;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
  padding: 0;
  border: 0;
}
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
  cursor: pointer;
  -webkit-appearance: button;
}
input[type="search"] {
  -webkit-box-sizing: content-box;
  -moz-box-sizing: content-box;
  box-sizing: content-box;
  -webkit-appearance: textfield;
}
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button {
  -webkit-appearance: none;
}
textarea {
  overflow: auto;
  vertical-align: top;
}
/**
 * @group Color
 * @label Base Color (used for navbar, widget titles, etc.)
 * @type color
 * @default_value #2275bb
 */
/**
 * @group Color
 * @label Header/Footer Color
 * @type color
 * @default_value #222
 */
/**
 * @group Color
 * @label Pre-Footer Color
 * @type color
 * @default_value #ddd
 */
/**
 * @group Color
 * @label Color of links
 * @type color
 * @default_value #2275bb
 */
/**
 * @group Color
 * @label Hover color of links
 * @type color
 * @default_value #2275bb
 */
/**
 * @group Color
 * @label Background color of post meta boxes (author bio, related posts, etc.)
 * @type color
 * @default_value #fff
 */
/**
 * @group Basics
 * @label Body Background Color
 * @type color
 * @default_value #fff
 */
/**
 * @group Basics
 * @label Page Background Color
 * @type color
 * @default_value #fff
 */
/**
 * @group Basics
 * @label Text Color
 * @type color
 * @default_value #333
 */
/**
 * @group Basics
 * @label Default Vertical Spacing
 * @type pixels
 * @default_value 24px
 */
/**
 * @group Typography
 * @label Sans Font Family
 * @type text
 * @default_value "Helvetica Neue", Helvetica, Arial, sans-serif
 */
/**
 * @group Typography
 * @label Serif Font Family
 * @type text
 */
/**
 * @group Typography
 * @label Base Font Size
 * @type pixels
 */
/**
 * @group Typography
 * @label Sans Font Family
 * @type dropdown
 * @options @serifFontFamily|@sansFontFamily
 * @default_value @serifFontFamily
 */
/**
 * @group Typography
 * @label Base Line Height
 * @type text
 * @default_value 1.5
 */
.clearfix {
  *zoom: 1;
}
.clearfix:before,
.clearfix:after {
  display: table;
  content: "";
}
.clearfix:after {
  clear: both;
}
.visuallyhidden {
  border: 0;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}
.hide-text {
  font: 0/0 a;
  color: transparent;
  text-shadow: none;
  background-color: transparent;
  border: 0;
}
.input-block-level {
  display: block;
  width: 100%;
  min-height: 28px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}
body {
  margin: 0;
  font-family: Georgia, "Times New Roman", Times, serif;
  font-size: 16px;
  font-weight: normal;
  line-height: 1.5;
  color: #484848;
  background-color: #ffffff;
}
#page {
  background-color: #ffffff;
  padding: 0 20px;
}
a {
  color: #2275bb;
  text-decoration: none;
}
a:hover {
  color: #368fda;
  text-decoration: underline;
}
a.more-link {
  white-space: nowrap;
}
p,
dl,
hr,
h1,
h2,
h3,
h4,
h5,
h6,
ol,
ul,
pre,
table,
figure,
address,
fieldset {
  margin: 0 0 24px;
}
h1 {
  font-size: 54px;
}
h1.entry-title {
  font-size: 44px;
  margin-bottom: 12px;
  line-height: 1;
}
h2 {
  font-size: 44px;
}
h3 {
  font-size: 36px;
}
h4,
.entry-content h1,
.entry-content h2,
.entry-content h3 {
  font-size: 29.328px;
}
h5,
.stories h3,
.entry-content h4 {
  font-size: 24px;
}
h5.top-tag,
.widget h5.top-tag,
.entry-content h5.top-tag {
  font-size: 16px;
  margin-bottom: 4.8px;
  text-transform: uppercase;
  color: #aaaaaa;
}
h5.top-tag a,
.widget h5.top-tag a,
.entry-content h5.top-tag a {
  color: #aaaaaa;
}
h6,
.entry-content h5 {
  font-size: 19.552px;
}
.entry-content h6 {
  font-size: 16px;
  text-transform: uppercase;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: bold;
  color: inherit;
  line-height: 1.3;
  text-rendering: optimizelegibility;
}
h1 small,
h2 small,
h3 small,
h4 small,
h5 small,
h6 small {
  font-size: 0.815em;
}
.entry-content h2,
.entry-content h3,
.entry-content h4,
.entry-content h5,
.entry-content h6 {
  margin-bottom: 24px;
}
p {
  font-size: 19.552px;
  line-height: 1.5;
  margin: 0 0 24px;
}
p small,
p.small {
  font-size: 13.04px;
  color: #aaaaaa;
}
p.xsmall {
  font-size: 10.672px;
  color: #aaaaaa;
}
p.intro {
  font-size: 24px;
  color: #7d8185;
  font-style: italic;
}
p.has-drop-cap:not(:focus):first-letter {
  font-size: 7.2em;
}
ul,
ol {
  padding: 0;
  margin: 0 0 24px 25px;
}
ul.aligncenter,
ol.aligncenter {
  padding-left: 25px;
}
.entry-content ul,
.entry-content ol {
  font-size: 19.552px;
}
ul ul,
ul ol,
ol ol,
ol ul {
  margin-top: 8px;
  margin-bottom: 0;
}
ul {
  list-style: disc;
}
ol {
  list-style: decimal;
}
ol ol {
  list-style: lower-alpha;
}
ol ol ol {
  list-style: lower-roman;
}
li {
  margin-bottom: 12px;
}
ul.unstyled,
ol.unstyled {
  margin-left: 0;
  list-style: none;
}
dl dt {
  font-weight: bold;
}
dd {
  margin-left: 5px;
}
strong,
dfn {
  font-weight: bold;
}
em,
dfn {
  font-style: italic;
}
abbr,
acronym {
  border-bottom: 1px dotted #aaaaaa;
}
address {
  margin: 0 0 24px;
  font-style: italic;
}
strike,
s,
del {
  color: #7d8185;
}
blockquote {
  box-sizing: border-box;
  clear: both;
  padding: 5px 20px 5px 20px;
  margin: 24px;
  border-left: 5px solid #dddddd;
}
.alignleft blockquote {
  border-right: 5px solid #dddddd;
  border-left: none;
  margin-left: 0;
}
.alignright blockquote {
  margin-right: 0;
}
.aligncenter blockquote {
  border: none;
}
blockquote p {
  font-size: 16px;
  margin: 12px 0;
  line-height: 1.5;
}
blockquote small {
  display: block;
  line-height: 24px;
  color: #aaaaaa;
}
blockquote small:before {
  content: '\2014 \00A0';
}
blockquote.pull-right {
  float: right;
  padding-left: 0;
  border-right: 5px solid #dddddd;
  border-left: 0;
}
blockquote.pull-right p,
blockquote.pull-right small {
  text-align: right;
}
code,
pre {
  padding: 0 3px 2px;
  font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
  font-size: 14px;
  color: #484848;
}
code {
  padding: 2px 4px;
  color: #d14;
  background-color: #f7f7f9;
  border: 1px solid #e1e1e8;
}
pre {
  display: block;
  padding: 12px;
  margin: 0 0 24px;
  font-size: 14.8px;
  line-height: 24px;
  word-break: break-all;
  word-wrap: break-word;
  white-space: pre;
  white-space: pre-wrap;
  background-color: #f5f5f5;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.15);
}
pre.prettyprint {
  margin-bottom: 24px;
}
pre code {
  padding: 0;
  color: inherit;
  background-color: transparent;
  border: 0;
}
.pre-scrollable {
  max-height: 340px;
  overflow-y: scroll;
}
hr {
  margin: 24px 0;
  border: 0;
  border-top: 1px solid #dddddd;
  border-bottom: 1px solid #ffffff;
}
.is-video img {
  opacity: 0.5;
  position: relative;
  background: none;
  width: 100%;
}
.is-video {
  background-color: black;
  background-image: url("../img/is-video-play-icon.svg");
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: 20%;
}
ul.wp-block-gallery {
  list-style: none;
}
fieldset {
  padding: 0;
  margin: 0;
  border: 0;
}
legend {
  display: block;
  width: 100%;
  padding: 0;
  margin-bottom: 2.25;
  font-size: 24px;
  line-height: 3;
  color: #484848;
  border: 0;
  border-bottom: 1px solid #e5e5e5;
}
legend small {
  font-size: 1.125;
  color: #aaaaaa;
}
label,
input,
button,
select,
textarea {
  font-size: 16px;
  font-weight: normal;
  line-height: 1.5;
}
input,
button,
select,
textarea {
  font-family: Georgia, "Times New Roman", Times, serif;
}
label {
  display: block;
  margin-bottom: 5px;
}
select,
textarea,
input[type="text"],
input[type="password"],
input[type="datetime"],
input[type="datetime-local"],
input[type="date"],
input[type="month"],
input[type="time"],
input[type="week"],
input[type="number"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="tel"],
input[type="color"],
.uneditable-input {
  display: inline-block;
  height: 1.5;
  padding: 4px;
  margin-bottom: 9px;
  font-size: 16px;
  line-height: 1.5;
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border-radius: 0;
  color: #7d8185;
}
input,
textarea {
  width: 210px;
}
textarea {
  height: auto;
}
textarea,
input[type="text"],
input[type="password"],
input[type="datetime"],
input[type="datetime-local"],
input[type="date"],
input[type="month"],
input[type="time"],
input[type="week"],
input[type="number"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="tel"],
input[type="color"],
.uneditable-input {
  background-color: #ffffff;
  border: 1px solid #cccccc;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;
  -moz-transition: border linear 0.2s, box-shadow linear 0.2s;
  -ms-transition: border linear 0.2s, box-shadow linear 0.2s;
  -o-transition: border linear 0.2s, box-shadow linear 0.2s;
  transition: border linear 0.2s, box-shadow linear 0.2s;
}
textarea:focus,
input[type="text"]:focus,
input[type="password"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="time"]:focus,
input[type="week"]:focus,
input[type="number"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="search"]:focus,
input[type="tel"]:focus,
input[type="color"]:focus,
.uneditable-input:focus {
  border-color: rgba(82, 168, 236, 0.8);
  outline: 0;
  outline: thin dotted \9;
  /* IE6-9 */
  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
  -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
}
input[type="radio"],
input[type="checkbox"] {
  margin: 3px 0;
  *margin-top: 0;
  /* IE7 */
  line-height: normal;
  cursor: pointer;
}
input[type="submit"],
input[type="reset"],
input[type="button"],
input[type="radio"],
input[type="checkbox"] {
  width: auto;
}
.uneditable-textarea {
  width: auto;
  height: auto;
}
select,
input[type="file"] {
  height: 28px;
  /* In IE7, the height of the select element cannot be changed by height, only font-size */
  *margin-top: 4px;
  /* For IE7, add top margin to align select with labels */
  line-height: 28px;
}
select {
  width: 220px;
  border: 1px solid #bbb;
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border-radius: 0;
}
select[multiple],
select[size] {
  height: auto;
}
select:focus,
input[type="file"]:focus,
input[type="radio"]:focus,
input[type="checkbox"]:focus {
  outline: thin dotted #333;
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
.radio,
.checkbox {
  min-height: 18px;
  padding-left: 18px;
}
.radio input[type="radio"],
.checkbox input[type="checkbox"] {
  float: left;
  margin-left: -18px;
}
.controls > .radio:first-child,
.controls > .checkbox:first-child {
  padding-top: 5px;
}
.radio.inline,
.checkbox.inline {
  display: inline-block;
  padding-top: 5px;
  margin-bottom: 0;
  vertical-align: middle;
}
.radio.inline + .radio.inline,
.checkbox.inline + .checkbox.inline {
  margin-left: 10px;
}
.input-mini {
  width: 60px;
}
.input-small {
  width: 90px;
}
.input-medium {
  width: 150px;
}
.input-large {
  width: 210px;
}
.input-xlarge {
  width: 270px;
}
.input-xxlarge {
  width: 530px;
}
input.span1,
select.span1,
textarea.span1,
.uneditable-input.span1,
.row-fluid input.span1,
.row-fluid select.span1,
.row-fluid textarea.span1,
.row-fluid .uneditable-input.span1,
input.span2,
select.span2,
textarea.span2,
.uneditable-input.span2,
.row-fluid input.span2,
.row-fluid select.span2,
.row-fluid textarea.span2,
.row-fluid .uneditable-input.span2,
input.span3,
select.span3,
textarea.span3,
.uneditable-input.span3,
.row-fluid input.span3,
.row-fluid select.span3,
.row-fluid textarea.span3,
.row-fluid .uneditable-input.span3,
input.span4,
select.span4,
textarea.span4,
.uneditable-input.span4,
.row-fluid input.span4,
.row-fluid select.span4,
.row-fluid textarea.span4,
.row-fluid .uneditable-input.span4,
input.span5,
select.span5,
textarea.span5,
.uneditable-input.span5,
.row-fluid input.span5,
.row-fluid select.span5,
.row-fluid textarea.span5,
.row-fluid .uneditable-input.span5,
input.span6,
select.span6,
textarea.span6,
.uneditable-input.span6,
.row-fluid input.span6,
.row-fluid select.span6,
.row-fluid textarea.span6,
.row-fluid .uneditable-input.span6,
input.span7,
select.span7,
textarea.span7,
.uneditable-input.span7,
.row-fluid input.span7,
.row-fluid select.span7,
.row-fluid textarea.span7,
.row-fluid .uneditable-input.span7,
input.span8,
select.span8,
textarea.span8,
.uneditable-input.span8,
.row-fluid input.span8,
.row-fluid select.span8,
.row-fluid textarea.span8,
.row-fluid .uneditable-input.span8,
input.span9,
select.span9,
textarea.span9,
.uneditable-input.span9,
.row-fluid input.span9,
.row-fluid select.span9,
.row-fluid textarea.span9,
.row-fluid .uneditable-input.span9,
input.span10,
select.span10,
textarea.span10,
.uneditable-input.span10,
.row-fluid input.span10,
.row-fluid select.span10,
.row-fluid textarea.span10,
.row-fluid .uneditable-input.span10,
input.span11,
select.span11,
textarea.span11,
.uneditable-input.span11,
.row-fluid input.span11,
.row-fluid select.span11,
.row-fluid textarea.span11,
.row-fluid .uneditable-input.span11,
input.span12,
select.span12,
textarea.span12,
.uneditable-input.span12,
.row-fluid input.span12,
.row-fluid select.span12,
.row-fluid textarea.span12,
.row-fluid .uneditable-input.span12 {
  float: none;
  margin-left: 0;
}
.input-append input.span1,
.input-append .uneditable-input.span1,
.input-prepend input.span1,
.input-prepend .uneditable-input.span1,
.input-append input.span2,
.input-append .uneditable-input.span2,
.input-prepend input.span2,
.input-prepend .uneditable-input.span2,
.input-append input.span3,
.input-append .uneditable-input.span3,
.input-prepend input.span3,
.input-prepend .uneditable-input.span3,
.input-append input.span4,
.input-append .uneditable-input.span4,
.input-prepend input.span4,
.input-prepend .uneditable-input.span4,
.input-append input.span5,
.input-append .uneditable-input.span5,
.input-prepend input.span5,
.input-prepend .uneditable-input.span5,
.input-append input.span6,
.input-append .uneditable-input.span6,
.input-prepend input.span6,
.input-prepend .uneditable-input.span6,
.input-append input.span7,
.input-append .uneditable-input.span7,
.input-prepend input.span7,
.input-prepend .uneditable-input.span7,
.input-append input.span8,
.input-append .uneditable-input.span8,
.input-prepend input.span8,
.input-prepend .uneditable-input.span8,
.input-append input.span9,
.input-append .uneditable-input.span9,
.input-prepend input.span9,
.input-prepend .uneditable-input.span9,
.input-append input.span10,
.input-append .uneditable-input.span10,
.input-prepend input.span10,
.input-prepend .uneditable-input.span10,
.input-append input.span11,
.input-append .uneditable-input.span11,
.input-prepend input.span11,
.input-prepend .uneditable-input.span11,
.input-append input.span12,
.input-append .uneditable-input.span12,
.input-prepend input.span12,
.input-prepend .uneditable-input.span12 {
  display: inline-block;
}
.row-fluid .input-prepend .span1,
.row-fluid .input-append .span1,
.row-fluid .input-prepend .span2,
.row-fluid .input-append .span2,
.row-fluid .input-prepend .span3,
.row-fluid .input-append .span3,
.row-fluid .input-prepend .span4,
.row-fluid .input-append .span4,
.row-fluid .input-prepend .span5,
.row-fluid .input-append .span5,
.row-fluid .input-prepend .span6,
.row-fluid .input-append .span6,
.row-fluid .input-prepend .span7,
.row-fluid .input-append .span7,
.row-fluid .input-prepend .span8,
.row-fluid .input-append .span8,
.row-fluid .input-prepend .span9,
.row-fluid .input-append .span9,
.row-fluid .input-prepend .span10,
.row-fluid .input-append .span10,
.row-fluid .input-prepend .span11,
.row-fluid .input-append .span11,
.row-fluid .input-prepend .span12,
.row-fluid .input-append .span12 {
  display: inline-block;
}
input,
textarea,
.uneditable-input {
  margin-left: 0;
}
input.span12,
textarea.span12,
.uneditable-input.span12 {
  width: 89.99999999%;
}
input.span11,
textarea.span11,
.uneditable-input.span11 {
  width: 81.48936169%;
}
input.span10,
textarea.span10,
.uneditable-input.span10 {
  width: 72.9787234%;
}
input.span9,
textarea.span9,
.uneditable-input.span9 {
  width: 64.4680851%;
}
input.span8,
textarea.span8,
.uneditable-input.span8 {
  width: 55.9574468%;
}
input.span7,
textarea.span7,
.uneditable-input.span7 {
  width: 47.4468085%;
}
input.span6,
textarea.span6,
.uneditable-input.span6 {
  width: 38.93617021%;
}
input.span5,
textarea.span5,
.uneditable-input.span5 {
  width: 30.42553191%;
}
input.span4,
textarea.span4,
.uneditable-input.span4 {
  width: 21.91489361%;
}
input.span3,
textarea.span3,
.uneditable-input.span3 {
  width: 13.40425532%;
}
input.span2,
textarea.span2,
.uneditable-input.span2 {
  width: 4.89361702%;
}
input.span1,
textarea.span1,
.uneditable-input.span1 {
  width: -3.61702128%;
}
input[disabled],
select[disabled],
textarea[disabled],
input[readonly],
select[readonly],
textarea[readonly] {
  cursor: not-allowed;
  background-color: #dddddd;
  border-color: #ddd;
}
input[type="radio"][disabled],
input[type="checkbox"][disabled],
input[type="radio"][readonly],
input[type="checkbox"][readonly] {
  background-color: transparent;
}
.control-group.warning > label,
.control-group.warning .help-block,
.control-group.warning .help-inline {
  color: #c09853;
}
.control-group.warning .checkbox,
.control-group.warning .radio,
.control-group.warning input,
.control-group.warning select,
.control-group.warning textarea {
  color: #c09853;
  border-color: #c09853;
}
.control-group.warning .checkbox:focus,
.control-group.warning .radio:focus,
.control-group.warning input:focus,
.control-group.warning select:focus,
.control-group.warning textarea:focus {
  border-color: #a47e3c;
  -webkit-box-shadow: 0 0 6px #dbc59e;
  -moz-box-shadow: 0 0 6px #dbc59e;
  box-shadow: 0 0 6px #dbc59e;
}
.control-group.warning .input-prepend .add-on,
.control-group.warning .input-append .add-on {
  color: #c09853;
  background-color: #fcf8e3;
  border-color: #c09853;
}
.control-group.error > label,
.control-group.error .help-block,
.control-group.error .help-inline {
  color: #b94a48;
}
.control-group.error .checkbox,
.control-group.error .radio,
.control-group.error input,
.control-group.error select,
.control-group.error textarea {
  color: #b94a48;
  border-color: #b94a48;
}
.control-group.error .checkbox:focus,
.control-group.error .radio:focus,
.control-group.error input:focus,
.control-group.error select:focus,
.control-group.error textarea:focus {
  border-color: #953b39;
  -webkit-box-shadow: 0 0 6px #d59392;
  -moz-box-shadow: 0 0 6px #d59392;
  box-shadow: 0 0 6px #d59392;
}
.control-group.error .input-prepend .add-on,
.control-group.error .input-append .add-on {
  color: #b94a48;
  background-color: #f2dede;
  border-color: #b94a48;
}
.control-group.success > label,
.control-group.success .help-block,
.control-group.success .help-inline {
  color: #468847;
}
.control-group.success .checkbox,
.control-group.success .radio,
.control-group.success input,
.control-group.success select,
.control-group.success textarea {
  color: #468847;
  border-color: #468847;
}
.control-group.success .checkbox:focus,
.control-group.success .radio:focus,
.control-group.success input:focus,
.control-group.success select:focus,
.control-group.success textarea:focus {
  border-color: #356635;
  -webkit-box-shadow: 0 0 6px #7aba7b;
  -moz-box-shadow: 0 0 6px #7aba7b;
  box-shadow: 0 0 6px #7aba7b;
}
.control-group.success .input-prepend .add-on,
.control-group.success .input-append .add-on {
  color: #468847;
  background-color: #dff0d8;
  border-color: #468847;
}
input:focus:required:invalid,
textarea:focus:required:invalid,
select:focus:required:invalid {
  color: #b94a48;
  border-color: #ee5f5b;
}
input:focus:required:invalid:focus,
textarea:focus:required:invalid:focus,
select:focus:required:invalid:focus {
  border-color: #e9322d;
  -webkit-box-shadow: 0 0 6px #f8b9b7;
  -moz-box-shadow: 0 0 6px #f8b9b7;
  box-shadow: 0 0 6px #f8b9b7;
}
.form-actions {
  padding: 0.5 20px 1.5;
  margin-top: 1.5;
  margin-bottom: 1.5;
  background-color: #f5f5f5;
  border-top: 1px solid #e5e5e5;
  *zoom: 1;
}
.form-actions:before,
.form-actions:after {
  display: table;
  content: "";
}
.form-actions:after {
  clear: both;
}
.uneditable-input {
  overflow: hidden;
  white-space: nowrap;
  cursor: not-allowed;
  background-color: #ffffff;
  border-color: #eee;
  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
}
:-moz-placeholder {
  color: #aaaaaa;
}
:-ms-input-placeholder {
  color: #aaaaaa;
}
::-webkit-input-placeholder {
  color: #aaaaaa;
}
.help-block,
.help-inline {
  color: #7d8185;
}
.help-block {
  display: block;
  margin-bottom: 0.75;
}
.help-inline {
  display: inline-block;
  *display: inline;
  /* IE7 inline-block hack */
  *zoom: 1;
  vertical-align: middle;
  padding-left: 5px;
}
.input-prepend,
.input-append {
  margin-bottom: 5px;
}
.input-prepend input,
.input-append input,
.input-prepend select,
.input-append select,
.input-prepend .uneditable-input,
.input-append .uneditable-input {
  position: relative;
  margin-bottom: 0;
  *margin-left: 0;
  vertical-align: middle;
}
.input-prepend input:focus,
.input-append input:focus,
.input-prepend select:focus,
.input-append select:focus,
.input-prepend .uneditable-input:focus,
.input-append .uneditable-input:focus {
  z-index: 2;
}
.input-prepend .uneditable-input,
.input-append .uneditable-input {
  border-left-color: #ccc;
}
.input-prepend .add-on,
.input-append .add-on {
  display: inline-block;
  width: auto;
  height: 1.5;
  min-width: 16px;
  padding: 4px 5px;
  font-weight: normal;
  line-height: 1.5;
  text-align: center;
  text-shadow: 0 1px 0 #ffffff;
  vertical-align: middle;
  background-color: #dddddd;
  border: 1px solid #ccc;
}
.input-prepend .add-on,
.input-append .add-on,
.input-prepend .btn,
.input-append .btn {
  margin-left: -1px;
}
.input-prepend .active,
.input-append .active {
  background-color: #a9dba9;
  border-color: #46a546;
}
.input-prepend .add-on,
.input-prepend .btn {
  margin-right: -1px;
}
.input-append .uneditable-input {
  border-right-color: #ccc;
  border-left-color: #eee;
}
.form-search input,
.form-inline input,
.form-horizontal input,
.form-search textarea,
.form-inline textarea,
.form-horizontal textarea,
.form-search select,
.form-inline select,
.form-horizontal select,
.form-search .help-inline,
.form-inline .help-inline,
.form-horizontal .help-inline,
.form-search .uneditable-input,
.form-inline .uneditable-input,
.form-horizontal .uneditable-input,
.form-search .input-prepend,
.form-inline .input-prepend,
.form-horizontal .input-prepend,
.form-search .input-append,
.form-inline .input-append,
.form-horizontal .input-append {
  display: inline-block;
  *display: inline;
  /* IE7 inline-block hack */
  *zoom: 1;
  margin-bottom: 0;
}
.form-search .hide,
.form-inline .hide,
.form-horizontal .hide {
  display: none;
}
.form-search label,
.form-inline label {
  display: inline-block;
}
.form-search .input-append,
.form-inline .input-append,
.form-search .input-prepend,
.form-inline .input-prepend {
  margin-bottom: 0;
}
.form-search .radio,
.form-search .checkbox,
.form-inline .radio,
.form-inline .checkbox {
  padding-left: 0;
  margin-bottom: 0;
  vertical-align: middle;
}
.form-search .radio input[type="radio"],
.form-search .checkbox input[type="checkbox"],
.form-inline .radio input[type="radio"],
.form-inline .checkbox input[type="checkbox"] {
  float: left;
  margin-right: 3px;
  margin-left: 0;
}
.control-group {
  margin-bottom: 0.75;
}
legend + .control-group {
  margin-top: 1.5;
  -webkit-margin-top-collapse: separate;
}
.form-horizontal .control-group {
  margin-bottom: 1.5;
  *zoom: 1;
}
.form-horizontal .control-group:before,
.form-horizontal .control-group:after {
  display: table;
  content: "";
}
.form-horizontal .control-group:after {
  clear: both;
}
.form-horizontal .control-label {
  float: left;
  width: 140px;
  padding-top: 5px;
  text-align: right;
}
.form-horizontal .controls {
  *display: inline-block;
  *padding-left: 20px;
  margin-left: 160px;
  *margin-left: 0;
}
.form-horizontal .controls:first-child {
  *padding-left: 160px;
}
.form-horizontal .help-block {
  margin-top: 0.75;
  margin-bottom: 0;
}
.form-horizontal .form-actions {
  padding-left: 160px;
}
/**
 * Fixes to Google Custom Search
 */
.gcs_container .gsc-control-cse {
  width: auto;
  padding: 0;
  background-color: transparent;
  border: none;
}
.gcs_container .gsc-search-button {
  margin-top: 0 !important;
}
.gcs_container .gsc-search-box .gsc-input,
.gcs_container .gsc-results-wrapper-overlay .gsc-input {
  padding-right: 5px !important;
}
.gcs_container .gsc-search-box table,
.gcs_container .gsc-results-wrapper-overlay table {
  border: 0;
  border-collapse: separate;
  margin-bottom: 0;
}
.gcs_container .gsc-search-box td,
.gcs_container .gsc-results-wrapper-overlay td {
  border: 0;
  padding: 0;
}
.gcs_container .gsc-search-box td.gsib_a,
.gcs_container .gsc-results-wrapper-overlay td.gsib_a {
  padding: 3px 6px 0 !important;
}
.gcs_container .gsc-search-box td.gsc-search-button,
.gcs_container .gsc-results-wrapper-overlay td.gsc-search-button {
  padding: 0;
  line-height: normal;
}
.gcs_container .gsc-search-box input[type='text'],
.gcs_container .gsc-results-wrapper-overlay input[type='text'] {
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
}
.gcs_container .gsc-search-box input.gsc-search-button-v2,
.gcs_container .gsc-results-wrapper-overlay input.gsc-search-button-v2 {
  padding: 6px 15px !important;
  height: 13px !important;
  font-size: 15px;
  margin-bottom: 0 !important;
  background-color: #2276bd;
  background-image: -moz-linear-gradient(top, #247ac4, #2070b2);
  background-image: -ms-linear-gradient(top, #247ac4, #2070b2);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#247ac4), to(#2070b2));
  background-image: -webkit-linear-gradient(top, #247ac4, #2070b2);
  background-image: -o-linear-gradient(top, #247ac4, #2070b2);
  background-image: linear-gradient(top, #247ac4, #2070b2);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#247ac4', endColorstr='#2070b2', GradientType=0);
}
.gcs_container .gsc-search-box input.gsc-search-button-v2:hover,
.gcs_container .gsc-results-wrapper-overlay input.gsc-search-button-v2:hover {
  background-color: #2274b9;
  background-image: -moz-linear-gradient(top, #2070b2, #247ac4);
  background-image: -ms-linear-gradient(top, #2070b2, #247ac4);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#2070b2), to(#247ac4));
  background-image: -webkit-linear-gradient(top, #2070b2, #247ac4);
  background-image: -o-linear-gradient(top, #2070b2, #247ac4);
  background-image: linear-gradient(top, #2070b2, #247ac4);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#2070b2', endColorstr='#247ac4', GradientType=0);
}
.btn-core-properties {
  display: inline-block;
  padding: 4px 10px;
  font-size: 16px;
  line-height: 1.5;
  *line-height: 20px;
  border-radius: 3px;
}
.btn {
  display: inline-block;
  padding: 4px 10px;
  font-size: 16px;
  line-height: 1.5;
  *line-height: 20px;
  border-radius: 3px;
  margin-bottom: 0;
  color: #484848;
  text-align: center;
  vertical-align: middle;
  cursor: pointer;
  background-color: #dddddd;
}
.btn:hover {
  color: #484848;
  text-decoration: none;
  background-color: #e6e6e6;
  *background-color: #d9d9d9;
  /* Buttons in IE7 don't get borders, so darken on hover */
  background-position: 0 -15px;
  -webkit-transition: background-position 0.1s linear;
  -moz-transition: background-position 0.1s linear;
  -ms-transition: background-position 0.1s linear;
  -o-transition: background-position 0.1s linear;
  transition: background-position 0.1s linear;
}
.btn:focus {
  outline: thin dotted #333;
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
.btn.active,
.btn:active {
  background-color: #e6e6e6;
  background-color: #d9d9d9 \9;
  background-image: none;
  outline: 0;
}
.btn.disabled,
.btn[disabled] {
  cursor: default;
  background-color: #e6e6e6;
  background-image: none;
  opacity: 0.65;
  filter: alpha(opacity=65);
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
}
.btn-large {
  padding: 9px 14px;
  font-size: 18px;
  line-height: normal;
}
.btn-large [class^="icon-"] {
  margin-top: 1px;
}
.btn-small {
  padding: 5px 9px;
  font-size: 14px;
  line-height: -0.5px;
}
.btn-small [class^="icon-"] {
  margin-top: -1px;
}
.btn-mini {
  padding: 2px 6px;
  font-size: 14px;
  line-height: -2.5px;
}
.btn-primary.active {
  color: rgba(255, 255, 255, 0.75);
}
.btn {
  border-color: #ccc;
  background-color: #dddddd;
}
.btn-primary,
.btn-primary:hover {
  color: #ffffff;
  background-color: #2275bb;
}
.btn-primary:hover {
  background-color: #1a5a90;
  *background-color: #164c7a;
  /* Buttons in IE7 don't get borders, so darken on hover */
  background-position: 0 -15px;
  -webkit-transition: background-position 0.1s linear;
  -moz-transition: background-position 0.1s linear;
  -ms-transition: background-position 0.1s linear;
  -o-transition: background-position 0.1s linear;
  transition: background-position 0.1s linear;
}
table {
  max-width: 100%;
  width: 100%;
  background-color: transparent;
  border-collapse: collapse;
  border-spacing: 0;
  border: 1px solid #dddddd;
  border-left: 0;
  margin-bottom: 1.5;
}
table th,
table td {
  padding: 8px;
  line-height: 1.5;
  text-align: left;
  vertical-align: top;
  border-top: 1px solid #dddddd;
  border-left: 1px solid #dddddd;
}
table th {
  font-weight: bold;
}
table thead th {
  vertical-align: bottom;
}
table tbody + tbody {
  border-top: 2px solid #dddddd;
}
table caption + thead tr:first-child th,
table caption + thead tr:first-child td,
table caption + tbody tr:first-child th,
table caption + tbody tr:first-child td,
table colgroup + thead tr:first-child th,
table colgroup + thead tr:first-child td,
table colgroup + tbody tr:first-child th,
table colgroup + tbody tr:first-child td,
table thead:first-child tr:first-child th,
table thead:first-child tr:first-child td,
table tbody:first-child tr:first-child th,
table tbody:first-child tr:first-child td {
  border-top: 0;
}
.table-condensed th,
.table-condensed td {
  padding: 4px 5px;
}
.table-noborder {
  border: none;
}
.table-noborder th,
.table-noborder td {
  border: none;
}
.table-striped tbody tr:nth-child(odd) td,
.table-striped tbody tr:nth-child(odd) th {
  background-color: #f9f9f9;
}
.table tbody tr:hover td,
.table tbody tr:hover th {
  background-color: #f5f5f5;
}
table .span1 {
  float: none;
  width: -9.61702128%;
  margin-left: 0;
}
table .span2 {
  float: none;
  width: -1.10638298%;
  margin-left: 0;
}
table .span3 {
  float: none;
  width: 7.40425532%;
  margin-left: 0;
}
table .span4 {
  float: none;
  width: 15.91489361%;
  margin-left: 0;
}
table .span5 {
  float: none;
  width: 24.42553191%;
  margin-left: 0;
}
table .span6 {
  float: none;
  width: 32.93617021%;
  margin-left: 0;
}
table .span7 {
  float: none;
  width: 41.4468085%;
  margin-left: 0;
}
table .span8 {
  float: none;
  width: 49.9574468%;
  margin-left: 0;
}
table .span9 {
  float: none;
  width: 58.4680851%;
  margin-left: 0;
}
table .span10 {
  float: none;
  width: 66.9787234%;
  margin-left: 0;
}
table .span11 {
  float: none;
  width: 75.48936169%;
  margin-left: 0;
}
table .span12 {
  float: none;
  width: 83.99999999%;
  margin-left: 0;
}
table .span13 {
  float: none;
  width: 92.51063829%;
  margin-left: 0;
}
table .span14 {
  float: none;
  width: 101.02127658%;
  margin-left: 0;
}
table .span15 {
  float: none;
  width: 109.53191488%;
  margin-left: 0;
}
table .span16 {
  float: none;
  width: 118.04255318%;
  margin-left: 0;
}
table .span17 {
  float: none;
  width: 126.55319148%;
  margin-left: 0;
}
table .span18 {
  float: none;
  width: 135.06382977%;
  margin-left: 0;
}
table .span19 {
  float: none;
  width: 143.57446807%;
  margin-left: 0;
}
table .span20 {
  float: none;
  width: 152.08510637%;
  margin-left: 0;
}
table .span21 {
  float: none;
  width: 160.59574466%;
  margin-left: 0;
}
table .span22 {
  float: none;
  width: 169.10638296%;
  margin-left: 0;
}
table .span23 {
  float: none;
  width: 177.61702126%;
  margin-left: 0;
}
table .span24 {
  float: none;
  width: 186.12765955%;
  margin-left: 0;
}
@font-face {
  font-family: 'fontello';
  src: url("../fonts/fontello/font/fontello.eot");
  src: url("../fonts/fontello/font/fontello.eot?#iefix") format('embedded-opentype'), url("../fonts/fontello/font/fontello.woff") format('woff'), url("../fonts/fontello/font/fontello.ttf") format('truetype'), url("../fonts/fontello/font/fontello.svg#fontello") format('svg');
  font-weight: normal;
  font-style: normal;
}
[class^="icon-"]:before,
[class*=" icon-"]:before {
  font-family: 'fontello';
  font-style: normal;
  font-weight: normal;
  speak: none;
  display: inline-block;
  text-decoration: inherit;
  width: 1em;
  margin-right: 0.2em;
  text-align: center;
  opacity: 1;
  text-transform: none !important;
}
.icon-search:before {
  content: '\4d';
}
/* 'M' */
.icon-instagram:before {
  content: '\74';
}
/* 't' */
.icon-heart:before {
  content: '\41';
}
/* 'A' */
.icon-heart-empty:before {
  content: '\42';
}
/* 'B' */
.icon-star:before {
  content: '\43';
}
/* 'C' */
.icon-star-empty:before {
  content: '\44';
}
/* 'D' */
.icon-videocam:before {
  content: '\e802';
}
/* '' */
.icon-picture:before {
  content: '\e800';
}
/* '' */
.icon-camera:before {
  content: '\e801';
}
/* '' */
.icon-ok:before {
  content: '\45';
}
/* 'E' */
.icon-cancel:before {
  content: '\46';
}
/* 'F' */
.icon-plus:before {
  content: '\47';
}
/* 'G' */
.icon-minus:before {
  content: '\48';
}
/* 'H' */
.icon-help:before {
  content: '\49';
}
/* 'I' */
.icon-home:before {
  content: '\50';
}
/* 'P' */
.icon-link:before {
  content: '\51';
}
/* 'Q' */
.icon-tag:before {
  content: '\52';
}
/* 'R' */
.icon-tags:before {
  content: '\53';
}
/* 'S' */
.icon-download:before {
  content: '\54';
}
/* 'T' */
.icon-print:before {
  content: '\55';
}
/* 'U' */
.icon-comment:before {
  content: '\56';
}
/* 'V' */
.icon-chat:before {
  content: '\57';
}
/* 'W' */
.icon-location:before {
  content: '\e808';
}
/* '' */
.icon-doc-text:before {
  content: '\e804';
}
/* '' */
.icon-mail:before {
  content: '\75';
}
/* 'u' */
.icon-phone:before {
  content: '\58';
}
/* 'X' */
.icon-menu:before {
  content: '\4c';
}
/* 'L' */
.icon-calendar:before {
  content: '\e805';
}
/* '' */
.icon-headphones:before {
  content: '\59';
}
/* 'Y' */
.icon-play:before {
  content: '\60';
}
/* '`' */
.icon-table:before {
  content: '\e807';
}
/* '' */
.icon-chart-bar:before {
  content: '\e806';
}
/* '' */
.icon-spinner:before {
  content: '\61';
}
/* 'a' */
.icon-map:before {
  content: '\e809';
}
/* '' */
.icon-share:before {
  content: '\e80a';
}
/* '' */
.icon-gplus:before {
  content: '\62';
}
/* 'b' */
.icon-pinterest:before {
  content: '\63';
}
/* 'c' */
.icon-cc:before {
  content: '\64';
}
/* 'd' */
.icon-flickr:before {
  content: '\65';
}
/* 'e' */
.icon-linkedin:before {
  content: '\66';
}
/* 'f' */
.icon-rss:before {
  content: '\67';
}
/* 'g' */
.icon-twitter:before {
  content: '\68';
}
/* 'h' */
.icon-youtube:before {
  content: '\69';
}
/* 'i' */
.icon-facebook:before {
  content: '\70';
}
/* 'p' */
.icon-github:before {
  content: '\71';
}
/* 'q' */
.icon-itunes:before {
  content: '\72';
}
/* 'r' */
.icon-tumblr:before {
  content: '\73';
}
/* 's' */
.icon-doc-text-inv:before {
  content: '\e803';
}
/* '' */
#header-social i {
  position: relative;
  top: 0;
  padding: 4px;
}
#header-social i:hover {
  color: #fff !important;
  opacity: 0.9;
}
.global-nav,
#page,
#site-footer,
#footer-logos,
.sticky-nav-container,
#before-footer {
  max-width: 1170px;
  padding: 0 2.5%;
}
#page {
  padding-bottom: 18px;
}
#main {
  margin: 18px 0;
  z-index: 1;
  position: relative;
}
#left-rail {
  float: left;
  margin-left: 0;
}
#content-main {
  float: right;
}
.row-fluid {
  width: 100%;
  *zoom: 1;
}
.row-fluid:before,
.row-fluid:after {
  display: table;
  content: "";
}
.row-fluid:after {
  clear: both;
}
.row-fluid .span1,
.row-fluid .span2,
.row-fluid .span3,
.row-fluid .span4,
.row-fluid .span5,
.row-fluid .span6,
.row-fluid .span7,
.row-fluid .span8,
.row-fluid .span9,
.row-fluid .span10,
.row-fluid .span11,
.row-fluid .span12 {
  display: block;
  width: 100%;
  min-height: 28px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
  float: left;
  margin-left: 2.12765957%;
  *margin-left: 1.62765957%;
}
.row-fluid .span1,
.row-fluid .span2:first-child,
.row-fluid .span3:first-child,
.row-fluid .span4:first-child,
.row-fluid .span5:first-child,
.row-fluid .span6:first-child,
.row-fluid .span7:first-child,
.row-fluid .span8:first-child,
.row-fluid .span9:first-child,
.row-fluid .span10:first-child,
.row-fluid .span11:first-child,
.row-fluid .span12:first-child {
  margin-left: 0;
}
.row-fluid .span12 {
  width: 99.99999999%;
  *width: 99.49999999%;
}
.row-fluid .span11 {
  width: 91.48936169%;
  *width: 90.98936169%;
}
.row-fluid .span10 {
  width: 82.9787234%;
  *width: 82.4787234%;
}
.row-fluid .span9 {
  width: 74.4680851%;
  *width: 73.9680851%;
}
.row-fluid .span8 {
  width: 65.9574468%;
  *width: 65.4574468%;
}
.row-fluid .span7 {
  width: 57.4468085%;
  *width: 56.9468085%;
}
.row-fluid .span6 {
  width: 48.93617021%;
  *width: 48.43617021%;
}
.row-fluid .span5 {
  width: 40.42553191%;
  *width: 39.92553191%;
}
.row-fluid .span4 {
  width: 31.91489361%;
  *width: 31.41489361%;
}
.row-fluid .span3 {
  width: 23.40425532%;
  *width: 22.90425532%;
}
.row-fluid .span2 {
  width: 14.89361702%;
  *width: 14.39361702%;
}
.row-fluid .span1 {
  width: 6.38297872%;
  *width: 5.88297872%;
}
@media screen and (max-width: 480px) {
  .home #main {
    margin-top: 24px;
  }
}
.popover {
  display: none;
  position: absolute;
  top: 0;
  left: 0;
  min-width: 180px;
  background: #ffffff;
  text-transform: none;
  color: #7d8185;
  text-align: left;
  padding: 1em;
  border: 1px solid #dddddd;
  border: 1px solid rgba(0, 0, 0, 0.2);
  *border-right-width: 2px;
  *border-bottom-width: 2px;
  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  -webkit-background-clip: padding-box;
  -moz-background-clip: padding;
  background-clip: padding-box;
}
.popover:before {
  content: '';
  display: inline-block;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-bottom: 10px solid #dddddd;
  border-bottom-color: rgba(0, 0, 0, 0.2);
  position: absolute;
  top: -10px;
  left: 9px;
}
.popover:after {
  content: '';
  display: inline-block;
  border-left: 9px solid transparent;
  border-right: 9px solid transparent;
  border-bottom: 9px solid #ffffff;
  position: absolute;
  top: -9px;
  left: 10px;
}
.global-nav-bg {
  height: 38px;
  background-color: #222222;
}
.global-nav {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  position: relative;
  height: 38px;
  overflow: visible;
  z-index: 1030;
}
.global-nav ul {
  margin: 0;
  list-style: none;
  font-size: 11px;
  line-height: 24px;
}
.global-nav ul li {
  float: left;
  margin: 9px 18px 0 0;
}
.global-nav ul a {
  color: #ffffff;
}
.global-nav ul a:hover {
  text-decoration: none;
  color: #d9d9d9;
}
.global-nav .nav-right {
  float: right;
}
.global-nav .nav-right ul#header-social {
  float: left;
  margin: 0 0 0 0;
  font-size: 14px;
}
.global-nav .nav-right ul#header-social li {
  margin: 5px 0 5px 10px;
}
.global-nav .nav-right ul#header-social li a {
  color: #ffffff;
}
.global-nav .nav-right ul#header-social li a i {
  display: block;
  height: 24px;
  padding: 3px 4px 2px 4px;
}
.global-nav .nav-right .donate-btn {
  float: left;
  margin: 5px 0 0 10px;
}
.donate-btn {
  font-size: 14px;
  line-height: 2;
  background-color: #bd261d;
}
.donate-btn:hover {
  background-color: #d32a20;
}
.donate-btn a {
  padding: 24px 7px;
  color: #ffffff;
}
.donate-btn a:hover {
  text-decoration: none;
}
.donate-btn i {
  margin: 1px 3px 0 0;
}
.nav-shelf li.donate a.donate-link {
  color: #bd261d;
}
@media (max-width: 480px) {
  #header-extras li.donate {
    display: none;
  }
  .nav-shelf li.donate {
    display: block;
  }
}
@media (min-width: 481px) {
  .nav-shelf li.donate {
    display: none;
  }
}
#header-search {
  margin-left: 10px;
  margin-top: 5px;
  max-width: 210px;
  float: left;
}
#header-search form {
  margin: 0;
}
#header-search input,
#header-search button {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 13px;
  line-height: 1;
}
#header-search input {
  height: 18px;
  padding: 6px 4px 2px;
}
#header-search button {
  height: 28px;
  text-transform: uppercase;
}
#site-header {
  margin: 24px 0;
  width: auto;
}
#site-header img {
  clear: none;
  margin: 5px 0;
}
#site-header aside {
  max-width: 320px;
  float: right;
}
h1.branding,
h2.branding {
  clear: both;
  margin: 20px 0;
  font-size: 54px;
  line-height: 1;
}
h1.branding a,
h2.branding a {
  color: #484848;
}
h1.branding a:hover,
h2.branding a:hover {
  text-decoration: none;
}
h1.branding span,
h2.branding span {
  display: block;
  clear: both;
  text-align: center;
}
h1.branding .sitename,
h2.branding .sitename {
  margin-bottom: 0.25em;
}
h1.branding .tagline,
h2.branding .tagline {
  font-size: 24px;
  font-weight: 300;
  color: #7d8185;
}
.print-header {
  display: none;
}
/* Homepage alert */
.alert-wrapper {
  background: transparent;
  border: 2px solid #bd261d;
  margin: 20px 0;
}
#alert-container {
  max-width: 1170px;
  margin: 1em auto;
  padding: 8px 20px 0;
  color: #484848;
}
#alert-container a {
  color: #484848;
}
#alert-container a:hover {
  color: #bd261d;
}
#alert-container .widget:last-child {
  margin-bottom: 0;
}
@media (max-width: 768px) {
  #main-nav,
  #site-header {
    display: none;
  }
}
/* Navigation components */
html.nav-open,
html.nav-open body {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  overflow: hidden;
}
.navbar {
  *position: relative;
  *z-index: 2;
  overflow: visible;
  margin-bottom: 4.8px;
  color: #484848;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.navbar .container {
  width: auto;
}
.navbar .toggle-nav-bar {
  display: none;
}
.navbar .navbar-inner {
  background-color: #ffffff;
}
.navbar .navbar-text {
  margin-bottom: 0;
}
.navbar #header-social li > a {
  padding-left: 4px;
  padding-right: 4px;
}
.navbar .nav {
  position: relative;
  left: 0;
  display: block;
  float: left;
  margin: 0;
  color: #484848;
}
.navbar .nav > li > a {
  color: #484848;
}
.navbar li {
  display: block;
  float: left;
  margin-bottom: 0;
}
.navbar li > a {
  display: block;
  text-decoration: none;
  line-height: 40px;
  padding-left: 10px;
  padding-right: 10px;
}
.navbar li.dropdown > a {
  padding-right: 0;
}
.navbar li.dropdown .dropdown-menu li a {
  color: #484848;
  padding-right: 10px;
  line-height: 1.5;
}
.navbar li.dropdown .dropdown-menu li a:hover {
  color: #3b3b3b;
}
.navbar li > a:hover {
  background-color: #f2f2f2;
  color: #3b3b3b;
}
.navbar li > a:hover .caret:before {
  border-top-color: #3b3b3b;
}
.navbar .sub-menu:before,
.navbar .sub-sub-menu:before {
  border-bottom: 9px solid transparent;
  border-left: none;
  border-right: 9px solid rgba(0, 0, 0, 0.2);
  border-top: 9px solid transparent;
  left: -9px;
  top: 30%;
}
.navbar .sub-menu:after,
.navbar .sub-sub-menu:after {
  border-top: 8px solid transparent;
  border-left: none;
  border-right: 8px solid #ffffff;
  border-bottom: 8px solid transparent;
  top: 31%;
  left: -8px;
}
.navbar li.home-icon a:hover,
.navbar li.home-link a:hover {
  background-color: transparent;
  color: #4b9bde;
}
.navbar .home-icon:hover img,
.navbar li.home-link:hover i {
  opacity: 0.85;
  filter: alpha(opacity=85);
}
.navbar li.home-link {
  overflow: hidden;
}
.navbar li.home-link > a {
  display: block;
}
.navbar li.home-link > a:hover {
  background: none;
}
.navbar li.home-link > a img {
  display: block;
  height: 40px;
  width: 40px;
}
.navbar li.home-icon > a {
  padding: 0;
}
.navbar li.home-icon > a:hover {
  background: none;
}
.navbar li.home-icon > a img {
  display: inline-block;
  height: 24px;
  width: auto;
  margin-right: 1em;
}
.navbar .btn-navbar {
  display: none;
  float: left;
  margin-right: 10px;
  background-color: transparent;
  border: none;
  padding: 12.5px 10px;
}
.navbar .btn-navbar .label {
  float: right;
  color: white;
  line-height: 1;
  margin: -2px 0 0 5px;
  padding: 0;
  font-size: 15px;
}
.navbar .btn-navbar .navbar .btn-navbar .bars {
  float: left;
}
.navbar .btn-navbar .icon-bar {
  display: block;
  width: 18px;
  height: 3px;
}
.navbar .btn-navbar .icon-bar + .icon-bar {
  margin-top: 3px;
}
@media (min-width: 769px) {
  .navbar .nav-left {
    display: none;
  }
}
@media (max-width: 768px) {
  .navbar {
    position: relative;
    z-index: 9;
  }
  .navbar li.dropdown .dropdown-menu li a {
    line-height: 40px;
    padding-top: 0;
    padding-bottom: 0;
    padding-left: 40px;
  }
  .navbar .container {
    width: auto;
    padding: 0;
  }
  .navbar .toggle-nav-bar {
    display: block;
  }
  .navbar .nav-shelf {
    background: #ffffff;
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    visibility: hidden;
    opacity: 0;
    overflow-y: scroll;
    -webkit-overflow-scrolling: touch;
  }
  .navbar .nav-shelf .site-name,
  .navbar .nav-shelf .home-icon,
  .navbar .nav-shelf .home-link {
    display: none;
  }
  .navbar .nav-shelf ul,
  .navbar .nav-shelf li {
    float: none;
  }
  .navbar .nav-shelf li.home-link {
    display: none;
  }
  .navbar .nav-shelf li b.caret {
    float: right;
    -webkit-transform: rotate(-90deg);
    -moz-transform: rotate(-90deg);
    -ms-transform: rotate(-90deg);
    -o-transform: rotate(-90deg);
    transform: rotate(-90deg);
  }
  .navbar .nav-shelf li.open > a .caret {
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  .navbar .nav-shelf li.open > ul.dropdown-menu {
    display: block;
    position: relative;
    -webkit-box-shadow: none;
    -moz-box-shadow: none;
    box-shadow: none;
    border: none;
    padding: 0;
  }
  .navbar .nav-shelf li.open > ul.dropdown-menu:before,
  .navbar .nav-shelf li.open > ul.dropdown-menu:after {
    display: none;
  }
  .navbar .nav-shelf .nav > li:last-child {
    border-bottom: none;
    padding-bottom: none;
  }
  .navbar.open .nav-shelf {
    visibility: visible;
    opacity: 1;
    border-bottom: 1px solid #dddddd;
  }
  .navbar .nav li.home-link,
  .navbar .nav li.site-name {
    display: none;
  }
}
.navbar-inner {
  float: left;
  width: 100%;
}
.caret {
  display: inline-block;
  position: relative;
  width: 16px;
  padding: 0 8px;
  top: 2px;
}
.caret:before {
  display: block;
  position: relative;
  width: 0;
  height: 0;
  border-top: 6px solid #484848;
  border-right: 5px solid transparent;
  border-left: 5px solid transparent;
  border-bottom: 5px solid transparent;
  content: "";
}
.dropup,
.dropdown {
  position: relative;
}
.dropup .caret,
.dropdown .caret {
  border-top-color: #ffffff;
  border-bottom-color: #ffffff;
}
.dropup.active .caret,
.dropdown.active .caret {
  opacity: 1;
  filter: alpha(opacity=100);
}
.dropdown-toggle {
  *margin-bottom: -3px;
}
.dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1000;
  display: none;
  float: left;
  min-width: 160px;
  padding: 3px 0;
  margin: 0;
  list-style: none;
  background-color: #ffffff;
  border: 1px solid #dddddd;
  border: 1px solid rgba(0, 0, 0, 0.2);
  *border-right-width: 2px;
  *border-bottom-width: 2px;
  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  -webkit-background-clip: padding-box;
  -moz-background-clip: padding;
  background-clip: padding-box;
}
.dropdown-menu li {
  padding-top: 0;
  width: 100%;
}
.dropdown-menu li {
  margin-bottom: 0;
}
.dropdown-menu li > a {
  display: block;
  width: auto;
  padding: 3px 15px;
  clear: both;
  white-space: nowrap;
  text-shadow: none;
}
.dropdown-menu li > a:hover {
  text-decoration: none;
}
.dropdown-menu .active > a,
.dropdown-menu .active > a:hover {
  color: #484848;
  background-color: #ffffff;
}
.dropdown-menu:before {
  content: '';
  display: inline-block;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-bottom: 10px solid #dddddd;
  border-bottom-color: rgba(0, 0, 0, 0.2);
  position: absolute;
  top: -10px;
  left: 9px;
}
.dropdown-menu:after {
  content: '';
  display: inline-block;
  border-left: 9px solid transparent;
  border-right: 9px solid transparent;
  border-bottom: 9px solid #ffffff;
  position: absolute;
  top: -9px;
  left: 10px;
}
.dropdown-menu .sub-menu,
.dropdown-menu .sub-sub-menu {
  position: absolute;
  top: -20%;
  left: 99%;
  visibility: hidden;
  margin-top: 0;
}
.dropdown-menu .icon-arrow-right {
  position: relative;
  top: 2px;
  left: 3px;
}
.dropdown-menu li:hover .sub-menu,
.dropdown-menu .sub-menu li:hover .sub-sub-menu {
  visibility: visible;
  display: block;
}
@media (max-width: 768px) {
  .dropdown-menu li:hover .sub-sub-menu,
  .dropdown-menu li:hover .sub-menu {
    display: none;
    visibility: hidden;
  }
  .dropdown-menu li:hover .sub-sub-menu:before,
  .dropdown-menu li:hover .sub-menu:before {
    display: none;
  }
}
@media (min-width: 769px) {
  html.no-touch ul.nav li.dropdown:hover ul.dropdown-menu,
  html.touch ul.nav li.dropdown.open ul.dropdown-menu {
    display: block;
  }
}
.open {
  *z-index: 1000;
}
.open > .dropdown-menu {
  display: block;
}
@media (min-width: 769px) {
  .open > .dropdown-menu {
    display: none;
  }
}
.dropup .caret,
.navbar-fixed-bottom .dropdown .caret {
  border-top: 0;
  border-bottom: 4px solid #000000;
  content: "\2191";
}
.dropup .dropdown-menu,
.navbar-fixed-bottom .dropdown .dropdown-menu {
  top: auto;
  bottom: 100%;
  margin-bottom: 1px;
}
#topics-bar {
  padding: 3px 0;
}
#topics-bar ul {
  margin: 0;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
#topics-bar ul li {
  display: inline;
  margin-right: 10px;
  white-space: nowrap;
  font-size: 14px;
}
#topics-bar ul li.menu-label {
  font-size: 15px;
  font-weight: bold;
}
#main-nav.navbar {
  border-top: 1px solid #aaaaaa;
  border-bottom: 1px solid #aaaaaa;
}
.sticky-nav-container {
  margin: 0 auto;
  position: relative;
}
.sticky-nav-holder {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 99998;
  visibility: hidden;
  opacity: 0;
  background-color: #ffffff;
  border-bottom: 1px solid #dddddd;
  -webkit-transition: opacity 0.3s;
  -moz-transition: opacity 0.3s;
  -ms-transition: opacity 0.3s;
  -o-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
.sticky-nav-holder.transitioning {
  overflow: hidden;
  height: 56px;
}
.sticky-nav-holder.transitioning .navbar {
  opacity: 0;
}
.sticky-nav-holder.show {
  visibility: visible;
  opacity: 1;
}
body.admin-bar .sticky-nav-holder {
  top: 32px;
}
@media (max-width: 782px) {
  body.admin-bar .sticky-nav-holder {
    top: 46px;
  }
}
@media (max-width: 600px) {
  body.admin-bar .sticky-nav-holder {
    top: 0;
  }
}
@media (min-width: 769px) {
  .sticky-nav-holder {
    display: none;
  }
  body .sticky-nav-holder.main_nav_hide_article,
  body .sticky-nav-holder.sticky_nav_display {
    display: block;
  }
}
.navbar.sticky-navbar {
  margin-bottom: 0;
  -webkit-transition: opacity 0.3s;
  -moz-transition: opacity 0.3s;
  -ms-transition: opacity 0.3s;
  -o-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
.navbar.sticky-navbar .nav {
  color: #484848;
}
.navbar.sticky-navbar li a {
  line-height: 56px;
  color: #484848;
}
.navbar.sticky-navbar li a:hover {
  color: #3b3b3b;
}
.navbar.sticky-navbar li a .caret:before {
  border-top-color: #484848;
}
.navbar.sticky-navbar li a:hover .caret:before {
  border-top-color: #3b3b3b;
}
.navbar.sticky-navbar li.home-link > a:hover {
  color: #555555;
}
.navbar.sticky-navbar li.dropdown .dropdown-menu li a {
  color: #484848;
}
.navbar.sticky-navbar li.dropdown .dropdown-menu li a:hover {
  color: #3b3b3b;
}
.navbar.sticky-navbar .social-icons {
  margin: 0;
  float: left;
}
.navbar.sticky-navbar .btn-navbar {
  padding: 0 10px 0 10px;
  margin-right: 0;
  line-height: 56px;
}
.navbar.sticky-navbar .btn-navbar .bars {
  display: inline-block;
}
.navbar.sticky-navbar .btn-navbar .icon-bar {
  background-color: #484848;
}
.navbar.sticky-navbar .btn-navbar:hover .icon-bar {
  background-color: #3b3b3b;
}
.navbar.sticky-navbar.home-link {
  min-width: 40px;
  text-align: center;
}
.navbar.sticky-navbar.home-link .nav > li a img {
  width: 1.49em;
  height: 1.49em;
}
.navbar.sticky-navbar.home-link .nav > li .icon-home:before {
  position: relative;
  top: 0;
}
.navbar.sticky-navbar .nav-right {
  float: right;
}
.navbar.sticky-navbar .nav-right #header-extras {
  float: left;
  margin: 0;
}
.navbar.sticky-navbar .nav-right #header-extras a.donate-link:hover {
  background: transparent;
}
.navbar.sticky-navbar .nav-right #header-extras .donate a span {
  padding: 4px 8px;
  color: #ffffff;
  background-color: #bd261d;
}
.navbar.sticky-navbar .nav-right #header-extras .donate a span:hover {
  background-color: #d32a20;
}
.navbar.sticky-navbar .nav-right #header-extras .donate a span i {
  display: none;
}
.navbar.sticky-navbar .nav-right .form-search {
  position: relative;
}
.navbar.sticky-navbar .nav-right .form-search .toggle {
  color: #2275bb;
  display: inline-block;
  text-align: center;
  cursor: pointer;
  position: relative;
  z-index: 91;
  -webkit-transition: 0.3s;
  -moz-transition: 0.3s;
  -ms-transition: 0.3s;
  -o-transition: 0.3s;
  transition: 0.3s;
}
.navbar.sticky-navbar .nav-right .form-search .input-append {
  position: absolute;
  right: 44px;
  top: 0;
  right: 0;
  opacity: 0;
  visibility: hidden;
  -webkit-transition: 0.3s;
  -moz-transition: 0.3s;
  -ms-transition: 0.3s;
  -o-transition: 0.3s;
  transition: 0.3s;
  padding: 10px;
  z-index: 90;
  width: 246px;
}
.navbar.sticky-navbar .nav-right .form-search .input-append .text-input-wrapper {
  display: block;
  float: left;
  width: 196px;
}
.navbar.sticky-navbar .nav-right .form-search .input-append input {
  width: 100%;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
  height: 36px !important;
}
.navbar.sticky-navbar .nav-right .form-search .input-append button {
  width: 50px !important;
  height: 36px !important;
  float: left;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}
.navbar.sticky-navbar .nav-right #sticky-nav-search.show .input-append {
  position: absolute;
  opacity: 1;
  visibility: visible;
}
.navbar.sticky-navbar .nav-right #sticky-nav-search.show .input-append,
.navbar.sticky-navbar .nav-right #sticky-nav-search.show .toggle {
  background-color: #343434;
  color: #ffffff;
}
.navbar.sticky-navbar .nav-left > ul {
  margin: 0;
  padding: 0;
}
@media (min-width: 769px) {
  .navbar.sticky-navbar .nav-left {
    display: none;
  }
}
.navbar.sticky-navbar .site-name {
  display: block;
  color: #343434;
}
.navbar.sticky-navbar .site-name a {
  font-weight: bold;
  padding: 0 10px 0 0;
  color: #484848;
  max-width: 214px;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}
.navbar.sticky-navbar .site-name a:hover {
  background-color: transparent;
  color: #3b3b3b;
  text-decoration: none;
}
.navbar.sticky-navbar .nav-right {
  float: right;
}
.navbar.sticky-navbar .nav-right #header-extras {
  float: left;
  margin: 0;
}
.navbar.sticky-navbar .nav-right #header-extras a.donate-link:hover {
  background: transparent;
}
@media (max-width: 768px) {
  .navbar.sticky-navbar li.dropdown .dropdown-menu li a {
    line-height: 56px;
  }
  .navbar.sticky-navbar .nav-shelf b.caret {
    padding: 22px;
  }
}
#menu-overflow > ul {
  overflow-y: scroll;
  max-height: 80vh;
}
#menu-overflow > ul .caret::before,
#menu-overflow > ul .caret::after {
  display: none;
}
#menu-overflow > ul ul.dropdown-menu {
  position: relative;
  border: none;
  float: none;
  box-shadow: none;
}
#menu-overflow > ul ul.dropdown-menu li a {
  padding-left: 1.5em;
}
#menu-overflow > ul ul.dropdown-menu::before,
#menu-overflow > ul ul.dropdown-menu::after {
  display: none;
}
#menu-overflow > ul ul.dropdown-menu .sub-menu,
#menu-overflow > ul ul.dropdown-menu .sub-sub-menu {
  display: none;
}
.post-header,
.page-header,
.entry-content,
.post-footer,
article.story {
  margin-bottom: 24px;
}
.post-header,
.page-header,
article.story {
  border-bottom: 1px solid #dddddd;
}
article.story {
  padding-bottom: 12px;
}
.stories article {
  border-bottom: 1px dotted #aaaaaa;
  margin-bottom: 24px;
}
.stories article.span1,
.stories article.span2,
.stories article.span3,
.stories article.span4,
.stories article.span5,
.stories article.span6,
.stories article.span7,
.stories article.span8,
.stories article.span9,
.stories article.span10,
.stories article.span11,
.stories article.span12 {
  margin-left: 0;
}
.stories h2.entry-title {
  font-size: 32px;
  margin-bottom: 8px;
  line-height: 1.1;
}
.stories .entry-content p {
  font-size: 16px;
  margin-bottom: 12px;
}
.stories h5.tag-list {
  font-size: 13.04px;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: normal;
  line-height: 1.5;
  margin-bottom: 0;
}
.archive-background {
  margin-bottom: 24px;
  padding-bottom: 24px;
  border-bottom: 1px solid #dddddd;
}
.archive-background h1 {
  font-size: 44px;
  margin-bottom: 3px;
}
.archive-background p {
  font-size: 16px;
  margin-bottom: 8px;
}
.archive-background .related-topics {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.archive-background .related-topics ul {
  float: left;
  width: 100%;
  list-style: none;
  margin: 0;
  font-size: 16px;
  line-height: 1.3;
}
.archive-background .related-topics ul li {
  display: inline;
  margin: 0;
  padding: 0;
}
.archive-background .related-topics ul li:first-child {
  margin-right: 5px;
}
.archive-background .related-topics ul li:after {
  content: ", ";
}
.archive-background .related-topics ul li:first-child:after,
.archive-background .related-topics ul li:last-child:after {
  content: "";
}
.archive-background .rss-subscribe-link {
  float: right;
  margin-top: 10px;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  text-transform: uppercase;
  color: #f89406;
}
.archive-background .rss-subscribe-link i {
  padding-left: 3px;
  position: relative;
  top: -2px;
}
.archive-background .rss-subscribe-link:hover {
  text-decoration: none;
  color: #ad6704;
}
.archive .hero {
  clear: both;
  margin: 1em 0;
}
.archive .hero .wp-caption-text,
.archive .hero .wp-media-credit {
  display: none;
}
article div.has-thumbnail {
  float: right;
  max-width: 30%;
  margin: 0 0 10px 20px;
}
article img.attachment-post-thumbnail {
  float: right;
}
.primary-featured-post,
.secondary-featured-post {
  padding: 0 0 24px;
  border-bottom: 1px solid #dddddd;
  margin-bottom: 24px;
}
.primary-featured-post h2 {
  line-height: 1.1;
  margin-bottom: 8px;
  font-size: 36px;
}
.primary-featured-post .entry-content p,
.primary-featured-post .entry-content ul,
.primary-featured-post .entry-content ol {
  font-size: 16px;
}
.secondary-featured-post {
  margin-bottom: 40px;
}
.secondary-featured-post img {
  margin-bottom: 0;
  width: 100%;
}
.secondary-featured-post h2 {
  margin-bottom: 12px;
  line-height: 1.3;
  font-size: 20px;
}
@media (min-width: 960px) {
  .secondary-featured-post h2 {
    font-size: 24px;
  }
}
.archive .stories .hero.is-image img,
.home .stories .hero.is-image img {
  clear: both;
  float: none;
  display: block;
  margin: 0 auto;
}
.archive .entry-content.with-hero,
.home .entry-content.with-hero {
  margin: -22px 7% 0;
  padding: 22px 18px;
  width: 86%;
  background: #fff;
}
@media screen and (max-width: 768px) {
  .archive .entry-content.with-hero,
  .home .entry-content.with-hero {
    margin: 8px 0 0;
    padding: 0;
    width: 100%;
  }
}
.archive .entry-content h5.byline,
.home .entry-content h5.byline {
  font-size: 13.04px;
  margin-bottom: 12px;
}
.archive-dropdown {
  margin: 12px 0;
}
#series-footer {
  clear: both;
}
#series-main #content {
  margin-bottom: 24px;
}
#series-header .byline time,
#series-header .byline .sep {
  display: none;
}
.load-more {
  display: inline-block;
}
.loading .load-more {
  padding-right: 32px;
  background-image: url(/wp-admin/images/loading.gif);
  background-position: 96% center;
  background-repeat: no-repeat;
}
/**
 * Styles for search forms and search results
 *
 * Styles for the global nav search are in less/inc/header.less
 */
.archive.search-results .input-append {
  width: 100%;
  position: relative;
}
.archive.search-results .form-search {
  margin-bottom: 1em;
}
.archive.search-results .form-search input {
  width: 90%;
  box-sizing: border-box;
}
.archive.search-results .form-search button {
  width: 10%;
  box-sizing: border-box;
}
.archive.search-results .search-term {
  background-color: #dddddd;
  padding: 1px 5px;
}
.archive.search-results h3 .rss-link {
  margin-left: 1em;
}
.archive.search-results h3 {
  margin-bottom: 1em;
  padding-bottom: 0.5em;
  border-bottom: 1px solid #7d8185;
}
.archive.search-results .stories article {
  padding-bottom: 12px;
}
.archive.search-results .entry-content p {
  margin-bottom: 0;
}
.archive.search-results .date-link a,
.archive.search-results .date-link {
  color: #7d8185;
}
/* Google CSE */
.gcs_container {
  margin: 20px 0;
}
.gcs_container table {
  margin: 0;
}
.gcs_container table,
.gcs_container tbody,
.gcs_container tr,
.gcs_container td {
  border: none;
}
.gcs_container .gsc-search-box {
  margin: 18px 0;
}
.gcs_container .gsc-search-box .gsst_a .gscb_a {
  position: relative;
  top: 3px;
}
.gcs_container .gsc-search-box td.gsib_a {
  padding: 0 6px !important;
}
.gcs_container .gsc-control-cse .gs-result .gs-title,
.gcs_container .gsc-control-cse .gs-result .gs-title * {
  font-size: 22px;
  line-height: 1.2;
}
.sticky-related a:hover,
.sticky-solo a:hover {
  opacity: 0.9;
  filter: alpha(opacity=90);
}
.sticky-main-feature .image-wrap {
  float: left;
}
.sticky-main-feature .image-wrap img {
  float: left;
  display: block;
  position: relative;
  z-index: 1;
  margin: 0;
  max-width: 100%;
}
.sticky-main-feature .image-wrap.span3 img {
  width: 100%;
}
.sticky-main-feature h2 {
  line-height: 1;
  margin-bottom: 10px;
}
.sticky-main-feature p a {
  font-weight: bold;
  white-space: nowrap;
}
.sticky-features-list h4 {
  font-size: 19.2px;
  margin: 0 0 8px 0;
}
.sticky-features-list ul {
  margin: 0;
  list-style: none;
}
.sticky-features-list ul li {
  list-style-type: disc;
  margin-left: 20px;
  margin-bottom: 7px;
  line-height: 1.2;
}
.sticky-features-list ul li.sticky-all {
  font-weight: bold;
}
@media (max-width: 360px) {
  .sticky-main-feature .image-wrap img {
    margin: 0 15px 15px 0;
  }
  .sticky-main-feature h5.byline {
    clear: both;
  }
  .sticky-main-feature .span9 {
    width: 100%;
  }
}
@media (min-width: 360px) {
  .sticky-main-feature .hidden-phone {
    display: inherit !important;
  }
  .sticky-main-feature .visible-phone {
    display: none !important;
  }
}
/*------------------------------------------------------------------------------
  Single - Styling for single posts & pages.
------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------
  1.0 - Normal layout overrides (override two column display)
------------------------------------------------------------------------------*/
body.normal.single-post,
body.normal.page {
  /* 1.1 - Header */
  /* 1.2 - Hero */
  /* 1.3 - Sidebar (right of post) */
  /* 1.4 - Entry Content (the main post content) */
  /* 1.5 - Article Bottom (after post content) */
  /* 1.6 - Overrides */
}
body.normal.single-post article.post > header,
body.normal.page article.post > header,
body.normal.single-post article.page > header,
body.normal.page article.page > header {
  clear: both;
  margin: 24px 17.0213%;
  position: relative;
}
body.normal.single-post article.post > header h5.top-tag,
body.normal.page article.post > header h5.top-tag,
body.normal.single-post article.page > header h5.top-tag,
body.normal.page article.page > header h5.top-tag {
  position: absolute;
  left: 0;
}
body.normal.single-post article.post > header h1,
body.normal.page article.post > header h1,
body.normal.single-post article.page > header h1,
body.normal.page article.page > header h1 {
  padding-top: 26px;
}
body.normal.single-post article.post > header .edit-link,
body.normal.page article.post > header .edit-link,
body.normal.single-post article.page > header .edit-link,
body.normal.page article.page > header .edit-link {
  padding-left: 5px;
}
body.normal.single-post .hero,
body.normal.page .hero {
  margin-left: 0;
}
body.normal.single-post .hero p.wp-caption-text,
body.normal.page .hero p.wp-caption-text,
body.normal.single-post .hero p.wp-media-credit,
body.normal.page .hero p.wp-media-credit {
  margin: 0 17.0213% 12px;
}
body.normal.single-post.single #main #sidebar,
body.normal.page.single #main #sidebar {
  /* all to undo bootstrap */
  float: right;
}
body.normal.single-post.single #main #sidebar .widget:first-child,
body.normal.page.single #main #sidebar .widget:first-child {
  padding-top: 0;
}
body.normal.single-post .entry-content,
body.normal.page .entry-content {
  padding: 0 17.021276594%;
}
body.normal.single-post time .last-modified,
body.normal.page time .last-modified {
  color: #bd261d;
  font-weight: bold;
  text-transform: uppercase;
  font-size: 13px;
}
body.normal.single-post p.intro,
body.normal.page p.intro,
body.normal.single-post p.wp-caption-text,
body.normal.page p.wp-caption-text {
  font-style: normal;
}
body.normal.single-post .article-bottom,
body.normal.page .article-bottom {
  margin: 0 17.021276594%;
}
body.normal.single-post .article-bottom .post-social,
body.normal.page .article-bottom .post-social {
  border-top: none;
  border-bottom: none;
}
body.normal.single-post #comments,
body.normal.page #comments,
body.normal.single-post #disqus_thread,
body.normal.page #disqus_thread {
  margin: 0 17.021276594%;
}
@media only screen and (max-width: 979px) {
  body.normal.single-post .single #main #sidebar,
  body.normal.page .single #main #sidebar {
    display: none;
  }
  body.normal.single-post .article-bottom,
  body.normal.page .article-bottom,
  body.normal.single-post #comments,
  body.normal.page #comments,
  body.normal.single-post #disqus_thread,
  body.normal.page #disqus_thread {
    margin: 0 6.38297872%;
  }
  body.normal.single-post article.post > header,
  body.normal.page article.post > header {
    margin: 24px 6.38297872%;
  }
  body.normal.single-post .entry-content,
  body.normal.page .entry-content {
    padding: 0 6.38297872%;
  }
  body.normal.single-post .hero p.wp-caption-text,
  body.normal.page .hero p.wp-caption-text,
  body.normal.single-post .hero p.wp-media-credit,
  body.normal.page .hero p.wp-media-credit {
    margin: 0 2.12765957% 12px;
  }
}
@media only screen and (max-width: 529px) {
  body.normal.single-post .article-bottom,
  body.normal.page .article-bottom,
  body.normal.single-post #comments,
  body.normal.page #comments,
  body.normal.single-post #disqus_thread,
  body.normal.page #disqus_thread {
    margin: 0;
  }
  body.normal.single-post article.post > header,
  body.normal.page article.post > header {
    margin: 24px 0;
  }
  body.normal.single-post .entry-content,
  body.normal.page .entry-content {
    padding: 0;
  }
}
/*------------------------------------------------------------------------------
  2.0 - Entry Element Styles
------------------------------------------------------------------------------*/
h2.subtitle {
  font-size: 19.552px;
  font-weight: normal;
  color: #7d8185;
}
/* 2.1 - Byline */
.byline {
  margin-bottom: 12px;
  font-weight: normal;
  font-size: 14.64px;
  vertical-align: middle;
}
.byline > * {
  display: inline;
}
.byline a {
  color: #484848;
}
.byline .author,
.byline .time-ago,
.byline .edit-link a {
  /*text-transform: uppercase;*/
}
.byline .author {
  font-weight: bold;
}
.byline .time-ago,
.byline .edit-link a {
  color: #bd261d;
}
.byline .avatar-default {
  display: none;
}
.byline img,
.byline .avatar {
  max-height: 30px;
  max-width: 30px;
  border-radius: 50%;
  border: 1px solid #7d8185;
}
/* 2.2 - Social media links */
@media (max-width: 768px) {
  .post-social > span {
    min-width: 50px;
    text-align: center;
    display: inline-block;
  }
}
@media (min-width: 769px) {
  .post-social > span {
    display: inline-block;
  }
  .post-social i {
    margin-right: 0.5em;
    margin-left: 0.2em;
  }
}
.post-social {
  margin-bottom: 24px;
}
.post-social > span {
  line-height: 1.5em;
  max-width: 250px;
  margin: 0.5em 0;
  text-align: center;
  text-transform: uppercase;
  font-weight: 300;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  position: relative;
  font-size: 16px;
  color: #ffffff;
}
.post-social > span:hover {
  cursor: pointer;
}
.post-social > span:last-child {
  margin-right: 0;
}
.post-social > span > a {
  display: block;
  padding: 0.3em 1em 0.3em 0.5em;
}
@media (max-width: 768px) {
  .post-social > span > a {
    padding: 0.3em 0.6em;
  }
}
@media (max-width: 480px) {
  .post-social > span > a {
    padding: 0.3em 0.2em;
  }
}
.post-social a {
  color: #ffffff;
}
.post-social a:hover {
  color: #ffffff;
  text-decoration: none;
}
.post-social i,
.post-social::before {
  position: relative;
}
.post-social .email:hover {
  cursor: pointer;
}
.post-social .more-social-links {
  background-color: #f89406;
  color: #ffffff;
}
.post-social .more-social-links:hover {
  background-color: #fa9f1e;
}
.post-social .more-social-links .popover {
  top: 40px;
}
.post-social .more-social-links .popover a {
  color: #7d8185;
  position: relative;
  float: left;
}
.post-social .more-social-links .popover a:hover {
  color: #484848;
  text-decoration: underline;
}
.post-social .more-social-links .popover i {
  color: #aaaaaa;
  margin-right: 0.25em;
  position: absolute;
  top: 0;
  left: 0;
}
.post-social .more-social-links .popover ul,
.post-social .more-social-links .popover li {
  list-style-type: none;
  margin: 0;
  padding: 0;
  font-size: 14px;
  line-height: 20px;
}
.post-social .more-social-links .popover li {
  margin-bottom: 0.5em;
  float: left;
}
.post-social .more-social-links .popover li:last-child {
  margin-bottom: 0;
}
.post-social .more-social-links .popover li span {
  display: block;
  margin-left: 28px;
}
@media (max-width: 480px) {
  .post-social .more-social-links .popover {
    left: auto;
    right: 0;
  }
  .post-social .more-social-links .popover:before,
  .post-social .more-social-links .popover:after {
    left: auto;
  }
  .post-social .more-social-links .popover:before {
    right: 19px;
  }
  .post-social .more-social-links .popover:after {
    right: 20px;
  }
}
#floating-social-buttons .rss,
.largo-follow .rss {
  background-color: #f89406;
}
#floating-social-buttons .rss:hover,
.largo-follow .rss:hover {
  background-color: #df8505;
}
#floating-social-buttons .twitter,
.largo-follow .twitter {
  background-color: #55acee;
}
#floating-social-buttons .twitter:hover,
.largo-follow .twitter:hover {
  background-color: #3ea1ec;
}
#floating-social-buttons .facebook,
.largo-follow .facebook {
  background-color: #3a5795;
}
#floating-social-buttons .facebook:hover,
.largo-follow .facebook:hover {
  background-color: #334c83;
}
#floating-social-buttons .linkedin,
.largo-follow .linkedin {
  background-color: #007bb6;
}
#floating-social-buttons .linkedin:hover,
.largo-follow .linkedin:hover {
  background-color: #006a9d;
}
#floating-social-buttons .gplus,
.largo-follow .gplus {
  background-color: #dd4b39;
}
#floating-social-buttons .gplus:hover,
.largo-follow .gplus:hover {
  background-color: #d73925;
}
#floating-social-buttons .flickr,
.largo-follow .flickr {
  background-color: #ff0084;
}
#floating-social-buttons .flickr:hover,
.largo-follow .flickr:hover {
  background-color: #e60077;
}
#floating-social-buttons .youtube,
.largo-follow .youtube {
  background-color: #e52d27;
}
#floating-social-buttons .youtube:hover,
.largo-follow .youtube:hover {
  background-color: #d8201a;
}
#floating-social-buttons .instagram,
.largo-follow .instagram {
  background-color: #125688;
}
#floating-social-buttons .instagram:hover,
.largo-follow .instagram:hover {
  background-color: #0f4871;
}
#floating-social-buttons .pinterest,
.largo-follow .pinterest {
  background-color: #cb2027;
}
#floating-social-buttons .pinterest:hover,
.largo-follow .pinterest:hover {
  background-color: #b51d23;
}
#floating-social-buttons .tumblr,
.largo-follow .tumblr {
  background-color: #35465c;
}
#floating-social-buttons .tumblr:hover,
.largo-follow .tumblr:hover {
  background-color: #2c3a4c;
}
#floating-social-buttons .github,
.largo-follow .github {
  background-color: #4183c4;
}
#floating-social-buttons .github:hover,
.largo-follow .github:hover {
  background-color: #3876b4;
}
#floating-social-buttons .print,
.largo-follow .print {
  background-color: #85898F;
}
#floating-social-buttons .print:hover,
.largo-follow .print:hover {
  background-color: #787c83;
}
#floating-social-buttons .email,
.largo-follow .email {
  background-color: #62656F;
}
#floating-social-buttons .email:hover,
.largo-follow .email:hover {
  background-color: #565961;
}
#floating-social-buttons .social-btn,
.largo-follow .social-btn {
  line-height: 1.5em;
  margin: 0.5em 0;
  padding: 0.66em;
  color: #ffffff;
}
#floating-social-buttons .social-btn:hover,
.largo-follow .social-btn:hover {
  color: #ffffff;
}
#floating-social-buttons {
  transition: opacity 0.2s;
  border: 1px solid #dddddd;
  z-index: 0;
}
#floating-social-buttons .hidden-phone {
  display: none;
}
#floating-social-buttons .post-social > span {
  padding-left: -100%;
  display: block;
  margin: 0;
  padding: 0;
  font-size: 20px;
}
#floating-social-buttons .post-social > span:hover {
  cursor: pointer;
}
#floating-social-buttons .post-social > span > a {
  color: #dddddd;
  display: block;
  padding: 18px;
  min-width: 28px;
  min-height: 28px;
}
#floating-social-buttons .post-social > .email:hover,
#floating-social-buttons .post-social > span:hover > a {
  color: #ffffff;
}
#floating-social-buttons .twitter,
#floating-social-buttons .facebook,
#floating-social-buttons .print,
#floating-social-buttons .email {
  color: #dddddd;
  background-color: #ffffff;
}
#floating-social-buttons .more-social-links {
  background-color: #ffffff;
  color: #dddddd;
}
#floating-social-buttons .more-social-links a.popped,
#floating-social-buttons .more-social-links:hover {
  background-color: #f89406;
  color: #ffffff;
}
#floating-social-buttons .more-social-links .popover {
  top: 68px;
  font-size: 14px;
}
#floating-social-buttons .more-social-links .popover i {
  margin-right: 0.25em;
}
#floating-social-buttons .more-social-links .popover a {
  color: #7d8185;
}
#floating-social-buttons .more-social-links .popover a:hover {
  color: #484848;
  text-decoration: underline;
}
#floating-social-buttons .social-btn {
  padding: 0.5em;
}
#floating-social-buttons .post-social {
  margin-bottom: 0;
}
#floating-social-buttons .post-social a:hover i {
  opacity: 1;
}
#floating-social-buttons .post-social i {
  margin: 0;
}
/* 2.3 - Default WP Post Pagination
 * ---------------------------------
 * NOTE: Largo has a widget to handle post pagination, these style default WP output
 *
 * @see /less/inc/widgets/largo-prev-next-links.less
 */
.post-pagination a,
.post-pagination span {
  padding: 5px;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  text-transform: uppercase;
  font-size: 13.04px;
}
.post-pagination a:first-child,
.post-pagination span:first-child {
  padding-left: 0;
}
/* 2.4 - Post meta */
.labels,
.tags,
.pager,
.tags,
.pager {
  list-style: none;
  font-size: 16px;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.single-post .author-box h5,
.single-argolinkroundups .author-box h5,
.labels h5 {
  font-size: 19.2px;
  line-height: 1;
  margin-bottom: 0;
}
.labels .series-label h5 a.rss-link {
  float: right;
  margin-top: 4px;
  color: #f89406;
  font-size: 18px;
}
.labels .series-label h5 a.rss-link:hover {
  opacity: 0.85;
  filter: alpha(opacity=85);
}
/* 2.5 - Lables */
.series-label {
  margin: 5px;
  padding: 8px;
}
.series-label h5 {
  background: none;
  padding: 0;
  margin-bottom: 2px;
}
.series-label p {
  font-size: 13.04px;
  margin-bottom: 0;
}
/**
 * Styles for the post-leading hero, used in both single-column .normal posts and two-column .classic posts
 *
 * @since 0.5.5
 * @link https://github.com/INN/Largo/issues/934
 */
.hero {
  text-align: center;
  background-color: #efefef;
  width: 100%;
  margin: 0 0 24px;
}
.hero.is-gallery {
  background-color: transparent;
}
.hero.is-gallery.span12 {
  margin-left: 0;
}
.hero p.wp-caption-text,
.hero p.wp-media-credit {
  float: none;
  font-size: 14px;
}
.hero p.wp-caption-text {
  text-align: left;
  margin: 0 12px;
  padding-bottom: 12px;
}
.hero p.wp-media-credit {
  text-align: right;
  margin: 4px 12px 4px;
  min-height: 0;
}
.hero.is-embed,
.hero.is-video {
  margin-bottom: 24px;
}
.hero.is-embed .embed-container,
.hero.is-video .embed-container {
  margin-bottom: 0;
}
.hero.is-empty {
  min-height: 0;
  height: 0;
}
.home .stories article img.attachment-medium,
.sub-stories img.attachment-post-thumbnail {
  max-width: 30%;
  float: right;
  margin: 0 0 10px 20px;
}
#homepage-bottom {
  margin-top: 24px;
}
#homepage-bottom .widget {
  width: 42.5%;
  padding: 2.5%;
}
#homepage-bottom .widget.odd {
  float: left;
  clear: both;
  margin-left: 0;
}
#homepage-bottom .widget.even {
  float: right;
  clear: none;
}
.module {
  margin-bottom: 12px;
  color: #000000;
}
.module h3 {
  font-size: 16px;
  margin-bottom: 12px;
  font-weight: bold;
}
.module dl {
  margin: 0;
}
.module dt,
.module dd {
  font-size: 13.04px;
  margin: 0 0 12px;
}
.module ul {
  font-size: 13.04px;
}
.type-aside p {
  font-size: 0.815em;
}
/* deprecated image type? */
.image p {
  display: inline;
  font-size: 10px;
}
.image img {
  display: block;
}
p.wp-media-credit {
  font-size: 13.04px;
  margin: 0;
  text-align: right;
  color: #7d8185;
  display: block;
}
p.wp-caption-text {
  font-size: 16px !important;
  margin: 5px 0 0;
  color: #7d8185;
  font-style: italic;
  line-height: 1.5;
  display: block;
}
.half,
.full,
.extract {
  margin: 0 0 24px;
}
.half {
  width: 40%;
}
.full {
  width: 100%;
}
.full-image {
  text-align: center;
  background-color: #dddddd;
}
.pull-quote,
.type-pull-quote {
  font: Georgia, "Times New Roman", Times, serif;
  font-style: italic;
  font-size: 24px;
  line-height: 1.3;
}
.pull-quote::before,
.type-pull-quote::before,
.pull-quote::after,
.type-pull-quote::after {
  content: "";
  display: block;
  height: 1px;
  width: 100%;
  margin: 20px auto;
  background: #dddddd;
}
.pull-quote h6,
.type-pull-quote h6 {
  font-size: 16px;
  margin: 0;
  text-transform: none;
}
.pull-quote p,
.type-pull-quote p {
  font-size: 24px;
  margin-bottom: 6px;
}
.DV-container {
  margin-bottom: 8px;
}
#disqus_thread {
  background-color: #dddddd;
  padding: 20px 10px;
  border-top: 8px solid #aaaaaa;
  margin-bottom: 24px;
}
/* = Customized comment form styles via the twenty eleven theme
http://wordpress.org/extend/themes/twentyeleven
----------------------------------------------- */
#comments {
  clear: both;
}
#content #comments-title {
  font-size: 24px;
  margin-bottom: 12px;
  font-weight: bold;
}
.nopassword {
  color: #aaaaaa;
  font-size: 24px;
  font-weight: 100;
  margin: 24px 0;
  text-align: center;
}
.nocomments {
  display: none;
}
.commentlist {
  list-style: none;
  margin: 0 auto;
  width: 100%;
}
.commentlist > li.comment {
  background: #f6f6f6;
  border: 1px solid #ddd;
  margin: 0 0 12px;
  padding: 14px;
  position: relative;
}
.commentlist .pingback {
  margin: 0 0 1.625em;
  padding: 0 1.625em;
}
.commentlist .children {
  list-style: none;
  margin: 0;
}
.commentlist .children li.comment {
  background: #fff;
  border-left: 1px solid #ddd;
  margin: 1.625em 0 0;
  padding: 1.625em;
  position: relative;
}
.commentlist .children li.comment .fn {
  display: block;
}
.comment-meta .fn {
  font-style: normal;
}
.comment-meta {
  color: #666;
  font-size: 13.04px;
  line-height: 1.5;
}
.commentlist .comment-content {
  clear: both;
}
.commentlist .comment-content p {
  font-size: 16px;
  margin-bottom: 6px;
}
.commentlist .children li.comment .comment-meta {
  line-height: 1.625em;
  margin-left: 50px;
}
.commentlist .children li.comment .comment-content {
  margin: 1.625em 0 0;
}
.commentlist .avatar {
  -webkit-box-shadow: 0 1px 2px #cccccc;
  -moz-box-shadow: 0 1px 2px #cccccc;
  box-shadow: 0 1px 2px #cccccc;
  padding: 0;
  float: left;
  margin: 0 10px 10px 0;
  width: 50px;
  height: 50px;
}
.commentlist .children .avatar {
  background: none;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
  left: 2.2em;
  padding: 0;
  top: 2.2em;
}
a.comment-reply-link {
  background: #eee;
  color: #666;
  display: inline-block;
  font-size: 12px;
  padding: 0 8px;
  text-decoration: none;
}
a.comment-reply-link:hover,
a.comment-reply-link:focus,
a.comment-reply-link:active {
  background: #888;
  color: #fff;
}
a.comment-reply-link > span {
  display: inline-block;
  position: relative;
  top: -1px;
}
/* Post author highlighting */
.commentlist > li.bypostauthor {
  background: #ddd;
  border-color: #d3d3d3;
}
.commentlist > li.bypostauthor .comment-meta {
  color: #575757;
}
.commentlist > li.bypostauthor:before {
  content: url(images/comment-arrow-bypostauthor.png);
}
/* Post Author threaded comments */
.commentlist .children > li.bypostauthor {
  background: #ddd;
  border-color: #d3d3d3;
}
/* Comment Form */
#respond {
  background: #f6f6f6;
  border: 1px solid #eee;
  margin: 0 auto 24px;
  padding: 4% 4% 8%;
  width: 92%;
}
#respond input[type="text"],
#respond textarea {
  background: #fff;
  border: 4px solid #eee;
  -webkit-box-shadow: inset 0 1px 3px rgba(204, 204, 204, 0.95);
  -moz-box-shadow: inset 0 1px 3px rgba(204, 204, 204, 0.95);
  box-shadow: inset 0 1px 3px rgba(204, 204, 204, 0.95);
  position: relative;
  padding: 10px;
  text-indent: 80px;
}
#respond .comment-form-author,
#respond .comment-form-email,
#respond .comment-form-url,
#respond .comment-form-comment {
  position: relative;
  margin-top: -20px;
}
#respond .comment-form-author label,
#respond .comment-form-email label,
#respond .comment-form-url label,
#respond .comment-form-comment label {
  background: #eee;
  -webkit-box-shadow: 1px 2px 2px rgba(204, 204, 204, 0.8);
  -moz-box-shadow: 1px 2px 2px rgba(204, 204, 204, 0.8);
  box-shadow: 1px 2px 2px rgba(204, 204, 204, 0.8);
  color: #555;
  display: inline-block;
  font-size: 0.815em;
  left: 4px;
  min-width: 60px;
  padding: 4px 10px;
  position: relative;
  top: 40px;
  z-index: 1;
}
#respond input[type="text"]:focus,
#respond textarea:focus {
  text-indent: 0;
  z-index: 1;
}
#respond textarea {
  resize: vertical;
  width: 95%;
}
#respond .comment-form-author .required,
#respond .comment-form-email .required {
  color: #bd3500;
  font-size: 22px;
  font-weight: bold;
  left: 75%;
  position: absolute;
  top: 45px;
  z-index: 1;
}
#respond .comment-notes,
#respond .logged-in-as {
  font-size: 0.815em;
}
#respond p {
  margin: 10px 0;
}
#respond .form-submit {
  float: right;
  margin: -20px 0 10px;
}
#respond input#submit {
  background: #222;
  border: none;
  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
  -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
  color: #eee;
  cursor: pointer;
  font-size: 15px;
  margin: 14px 0 20px;
  padding: 5px 22px;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3);
}
#respond input#submit:hover {
  background: #555;
}
#respond input#submit:active {
  background: #1982d1;
  color: #bfddf3;
}
#respond #cancel-comment-reply-link {
  color: #666;
  margin-left: 0.667em;
  text-decoration: none;
}
#respond .logged-in-as a:hover,
#respond #cancel-comment-reply-link:hover {
  text-decoration: underline;
}
.commentlist #respond {
  margin: 1.625em 0 0;
  width: auto;
}
#reply-title {
  color: #373737;
  font-size: 1.5em;
  font-weight: bold;
  line-height: 30px;
}
#cancel-comment-reply-link {
  color: #888;
  display: block;
  font-size: 0.667em;
  font-weight: normal;
  line-height: 2.2em;
  letter-spacing: 0.05em;
  position: absolute;
  right: 1.625em;
  text-decoration: none;
  text-transform: uppercase;
  top: 1.1em;
}
#cancel-comment-reply-link:focus,
#cancel-comment-reply-link:active,
#cancel-comment-reply-link:hover {
  color: #ff4b33;
}
#respond label {
  line-height: 2.2em;
}
#respond input[type=text] {
  display: block;
  height: 24px;
  width: 75%;
}
#respond p {
  font-size: 0.815em;
}
p.comment-form-comment {
  margin: 0;
}
.form-allowed-tags {
  display: none;
}
/*------------------------------------------------------------------------------
  Widgets - Styling widgets and sidebars.

  1.0 - Global Widget Styles
    1.1 - Base Styles
    1.2 - Title Styles
    1.3 - Footer Styles
    1.4 - Background Styles
    1.5 - Resets and Fixes
  -----------------------------
  2.0 - Widget File Imports
    2.1 - Default WordPress Widgets (file imports)
    2.2 - Largo Widgets (file imports)
    2.3 - INN-supported widgets (file imports)
------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------
    1.0 - Global Widget Styles
------------------------------------------------------------------------------*/
/* 1.1 - Base Styles */
.widget {
  margin-bottom: 24px;
}
.widget p,
.widget ul {
  font-size: 16px;
}
.widget ul {
  list-style: none;
  margin: 4.8px 0 0 0;
  line-height: 1.2;
}
.widget ul ul {
  margin-bottom: 4.8px;
  margin-top: 12px;
}
.widget li {
  overflow: hidden;
  margin-bottom: 1em;
}
.widget p.morelink {
  margin: -6px 0 0;
  font-size: 16px;
}
.widget img.right-align {
  float: right;
  padding: .2em 0 .4em .66em;
}
.widget img.left-align {
  float: left;
  padding: .2em .66em .4em 0;
}
.widget img.attachment-large,
.widget img.attachment-medium {
  padding: 0 0 .66em;
}
.widget h5 {
  margin-bottom: 0.2em;
  font-size: 20px;
}
.row-fluid > .span1:first-child > * > .widget,
.row-fluid > .span2:first-child > * > .widget,
.row-fluid > .span3:first-child > * > .widget,
.row-fluid > .span4:first-child > * > .widget,
.row-fluid > .span5:first-child > * > .widget,
.row-fluid > .span6:first-child > * > .widget,
.row-fluid > .span7:first-child > * > .widget,
.row-fluid > .span8:first-child > * > .widget,
.row-fluid > .span9:first-child > * > .widget,
.row-fluid > .span10:first-child > * > .widget,
.row-fluid > .span11:first-child > * > .widget,
.row-fluid > .span12:first-child > * > .widget,
.row-fluid > .span1:first-child > .widget,
.row-fluid > .span2:first-child > .widget,
.row-fluid > .span3:first-child > .widget,
.row-fluid > .span4:first-child > .widget,
.row-fluid > .span5:first-child > .widget,
.row-fluid > .span6:first-child > .widget,
.row-fluid > .span7:first-child > .widget,
.row-fluid > .span8:first-child > .widget,
.row-fluid > .span9:first-child > .widget,
.row-fluid > .span10:first-child > .widget,
.row-fluid > .span11:first-child > .widget,
.row-fluid > .span12:first-child > .widget {
  padding-right: 24px;
}
@media (max-width: 768px) {
  .row-fluid > .span1:first-child > * > .widget,
  .row-fluid > .span2:first-child > * > .widget,
  .row-fluid > .span3:first-child > * > .widget,
  .row-fluid > .span4:first-child > * > .widget,
  .row-fluid > .span5:first-child > * > .widget,
  .row-fluid > .span6:first-child > * > .widget,
  .row-fluid > .span7:first-child > * > .widget,
  .row-fluid > .span8:first-child > * > .widget,
  .row-fluid > .span9:first-child > * > .widget,
  .row-fluid > .span10:first-child > * > .widget,
  .row-fluid > .span11:first-child > * > .widget,
  .row-fluid > .span12:first-child > * > .widget,
  .row-fluid > .span1:first-child > .widget,
  .row-fluid > .span2:first-child > .widget,
  .row-fluid > .span3:first-child > .widget,
  .row-fluid > .span4:first-child > .widget,
  .row-fluid > .span5:first-child > .widget,
  .row-fluid > .span6:first-child > .widget,
  .row-fluid > .span7:first-child > .widget,
  .row-fluid > .span8:first-child > .widget,
  .row-fluid > .span9:first-child > .widget,
  .row-fluid > .span10:first-child > .widget,
  .row-fluid > .span11:first-child > .widget,
  .row-fluid > .span12:first-child > .widget {
    padding-right: 0;
  }
}
.row-fluid > .span1:last-child > * > .widget,
.row-fluid > .span2:last-child > * > .widget,
.row-fluid > .span3:last-child > * > .widget,
.row-fluid > .span4:last-child > * > .widget,
.row-fluid > .span5:last-child > * > .widget,
.row-fluid > .span6:last-child > * > .widget,
.row-fluid > .span7:last-child > * > .widget,
.row-fluid > .span8:last-child > * > .widget,
.row-fluid > .span9:last-child > * > .widget,
.row-fluid > .span10:last-child > * > .widget,
.row-fluid > .span11:last-child > * > .widget,
.row-fluid > .span12:last-child > * > .widget,
.row-fluid > .span1:last-child > .widget,
.row-fluid > .span2:last-child > .widget,
.row-fluid > .span3:last-child > .widget,
.row-fluid > .span4:last-child > .widget,
.row-fluid > .span5:last-child > .widget,
.row-fluid > .span6:last-child > .widget,
.row-fluid > .span7:last-child > .widget,
.row-fluid > .span8:last-child > .widget,
.row-fluid > .span9:last-child > .widget,
.row-fluid > .span10:last-child > .widget,
.row-fluid > .span11:last-child > .widget,
.row-fluid > .span12:last-child > .widget {
  padding-left: 24px;
}
@media (max-width: 768px) {
  .row-fluid > .span1:last-child > * > .widget,
  .row-fluid > .span2:last-child > * > .widget,
  .row-fluid > .span3:last-child > * > .widget,
  .row-fluid > .span4:last-child > * > .widget,
  .row-fluid > .span5:last-child > * > .widget,
  .row-fluid > .span6:last-child > * > .widget,
  .row-fluid > .span7:last-child > * > .widget,
  .row-fluid > .span8:last-child > * > .widget,
  .row-fluid > .span9:last-child > * > .widget,
  .row-fluid > .span10:last-child > * > .widget,
  .row-fluid > .span11:last-child > * > .widget,
  .row-fluid > .span12:last-child > * > .widget,
  .row-fluid > .span1:last-child > .widget,
  .row-fluid > .span2:last-child > .widget,
  .row-fluid > .span3:last-child > .widget,
  .row-fluid > .span4:last-child > .widget,
  .row-fluid > .span5:last-child > .widget,
  .row-fluid > .span6:last-child > .widget,
  .row-fluid > .span7:last-child > .widget,
  .row-fluid > .span8:last-child > .widget,
  .row-fluid > .span9:last-child > .widget,
  .row-fluid > .span10:last-child > .widget,
  .row-fluid > .span11:last-child > .widget,
  .row-fluid > .span12:last-child > .widget {
    padding-left: 0;
  }
}
/* 1.2 - Title Styles */
.widgettitle,
.stories h3.widgettitle {
  margin-bottom: 8px;
  font-size: 20px;
  text-transform: uppercase;
  font-weight: bold;
  color: #000000;
}
.widgettitle a,
.stories h3.widgettitle a {
  color: #000000;
}
/* 1.3 - Footer Styles */
#site-footer {
  color: #ffffff;
  /* FOOTER FORM / SEARCH STYLES */
}
#site-footer a:hover {
  color: #61a7e2;
}
#site-footer .widgettitle,
#site-footer li.menu-label {
  color: #ffffff;
  font-size: 16px;
  text-transform: uppercase;
  font-weight: bold;
  margin-bottom: 8px;
  padding-bottom: 4.8px;
}
#site-footer .widget {
  margin: 0 0 12px 0;
}
#site-footer .widgettitle,
#site-footer .widget {
  background: none;
  border: none;
}
#site-footer p,
#site-footer li {
  font-size: 14.4px;
}
#site-footer ul {
  margin: 0;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
#site-footer ul li {
  line-height: 1.25;
  margin-bottom: 12px;
  list-style: none;
}
#site-footer input,
#site-footer select {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
#site-footer select {
  width: 90%;
}
#site-footer input.search-query {
  width: 67%;
  margin-right: 0.5em;
  height: 19px;
}
#site-footer input.search-submit {
  max-width: 25%;
  padding: 0.1em 0.5em;
}
#supplementary .menu-dont-miss-container h4,
#site-footer aside li.menu-label {
  display: none;
}
/* 1.4 - Background Styles (Reverse and None) */
.widget.rev {
  color: #ffffff;
  background-color: #2275bb;
}
.widget.rev .widgettitle {
  background-color: #ffffff;
  color: #2275bb;
  padding: 5px;
}
.widget.rev .widgettitle a {
  color: #2275bb;
}
.widget.rev a {
  color: #ffffff;
  font-weight: bold;
}
.widget.rev .widgettitle a {
  color: #484848;
}
.widget.no-bg {
  background: none;
}
.widget.no-bg p,
.widget.no-bg ul {
  background: none;
  border: none;
}
.widget.no-bg .widgettitle {
  color: #000000;
}
/* 1.5 - Resets and Fixes */
#sidebar iframe {
  max-width: 100%;
}
/* 1.6 - sidebar styles */
#sidebar .widget {
  padding: 0 0 0 24px;
}
#sidebar .widget.rev {
  padding: 24px 24px 0;
}
@media (max-width: 768px) {
  #sidebar .widget {
    padding: 0;
  }
}
.single.normal #sidebar .widget {
  padding: 0 12px;
}
/*------------------------------------------------------------------------------
    2.1 - WordPress Default Widgets

    Either:
    - CREATE a new file for significant changes to a default widget's output.
    - ADD a section to the wp-general.less file and document here.

    wp-general.less
    ---------------------------------------------------------------
    .widget_archives - Archives dropdown
    .widget_categories - Categories dropdown
    .widget_search - Search form
------------------------------------------------------------------------------*/
/**
 * General styles for WordPress default widgets
 *
 * @since 0.5.3
 */
.widget_archive select,
.widget_categories select,
.largo-taxonomy-list select,
.widget_search form {
  margin: 4.8px 0;
}
.widget_archive label,
.widget_categories label {
  border: 0;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}
/*------------------------------------------------------------------------------
    2.2 - Largo widget styles

    This section aims to have one file for every widget included in Largo, and
    select third-party widgets that Largo supports. If you add a rule for a
    widget in a file that does not belong to that widget, please document here
    the file you are adding the rule to.

    Some files in this section contain no rules. See their @see directives for
    more information.
------------------------------------------------------------------------------*/
/**
 * Styles for the Largo About Site widget
 *
 * @since 0.3
 */
.largo-about p {
  margin-bottom: 0;
}
#site-footer .largo-about p {
  margin-bottom: 12px;
}
/**
 * Styles for the Largo Author Bio widget
 *
 * @since 0.5.3
 */
.widget .author-box ul {
  padding: 0;
  margin: 0;
}
.author-box {
  clear: both;
  margin: 0;
}
.author-box img.avatar {
  float: left;
  margin: 5px 15px 10px 0;
  padding: 4px;
  border: 1px solid #dddddd;
}
.author-box p {
  font-size: 16px;
  margin-bottom: 8px;
}
.author-box ul {
  list-style: none;
  margin: 0;
  float: left;
}
.author-box ul li {
  display: inline-block;
  float: left;
  margin-right: 5px;
  min-width: 30px;
}
.author-box ul li a {
  display: block;
  padding: 4px;
  color: #ffffff;
  background-color: #484848;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
}
.author-box ul li a:hover {
  background-color: #626262;
}
.author-box ul li i {
  padding: 4px;
}
.author-box ul li i::before {
  font-size: 14px;
}
.author-box ul li.author-posts-link {
  font-size: 13px;
  font-weight: bold;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.author-box ul li.author-posts-link a {
  padding: 6px 10px;
  color: #ffffff;
}
.author-box ul li.author-posts-link a:hover {
  text-decoration: none;
}
/**
 * Styles for the Largo Disclaimer widget
 *
 * @since 0.5.3
 */
body.normal.single-post .article-bottom .largo-disclaimer,
body.normal.page .article-bottom .largo-disclaimer {
  color: #484848;
}
/**
 * Styles for the Largo Donate Widget
 *
 * @since 0.3
 */
.largo-donate p {
  margin-bottom: 8px;
}
/**
 * Styles for the Largo Follow widget
 *
 * Note: styles for social buttons are in single.less
 *
 * @since 0.5.3
 */
.subscribe {
  display: block;
  font-size: 14px;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  margin-bottom: 6px;
  color: #7d8185;
}
.subscribe:hover {
  text-decoration: none;
  color: #222222;
}
.subscribe i {
  color: #ffffff;
  padding: 0 1em 0 0.5em;
  border-right: 1px solid #ffffff;
  font-size: 13px;
  margin-right: 6px;
  float: left;
}
.article-bottom .largo-follow {
  padding: 0;
}
/**
 * Styles for the Largo Image Widget, aka "Image Widget"
 *
 * @see /inc/widgets/largo-image-widget.php
 * @since 0.5.3
 */
#site-footer .widget-sp-image img {
  max-width: 100% !important;
}
/**
 * Styles for Largo Prev/Next Links widgets
 *
 * @since 0.5.3
 */
/* Next-prev navigation 
 * ----------------------
 * These styles were moved from single.less */
.pager {
  line-height: 1.2;
}
.pager a {
  display: inline-block;
  padding: 10px 15px;
  color: #484848;
  background-color: #e6e6e6;
}
.pager a:hover {
  background-color: #a6a6a6;
  color: #ffffff;
  text-decoration: none;
}
.next {
  width: 48%;
  float: right;
  text-align: right;
}
.next img {
  float: right;
  padding-left: 20px;
}
.previous {
  width: 48%;
  float: left;
  text-align: left;
}
.previous img {
  float: left;
  padding-right: 20px;
}
/**
 * Styles for the Largo Recent Comments widget
 *
 * @see /less/inc/comments.less provides many styles not enumerated here
 * @since 0.5.3
 */
.widget.largo-recent-comments ul {
  margin-left: 0;
  list-style: none;
}
.widget.largo-recent-comments li {
  float: left;
  margin-bottom: 2em;
}
.widget.largo-recent-comments p {
  margin-bottom: 4.8px;
  line-height: 1.3;
}
.widget.largo-recent-comments p.comment-excerpt {
  font-size: 1.5em;
}
.widget.largo-recent-comments p.comment-post {
  float: left;
}
.widget.largo-recent-comments p.comment-meta {
  float: left;
  clear: both;
  color: inherit;
}
.widget.largo-recent-comments p.comment-meta a {
  font-weight: 700;
}
/**
 * Styles for the Largo Related Posts widget
 *
 * @see /less/inc/responsive-767px-max.less
 * @see /less/inc/single.less
 * @since 0.5.3
 */
.widget.largo-related-posts .widgettitle {
  font-size: 1.75em;
  margin-bottom: 20px;
  text-align: center;
}
.widget.largo-related-posts ul.related {
  margin: 0;
}
.widget.largo-related-posts ul.related li {
  list-style: none;
  display: block;
  *zoom: 1;
}
.widget.largo-related-posts ul.related li:before,
.widget.largo-related-posts ul.related li:after {
  display: table;
  content: "";
}
.widget.largo-related-posts ul.related li:after {
  clear: both;
}
.widget.largo-related-posts h4 {
  font-size: 24px;
  margin-bottom: 12px;
  /* Responsive Typography Proportioning */
}
@media only screen and (max-width: 640px) {
  .widget.largo-related-posts h4 {
    font-size: 20px;
    line-height: 1.1;
    margin-bottom: 4.8px;
  }
}
.widget.largo-related-posts h5.byline {
  font-size: 14.4px;
  margin-bottom: 12px;
  /* Hidden on Mobile */
}
@media only screen and (max-width: 640px) {
  .widget.largo-related-posts h5.byline {
    display: none;
  }
}
.widget.largo-related-posts p {
  margin-bottom: 1em;
  /* Hidden on Mobile */
}
@media only screen and (max-width: 640px) {
  .widget.largo-related-posts p {
    font-size: 14.4px;
  }
}
.widget.largo-related-posts .wp-post-image {
  float: left;
  margin: 0.5em 1.2em 0 0;
}
/**
 * Styles for the Largo Series Posts widget
 *
 * @since 0.5.3
 */
.widget.largo-series-posts h4 {
  margin-bottom: 0.4em;
  line-height: 1.3;
  font-size: 16px;
}
.widget.largo-series-posts ul {
  margin-left: 0;
  list-style: none;
}
.widget.largo-series-posts img {
  max-width: 100px;
}
.widget.largo-series-posts i {
  display: block;
  float: left;
  font-size: 110%;
  margin-right: -100%;
}
.widget.largo-series-posts li a {
  padding-left: 2em;
  display: inline-block;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.widget.largo-series-posts a.more {
  text-align: right;
  float: right;
}
.widget.largo-series-posts a.more:after {
  content: " »";
}
/**
 * Styles for the Largo Staff Roster widget
 *
 * @since 0.5.3
 */
ul.staff-roster {
  float: left;
  clear: both;
  margin: 20px 0 0;
  list-style-type: none;
  width: 100%;
}
ul.staff-roster li {
  display: block;
  float: left;
  clear: both;
  margin: 0 0 24px 0;
  width: 100%;
}
ul.staff-roster li img {
  float: left;
  width: 65px;
  height: auto;
  margin: 0 1em 0.5em 0;
  border: 1px solid #dddddd;
  padding: 4.8px;
}
ul.staff-roster .staff-name {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 1.25em;
  margin-bottom: 0.25em;
}
ul.staff-roster p {
  margin: 0.4em 0;
  font-size: 0.9em;
  line-height: 1.1em;
  color: #7d8185;
}
ul.staff-roster p + p {
  margin-top: 0.75em;
}
/**
 * Styles for the Largo Tag List widget
 *
 * @see /less/inc/single.less
 * @since 0.5.3
 */
.labels,
.tags {
  height: 100%;
  overflow: auto;
  margin-bottom: 12px;
}
.labels h5,
.tags h5 {
  display: inline;
  margin: 0;
  font-size: 16px;
  line-height: 16px;
  text-transform: uppercase;
  margin-right: 0.5em;
}
.labels ul,
.tags ul {
  padding: 0;
  display: inline;
  margin: 0;
  font-size: 14.5px;
  line-height: 15px;
  white-space: normal;
}
.labels ul li,
.tags ul li {
  display: inline;
  vertical-align: baseline;
  font-weight: 300;
  white-space: normal;
}
.labels ul li::after,
.tags ul li::after {
  content: "  |  ";
  white-space: pre-wrap;
}
.labels ul li:last-child::after,
.tags ul li:last-child::after {
  display: none;
}
.labels ul li i,
.tags ul li i {
  margin: 1px 3px 0 0;
}
.labels ul li a,
.tags ul li a {
  color: #7d8185;
  text-transform: uppercase;
}
.labels ul li a:hover,
.tags ul li a:hover {
  color: #2f2f2f;
}
.largo-taxonomy-list img {
  max-width: 60px;
  max-height: 60px;
  float: left;
  margin-right: 8px;
}
.largo-taxonomy-list ul {
  margin: 0;
}
.largo-taxonomy-list li {
  list-style: none;
}
.largo-taxonomy-list h5 {
  margin-bottom: 0.5em;
  font-size: 1em;
}
article .largo-taxonomy-list .has-thumbnail a {
  text-align: 0;
  padding: 0;
}
article .largo-taxonomy-list img.attachment-post-thumbnail {
  float: none;
  margin: 0;
  width: 100%;
  max-width: 100%;
  max-height: none;
  margin-left: auto;
  margin-right: auto;
  clear: both;
}
.largo-taxonomy-list li.has-thumbnail a:nth-child(2) {
  padding-left: 68px;
  display: block;
}
article .largo-taxonomy-list li.has-thumbnail a:nth-child(2) {
  padding: 0;
}
/**
 * Styles for the Largo Twitter Widget
 *
 * @since 0.5.5
 */
.largo-twitter {
  max-height: 600px;
  overflow-y: scroll;
}
/**
 * Before Footer, Site Footer
 *
 * #before-footer - a dynamic widget area prior to #site-footer
 * #site-footer
 *   #supplementary - primary widget zones for site footer
 *   #boilerplate - social icons, copyright, INN logo and footer links
 *
 * @since 0.5.3
 */
.before-footer-wrapper {
  background-color: #dddddd;
}
#before-footer .widget:last-child {
  margin-bottom: 0;
}
.footer-bg {
  background-color: #222222;
  padding: 0 0 18px;
  margin-bottom: 0;
}
#supplementary {
  padding: 24px 0 0 0;
}
#supplementary._1col aside {
  text-align: center;
}
/* specific to the one column footer layout */
._1col .widget_nav_menu li {
  display: inline;
  margin-right: 1em;
}
/*
 * image displays 300px wide, but is physically 1699x385 px^2
 * We'll use math to get the padding top and bottom correct, according to the brand guidelines
 * margin top and margin bottom should be equal to the height of one of the squares.
 * By cropping the image to the outer boundary of the lower-left square in inn_logo_reversetype.png, we get a square height of 184px.
 * 184/1669 = x/300
 */
#inn-logo {
  margin-top: 22.04913122px;
  margin-bottom: 16.53684841px;
  max-width: 200px;
}
#footer-logos-bg {
  background-color: #ffffff;
  padding: 10px 0;
}
#footer-logos {
  overflow: hidden;
}
#footer-logos a {
  display: block;
  float: left;
  width: 16.666666667%;
}
#footer-logos a img {
  display: block;
  width: 100%;
  max-width: 180px;
  margin: 0 auto;
}
#footer-logos h6 {
  margin-bottom: 4px;
  padding-bottom: 3px;
  border-bottom: 1px solid #dddddd;
  font-size: 12px;
  color: #7d8185;
  text-transform: uppercase;
  font-weight: normal;
}
#footer-logos h6 a {
  float: right;
  text-align: right;
}
ul#footer-social {
  padding-top: 22.04913122px;
  padding-bottom: 16.53684841px;
  margin: 0 auto;
  width: 100%;
}
@media (max-width: 768px) {
  ul#footer-social {
    text-align: left;
  }
}
ul#footer-social li {
  height: 46.13541043px;
  display: table-cell;
  vertical-align: middle;
  font-size: 18px;
}
@media (max-width: 768px) {
  ul#footer-social li {
    margin-top: 0;
  }
}
ul#footer-social li a {
  padding-right: 10px;
  padding-top: 16.07737739px;
}
ul#footer-social li i {
  position: relative;
  top: 0;
  padding: 5px;
  margin-top: 27.56141402;
  font-size: 18px;
  color: #ffffff;
}
ul#footer-social li i:hover {
  color: #bfbfbf;
}
ul#footer-social li:last-child a {
  padding-right: 0;
}
#boilerplate {
  width: 100%;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
#boilerplate p {
  margin-bottom: 0;
  color: #9F9FA3;
}
#boilerplate .menu {
  display: inline;
  margin: 0;
  font-size: 10.672px;
}
#boilerplate .menu li {
  display: inline;
  padding-right: 10px;
}
#boilerplate .menu {
  clear: none;
}
footer #boilerplate p {
  color: #9F9FA3;
}
footer #boilerplate a {
  color: #dddddd;
}
footer #boilerplate a:hover {
  color: #09C9FF;
}
@media (min-width: 769px) {
  #boilerplate .span6.right {
    text-align: right;
    margin-top: 0;
    margin-bottom: 0;
  }
}
@media (min-width: 979px) {
  .footer-credit-padding-inn-logo-missing {
    margin-top: 84.72139005px;
  }
}
@media (max-width: 979px) {
  #boilerplate .row-fluid .span6 {
    width: 100%;
    clear: both;
    margin-left: 0;
    text-align: center;
  }
  ul#footer-social {
    display: inline-block;
    width: auto;
    margin: 0 auto;
  }
  .footer-credit span {
    display: block;
  }
}
.screen-reader-text,
.back-to-top {
  border: 0;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}
.header-ad-zone {
  text-align: center;
}
.header-ad-zone #header-ad-zone-container {
  display: inline-block;
  text-align: center;
  /* ACM ad zones only, sorry */
}
.header-ad-zone #header-ad-zone-container .acm_ad_zones {
  display: inline-block;
  text-align: left;
}
#header-ad-zone-container,
#before-footer {
  width: 100%;
}
#header-ad-zone-container div div,
#before-footer div div {
  display: block !important;
  max-width: 728px;
  margin: 1em auto;
}
#header-ad-zone-container .widget {
  margin-bottom: 0;
}
#header-ad-zone-container div div {
  margin: 0.5em auto 0;
}
.sticky,
.bypostauthor,
.gallery-caption {
  display: normal;
}
.alignnone {
  margin: 18px 0;
}
.aligncenter,
.align-center,
.center {
  clear: both;
  display: block;
  margin: 18px auto;
}
.alignright,
.align-right,
.right {
  float: right;
  margin: 6px 0 12px 20px;
}
.alignleft,
.align-left,
.left {
  float: left;
  margin: 6px 20px 12px 0;
}
img,
img[class*="align"],
img[class*="wp-image-"] {
  max-width: 100%;
  height: auto;
  clear: both;
}
.alignfull,
.alignwide {
  max-width: 100vw;
}
.alignfull img,
.alignwide img {
  width: 100%;
  display: block;
}
.alignfull {
  width: 100vw;
  margin-left: 50%;
  transform: translateX(-50%);
  max-width: none;
}
.alignwide {
  max-width: none;
  width: auto;
  margin-left: calc(-0.5 * (95vw * 0.17021276594) );
  margin-right: calc(-0.5 * (95vw * 0.17021276594) );
}
@media only screen and (max-width: 979px) {
  .alignwide {
    margin-left: calc(-0.5 * (2.5vw + 6.38297872%) );
    margin-right: calc(-0.5 * (2.5vw + 6.38297872%) );
  }
}
@media (min-width: 1229px) {
  .classic .alignfull {
    width: calc( 100% + ( 0.5 * ( 100vw - 1170px ) ) + ( 1170px * 0.0212765957 ) );
    margin-left: calc( -0.5 * ( 100vw - 1170px ) );
    transform: none;
  }
}
@media (max-width: 1228px) {
  .classic .alignfull {
    width: calc( 100% + 2.5vw + ( 95vw * 0.0212765957 ) );
    margin-left: -2.5vw;
    transform: none;
  }
}
@media (max-width: 768px) {
  .classic .alignfull {
    width: 100vw;
  }
}
@media (min-width: 1229px) {
  .classic .alignwide {
    width: calc( 100% + ( 0.5 * ( 100vw - 1170px ) ) + ( 1170px * 0.0212765957 ) );
    margin-left: calc( -0.5 * ( 100vw - 1170px ) );
    transform: none;
  }
}
@media (max-width: 1228px) {
  .classic .alignwide {
    width: calc( 100% + 2.5vw + ( 95vw * 0.0212765957 ) );
    margin-left: -2.5vw;
    transform: none;
  }
}
@media (max-width: 768px) {
  .classic .alignwide {
    width: 100vw;
    margin-left: -2.5vw;
    margin-right: -2.5vw;
  }
}
@media (max-width: 1396px) {
  .page-template-full-page .alignwide {
    margin-left: -1.25vw;
    margin-right: -1.25vw;
    max-width: 97.5vw;
  }
}
.embed-container,
.type-embed {
  position: relative;
  padding-bottom: 56.25%;
  /* 16/9 ratio */
  padding-top: 30px;
  /* IE6 workaround*/
  height: 0;
  overflow: hidden;
  margin-bottom: 28px;
}
.embed-container iframe,
.embed-container object,
.embed-container embed,
.type-embed iframe,
.type-embed object,
.type-embed embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
figure iframe {
  max-width: 100%;
}
.hidden {
  display: none;
  visibility: hidden;
}
.visible-phone {
  display: none !important;
}
.visible-tablet {
  display: none !important;
}
.hidden-desktop {
  display: none !important;
}
@media (max-width: 768px) {
  .visible-phone {
    display: inherit !important;
  }
  .hidden-phone {
    display: none !important;
  }
  .hidden-desktop {
    display: inherit !important;
  }
  .visible-desktop {
    display: none !important;
  }
}
@media (min-width: 769px) and (max-width: 979px) {
  .visible-tablet {
    display: inherit !important;
  }
  .hidden-tablet {
    display: none !important;
  }
  .hidden-desktop {
    display: none !important;
  }
  .visible-desktop {
    display: none !important ;
  }
}
@media (min-width: 1200px) {
  .global-nav,
  #page,
  #site-footer,
  #footer-logos,
  #before-footer {
    margin: 0 auto;
  }
}
@media screen and (min-width: 1600px) {
  .global-nav,
  #site-footer,
  #footer-logos {
    padding: 0;
  }
  #page {
    padding: 0 20px;
  }
}
@media (min-width: 769px) and (max-width: 979px) {
  .global-nav,
  #page,
  #site-footer,
  #footer-logos {
    padding: 0 18px;
  }
  #main {
    margin: 12px 0 0;
  }
  h1.branding,
  h2.branding {
    font-size: 44px;
  }
  h1.branding .tagline,
  h2.branding .tagline {
    font-size: 19.552px;
  }
  #footer-logos,
  #footer-logos .logo4 {
    clear: both;
  }
  #footer-logos a {
    width: 33.3333333333%;
  }
  #homepage-bottom .widget.odd,
  #homepage-bottom .widget.even {
    clear: both;
    float: none;
    width: 95%;
    margin: 0 0 24px;
    padding-left: 2.5%;
    padding-right: 2.5%;
  }
  #series-main #sidebar-left {
    display: none;
  }
  #series-main #content.span5 {
    width: 63%;
    float: left;
  }
  #series-main #sidebar {
    float: right;
  }
  .sticky-main-feature,
  .sticky-features-list {
    clear: both;
    width: 100% !important;
    margin: 0 !important;
  }
}
@media (max-width: 768px) {
  #sidebar,
  #site-footer div[class^="span"],
  .half,
  .full,
  #left-rail,
  #content-main {
    clear: both;
    float: none;
    width: 100%;
    margin: 0 0 24px;
  }
  #homepage-bottom .widget.odd,
  #homepage-bottom .widget.even {
    width: 95%;
    clear: both;
    float: none;
    padding-left: 2.5%;
    padding-right: 2.5%;
  }
  .half,
  .full,
  #content-main {
    margin: 0;
  }
  #page {
    padding-bottom: 12px;
  }
  #main {
    margin: 8px 0 0;
  }
  #content {
    width: 100%;
  }
  .global-nav ul {
    display: none;
  }
  .global-nav .nav-right {
    width: 100%;
  }
  .global-nav .nav-right .donate-btn {
    float: left;
    margin-left: 0;
  }
  h1.entry-title,
  h1.page-title {
    font-size: 32px;
    line-height: 1.2;
  }
  .category-background .related-topics ul {
    line-height: 1.5;
  }
  .stories h2.entry-title,
  .sticky-main-feature h2,
  .carousel-caption h2 {
    font-size: 24px;
  }
  .sticky-main-feature,
  .sticky-features-list {
    clear: both;
    width: 100% !important;
    margin: 0 !important;
  }
  #site-footer .widget_nav_menu li a {
    font-size: 19px;
    padding: 10px 0;
  }
  #footer-logos .logo4 {
    clear: both;
  }
  #footer-logos a {
    width: 33.3333333333%;
  }
  #footer-logos h6 a {
    display: inline;
    clear: both;
    float: none;
    text-align: left;
  }
  #ft-social {
    float: left;
  }
  #ft-social li {
    margin-right: 10px;
    margin-left: 10px;
  }
  #ft-social li i {
    font-size: 32px;
  }
  #site-footer input {
    margin-bottom: 24px;
  }
  #site-footer input.search-query {
    height: 32px;
    width: 74%;
    float: left;
  }
  #site-footer input.search-submit {
    padding: 8px 2%;
    width: 20%;
    float: right;
  }
  #boilerplate p.back-to-top {
    padding-top: 12px;
  }
  #series-main #sidebar-left {
    display: none;
  }
  #series-main #content {
    margin-left: 0;
  }
  .global-nav-bg {
    display: none;
  }
  .navbar .btn-navbar {
    display: block;
  }
  .category .row-fluid > * {
    width: 100%;
    margin-left: 0;
  }
  .category .span4 img {
    display: block;
    margin: 0 auto 1em;
  }
  .category .secondary-featured-post img {
    float: left;
    max-width: 23%;
    margin-right: 3%;
    margin-top: 1em;
    margin-bottom: 0.5em;
  }
}
@media (max-width: 480px) {
  #footer-logos h6 a {
    display: inline;
    clear: both;
    float: none;
    text-align: left;
  }
}
@media print {
  * {
    background: transparent !important;
    color: #000 !important;
    box-shadow: none !important;
    text-shadow: none !important;
    filter: none !important;
    -ms-filter: none !important;
  }
  a,
  a:visited {
    color: #000066;
    text-decoration: underline;
  }
  .hero {
    float: right;
  }
  hr {
    margin: 12px 0;
  }
  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid;
  }
  /* One column display */
  body.normal.single-post .hero,
  body.normal.page .hero {
    width: 60%;
    /* save some paper. */
    margin-left: 0;
    margin-bottom: 0;
    float: none;
  }
  #content > img.size-large,
  #content .wp-caption img.size-large {
    max-width: 60% !important;
    height: auto;
  }
  aside.type-pull-quote {
    margin-bottom: 12px;
  }
  #content.span8[role=main] {
    margin-left: 0 !important;
  }
  thead {
    display: table-header-group;
  }
  tr,
  img {
    page-break-inside: avoid;
  }
  img {
    /*
		max-width:100% !important
	*/
  }
  @page {
    margin: 0.5cm 0.5cm 1cm;
  }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
  .author .url {
    text-decoration: none;
  }
  nav,
  iframe,
  object,
  audio,
  video,
  .global-nav,
  #site-header,
  .post-social,
  .bottom-meta,
  .author-box,
  #related-posts,
  #comments,
  .post-nav,
  #sidebar,
  #site-footer,
  .sticky-nav-wrapper,
  .article-bottom .widget:not(.largo-disclaimer) {
    display: none;
  }
  .article-bottom {
    border-top: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
  }
  .module,
  .module.image,
  .wp-caption,
  .wp-media-credit,
  p.wp-caption-text,
  .largo-disclaimer,
  .hero {
    font-size: 10px !important;
    font-style: italic;
  }
  .hero p.wp-media-credit,
  .hero p.wp-caption,
  .hero p.wp-caption-text {
    width: 100% !important;
    margin: 0 !important;
  }
  .edit-link {
    display: none;
  }
  .print-header {
    display: block;
    border-bottom: 1px solid #000;
    margin-bottom: 0;
  }
  .print-header strong {
    display: inline-block;
    border-right: 1px solid #000;
    padding-right: 10px;
    margin-right: 10px;
  }
  p,
  ul,
  ol,
  .byline {
    font-size: 12px !important;
    margin-bottom: 10px;
  }
  h1,
  h2,
  h2,
  h4,
  h5,
  h6,
  .entry-content h3 {
    font-size: 16px !important;
  }
  h1.entry-title {
    font-size: 28px !important;
  }
  .entry-content a:link:after,
  .entry-content a:visited:after {
    content: " (" attr(href) ") ";
    font-size: 80%;
  }
  .DV-container {
    display: none;
  }
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxlc3MvaW5jL3Jlc2V0Lmxlc3MiLCJsZXNzL2luYy9taXhpbnMubGVzcyIsImxlc3MvaW5jL3R5cG9ncmFwaHkubGVzcyIsImxlc3MvaW5jL3ZhcmlhYmxlcy5sZXNzIiwibGVzcy9pbmMvaW1hZ2VzLmxlc3MiLCJsZXNzL2luYy9mb3Jtcy5sZXNzIiwibGVzcy9pbmMvYnV0dG9ucy5sZXNzIiwibGVzcy9pbmMvdGFibGVzLmxlc3MiLCJsZXNzL2luYy9pY29ucy5sZXNzIiwibGVzcy9pbmMvbGF5b3V0Lmxlc3MiLCJsZXNzL2luYy9oZWFkZXIubGVzcyIsImxlc3MvaW5jL25hdmJhci1jb21tb24ubGVzcyIsImxlc3MvaW5jL25hdmJhci1zdGlja3kubGVzcyIsImxlc3MvaW5jL3Bvc3RzLWFuZC1wYWdlcy5sZXNzIiwibGVzcy9pbmMvYXJjaGl2ZXMubGVzcyIsImxlc3MvaW5jL3NlYXJjaC5sZXNzIiwibGVzcy9pbmMvc3RpY2t5Lmxlc3MiLCJsZXNzL2luYy9zaW5nbGUubGVzcyIsImxlc3MvaW5jL2hvbWVwYWdlLmxlc3MiLCJsZXNzL2luYy9jb21tZW50cy5sZXNzIiwibGVzcy9pbmMvd2lkZ2V0cy5sZXNzIiwibGVzcy9pbmMvd2lkZ2V0cy93cC1nZW5lcmFsLmxlc3MiLCJsZXNzL2luYy93aWRnZXRzL2xhcmdvLWFib3V0LXNpdGUubGVzcyIsImxlc3MvaW5jL3dpZGdldHMvbGFyZ28tYXV0aG9yLWJpby5sZXNzIiwibGVzcy9pbmMvd2lkZ2V0cy9sYXJnby1kaXNjbGFpbWVyLmxlc3MiLCJsZXNzL2luYy93aWRnZXRzL2xhcmdvLWRvbmF0ZS13aWRnZXQubGVzcyIsImxlc3MvaW5jL3dpZGdldHMvbGFyZ28tZm9sbG93Lmxlc3MiLCJsZXNzL2luYy93aWRnZXRzL2xhcmdvLWltYWdlLXdpZGdldC5sZXNzIiwibGVzcy9pbmMvd2lkZ2V0cy9sYXJnby1wcmV2LW5leHQtbGlua3MubGVzcyIsImxlc3MvaW5jL3dpZGdldHMvbGFyZ28tcmVjZW50LWNvbW1lbnRzLmxlc3MiLCJsZXNzL2luYy93aWRnZXRzL2xhcmdvLXJlbGF0ZWQtcG9zdHMubGVzcyIsImxlc3MvaW5jL3dpZGdldHMvbGFyZ28tc2VyaWVzLXBvc3RzLmxlc3MiLCJsZXNzL2luYy93aWRnZXRzL2xhcmdvLXN0YWZmLXJvc3Rlci5sZXNzIiwibGVzcy9pbmMvd2lkZ2V0cy9sYXJnby10YWctbGlzdC5sZXNzIiwibGVzcy9pbmMvd2lkZ2V0cy9sYXJnby10YXhvbm9teS1saXN0Lmxlc3MiLCJsZXNzL2luYy93aWRnZXRzL2xhcmdvLXR3aXR0ZXIubGVzcyIsImxlc3MvaW5jL2Zvb3Rlci5sZXNzIiwibGVzcy9pbmMvYWRzLmxlc3MiLCJsZXNzL2luYy93cC1yZXNwb25zaXZlLW1lZGlhLmxlc3MiLCJsZXNzL2luYy9yZXNwb25zaXZlLXV0aWxpdGllcy5sZXNzIiwibGVzcy9pbmMvcmVzcG9uc2l2ZS0xMjAwcHgtbWluLmxlc3MiLCJsZXNzL2luYy9yZXNwb25zaXZlLTc2OHB4LTk3OXB4Lmxlc3MiLCJsZXNzL2luYy9yZXNwb25zaXZlLTc2N3B4LW1heC5sZXNzIiwibGVzcy9pbmMvcHJpbnQubGVzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNFLGNBQUE7O0FBTUY7QUFDQTtBQUNBO0VBQ0UscUJBQUE7RUFDQSxnQkFBQTtFQUNBLFFBQUE7O0FBTUYsS0FBSyxJQUFJO0VBQ0wsYUFBQTs7QUFNSjtFQUNFLGVBQUE7RUFDQSw4QkFBQTtFQUNJLDBCQUFBOztBQUdOLENBQUM7RUNlQyx5QkFBQTtFQUVBLDBDQUFBO0VBQ0Esb0JBQUE7O0FEZEYsQ0FBQztBQUNELENBQUM7RUFDQyxVQUFBOztBQU1GO0FBQ0E7RUFDRSxrQkFBQTtFQUNBLGNBQUE7RUFDQSxjQUFBO0VBQ0Esd0JBQUE7O0FBRUY7RUFDRSxXQUFBOztBQUVGO0VBQ0UsZUFBQTs7QUFNRjtFQUNFLGVBQUE7RUFDQSxzQkFB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LFVBQVcsZUFHVDtBQUZGLFVBQVcsY0FFVDtBQUhGLFVBQVcsZUFJVDtBQUhGLFVBQVcsY0FHVDtBQUpGLFVBQVcsZUFLVDtBQUpGLFVBQVcsY0FJVDtBQUxGLFVBQVcsZUFNVDtBQUxGLFVBQVcsY0FLVDtBQU5GLFVBQVcsZUFPVDtBQU5GLFVBQVcsY0FNVDtBQVBGLFVBQVcsZUFRVDtBQVBGLFVBQVcsY0FPVDtBQVJGLFVBQVcsZUFTVDtBQVJGLFVBQVcsY0FRVDtBQVRGLFVBQVcsZUFVVDtBQVRGLFVBQVcsY0FTVDtBQVZGLFVBQVcsZUFXVDtBQVZGLFVBQVcsY0FVVDtBQVhGLFVBQVcsZUFZVDtBQVhGLFVBQVcsY0FXVDtBQVpGLFVBQVcsZUFhVDtBQVpGLFVBQVcsY0FZVDtFQUNFLHFCQUFBOztBSnNYQTtBQUNBO0FBQ0E7RUFDRSxjQUFBOztBQVpBLEtBQUssS0FBSztBQUFVLFFBQVEsS0FBSztBQUFVLGlCQUFpQixLQUFLO0VBTWpFLG1CQUFBOztBQU5BLEtBQUssS0FBSztBQUFVLFFBQVEsS0FBSztBQUFVLGlCQUFpQixLQUFLO0VBTWpFLG1CQUFBOztBQU5BLEtBQUssS0FBSztBQUFVLFFBQVEsS0FBSztBQUFVLGlCQUFpQixLQUFLO0VBTWpFLGtCQUFBOztBQU5BLEtBQUssS0FBSztBQUFVLFFBQVEsS0FBSztBQUFVLGlCQUFpQixLQUFLO0VBTWpFLGtCQUFBOztBQU5BLEtBQUssS0FBSztBQUFVLFFBQVEsS0FBSztBQUFVLGlCQUFpQixLQUFLO0VBTWpFLGtCQUFBOztBQU5BLEtBQUssS0FBSztBQUFVLFFBQVEsS0FBSztBQUFVLGlCQUFpQixLQUFLO0VBTWpFLGtCQUFBOztBQU5BLEtBQUssS0FBSztBQUFVLFFBQVEsS0FBSztBQUFVLGlCQUFpQixLQUFLO0VBTWpFLG1CQUFBOztBQU5BLEtBQUssS0FBSztBQUFVLFFBQVEsS0FBSztBQUFVLGlCQUFpQixLQUFLO0VBTWpFLG1CQUFBOztBQU5BLEtBQUssS0FBSztBQUFVLFFBQVEsS0FBSztBQUFVLGlCQUFpQixLQUFLO0VBTWpFLG1CQUFBOztBQU5BLEtBQUssS0FBSztBQUFVLFFBQVEsS0FBSztBQUFVLGlCQUFpQixLQUFLO0VBTWpFLG1CQUFBOztBQU5BLEtBQUssS0FBSztBQUFVLFFBQVEsS0FBSztBQUFVLGlCQUFpQixLQUFLO0VBTWpFLGtCQUFBOztBQU5BLEtBQUssS0FBSztBQUFVLFFBQVEsS0FBSztBQUFVLGlCQUFpQixLQUFLO0VBTWpFLG1CQUFBOztBSWxXTixLQUFLO0FBQ0wsTUFBTTtBQUNOLFFBQVE7QUFDUixLQUFLO0FBQ0wsTUFBTTtBQUNOLFFBQVE7RUFDTixtQkFBQTtFQUNBLHlCQUFBO0VBQ0Esa0JBQUE7O0FBR0YsS0FBSyxjQUFjO0FBQ25CLEtBQUssaUJBQWlCO0FBQ3RCLEtBQUssY0FBYztBQUNuQixLQUFLLGlCQUFpQjtFQUNwQiw2QkFBQTs7QUFVRixjQUFjLFFKekpaO0FJeUpGLGNBQWMsUUp4Slo7QUl3SkYsY0FBYyxRSnZKWjtFQUNFLGNBQUE7O0FJc0pKLGNBQWMsUUpuSlo7QUltSkYsY0FBYyxRSmxKWjtBSWtKRixjQUFjLFFKakpaO0FJaUpGLGNBQWMsUUpoSlo7QUlnSkYsY0FBYyxRSi9JWjtFQUNFLGNBQUE7RUFDQSxxQkFBQTs7QUFDQSxjSTRJVSxRSm5KWixVQU9HO0FBQUQsY0k0SVUsUUpsSlosT0FNRztBQUFELGNJNElVLFFKakpaLE1BS0c7QUFBRCxjSTRJVSxRSmhKWixPQUlHO0FBQUQsY0k0SVUsUUovSVosU0FHRztFQUNDLHFCQUFBO0VBMkJKLG1DQUFBO0VBQ0csZ0NBQUE7RUFDSywyQkFBQTs7QUk4R1YsY0FBYyxRSnRJWixlQUFlO0FJc0lqQixjQUFjLFFKcklaLGNBQWM7RUFDWixjQUFBO0VBQ0EseUJBQUE7RUFDQSxxQkFBQTs7QUlzSUosY0FBYyxNSjdKWjtBSTZKRixjQUFjLE1KNUpaO0FJNEpGLGNBQWMsTUozSlo7RUFDRSxjQUFBOztBSTBKSixjQUFjLE1KdkpaO0FJdUpGLGNBQWMsTUp0Slo7QUlzSkYsY0FBYyxNSnJKWjtBSXFKRixjQUFjLE1KcEpaO0FJb0pGLGNBQWMsTUpuSlo7RUFDRSxjQUFBO0VBQ0EscUJBQUE7O0FBQ0EsY0lnSlUsTUp2SlosVUFPRztBQUFELGNJZ0pVLE1KdEpaLE9BTUc7QUFBRCxjSWdKVSxNSnJKWixNQUtHO0FBQUQsY0lnSlUsTUpwSlosT0FJRztBQUFELGNJZ0pVLE1KbkpaLFNBR0c7RUFDQyxxQkFBQTtFQTJCSixtQ0FBQTtFQUNHLGdDQUFBO0VBQ0ssMkJBQUE7O0FJa0hWLGNBQWMsTUoxSVosZUFBZTtBSTBJakIsY0FBYyxNSnpJWixjQUFjO0VBQ1osY0FBQTtFQUNBLHlCQUFBO0VBQ0EscUJBQUE7O0FJMElKLGNBQWMsUUpqS1o7QUlpS0YsY0FBYyxRSmhLWjtBSWdLRixjQUFjLFFKL0paO0VBQ0UsY0FBQTs7QUk4SkosY0FBYyxRSjNKWjtBSTJKRixjQUFjLFFKMUpaO0FJMEpGLGNBQWMsUUp6Slo7QUl5SkYsY0FBYyxRSnhKWjtBSXdKRixjQUFjLFFKdkpaO0VBQ0UsY0FBQTtFQUNBLHFCQUFBOztBQUNBLGNJb0pVLFFKM0paLFVBT0c7QUFBRCxjSW9KVSxRSjFKWixPQU1HO0FBQUQsY0lvSlUsUUp6SlosTUFLRztBQUFELGNJb0pVLFFKeEpaLE9BSUc7QUFBRCxjSW9KVSxRSnZKWixTQUdHO0VBQ0MscUJBQUE7RUEyQkosbUNBQUE7RUFDRyxnQ0FBQTtFQUNLLDJCQUFBOztBSXNIVixjQUFjLFFKOUlaLGVBQWU7QUk4SWpCLGNBQWMsUUo3SVosY0FBYztFQUNaLGNBQUE7RUFDQSx5QkFBQTtFQUNBLHFCQUFBOztBSWdKSixLQUFLLE1BQU0sU0FBUztBQUNwQixRQUFRLE1BQU0sU0FBUztBQUN2QixNQUFNLE1BQU0sU0FBUztFQUNuQixjQUFBO0VBQ0EscUJBQUE7O0FBQ0EsS0FMRyxNQUFNLFNBQVMsUUFLakI7QUFBRCxRQUpNLE1BQU0sU0FBUyxRQUlwQjtBQUFELE1BSEksTUFBTSxTQUFTLFFBR2xCO0VBQ0MscUJBQUE7RUpwSUYsbUNBQUE7RUFDRyxnQ0FBQTtFQUNLLDJCQUFBOztBSTRJVjtFQUNFLHFCQUFBO0VBQ0EsZUFBQTtFQUNBLGtCQUFBO0VBQ0EseUJBQUE7RUFDQSw2QkFBQTtFSnJXQSxRQUFBOztBQUNBLGFBQUM7QUFDRCxhQUFDO0VBQ0MsY0FBQTtFQUNBLFNBQVMsRUFBVDs7QUFFRixhQUFDO0VBQ0MsV0FBQTs7QUltV0o7RUFDRSxnQkFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSx5QkFBQTtFQUNBLGtCQUFBO0VKN0pBLHdEQUFBO0VBQ0cscURBQUE7RUFDSyxnREFBQTs7QUF6R1A7RUFDQyxjQUFBOztBQUVEO0VBQ0MsY0FBQTs7QUFFRDtFQUNDLGNBQUE7O0FJeVFKO0FBQ0E7RUFDRSxjQUFBOztBQUdGO0VBQ0UsY0FBQTtFQUNBLG1CQUFBOztBQUdGO0VBQ0UscUJBQUE7RUpsVUEsZ0JBQUE7O0VBQ0EsUUFBQTtFSW1VQSxzQkFBQTtFQUNBLGlCQUFBOztBQVNGO0FBQ0E7RUFDRSxrQkFBQTs7QUFGRixjQUdFO0FBRkYsYUFFRTtBQUhGLGNBSUU7QUFIRixhQUdFO0FBSkYsY0FLRTtBQUpGLGFBSUU7RUFDRSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtFQUNBLHNCQUFBOztBQUVBLGNBUkYsTUFRRztBQUFELGFBUkYsTUFRRztBQUFELGNBUEYsT0FPRztBQUFELGFBUEYsT0FPRztBQUFELGNBTkYsa0JBTUc7QUFBRCxhQU5GLGtCQU1HO0VBQ0MsVUFBQTs7QUFaTixjQWVFO0FBZEYsYUFjRTtFQUNFLHVCQUFBOztBQWhCSixjQWtCRTtBQWpCRixhQWlCRTtFQUNFLHFCQUFBO0VBQ0EsV0FBQTtFQUNBLFdBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxtQkFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSw0QkFBQTtFQUNBLHNCQUFBO0VBQ0EseUJBQUE7RUFDQSxzQkFBQTs7QUE5QkosY0FnQ0U7QUEvQkYsYUErQkU7QUFoQ0YsY0FpQ0U7QUFoQ0YsYUFnQ0U7RUFDRSxpQkFBQTs7QUFsQ0osY0FvQ0U7QUFuQ0YsYUFtQ0U7RUFDRSx5QkFBQTtFQUNBLHFCQUFBOztBQUdKLGNBQ0U7QUFERixjQUVFO0VBQ0Usa0JBQUE7O0FBTUosYUFLRTtFQUNFLHdCQUFBO0VBQ0EsdUJBQUE7O0FBVUosWUFHRTtBQUZGLFlBRUU7QUFERixnQkFDRTtBQUhGLFlBSUU7QUFIRixZQUdFO0FBRkYsZ0JBRUU7QUFKRixZQUtFO0FBSkYsWUFJRTtBQUhGLGdCQUdFO0FBTEYsWUFNRTtBQUxGLFlBS0U7QUFKRixnQkFJRTtBQU5GLFlBT0U7QUFORixZQU1FO0FBTEYsZ0JBS0U7QUFQRixZQVFFO0FBUEYsWUFPRTtBQU5GLGdCQU1FO0FBUkYsWUFTRTtBQVJGLFlBUUU7QUFQRixnQkFPRTtFQUNFLHFCQUFBO0VKM1pGLGdCQUFBOztFQUNBLFFBQUE7RUk0WkUsZ0JBQUE7O0FBWkosWUFlRTtBQWRGLFlBY0U7QUFiRixnQkFhRTtFQUNFLGFBQUE7O0FBR0osWUFBYTtBQUNiLFlBQWE7RUFDWCxxQkFBQTs7QUFHRixZQUFhO0FBQ2IsWUFBYTtBQUNiLFlBQWE7QUFDYixZQUFhO0VBQ1gsZ0JBQUE7O0FBR0YsWUFBYTtBQUNiLFlBQWE7QUFDYixZQUFhO0FBQ2IsWUFBYTtFQUNYLGVBQUE7RUFDQSxnQkFBQTtFQUNBLHNCQUFBOztBQUdGLFlBQWEsT0FBTyxNQUFLO0FBQ3pCLFlBQWEsVUFBVSxNQUFLO0FBQzVCLFlBQWEsT0FBTyxNQUFLO0FBQ3pCLFlBQWEsVUFBVSxNQUFLO0VBQzFCLFdBQUE7RUFDQSxpQkFBQTtFQUNBLGNBQUE7O0FBS0Y7RUFDRSxtQkFBQTs7QUFJRixNQUFPO0VBQ0wsZUFBQTtFQUNBLHFDQUFBOztBQU1GLGdCQUVFO0VBQ0Usa0JBQUE7RUp4aEJGLFFBQUE7O0FBQ0EsZ0JJc2hCQSxlSnRoQkM7QUFDRCxnQklxaEJBLGVKcmhCQztFQUNDLGNBQUE7RUFDQSxTQUFTLEVBQVQ7O0FBRUYsZ0JJaWhCQSxlSmpoQkM7RUFDQyxXQUFBOztBSThnQkosZ0JBT0U7RUFDRSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7O0FBWEosZ0JBY0U7RUFHRSxzQkFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBOztBQUNBLGdCQVBGLFVBT0c7RUFDQyxvQkFBQTs7QUF0Qk4sZ0JBMEJFO0VBQ0UsZ0JBQUE7RUFDQSxnQkFBQTs7QUE1QkosZ0JBK0JFO0VBQ0UsbUJBQUE7Ozs7O0FBT0osY0FFRTtFQUNFLFdBQUE7RUFDQSxVQUFBO0VBQ0EsNkJBQUE7RUFDQSxZQUFBOztBQU5KLGNBUUU7RUFDRSx3QkFBQTs7QUFUSixjQWFFLGdCQUVFO0FBZkosY0FjRSw2QkFDRTtFQUNFLDZCQUFBOztBQWhCTixjQWFFLGdCQUtFO0FBbEJKLGNBY0UsNkJBSUU7RUFDRSxTQUFBO0VBQ0EseUJBQUE7RUFDQSxnQkFBQTs7QUFyQk4sY0FhRSxnQkFVRTtBQXZCSixjQWNFLDZCQVNFO0VBQ0UsU0FBQTtFQUNBLFVBQUE7O0FBQ0EsY0FiSixnQkFVRSxHQUdHO0FBQUQsY0FaSiw2QkFTRSxHQUdHO0VBQ0MsNkJBQUE7O0FBM0JSLGNBYUUsZ0JBaUJFLEdBQUU7QUE5Qk4sY0FjRSw2QkFnQkUsR0FBRTtFQUNBLFVBQUE7RUFDQSxtQkFBQTs7QUFoQ04sY0FhRSxnQkFxQkUsTUFBSztBQWxDVCxjQWNFLDZCQW9CRSxNQUFLO0VKNVlQLHdCQUFBO0VBQ0cscUJBQUE7RUFDSyxnQkFBQTs7QUl3V1YsY0FhRSxnQkF3QkUsTUFBSztBQXJDVCxjQWNFLDZCQXVCRSxNQUFLO0VBQ0gsNEJBQUE7RUFDQSx1QkFBQTtFQUNBLGVBQUE7RUFDQSwyQkFBQTtFSjdPRix5QkFBQTtFQUNBLGtCQUFrQiwyQ0FBbEI7RUFDQSxrQkFBa0IsMENBQWxCO0VBQ0Esa0JBQWtCLHNDQUFzQyxlQUFtQixZQUEzRTtFQUNBLGtCQUFrQiw4Q0FBbEI7RUFDQSxrQkFBa0IseUNBQWxCO0VBQ0Esa0JBQWtCLHNDQUFsQjtFQUNBLDJCQUFBO0VBQ0Esa0hBQUE7O0FJdU9FLGNBOUJKLGdCQXdCRSxNQUFLLHFCQU1GO0FBQUQsY0E3QkosNkJBdUJFLE1BQUsscUJBTUY7RUovT0gseUJBQUE7RUFDQSxrQkFBa0IsMkNBQWxCO0VBQ0Esa0JBQWtCLDBDQUFsQjtFQUNBLGtCQUFrQixzQ0FBc0MsZUFBbUIsWUFBM0U7RUFDQSxrQkFBa0IsOENBQWxCO0VBQ0Esa0JBQWtCLHlDQUFsQjtFQUNBLGtCQUFrQixzQ0FBbEI7RUFDQSwyQkFBQTtFQUNBLGtIQUFBOztBS2xZSjtFQUNFLHFCQUFBO0VBQ0EsaUJBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBOztBQUVGO0VBUEUscUJBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7RUFJQSxnQkFBQTtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLHNCQUFBO0VBQ0EsZUFBQTtFQUNBLHlCQUFBOztBQUdGLElBQUk7RUFDRixjQUFBO0VBQ0EscUJBQUE7RUFDQSx5QkFBQTtFQUNBLDBCQUFBOztFQUNBLDRCQUFBO0VMb01BLG1EQUFBO0VBQ0csZ0RBQUE7RUFDQywrQ0FBQTtFQUNDLDhDQUFBO0VBQ0csMkNBQUE7O0FLak1WLElBQUk7RUx1QkYseUJBQUE7RUFFQSwwQ0FBQTtFQUNBLG9CQUFBOztBS3ZCRixJQUFJO0FBQ0osSUFBSTtFQUNGLHlCQUFBO0VBQ0EsNEJBQUE7RUFDQSxzQkFBQTtFQUNBLFVBQUE7O0FBRUYsSUFBSTtBQUNKLElBQUk7RUFDRixlQUFBO0VBQ0EseUJBQUE7RUFDQSxzQkFBQTtFTHFTQSxhQUFBO0VBQ0EseUJBQUE7RUE5SEEsd0JBQUE7RUFDRyxxQkFBQTtFQUNLLGdCQUFBOztBS2hLVjtFQUNFLGlCQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBOztBQUVGLFVBQVc7RUFDVCxlQUFBOztBQUlGO0VBQ0UsZ0JBQUE7RUFDQSxlQUFBO0VBQ0EsbUJBQUE7O0FBRUYsVUFBVztFQUNULGdCQUFBOztBQUlGO0VBQ0UsZ0JBQUE7RUFDQSxlQUFBO0VBQ0EsbUJBQUE7O0FBU0YsWUFBWTtFQUNWLGdDQUFBOztBQUtGO0VBRUUsa0JBQUE7RUFDQSx5QkFBQTs7QUFFRjtBQUNBLFlBQVk7RUFDVixjQUFBO0VBQ0EseUJBQUE7O0FBR0YsWUFBWTtFQUNWLHlCQUFBO0VBQ0EsMEJBQUE7O0VBQ0EsNEJBQUE7RUxpSEEsbURBQUE7RUFDRyxnREFBQTtFQUNDLCtDQUFBO0VBQ0MsOENBQUE7RUFDRywyQ0FBQTs7QU0vTlY7RUFDRSxlQUFBO0VBQ0EsV0FBQTtFQUNBLDZCQUFBO0VBQ0EseUJBQUE7RUFDQSxpQkFBQTtFQUNBLHlCQUFBO0VBQ0EsY0FBQTtFQUNBLGtCQUFBOztBQVJGLEtBVUU7QUFWRixLQVdFO0VBQ0UsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxtQkFBQTtFQUNBLDZCQUFBO0VBQ0EsOEJBQUE7O0FBakJKLEtBbUJFO0VBQ0UsaUJBQUE7O0FBcEJKLEtBdUJFLE1BQU07RUFDSixzQkFBQTs7QUF4QkosS0EyQkUsTUFBTTtFQUNKLDZCQUFBOztBQTVCSixLQStCRSxRQUFRLFFBQVEsR0FBRSxZQUFhO0FBL0JqQyxLQWdDRSxRQUFRLFFBQVEsR0FBRSxZQUFhO0FBaENqQyxLQWlDRSxRQUFRLFFBQVEsR0FBRSxZQUFhO0FBakNqQyxLQWtDRSxRQUFRLFFBQVEsR0FBRSxZQUFhO0FBbENqQyxLQW1DRSxTQUFTLFFBQVEsR0FBRSxZQUFhO0FBbkNsQyxLQW9DRSxTQUFTLFFBQVEsR0FBRSxZQUFhO0FBcENsQyxLQXFDRSxTQUFTLFFBQVEsR0FBRSxZQUFhO0FBckNsQyxLQXNDRSxTQUFTLFFBQVEsR0FBRSxZQUFhO0FBdENsQyxLQXVDRSxNQUFLLFlBQWEsR0FBRSxZQUFhO0FBdkNuQyxLQXdDRSxNQUFLLFlBQWEsR0FBRSxZQUFhO0FBeENuQyxLQXlDRSxNQUFLLFlBQWEsR0FBRSxZQUFhO0FBekNuQyxLQTBDRSxNQUFLLFlBQWEsR0FBRSxZQUFhO0VBQy9CLGFBQUE7O0FBT0osZ0JBQ0U7QUFERixnQkFFRTtFQUNFLGdCQUFBOztBQU9KO0VBQ0UsWUFBQTs7QUFERixlQUVFO0FBRkYsZUFHRTtFQUNFLFlBQUE7O0FBUUosY0FDRSxNQUNFLEdBQUUsVUFBVSxLQUFNO0FBRnRCLGNBQ0UsTUFFRSxHQUFFLFVBQVUsS0FBTTtFQUNoQix5QkFBQTs7QUFTTixNQUNFLE1BQU0sR0FBRSxNQUFPO0FBRGpCLE1BRUUsTUFBTSxHQUFFLE1BQU87RUFDYix5QkFBQTs7QUFTSixLQUNFO0VOa2FBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLGNBQUE7O0FNcmFGLEtBRUU7RU5pYUEsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsY0FBQTs7QU1yYUYsS0FHRTtFTmdhQSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxjQUFBOztBTXJhRixLQUlFO0VOK1pBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLGNBQUE7O0FNcmFGLEtBS0U7RU44WkEsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsY0FBQTs7QU1yYUYsS0FNRTtFTjZaQSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSxjQUFBOztBTXJhRixLQU9FO0VONFpBLFdBQUE7RUFDQSxrQkFBQTtFQUNBLGNBQUE7O0FNcmFGLEtBUUU7RU4yWkEsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsY0FBQTs7QU1yYUYsS0FTRTtFTjBaQSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxjQUFBOztBTXJhRixLQVVFO0VOeVpBLFdBQUE7RUFDQSxrQkFBQTtFQUNBLGNBQUE7O0FNcmFGLEtBV0U7RU53WkEsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsY0FBQTs7QU1yYUYsS0FZRTtFTnVaQSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSxjQUFBOztBTXJhRixLQWFFO0VOc1pBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLGNBQUE7O0FNcmFGLEtBY0U7RU5xWkEsV0FBQTtFQUNBLG9CQUFBO0VBQ0EsY0FBQTs7QU1yYUYsS0FlRTtFTm9aQSxXQUFBO0VBQ0Esb0JBQUE7RUFDQSxjQUFBOztBTXJhRixLQWdCRTtFTm1aQSxXQUFBO0VBQ0Esb0JBQUE7RUFDQSxjQUFBOztBTXJhRixLQWlCRTtFTmtaQSxXQUFBO0VBQ0Esb0JBQUE7RUFDQSxjQUFBOztBTXJhRixLQWtCRTtFTmlaQSxXQUFBO0VBQ0Esb0JBQUE7RUFDQSxjQUFBOztBTXJhRixLQW1CRTtFTmdaQSxXQUFBO0VBQ0Esb0JBQUE7RUFDQSxjQUFBOztBTXJhRixLQW9CRTtFTitZQSxXQUFBO0VBQ0Esb0JBQUE7RUFDQSxjQUFBOztBTXJhRixLQXFCRTtFTjhZQSxXQUFBO0VBQ0Esb0JBQUE7RUFDQSxjQUFBOztBTXJhRixLQXNCRTtFTjZZQSxXQUFBO0VBQ0Esb0JBQUE7RUFDQSxjQUFBOztBTXJhRixLQXVCRTtFTjRZQSxXQUFBO0VBQ0Esb0JBQUE7RUFDQSxjQUFBOztBTXJhRixLQXdCRTtFTjJZQSxXQUFBO0VBQ0Esb0JBQUE7RUFDQSxjQUFBOztBTy9nQkY7RUFDRSxhQUFhLFVBQWI7RUFDQSxTQUFTLHNDQUFUO0VBQ0EsU0FBUyw4Q0FBOEMsT0FBTywwQkFBMEIsd0NBQXdDLE9BQU8sYUFBYSx1Q0FBdUMsT0FBTyxpQkFBaUIsZ0RBQWdELE9BQU8sTUFBMVE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBOztBQUVGLGdCQUFnQjtBQUNoQixpQkFBaUI7RUFDZixhQUFhLFVBQWI7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0EsV0FBQTtFQUNBLHFCQUFBO0VBQ0Esd0JBQUE7RUFDQSxVQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7RUFDQSwrQkFBQTs7QUFHRixZQUFZO0VBQVUsU0FBUyxLQUFUOzs7QUFDdEIsZUFBZTtFQUFVLFNBQVMsS0FBVDs7O0FBQ3pCLFdBQVc7RUFBVSxTQUFTLEtBQVQ7OztBQUNyQixpQkFBaUI7RUFBVSxTQUFTLEtBQVQ7OztBQUMzQixVQUFVO0VBQVUsU0FBUyxLQUFUOzs7QUFDcEIsZ0JBQWdCO0VBQVUsU0FBUyxLQUFUOzs7QUFDMUIsY0FBYztFQUFVLFNBQVMsT0FBVDs7O0FBQ3hCLGFBQWE7RUFBVSxTQUFTLE9BQVQ7OztBQUN2QixZQUFZO0VBQVUsU0FBUyxPQUFUOzs7QUFDdEIsUUFBUTtFQUFVLFNBQVMsS0FBVDs7O0FBQ2xCLFlBQVk7RUFBVSxTQUFTLEtBQVQ7OztBQUN0QixVQUFVO0VBQVUsU0FBUyxLQUFUOzs7QUFDcEIsV0FBVztFQUFVLFNBQVMsS0FBVDs7O0FBQ3JCLFVBQVU7RUFBVSxTQUFTLEtBQVQ7OztBQUNwQixVQUFVO0VBQVUsU0FBUyxLQUFUOzs7QUFDcEIsVUFBVTtFQUFVLFNBQVMsS0FBVDs7O0FBQ3BCLFNBQVM7RUFBVSxTQUFTLEtBQVQ7OztBQUNuQixVQUFVO0VBQVUsU0FBUyxLQUFUOzs7QUFDcEIsY0FBYztFQUFVLFNBQVMsS0FBVDs7O0FBQ3hCLFdBQVc7RUFBVSxTQUFTLEtBQVQ7OztBQUNyQixhQUFhO0VBQVUsU0FBUyxLQUFUOzs7QUFDdkIsVUFBVTtFQUFVLFNBQVMsS0FBVDs7O0FBQ3BCLGNBQWM7RUFBVSxTQUFTLE9BQVQ7OztBQUN4QixjQUFjO0VBQVUsU0FBUyxPQUFUOzs7QUFDeEIsVUFBVTtFQUFVLFNBQVMsS0FBVDs7O0FBQ3BCLFdBQVc7RUFBVSxTQUFTLEtBQVQ7OztBQUNyQixVQUFVO0VBQVUsU0FBUyxLQUFUOzs7QUFDcEIsY0FBYztFQUFVLFNBQVMsT0FBVDs7O0FBQ3hCLGdCQUFnQjtFQUFVLFNBQVMsS0FBVDs7O0FBQzFCLFVBQVU7RUFBVSxTQUFTLEtBQVQ7OztBQUNwQixXQUFXO0VBQVUsU0FBUyxPQUFUOzs7QUFDckIsZUFBZTtFQUFVLFNBQVMsT0FBVDs7O0FBQ3pCLGFBQWE7RUFBVSxTQUFTLEtBQVQ7OztBQUN2QixTQUFTO0VBQVUsU0FBUyxPQUFUOzs7QUFDbkIsV0FBVztFQUFVLFNBQVMsT0FBVDs7O0FBQ3JCLFdBQVc7RUFBVSxTQUFTLEtBQVQ7OztBQUNyQixlQUFlO0VBQVUsU0FBUyxLQUFUOzs7QUFDekIsUUFBUTtFQUFVLFNBQVMsS0FBVDs7O0FBQ2xCLFlBQVk7RUFBVSxTQUFTLEtBQVQ7OztBQUN0QixjQUFjO0VBQVUsU0FBUyxLQUFUOzs7QUFDeEIsU0FBUztFQUFVLFNBQVMsS0FBVDs7O0FBQ25CLGFBQWE7RUFBVSxTQUFTLEtBQVQ7OztBQUN2QixhQUFhO0VBQVUsU0FBUyxLQUFUOzs7QUFDdkIsY0FBYztFQUFVLFNBQVMsS0FBVDs7O0FBQ3hCLFlBQVk7RUFBVSxTQUFTLEtBQVQ7OztBQUN0QixZQUFZO0VBQVUsU0FBUyxLQUFUOzs7QUFDdEIsWUFBWTtFQUFVLFNBQVMsS0FBVDs7O0FBQ3RCLGtCQUFrQjtFQUFVLFNBQVMsT0FBVDs7O0FBRTVCLGNBQ0U7RUFDRSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxZQUFBOztBQUNBLGNBSkYsRUFJRztFQUNDLHNCQUFBO0VBQ0EsWUFBQTs7QUM5RU47QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0UsaUJBQUE7RUFDQSxlQUFBOztBQUVGO0VBQ0Usb0JBQUE7O0FBRUY7RUFDRSxjQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBOztBQUVGO0VBQ0UsV0FBQTtFQUNBLGNBQUE7O0FBRUY7RUFDRSxZQUFBOztBUjhrQkU7RUFDRSxXQUFBO0VBMWxCSixRQUFBOztBQUNBLFVBQUM7QUFDRCxVQUFDO0VBQ0MsY0FBQTtFQUNBLFNBQVMsRUFBVDs7QUFFRixVQUFDO0VBQ0MsV0FBQTs7QUFrbEJBLFVBR0U7QUFIRixVQUlFO0FBSkYsVUFLRTtBQUxGLFVBTUU7QUFORixVQU9FO0FBUEYsVUFRRTtBQVJGLFVBU0U7QUFURixVQVVFO0FBVkYsVUFXRTtBQVhGLFVBWUU7QUFaRixVQWFFO0FBYkYsVUFjRTtFQTlqQkosY0FBQTtFQUNBLFdBQUE7RUFDQSxnQkFBQTtFQXdQQSw4QkFBQTtFQUNHLDJCQUFBO0VBQ0MsMEJBQUE7RUFDSSxzQkFBQTtFQW1VRixXQUFBO0VBQ0Esd0JBQUE7RUFDQSx5QkFBQTs7QUFsQkosVUFvQkU7QUFwQkYsVUFxQkUsT0FBTTtBQXJCUixVQXNCRSxPQUFNO0FBdEJSLFVBdUJFLE9BQU07QUF2QlIsVUF3QkUsT0FBTTtBQXhCUixVQXlCRSxPQUFNO0FBekJSLFVBMEJFLE9BQU07QUExQlIsVUEyQkUsT0FBTTtBQTNCUixVQTRCRSxPQUFNO0FBNUJSLFVBNkJFLFFBQU87QUE3QlQsVUE4QkUsUUFBTztBQTlCVCxVQStCRSxRQUFPO0VBQ0wsY0FBQTs7QUFoQ0osVUFWRSxNQUFLO0VBTUwsbUJBQUE7RUFDQSxvQkFBQTs7QUFHRixVQVZFLE1BQUs7RUFNTCxtQkFBQTtFQUNBLG9CQUFBOztBQUdGLFVBVkUsTUFBSztFQU1MLGtCQUFBO0VBQ0EsbUJBQUE7O0FBR0YsVUFWRSxNQUFLO0VBTUwsa0JBQUE7RUFDQSxtQkFBQTs7QUFHRixVQVZFLE1BQUs7RUFNTCxrQkFBQTtFQUNBLG1CQUFBOztBQUdGLFVBVkUsTUFBSztFQU1MLGtCQUFBO0VBQ0EsbUJBQUE7O0FBR0YsVUFWRSxNQUFLO0VBTUwsbUJBQUE7RUFDQSxvQkFBQTs7QUFHRixVQVZFLE1BQUs7RUFNTCxtQkFBQTtFQUNBLG9CQUFBOztBQUdGLFVBVkUsTUFBSztFQU1MLG1CQUFBO0VBQ0Esb0JBQUE7O0FBR0YsVUFWRSxNQUFLO0VBTUwsbUJBQUE7RUFDQSxvQkFBQTs7QUFHRixVQVZFLE1BQUs7RUFNTCxtQkFBQTtFQUNBLG9CQUFBOztBQUdGLFVBVkUsTUFBSztFQU1MLGtCQUFBO0VBQ0EsbUJBQUE7O0FRL2pCTixtQkFOcUM7RUFDbkMsS0FBTTtJQUNKLGdCQUFBOzs7QUFJSjtFQUNFLGFBQUE7RUFDQSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxPQUFBO0VBQ0EsZ0JBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VBQ0EsY0FBQTtFQUNBLGdCQUFBO0VBQ0EsWUFBQTtFQUNBLHlCQUFBO0VBQ0Esb0NBQUE7RUFDQSx3QkFBQTtFQUNBLHlCQUFBO0VSNktBLGlEQUFBO0VBQ0csOENBQUE7RUFDSyx5Q0FBQTtFUTdLUixvQ0FBQTtFQUNHLDZCQUFBO0VBQ0ssNEJBQUE7O0FBRVIsUUFBQztFQUNDLFNBQVMsRUFBVDtFQUNBLHFCQUFBO0VBQ0EsbUNBQUE7RUFDQSxvQ0FBQTtFQUNBLGlDQUFBO0VBQ0EsdUNBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxTQUFBOztBQUVGLFFBQUM7RUFDQyxTQUFTLEVBQVQ7RUFDQSxxQkFBQTtFQUNBLGtDQUFBO0VBQ0EsbUNBQUE7RUFDQSxnQ0FBQTtFQUNBLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7O0FDekVKO0VBQ0UsWUFBQTtFQUNBLHlCQUFBOztBQUVGO0VBQ0UsYVA2SXNCLDhDTzdJdEI7RUFDQSxrQkFBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtFQUNBLGFBQUE7O0FBTEYsV0FNRTtFQUNFLFNBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7RUFDQSxpQkFBQTs7QUFWSixXQU1FLEdBS0U7RUFDRSxXQUFBO0VBQ0Esb0JBQUE7O0FBYk4sV0FNRSxHQVNFO0VUdXBCRixjQUFBOztBU3JwQkksV0FYSixHQVNFLEVBRUc7RUFDQyxxQkFBQTtFQUNBLGNBQUE7O0FBbkJSLFdBdUJFO0VBQ0UsWUFBQTs7QUF4QkosV0F1QkUsV0FFRSxHQUFFO0VBQ0EsV0FBQTtFQUNBLGVBQUE7RUFDQSxlQUFBOztBQTVCTixXQXVCRSxXQUVFLEdBQUUsY0FJQTtFQUNFLHNCQUFBOztBQTlCUixXQXVCRSxXQUVFLEdBQUUsY0FJQSxHQUVFO0VBQ0UsY0FBQTs7QUFoQ1YsV0F1QkUsV0FFRSxHQUFFLGNBSUEsR0FFRSxFQUVFO0VBQ0UsY0FBQTtFQUNBLFlBQUE7RUFDQSx3QkFBQTs7QUFwQ1osV0F1QkUsV0FvQkU7RUFDRSxXQUFBO0VBQ0Esb0JBQUE7O0FBS047RUFDRSxlQUFBO0VBQ0EsY0FBQTtFQUNBLHlCQUFBOztBQUNBLFdBQUM7RUFDQyx5QkFBQTs7QUFMSixXQU9FO0VBQ0UsaUJBQUE7RUFDQSxjQUFBOztBQUNBLFdBSEYsRUFHRztFQUNDLHFCQUFBOztBQVhOLFdBY0U7RUFDRSxtQkFBQTs7QUFJSixVQUFXLEdBQUUsT0FDWCxFQUFDO0VBQ0MsY0FBQTs7QUFXSixRQVAwQjtFQUN4QixjQUFlLEdBQUU7SUFBVSxhQUFBOztFQUMzQixVQUFXLEdBQUU7SUFDWCxjQUFBOzs7QUFRSixRQUowQjtFQUN4QixVQUFXLEdBQUU7SUFBVSxhQUFBOzs7QUFJekI7RUFDRSxpQkFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLFdBQUE7O0FBSkYsY0FLRTtFQUNFLFNBQUE7O0FBTkosY0FRRTtBQVJGLGNBUVM7RUFDTCxhUDhDb0IsOENPOUNwQjtFQUNBLGVBQUE7RUFDQSxjQUFBOztBQVhKLGNBYUU7RUFDRSxZQUFBO0VBQ0Esb0JBQUE7O0FBZkosY0FpQkU7RUFDRSxZQUFBO0VBQ0EseUJBQUE7O0FBR0o7RUFDRSxjQUFBO0VBQ0EsV0FBQTs7QUFGRixZQUdFO0VBQ0UsV0FBQTtFQUNBLGFBQUE7O0FBTEosWUFRRTtFQUNFLGdCQUFBO0VBQ0EsWUFBQTs7QUFHSixFQUFFO0FBQ0YsRUFBRTtFQUNBLFdBQUE7RUFDQSxjQUFBO0VBQ0EsZUFBQTtFQUNBLGNBQUE7O0FBTEYsRUFBRSxTQU1BO0FBTEYsRUFBRSxTQUtBO0VBQ0UsY0FBQTs7QUFDQSxFQVJGLFNBTUEsRUFFRztBQUFELEVBUEYsU0FLQSxFQUVHO0VBQ0MscUJBQUE7O0FBVE4sRUFBRSxTQVlBO0FBWEYsRUFBRSxTQVdBO0VBQ0UsY0FBQTtFQUNBLFdBQUE7RUFDQSxrQkFBQTs7QUFmSixFQUFFLFNBaUJBO0FBaEJGLEVBQUUsU0FnQkE7RUFDRSxxQkFBQTs7QUFsQkosRUFBRSxTQW9CQTtBQW5CRixFQUFFLFNBbUJBO0VBQ0UsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsY0FBQTs7QUFHSjtFQUNFLGFBQUE7OztBQUlGO0VBQ0UsdUJBQUE7RUFDQSx5QkFBQTtFQUNBLGNBQUE7O0FBRUY7RUFDRSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsbUJBQUE7RUFDQSxjQUFBOztBQUpGLGdCQUtFO0VBQ0UsY0FBQTs7QUFDQSxnQkFGRixFQUVHO0VBQ0MsY0FBQTs7QUFSTixnQkFXRSxRQUFPO0VBQ0wsZ0JBQUE7O0FBVUosUUFOMEI7RUFDeEI7RUFDQTtJQUNFLGFBQUE7Ozs7QUNyTEosSUFBSTtBQUNKLElBQUksU0FBVTtFQUNaLGVBQUE7RUFDQSxNQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7RUFDQSxPQUFBO0VBQ0EsZ0JBQUE7O0FBR0Y7RUFHRSxtQkFBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTtFQUNBLG9CQUFBO0VBZUEsY0FBQTtFQUNBLGFSa0hzQiw4Q1FsSHRCOztBQXRCRixPQVFFO0VBQ0UsV0FBQTs7QUFUSixPQVlFO0VBQ0UsYUFBQTs7QUFiSixPQWdCRTtFQUNFLHlCQUFBOztBQWpCSixPQTBCRTtFQUNFLGdCQUFBOztBQTNCSixPQStCRSxlQUFlLEdBQUc7RUFDaEIsaUJBQUE7RUFDQSxrQkFBQTs7QUFqQ0osT0FxQ0U7RUFDRSxrQkFBQTtFQUNBLE9BQUE7RUFDQSxjQUFBO0VBQ0EsV0FBQTtFQUNBLFNBQUE7RUFDQSxjQUFBOztBQUVBLE9BUkYsS0FRSSxLQUFLO0VBQ0wsY0FBQTs7QUE5Q04sT0FtREU7RUFDRSxjQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBOztBQUVBLE9BTEYsR0FLSTtFQUNBLGNBQUE7RUFDQSxxQkFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTs7QUE3RE4sT0FrRUUsR0FBRSxTQUFVO0VBQ1YsZ0JBQUE7O0FBbkVKLE9BcUVFLEdBQUUsU0FBVSxlQUFlLEdBQUc7RUFDNUIsY0FBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7O0FBRUEsT0FMRixHQUFFLFNBQVUsZUFBZSxHQUFHLEVBSzNCO0VBQ0MsY0FBQTs7QUEzRU4sT0ErRUUsR0FBRyxJQUFHO0VBQ0oseUJBQUE7RUFDQSxjQUFBOztBQWpGSixPQStFRSxHQUFHLElBQUcsTUFJSixPQUFNO0VBQ0oseUJBQUE7O0FBcEZOLE9BeUZFLFVBQVM7QUF6RlgsT0EwRkUsY0FBYTtFQUNYLG9DQUFBO0VBQ0EsaUJBQUE7RUFDQSwwQ0FBQTtFQUNBLGlDQUFBO0VBQ0EsVUFBQTtFQUNBLFFBQUE7O0FBaEdKLE9Ba0dFLFVBQVM7QUFsR1gsT0FtR0UsY0FBYTtFQUNYLGlDQUFBO0VBQ0EsaUJBQUE7RUFDQSwrQkFBQTtFQUNBLG9DQUFBO0VBQ0EsUUFBQTtFQUNBLFVBQUE7O0FBekdKLE9BNkdFLEdBQUUsVUFFQSxFQUFDO0FBL0dMLE9BOEdFLEdBQUUsVUFDQSxFQUFDO0VBQ0MsNkJBQUE7RUFDQSxjQUFBOztBQWpITixPQXFIRSxXQUFVLE1BQU87QUFySG5CLE9Bc0hFLEdBQUUsVUFBVSxNQUFPO0VWME5uQixhQUFBO0VBQ0EseUJBQUE7O0FValZGLE9BMEhFLEdBQUU7RUFDQSxnQkFBQTs7QUFFQSxPQUhGLEdBQUUsVUFHRTtFQUNBLGNBQUE7O0FBQ0EsT0FMSixHQUFFLFVBR0UsSUFFQztFQUNDLGdCQUFBOztBQUhKLE9BSEYsR0FBRSxVQUdFLElBTUE7RUFDRSxjQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7O0FBdElSLE9BMklFLEdBQUUsVUFBVztFQUNYLFVBQUE7O0FBQ0EsT0FGRixHQUFFLFVBQVcsSUFFVjtFQUNDLGdCQUFBOztBQTlJTixPQTJJRSxHQUFFLFVBQVcsSUFNWDtFQUNFLHFCQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTs7QUFySk4sT0EwSkU7RUFDRSxhQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsNkJBQUE7RUFDQSxZQUFBO0VBR0Esb0JBQUE7O0FBbEtKLE9BMEpFLFlBVUU7RUFDRSxZQUFBO0VBQ0EsWUFBQTtFQUNBLGNBQUE7RUFDQSxvQkFBQTtFQUNBLFVBQUE7RUFDQSxlQUFBOztBQTFLTixPQTBKRSxZQW1CRSxRQUFRLFlBQVk7RUFDbEIsV0FBQTs7QUE5S04sT0EwSkUsWUF1QkU7RUFDRSxjQUFBO0VBQ0EsV0FBQTtFQUNBLFdBQUE7O0FBcExOLE9BMEpFLFlBNkJFLFVBQVU7RUFDUixlQUFBOztBQVVKLFFBTjBCO0VBTTFCLE9BTEU7SUFDRSxhQUFBOzs7QUE2Rk4sUUF4RjRCO0VBd0Y1QjtJQXZGSSxrQkFBQTtJQUNBLFVBQUE7O0VBc0ZKLE9BcEZJLEdBQUUsU0FDQSxlQUFlLEdBQUc7SUFDaEIsaUJBQUE7SUFDQSxjQUFBO0lBQ0EsaUJBQUE7SUFDQSxrQkFBQTs7RUErRVIsT0EzRUk7SUFDRSxXQUFBO0lBQ0EsVUFBQTs7RUF5RU4sT0F0RUk7SUFDRSxjQUFBOztFQXFFTixPQWxFSTtJQUNFLG1CQUFBO0lBQ0EsZUFBQTtJQUNBLE1BQUE7SUFDQSxTQUFBO0lBQ0EsT0FBQTtJQUNBLFFBQUE7SUFDQSxrQkFBQTtJQUNBLFVBQUE7SUFDQSxrQkFBQTtJQUNBLGlDQUFBOztFQXdETixPQWxFSSxXQVlFO0VBc0ROLE9BbEVJLFdBWWM7RUFzRGxCLE9BbEVJLFdBWTBCO0lBQ3RCLGFBQUE7O0VBcURSLE9BbEVJLFdBZ0JFO0VBa0ROLE9BbEVJLFdBZ0JNO0lBQ0YsV0FBQTs7RUFpRFIsT0FsRUksV0FvQkUsR0FBRTtJQUNBLGFBQUE7O0VBNkNSLE9BbEVJLFdBd0JFLEdBQUcsRUFBQztJQUNGLFlBQUE7SVZmTixtQkFBbUIsY0FBbkI7SUFDRyxnQkFBZ0IsY0FBaEI7SUFDQyxlQUFlLGNBQWY7SUFDQyxjQUFjLGNBQWQ7SUFDRyxXQUFXLGNBQVg7O0VVb0RWLE9BbEVJLFdBNkJFLEdBQUUsS0FBTSxJQUFJO0lWbkJoQixtQkFBbUIsWUFBbkI7SUFDRyxnQkFBZ0IsWUFBaEI7SUFDQyxlQUFlLFlBQWY7SUFDQyxjQUFjLFlBQWQ7SUFDRyxXQUFXLFlBQVg7O0VVb0RWLE9BbEVJLFdBaUNFLEdBQUUsS0FBTSxLQUFJO0lBQ1YsY0FBQTtJQUNBLGtCQUFBO0lWekNOLHdCQUFBO0lBQ0cscUJBQUE7SUFDSyxnQkFBQTtJVXlDRixZQUFBO0lBQ0EsVUFBQTs7RUFDQSxPQXZDSixXQWlDRSxHQUFFLEtBQU0sS0FBSSxjQU1UO0VBQVMsT0F2Q2QsV0FpQ0UsR0FBRSxLQUFNLEtBQUksY0FNQztJQUNULGFBQUE7O0VBS0YsT0E3Q0osV0E0Q0UsS0FBSyxLQUNGO0lBQ0MsbUJBQUE7SUFDQSxvQkFBQTs7RUFNTixPQUFDLEtBQU07SUFDTCxtQkFBQTtJQUNBLFVBQUE7SUFDQSxnQ0FBQTs7RUFJQSxPQURGLEtBQUssR0FDRjtFQUNELE9BRkYsS0FBSyxHQUVGO0lBQ0MsYUFBQTs7O0FBUVI7RUFDRSxXQUFBO0VBQ0EsV0FBQTs7QUFJRjtFQUNFLHFCQUFBO0VBQ0Esa0JBQUE7RUFDQSxXQUFBO0VBQ0EsY0FBQTtFQUNBLFFBQUE7O0FBRUEsTUFBQztFQUNDLGNBQUE7RUFDQSxrQkFBQTtFQUVBLFFBQUE7RUFDQSxTQUFBO0VBQ0EsNkJBQUE7RUFDQSxtQ0FBQTtFQUNBLGtDQUFBO0VBQ0Esb0NBQUE7RUFDQSxTQUFTLEVBQVQ7O0FBS0o7QUFDQTtFQUNFLGtCQUFBOztBQUZGLE9BSUU7QUFIRixTQUdFO0VBQ0UseUJBQUE7RUFDQSw0QkFBQTs7QUFHRixPQUFDLE9BQVE7QUFBVCxTQUFDLE9BQVE7RVZZVCxVQUFBO0VBQ0EsMEJBQUE7O0FVUkY7RUFFRSxvQkFBQTs7QUFJRjtFQUNFLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLE9BQUE7RUFDQSxhQUFBO0VBQ0EsYUFBQTtFQUNBLFdBQUE7RUFDQSxnQkFBQTtFQUNBLGNBQUE7RUFDQSxTQUFBO0VBQ0EsZ0JBQUE7RUFDQSx5QkFBQTtFQUNBLHlCQUFBO0VBQ0Esb0NBQUE7RUFDQSx3QkFBQTtFQUNBLHlCQUFBO0VWM0lBLGlEQUFBO0VBQ0csOENBQUE7RUFDSyx5Q0FBQTtFVTJJUixvQ0FBQTtFQUNBLDZCQUFBO0VBQ0EsNEJBQUE7O0FBbkJGLGNBcUJFO0VBQ0UsY0FBQTtFQUNBLFdBQUE7O0FBdkJKLGNBMkJFO0VBQ0UsZ0JBQUE7O0FBRUEsY0FIRixHQUdJO0VBQ0EsY0FBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTtFQUNBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLGlCQUFBOztBQUVBLGNBWEosR0FHSSxJQVFDO0VBQ0MscUJBQUE7O0FBdkNSLGNBNkNFLFFBQVE7QUE3Q1YsY0E4Q0UsUUFBUSxJQUFHO0VBQ1QsY0FBQTtFQUNBLHlCQUFBOztBQUlGLGNBQUM7RUFDQyxTQUFTLEVBQVQ7RUFDQSxxQkFBQTtFQUNBLG1DQUFBO0VBQ0Esb0NBQUE7RUFDQSxpQ0FBQTtFQUNBLHVDQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0VBQ0EsU0FBQTs7QUFFRixjQUFDO0VBQ0MsU0FBUyxFQUFUO0VBQ0EscUJBQUE7RUFDQSxrQ0FBQTtFQUNBLG1DQUFBO0VBQ0EsZ0NBQUE7RUFDQSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxVQUFBOztBQXZFSixjQTJFRTtBQTNFRixjQTRFRTtFQUNFLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFNBQUE7RUFDQSxrQkFBQTtFQUNBLGFBQUE7O0FBakZKLGNBbUZFO0VBQ0Usa0JBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTs7QUF0RkosY0F3RkUsR0FBRSxNQUFPO0FBeEZYLGNBeUZFLFVBQVUsR0FBRSxNQUFPO0VBQ2pCLG1CQUFBO0VBQ0EsY0FBQTs7QUFhSixRQVY0QjtFQVU1QixjQVRJLEdBQUUsTUFBTztFQVNiLGNBUkksR0FBRSxNQUFPO0lBQ1AsYUFBQTtJQUNBLGtCQUFBOztFQUNBLGNBSkYsR0FBRSxNQUFPLGNBSU47RUFBRCxjQUhGLEdBQUUsTUFBTyxVQUdOO0lBQ0MsYUFBQTs7O0FBYVIsUUFQMEI7RUFDeEIsSUFBSSxTQUFVLEdBQUUsSUFBSyxHQUFFLFNBQVMsTUFBTyxHQUFFO0VBQ3pDLElBQUksTUFBTyxHQUFFLElBQUssR0FBRSxTQUFTLEtBQU0sR0FBRTtJQUNqQyxjQUFBOzs7QUFNTjtFQUdFLGNBQUE7O0FBRUEsS0FBRTtFQUNBLGNBQUE7O0FBS0YsUUFINEI7RUFHNUIsS0FORTtJQUlFLGFBQUE7OztBQU1OLE9BR0U7QUFGRixvQkFBcUIsVUFFbkI7RUFDRSxhQUFBO0VBQ0EsZ0NBQUE7RUFDQSxTQUFTLE9BQVQ7O0FBTkosT0FTRTtBQVJGLG9CQUFxQixVQVFuQjtFQUNFLFNBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7O0FBS0o7RUFDRSxjQUFBOztBQURGLFdBRUU7RUFDRSxTQUFBO0VBQ0EsYVI5Vm9CLDhDUThWcEI7O0FBSkosV0FFRSxHQUdFO0VBQ0UsZUFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxlQUFBOztBQUNBLFdBUkosR0FHRSxHQUtHO0VBQ0MsZUFBQTtFQUNBLGlCQUFBOztBQU9SLFNBQVM7RUFDUCw2QkFBQTtFQUNBLGdDQUFBOztBQy9mRjtFQUNFLGNBQUE7RUFDQSxrQkFBQTs7QUFHRjtFQUNFLGVBQUE7RUFDQSxNQUFBO0VBQ0EsT0FBQTtFQUNBLFFBQUE7RUFDQSxjQUFBO0VBRUEsa0JBQUE7RUFDQSxVQUFBO0VBQ0EseUJBQUE7RUFDQSxnQ0FBQTtFWG1OQSxnQ0FBQTtFQUNHLDZCQUFBO0VBQ0MsNEJBQUE7RUFDQywyQkFBQTtFQUNHLHdCQUFBOztBV3BOUixrQkFBQztFQUNDLGdCQUFBO0VBQ0EsWUFBQTs7QUFGRixrQkFBQyxjQUlDO0VBQ0UsVUFBQTs7QUFJSixrQkFBQztFQUNDLG1CQUFBO0VBQ0EsVUFBQTs7QUFHRixJQUFJLFVBQVc7RUFDYixTQUFBOztBQUtBLFFBSDBCO0VBRzFCLElBTkUsVUFBVztJQUlYLFNBQUE7OztBQUtKLFFBSDRCO0VBRzVCLElBVEksVUFBVztJQU9YLE1BQUE7OztBQVdOLFFBUDRCO0VBTzVCO0lBTkksYUFBQTs7RUFDQSxJQUFLLG1CQUFDO0VBQ04sSUFBSyxtQkFBQztJQUNKLGNBQUE7OztBQU1OLE9BQU87RUFDTCxnQkFBQTtFWDRLQSxnQ0FBQTtFQUNHLDZCQUFBO0VBQ0MsNEJBQUE7RUFDQywyQkFBQTtFQUNHLHdCQUFBOztBV2pMVixPQUFPLGNBSUw7RUFDRSxjQUFBOztBQUxKLE9BQU8sY0FRTCxHQUNFO0VBQ0UsaUJBQUE7RUFDQSxjQUFBOztBQUVBLE9BYkMsY0FRTCxHQUNFLEVBSUc7RUFDQyxjQUFBOztBQWRSLE9BQU8sY0FRTCxHQUNFLEVBUUUsT0FBTTtFQUNKLHlCQUFBOztBQUdGLE9BckJDLGNBUUwsR0FDRSxFQVlHLE1BQU8sT0FBTTtFQUNaLHlCQUFBOztBQUlKLE9BMUJHLGNBUUwsR0FrQkcsVUFBVyxJQUFHO0VBQ2IsY0FBQTs7QUEzQk4sT0FBTyxjQWdDTCxHQUFFLFNBQVUsZUFBZSxHQUFHO0VBQzVCLGNBQUE7O0FBRUEsT0FuQ0csY0FnQ0wsR0FBRSxTQUFVLGVBQWUsR0FBRyxFQUczQjtFQUNDLGNBQUE7O0FBcENOLE9BQU8sY0F3Q0w7RUFDRSxTQUFBO0VBQ0EsV0FBQTs7QUExQ0osT0FBTyxjQTZDTDtFQUNFLHNCQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBOztBQWhESixPQUFPLGNBNkNMLFlBS0U7RUFDRSxxQkFBQTs7QUFuRE4sT0FBTyxjQTZDTCxZQVFFO0VBQ0UseUJBQUE7O0FBR0YsT0F6REcsY0E2Q0wsWUFZRyxNQUNDO0VBQ0UseUJBQUE7O0FBS04sT0FoRUssY0FnRUo7RUFFQyxlQUFBO0VBQ0Esa0JBQUE7O0FBSEYsT0FoRUssY0FnRUosVUFLQyxLQUFLLEtBQ0gsRUFDRTtFQUVFLGFBQUE7RUFDQSxjQUFBOztBQVZSLE9BaEVLLGNBZ0VKLFVBS0MsS0FBSyxLQVNILFdBQVU7RUFDUixrQkFBQTtFQUNBLE1BQUE7O0FBaEZSLE9BQU8sY0FzRkw7RUFDRSxZQUFBOztBQXZGSixPQUFPLGNBc0ZMLFdBR0U7RUFDRSxXQUFBO0VBQ0EsU0FBQTs7QUEzRk4sT0FBTyxjQXNGTCxXQUdFLGVBR0UsRUFBQyxZQUFZO0VBQ1gsdUJBQUE7O0FBN0ZSLE9BQU8sY0FzRkwsV0FHRSxlQU9FLFFBQ0UsRUFBRTtFQUVBLGdCQUFBO0VBRUEsY0FBQTtFQUdBLHlCQUFBOztBQUNBLE9BekdILGNBc0ZMLFdBR0UsZUFPRSxRQUNFLEVBQUUsS0FRQztFQUNDLHlCQUFBOztBQTFHWixPQUFPLGNBc0ZMLFdBR0UsZUFPRSxRQUNFLEVBQUUsS0FhQTtFQUNFLGFBQUE7O0FBL0daLE9BQU8sY0FzRkwsV0ErQkE7RUFDRSxrQkFBQTs7QUF0SEosT0FBTyxjQXNGTCxXQStCQSxhQUVFO0VBRUUsY0FBQTtFQUNBLHFCQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxXQUFBO0VYK0NKLHdCQUFBO0VBQ0cscUJBQUE7RUFDQyxvQkFBQTtFQUNDLG1CQUFBO0VBQ0csZ0JBQUE7O0FXakxWLE9BQU8sY0FzRkwsV0ErQkEsYUFZRTtFQUNFLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLE1BQUE7RUFDQSxRQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VYc0NKLHdCQUFBO0VBQ0cscUJBQUE7RUFDQyxvQkFBQTtFQUNDLG1CQUFBO0VBQ0csZ0JBQUE7RVd4Q0osYUFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBOztBQTNJTixPQUFPLGNBc0ZMLFdBK0JBLGFBWUUsY0FXRTtFQUNFLGNBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTs7QUEvSVIsT0FBTyxjQXNGTCxXQStCQSxhQVlFLGNBZ0JFO0VBQ0UsV0FBQTtFWHFHTiw4QkFBQTtFQUNHLDJCQUFBO0VBQ0MsMEJBQUE7RUFDSSxzQkFBQTtFV3RHRix1QkFBQTs7QUFwSlIsT0FBTyxjQXNGTCxXQStCQSxhQVlFLGNBcUJFO0VBQ0Usc0JBQUE7RUFDQSx1QkFBQTtFQUNBLFdBQUE7RVg4Rk4sOEJBQUE7RUFDRywyQkFBQTtFQUNDLDBCQUFBO0VBQ0ksc0JBQUE7O0FXMVBWLE9BQU8sY0FzRkwsV0F5RUUsbUJBQWtCLEtBQ2hCO0VBQ0Usa0JBQUE7RUFDQSxVQUFBO0VBQ0EsbUJBQUE7O0FBbktSLE9BQU8sY0FzRkwsV0F5RUUsbUJBQWtCLEtBTWhCO0FBcktOLE9BQU8sY0FzRkwsV0F5RUUsbUJBQWtCLEtBT2hCO0VBQ0UseUJBQUE7RUFDQSxjQUFBOztBQU1KLE9BOUtHLGNBNktMLFVBQ0k7RUFDQSxTQUFBO0VBQ0EsVUFBQTs7QUFZSixRQU4wQjtFQU0xQixPQTVMSyxjQXVMSDtJQUNFLGFBQUE7OztBQXhMTixPQUFPLGNBNkxMO0VBQ0UsY0FBQTtFQUNBLGNBQUE7O0FBL0xKLE9BQU8sY0E2TEwsV0FJRTtFQUNFLGlCQUFBO0VBQ0EsbUJBQUE7RUFDQSxjQUFBO0VBQ0EsZ0JBQUE7RUFDQSx1QkFBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7O0FBRUEsT0ExTUMsY0E2TEwsV0FJRSxFQVNHO0VBQ0MsNkJBQUE7RUFDQSxjQUFBO0VBQ0EscUJBQUE7O0FBN01SLE9BQU8sY0FtTkw7RUFDRSxZQUFBOztBQXBOSixPQUFPLGNBbU5MLFdBRUU7RUFDRSxXQUFBO0VBQ0EsU0FBQTs7QUF2Tk4sT0FBTyxjQW1OTCxXQUVFLGVBR0UsRUFBQyxZQUFZO0VBQ1gsdUJBQUE7O0FBaUJSLFFBWDRCO0VBVzVCLE9BMU9PLGNBZ09ILEdBQUUsU0FDQSxlQUFlLEdBQUc7SUFDaEIsaUJBQUE7O0VBUVIsT0ExT08sY0FzT0gsV0FBVyxFQUFDO0lBQ1YsYUFBQTs7O0FBTU4sY0FBZTtFQUNiLGtCQUFBO0VBQ0EsZ0JBQUE7O0FBRkYsY0FBZSxLQUdiLE9BQU07QUFIUixjQUFlLEtBR0csT0FBTTtFQUNwQixhQUFBOztBQUpKLGNBQWUsS0FNYixHQUFFO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBOztBQVZKLGNBQWUsS0FNYixHQUFFLGNBS0EsR0FBRztFQUNELG1CQUFBOztBQUVGLGNBZFcsS0FNYixHQUFFLGNBUUM7QUFBVSxjQWRBLEtBTWIsR0FBRSxjQVFZO0VBQ1YsYUFBQTs7QUFmTixjQUFlLEtBTWIsR0FBRSxjQVdBO0FBakJKLGNBQWUsS0FNYixHQUFFLGNBWUE7RUFDRSxhQUFBOztBQ25UTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87RUFDTCxtQkFBQTs7QUFFRjtBQUNBO0FBQ0EsT0FBTztFQUNMLGdDQUFBOztBQUVGLE9BQU87RUFDTCxvQkFBQTs7QUFPRixRQUFTO0VBQ1AsaUNBQUE7RUFDQSxtQkFBQTs7QUFHQSxRQURPLFFBQ047QUFDRCxRQUZPLFFBRU47QUFDRCxRQUhPLFFBR047QUFDRCxRQUpPLFFBSU47QUFDRCxRQUxPLFFBS047QUFDRCxRQU5PLFFBTU47QUFDRCxRQVBPLFFBT047QUFDRCxRQVJPLFFBUU47QUFDRCxRQVRPLFFBU047QUFDRCxRQVZPLFFBVU47QUFDRCxRQVhPLFFBV047QUFDRCxRQVpPLFFBWU47RUFDQyxjQUFBOztBQUdKLFFBQVMsR0FBRTtFQUNULGVBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBOztBQUVGLFFBQVMsZUFBZTtFQUN0QixlQUFBO0VBQ0EsbUJBQUE7O0FBRUYsUUFBUyxHQUFFO0VBQ1Qsa0JBQUE7RUFDQSxhVjJGc0IsOENVM0Z0QjtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTs7QUN6REY7RUFDRSxtQkFBQTtFQUNBLG9CQUFBO0VBQ0EsZ0NBQUE7O0FBSEYsbUJBSUU7RUFDRSxlQUFBO0VBQ0Esa0JBQUE7O0FBTkosbUJBUUU7RUFDRSxlQUFBO0VBQ0Esa0JBQUE7O0FBVkosbUJBWUU7RUFDRSxhWG9Jb0IsOENXcElwQjs7QUFiSixtQkFZRSxnQkFFRDtFQUNFLFdBQUE7RUFDQSxXQUFBO0VBQ0EsZ0JBQUE7RUFDQSxTQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBOztBQXBCSCxtQkFZRSxnQkFFRCxHQU9FO0VBQ0UsZUFBQTtFQUNBLFNBQUE7RUFDQSxVQUFBOztBQUNBLG1CQWJILGdCQUVELEdBT0UsR0FJRztFQUNGLGlCQUFBOztBQUVDLG1CQWhCSCxnQkFFRCxHQU9FLEdBT0c7RUFDQyxTQUFTLElBQVQ7O0FBRUYsbUJBbkJILGdCQUVELEdBT0UsR0FVRyxZQUFZO0FBQ2IsbUJBcEJILGdCQUVELEdBT0UsR0FXRyxXQUFXO0VBQ1YsU0FBUyxFQUFUOztBQWpDUCxtQkFzQ0U7RUFDRSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxhWHdHb0IsOENXeEdwQjtFQUNBLHlCQUFBO0VBQ0EsY0FBQTs7QUEzQ0osbUJBc0NFLG9CQU1FO0VBQ0QsaUJBQUE7RUFDQSxrQkFBQTtFQUNBLFNBQUE7O0FBRUMsbUJBWEYsb0JBV0c7RUFDQyxxQkFBQTtFQUNBLGNBQUE7O0FBSU4sUUFBUztFQUNQLFdBQUE7RUFDQSxhQUFBOztBQUZGLFFBQVMsTUFHUDtBQUhGLFFBQVMsTUFJUDtFQUNFLGFBQUE7O0FBR0osT0FBUSxJQUFHO0VBQ1QsWUFBQTtFQUNBLGNBQUE7RUFDQSxxQkFBQTs7QUFFRixPQUFRLElBQUc7RUFDVCxZQUFBOztBQUlGO0FBQ0E7RUFDRSxpQkFBQTtFQUNBLGdDQUFBO0VBQ0EsbUJBQUE7O0FBRUYsc0JBQ0U7RUFDRSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTs7QUFKSixzQkFNRSxlQUFlO0FBTmpCLHNCQU9FLGVBQWU7QUFQakIsc0JBUUUsZUFBZTtFQUNiLGVBQUE7O0FBR0o7RUFDRSxtQkFBQTs7QUFERix3QkFHRTtFQUNFLGdCQUFBO0VBQ0EsV0FBQTs7QUFMSix3QkFPRTtFQUNFLG1CQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBOztBQVdKLFFBUndCO0VBQ3RCLHdCQUNFO0lBQ0UsZUFBQTs7O0FBTU4sUUFFRSxTQUFTLE1BQUssU0FBVTtBQUQxQixLQUNFLFNBQVMsTUFBSyxTQUFVO0VBQ3RCLFdBQUE7RUFDQSxXQUFBO0VBQ0EsY0FBQTtFQUNBLGNBQUE7O0FBR0EsUUFERixlQUNHO0FBQUQsS0FERixlQUNHO0VBQ0Msa0JBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxnQkFBQTs7QUFNRixtQkFMdUM7RUFLdkMsUUFYRixlQUNHO0VBVUQsS0FYRixlQUNHO0lBTUcsZUFBQTtJQUNBLFVBQUE7SUFDQSxXQUFBOzs7QUFqQlIsUUFRRSxlQVlFLEdBQUU7QUFuQk4sS0FPRSxlQVlFLEdBQUU7RUFDQSxrQkFBQTtFQUNBLG1CQUFBOztBQU1OO0VBQ0UsY0FBQTs7QUFJRjtFQUNFLFdBQUE7O0FBRUYsWUFBYTtFQUNYLG1CQUFBOztBQUVGLGNBQWUsUUFBUTtBQUN2QixjQUFlLFFBQVE7RUFDckIsYUFBQTs7QUFJRjtFQUNDLHFCQUFBOztBQUVELFFBQVM7RUFDUCxtQkFBQTtFQUNBLG1EQUFBO0VBQ0EsK0JBQUE7RUFDQSw0QkFBQTs7Ozs7OztBQy9KRixRQUFRLGVBQ047RUFDRSxXQUFBO0VBQ0Esa0JBQUE7O0FBSEosUUFBUSxlQUtOO0VBQ0Usa0JBQUE7O0FBTkosUUFBUSxlQUtOLGFBRUU7RUFDRSxVQUFBO0VBQ0Esc0JBQUE7O0FBVE4sUUFBUSxlQUtOLGFBTUU7RUFDRSxVQUFBO0VBQ0Esc0JBQUE7O0FBYk4sUUFBUSxlQWdCTjtFQUNFLHlCQUFBO0VBQ0EsZ0JBQUE7O0FBbEJKLFFBQVEsZUFvQk4sR0FBRztFQUNELGdCQUFBOztBQXJCSixRQUFRLGVBdUJOO0VBQ0Usa0JBQUE7RUFDQSxxQkFBQTtFQUNBLGdDQUFBOztBQTFCSixRQUFRLGVBNkJOLFNBQ0U7RUFDRSxvQkFBQTs7QUEvQk4sUUFBUSxlQW1DTixlQUFlO0VBQ2IsZ0JBQUE7O0FBcENKLFFBQVEsZUFzQ04sV0FBVztBQXRDYixRQUFRLGVBdUNOO0VBQ0UsY0FBQTs7O0FBT0o7RUFDRSxjQUFBOztBQURGLGNBR0U7RUFDRSxTQUFBOztBQUpKLGNBT0U7QUFQRixjQVFFO0FBUkYsY0FTRTtBQVRGLGNBVUU7RUFDRSxZQUFBOztBQVhKLGNBY0U7RUFDRSxjQUFBOztBQWZKLGNBY0UsZ0JBRUUsUUFBUTtFQUNOLGtCQUFBO0VBQ0EsUUFBQTs7QUFsQk4sY0FjRSxnQkFNRSxHQUFFO0VBQ0EseUJBQUE7O0FBckJOLGNBeUJFLGlCQUNFLFdBQ0U7QUEzQk4sY0F5QkUsaUJBQ0UsV0FFRSxVQUFVO0VBQ1IsZUFBQTtFQUNBLGdCQUFBOztBQ2pGSixlQURGLEVBQ0c7QUFBRCxZQURGLEVBQ0c7RWZ1VkgsWUFBQTtFQUNBLHlCQUFBOztBZW5WRixvQkFDRTtFQUNFLFdBQUE7O0FBRkosb0JBQ0UsWUFFRTtFQUNFLFdBQUE7RUFDQSxjQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0VBQ0EsU0FBQTtFQUNBLGVBQUE7O0FBRUYsb0JBVkYsWUFVRyxNQUFPO0VBQ04sV0FBQTs7QUFaTixvQkFlRTtFQUNFLGNBQUE7RUFDQSxtQkFBQTs7QUFqQkosb0JBbUJFLEVBQ0U7RUFDRSxpQkFBQTtFQUNBLG1CQUFBOztBQUlOLHFCQUNFO0VBQ0UsaUJBQUE7RUFDQSxpQkFBQTs7QUFISixxQkFLRTtFQUNFLFNBQUE7RUFDQSxnQkFBQTs7QUFQSixxQkFLRSxHQUdFO0VBQ0UscUJBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7O0FBQ0EscUJBUkosR0FHRSxHQUtHO0VBQ0MsaUJBQUE7O0FBb0JSLFFBZDBCO0VBQ3hCLG9CQUNFLFlBQVk7SUFDVixxQkFBQTs7RUFGSixvQkFJRSxHQUFFO0lBQ0EsV0FBQTs7RUFMSixvQkFPRTtJQUNFLFdBQUE7OztBQWVOLFFBVjBCO0VBQ3hCLG9CQUNFO0lBQ0UsMkJBQUE7O0VBRkosb0JBSUU7SUFDRSx3QkFBQTs7Ozs7Ozs7O0FDaEVOLElBQUksT0FBTztBQUNYLElBQUksT0FBTzs7Ozs7Ozs7QUFEWCxJQUFJLE9BQU8sWUFLVCxRQUFPLEtBQU07QUFKZixJQUFJLE9BQU8sS0FJVCxRQUFPLEtBQU07QUFMZixJQUFJLE9BQU8sWUFNVCxRQUFPLEtBQU07QUFMZixJQUFJLE9BQU8sS0FLVCxRQUFPLEtBQU07RUFFWCxXQUFBO0VBQ0EscUJBQUE7RUFDQSxrQkFBQTs7QUFWSixJQUFJLE9BQU8sWUFLVCxRQUFPLEtBQU0sU0FRWCxHQUFFO0FBWk4sSUFBSSxPQUFPLEtBSVQsUUFBTyxLQUFNLFNBUVgsR0FBRTtBQWJOLElBQUksT0FBTyxZQU1ULFFBQU8sS0FBTSxTQU9YLEdBQUU7QUFaTixJQUFJLE9BQU8sS0FLVCxRQUFPLEtBQU0sU0FPWCxHQUFFO0VBQ0Esa0JBQUE7RUFDQSxPQUFBOztBQWZOLElBQUksT0FBTyxZQUtULFFBQU8sS0FBTSxTQWFYO0FBakJKLElBQUksT0FBTyxLQUlULFFBQU8sS0FBTSxTQWFYO0FBbEJKLElBQUksT0FBTyxZQU1ULFFBQU8sS0FBTSxTQVlYO0FBakJKLElBQUksT0FBTyxLQUtULFFBQU8sS0FBTSxTQVlYO0VBQ0UsaUJBQUE7O0FBbkJOLElBQUksT0FBTyxZQUtULFFBQU8sS0FBTSxTQWtCWDtBQXRCSixJQUFJLE9BQU8sS0FJVCxRQUFPLEtBQU0sU0FrQlg7QUF2QkosSUFBSSxPQUFPLFlBTVQsUUFBTyxLQUFNLFNBaUJYO0FBdEJKLElBQUksT0FBTyxLQUtULFFBQU8sS0FBTSxTQWlCWDtFQUNFLGlCQUFBOztBQXhCTixJQUFJLE9BQU8sWUE4QlQ7QUE3QkYsSUFBSSxPQUFPLEtBNkJUO0VBQ0UsY0FBQTs7QUEvQkosSUFBSSxPQUFPLFlBOEJULE1BR0UsRUFBQztBQWhDTCxJQUFJLE9BQU8sS0E2QlQsTUFHRSxFQUFDO0FBakNMLElBQUksT0FBTyxZQThCVCxNQUlFLEVBQUM7QUFqQ0wsSUFBSSxPQUFPLEtBNkJULE1BSUUsRUFBQztFQUNDLHVCQUFBOztBQU1KLElBekNFLE9BQU8sWUF5Q1IsT0FBUSxNQUFNO0FBQWYsSUF4Q0UsT0FBTyxLQXdDUixPQUFRLE1BQU07O0VBRVgsWUFBQTs7QUFGSixJQXpDRSxPQUFPLFlBeUNSLE9BQVEsTUFBTSxTQUdiLFFBQU87QUFIVCxJQXhDRSxPQUFPLEtBd0NSLE9BQVEsTUFBTSxTQUdiLFFBQU87RUFDTCxjQUFBOztBQTdDTixJQUFJLE9BQU8sWUFvRFQ7QUFuREYsSUFBSSxPQUFPLEtBbURUO0VBQ0Usd0JBQUE7O0FBckRKLElBQUksT0FBTyxZQXdEVCxLQUFLO0FBdkRQLElBQUksT0FBTyxLQXVEVCxLQUFLO0VBQ0gsY0FBQTtFQUNBLGlCQUFBO0VBQ0EseUJBQUE7RUFDQSxlQUFBOztBQTVESixJQUFJLE9BQU8sWUErRFQsRUFBQztBQTlESCxJQUFJLE9BQU8sS0E4RFQsRUFBQztBQS9ESCxJQUFJLE9BQU8sWUFnRVQsRUFBQztBQS9ESCxJQUFJLE9BQU8sS0ErRFQsRUFBQztFQUNDLGtCQUFBOztBQWpFSixJQUFJLE9BQU8sWUFzRVQ7QUFyRUYsSUFBSSxPQUFPLEtBcUVUO0VBQ0UsdUJBQUE7O0FBdkVKLElBQUksT0FBTyxZQXNFVCxnQkFFRTtBQXZFSixJQUFJLE9BQU8sS0FxRVQsZ0JBRUU7RUFDRSxnQkFBQTtFQUNBLG1CQUFBOztBQTFFTixJQUFJLE9BQU8sWUE4RVQ7QUE3RUYsSUFBSSxPQUFPLEtBNkVUO0FBOUVGLElBQUksT0FBTyxZQStFVDtBQTlFRixJQUFJLE9BQU8sS0E4RVQ7RUFDRSx1QkFBQTs7QUE0QkY7RUFBQSxJQTVHRSxPQUFPLFlBc0ZULFFBQVEsTUFBTTtFQXNCZCxJQTNHRSxPQUFPLEtBcUZULFFBQVEsTUFBTTtJQUNWLGFBQUE7O0VBcUJKLElBNUdFLE9BQU8sWUF5RlA7RUFtQkYsSUEzR0UsT0FBTyxLQXdGUDtFQW1CRixJQTVHRSxPQUFPLFlBMEZQO0VBa0JGLElBM0dFLE9BQU8sS0F5RlA7RUFrQkYsSUE1R0UsT0FBTyxZQTJGUDtFQWlCRixJQTNHRSxPQUFPLEtBMEZQO0lBQ0UscUJBQUE7O0VBZ0JKLElBNUdFLE9BQU8sWUE4RlAsUUFBTyxLQUFNO0VBY2YsSUEzR0UsT0FBTyxLQTZGUCxRQUFPLEtBQU07SUFDWCx3QkFBQTs7RUFhSixJQTVHRSxPQUFPLFlBaUdQO0VBV0YsSUEzR0UsT0FBTyxLQWdHUDtJQUNFLHNCQUFBOztFQVVKLElBNUdFLE9BQU8sWUFvR1AsTUFDRSxFQUFDO0VBT0wsSUEzR0UsT0FBTyxLQW1HUCxNQUNFLEVBQUM7RUFPTCxJQTVHRSxPQUFPLFlBb0dQLE1BRUUsRUFBQztFQU1MLElBM0dFLE9BQU8sS0FtR1AsTUFFRSxFQUFDO0lBQ0MsMEJBQUE7OztBQW1CUjtFQUFBLElBMUhJLE9BQU8sWUE2R1A7RUFhSixJQXpISSxPQUFPLEtBNEdQO0VBYUosSUExSEksT0FBTyxZQThHUDtFQVlKLElBekhJLE9BQU8sS0E2R1A7RUFZSixJQTFISSxPQUFPLFlBK0dQO0VBV0osSUF6SEksT0FBTyxLQThHUDtJQUNFLFNBQUE7O0VBVU4sSUExSEksT0FBTyxZQWtIUCxRQUFPLEtBQU07RUFRakIsSUF6SEksT0FBTyxLQWlIUCxRQUFPLEtBQU07SUFDWCxjQUFBOztFQU9OLElBMUhJLE9BQU8sWUFxSFA7RUFLSixJQXpISSxPQUFPLEtBb0hQO0lBQ0UsVUFBQTs7Ozs7O0FBWU4sRUFBRTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxjQUFBOzs7QUFLRjtFQUNFLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTtFQUdBLHNCQUFBOztBQUNBLE9BQUU7RUFDQSxlQUFBOztBQVJKLE9BV0U7RUFDRSxjQUFBOztBQVpKLE9BY0U7QUFkRixPQWVFO0FBZkYsT0FnQkUsV0FBVzs7O0FBaEJiLE9BbUJFO0VBQ0UsaUJBQUE7O0FBcEJKLE9Bc0JFO0FBdEJGLE9BdUJFLFdBQVc7RUFDVCxjQUFBOztBQXhCSixPQTJCRTtFQUNFLGFBQUE7O0FBNUJKLE9BOEJFO0FBOUJGLE9BK0JFO0VBQ0UsZ0JBQUE7RUFDQSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSx5QkFBQTs7O0FBY0osUUFSMEI7RUFDeEIsWUFBYTtJQUNYLGVBQUE7SUFDQSxrQkFBQTtJQUNBLHFCQUFBOzs7QUFlSixRQVgwQjtFQUN4QixZQUFhO0lBQ1gscUJBQUE7O0VBR0YsWUFBYTtJQUNYLG1CQUFBO0lBQ0Esa0JBQUE7OztBQUlKO0VBQ0UsbUJBQUE7O0FBQ0EsWUFBRTtFQUVBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSx5QkFBQTtFQUNBLGdCQUFBO0VBQ0EsYWR4RW9CLDhDY3dFcEI7RUFDQSxrQkFBQTtFQUNBLGVBQUE7RUFDQSxjQUFBOztBQUVBLFlBYkEsT0FhQztFQUNDLGVBQUE7O0FBRUYsWUFoQkEsT0FnQkM7RUFDQyxlQUFBOztBQUdGLFlBcEJBLE9Bb0JFO0VBQ0EsY0FBQTtFQUNBLDhCQUFBOztBQUtBLFFBSDBCO0VBRzFCLFlBM0JGLE9Bb0JFO0lBS0Usb0JBQUE7OztBQUtKLFFBSDRCO0VBRzVCLFlBOUJBLE9Bb0JFO0lBUUUsb0JBQUE7OztBQTlCUixZQWtDRTtFQUNFLGNBQUE7O0FBQ0EsWUFGRixFQUVHO0VBQ0MsY0FBQTtFQUNBLHFCQUFBOztBQXRDTixZQXlDRTtBQUFHLFlBQUM7RUFDRixrQkFBQTs7QUExQ0osWUE0Q0UsT0FBTTtFQUNKLGVBQUE7O0FBN0NKLFlBK0NFO0VBQ0UseUJBQUE7RUFDQSxjQUFBOztBQUNBLFlBSEYsbUJBR0c7RUFDQyx5QkFBQTs7QUFuRE4sWUErQ0UsbUJBT0U7RUFDRSxTQUFBOztBQXZETixZQStDRSxtQkFPRSxTQUdFO0VBQ0UsY0FBQTtFQUNBLGtCQUFBO0VBQ0EsV0FBQTs7QUFDQSxZQWROLG1CQU9FLFNBR0UsRUFJRztFQUNDLGNBQUE7RUFDQSwwQkFBQTs7QUEvRFYsWUErQ0UsbUJBT0UsU0FhRTtFQUNFLGNBQUE7RUFDQSxvQkFBQTtFQUNBLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLE9BQUE7O0FBeEVSLFlBK0NFLG1CQU9FLFNBcUJFO0FBM0VOLFlBK0NFLG1CQU9FLFNBcUJNO0VBQ0YscUJBQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtFQUNBLGVBQUE7RUFDQSxpQkFBQTs7QUFoRlIsWUErQ0UsbUJBT0UsU0E2QkU7RUFDRSxvQkFBQTtFQUNBLFdBQUE7O0FBRUEsWUF4Q04sbUJBT0UsU0E2QkUsR0FJRztFQUNDLGdCQUFBOztBQXhGVixZQStDRSxtQkFPRSxTQTZCRSxHQVFFO0VBQ0UsY0FBQTtFQUNBLGlCQUFBOztBQW1CTixRQWY0QjtFQWU1QixZQWpFRixtQkFPRTtJQTRDSSxVQUFBO0lBQ0EsUUFBQTs7RUFFQSxZQXRETixtQkFPRSxTQStDSztFQUNELFlBdkROLG1CQU9FLFNBZ0RLO0lBQ0MsVUFBQTs7RUFFRixZQTFETixtQkFPRSxTQW1ESztJQUNDLFdBQUE7O0VBRUYsWUE3RE4sbUJBT0UsU0FzREs7SUFDQyxXQUFBOzs7QUFPVix3QkFFRTtBQURGLGFBQ0U7RWhCdVdBLHlCQUFBOztBQUNBLHdCZ0J4V0EsS2hCd1dDO0FBQUQsYWdCeFdBLEtoQndXQztFQUNDLHlCQUFBOztBZ0IzV0osd0JBS0U7QUFKRixhQUlFO0VoQm9XQSx5QkFBQTs7QUFDQSx3QmdCcldBLFNoQnFXQztBQUFELGFnQnJXQSxTaEJxV0M7RUFDQyx5QkFBQTs7QWdCM1dKLHdCQVFFO0FBUEYsYUFPRTtFaEJpV0EseUJBQUE7O0FBQ0Esd0JnQmxXQSxVaEJrV0M7QUFBRCxhZ0JsV0EsVWhCa1dDO0VBQ0MseUJBQUE7O0FnQjNXSix3QkFXRTtBQVZGLGFBVUU7RWhCOFZBLHlCQUFBOztBQUNBLHdCZ0IvVkEsVWhCK1ZDO0FBQUQsYWdCL1ZBLFVoQitWQztFQUNDLHlCQUFBOztBZ0IzV0osd0JBY0U7QUFiRixhQWFFO0VoQjJWQSx5QkFBQTs7QUFDQSx3QmdCNVZBLE9oQjRWQztBQUFELGFnQjVWQSxPaEI0VkM7RUFDQyx5QkFBQTs7QWdCM1dKLHdCQWlCRTtBQWhCRixhQWdCRTtFaEJ3VkEseUJBQUE7O0FBQ0Esd0JnQnpWQSxRaEJ5VkM7QUFBRCxhZ0J6VkEsUWhCeVZDO0VBQ0MseUJBQUE7O0FnQjNXSix3QkFvQkU7QUFuQkYsYUFtQkU7RWhCcVZBLHlCQUFBOztBQUNBLHdCZ0J0VkEsU2hCc1ZDO0FBQUQsYWdCdFZBLFNoQnNWQztFQUNDLHlCQUFBOztBZ0IzV0osd0JBdUJFO0FBdEJGLGFBc0JFO0VoQmtWQSx5QkFBQTs7QUFDQSx3QmdCblZBLFdoQm1WQztBQUFELGFnQm5WQSxXaEJtVkM7RUFDQyx5QkFBQTs7QWdCM1dKLHdCQTBCRTtBQXpCRixhQXlCRTtFaEIrVUEseUJBQUE7O0FBQ0Esd0JnQmhWQSxXaEJnVkM7QUFBRCxhZ0JoVkEsV2hCZ1ZDO0VBQ0MseUJBQUE7O0FnQjNXSix3QkE2QkU7QUE1QkYsYUE0QkU7RWhCNFVBLHlCQUFBOztBQUNBLHdCZ0I3VUEsUWhCNlVDO0FBQUQsYWdCN1VBLFFoQjZVQztFQUNDLHlCQUFBOztBZ0IzV0osd0JBZ0NFO0FBL0JGLGFBK0JFO0VoQnlVQSx5QkFBQTs7QUFDQSx3QmdCMVVBLFFoQjBVQztBQUFELGFnQjFVQSxRaEIwVUM7RUFDQyx5QkFBQTs7QWdCM1dKLHdCQW1DRTtBQWxDRixhQWtDRTtFQUNFLHlCQUFBOztBQUNBLHdCQUZGLE9BRUc7QUFBRCxhQUZGLE9BRUc7RUFDQyx5QkFBQTs7QUF0Q04sd0JBeUNFO0FBeENGLGFBd0NFO0VBQ0UseUJBQUE7O0FBQ0Esd0JBRkYsT0FFRztBQUFELGFBRkYsT0FFRztFQUNDLHlCQUFBOztBQTVDTix3QkErQ0U7QUE5Q0YsYUE4Q0U7RUFDRSxrQkFBQTtFQUNBLGVBQUE7RUFDQSxlQUFBO0VBQ0EsY0FBQTs7QUFDQSx3QkFMRixZQUtHO0FBQUQsYUFMRixZQUtHO0VBQ0MsY0FBQTs7QUFLTjtFQUNFLHdCQUFBO0VBQ0EseUJBQUE7RUFDQSxVQUFBOztBQUhGLHdCQUtFO0VBQ0UsYUFBQTs7QUFHQSx3QkFERixhQUNJO0VBQ0EsbUJBQUE7RUFDQSxjQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7RUFDQSxlQUFBOztBQUNBLHdCQVBKLGFBQ0ksT0FNQztFQUNDLGVBQUE7O0FBRUYsd0JBVkosYUFDSSxPQVNFO0VBQ0EsY0FBQTtFQUNBLGNBQUE7RUFDQSxhQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBOztBQUdKLHdCQWxCRixhQWtCSSxTQUFRO0FBQ1Ysd0JBbkJGLGFBbUJJLE9BQU0sTUFBTztFQUNiLGNBQUE7O0FBNUJOLHdCQStCRTtBQS9CRix3QkFnQ0U7QUFoQ0Ysd0JBaUNFO0FBakNGLHdCQWtDRTtFQUNFLGNBQUE7RUFDQSx5QkFBQTs7QUFwQ0osd0JBc0NFO0VBQ0UseUJBQUE7RUFDQSxjQUFBOztBQXhDSix3QkFzQ0UsbUJBR0UsRUFBQztBQUNELHdCQUpGLG1CQUlHO0VBQ0MseUJBQUE7RUFDQSxjQUFBOztBQTVDTix3QkFzQ0UsbUJBUUU7RUFDRSxTQUFBO0VBQ0EsZUFBQTs7QUFoRE4sd0JBc0NFLG1CQVFFLFNBR0U7RUFDRSxvQkFBQTs7QUFsRFIsd0JBc0NFLG1CQVFFLFNBTUU7RUFDRSxjQUFBOztBQUNBLHdCQWhCTixtQkFRRSxTQU1FLEVBRUc7RUFDQyxjQUFBO0VBQ0EsMEJBQUE7O0FBeERWLHdCQTZERTtFQUNFLGNBQUE7O0FBOURKLHdCQWdFRTtFQUlFLGdCQUFBOztBQXBFSix3QkFnRUUsYUFDRSxFQUFDLE1BQU87RUFDTixVQUFBOztBQWxFTix3QkFnRUUsYUFLRTtFQUNFLFNBQUE7Ozs7Ozs7O0FBV04sZ0JBQ0U7QUFERixnQkFDSztFQUNELFlBQUE7RUFDQSxhZGhVb0IsOENjZ1VwQjtFQUNBLHlCQUFBO0VBQ0Esa0JBQUE7O0FBQ0EsZ0JBTEYsRUFLRztBQUFELGdCQUxDLEtBS0E7RUFDQyxlQUFBOzs7QUFPTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0UsZ0JBQUE7RUFDQSxlQUFBO0VBQ0EsYWRsVnNCLDhDY2tWdEI7O0FBR0YsWUFBYSxZQUdYO0FBRkYsd0JBQXlCLFlBRXZCO0FBREYsT0FDRTtFQUNFLGlCQUFBO0VBQ0EsY0FBQTtFQUNBLGdCQUFBOztBQUdKLE9BQVEsY0FBYyxHQUNwQixFQUFDO0VBQ0MsWUFBQTtFQUNBLGVBQUE7RUFDQSxjQUFBO0VBQ0EsZUFBQTs7QUFDQSxPQU5JLGNBQWMsR0FDcEIsRUFBQyxTQUtFO0VoQjVKSCxhQUFBO0VBQ0EseUJBQUE7OztBZ0JtS0Y7RUFDRSxXQUFBO0VBQ0EsWUFBQTs7QUFGRixhQUdFO0VBQ0UsZ0JBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7O0FBTkosYUFRRTtFQUNFLGtCQUFBO0VBQ0EsZ0JBQUE7Ozs7Ozs7O0FBV0o7RUFDRSxrQkFBQTtFQUNBLHlCQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBOztBQUNBLEtBQUM7RUFDQyw2QkFBQTs7QUFDQSxLQUZELFdBRUU7RUFDQyxjQUFBOztBQVJOLEtBV0UsRUFBQztBQVhILEtBWUUsRUFBQztFQUNDLFdBQUE7RUFDQSxlQUFBOztBQWRKLEtBZ0JFLEVBQUM7RUFDQyxnQkFBQTtFQUNBLGNBQUE7RUFDQSxvQkFBQTs7QUFuQkosS0FxQkUsRUFBQztFQUNDLGlCQUFBO0VBQ0Esb0JBQUE7RUFDQSxhQUFBOztBQUVGLEtBQUM7QUFDRCxLQUFDO0VBQ0MsbUJBQUE7O0FBRkYsS0FBQyxTQUdDO0FBRkYsS0FBQyxTQUVDO0VBQ0UsZ0JBQUE7O0FBR0osS0FBQztFQUNDLGFBQUE7RUFDQSxTQUFBOztBQ3RqQkosS0FBTSxTQUFTLFFBQVEsSUFBRztBQUMxQixZQUFhLElBQUc7RUFDZCxjQUFBO0VBQ0EsWUFBQTtFQUNBLHFCQUFBOztBQUdGO0VBQ0UsZ0JBQUE7O0FBREYsZ0JBRUU7RUFDRSxZQUFBO0VBQ0EsYUFBQTs7QUFDQSxnQkFIRixRQUdHO0VBQ0MsV0FBQTtFQUNBLFdBQUE7RUFDQSxjQUFBOztBQUVGLGdCQVJGLFFBUUc7RUFDQyxZQUFBO0VBQ0EsV0FBQTs7QUx3RE47RUFDRSxtQkFBQTtFQUNBLGNBQUE7O0FBRkYsT0FHRTtFQUNFLGVBQUE7RUFDQSxtQkFBQTtFQUNBLGlCQUFBOztBQU5KLE9BUUU7RUFDRSxTQUFBOztBQVRKLE9BV0U7QUFYRixPQVdNO0VBQ0Ysa0JBQUE7RUFDQSxnQkFBQTs7QUFiSixPQWVFO0VBQ0Usa0JBQUE7O0FBR0osV0FBWTtFQUNWLGtCQUFBOzs7QUFHRixNQUFPO0VBQ0wsZUFBQTtFQUNBLGVBQUE7O0FBRUYsTUFBTztFQUNMLGNBQUE7O0FBRUYsQ0FBQztFQUNDLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLGlCQUFBO0VBQ0EsY0FBQTtFQUNBLGNBQUE7O0FBRUYsQ0FBQztFQUNDLGVBQUE7RUFDQSxlQUFBO0VBQ0EsY0FBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQUFBOztBQUVGO0FBQ0E7QUFDQTtFQUNFLGdCQUFBOztBQUVGO0VBQ0UsVUFBQTs7QUFFRjtFQUNFLFdBQUE7O0FBRUY7RUFDRSxrQkFBQTtFQUNBLHlCQUFBOztBQUVGO0FBQ0E7RUFDRSxlVmdCK0IsK0JVaEIvQjtFQUNBLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBOztBQUVBLFdBQUM7QUFBRCxnQkFBQztBQUNELFdBQUM7QUFBRCxnQkFBQztFQUNDLFNBQVMsRUFBVDtFQUNBLGNBQUE7RUFDQSxXQUFBO0VBQ0EsV0FBQTtFQUNBLGlCQUFBO0VBQ0EsbUJBQUE7O0FBZEosV0FpQkU7QUFoQkYsZ0JBZ0JFO0VBQ0UsZUFBQTtFQUNBLFNBQUE7RUFDQSxvQkFBQTs7QUFwQkosV0FzQkU7QUFyQkYsZ0JBcUJFO0VBQ0UsZUFBQTtFQUNBLGtCQUFBOztBQUdKO0VBQ0Usa0JBQUE7O0FNL0pGO0VBQ0UseUJBQUE7RUFDQSxrQkFBQTtFQUNBLDZCQUFBO0VBQ0EsbUJBQUE7Ozs7O0FBT0Y7RUFDQyxXQUFBOztBQUVELFFBQVM7RUFDUixlQUFBO0VBQ0EsbUJBQUE7RUFDQSxpQkFBQTs7QUFFRDtFQUNDLGNBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQUFBO0VBQ0Esa0JBQUE7O0FBRUQ7RUFDQyxhQUFBOztBQUVEO0VBQ0MsZ0JBQUE7RUFDQSxjQUFBO0VBQ0EsV0FBQTs7QUFHRCxZQUFhLEtBQUk7RUFDaEIsbUJBQUE7RUFDQSxzQkFBQTtFQUNBLGdCQUFBO0VBQ0EsYUFBQTtFQUNBLGtCQUFBOztBQUVELFlBQWE7RUFDWixtQkFBQTtFQUNBLGtCQUFBOztBQUVELFlBQWE7RUFDWixnQkFBQTtFQUNBLFNBQUE7O0FBRUQsWUFBYSxVQUFVLEdBQUU7RUFDeEIsZ0JBQUE7RUFDQSwyQkFBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTs7QUFFRCxZQUFhLFVBQVUsR0FBRSxRQUFTO0VBQ2pDLGNBQUE7O0FBRUQsYUFBYztFQUNiLGtCQUFBOztBQUVEO0VBQ0MsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7O0FBRUQsWUFBYTtFQUNaLFdBQUE7O0FBRUQsWUFBYSxpQkFBaUI7RUFDN0IsZUFBQTtFQUNBLGtCQUFBOztBQUVELFlBQWEsVUFBVSxHQUFFLFFBQVM7RUFDakMsb0JBQUE7RUFDQSxpQkFBQTs7QUFFRCxZQUFhLFVBQVUsR0FBRSxRQUFTO0VBQ2pDLG1CQUFBOztBQU1ELFlBQWE7RWxCbUlYLHFDQUFBO0VBQ0csa0NBQUE7RUFDSyw2QkFBQTtFa0JuSVQsVUFBQTtFQUNBLFdBQUE7RUFDQSxxQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBOztBQUdELFlBQWEsVUFBVTtFQUN0QixnQkFBQTtFQUNBLHdCQUFBO0VBQ0EscUJBQUE7RUFDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxVQUFBO0VBQ0EsVUFBQTs7QUFFRCxDQUFDO0VBQ0EsZ0JBQUE7RUFDQSxXQUFBO0VBQ0EscUJBQUE7RUFDQSxlQUFBO0VBQ0EsY0FBQTtFQUNBLHFCQUFBOztBQUVELENBQUMsbUJBQW1CO0FBQ3BCLENBQUMsbUJBQW1CO0FBQ3BCLENBQUMsbUJBQW1CO0VBQ25CLGdCQUFBO0VBQ0EsV0FBQTs7QUFFRCxDQUFDLG1CQUFvQjtFQUNwQixxQkFBQTtFQUNBLGtCQUFBO0VBQ0EsU0FBQTs7O0FBSUQsWUFBYSxLQUFJO0VBQ2hCLGdCQUFBO0VBQ0EscUJBQUE7O0FBRUQsWUFBYSxLQUFJLGFBQWM7RUFDOUIsY0FBQTs7QUFNRCxZQUFhLEtBQUksYUFBYTtFQUM3QixtREFBQTs7O0FBSUQsWUFBYSxVQUFVLEtBQUk7RUFDMUIsZ0JBQUE7RUFDQSxxQkFBQTs7O0FBSUQ7RUFDQyxtQkFBQTtFQUNBLHNCQUFBO0VBQ0EsbUJBQUE7RUFDQSxpQkFBQTtFQUNBLFVBQUE7O0FBRUQsUUFBUyxNQUFLO0FBQ2QsUUFBUztFQUNSLGdCQUFBO0VBQ0Esc0JBQUE7RUFDQSw2REFBQTtFQUNBLDBEQUFBO0VBQ0EscURBQUE7RUFDQSxrQkFBQTtFQUNBLGFBQUE7RUFDQSxpQkFBQTs7QUFFRCxRQUFTO0FBQ1QsUUFBUztBQUNULFFBQVM7QUFDVCxRQUFTO0VBQ1Isa0JBQUE7RUFDQSxpQkFBQTs7QUFFRCxRQUFTLHFCQUFxQjtBQUM5QixRQUFTLG9CQUFvQjtBQUM3QixRQUFTLGtCQUFrQjtBQUMzQixRQUFTLHNCQUFzQjtFQUM5QixnQkFBQTtFQUNBLHdEQUFBO0VBQ0EscURBQUE7RUFDQSxnREFBQTtFQUNBLFdBQUE7RUFDQSxxQkFBQTtFQUNBLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLGVBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7O0FBRUQsUUFBUyxNQUFLLGFBQWE7QUFDM0IsUUFBUyxTQUFRO0VBQ2hCLGNBQUE7RUFDQSxVQUFBOztBQUVELFFBQVM7RUFDUixnQkFBQTtFQUNBLFVBQUE7O0FBRUQsUUFBUyxxQkFBcUI7QUFDOUIsUUFBUyxvQkFBb0I7RUFDNUIsY0FBQTtFQUNBLGVBQUE7RUFDQSxpQkFBQTtFQUNBLFNBQUE7RUFDQSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxVQUFBOztBQUVELFFBQVM7QUFDVCxRQUFTO0VBQ1Isa0JBQUE7O0FBRUQsUUFBUztFQUNSLGNBQUE7O0FBRUQsUUFBUztFQUNSLFlBQUE7RUFDQSxvQkFBQTs7QUFFRCxRQUFTLE1BQUs7RUFDYixnQkFBQTtFQUNBLFlBQUE7RWxCTEMsZ0RBQUE7RUFDRyw2Q0FBQTtFQUNLLHdDQUFBO0VrQktULFdBQUE7RUFDQSxlQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsaUJBQUE7RUFDQSx3Q0FBQTs7QUFHRCxRQUFTLE1BQUssT0FBTztFQUNwQixnQkFBQTs7QUFHRCxRQUFTLE1BQUssT0FBTztFQUNwQixtQkFBQTtFQUNBLGNBQUE7O0FBRUQsUUFBUztFQUNSLFdBQUE7RUFDQSxvQkFBQTtFQUNBLHFCQUFBOztBQUVELFFBQVMsY0FBYyxFQUFDO0FBQ3hCLFFBQVMsMkJBQTBCO0VBQ2xDLDBCQUFBOztBQUVELFlBQWE7RUFDWixtQkFBQTtFQUNBLFdBQUE7O0FBRUQ7RUFDQyxjQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLGlCQUFBOztBQUVEO0VBQ0MsV0FBQTtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxzQkFBQTtFQUNBLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLHFCQUFBO0VBQ0EseUJBQUE7RUFDQSxVQUFBOztBQUVELDBCQUEwQjtBQUMxQiwwQkFBMEI7QUFDMUIsMEJBQTBCO0VBQ3pCLGNBQUE7O0FBRUQsUUFBUztFQUNSLGtCQUFBOztBQUVELFFBQVMsTUFBSztFQUNiLGNBQUE7RUFDQSxZQUFBO0VBQ0EsVUFBQTs7QUFFRCxRQUFTO0VBQ1Isa0JBQUE7O0FBRUQsQ0FBQztFQUNBLFNBQUE7O0FBRUQ7RUFDQyxhQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNsUkQ7RUFDRSxtQkFBQTs7QUFERixPQUVFO0FBRkYsT0FFSztFQUNELGVBQUE7O0FBSEosT0FLRTtFQUNFLGdCQUFBO0VBQ0EsbUJBQUE7RUFDQSxnQkFBQTs7QUFSSixPQUtFLEdBSUU7RUFDRSxvQkFBQTtFQUNBLGdCQUFBOztBQVhOLE9BY0U7RUFDRSxnQkFBQTtFQUNBLGtCQUFBOztBQWhCSixPQWtCRSxFQUFDO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBOztBQUtDLE9BRkYsSUFFRztFQUNDLFlBQUE7RUFDQSwwQkFBQTs7QUFFRixPQU5GLElBTUc7RUFDQyxXQUFBO0VBQ0EsMEJBQUE7O0FBR0YsT0FYRixJQVdHO0FBQWtCLE9BWHJCLElBV3NCO0VBQ2xCLGtCQUFBOztBQW5DTixPQXNDRTtFQUNFLG9CQUFBO0VBQ0EsZUFBQTs7QUFrQkUsVUFiRixTQVlDLFlBQ0csSUFBSTtBQUFOLFVBWkYsU0FXQyxZQUNHLElBQUk7QUFBTixVQVhGLFNBVUMsWUFDRyxJQUFJO0FBQU4sVUFWRixTQVNDLFlBQ0csSUFBSTtBQUFOLFVBVEYsU0FRQyxZQUNHLElBQUk7QUFBTixVQVJGLFNBT0MsWUFDRyxJQUFJO0FBQU4sVUFQRixTQU1DLFlBQ0csSUFBSTtBQUFOLFVBTkYsU0FLQyxZQUNHLElBQUk7QUFBTixVQUxGLFNBSUMsWUFDRyxJQUFJO0FBQU4sVUFKRixVQUdDLFlBQ0csSUFBSTtBQUFOLFVBSEYsVUFFQyxZQUNHLElBQUk7QUFBTixVQUZGLFVBQ0MsWUFDRyxJQUFJO0FBQ04sVUFkRixTQVlDLFlBRUc7QUFBRixVQWJGLFNBV0MsWUFFRztBQUFGLFVBWkYsU0FVQyxZQUVHO0FBQUYsVUFYRixTQVNDLFlBRUc7QUFBRixVQVZGLFNBUUMsWUFFRztBQUFGLFVBVEYsU0FPQyxZQUVHO0FBQUYsVUFSRixTQU1DLFlBRUc7QUFBRixVQVBGLFNBS0MsWUFFRztBQUFGLFVBTkYsU0FJQyxZQUVHO0FBQUYsVUFMRixVQUdDLFlBRUc7QUFBRixVQUpGLFVBRUMsWUFFRztBQUFGLFVBSEYsVUFDQyxZQUVHO0VBQ0EsbUJBQUE7O0FBSUYsUUFINEI7RUFHNUIsVUFuQkYsU0FZQyxZQUNHLElBQUk7RUFNTixVQWxCRixTQVdDLFlBQ0csSUFBSTtFQU1OLFVBakJGLFNBVUMsWUFDRyxJQUFJO0VBTU4sVUFoQkYsU0FTQyxZQUNHLElBQUk7RUFNTixVQWZGLFNBUUMsWUFDRyxJQUFJO0VBTU4sVUFkRixTQU9DLFlBQ0csSUFBSTtFQU1OLFVBYkYsU0FNQyxZQUNHLElBQUk7RUFNTixVQVpGLFNBS0MsWUFDRyxJQUFJO0VBTU4sVUFYRixTQUlDLFlBQ0csSUFBSTtFQU1OLFVBVkYsVUFHQyxZQUNHLElBQUk7RUFNTixVQVRGLFVBRUMsWUFDRyxJQUFJO0VBTU4sVUFSRixVQUNDLFlBQ0csSUFBSTtFQU1OLFVBbkJGLFNBWUMsWUFFRztFQUtGLFVBbEJGLFNBV0MsWUFFRztFQUtGLFVBakJGLFNBVUMsWUFFRztFQUtGLFVBaEJGLFNBU0MsWUFFRztFQUtGLFVBZkYsU0FRQyxZQUVHO0VBS0YsVUFkRixTQU9DLFlBRUc7RUFLRixVQWJGLFNBTUMsWUFFRztFQUtGLFVBWkYsU0FLQyxZQUVHO0VBS0YsVUFYRixTQUlDLFlBRUc7RUFLRixVQVZGLFVBR0MsWUFFRztFQUtGLFVBVEYsVUFFQyxZQUVHO0VBS0YsVUFSRixVQUNDLFlBRUc7SUFHRSxnQkFBQTs7O0FBS0osVUF0QkYsU0FxQkMsV0FDRyxJQUFJO0FBQU4sVUFyQkYsU0FvQkMsV0FDRyxJQUFJO0FBQU4sVUFwQkYsU0FtQkMsV0FDRyxJQUFJO0FBQU4sVUFuQkYsU0FrQkMsV0FDRyxJQUFJO0FBQU4sVUFsQkYsU0FpQkMsV0FDRyxJQUFJO0FBQU4sVUFqQkYsU0FnQkMsV0FDRyxJQUFJO0FBQU4sVUFoQkYsU0FlQyxXQUNHLElBQUk7QUFBTixVQWZGLFNBY0MsV0FDRyxJQUFJO0FBQU4sVUFkRixTQWFDLFdBQ0csSUFBSTtBQUFOLFVBYkYsVUFZQyxXQUNHLElBQUk7QUFBTixVQVpGLFVBV0MsV0FDRyxJQUFJO0FBQU4sVUFYRixVQVVDLFdBQ0csSUFBSTtBQUNOLFVBdkJGLFNBcUJDLFdBRUc7QUFBRixVQXRCRixTQW9CQyxXQUVHO0FBQUYsVUFyQkYsU0FtQkMsV0FFRztBQUFGLFVBcEJGLFNBa0JDLFdBRUc7QUFBRixVQW5CRixTQWlCQyxXQUVHO0FBQUYsVUFsQkYsU0FnQkMsV0FFRztBQUFGLFVBakJGLFNBZUMsV0FFRztBQUFGLFVBaEJGLFNBY0MsV0FFRztBQUFGLFVBZkYsU0FhQyxXQUVHO0FBQUYsVUFkRixVQVlDLFdBRUc7QUFBRixVQWJGLFVBV0MsV0FFRztBQUFGLFVBWkYsVUFVQyxXQUVHO0VBQ0Esa0JBQUE7O0FBSUYsUUFINEI7RUFHNUIsVUE1QkYsU0FxQkMsV0FDRyxJQUFJO0VBTU4sVUEzQkYsU0FvQkMsV0FDRyxJQUFJO0VBTU4sVUExQkYsU0FtQkMsV0FDRyxJQUFJO0VBTU4sVUF6QkYsU0FrQkMsV0FDRyxJQUFJO0VBTU4sVUF4QkYsU0FpQkMsV0FDRyxJQUFJO0VBTU4sVUF2QkYsU0FnQkMsV0FDRyxJQUFJO0VBTU4sVUF0QkYsU0FlQyxXQUNHLElBQUk7RUFNTixVQXJCRixTQWNDLFdBQ0csSUFBSTtFQU1OLFVBcEJGLFNBYUMsV0FDRyxJQUFJO0VBTU4sVUFuQkYsVUFZQyxXQUNHLElBQUk7RUFNTixVQWxCRixVQVdDLFdBQ0csSUFBSTtFQU1OLFVBakJGLFVBVUMsV0FDRyxJQUFJO0VBTU4sVUE1QkYsU0FxQkMsV0FFRztFQUtGLFVBM0JGLFNBb0JDLFdBRUc7RUFLRixVQTFCRixTQW1CQyxXQUVHO0VBS0YsVUF6QkYsU0FrQkMsV0FFRztFQUtGLFVBeEJGLFNBaUJDLFdBRUc7RUFLRixVQXZCRixTQWdCQyxXQUVHO0VBS0YsVUF0QkYsU0FlQyxXQUVHO0VBS0YsVUFyQkYsU0FjQyxXQUVHO0VBS0YsVUFwQkYsU0FhQyxXQUVHO0VBS0YsVUFuQkYsVUFZQyxXQUVHO0VBS0YsVUFsQkYsVUFXQyxXQUVHO0VBS0YsVUFqQkYsVUFVQyxXQUVHO0lBR0UsZUFBQTs7OztBQVNWO0FBQ0EsUUFBUyxHQUFFO0VBQ1Qsa0JBQUE7RUFDQSxlQUFBO0VBQ0EseUJBQUE7RUFDQSxpQkFBQTtFQUNBLGNBQUE7O0FBTkYsWUFPRTtBQU5GLFFBQVMsR0FBRSxZQU1UO0VBQ0UsY0FBQTs7O0FBTUo7RW5Cc2pCRSxjQUFBOzs7QW1CdGpCRixZQUVFLEVBQUM7RUFDQyxjQUFBOztBQUhKLFlBS0U7QUFMRixZQU1FLEdBQUU7RW5CZ2pCRixjQUFBO0VtQjlpQkUsZUFBQTtFQUNBLHlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtFQUNBLHFCQUFBOztBQVpKLFlBY0U7RUFDRSxrQkFBQTs7QUFmSixZQWlCRTtBQWpCRixZQWtCRTtFQUNFLGdCQUFBO0VBQ0EsWUFBQTs7QUFwQkosWUFzQkU7QUF0QkYsWUFzQks7RUFDRCxpQkFBQTs7QUF2QkosWUF5QkU7RUFDRSxTQUFBO0VBQ0EsYWpCR29CLDhDaUJIcEI7O0FBM0JKLFlBeUJFLEdBR0U7RUFDRSxpQkFBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7O0FBL0JOLFlBbUNFO0FBbkNGLFlBb0NFO0VBQ0UsYWpCUG9CLDhDaUJPcEI7O0FBckNKLFlBdUNFO0VBQ0UsVUFBQTs7QUF4Q0osWUEwQ0UsTUFBSztFQUNILFVBQUE7RUFDQSxtQkFBQTtFQUNBLFlBQUE7O0FBN0NKLFlBK0NFLE1BQUs7RUFDSCxjQUFBO0VBQ0Esb0JBQUE7O0FBSUosY0FBZSwwQkFBMEI7QUFDekMsWUFBYSxNQUFNLEdBQUU7RUFDbkIsYUFBQTs7O0FBS0YsT0FBTztFQUNMLGNBQUE7RUFDQSx5QkFBQTs7QUFGRixPQUFPLElBR0w7RUFDRSx5QkFBQTtFQUNBLGNBQUE7RUFDQSxZQUFBOztBQU5KLE9BQU8sSUFHTCxhQUlFO0VBQ0UsY0FBQTs7QUFSTixPQUFPLElBV0w7RUFDRSxjQUFBO0VBQ0EsaUJBQUE7O0FBYkosT0FBTyxJQWVMLGFBQWE7RUFDWCxjQUFBOztBQUdKLE9BQU87RUFDTCxnQkFBQTs7QUFERixPQUFPLE1BRUw7QUFGRixPQUFPLE1BRUY7RUFDRCxnQkFBQTtFQUNBLFlBQUE7O0FBSkosT0FBTyxNQU1MO0VBQ0UsY0FBQTs7O0FBTUosUUFBUztFQUNQLGVBQUE7OztBQUlGLFFBQVM7RUFDUCxtQkFBQTs7QUFDQSxRQUZPLFFBRU47RUFDQyxvQkFBQTs7QUFLSixRQUg0QjtFQUc1QixRQVJTO0lBTUwsVUFBQTs7O0FBR0osT0FBTyxPQUFRLFNBQVM7RUFDdEIsZUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUMxTkYsZUFBZ0I7QUFDaEIsa0JBQW1CO0FBQ25CLG9CQUFxQjtBQUNyQixjQUFlO0VBQ2IsZUFBQTs7QUFFRixlQUFnQjtBQUNoQixrQkFBbUI7RXBCZWpCLFNBQUE7RUFDQSxNQUFNLGFBQU47RUFDQSxXQUFXLFVBQVg7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLDZCQUFBO0VBQ0EsVUFBQTtFQUNBLDRCQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QXFCOUJGLFlBQWE7RUFDWCxnQkFBQTs7QUFHRixZQUFhLGFBQWE7RUFDeEIsbUJBQUE7Ozs7Ozs7QUNMRixPQUFRLFlBQVk7RUFDbEIsVUFBQTtFQUNBLFNBQUE7O0FBR0Y7RUFDRSxXQUFBO0VBQ0EsU0FBQTs7QUFGRixXQUdFLElBQUc7RUFDRCxXQUFBO0VBQ0EsdUJBQUE7RUFDQSxZQUFBO0VBQ0EseUJBQUE7O0FBUEosV0FTRTtFQUNFLGVBQUE7RUFDQSxrQkFBQTs7QUFYSixXQWFFO0VBQ0UsZ0JBQUE7RUFDQSxTQUFBO0VBQ0EsV0FBQTs7QUFoQkosV0FhRSxHQUlFO0VBQ0UscUJBQUE7RUFDQSxXQUFBO0VBQ0EsaUJBQUE7RUFDQSxlQUFBOztBQXJCTixXQWFFLEdBSUUsR0FLRTtFQUNELGNBQUE7RUFDQSxZQUFBO0VBQ0EsY0FBQTtFQUNBLHlCQUFBO0V0QmlMSCwwQkFBQTtFQUNHLHVCQUFBO0VBQ0ssa0JBQUE7O0FzQmpMTCxXQWZILEdBSUUsR0FLRSxFQU1BO0VBQ0YseUJBQUE7O0FBN0JKLFdBYUUsR0FJRSxHQWVFO0VBQ0UsWUFBQTs7QUFDQSxXQXJCTixHQUlFLEdBZUUsRUFFRztFQUNDLGVBQUE7O0FBR0osV0F6QkosR0FJRSxHQXFCRztFQUNDLGVBQUE7RUFDQSxpQkFBQTtFQUNBLGFwQjhGZ0IsOENvQjlGaEI7O0FBSEYsV0F6QkosR0FJRSxHQXFCRyxrQkFJQztFQUNELGlCQUFBO0VBQ0csY0FBQTs7QUFDQSxXQWhDUixHQUlFLEdBcUJHLGtCQUlDLEVBR0c7RUFDQyxxQkFBQTs7Ozs7OztBQ3BEWixJQUFJLE9BQU8sWUFFVCxnQkFDRTtBQUZKLElBQUksT0FBTyxLQUNULGdCQUNFO0VBQ0UsY0FBQTs7Ozs7OztBQ0hOLGFBQWM7RUFDWixrQkFBQTs7Ozs7Ozs7O0FDQUY7RUFDRSxjQUFBO0VBQ0EsZUFBQTtFQUNBLGF2QndJc0IsOEN1QnhJdEI7RUFDQSxrQkFBQTtFQUNBLGNBQUE7O0FBQ0EsVUFBQztFQUNELHFCQUFBO0VBQ0EsY0FBQTs7QUFSRixVQVVFO0VBQ0UsY0FBQTtFQUNBLHNCQUFBO0VBQ0EsK0JBQUE7RUFDQSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxXQUFBOztBQUlKLGVBQWdCO0VBQ2QsVUFBQTs7Ozs7Ozs7QUNuQkYsWUFBYSxpQkFBaUI7RUFDNUIsMEJBQUE7Ozs7Ozs7Ozs7QUNFRjtFQUNFLGdCQUFBOztBQURGLE1BRUU7RUFDRSxxQkFBQTtFQUNBLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLHlCQUFBOztBQUNBLE1BTEYsRUFLRztFQUNBLHlCQUFBO0VBQ0EsY0FBQTtFQUNBLHFCQUFBOztBQUlMO0VBQ0UsVUFBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTs7QUFIRixLQUlFO0VBQ0UsWUFBQTtFQUNBLGtCQUFBOztBQUdKO0VBQ0UsVUFBQTtFQUNBLFdBQUE7RUFDQSxnQkFBQTs7QUFIRixTQUlFO0VBQ0UsV0FBQTtFQUNBLG1CQUFBOzs7Ozs7OztBQ2xDSixPQUFPLHNCQUNMO0VBQ0UsY0FBQTtFQUNBLGdCQUFBOztBQUhKLE9BQU8sc0JBS0w7RUFDRSxXQUFBO0VBQ0Esa0JBQUE7O0FBUEosT0FBTyxzQkFTTDtFQUNFLG9CQUFBO0VBQ0EsZ0JBQUE7O0FBQ0EsT0FaRyxzQkFTTCxFQUdHO0VBQ0MsZ0JBQUE7O0FBRUYsT0FmRyxzQkFTTCxFQU1HO0VBQ0MsV0FBQTs7QUFFRixPQWxCRyxzQkFTTCxFQVNHO0VBQ0MsV0FBQTtFQUNBLFdBQUE7RUFDQSxjQUFBOztBQUhGLE9BbEJHLHNCQVNMLEVBU0csYUFJQztFQUNFLGdCQUFBOzs7Ozs7Ozs7QUN0QlIsT0FBTyxvQkFDTDtFQUNFLGlCQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTs7QUFKSixPQUFPLG9CQU1MLEdBQUU7RUFDQSxTQUFBOztBQVBKLE9BQU8sb0JBTUwsR0FBRSxRQUVBO0VBQ0UsZ0JBQUE7RUFDQSxjQUFBO0U3QlBKLFFBQUE7O0FBQ0EsTzZCSkssb0JBTUwsR0FBRSxRQUVBLEc3QkpEO0FBQ0QsTzZCTEssb0JBTUwsR0FBRSxRQUVBLEc3QkhEO0VBQ0MsY0FBQTtFQUNBLFNBQVMsRUFBVDs7QUFFRixPNkJUSyxvQkFNTCxHQUFFLFFBRUEsRzdCQ0Q7RUFDQyxXQUFBOztBNkJWSixPQUFPLG9CQWNMO0VBQ0UsZUFBQTtFQUNBLG1CQUFBOzs7QUFPRix3QkFMNEM7RUFLNUMsT0F2Qkssb0JBY0w7SUFLSSxlQUFBO0lBQ0EsZ0JBQUE7SUFDQSxvQkFBQTs7O0FBckJOLE9BQU8sb0JBd0JMLEdBQUU7RUFDQSxpQkFBQTtFQUNBLG1CQUFBOzs7QUFLRix3QkFINEM7RUFHNUMsT0EvQkssb0JBd0JMLEdBQUU7SUFLRSxhQUFBOzs7QUE3Qk4sT0FBTyxvQkFnQ0w7RUFDRSxrQkFBQTs7O0FBS0Ysd0JBSDRDO0VBRzVDLE9BdENLLG9CQWdDTDtJQUlJLGlCQUFBOzs7QUFwQ04sT0FBTyxvQkF1Q0w7RUFDRSxXQUFBO0VBQ0EsdUJBQUE7Ozs7Ozs7QUMzQ0osT0FBTyxtQkFDTDtFQUNFLG9CQUFBO0VBRUEsZ0JBQUE7RUFDQSxlQUFBOztBQUxKLE9BQU8sbUJBT0w7RUFDRSxjQUFBO0VBQ0EsZ0JBQUE7O0FBVEosT0FBTyxtQkFXTDtFQUNFLGdCQUFBOztBQVpKLE9BQU8sbUJBY0w7RUFDRSxjQUFBO0VBQ0EsV0FBQTtFQUNBLGVBQUE7RUFDQSxtQkFBQTs7QUFsQkosT0FBTyxtQkFvQkwsR0FBRztFQUNELGlCQUFBO0VBQ0EscUJBQUE7RUFDQSxhNUJxSG9CLDhDNEJySHBCOztBQXZCSixPQUFPLG1CQXlCTCxFQUFDO0VBQ0MsaUJBQUE7RUFDQSxZQUFBOztBQUNBLE9BNUJHLG1CQXlCTCxFQUFDLEtBR0U7RUFDQyxTQUFTLElBQVQ7Ozs7Ozs7QUM3Qk4sRUFBRTtFQUNBLFdBQUE7RUFDQSxXQUFBO0VBQ0EsZ0JBQUE7RUFDQSxxQkFBQTtFQUNBLFdBQUE7O0FBTEYsRUFBRSxhQU1BO0VBQ0UsY0FBQTtFQUNBLFdBQUE7RUFDQSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxXQUFBOztBQVhKLEVBQUUsYUFNQSxHQU1FO0VBQ0UsV0FBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EscUJBQUE7RUFDQSx5QkFBQTtFQUNBLGNBQUE7O0FBbEJOLEVBQUUsYUFxQkE7RUFDRSxhN0JzSG9CLDhDNkJ0SHBCO0VBQ0EsaUJBQUE7RUFDQSxxQkFBQTs7QUF4QkosRUFBRSxhQTBCQTtFQUNFLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsY0FBQTs7QUE5QkosRUFBRSxhQWdDQSxFQUFFO0VBQ0Esa0JBQUE7Ozs7Ozs7O0FDN0JKO0FBQ0E7RUFDRSxZQUFBO0VBQ0EsY0FBQTtFQUNBLG1CQUFBOztBQUpGLE9BTUU7QUFMRixLQUtFO0VBQ0UsZUFBQTtFQUNBLFNBQUE7RUFDQSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSx5QkFBQTtFQUNBLG1CQUFBOztBQVpKLE9BY0U7QUFiRixLQWFFO0VBQ0UsVUFBQTtFQUNBLGVBQUE7RUFDQSxTQUFBO0VBQ0EsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLG1CQUFBOztBQXBCSixPQWNFLEdBT0U7QUFwQkosS0FhRSxHQU9FO0VBQ0UsZUFBQTtFQUNBLHdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxtQkFBQTs7QUFDQSxPQVpKLEdBT0UsR0FLRztBQUFELEtBWkosR0FPRSxHQUtHO0VBQ0MsU0FBUyxPQUFUO0VBQ0EscUJBQUE7O0FBRUYsT0FoQkosR0FPRSxHQVNHLFdBQVc7QUFBWixLQWhCSixHQU9FLEdBU0csV0FBVztFQUNWLGFBQUE7O0FBL0JSLE9BY0UsR0FPRSxHQVlFO0FBaENOLEtBYUUsR0FPRSxHQVlFO0VBQ0UsbUJBQUE7O0FBbENSLE9BY0UsR0FPRSxHQWVFO0FBbkNOLEtBYUUsR0FPRSxHQWVFO0VBQ0UsY0FBQTtFQUNBLHlCQUFBOztBQUNBLE9BekJOLEdBT0UsR0FlRSxFQUdHO0FBQUQsS0F6Qk4sR0FPRSxHQWVFLEVBR0c7RUFDQyxjQUFBOztBQ2pEVixvQkFBcUI7RUFDbkIsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLGlCQUFBOztBQUVGLG9CQUFxQjtFQUNuQixTQUFBOztBQUVGLG9CQUFxQjtFQUNuQixnQkFBQTs7QUFFRixvQkFBcUI7RUFDbkIsb0JBQUE7RUFDQSxjQUFBOztBQUlGLE9BQVEscUJBQ04sZUFBZTtFQUNiLGFBQUE7RUFDQSxVQUFBOztBQUhKLE9BQVEscUJBS04sSUFBRztFQUVELFdBQUE7RUFDQSxTQUFBO0VBQ0EsV0FBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxXQUFBOztBQUtKLG9CQUFxQixHQUFFLGNBQWUsRUFBQyxVQUFVO0VBQy9DLGtCQUFBO0VBQ0EsY0FBQTs7QUFHRixPQUFRLHFCQUFxQixHQUFFLGNBQWUsRUFBQyxVQUFVO0VBQ3ZELFVBQUE7Ozs7Ozs7QUN2Q0Y7RUFDRSxpQkFBQTtFQUNBLGtCQUFBOzs7Ozs7Ozs7Ozs7QUNJRjtFQUNFLHlCQUFBOztBQUdGLGNBQ0UsUUFBTztFQUNMLGdCQUFBOztBQUlKO0VBQ0UseUJBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBOztBQUdGO0VBQ0UsbUJBQUE7O0FBQ0EsY0FBQyxNQUFPO0VBQ04sa0JBQUE7OztBQUtKLE1BQU8saUJBQWlCO0VBQ3RCLGVBQUE7RUFDQSxpQkFBQTs7Ozs7Ozs7O0FBaUJGO0VBQ0UseUJBQUE7RUFDQSw0QkFBQTtFQUNBLGdCQUFBOztBQUdGO0VBQ0UseUJBQUE7RUFDQSxlQUFBOztBQUdGO0VBQ0UsZ0JBQUE7O0FBREYsYUFFRTtFQUNFLGNBQUE7RUFDRCxXQUFBO0VBQ0Msb0JBQUE7O0FBTEosYUFFRSxFQUlFO0VBQ0QsY0FBQTtFQUNBLFdBQUE7RUFDQSxnQkFBQTtFQUNBLGNBQUE7O0FBVkgsYUFhRTtFQUNFLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxnQ0FBQTtFQUNBLGVBQUE7RUFDQSxjQUFBO0VBQ0EseUJBQUE7RUFDQSxtQkFBQTs7QUFwQkosYUFhRSxHQVFFO0VBQ0QsWUFBQTtFQUNBLGlCQUFBOztBQUtILEVBQUU7RUFDQSwwQkFBQTtFQUNBLDZCQUFBO0VBQ0EsY0FBQTtFQUNBLFdBQUE7O0FBSUEsUUFIMEI7RUFHMUIsRUFSQTtJQU1FLGdCQUFBOzs7QUFOSixFQUFFLGNBUUE7RUFDRSxxQkFBQTtFQUNBLG1CQUFBO0VBQ0Esc0JBQUE7RUFDQSxlQUFBOztBQUlBLFFBSDBCO0VBRzFCLEVBaEJGLGNBUUE7SUFNSSxhQUFBOzs7QUFkTixFQUFFLGNBUUEsR0FRRTtFQUNFLG1CQUFBO0VBQ0EsMEJBQUE7O0FBbEJOLEVBQUUsY0FRQSxHQVlFO0VBQ0Usa0JBQUE7RUFDQSxNQUFBO0VBRUEsWUFBQTtFQUNBLHVCQUFBO0VBSUEsZUFBQTtFbkNnakJKLGNBQUE7O0FtQ25qQkksRUExQkosY0FRQSxHQVlFLEVBTUc7RUFDQyxjQUFBOztBQTNCUixFQUFFLGNBaUNBLEdBQUUsV0FBWTtFQUNaLGdCQUFBOztBQUlKO0VBQ0UsV0FBQTtFQUNBLGFqQ2FzQiw4Q2lDYnRCOztBQUZGLFlBR0U7RUFDRSxnQkFBQTtFQUNBLGNBQUE7O0FBTEosWUFPRTtFQUNFLGVBQUE7RUFDQSxTQUFBO0VBQ0EsbUJBQUE7O0FBVkosWUFPRSxNQUlFO0VBQ0UsZUFBQTtFQUNBLG1CQUFBOztBQWJOLFlBZ0JFO0VBQ0UsV0FBQTs7QUFJSixNQUFPLGFBQ0w7RUFDRSxjQUFBOztBQUZKLE1BQU8sYUFJTDtFQUNFLGNBQUE7O0FBQ0EsTUFORyxhQUlMLEVBRUc7RUFDQyxjQUFBOztBQWFOLFFBUjBCO0VBQ3hCLFlBQWEsT0FBTTtJQUNqQixpQkFBQTtJQUNBLGFBQUE7SUFDQSxnQkFBQTs7O0FBV0osUUFQMEI7RUFFeEI7SUFDRSx5QkFBQTs7O0FBdUJKLFFBbkIwQjtFQUN4QixZQUFhLFdBQ1g7SUFDRSxXQUFBO0lBQ0EsV0FBQTtJQUNBLGNBQUE7SUFDQSxrQkFBQTs7RUFHSixFQUFFO0lBQ0EscUJBQUE7SUFDQSxXQUFBO0lBQ0EsY0FBQTs7RUFFRixjQUFlO0lBQ2IsY0FBQTs7O0FBSUo7QUFDQTtFbkM1S0UsU0FBQTtFQUNBLE1BQU0sYUFBTjtFQUNBLFdBQVcsVUFBWDtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxVQUFBO0VBQ0EsNkJBQUE7RUFDQSxVQUFBO0VBQ0EsNEJBQUE7O0FvQ3BDRjtFQUNDLGtCQUFBOztBQURELGVBRUM7RUFDQyxxQkFBQTtFQUNBLGtCQUFBOzs7QUFKRixlQUVDLDBCQUtDO0VBQ0MscUJBQUE7RUFDQSxnQkFBQTs7QUFJSDtBQUNBO0VBQ0UsV0FBQTs7QUFGRix5QkFHRSxJQUFJO0FBRk4sY0FFRSxJQUFJO0VBQ0YseUJBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBOztBQUdKLHlCQUNFO0VBQ0UsZ0JBQUE7O0FBRkoseUJBSUUsSUFBSTtFQUNGLG9CQUFBOztBQ3RCSjtBQUNBO0FBQ0E7RUFDRyxlQUFBOztBQUdIO0VBQ0csY0FBQTs7QUFHSDtBQUNBO0FBQ0E7RUFDRyxXQUFBO0VBQ0EsY0FBQTtFQUNBLGlCQUFBOztBQUdIO0FBQ0E7QUFDQTtFQUNHLFlBQUE7RUFDQSx1QkFBQTs7QUFHSDtBQUNBO0FBQ0E7RUFDRyxXQUFBO0VBQ0EsdUJBQUE7O0FBR0g7QUFDQSxHQUFHO0FBQ0gsR0FBRztFQUNBLGVBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTs7QUFHSDtBQUNBO0VBQ0UsZ0JBQUE7O0FBRkYsVUFHRTtBQUZGLFVBRUU7RUFDRSxXQUFBO0VBQ0EsY0FBQTs7QUFHSjtFQUVFLFlBQUE7RUFDQSxnQkFBQTtFQUNBLFdBQVcsZ0JBQVg7RUFDQSxlQUFBOztBQUVGO0VBRUUsZUFBQTtFQUNBLFdBQUE7RUFHQSxpREFBQTtFQUNBLGtEQUFBOztBQVVGO0VBUEU7SUFFRSxnREFBQTtJQUNBLGlEQUFBOzs7QUFzQkEsUUFMNkI7RUFLN0IsUUFoQkY7SUFZSSw4RUFBQTtJQUNBLDhDQUFBO0lBQ0EsZUFBQTs7O0FBT0YsUUFMNkI7RUFLN0IsUUFyQkY7SUFpQkkscURBQUE7SUFDQSxtQkFBQTtJQUNBLGVBQUE7OztBQU1KLFFBSjhCO0VBSTlCLFFBekJBO0lBc0JJLFlBQUE7OztBQVlGLFFBTDZCO0VBSzdCLFFBTkY7SUFFSSw4RUFBQTtJQUNBLDhDQUFBO0lBQ0EsZUFBQTs7O0FBT0YsUUFMNkI7RUFLN0IsUUFYRjtJQU9JLHFEQUFBO0lBQ0EsbUJBQUE7SUFDQSxlQUFBOzs7QUFPSixRQUw4QjtFQUs5QixRQWhCQTtJQVlJLFlBQUE7SUFDQSxtQkFBQTtJQUNBLG9CQUFBOzs7QUFjSixRQVArQjtFQU8vQix3QkFSQTtJQUlJLG9CQUFBO0lBQ0EscUJBQUE7SUFDQSxpQkFBQTs7O0FBVU47QUFDQTtFQUNJLGtCQUFBO0VBQ0Esc0JBQUE7O0VBQ0EsaUJBQUE7O0VBQ0EsU0FBQTtFQUNBLGdCQUFBO0VBQ0EsbUJBQUE7O0FBRUosZ0JBQWlCO0FBQ2pCLGdCQUFpQjtBQUNqQixnQkFBaUI7QUFDakIsV0FBWTtBQUNaLFdBQVk7QUFDWixXQUFZO0VBQ1Isa0JBQUE7RUFDQSxNQUFBO0VBQ0EsT0FBQTtFQUNBLFdBQUE7RUFDQSxZQUFBOztBQUVKLE1BQU87RUFDTCxlQUFBOztBQ2hLRjtFQUNFLGFBQUE7RUFDQSxrQkFBQTs7QUFNRjtFQUFxQix3QkFBQTs7QUFDckI7RUFBcUIsd0JBQUE7O0FBSXJCO0VBQXFCLHdCQUFBOztBQWFyQixRQVYwQjtFQUV4QjtJQUFxQiwyQkFBQTs7RUFFckI7SUFBcUIsd0JBQUE7O0VBRXJCO0lBQXFCLDJCQUFBOztFQUNyQjtJQUFxQix3QkFBQTs7O0FBYXZCLFFBVDBCLHVCQUF1QjtFQUUvQztJQUFxQiwyQkFBQTs7RUFFckI7SUFBcUIsd0JBQUE7O0VBRXJCO0lBQXFCLHdCQUFBOztFQUNyQjtJQUFxQix5QkFBQTs7O0FDMUJ2QixRQVYyQjtFQUN6QjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0lBQ0UsY0FBQTs7O0FBZUosbUJBWHNDO0VBQ3BDO0VBQ0E7RUFDQTtJQUNFLFVBQUE7O0VBRUY7SUFDRSxlQUFBOzs7QUNpQ0osUUFsRDBCLHVCQUFzQjtFQUM5QztFQUNBO0VBQ0E7RUFDQTtJQUNFLGVBQUE7O0VBRUY7SUFDRSxnQkFBQTs7RUFFRixFQUFFO0VBQ0YsRUFBRTtJQUNBLGVBQUE7O0VBRkYsRUFBRSxTQUdBO0VBRkYsRUFBRSxTQUVBO0lBQ0UsbUJBQUE7O0VBR0o7RUFDQSxhQUFjO0lBQ1osV0FBQTs7RUFFRixhQUFjO0lBQ1oscUJBQUE7O0VBRUYsZ0JBQWlCLFFBQU87RUFDeEIsZ0JBQWlCLFFBQU87SUFDdEIsV0FBQTtJQUNBLFdBQUE7SUFDQSxVQUFBO0lBQ0EsZ0JBQUE7SUFDQSxrQkFBQTtJQUNBLG1CQUFBOztFQUVGLFlBQWE7SUFDWCxhQUFBOztFQUVGLFlBQWEsU0FBUTtJQUNuQixVQUFBO0lBQ0EsV0FBQTs7RUFFRixZQUFhO0lBQ1gsWUFBQTs7RUFFRjtFQUNBO0lBQ0UsV0FBQTtJQUNBLHNCQUFBO0lBQ0Esb0JBQUE7OztBQ3lGSixRQXhJMEI7RUFDeEI7RUFDQSxZQUFhLElBQUc7RUFDaEI7RUFDQTtFQUNBO0VBQ0E7SUFDRSxXQUFBO0lBQ0EsV0FBQTtJQUNBLFdBQUE7SUFDQSxnQkFBQTs7RUFFRixnQkFBaUIsUUFBTztFQUN4QixnQkFBaUIsUUFBTztJQUN0QixVQUFBO0lBQ0EsV0FBQTtJQUNBLFdBQUE7SUFDQSxrQkFBQTtJQUNBLG1CQUFBOztFQUVGO0VBQ0E7RUFDQTtJQUNFLFNBQUE7O0VBRUY7SUFDRSxvQkFBQTs7RUFFRjtJQUNFLGVBQUE7O0VBRUY7SUFDRSxXQUFBOztFQUVGLFdBQVk7SUFDVixhQUFBOztFQUVGLFdBQVk7SUFDVixXQUFBOztFQUVGLFdBQVksV0FBVztJQUNyQixXQUFBO0lBQ0EsY0FBQTs7RUFFRixFQUFFO0VBQ0YsRUFBRTtJQUNBLGVBQUE7SUFDQSxnQkFBQTs7RUFFRixvQkFBcUIsZ0JBQWdCO0lBQ25DLGdCQUFBOztFQUVGLFFBQVMsR0FBRTtFQUNYLG9CQUFxQjtFQUNyQixpQkFBa0I7SUFDaEIsZUFBQTs7RUFFRjtFQUNBO0lBQ0UsV0FBQTtJQUNBLHNCQUFBO0lBQ0Esb0JBQUE7O0VBRUYsWUFBYSxpQkFBaUIsR0FBRztJQUMvQixlQUFBO0lBQ0EsZUFBQTs7RUFFRixhQUFjO0lBQ1osV0FBQTs7RUFFRixhQUFjO0lBQ1oscUJBQUE7O0VBRUYsYUFBYyxHQUFHO0lBQ2hCLGVBQUE7SUFDQSxXQUFBO0lBQ0EsV0FBQTtJQUNBLGdCQUFBOztFQUVEO0lBQ0UsV0FBQTs7RUFERixVQUVFO0lBQ0Usa0JBQUE7SUFDQSxpQkFBQTs7RUFKSixVQUVFLEdBR0U7SUFDRSxlQUFBOztFQUlOLFlBQWE7SUFDWCxtQkFBQTs7RUFFRixZQUFhLE1BQUs7SUFDaEIsWUFBQTtJQUNBLFVBQUE7SUFDQSxXQUFBOztFQUVGLFlBQWEsTUFBSztJQUNoQixlQUFBO0lBQ0EsVUFBQTtJQUNBLFlBQUE7O0VBRUYsWUFBYSxFQUFDO0lBQ1osaUJBQUE7O0VBRUYsWUFBYTtJQUNYLGFBQUE7O0VBRUYsWUFBYTtJQUNYLGNBQUE7O0VBRUY7SUFDRSxhQUFBOztFQUVGLE9BQVE7SUFDTixjQUFBOztFQUVGLFNBQ0UsV0FBVztJQUNULFdBQUE7SUFDQSxjQUFBOztFQUhKLFNBS0UsT0FBTztJQUNMLGNBQUE7SUFDQSxrQkFBQTs7RUFQSixTQVNFLHlCQUF5QjtJQUN2QixXQUFBO0lBQ0EsY0FBQTtJQUNBLGdCQUFBO0lBQ0EsZUFBQTtJQUNBLG9CQUFBOzs7QUFnQk4sUUFUMEI7RUFDeEIsYUFBYyxHQUFHO0lBQ2hCLGVBQUE7SUFDQSxXQUFBO0lBQ0EsV0FBQTtJQUNBLGdCQUFBOzs7QUNnQkg7RUEvSkM7SUFDQyxrQ0FBQTtJQUNBLHNCQUFBO0lBQ0EsMkJBQUE7SUFDQSw0QkFBQTtJQUNBLHVCQUFBO0lBQ0EsZ0JBQUE7O0VBR0Q7RUFBRSxDQUFDO0lBQ0YsY0FBQTtJQUNBLDBCQUFBOztFQUdEO0lBQ0MsWUFBQTs7RUFHRDtJQUNDLGNBQUE7O0VBR0Q7RUFBSTtJQUNILHNCQUFBO0lBQ0Esd0JBQUE7OztFQUtELElBQUksT0FBTyxZQUFhO0VBQU8sSUFBSSxPQUFPLEtBQU07SUFDL0MsVUFBQTs7SUFDQSxjQUFBO0lBQ0EsZ0JBQUE7SUFDQSxXQUFBOztFQUdELFFBQVMsTUFBSztFQUFhLFFBQVMsWUFBWSxJQUFHO0lBQ2xELHlCQUFBO0lBQ0EsWUFBQTs7RUFHRCxLQUFLO0lBQ0osbUJBQUE7O0VBR0QsUUFBUSxNQUFNO0lBQ2IseUJBQUE7O0VBR0Q7SUFDQywyQkFBQTs7RUFHRDtFQUFHO0lBQ0Ysd0JBQUE7O0VBR0Q7Ozs7O0VBSUE7SUFDQyx1QkFBQTs7RUFHRDtFQUFFO0VBQUc7SUFDSixVQUFBO0lBQ0EsU0FBQTs7RUFHRDtFQUFHO0lBQ0YsdUJBQUE7O0VBR0QsT0FBUTtJQUNQLHFCQUFBOztFQUdEO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsZUFBZ0IsUUFBTyxJQUFJO0lBQzFCLGFBQUE7O0VBR0Q7SUFDQywwQkFBQTtJQUNBLDZCQUFBOztFQUdEO0VBQ0EsT0FBTztFQUNQO0VBQ0E7RUFDQSxDQUFDO0VBQ0Q7RUFDQTtJQUVDLDBCQUFBO0lBQ0Esa0JBQUE7O0VBR0QsS0FBTSxFQUFDO0VBQ1AsS0FBTSxFQUFDO0VBQ1AsS0FBTSxFQUFDO0lBQ04sc0JBQUE7SUFDQSxvQkFBQTs7RUFHRDtJQUNDLGFBQUE7O0VBR0Q7SUFDQyxjQUFBO0lBQ0EsNkJBQUE7SUFDQSxnQkFBQTs7RUFIRCxhQUlDO0lBQ0MscUJBQUE7SUFDQSw0QkFBQTtJQUNBLG1CQUFBO0lBQ0Esa0JBQUE7O0VBSUY7RUFBRTtFQUFHO0VBQUc7SUFDUCwwQkFBQTtJQUNBLG1CQUFBOztFQUdEO0VBQUc7RUFBRztFQUFHO0VBQUc7RUFBRztFQUFHLGNBQWU7SUFDaEMsZUFBQTs7RUFHRCxFQUFFO0lBQ0QsZUFBQTs7RUFHRCxjQUFlLEVBQUMsS0FBSztFQUNyQixjQUFlLEVBQUMsUUFBUTtJQUN2QixTQUFRLEtBQUssV0FBVyxJQUF4QjtJQUNBLGNBQUE7O0VBR0E7SUFBZ0IsYUFBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIFJlc2V0Lmxlc3Ncbi8vIEFkYXB0ZWQgZnJvbSBOb3JtYWxpemUuY3NzIGh0dHBzOi8vZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3Ncbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBEaXNwbGF5IGluIElFNi05IGFuZCBGRjNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscyxcbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5mb290ZXIsXG5oZWFkZXIsXG5oZ3JvdXAsXG5uYXYsXG5zZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8vIERpc3BsYXkgYmxvY2sgaW4gSUU2LTkgYW5kIEZGM1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5hdWRpbyxcbmNhbnZhcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAqZGlzcGxheTogaW5saW5lO1xuICAqem9vbTogMTtcbn1cblxuLy8gUHJldmVudHMgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyAnYXVkaW8nIHdpdGhvdXQgY29udHJvbHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4vLyBCYXNlIHNldHRpbmdzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmh0bWwge1xuICBmb250LXNpemU6IDEwMCU7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgICAgIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xufVxuLy8gRm9jdXMgc3RhdGVzXG5hOmZvY3VzIHtcbiAgLnRhYi1mb2N1cygpO1xufVxuLy8gSG92ZXIgJiBBY3RpdmVcbmE6aG92ZXIsXG5hOmFjdGl2ZSB7XG4gIG91dGxpbmU6IDA7XG59XG5cbi8vIFByZXZlbnRzIHN1YiBhbmQgc3VwIGFmZmVjdGluZyBsaW5lLWhlaWdodCBpbiBhbGwgYnJvd3NlcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuc3ViLFxuc3VwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG4vLyBJbWcgYm9yZGVyIGluIGEgYW5kIGltYWdlIHF1YWxpdHlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlOyAvLyBNYWtlIGltYWdlcyBpbmhlcmVudGx5IHJlc3BvbnNpdmVcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYm9yZGVyOiAwO1xuICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljO1xufVxuXG4vLyBQcmV2ZW50IG1heC13aWR0aCBmcm9tIGFmZmVjdGluZyBHb29nbGUgTWFwc1xuI21hcF9jYW52YXMgaW1nIHtcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuXG4vLyBGb3Jtc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBGb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLCBtYXJnaW4gY2hhbmdlcywgbWlzYyBjb25zaXN0ZW5jeVxuYnV0dG9uLFxuaW5wdXQsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuYnV0dG9uLFxuaW5wdXQge1xuICAqb3ZlcmZsb3c6IHZpc2libGU7IC8vIElubmVyIHNwYWNpbmcgaWUgSUU2LzdcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgLy8gRkYzLzQgaGF2ZSAhaW1wb3J0YW50IG9uIGxpbmUtaGVpZ2h0IGluIFVBIHN0eWxlc2hlZXRcbn1cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHsgLy8gSW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIG9kZGl0aWVzIGluIEZGMy80XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbn1cbmJ1dHRvbixcbmlucHV0W3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgY3Vyc29yOiBwb2ludGVyOyAvLyBDdXJzb3JzIG9uIGFsbCBidXR0b25zIGFwcGxpZWQgY29uc2lzdGVudGx5XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvLyBTdHlsZSBjbGlja2FibGUgaW5wdXRzIGluIGlPU1xufVxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7IC8vIEFwcGVhcmFuY2UgaW4gU2FmYXJpL0Nocm9tZVxuICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbn1cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyAvLyBJbm5lci1wYWRkaW5nIGlzc3VlcyBpbiBDaHJvbWUgT1NYLCBTYWZhcmkgNVxufVxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bzsgLy8gUmVtb3ZlIHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRTYtOVxuICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyAvLyBSZWFkYWJpbGl0eSBhbmQgYWxpZ25tZW50IGNyb3NzLWJyb3dzZXJcbn1cbiIsIi8vIE1peGlucy5sZXNzXG4vLyBTbmlwcGV0cyBvZiByZXVzYWJsZSBDU1MgdG8gZGV2ZWxvcCBmYXN0ZXIgYW5kIGtlZXAgY29kZSByZWFkYWJsZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gVVRJTElUWSBNSVhJTlNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIENsZWFyZml4XG4vLyAtLS0tLS0tLVxuLy8gRm9yIGNsZWFyaW5nIGZsb2F0cyBsaWtlIGEgYm9zcyBoNWJwLmNvbS9xXG4uY2xlYXJmaXgge1xuICAqem9vbTogMTtcbiAgJjpiZWZvcmUsXG4gICY6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gIH1cbiAgJjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cblxuLy8gQ1NTIGltYWdlIHJlcGxhY2VtZW50XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBIaWRlIGFuIGl0ZW0gdmlzdWFsbHkgb25seVxuLy8gaHR0cHM6Ly9tYWtlLndvcmRwcmVzcy5vcmcvYWNjZXNzaWJpbGl0eS8yMDE1LzAyLzA5L2hpZGluZy10ZXh0LWZvci1zY3JlZW4tcmVhZGVycy13aXRoLXdvcmRwcmVzcy1jb3JlL1xuLnZpc3VhbGx5aGlkZGVuIHtcbiAgYm9yZGVyOiAwO1xuICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4O1xuICB3b3JkLXdyYXA6IG5vcm1hbCAhaW1wb3J0YW50O1xufVxuXG4vLyBDU1MgaW1hZ2UgcmVwbGFjZW1lbnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNvdXJjZTogaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvY29tbWl0L2FhMDM5NmVhZTc1N1xuLmhpZGUtdGV4dCB7XG4gIGZvbnQ6IDAvMCBhO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xufVxuXG4vLyBCbG9jayBsZXZlbCBmb3JtIGlucHV0c1xuLmlucHV0LWJsb2NrLWxldmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAyOHB4OyAgICAgICAgLy8gTWFrZSBpbnB1dHMgYXQgbGVhc3QgdGhlIGhlaWdodCBvZiB0aGVpciBidXR0b24gY291bnRlcnBhcnRcbiAgLmJveC1zaXppbmcoYm9yZGVyLWJveCk7IC8vIE1ha2VzIGlucHV0cyBiZWhhdmUgbGlrZSB0cnVlIGJsb2NrLWxldmVsIGVsZW1lbnRzXG59XG5cbi8vIFdlYmtpdC1zdHlsZSBmb2N1c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG4udGFiLWZvY3VzKCkge1xuICAvLyBEZWZhdWx0XG4gIG91dGxpbmU6IHRoaW4gZG90dGVkICMzMzM7XG4gIC8vIFdlYmtpdFxuICBvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xufVxuXG4vLyBDZW50ZXItYWxpZ24gYSBibG9jayBsZXZlbCBlbGVtZW50XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uY2VudGVyLWJsb2NrKCkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLy8gSUU3IGlubGluZS1ibG9ja1xuLy8gLS0tLS0tLS0tLS0tLS0tLVxuLmllNy1pbmxpbmUtYmxvY2soKSB7XG4gICpkaXNwbGF5OiBpbmxpbmU7IC8qIElFNyBpbmxpbmUtYmxvY2sgaGFjayAqL1xuICAqem9vbTogMTtcbn1cblxuLy8gSUU3IGxpa2VzIHRvIGNvbGxhcHNlIHdoaXRlc3BhY2Ugb24gZWl0aGVyIHNpZGUgb2YgdGhlIGlubGluZS1ibG9jayBlbGVtZW50cy5cbi8vIGVtcyBiZWNhdXNlIHdlIGFyZSBhdHRlbXB0aW5nIHRvIG1hdGNoIHRoZSB3aWR0aCBvZiBhIHNwYWNlIGNoYXJhY3Rlci4gTGVmdFxuLy8gdmVyc2lvbiBpcyBmb3IgZm9ybSBidXR0b25zLCB3aGljaCB0eXBpY2FsbHkgY29tZSBhZnRlciBvdGhlciBlbGVtZW50cywgYW5kXG4vLyByaWdodCB2ZXJzaW9uIGlzIGZvciBpY29ucywgd2hpY2ggY29tZSBiZWZvcmUuIEFwcGx5aW5nIGJvdGggaXMgb2ssIGJ1dCBpdCB3aWxsXG4vLyBtZWFuIHRoYXQgc3BhY2UgYmV0d2VlbiB0aG9zZSBlbGVtZW50cyB3aWxsIGJlIC42ZW0gKH4yIHNwYWNlIGNoYXJhY3RlcnMpIGluIElFNyxcbi8vIGluc3RlYWQgb2YgdGhlIDEgc3BhY2UgaW4gb3RoZXIgYnJvd3NlcnMuXG4uaWU3LXJlc3RvcmUtbGVmdC13aGl0ZXNwYWNlKCkge1xuICAqbWFyZ2luLWxlZnQ6IC4zZW07XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgKm1hcmdpbi1sZWZ0OiAwO1xuICB9XG59XG5cbi5pZTctcmVzdG9yZS1yaWdodC13aGl0ZXNwYWNlKCkge1xuICAqbWFyZ2luLXJpZ2h0OiAuM2VtO1xuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgKm1hcmdpbi1sZWZ0OiAwO1xuICB9XG59XG5cbi8vIFNpemluZyBzaG9ydGN1dHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5zaXplKEBoZWlnaHQsIEB3aWR0aCkge1xuICB3aWR0aDogQHdpZHRoO1xuICBoZWlnaHQ6IEBoZWlnaHQ7XG59XG4uc3F1YXJlKEBzaXplKSB7XG4gIC5zaXplKEBzaXplLCBAc2l6ZSk7XG59XG5cbi8vIFBsYWNlaG9sZGVyIHRleHRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5wbGFjZWhvbGRlcihAY29sb3I6IEBwbGFjZWhvbGRlclRleHQpIHtcbiAgJjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogQGNvbG9yO1xuICB9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogQGNvbG9yO1xuICB9XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiBAY29sb3I7XG4gIH1cbn1cblxuLy8gVGV4dCBvdmVyZmxvd1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUmVxdWlyZXMgaW5saW5lLWJsb2NrIG9yIGJsb2NrIGZvciBwcm9wZXIgc3R5bGluZ1xuLnRleHQtb3ZlcmZsb3coKSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG5cbi8vIEZPTlRTXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4jZm9udCB7XG4gICNmYW1pbHkge1xuICAgIC5zZXJpZigpIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBAc2VyaWZGb250RmFtaWx5O1xuICAgIH1cbiAgICAuc2Fucy1zZXJpZigpIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBAc2Fuc0ZvbnRGYW1pbHk7XG4gICAgfVxuICAgIC5tb25vc3BhY2UoKSB7XG4gICAgICBmb250LWZhbWlseTogQG1vbm9Gb250RmFtaWx5O1xuICAgIH1cbiAgfVxuICAuc2hvcnRoYW5kKEBzaXplOiBAYmFzZUZvbnRTaXplLCBAd2VpZ2h0OiBub3JtYWwsIEBsaW5lSGVpZ2h0OiBAYmFzZUxpbmVIZWlnaHQpIHtcbiAgICBmb250LXNpemU6IEBzaXplO1xuICAgIGZvbnQtd2VpZ2h0OiBAd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiBAbGluZUhlaWdodDtcbiAgfVxuICAuc2VyaWYoQHNpemU6IEBiYXNlRm9udFNpemUsIEB3ZWlnaHQ6IG5vcm1hbCwgQGxpbmVIZWlnaHQ6IEBiYXNlTGluZUhlaWdodCkge1xuICAgICNmb250ID4gI2ZhbWlseSA+IC5zZXJpZjtcbiAgICAjZm9udCA+IC5zaG9ydGhhbmQoQHNpemUsIEB3ZWlnaHQsIEBsaW5lSGVpZ2h0KTtcbiAgfVxuICAuc2Fucy1zZXJpZihAc2l6ZTogQGJhc2VGb250U2l6ZSwgQHdlaWdodDogbm9ybWFsLCBAbGluZUhlaWdodDogQGJhc2VMaW5lSGVpZ2h0KSB7XG4gICAgI2ZvbnQgPiAjZmFtaWx5ID4gLnNhbnMtc2VyaWY7XG4gICAgI2ZvbnQgPiAuc2hvcnRoYW5kKEBzaXplLCBAd2VpZ2h0LCBAbGluZUhlaWdodCk7XG4gIH1cbiAgLm1vbm9zcGFjZShAc2l6ZTogQGJhc2VGb250U2l6ZSwgQHdlaWdodDogbm9ybWFsLCBAbGluZUhlaWdodDogQGJhc2VMaW5lSGVpZ2h0KSB7XG4gICAgI2ZvbnQgPiAjZmFtaWx5ID4gLm1vbm9zcGFjZTtcbiAgICAjZm9udCA+IC5zaG9ydGhhbmQoQHNpemUsIEB3ZWlnaHQsIEBsaW5lSGVpZ2h0KTtcbiAgfVxufVxuXG5cbi8vIEZPUk1TXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBNaXhpbiBmb3IgZm9ybSBmaWVsZCBzdGF0ZXNcbi5mb3JtRmllbGRTdGF0ZShAdGV4dENvbG9yOiAjNTU1LCBAYm9yZGVyQ29sb3I6ICNjY2MsIEBiYWNrZ3JvdW5kQ29sb3I6ICNmNWY1ZjUpIHtcbiAgLy8gU2V0IHRoZSB0ZXh0IGNvbG9yXG4gID4gbGFiZWwsXG4gIC5oZWxwLWJsb2NrLFxuICAuaGVscC1pbmxpbmUge1xuICAgIGNvbG9yOiBAdGV4dENvbG9yO1xuICB9XG4gIC8vIFN0eWxlIGlucHV0cyBhY2NvcmRpbmdseVxuICAuY2hlY2tib3gsXG4gIC5yYWRpbyxcbiAgaW5wdXQsXG4gIHNlbGVjdCxcbiAgdGV4dGFyZWEge1xuICAgIGNvbG9yOiBAdGV4dENvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogQGJvcmRlckNvbG9yO1xuICAgICY6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oQGJvcmRlckNvbG9yLCAxMCUpO1xuICAgICAgLmJveC1zaGFkb3coMCAwIDZweCBsaWdodGVuKEBib3JkZXJDb2xvciwgMjAlKSk7XG4gICAgfVxuICB9XG4gIC8vIEdpdmUgYSBzbWFsbCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBpbnB1dC1wcmVwZW5kLy1hcHBlbmRcbiAgLmlucHV0LXByZXBlbmQgLmFkZC1vbixcbiAgLmlucHV0LWFwcGVuZCAuYWRkLW9uIHtcbiAgICBjb2xvcjogQHRleHRDb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmFja2dyb3VuZENvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogQHRleHRDb2xvcjtcbiAgfVxufVxuXG5cblxuLy8gQ1NTMyBQUk9QRVJUSUVTXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBCb3JkZXIgUmFkaXVzXG4uYm9yZGVyLXJhZGl1cyhAcmFkaXVzKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogQHJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiBAcmFkaXVzO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IEByYWRpdXM7XG59XG5cbi8vIERyb3Agc2hhZG93c1xuLmJveC1zaGFkb3coQHNoYWRvdykge1xuICAtd2Via2l0LWJveC1zaGFkb3c6IEBzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogQHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiBAc2hhZG93O1xufVxuXG4vLyBUcmFuc2l0aW9uc1xuLnRyYW5zaXRpb24oQHRyYW5zaXRpb24pIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBAdHJhbnNpdGlvbjtcbiAgICAgLW1vei10cmFuc2l0aW9uOiBAdHJhbnNpdGlvbjtcbiAgICAgIC1tcy10cmFuc2l0aW9uOiBAdHJhbnNpdGlvbjtcbiAgICAgICAtby10cmFuc2l0aW9uOiBAdHJhbnNpdGlvbjtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBAdHJhbnNpdGlvbjtcbn1cblxuLy8gVHJhbnNmb3JtYXRpb25zXG4ucm90YXRlKEBkZWdyZWVzKSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoQGRlZ3JlZXMpO1xuICAgICAtbW96LXRyYW5zZm9ybTogcm90YXRlKEBkZWdyZWVzKTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZShAZGVncmVlcyk7XG4gICAgICAgLW8tdHJhbnNmb3JtOiByb3RhdGUoQGRlZ3JlZXMpO1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKEBkZWdyZWVzKTtcbn1cbi5zY2FsZShAcmF0aW8pIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKEByYXRpbyk7XG4gICAgIC1tb3otdHJhbnNmb3JtOiBzY2FsZShAcmF0aW8pO1xuICAgICAgLW1zLXRyYW5zZm9ybTogc2NhbGUoQHJhdGlvKTtcbiAgICAgICAtby10cmFuc2Zvcm06IHNjYWxlKEByYXRpbyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZShAcmF0aW8pO1xufVxuLnRyYW5zbGF0ZShAeCwgQHkpIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZShAeCwgQHkpO1xuICAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlKEB4LCBAeSk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHgsIEB5KTtcbiAgICAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZShAeCwgQHkpO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKEB4LCBAeSk7XG59XG4uc2tldyhAeCwgQHkpIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXcoQHgsIEB5KTtcbiAgICAgLW1vei10cmFuc2Zvcm06IHNrZXcoQHgsIEB5KTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHNrZXcoQHgsIEB5KTtcbiAgICAgICAtby10cmFuc2Zvcm06IHNrZXcoQHgsIEB5KTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNrZXcoQHgsIEB5KTtcbn1cbi50cmFuc2xhdGUzZChAeCwgQHksIEB6KSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHgsIEB5LCBAeik7XG4gICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHgsIEB5LCBAeik7XG4gICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHgsIEB5LCBAeik7XG4gICAgICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHgsIEB5LCBAeik7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHgsIEB5LCBAeik7XG59XG5cbi8vIEJhY2tmYWNlIHZpc2liaWxpdHlcbi8vIFByZXZlbnQgYnJvd3NlcnMgZnJvbSBmbGlja2VyaW5nIHdoZW4gdXNpbmcgQ1NTIDNEIHRyYW5zZm9ybXMuXG4vLyBEZWZhdWx0IHZhbHVlIGlzIGB2aXNpYmxlYCwgYnV0IGNhbiBiZSBjaGFuZ2VkIHRvIGBoaWRkZW5cbi8vIFNlZSBnaXQgcHVsbCBodHRwczovL2dpdGh1Yi5jb20vZGFubnlrZWFuZS9ib290c3RyYXAuZ2l0IGJhY2tmYWNlLXZpc2liaWxpdHkgZm9yIGV4YW1wbGVzXG4uYmFja2ZhY2UtdmlzaWJpbGl0eShAdmlzaWJpbGl0eSl7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogQHZpc2liaWxpdHk7XG4gICAgIC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTogQHZpc2liaWxpdHk7XG4gICAgICAtbXMtYmFja2ZhY2UtdmlzaWJpbGl0eTogQHZpc2liaWxpdHk7XG4gICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogQHZpc2liaWxpdHk7XG59XG5cbi8vIEJhY2tncm91bmQgY2xpcHBpbmdcbi8vIEhlYWRzIHVwOiBGRiAzLjYgYW5kIHVuZGVyIG5lZWQgXCJwYWRkaW5nXCIgaW5zdGVhZCBvZiBcInBhZGRpbmctYm94XCJcbi5iYWNrZ3JvdW5kLWNsaXAoQGNsaXApIHtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IEBjbGlwO1xuICAgICAtbW96LWJhY2tncm91bmQtY2xpcDogQGNsaXA7XG4gICAgICAgICAgYmFja2dyb3VuZC1jbGlwOiBAY2xpcDtcbn1cblxuLy8gQmFja2dyb3VuZCBzaXppbmdcbi5iYWNrZ3JvdW5kLXNpemUoQHNpemUpe1xuICAtd2Via2l0LWJhY2tncm91bmQtc2l6ZTogQHNpemU7XG4gICAgIC1tb3otYmFja2dyb3VuZC1zaXplOiBAc2l6ZTtcbiAgICAgICAtby1iYWNrZ3JvdW5kLXNpemU6IEBzaXplO1xuICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogQHNpemU7XG59XG5cblxuLy8gQm94IHNpemluZ1xuLmJveC1zaXppbmcoQGJveG1vZGVsKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogQGJveG1vZGVsO1xuICAgICAtbW96LWJveC1zaXppbmc6IEBib3htb2RlbDtcbiAgICAgIC1tcy1ib3gtc2l6aW5nOiBAYm94bW9kZWw7XG4gICAgICAgICAgYm94LXNpemluZzogQGJveG1vZGVsO1xufVxuXG4vLyBVc2VyIHNlbGVjdFxuLy8gRm9yIHNlbGVjdGluZyB0ZXh0IG9uIHRoZSBwYWdlXG4udXNlci1zZWxlY3QoQHNlbGVjdCkge1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBAc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiBAc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiBAc2VsZWN0O1xuICAgICAgIC1vLXVzZXItc2VsZWN0OiBAc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiBAc2VsZWN0O1xufVxuXG4vLyBSZXNpemUgYW55dGhpbmdcbi5yZXNpemFibGUoQGRpcmVjdGlvbikge1xuICByZXNpemU6IEBkaXJlY3Rpb247IC8vIE9wdGlvbnM6IGhvcml6b250YWwsIHZlcnRpY2FsLCBib3RoXG4gIG92ZXJmbG93OiBhdXRvOyAvLyBTYWZhcmkgZml4XG59XG5cbi8vIENTUzMgQ29udGVudCBDb2x1bW5zXG4uY29udGVudC1jb2x1bW5zKEBjb2x1bW5Db3VudCwgQGNvbHVtbkdhcDogQGdyaWRHdXR0ZXJXaWR0aCkge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogQGNvbHVtbkNvdW50O1xuICAgICAtbW96LWNvbHVtbi1jb3VudDogQGNvbHVtbkNvdW50O1xuICAgICAgICAgIGNvbHVtbi1jb3VudDogQGNvbHVtbkNvdW50O1xuICAtd2Via2l0LWNvbHVtbi1nYXA6IEBjb2x1bW5HYXA7XG4gICAgIC1tb3otY29sdW1uLWdhcDogQGNvbHVtbkdhcDtcbiAgICAgICAgICBjb2x1bW4tZ2FwOiBAY29sdW1uR2FwO1xufVxuXG4vLyBPcHRpb25hbCBoeXBoZW5hdGlvblxuLmh5cGhlbnMoQG1vZGU6IGF1dG8pIHtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAtd2Via2l0LWh5cGhlbnM6IEBtb2RlO1xuICAgICAtbW96LWh5cGhlbnM6IEBtb2RlO1xuICAgICAgLW1zLWh5cGhlbnM6IEBtb2RlO1xuICAgICAgIC1vLWh5cGhlbnM6IEBtb2RlO1xuICAgICAgICAgIGh5cGhlbnM6IEBtb2RlO1xufVxuXG4vLyBPcGFjaXR5XG4ub3BhY2l0eShAb3BhY2l0eSkge1xuICBvcGFjaXR5OiBAb3BhY2l0eSAvIDEwMDtcbiAgZmlsdGVyOiB+XCJhbHBoYShvcGFjaXR5PUB7b3BhY2l0eX0pXCI7XG59XG5cblxuXG4vLyBCQUNLR1JPVU5EU1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gQWRkIGFuIGFscGhhdHJhbnNwYXJlbmN5IHZhbHVlIHRvIGFueSBiYWNrZ3JvdW5kIG9yIGJvcmRlciBjb2xvciAodmlhIEVseXNlIEhvbGxhZGF5KVxuI3RyYW5zbHVjZW50IHtcbiAgLmJhY2tncm91bmQoQGNvbG9yOiBAd2hpdGUsIEBhbHBoYTogMSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGhzbGEoaHVlKEBjb2xvciksIHNhdHVyYXRpb24oQGNvbG9yKSwgbGlnaHRuZXNzKEBjb2xvciksIEBhbHBoYSk7XG4gIH1cbiAgLmJvcmRlcihAY29sb3I6IEB3aGl0ZSwgQGFscGhhOiAxKSB7XG4gICAgYm9yZGVyLWNvbG9yOiBoc2xhKGh1ZShAY29sb3IpLCBzYXR1cmF0aW9uKEBjb2xvciksIGxpZ2h0bmVzcyhAY29sb3IpLCBAYWxwaGEpO1xuICAgIC5iYWNrZ3JvdW5kLWNsaXAocGFkZGluZy1ib3gpO1xuICB9XG59XG5cbi8vIEdyYWRpZW50IEJhciBDb2xvcnMgZm9yIGJ1dHRvbnMgYW5kIGFsZXJ0c1xuLmdyYWRpZW50QmFyKEBwcmltYXJ5Q29sb3IsIEBzZWNvbmRhcnlDb2xvcikge1xuICAjZ3JhZGllbnQgPiAudmVydGljYWwoQHByaW1hcnlDb2xvciwgQHNlY29uZGFyeUNvbG9yKTtcbiAgYm9yZGVyLWNvbG9yOiBAc2Vjb25kYXJ5Q29sb3IgQHNlY29uZGFyeUNvbG9yIGRhcmtlbihAc2Vjb25kYXJ5Q29sb3IsIDE1JSk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLDAsMCwuMSkgcmdiYSgwLDAsMCwuMSkgZmFkZWluKHJnYmEoMCwwLDAsLjEpLCAxNSUpO1xufVxuXG4vLyBHcmFkaWVudHNcbiNncmFkaWVudCB7XG4gIC5ob3Jpem9udGFsKEBzdGFydENvbG9yOiAjNTU1LCBAZW5kQ29sb3I6ICMzMzMpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAZW5kQ29sb3I7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgQHN0YXJ0Q29sb3IsIEBlbmRDb2xvcik7IC8vIEZGIDMuNitcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtbXMtbGluZWFyLWdyYWRpZW50KGxlZnQsIEBzdGFydENvbG9yLCBAZW5kQ29sb3IpOyAvLyBJRTEwXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAgMCwgMTAwJSAwLCBmcm9tKEBzdGFydENvbG9yKSwgdG8oQGVuZENvbG9yKSk7IC8vIFNhZmFyaSA0KywgQ2hyb21lIDIrXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgQHN0YXJ0Q29sb3IsIEBlbmRDb2xvcik7IC8vIFNhZmFyaSA1LjErLCBDaHJvbWUgMTArXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsIEBzdGFydENvbG9yLCBAZW5kQ29sb3IpOyAvLyBPcGVyYSAxMS4xMFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChsZWZ0LCBAc3RhcnRDb2xvciwgQGVuZENvbG9yKTsgLy8gTGUgc3RhbmRhcmRcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gICAgZmlsdGVyOiBlKCUoXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nJWQnLCBlbmRDb2xvcnN0cj0nJWQnLCBHcmFkaWVudFR5cGU9MSlcIixAc3RhcnRDb2xvcixAZW5kQ29sb3IpKTsgLy8gSUU5IGFuZCBkb3duXG4gIH1cbiAgLnZlcnRpY2FsKEBzdGFydENvbG9yOiAjNTU1LCBAZW5kQ29sb3I6ICMzMzMpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtaXgoQHN0YXJ0Q29sb3IsIEBlbmRDb2xvciwgNjAlKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsIEBzdGFydENvbG9yLCBAZW5kQ29sb3IpOyAvLyBGRiAzLjYrXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudCh0b3AsIEBzdGFydENvbG9yLCBAZW5kQ29sb3IpOyAvLyBJRTEwXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAgMCwgMCAxMDAlLCBmcm9tKEBzdGFydENvbG9yKSwgdG8oQGVuZENvbG9yKSk7IC8vIFNhZmFyaSA0KywgQ2hyb21lIDIrXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCBAc3RhcnRDb2xvciwgQGVuZENvbG9yKTsgLy8gU2FmYXJpIDUuMSssIENocm9tZSAxMCtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCBAc3RhcnRDb2xvciwgQGVuZENvbG9yKTsgLy8gT3BlcmEgMTEuMTBcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG9wLCBAc3RhcnRDb2xvciwgQGVuZENvbG9yKTsgLy8gVGhlIHN0YW5kYXJkXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICAgIGZpbHRlcjogZSglKFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyVkJywgZW5kQ29sb3JzdHI9JyVkJywgR3JhZGllbnRUeXBlPTApXCIsQHN0YXJ0Q29sb3IsQGVuZENvbG9yKSk7IC8vIElFOSBhbmQgZG93blxuICB9XG4gIC5kaXJlY3Rpb25hbChAc3RhcnRDb2xvcjogIzU1NSwgQGVuZENvbG9yOiAjMzMzLCBAZGVnOiA0NWRlZykge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBlbmRDb2xvcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQoQGRlZywgQHN0YXJ0Q29sb3IsIEBlbmRDb2xvcik7IC8vIEZGIDMuNitcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtbXMtbGluZWFyLWdyYWRpZW50KEBkZWcsIEBzdGFydENvbG9yLCBAZW5kQ29sb3IpOyAvLyBJRTEwXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoQGRlZywgQHN0YXJ0Q29sb3IsIEBlbmRDb2xvcik7IC8vIFNhZmFyaSA1LjErLCBDaHJvbWUgMTArXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KEBkZWcsIEBzdGFydENvbG9yLCBAZW5kQ29sb3IpOyAvLyBPcGVyYSAxMS4xMFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChAZGVnLCBAc3RhcnRDb2xvciwgQGVuZENvbG9yKTsgLy8gVGhlIHN0YW5kYXJkXG4gIH1cbiAgLnZlcnRpY2FsLXRocmVlLWNvbG9ycyhAc3RhcnRDb2xvcjogIzAwYjNlZSwgQG1pZENvbG9yOiAjN2E0M2I2LCBAY29sb3JTdG9wOiA1MCUsIEBlbmRDb2xvcjogI2MzMzI1Zikge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1peChAbWlkQ29sb3IsIEBlbmRDb2xvciwgODAlKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAwLCAwIDEwMCUsIGZyb20oQHN0YXJ0Q29sb3IpLCBjb2xvci1zdG9wKEBjb2xvclN0b3AsIEBtaWRDb2xvciksIHRvKEBlbmRDb2xvcikpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KEBzdGFydENvbG9yLCBAbWlkQ29sb3IgQGNvbG9yU3RvcCwgQGVuZENvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsIEBzdGFydENvbG9yLCBAbWlkQ29sb3IgQGNvbG9yU3RvcCwgQGVuZENvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtbXMtbGluZWFyLWdyYWRpZW50KEBzdGFydENvbG9yLCBAbWlkQ29sb3IgQGNvbG9yU3RvcCwgQGVuZENvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoQHN0YXJ0Q29sb3IsIEBtaWRDb2xvciBAY29sb3JTdG9wLCBAZW5kQ29sb3IpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChAc3RhcnRDb2xvciwgQG1pZENvbG9yIEBjb2xvclN0b3AsIEBlbmRDb2xvcik7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBmaWx0ZXI6IGUoJShcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPSclZCcsIGVuZENvbG9yc3RyPSclZCcsIEdyYWRpZW50VHlwZT0wKVwiLEBzdGFydENvbG9yLEBlbmRDb2xvcikpOyAvLyBJRTkgYW5kIGRvd24sIGdldHMgbm8gY29sb3Itc3RvcCBhdCBhbGwgZm9yIHByb3BlciBmYWxsYmFja1xuICB9XG4gIC5yYWRpYWwoQGlubmVyQ29sb3I6ICM1NTUsIEBvdXRlckNvbG9yOiAjMzMzKSAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBvdXRlckNvbG9yO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQocmFkaWFsLCBjZW50ZXIgY2VudGVyLCAwLCBjZW50ZXIgY2VudGVyLCA0NjAsIGZyb20oQGlubmVyQ29sb3IpLCB0byhAb3V0ZXJDb2xvcikpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgQGlubmVyQ29sb3IsIEBvdXRlckNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LXJhZGlhbC1ncmFkaWVudChjaXJjbGUsIEBpbm5lckNvbG9yLCBAb3V0ZXJDb2xvcik7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW1zLXJhZGlhbC1ncmFkaWVudChjaXJjbGUsIEBpbm5lckNvbG9yLCBAb3V0ZXJDb2xvcik7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW8tcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgQGlubmVyQ29sb3IsIEBvdXRlckNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICB9XG4gIC5zdHJpcGVkKEBjb2xvciwgQGFuZ2xlOiAtNDVkZWcpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAY29sb3I7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAgMTAwJSwgMTAwJSAwLCBjb2xvci1zdG9wKC4yNSwgcmdiYSgyNTUsMjU1LDI1NSwuMTUpKSwgY29sb3Itc3RvcCguMjUsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCguNSwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKC41LCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkpLCBjb2xvci1zdG9wKC43NSwgcmdiYSgyNTUsMjU1LDI1NSwuMTUpKSwgY29sb3Itc3RvcCguNzUsIHRyYW5zcGFyZW50KSwgdG8odHJhbnNwYXJlbnQpKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChAYW5nbGUsIHJnYmEoMjU1LDI1NSwyNTUsLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudChAYW5nbGUsIHJnYmEoMjU1LDI1NSwyNTUsLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtbXMtbGluZWFyLWdyYWRpZW50KEBhbmdsZSwgcmdiYSgyNTUsMjU1LDI1NSwuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChAYW5nbGUsIHJnYmEoMjU1LDI1NSwyNTUsLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoQGFuZ2xlLCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwuMTUpIDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIH1cbn1cbi8vIFJlc2V0IGZpbHRlcnMgZm9yIElFXG4ucmVzZXQtZmlsdGVyKCkge1xuICBmaWx0ZXI6IGUoJShcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChlbmFibGVkID0gZmFsc2UpXCIpKTtcbn1cblxuXG5cbi8vIENPTVBPTkVOVCBNSVhJTlNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEJ1dHRvbiBiYWNrZ3JvdW5kc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG4uYnV0dG9uQmFja2dyb3VuZChAc3RhcnRDb2xvciwgQGVuZENvbG9yKSB7XG4gIC8vIGdyYWRpZW50QmFyIHdpbGwgc2V0IHRoZSBiYWNrZ3JvdW5kIHRvIGEgcGxlYXNpbmcgYmxlbmQgb2YgdGhlc2UsIHRvIHN1cHBvcnQgSUU8PTlcbiAgLmdyYWRpZW50QmFyKEBzdGFydENvbG9yLCBAZW5kQ29sb3IpO1xuICAqYmFja2dyb3VuZC1jb2xvcjogQGVuZENvbG9yOyAvKiBEYXJrZW4gSUU3IGJ1dHRvbnMgYnkgZGVmYXVsdCBzbyB0aGV5IHN0YW5kIG91dCBtb3JlIGdpdmVuIHRoZXkgd29uJ3QgaGF2ZSBib3JkZXJzICovXG4gIC5yZXNldC1maWx0ZXIoKTtcblxuICAvLyBpbiB0aGVzZSBjYXNlcyB0aGUgZ3JhZGllbnQgd29uJ3QgY292ZXIgdGhlIGJhY2tncm91bmQsIHNvIHdlIG92ZXJyaWRlXG4gICY6aG92ZXIsICY6YWN0aXZlLCAmLmFjdGl2ZSwgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBlbmRDb2xvcjtcbiAgICAqYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKEBlbmRDb2xvciwgNSUpO1xuICB9XG5cbiAgLy8gSUUgNyArIDggY2FuJ3QgaGFuZGxlIGJveC1zaGFkb3cgdG8gc2hvdyBhY3RpdmUsIHNvIHdlIGRhcmtlbiBhIGJpdCBvdXJzZWx2ZXNcbiAgJjphY3RpdmUsXG4gICYuYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGVuZENvbG9yLCAxMCUpIGUoXCJcXDlcIik7XG4gIH1cbn1cblxuLy8gTmF2YmFyIHZlcnRpY2FsIGFsaWduXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBWZXJ0aWNhbGx5IGNlbnRlciBlbGVtZW50cyBpbiB0aGUgbmF2YmFyLlxuLy8gRXhhbXBsZTogYW4gZWxlbWVudCBoYXMgYSBoZWlnaHQgb2YgMzBweCwgc28gd3JpdGUgb3V0IGAubmF2YmFyVmVydGljYWxBbGlnbigzMHB4KTtgIHRvIGNhbGN1bGF0ZSB0aGUgYXBwcm9wcmlhdGUgdG9wIG1hcmdpbi5cbi5uYXZiYXJWZXJ0aWNhbEFsaWduKEBlbGVtZW50SGVpZ2h0KSB7XG4gIG1hcmdpbi10b3A6IChAbmF2YmFySGVpZ2h0IC0gQGVsZW1lbnRIZWlnaHQpIC8gMjtcbn1cblxuLy8gUG9wb3ZlciBhcnJvd3Ncbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEZvciB0aXBzaWVzIGFuZCBwb3BvdmVyc1xuI3BvcG92ZXJBcnJvdyB7XG4gIC50b3AoQGFycm93V2lkdGg6IDVweCwgQGNvbG9yOiBAYmxhY2spIHtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAtQGFycm93V2lkdGg7XG4gICAgYm9yZGVyLWxlZnQ6IEBhcnJvd1dpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodDogQGFycm93V2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcDogQGFycm93V2lkdGggc29saWQgQGNvbG9yO1xuICB9XG4gIC5sZWZ0KEBhcnJvd1dpZHRoOiA1cHgsIEBjb2xvcjogQGJsYWNrKSB7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDA7XG4gICAgbWFyZ2luLXRvcDogLUBhcnJvd1dpZHRoO1xuICAgIGJvcmRlci10b3A6IEBhcnJvd1dpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b206IEBhcnJvd1dpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1sZWZ0OiBAYXJyb3dXaWR0aCBzb2xpZCBAY29sb3I7XG4gIH1cbiAgLmJvdHRvbShAYXJyb3dXaWR0aDogNXB4LCBAY29sb3I6IEBibGFjaykge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IC1AYXJyb3dXaWR0aDtcbiAgICBib3JkZXItbGVmdDogQGFycm93V2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiBAYXJyb3dXaWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tOiBAYXJyb3dXaWR0aCBzb2xpZCBAY29sb3I7XG4gIH1cbiAgLnJpZ2h0KEBhcnJvd1dpZHRoOiA1cHgsIEBjb2xvcjogQGJsYWNrKSB7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogMDtcbiAgICBtYXJnaW4tdG9wOiAtQGFycm93V2lkdGg7XG4gICAgYm9yZGVyLXRvcDogQGFycm93V2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogQGFycm93V2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiBAYXJyb3dXaWR0aCBzb2xpZCBAY29sb3I7XG4gIH1cbn1cblxuLy8gR3JpZCBTeXN0ZW1cbi8vIC0tLS0tLS0tLS0tXG5cbi8vIENlbnRlcmVkIGNvbnRhaW5lciBlbGVtZW50XG4uY29udGFpbmVyLWZpeGVkKCkge1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAuY2xlYXJmaXgoKTtcbn1cblxuLy8gVGFibGUgY29sdW1uc1xuLnRhYmxlQ29sdW1ucyhAY29sdW1uU3BhbjogMSkge1xuICBmbG9hdDogbm9uZTsgLy8gdW5kbyBkZWZhdWx0IGdyaWQgY29sdW1uIHN0eWxlc1xuICB3aWR0aDogKChAZmx1aWRHcmlkQ29sdW1uV2lkdGgpICogQGNvbHVtblNwYW4pICsgKEBmbHVpZEdyaWRHdXR0ZXJXaWR0aCAqIChAY29sdW1uU3BhbiAtIDEpKSAtIDE2OyAvLyAxNiBpcyB0b3RhbCBwYWRkaW5nIG9uIGxlZnQgYW5kIHJpZ2h0IG9mIHRhYmxlIGNlbGxzXG4gIG1hcmdpbi1sZWZ0OiAwOyAvLyB1bmRvIGRlZmF1bHQgZ3JpZCBjb2x1bW4gc3R5bGVzXG59XG5cbi8vIE1ha2UgYSBHcmlkXG4vLyBVc2UgLm1ha2VSb3cgYW5kIC5tYWtlQ29sdW1uIHRvIGFzc2lnbiBzZW1hbnRpYyBsYXlvdXRzIGdyaWQgc3lzdGVtIGJlaGF2aW9yXG4ubWFrZVJvdygpIHtcbiAgbWFyZ2luLWxlZnQ6IEBncmlkR3V0dGVyV2lkdGggKiAtMTtcbiAgLmNsZWFyZml4KCk7XG59XG4ubWFrZUNvbHVtbihAY29sdW1uczogMSwgQG9mZnNldDogMCkge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLWxlZnQ6IChAZ3JpZENvbHVtbldpZHRoICogQG9mZnNldCkgKyAoQGdyaWRHdXR0ZXJXaWR0aCAqIChAb2Zmc2V0IC0gMSkpICsgKEBncmlkR3V0dGVyV2lkdGggKiAyKTtcbiAgd2lkdGg6IChAZ3JpZENvbHVtbldpZHRoICogQGNvbHVtbnMpICsgKEBncmlkR3V0dGVyV2lkdGggKiAoQGNvbHVtbnMgLSAxKSk7XG59XG5cbi8vIFRoZSBHcmlkXG4jZ3JpZCB7XG5cbiAgLmNvcmUgKEBncmlkQ29sdW1uV2lkdGgsIEBncmlkR3V0dGVyV2lkdGgpIHtcblxuICAgIC5zcGFuWCAoQGluZGV4KSB3aGVuIChAaW5kZXggPiAwKSB7XG4gICAgICAuc3BhbkB7aW5kZXh9IHsgLnNwYW4oQGluZGV4KTsgfVxuICAgICAgLnNwYW5YKEBpbmRleCAtIDEpO1xuICAgIH1cbiAgICAuc3BhblggKDApIHt9XG5cbiAgICAub2Zmc2V0WCAoQGluZGV4KSB3aGVuIChAaW5kZXggPiAwKSB7XG4gICAgICAub2Zmc2V0QHtpbmRleH0geyAub2Zmc2V0KEBpbmRleCk7IH1cbiAgICAgIC5vZmZzZXRYKEBpbmRleCAtIDEpO1xuICAgIH1cbiAgICAub2Zmc2V0WCAoMCkge31cblxuICAgIC5vZmZzZXQgKEBjb2x1bW5zKSB7XG4gICAgICBtYXJnaW4tbGVmdDogKEBncmlkQ29sdW1uV2lkdGggKiBAY29sdW1ucykgKyAoQGdyaWRHdXR0ZXJXaWR0aCAqIChAY29sdW1ucyArIDEpKTtcbiAgICB9XG5cbiAgICAuc3BhbiAoQGNvbHVtbnMpIHtcbiAgICAgIHdpZHRoOiAoQGdyaWRDb2x1bW5XaWR0aCAqIEBjb2x1bW5zKSArIChAZ3JpZEd1dHRlcldpZHRoICogKEBjb2x1bW5zIC0gMSkpO1xuICAgIH1cblxuICAgIC5yb3cge1xuICAgICAgbWFyZ2luLWxlZnQ6IEBncmlkR3V0dGVyV2lkdGggKiAtMTtcbiAgICAgIC5jbGVhcmZpeCgpO1xuICAgIH1cblxuICAgIC5zcGFuMSxcbiAgICAuc3BhbjIsXG4gICAgLnNwYW4zLFxuICAgIC5zcGFuNCxcbiAgICAuc3BhbjUsXG4gICAgLnNwYW42LFxuICAgIC5zcGFuNyxcbiAgICAuc3BhbjgsXG4gICAgLnNwYW45LFxuICAgIC5zcGFuMTAsXG4gICAgLnNwYW4xMSxcbiAgICAuc3BhbjEyIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luLWxlZnQ6IEBncmlkR3V0dGVyV2lkdGg7XG4gICAgfVxuXG4gICAgLy8gU2V0IHRoZSBjb250YWluZXIgd2lkdGgsIGFuZCBvdmVycmlkZSBpdCBmb3IgZml4ZWQgbmF2YmFycyBpbiBtZWRpYSBxdWVyaWVzXG4gICAgLmNvbnRhaW5lcixcbiAgICAubmF2YmFyLWZpeGVkLXRvcCAuY29udGFpbmVyLFxuICAgIC5uYXZiYXItZml4ZWQtYm90dG9tIC5jb250YWluZXIgeyAuc3BhbihAZ3JpZENvbHVtbnMpOyB9XG5cbiAgICAvLyBnZW5lcmF0ZSAuc3BhblggYW5kIC5vZmZzZXRYXG4gICAgLnNwYW5YIChAZ3JpZENvbHVtbnMpO1xuICAgIC5vZmZzZXRYIChAZ3JpZENvbHVtbnMpO1xuXG4gIH1cblxuICAuZmx1aWQgKEBmbHVpZEdyaWRDb2x1bW5XaWR0aCwgQGZsdWlkR3JpZEd1dHRlcldpZHRoKSB7XG5cbiAgICAuc3BhblggKEBpbmRleCkgd2hlbiAoQGluZGV4ID4gMCkge1xuICAgICAgLnNwYW5Ae2luZGV4fSB7IC5zcGFuKEBpbmRleCk7IH1cbiAgICAgIC5zcGFuWChAaW5kZXggLSAxKTtcbiAgICB9XG4gICAgLnNwYW5YICgwKSB7fVxuXG4gICAgLnNwYW4gKEBjb2x1bW5zKSB7XG4gICAgICB3aWR0aDogKEBmbHVpZEdyaWRDb2x1bW5XaWR0aCAqIEBjb2x1bW5zKSArIChAZmx1aWRHcmlkR3V0dGVyV2lkdGggKiAoQGNvbHVtbnMgLSAxKSk7XG4gICAgICAqd2lkdGg6IChAZmx1aWRHcmlkQ29sdW1uV2lkdGggKiBAY29sdW1ucykgKyAoQGZsdWlkR3JpZEd1dHRlcldpZHRoICogKEBjb2x1bW5zIC0gMSkpIC0gKC41IC8gQGdyaWRSb3dXaWR0aCAqIDEwMCAqIDElKTtcbiAgICB9XG5cbiAgICAucm93LWZsdWlkIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgLmNsZWFyZml4KCk7XG4gICAgICAuc3BhbjEsXG4gICAgICAuc3BhbjIsXG4gICAgICAuc3BhbjMsXG4gICAgICAuc3BhbjQsXG4gICAgICAuc3BhbjUsXG4gICAgICAuc3BhbjYsXG4gICAgICAuc3BhbjcsXG4gICAgICAuc3BhbjgsXG4gICAgICAuc3BhbjksXG4gICAgICAuc3BhbjEwLFxuICAgICAgLnNwYW4xMSxcbiAgICAgIC5zcGFuMTIge1xuICAgICAgICAuaW5wdXQtYmxvY2stbGV2ZWwoKTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBAZmx1aWRHcmlkR3V0dGVyV2lkdGg7XG4gICAgICAgICptYXJnaW4tbGVmdDogQGZsdWlkR3JpZEd1dHRlcldpZHRoIC0gKC41IC8gQGdyaWRSb3dXaWR0aCAqIDEwMCAqIDElKTtcbiAgICAgIH1cbiAgICAgIC5zcGFuMSxcbiAgICAgIC5zcGFuMjpmaXJzdC1jaGlsZCxcbiAgICAgIC5zcGFuMzpmaXJzdC1jaGlsZCxcbiAgICAgIC5zcGFuNDpmaXJzdC1jaGlsZCxcbiAgICAgIC5zcGFuNTpmaXJzdC1jaGlsZCxcbiAgICAgIC5zcGFuNjpmaXJzdC1jaGlsZCxcbiAgICAgIC5zcGFuNzpmaXJzdC1jaGlsZCxcbiAgICAgIC5zcGFuODpmaXJzdC1jaGlsZCxcbiAgICAgIC5zcGFuOTpmaXJzdC1jaGlsZCxcbiAgICAgIC5zcGFuMTA6Zmlyc3QtY2hpbGQsXG4gICAgICAuc3BhbjExOmZpcnN0LWNoaWxkLFxuICAgICAgLnNwYW4xMjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuXG4gICAgICAvLyBnZW5lcmF0ZSAuc3BhblhcbiAgICAgIC5zcGFuWCAoQGdyaWRDb2x1bW5zKTtcbiAgICB9XG5cbiAgfVxuXG4gIC5pbnB1dChAZ3JpZENvbHVtbldpZHRoLCBAZ3JpZEd1dHRlcldpZHRoKSB7XG5cbiAgICAuc3BhblggKEBpbmRleCkgd2hlbiAoQGluZGV4ID4gMCkge1xuICAgICAgaW5wdXQuc3BhbkB7aW5kZXh9LCB0ZXh0YXJlYS5zcGFuQHtpbmRleH0sIC51bmVkaXRhYmxlLWlucHV0LnNwYW5Ae2luZGV4fSB7IC5zcGFuKEBpbmRleCk7IH1cbiAgICAgIC5zcGFuWChAaW5kZXggLSAxKTtcbiAgICB9XG4gICAgLnNwYW5YICgwKSB7fVxuXG4gICAgLnNwYW4oQGNvbHVtbnMpIHtcbiAgICAgIHdpZHRoOiAoKEBncmlkQ29sdW1uV2lkdGgpICogQGNvbHVtbnMpICsgKEBncmlkR3V0dGVyV2lkdGggKiAoQGNvbHVtbnMgLSAxKSkgLSAxMDtcbiAgICB9XG5cbiAgICBpbnB1dCxcbiAgICB0ZXh0YXJlYSxcbiAgICAudW5lZGl0YWJsZS1pbnB1dCB7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgLy8gb3ZlcnJpZGUgbWFyZ2luLWxlZnQgZnJvbSBjb3JlIGdyaWQgc3lzdGVtXG4gICAgfVxuXG4gICAgLy8gZ2VuZXJhdGUgLnNwYW5YXG4gICAgLnNwYW5YIChAZ3JpZENvbHVtbnMpO1xuXG4gIH1cblxufVxuXG4uZGFya0xpZ2h0IChAYSkgd2hlbiAobGlnaHRuZXNzKEBhKSA+PSA1MCUpIHtcbiAgY29sb3I6IEBncmF5RGFya2VyO1xufVxuLmRhcmtMaWdodCAoQGEpIHdoZW4gKGxpZ2h0bmVzcyhAYSkgPCA1MCUpIHtcbiAgY29sb3I6IEB3aGl0ZTtcbn1cbi5zb2NpYWxCdXR0b24gKEBuZXR3b3JrKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBuZXR3b3JrO1xuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQG5ldHdvcmssIDUlKTsgIFxuICB9XG59XG4iLCJib2R5IHtcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogQGJhc2VGb250RmFtaWx5O1xuICBmb250LXNpemU6IEBiYXNlRm9udFNpemU7XG4gIGZvbnQtd2VpZ2h0OiBAYmFzZUZvbnRXZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiBAYmFzZUxpbmVIZWlnaHQ7XG4gIGNvbG9yOiBAdGV4dENvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYm9keUJhY2tncm91bmQ7XG59XG4jcGFnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwYWdlQmFja2dyb3VuZDtcbiAgcGFkZGluZzogMCAyMHB4O1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gTGlua3Ncbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmEge1xuICBjb2xvcjogQGxpbmtDb2xvcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogQGxpbmtDb2xvckhvdmVyO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG4gICYubW9yZS1saW5rIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBHZW5lcmFsIFR5cG9ncmFwaHlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbnAsXG5kbCxcbmhyLFxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2LFxub2wsXG51bCxcbnByZSxcbnRhYmxlLFxuZmlndXJlLFxuYWRkcmVzcyxcbmZpZWxkc2V0IHtcbiAgbWFyZ2luOiAwIDAgQGJhc2VsaW5lO1xufVxuaDEge1xuICBmb250LXNpemU6IEBiYXNlRm9udFNpemUgKiAzLjM3NTtcbiAgJi5lbnRyeS10aXRsZSB7XG4gICAgZm9udC1zaXplOiBAYmFzZUZvbnRTaXplICogMi43NTtcbiAgICBtYXJnaW4tYm90dG9tOiBAYmFzZWxpbmUgLyAyO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG59XG5oMiB7XG4gIGZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZSAqIDIuNzU7XG59XG5oMyB7XG4gIGZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZSAqIDIuMjU7XG59XG5oNCxcbi5lbnRyeS1jb250ZW50IGgxLFxuLmVudHJ5LWNvbnRlbnQgaDIsXG4uZW50cnktY29udGVudCBoMyB7XG4gIGZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZSAqIDEuODMzO1xufVxuaDUsXG4uc3RvcmllcyBoMyxcbi5lbnRyeS1jb250ZW50IGg0IHtcbiAgZm9udC1zaXplOiBAYmFzZUZvbnRTaXplICogMS41O1xufVxuaDUudG9wLXRhZyxcbi53aWRnZXQgaDUudG9wLXRhZyxcbi5lbnRyeS1jb250ZW50IGg1LnRvcC10YWcge1xuICBmb250LXNpemU6IEBiYXNlRm9udFNpemU7XG4gIG1hcmdpbi1ib3R0b206IEBiYXNlbGluZS81O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogQGdyYXlMaWdodDtcbiAgYSB7XG4gICAgY29sb3I6IEBncmF5TGlnaHQ7XG4gIH1cbn1cbmg2LFxuLmVudHJ5LWNvbnRlbnQgaDUge1xuICBmb250LXNpemU6IEBiYXNlRm9udFNpemUgKiAxLjIyMjtcbn1cbi5lbnRyeS1jb250ZW50IGg2IHtcbiAgZm9udC1zaXplOiBAYmFzZUZvbnRTaXplO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gIGZvbnQtZmFtaWx5OiBAaGVhZGluZ3NGb250RmFtaWx5O1xuICBmb250LXdlaWdodDogQGhlYWRpbmdzRm9udFdlaWdodDtcbiAgY29sb3I6IEBoZWFkaW5nc0NvbG9yO1xuICBsaW5lLWhlaWdodDogMS4zO1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVsZWdpYmlsaXR5O1xuICBzbWFsbCB7XG4gICAgZm9udC1zaXplOiAwLjgxNWVtO1xuICB9XG59XG4uZW50cnktY29udGVudCBoMixcbi5lbnRyeS1jb250ZW50IGgzLFxuLmVudHJ5LWNvbnRlbnQgaDQsXG4uZW50cnktY29udGVudCBoNSxcbi5lbnRyeS1jb250ZW50IGg2IHtcbiAgbWFyZ2luLWJvdHRvbTogQGJhc2VsaW5lO1xufVxucCB7XG4gIGZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZSAqIDEuMjIyO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBtYXJnaW46IDAgMCBAYmFzZWxpbmU7XG4gIHNtYWxsLFxuICAmLnNtYWxsIHtcbiAgICBmb250LXNpemU6IEBiYXNlRm9udFNpemUgKiAwLjgxNTtcbiAgICBjb2xvcjogQGdyYXlMaWdodDtcbiAgfVxuICAmLnhzbWFsbCB7XG4gICAgZm9udC1zaXplOiBAYmFzZUZvbnRTaXplICogMC42Njc7XG4gICAgY29sb3I6IEBncmF5TGlnaHQ7XG4gIH1cbiAgJi5pbnRybyB7XG4gICAgZm9udC1zaXplOiBAYmFzZUZvbnRTaXplICogMS41O1xuICAgIGNvbG9yOiBAZ3JheTtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH1cbiAgJi5oYXMtZHJvcC1jYXA6bm90KDpmb2N1cyk6Zmlyc3QtbGV0dGVyIHtcbiAgICBmb250LXNpemU6IDcuMmVtO1xuICB9XG59XG5cbnVsLCBvbCB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMCAwIEBiYXNlbGluZSAyNXB4O1xuICAmLmFsaWduY2VudGVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7XG4gIH1cbn1cbi5lbnRyeS1jb250ZW50IHtcbiAgdWwsXG4gIG9sIHtcbiAgICBmb250LXNpemU6IEBiYXNlRm9udFNpemUgKiAxLjIyMjtcbiAgfVxufVxudWwgdWwsXG51bCBvbCxcbm9sIG9sLFxub2wgdWwge1xuICBtYXJnaW4tdG9wOiBAYmFzZWxpbmUgLyAzO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxudWwge1xuICBsaXN0LXN0eWxlOiBkaXNjO1xufVxub2wge1xuICBsaXN0LXN0eWxlOiBkZWNpbWFsO1xuICBvbCB7XG4gICAgbGlzdC1zdHlsZTogbG93ZXItYWxwaGE7XG4gICAgb2wge1xuXHQgIGxpc3Qtc3R5bGU6IGxvd2VyLXJvbWFuO1xuICAgIH1cbiAgfVxufVxubGkge1xuICBtYXJnaW4tYm90dG9tOiBAYmFzZWxpbmUgKiAwLjU7XG59XG51bC51bnN0eWxlZCxcbm9sLnVuc3R5bGVkIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5kbCBkdCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuZGQge1xuICBtYXJnaW4tbGVmdDogNXB4O1xufVxuc3Ryb25nLCBkZm4ge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbmVtLCBkZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5hYmJyLCBhY3JvbnltIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCBAZ3JheUxpZ2h0O1xufVxuYWRkcmVzcyB7XG4gIG1hcmdpbjogMCAwIEBiYXNlbGluZTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuc3RyaWtlLFxucyxcbmRlbCB7XG4gIGNvbG9yOiBAZ3JheTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEZhbmN5IFBvc3QgRm9ybWF0dGluZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuYmxvY2txdW90ZSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGNsZWFyOiBib3RoO1xuICBwYWRkaW5nOiA1cHggMjBweCA1cHggMjBweDtcbiAgLy8gc2lnaFxuICBtYXJnaW46IEBiYXNlbGluZTtcbiAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCBAZ3JheUxpZ2h0ZXI7XG5cbiAgLmFsaWdubGVmdCAmIHtcbiAgICBib3JkZXItcmlnaHQ6IDVweCBzb2xpZCBAZ3JheUxpZ2h0ZXI7XG4gICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbiAgLmFsaWducmlnaHQgJiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICB9XG4gIC5hbGlnbmNlbnRlciAmIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gIH1cblxuICBwIHtcbiAgICBmb250LXNpemU6IEBiYXNlRm9udFNpemU7XG4gICAgbWFyZ2luOiBAYmFzZWxpbmUvMiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIH1cbiAgc21hbGwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiBAYmFzZWxpbmU7XG4gICAgY29sb3I6IEBncmF5TGlnaHQ7XG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJ1xcMjAxNCBcXDAwQTAnO1xuICAgIH1cbiAgfVxuICAvLyBGbG9hdCByaWdodCB3aXRoIHRleHQtYWxpZ246IHJpZ2h0XG4gICYucHVsbC1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBib3JkZXItcmlnaHQ6IDVweCBzb2xpZCBAZ3JheUxpZ2h0ZXI7XG4gICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgcCxcbiAgICBzbWFsbCB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG4gIH1cbn1cblxuY29kZSxcbnByZSB7XG4gIHBhZGRpbmc6IDAgM3B4IDJweDtcbiAgI2ZvbnQgPiAjZmFtaWx5ID4gLm1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiBAYmFzZUZvbnRTaXplIC0gMjtcbiAgY29sb3I6IEBncmF5RGFyaztcbn1cblxuLy8gSW5saW5lIGNvZGVcbmNvZGUge1xuICBwYWRkaW5nOiAycHggNHB4O1xuICBjb2xvcjogI2QxNDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmOTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2UxZTFlODtcbn1cblxuLy8gQmxvY2tzIG9mIGNvZGVcbnByZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiBAYmFzZWxpbmUgLyAyO1xuICBtYXJnaW46IDAgMCBAYmFzZWxpbmU7XG4gIGZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZSAqIC45MjU7IC8vIDEzcHggdG8gMTJweFxuICBsaW5lLWhlaWdodDogQGJhc2VsaW5lO1xuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgd2hpdGUtc3BhY2U6IHByZTtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjOyAvLyBmYWxsYmFjayBmb3IgSUU3LThcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLDAsMCwuMTUpO1xuXG4gIC8vIE1ha2UgcHJldHR5cHJpbnQgc3R5bGVzIG1vcmUgc3BhY2VkIG91dCBmb3IgcmVhZGFiaWxpdHlcbiAgJi5wcmV0dHlwcmludCB7XG4gICAgbWFyZ2luLWJvdHRvbTogQGJhc2VsaW5lO1xuICB9XG5cbiAgLy8gQWNjb3VudCBmb3Igc29tZSBjb2RlIG91dHB1dHMgdGhhdCBwbGFjZSBjb2RlIHRhZ3MgaW4gcHJlIHRhZ3NcbiAgY29kZSB7XG4gICAgcGFkZGluZzogMDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IDA7XG4gIH1cbn1cblxuLy8gRW5hYmxlIHNjcm9sbGFibGUgYmxvY2tzIG9mIGNvZGVcbi5wcmUtc2Nyb2xsYWJsZSB7XG4gIG1heC1oZWlnaHQ6IDM0MHB4O1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG5cbmhyIHtcbiAgbWFyZ2luOiBAYmFzZWxpbmUgMDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgQGdyYXlMaWdodGVyO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgQHdoaXRlO1xufVxuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENPTE9SXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBHcmF5c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGJsYWNrOiAgICAgICAgICAgICAgICAgIzAwMDtcbkBncmF5RGFya2VyOiAgICAgICAgICAgICMyMjI7XG5AZ3JheURhcms6ICAgICAgICAgICAgICAjNDg0ODQ4O1xuQGdyYXk6ICAgICAgICAgICAgICAgICAgIzdEODE4NTtcbkBncmF5TGlnaHQ6ICAgICAgICAgICAgICNhYWE7XG5AZ3JheUxpZ2h0ZXI6ICAgICAgICAgICAjZGRkO1xuQHdoaXRlOiAgICAgICAgICAgICAgICAgI2ZmZjtcblxuXG5cbi8vIEFjY2VudCBjb2xvcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBza3k6ICAgICAgICAgICAgICAgICAgICM2Y2I5ZTE7XG5AYmx1ZTogICAgICAgICAgICAgICAgICAjMjI3NWJiO1xuQGJsdWVEYXJrOiAgICAgICAgICAgICAgIzAwNjRjZDtcbkBncmVlbjogICAgICAgICAgICAgICAgICM0NmE1NDY7XG5AcmVkOiAgICAgICAgICAgICAgICAgICAjYmQyNjFkO1xuQHllbGxvdzogICAgICAgICAgICAgICAgI2ZmYzQwZDtcbkBvcmFuZ2U6ICAgICAgICAgICAgICAgICNmODk0MDY7XG5AcGluazogICAgICAgICAgICAgICAgICAjYzMzMjVmO1xuQHB1cnBsZTogICAgICAgICAgICAgICAgIzdhNDNiNjtcblxuLyoqXG4gKiBAZ3JvdXAgQ29sb3JcbiAqIEBsYWJlbCBCYXNlIENvbG9yICh1c2VkIGZvciBuYXZiYXIsIHdpZGdldCB0aXRsZXMsIGV0Yy4pXG4gKiBAdHlwZSBjb2xvclxuICogQGRlZmF1bHRfdmFsdWUgIzIyNzViYlxuICovXG5AYmFzZUNvbG9yOlx0XHRcdFx0QGJsdWU7XG5cbi8qKlxuICogQGdyb3VwIENvbG9yXG4gKiBAbGFiZWwgSGVhZGVyL0Zvb3RlciBDb2xvclxuICogQHR5cGUgY29sb3JcbiAqIEBkZWZhdWx0X3ZhbHVlICMyMjJcbiAqL1xuQGhlYWRlckZvb3RlckNvbG9yOlx0XHRAZ3JheURhcmtlcjtcblxuLyoqXG4gKiBAZ3JvdXAgQ29sb3JcbiAqIEBsYWJlbCBQcmUtRm9vdGVyIENvbG9yXG4gKiBAdHlwZSBjb2xvclxuICogQGRlZmF1bHRfdmFsdWUgI2RkZFxuICovXG5AcHJlRm9vdGVyQ29sb3I6XHRcdEBncmF5TGlnaHRlcjtcblxuLyoqXG4gKiBAZ3JvdXAgQ29sb3JcbiAqIEBsYWJlbCBDb2xvciBvZiBsaW5rc1xuICogQHR5cGUgY29sb3JcbiAqIEBkZWZhdWx0X3ZhbHVlICMyMjc1YmJcbiAqL1xuQGxpbmtDb2xvcjogICAgICAgICAgICAgQGJsdWU7XG5cbi8qKlxuICogQGdyb3VwIENvbG9yXG4gKiBAbGFiZWwgSG92ZXIgY29sb3Igb2YgbGlua3NcbiAqIEB0eXBlIGNvbG9yXG4gKiBAZGVmYXVsdF92YWx1ZSAjMjI3NWJiXG4gKi9cbkBsaW5rQ29sb3JIb3ZlcjogICAgICAgIGxpZ2h0ZW4oQGxpbmtDb2xvciwgMTAlKTtcblxuLyoqXG4gKiBAZ3JvdXAgQ29sb3JcbiAqIEBsYWJlbCBCYWNrZ3JvdW5kIGNvbG9yIG9mIHBvc3QgbWV0YSBib3hlcyAoYXV0aG9yIGJpbywgcmVsYXRlZCBwb3N0cywgZXRjLilcbiAqIEB0eXBlIGNvbG9yXG4gKiBAZGVmYXVsdF92YWx1ZSAjZmZmXG4gKi9cbkBwb3N0Qm94QmFja2dyb3VuZENvbG9yOlx0I2ZmZjtcblxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gTEFZT1VUXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AY29udGFpbmVyTWF4V2lkdGg6XHRcdDExNzBweDtcblxuLyoqXG4gKiBAZ3JvdXAgQmFzaWNzXG4gKiBAbGFiZWwgQm9keSBCYWNrZ3JvdW5kIENvbG9yXG4gKiBAdHlwZSBjb2xvclxuICogQGRlZmF1bHRfdmFsdWUgI2ZmZlxuICovXG5AYm9keUJhY2tncm91bmQ6ICAgICAgICBAd2hpdGU7XG5cbi8qKlxuICogQGdyb3VwIEJhc2ljc1xuICogQGxhYmVsIFBhZ2UgQmFja2dyb3VuZCBDb2xvclxuICogQHR5cGUgY29sb3JcbiAqIEBkZWZhdWx0X3ZhbHVlICNmZmZcbiAqL1xuQHBhZ2VCYWNrZ3JvdW5kOiAgICAgICAgQHdoaXRlO1xuXG4vKipcbiAqIEBncm91cCBCYXNpY3NcbiAqIEBsYWJlbCBUZXh0IENvbG9yXG4gKiBAdHlwZSBjb2xvclxuICogQGRlZmF1bHRfdmFsdWUgIzMzM1xuICovXG5AdGV4dENvbG9yOiAgICAgICAgICAgICBAZ3JheURhcms7XG4vKipcbiAqIEBncm91cCBCYXNpY3NcbiAqIEBsYWJlbCBEZWZhdWx0IFZlcnRpY2FsIFNwYWNpbmdcbiAqIEB0eXBlIHBpeGVsc1xuICogQGRlZmF1bHRfdmFsdWUgMjRweFxuICovXG5AYmFzZWxpbmU6XHRcdFx0XHQyNHB4O1xuXG4vLyBHcmlkXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AZ3JpZENvbHVtbnM6ICAgICAgICAgICAgIDEyO1xuQGZsdWlkR3JpZENvbHVtbldpZHRoOiAgICA2LjM4Mjk3ODcyMyU7XG5AZmx1aWRHcmlkR3V0dGVyV2lkdGg6ICAgIDIuMTI3NjU5NTc0JTtcbkBncmlkUm93V2lkdGg6ICAgICAgICAgICAgMTAwJTtcblxuLy8gQnJlYWtwb2ludHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBoaWdoZGVuc2l0eTogflwib25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSlcIixcbiAgICAgICAgICAgICAgflwib25seSBzY3JlZW4gYW5kIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSlcIixcbiAgICAgICAgICAgICAgflwib25seSBzY3JlZW4gYW5kICgtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAzLzIgKVwiLFxuICAgICAgICAgICAgICB+XCJvbmx5IHNjcmVlbiBhbmQgKG1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSlcIjtcblxuQG1vYmlsZTogICAgICB+XCJvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTI5cHgpXCI7XG5cbkB0YWJsZXQ6ICAgICAgflwib25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTc5cHgpXCI7XG5AdGFibGV0RG93bjogIH5cIm9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NzlweClcIjtcbkB0YWJsZXRVcDogICAgflwib25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KVwiO1xuXG5AZGVza3RvcDogICAgIH5cIm9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5ODBweCkgYW5kIChtYXgtd2lkdGg6IDExMjhweClcIjtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRZUE9HUkFQSFlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKlxuICogQGdyb3VwIFR5cG9ncmFwaHlcbiAqIEBsYWJlbCBTYW5zIEZvbnQgRmFtaWx5XG4gKiBAdHlwZSB0ZXh0XG4gKiBAZGVmYXVsdF92YWx1ZSBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWZcbiAqL1xuQHNhbnNGb250RmFtaWx5OiAgICAgICAgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuXG4vKipcbiAqIEBncm91cCBUeXBvZ3JhcGh5XG4gKiBAbGFiZWwgU2VyaWYgRm9udCBGYW1pbHlcbiAqIEB0eXBlIHRleHRcbiAqL1xuQHNlcmlmRm9udEZhbWlseTogICAgICAgR2VvcmdpYSwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgVGltZXMsIHNlcmlmO1xuQG1vbm9Gb250RmFtaWx5OiAgICAgICAgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlO1xuXG4vKipcbiAqIEBncm91cCBUeXBvZ3JhcGh5XG4gKiBAbGFiZWwgQmFzZSBGb250IFNpemVcbiAqIEB0eXBlIHBpeGVsc1xuICovXG5AYmFzZUZvbnRTaXplOiAgICAgICAgICAxNnB4O1xuXG4vKipcbiAqIEBncm91cCBUeXBvZ3JhcGh5XG4gKiBAbGFiZWwgU2FucyBGb250IEZhbWlseVxuICogQHR5cGUgZHJvcGRvd25cbiAqIEBvcHRpb25zIEBzZXJpZkZvbnRGYW1pbHl8QHNhbnNGb250RmFtaWx5XG4gKiBAZGVmYXVsdF92YWx1ZSBAc2VyaWZGb250RmFtaWx5XG4gKi9cbkBiYXNlRm9udEZhbWlseTogICAgICAgIEBzZXJpZkZvbnRGYW1pbHk7XG4vKipcbiAqIEBncm91cCBUeXBvZ3JhcGh5XG4gKiBAbGFiZWwgQmFzZSBMaW5lIEhlaWdodFxuICogQHR5cGUgdGV4dFxuICogQGRlZmF1bHRfdmFsdWUgMS41XG4gKi9cbkBiYXNlTGluZUhlaWdodDogICAgICAgIDEuNTtcblxuQGFsdEZvbnRGYW1pbHk6ICAgICAgICAgQHNhbnNGb250RmFtaWx5O1xuQGJhc2VGb250V2VpZ2h0Olx0XHRub3JtYWw7XG5cbkBoZWFkaW5nc0ZvbnRGYW1pbHk6ICAgIEBzYW5zRm9udEZhbWlseTsgLy8gZW1wdHkgdG8gdXNlIGRlZmF1bHQsIEBiYXNlRm9udEZhbWlseVxuQGhlYWRpbmdzRm9udFdlaWdodDogICAgYm9sZDsgLy8gZW1wdHkgdG8gdXNlIGRlZmF1bHQsIEBiYXNlRm9udFdlaWdodFxuQGhlYWRpbmdzQ29sb3I6ICAgICAgICAgaW5oZXJpdDsgLy8gZW1wdHkgdG8gdXNlIGRlZmF1bHQsIEB0ZXh0Q29sb3JcblxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRk9STVMsIFRBQkxFUyBBTkQgQlVUVE9OU1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gVGFibGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AdGFibGVCYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudDsgLy8gb3ZlcmFsbCBiYWNrZ3JvdW5kLWNvbG9yXG5AdGFibGVCYWNrZ3JvdW5kQWNjZW50OiAgICAgICAgICAgICAjZjlmOWY5OyAvLyBmb3Igc3RyaXBpbmdcbkB0YWJsZUJhY2tncm91bmRIb3ZlcjogICAgICAgICAgICAgICNmNWY1ZjU7IC8vIGZvciBob3ZlclxuQHRhYmxlQm9yZGVyOiAgICAgICAgICAgICAgICAgICAgICAgI2RkZDsgLy8gdGFibGUgYW5kIGNlbGwgYm9yZGVyXG5cblxuLy8gQnV0dG9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGJ0bkJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgICAgQHdoaXRlO1xuQGJ0bkJhY2tncm91bmRIaWdobGlnaHQ6ICAgICAgICAgICAgZGFya2VuKEB3aGl0ZSwgMTAlKTtcbkBidG5Cb3JkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICNjY2M7XG5cbkBidG5QcmltYXJ5QmFja2dyb3VuZDogICAgICAgICAgICAgIEBiYXNlQ29sb3I7XG5AYnRuUHJpbWFyeUJhY2tncm91bmRIaWdobGlnaHQ6ICAgICBzcGluKEBidG5QcmltYXJ5QmFja2dyb3VuZCwgMTUlKTtcblxuXG4vLyBGb3Jtc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGlucHV0QmFja2dyb3VuZDogICAgICAgICAgICAgICBAd2hpdGU7XG5AaW5wdXRCb3JkZXI6ICAgICAgICAgICAgICAgICAgICNjY2M7XG5AaW5wdXRCb3JkZXJSYWRpdXM6ICAgICAgICAgICAgIDNweDtcbkBpbnB1dERpc2FibGVkQmFja2dyb3VuZDogICAgICAgQGdyYXlMaWdodGVyO1xuQGZvcm1BY3Rpb25zQmFja2dyb3VuZDogICAgICAgICAjZjVmNWY1O1xuXG5AcGxhY2Vob2xkZXJUZXh0OiAgICAgICAgIEBncmF5TGlnaHQ7XG5cblxuLy8gRm9ybSBzdGF0ZXMgYW5kIGFsZXJ0c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQHdhcm5pbmdUZXh0OiAgICAgICAgICAgICAjYzA5ODUzO1xuQHdhcm5pbmdCYWNrZ3JvdW5kOiAgICAgICAjZmNmOGUzO1xuQHdhcm5pbmdCb3JkZXI6ICAgICAgICAgICBkYXJrZW4oc3BpbihAd2FybmluZ0JhY2tncm91bmQsIC0xMCksIDMlKTtcblxuQGVycm9yVGV4dDogICAgICAgICAgICAgICAjYjk0YTQ4O1xuQGVycm9yQmFja2dyb3VuZDogICAgICAgICAjZjJkZWRlO1xuQGVycm9yQm9yZGVyOiAgICAgICAgICAgICBkYXJrZW4oc3BpbihAZXJyb3JCYWNrZ3JvdW5kLCAtMTApLCAzJSk7XG5cbkBzdWNjZXNzVGV4dDogICAgICAgICAgICAgIzQ2ODg0NztcbkBzdWNjZXNzQmFja2dyb3VuZDogICAgICAgI2RmZjBkODtcbkBzdWNjZXNzQm9yZGVyOiAgICAgICAgICAgZGFya2VuKHNwaW4oQHN1Y2Nlc3NCYWNrZ3JvdW5kLCAtMTApLCA1JSk7XG5cbkBpbmZvVGV4dDogICAgICAgICAgICAgICAgIzNhODdhZDtcbkBpbmZvQmFja2dyb3VuZDogICAgICAgICAgI2Q5ZWRmNztcbkBpbmZvQm9yZGVyOiAgICAgICAgICAgICAgZGFya2VuKHNwaW4oQGluZm9CYWNrZ3JvdW5kLCAtMTApLCA3JSk7XG5cbi8vIFotaW5kZXggbWFzdGVyIGxpc3Rcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkB6aW5kZXhEcm9wZG93bjogICAgICAgICAgMTAwMDtcbkB6aW5kZXhQb3BvdmVyOiAgICAgICAgICAgMTAxMDtcbkB6aW5kZXhUb29sdGlwOiAgICAgICAgICAgMTAyMDtcbkB6aW5kZXhGaXhlZE5hdmJhcjogICAgICAgMTAzMDtcbkB6aW5kZXhNb2RhbEJhY2tkcm9wOiAgICAgMTA0MDtcbkB6aW5kZXhNb2RhbDogICAgICAgICAgICAgMTA1MDtcblxuLy8gTmF2YmFyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbmF2YmFySGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgNDBweDtcbkBuYXZiYXJGb250U2l6ZTogICAgICAgICAgICAgICAgICAxNXB4O1xuQG5hdmJhckJhY2tncm91bmQ6ICAgICAgICAgICAgICAgIEBib2R5QmFja2dyb3VuZDtcbi8vIE5hdmJhciBidXR0b24gKGJ1cmdlcikgZm9yIHRvZ2dsaW5nIG5hdmJhciBpdGVtcyBpbiByZXNwb25zaXZlIGxheW91dHNcbkBpY29uYmFySGVpZ2h0OiAzcHg7XG5cbiAgICAvLyBOYXZiYXIgZHJvcGRvd25zXG4gICAgQGRyb3Bkb3duQmFja2dyb3VuZDogQHdoaXRlO1xuICAgIEBkcm9wZG93bkJvcmRlcjogcmdiYSgwLDAsMCwuMik7XG4gICAgQGRyb3Bkb3duRGl2aWRlclRvcDogI2U1ZTVlNTtcbiAgICBAZHJvcGRvd25EaXZpZGVyQm90dG9tOiBAd2hpdGU7XG5cbiAgICAvLyBNYWluIG5hdmJhclxuICAgIEBuYXZiYXJUZXh0OiBAdGV4dENvbG9yO1xuICAgIEBuYXZiYXJMaW5rQ29sb3I6IEBuYXZiYXJUZXh0O1xuICAgIEBuYXZiYXJMaW5rQ29sb3JIb3ZlcjogZGFya2VuKEBuYXZiYXJMaW5rQ29sb3IsIDUlKTtcbiAgICBAbmF2YmFyTGlua0JhY2tncm91bmRBY3RpdmU6IGRhcmtlbihAbmF2YmFyQmFja2dyb3VuZCwgNSUpO1xuICAgIEBuYXZiYXJEcm9wZG93bkNhcmV0Q29sb3I6IEBuYXZiYXJMaW5rQ29sb3I7XG4gICAgQG5hdmJhckRyb3Bkb3duQ2FyZXRDb2xvckhvdmVyOiBAbmF2YmFyTGlua0NvbG9ySG92ZXI7XG4gICAgQG5hdmJhclJ1bGVDb2xvcjogQGdyYXlMaWdodDtcblxuICAgIC8vIFN0aWNreSBuYXZiYXJcbiAgICBAc3RpY2t5TmF2YmFyVGV4dDogQHRleHRDb2xvcjtcbiAgICBAc3RpY2t5TmF2YmFyTGlua0NvbG9yOiBAc3RpY2t5TmF2YmFyVGV4dDtcbiAgICBAc3RpY2t5TmF2YmFyTGlua0NvbG9ySG92ZXI6IGRhcmtlbihAc3RpY2t5TmF2YmFyTGlua0NvbG9yLCA1JSk7XG4gICAgQHN0aWNreU5hdmJhckJhY2tncm91bmRDb2xvcjogQHdoaXRlO1xuICAgIEBzdGlja3lOYXZiYXJEcm9wZG93bkNhcmV0Q29sb3I6IEBzdGlja3lOYXZiYXJMaW5rQ29sb3I7XG4gICAgQHN0aWNreU5hdmJhckRyb3Bkb3duQ2FyZXRDb2xvckhvdmVyOiBAc3RpY2t5TmF2YmFyTGlua0NvbG9ySG92ZXI7XG5cblxuLy8gU29jaWFsIEJyYW5kc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQHJzczogI2Y4OTQwNjtcbkBmYWNlYm9vazogIzNhNTc5NTtcbkB0d2l0dGVyOiAjNTVhY2VlO1xuQHlvdXR1YmU6ICNlNTJkMjc7XG5AZ3BsdXM6ICNkZDRiMzk7XG5AZmxpY2tyOiAjZmYwMDg0O1xuQGxpbmtlZGluOiAjMDA3YmI2O1xuQHR1bWJscjogIzM1NDY1YztcbkBwaW50ZXJlc3Q6ICNjYjIwMjc7XG5AaW5zdGFncmFtOiAjMTI1Njg4O1xuQGdpdGh1YjogIzQxODNjNDtcbiIsIi8vIEdsb2JhbCBpbWFnZSBzdHlsZXNcblxuLy8gU3R5bGUgZm9yIHRoZSB0aHVtYm5haWwgdGhhdCBhcHBlYXJzIG9uIHRodW1ibmFpbHMgb2YgdmlkZW9zXG4uaXMtdmlkZW8gaW1nIHtcbiAgb3BhY2l0eTogMC41O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmlzLXZpZGVvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9pcy12aWRlby1wbGF5LWljb24uc3ZnXCIpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuICBiYWNrZ3JvdW5kLXNpemU6IDIwJTtcbn1cblxudWwud3AtYmxvY2stZ2FsbGVyeSB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG4iLCIvLyBGb3Jtcy5sZXNzXG4vLyBCYXNlIHN0eWxlcyBmb3IgdmFyaW91cyBpbnB1dCB0eXBlcywgZm9ybSBsYXlvdXRzLCBhbmQgc3RhdGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gR0VORVJBTCBTVFlMRVNcbi8vIC0tLS0tLS0tLS0tLS0tXG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IDA7XG59XG5cbi8vIEdyb3VwcyBvZiBmaWVsZHMgd2l0aCBsYWJlbHMgb24gdG9wIChsZWdlbmRzKVxubGVnZW5kIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW4tYm90dG9tOiBAYmFzZUxpbmVIZWlnaHQgKiAxLjU7XG4gIGZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZSAqIDEuNTtcbiAgbGluZS1oZWlnaHQ6IEBiYXNlTGluZUhlaWdodCAqIDI7XG4gIGNvbG9yOiBAZ3JheURhcms7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNWU1ZTU7XG5cbiAgLy8gU21hbGxcbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogQGJhc2VMaW5lSGVpZ2h0ICogLjc1O1xuICAgIGNvbG9yOiBAZ3JheUxpZ2h0O1xuICB9XG59XG5cbi8vIFNldCBmb250IGZvciBmb3Jtc1xubGFiZWwsXG5pbnB1dCxcbmJ1dHRvbixcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgI2ZvbnQgPiAuc2hvcnRoYW5kKEBiYXNlRm9udFNpemUsbm9ybWFsLEBiYXNlTGluZUhlaWdodCk7IC8vIFNldCBzaXplLCB3ZWlnaHQsIGxpbmUtaGVpZ2h0IGhlcmVcbn1cbmlucHV0LFxuYnV0dG9uLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogQGJhc2VGb250RmFtaWx5OyAvLyBBbmQgb25seSBzZXQgZm9udC1mYW1pbHkgaGVyZSBmb3IgdGhvc2UgdGhhdCBuZWVkIGl0IChub3RlIHRoZSBtaXNzaW5nIGxhYmVsIGVsZW1lbnQpXG59XG5cbi8vIElkZW50aWZ5IGNvbnRyb2xzIGJ5IHRoZWlyIGxhYmVsc1xubGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4vLyBGb3JtIGNvbnRyb2xzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIFNoYXJlZCBzaXplIGFuZCB0eXBlIHJlc2V0c1xuc2VsZWN0LFxudGV4dGFyZWEsXG5pbnB1dFt0eXBlPVwidGV4dFwiXSxcbmlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcbmlucHV0W3R5cGU9XCJkYXRldGltZVwiXSxcbmlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbmlucHV0W3R5cGU9XCJkYXRlXCJdLFxuaW5wdXRbdHlwZT1cIm1vbnRoXCJdLFxuaW5wdXRbdHlwZT1cInRpbWVcIl0sXG5pbnB1dFt0eXBlPVwid2Vla1wiXSxcbmlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG5pbnB1dFt0eXBlPVwiZW1haWxcIl0sXG5pbnB1dFt0eXBlPVwidXJsXCJdLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbmlucHV0W3R5cGU9XCJ0ZWxcIl0sXG5pbnB1dFt0eXBlPVwiY29sb3JcIl0sXG4udW5lZGl0YWJsZS1pbnB1dCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiBAYmFzZUxpbmVIZWlnaHQ7XG4gIHBhZGRpbmc6IDRweDtcbiAgbWFyZ2luLWJvdHRvbTogOXB4O1xuICBmb250LXNpemU6IEBiYXNlRm9udFNpemU7XG4gIGxpbmUtaGVpZ2h0OiBAYmFzZUxpbmVIZWlnaHQ7XG4gIC5ib3JkZXItcmFkaXVzKDApO1xuICBjb2xvcjogQGdyYXk7XG59XG5cbi8vIFJlc2V0IGFwcGVhcmFuY2UgcHJvcGVydGllcyBmb3IgdGV4dHVhbCBpbnB1dHMgYW5kIHRleHRhcmVhXG4vLyBEZWNsYXJlIHdpZHRoIGZvciBsZWdhY3kgKGNhbid0IGJlIG9uIGlucHV0W3R5cGU9Kl0gc2VsZWN0b3JzIG9yIGl0J3MgdG9vIHNwZWNpZmljKVxuaW5wdXQsXG50ZXh0YXJlYSB7XG4gIHdpZHRoOiAyMTBweDtcbn1cbi8vIFJlc2V0IGhlaWdodCBzaW5jZSB0ZXh0YXJlYXMgaGF2ZSByb3dzXG50ZXh0YXJlYSB7XG4gIGhlaWdodDogYXV0bztcbn1cbi8vIEV2ZXJ5dGhpbmcgZWxzZVxudGV4dGFyZWEsXG5pbnB1dFt0eXBlPVwidGV4dFwiXSxcbmlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcbmlucHV0W3R5cGU9XCJkYXRldGltZVwiXSxcbmlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbmlucHV0W3R5cGU9XCJkYXRlXCJdLFxuaW5wdXRbdHlwZT1cIm1vbnRoXCJdLFxuaW5wdXRbdHlwZT1cInRpbWVcIl0sXG5pbnB1dFt0eXBlPVwid2Vla1wiXSxcbmlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG5pbnB1dFt0eXBlPVwiZW1haWxcIl0sXG5pbnB1dFt0eXBlPVwidXJsXCJdLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbmlucHV0W3R5cGU9XCJ0ZWxcIl0sXG5pbnB1dFt0eXBlPVwiY29sb3JcIl0sXG4udW5lZGl0YWJsZS1pbnB1dCB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBpbnB1dEJhY2tncm91bmQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIEBpbnB1dEJvcmRlcjtcbiAgLmJveC1zaGFkb3coaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSkpO1xuICBAdHJhbnNpdGlvbjogYm9yZGVyIGxpbmVhciAuMnMsIGJveC1zaGFkb3cgbGluZWFyIC4ycztcbiAgLnRyYW5zaXRpb24oQHRyYW5zaXRpb24pO1xuXG4gIC8vIEZvY3VzIHN0YXRlXG4gICY6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSg4MiwxNjgsMjM2LC44KTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIG91dGxpbmU6IHRoaW4gZG90dGVkIFxcOTsgLyogSUU2LTkgKi9cbiAgICAuYm94LXNoYWRvdyh+XCJpbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1KSwgMCAwIDhweCByZ2JhKDgyLDE2OCwyMzYsLjYpXCIpO1xuICB9XG59XG5cbi8vIFBvc2l0aW9uIHJhZGlvcyBhbmQgY2hlY2tib3hlcyBiZXR0ZXJcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIG1hcmdpbjogM3B4IDA7XG4gICptYXJnaW4tdG9wOiAwOyAvKiBJRTcgKi9cbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4vLyBSZXNldCB3aWR0aCBvZiBpbnB1dCBidXR0b25zLCByYWRpb3MsIGNoZWNrYm94ZXNcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgd2lkdGg6IGF1dG87IC8vIE92ZXJyaWRlIG9mIGdlbmVyaWMgaW5wdXQgc2VsZWN0b3Jcbn1cblxuLy8gTWFrZSB1bmVkaXRhYmxlIHRleHRhcmVhcyBiZWhhdmUgbGlrZSBhIHRleHRhcmVhXG4udW5lZGl0YWJsZS10ZXh0YXJlYSB7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8vIFNldCB0aGUgaGVpZ2h0IG9mIHNlbGVjdCBhbmQgZmlsZSBjb250cm9scyB0byBtYXRjaCB0ZXh0IGlucHV0c1xuc2VsZWN0LFxuaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xuICBoZWlnaHQ6IDI4cHg7IC8qIEluIElFNywgdGhlIGhlaWdodCBvZiB0aGUgc2VsZWN0IGVsZW1lbnQgY2Fubm90IGJlIGNoYW5nZWQgYnkgaGVpZ2h0LCBvbmx5IGZvbnQtc2l6ZSAqL1xuICAqbWFyZ2luLXRvcDogNHB4OyAvKiBGb3IgSUU3LCBhZGQgdG9wIG1hcmdpbiB0byBhbGlnbiBzZWxlY3Qgd2l0aCBsYWJlbHMgKi9cbiAgbGluZS1oZWlnaHQ6IDI4cHg7XG59XG5cbi8vIE1ha2Ugc2VsZWN0IGVsZW1lbnRzIG9iZXkgaGVpZ2h0IGJ5IGFwcGx5aW5nIGEgYm9yZGVyXG5zZWxlY3Qge1xuICB3aWR0aDogMjIwcHg7IC8vIGRlZmF1bHQgaW5wdXQgd2lkdGggKyAxMHB4IG9mIHBhZGRpbmcgdGhhdCBkb2Vzbid0IGdldCBhcHBsaWVkXG4gIGJvcmRlcjogMXB4IHNvbGlkICNiYmI7XG4gIC5ib3JkZXItcmFkaXVzKDApO1xufVxuXG4vLyBNYWtlIG11bHRpcGxlIHNlbGVjdCBlbGVtZW50cyBoZWlnaHQgbm90IGZpeGVkXG5zZWxlY3RbbXVsdGlwbGVdLFxuc2VsZWN0W3NpemVdIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vLyBGb2N1cyBmb3Igc2VsZWN0LCBmaWxlLCByYWRpbywgYW5kIGNoZWNrYm94XG5zZWxlY3Q6Zm9jdXMsXG5pbnB1dFt0eXBlPVwiZmlsZVwiXTpmb2N1cyxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXTpmb2N1cyxcbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXTpmb2N1cyB7XG4gIC50YWItZm9jdXMoKTtcbn1cblxuXG5cbi8vIENIRUNLQk9YRVMgJiBSQURJT1Ncbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gSW5kZW50IHRoZSBsYWJlbHMgdG8gcG9zaXRpb24gcmFkaW9zL2NoZWNrYm94ZXMgYXMgaGFuZ2luZ1xuLnJhZGlvLFxuLmNoZWNrYm94IHtcbiAgbWluLWhlaWdodDogMThweDsgLy8gY2xlYXIgdGhlIGZsb2F0aW5nIGlucHV0IGlmIHRoZXJlIGlzIG5vIGxhYmVsIHRleHRcbiAgcGFkZGluZy1sZWZ0OiAxOHB4O1xufVxuLnJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbi5jaGVja2JveCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLWxlZnQ6IC0xOHB4O1xufVxuXG4vLyBNb3ZlIHRoZSBvcHRpb25zIGxpc3QgZG93biB0byBhbGlnbiB3aXRoIGxhYmVsc1xuLmNvbnRyb2xzID4gLnJhZGlvOmZpcnN0LWNoaWxkLFxuLmNvbnRyb2xzID4gLmNoZWNrYm94OmZpcnN0LWNoaWxkIHtcbiAgcGFkZGluZy10b3A6IDVweDsgLy8gaGFzIHRvIGJlIHBhZGRpbmcgYmVjYXVzZSBtYXJnaW4gY29sbGFzcGVzXG59XG5cbi8vIFJhZGlvcyBhbmQgY2hlY2tib3hlcyBvbiBzYW1lIGxpbmVcbi8vIFRPRE8gdjM6IENvbnZlcnQgLmlubGluZSB0byAuY29udHJvbC1pbmxpbmVcbi5yYWRpby5pbmxpbmUsXG4uY2hlY2tib3guaW5saW5lIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nLXRvcDogNXB4O1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLnJhZGlvLmlubGluZSArIC5yYWRpby5pbmxpbmUsXG4uY2hlY2tib3guaW5saW5lICsgLmNoZWNrYm94LmlubGluZSB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4OyAvLyBzcGFjZSBvdXQgY29uc2VjdXRpdmUgaW5saW5lIGNvbnRyb2xzXG59XG5cblxuXG4vLyBJTlBVVCBTSVpFU1xuLy8gLS0tLS0tLS0tLS1cblxuLy8gR2VuZXJhbCBjbGFzc2VzIGZvciBxdWljayBzaXplc1xuLmlucHV0LW1pbmkgICAgICAgeyB3aWR0aDogNjBweDsgfVxuLmlucHV0LXNtYWxsICAgICAgeyB3aWR0aDogOTBweDsgfVxuLmlucHV0LW1lZGl1bSAgICAgeyB3aWR0aDogMTUwcHg7IH1cbi5pbnB1dC1sYXJnZSAgICAgIHsgd2lkdGg6IDIxMHB4OyB9XG4uaW5wdXQteGxhcmdlICAgICB7IHdpZHRoOiAyNzBweDsgfVxuLmlucHV0LXh4bGFyZ2UgICAgeyB3aWR0aDogNTMwcHg7IH1cblxuLy8gR3JpZCBzdHlsZSBpbnB1dCBzaXplc1xuaW5wdXQsXG5zZWxlY3QsXG50ZXh0YXJlYSxcbi51bmVkaXRhYmxlLWlucHV0LFxuLy8gUmVkZWNsYXJlIHNpbmNlIHRoZSBmbHVpZCByb3cgY2xhc3MgaXMgbW9yZSBzcGVjaWZpY1xuLnJvdy1mbHVpZCBpbnB1dCxcbi5yb3ctZmx1aWQgc2VsZWN0LFxuLnJvdy1mbHVpZCB0ZXh0YXJlYSxcbi5yb3ctZmx1aWQgLnVuZWRpdGFibGUtaW5wdXQge1xuICAmLnNwYW4xLFxuICAmLnNwYW4yLFxuICAmLnNwYW4zLFxuICAmLnNwYW40LFxuICAmLnNwYW41LFxuICAmLnNwYW42LFxuICAmLnNwYW43LFxuICAmLnNwYW44LFxuICAmLnNwYW45LFxuICAmLnNwYW4xMCxcbiAgJi5zcGFuMTEsXG4gICYuc3BhbjEyIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuLy8gRW5zdXJlIGlucHV0LXByZXBlbmQvYXBwZW5kIG5ldmVyIHdyYXBzXG4uaW5wdXQtYXBwZW5kIGlucHV0LFxuLmlucHV0LWFwcGVuZCAudW5lZGl0YWJsZS1pbnB1dCxcbi5pbnB1dC1wcmVwZW5kIGlucHV0LFxuLmlucHV0LXByZXBlbmQgLnVuZWRpdGFibGUtaW5wdXQge1xuICAmLnNwYW4xLFxuICAmLnNwYW4yLFxuICAmLnNwYW4zLFxuICAmLnNwYW40LFxuICAmLnNwYW41LFxuICAmLnNwYW42LFxuICAmLnNwYW43LFxuICAmLnNwYW44LFxuICAmLnNwYW45LFxuICAmLnNwYW4xMCxcbiAgJi5zcGFuMTEsXG4gICYuc3BhbjEyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbn1cblxuLnJvdy1mbHVpZCAuaW5wdXQtcHJlcGVuZCxcbi5yb3ctZmx1aWQgLmlucHV0LWFwcGVuZCB7XG4gIC5zcGFuMSxcbiAgLnNwYW4yLFxuICAuc3BhbjMsXG4gIC5zcGFuNCxcbiAgLnNwYW41LFxuICAuc3BhbjYsXG4gIC5zcGFuNyxcbiAgLnNwYW44LFxuICAuc3BhbjksXG4gIC5zcGFuMTAsXG4gIC5zcGFuMTEsXG4gIC5zcGFuMTIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuXG5cblxuLy8gR1JJRCBTSVpJTkcgRk9SIElOUFVUU1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4jZ3JpZCA+IC5pbnB1dChAZmx1aWRHcmlkQ29sdW1uV2lkdGgsIEBmbHVpZEdyaWRHdXR0ZXJXaWR0aCk7XG5cblxuXG4vLyBESVNBQkxFRCBTVEFURVxuLy8gLS0tLS0tLS0tLS0tLS1cblxuLy8gRGlzYWJsZWQgYW5kIHJlYWQtb25seSBpbnB1dHNcbmlucHV0W2Rpc2FibGVkXSxcbnNlbGVjdFtkaXNhYmxlZF0sXG50ZXh0YXJlYVtkaXNhYmxlZF0sXG5pbnB1dFtyZWFkb25seV0sXG5zZWxlY3RbcmVhZG9ubHldLFxudGV4dGFyZWFbcmVhZG9ubHldIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGlucHV0RGlzYWJsZWRCYWNrZ3JvdW5kO1xuICBib3JkZXItY29sb3I6ICNkZGQ7XG59XG4vLyBFeHBsaWNpdGx5IHJlc2V0IHRoZSBjb2xvcnMgaGVyZVxuaW5wdXRbdHlwZT1cInJhZGlvXCJdW2Rpc2FibGVkXSxcbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXVtkaXNhYmxlZF0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl1bcmVhZG9ubHldLFxuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdW3JlYWRvbmx5XSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG5cblxuXG4vLyBGT1JNIEZJRUxEIEZFRURCQUNLIFNUQVRFU1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gV2FybmluZ1xuLmNvbnRyb2wtZ3JvdXAud2FybmluZyB7XG4gIC5mb3JtRmllbGRTdGF0ZShAd2FybmluZ1RleHQsIEB3YXJuaW5nVGV4dCwgQHdhcm5pbmdCYWNrZ3JvdW5kKTtcbn1cbi8vIEVycm9yXG4uY29udHJvbC1ncm91cC5lcnJvciB7XG4gIC5mb3JtRmllbGRTdGF0ZShAZXJyb3JUZXh0LCBAZXJyb3JUZXh0LCBAZXJyb3JCYWNrZ3JvdW5kKTtcbn1cbi8vIFN1Y2Nlc3Ncbi5jb250cm9sLWdyb3VwLnN1Y2Nlc3Mge1xuICAuZm9ybUZpZWxkU3RhdGUoQHN1Y2Nlc3NUZXh0LCBAc3VjY2Vzc1RleHQsIEBzdWNjZXNzQmFja2dyb3VuZCk7XG59XG5cbi8vIEhUTUw1IGludmFsaWQgc3RhdGVzXG4vLyBTaGFyZXMgc3R5bGVzIHdpdGggdGhlIC5jb250cm9sLWdyb3VwLmVycm9yIGFib3ZlXG5pbnB1dDpmb2N1czpyZXF1aXJlZDppbnZhbGlkLFxudGV4dGFyZWE6Zm9jdXM6cmVxdWlyZWQ6aW52YWxpZCxcbnNlbGVjdDpmb2N1czpyZXF1aXJlZDppbnZhbGlkIHtcbiAgY29sb3I6ICNiOTRhNDg7XG4gIGJvcmRlci1jb2xvcjogI2VlNWY1YjtcbiAgJjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oI2VlNWY1YiwgMTAlKTtcbiAgICAuYm94LXNoYWRvdygwIDAgNnB4IGxpZ2h0ZW4oI2VlNWY1YiwgMjAlKSk7XG4gIH1cbn1cblxuXG5cbi8vIEZPUk0gQUNUSU9OU1xuLy8gLS0tLS0tLS0tLS0tXG5cbi5mb3JtLWFjdGlvbnMge1xuICBwYWRkaW5nOiAoQGJhc2VMaW5lSGVpZ2h0IC0gMSkgMjBweCBAYmFzZUxpbmVIZWlnaHQ7XG4gIG1hcmdpbi10b3A6IEBiYXNlTGluZUhlaWdodDtcbiAgbWFyZ2luLWJvdHRvbTogQGJhc2VMaW5lSGVpZ2h0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAZm9ybUFjdGlvbnNCYWNrZ3JvdW5kO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgLmNsZWFyZml4KCk7IC8vIEFkZGluZyBjbGVhcmZpeCB0byBhbGxvdyBmb3IgLnB1bGwtcmlnaHQgYnV0dG9uIGNvbnRhaW5lcnNcbn1cblxuLy8gRm9yIHRleHQgdGhhdCBuZWVkcyB0byBhcHBlYXIgYXMgYW4gaW5wdXQgYnV0IHNob3VsZCBub3QgYmUgYW4gaW5wdXRcbi51bmVkaXRhYmxlLWlucHV0IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgLy8gcHJldmVudCB0ZXh0IGZyb20gd3JhcHBpbmcsIGJ1dCBzdGlsbCBjdXQgaXQgb2ZmIGxpa2UgYW4gaW5wdXQgZG9lc1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAaW5wdXRCYWNrZ3JvdW5kO1xuICBib3JkZXItY29sb3I6ICNlZWU7XG4gIC5ib3gtc2hhZG93KGluc2V0IDAgMXB4IDJweCByZ2JhKDAsMCwwLC4wMjUpKTtcbn1cblxuLy8gUGxhY2Vob2xkZXIgdGV4dCBnZXRzIHNwZWNpYWwgc3R5bGVzOyBjYW5ub3QgYmUgYnVuZGxlZCB0b2dldGhlciB0aG91Z2ggZm9yIHNvbWUgcmVhc29uXG4ucGxhY2Vob2xkZXIoKTtcblxuXG5cbi8vIEhFTFAgVEVYVFxuLy8gLS0tLS0tLS0tXG5cbi5oZWxwLWJsb2NrLFxuLmhlbHAtaW5saW5lIHtcbiAgY29sb3I6IEBncmF5OyAvLyBsaWdodGVuIHRoZSB0ZXh0IHNvbWUgZm9yIGNvbnRyYXN0XG59XG5cbi5oZWxwLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7IC8vIGFjY291bnQgZm9yIGFueSBlbGVtZW50IHVzaW5nIGhlbHAtYmxvY2tcbiAgbWFyZ2luLWJvdHRvbTogQGJhc2VMaW5lSGVpZ2h0IC8gMjtcbn1cblxuLmhlbHAtaW5saW5lIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAuaWU3LWlubGluZS1ibG9jaygpO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBwYWRkaW5nLWxlZnQ6IDVweDtcbn1cblxuXG5cbi8vIElOUFVUIEdST1VQU1xuLy8gLS0tLS0tLS0tLS0tXG5cbi8vIEFsbG93IHVzIHRvIHB1dCBzeW1ib2xzIGFuZCB0ZXh0IHdpdGhpbiB0aGUgaW5wdXQgZmllbGQgZm9yIGEgY2xlYW5lciBsb29rXG4uaW5wdXQtcHJlcGVuZCxcbi5pbnB1dC1hcHBlbmQge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIGlucHV0LFxuICBzZWxlY3QsXG4gIC51bmVkaXRhYmxlLWlucHV0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8vIHBsYWNlZCBoZXJlIGJ5IGRlZmF1bHQgc28gdGhhdCBvbiA6Zm9jdXMgd2UgY2FuIHBsYWNlIHRoZSBpbnB1dCBhYm92ZSB0aGUgLmFkZC1vbiBmb3IgZnVsbCBib3JkZXIgYW5kIGJveC1zaGFkb3cgZ29vZG5lc3NcbiAgICBtYXJnaW4tYm90dG9tOiAwOyAvLyBwcmV2ZW50IGJvdHRvbSBtYXJnaW4gZnJvbSBzY3Jld2luZyB1cCBhbGlnbm1lbnQgaW4gc3RhY2tlZCBmb3Jtc1xuICAgICptYXJnaW4tbGVmdDogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIC8vIE1ha2UgaW5wdXQgb24gdG9wIHdoZW4gZm9jdXNlZCBzbyBibHVlIGJvcmRlciBhbmQgc2hhZG93IGFsd2F5cyBzaG93XG4gICAgJjpmb2N1cyB7XG4gICAgICB6LWluZGV4OiAyO1xuICAgIH1cbiAgfVxuICAudW5lZGl0YWJsZS1pbnB1dCB7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6ICNjY2M7XG4gIH1cbiAgLmFkZC1vbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogQGJhc2VMaW5lSGVpZ2h0O1xuICAgIG1pbi13aWR0aDogMTZweDtcbiAgICBwYWRkaW5nOiA0cHggNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IEBiYXNlTGluZUhlaWdodDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgQHdoaXRlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGdyYXlMaWdodGVyO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIH1cbiAgLmFkZC1vbixcbiAgLmJ0biB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gIH1cbiAgLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihAZ3JlZW4sIDMwKTtcbiAgICBib3JkZXItY29sb3I6IEBncmVlbjtcbiAgfVxufVxuLmlucHV0LXByZXBlbmQge1xuICAuYWRkLW9uLFxuICAuYnRuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xcHg7XG4gIH1cbiAgLmFkZC1vbjpmaXJzdC1jaGlsZCxcbiAgLmJ0bjpmaXJzdC1jaGlsZCB7XG4gIH1cbn1cbi5pbnB1dC1hcHBlbmQge1xuICBpbnB1dCxcbiAgc2VsZWN0LFxuICAudW5lZGl0YWJsZS1pbnB1dCB7XG4gIH1cbiAgLnVuZWRpdGFibGUtaW5wdXQge1xuICAgIGJvcmRlci1yaWdodC1jb2xvcjogI2NjYztcbiAgICBib3JkZXItbGVmdC1jb2xvcjogI2VlZTtcbiAgfVxuICAuYWRkLW9uOmxhc3QtY2hpbGQsXG4gIC5idG46bGFzdC1jaGlsZCB7XG4gIH1cbn1cblxuLy8gQ29tbW9uIHByb3BlcnRpZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG5cbi5mb3JtLXNlYXJjaCxcbi5mb3JtLWlubGluZSxcbi5mb3JtLWhvcml6b250YWwge1xuICBpbnB1dCxcbiAgdGV4dGFyZWEsXG4gIHNlbGVjdCxcbiAgLmhlbHAtaW5saW5lLFxuICAudW5lZGl0YWJsZS1pbnB1dCxcbiAgLmlucHV0LXByZXBlbmQsXG4gIC5pbnB1dC1hcHBlbmQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAuaWU3LWlubGluZS1ibG9jaygpO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbiAgLy8gUmUtaGlkZSBoaWRkZW4gZWxlbWVudHMgZHVlIHRvIHNwZWNpZml0eVxuICAuaGlkZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLmZvcm0tc2VhcmNoIGxhYmVsLFxuLmZvcm0taW5saW5lIGxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLy8gUmVtb3ZlIG1hcmdpbiBmb3IgaW5wdXQtcHJlcGVuZC8tYXBwZW5kXG4uZm9ybS1zZWFyY2ggLmlucHV0LWFwcGVuZCxcbi5mb3JtLWlubGluZSAuaW5wdXQtYXBwZW5kLFxuLmZvcm0tc2VhcmNoIC5pbnB1dC1wcmVwZW5kLFxuLmZvcm0taW5saW5lIC5pbnB1dC1wcmVwZW5kIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi8vIElubGluZSBjaGVja2JveC9yYWRpbyBsYWJlbHMgKHJlbW92ZSBwYWRkaW5nIG9uIGxlZnQpXG4uZm9ybS1zZWFyY2ggLnJhZGlvLFxuLmZvcm0tc2VhcmNoIC5jaGVja2JveCxcbi5mb3JtLWlubGluZSAucmFkaW8sXG4uZm9ybS1pbmxpbmUgLmNoZWNrYm94IHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLy8gUmVtb3ZlIGZsb2F0IGFuZCBtYXJnaW4sIHNldCB0byBpbmxpbmUtYmxvY2tcbi5mb3JtLXNlYXJjaCAucmFkaW8gaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuLmZvcm0tc2VhcmNoIC5jaGVja2JveCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG4uZm9ybS1pbmxpbmUgLnJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbi5mb3JtLWlubGluZSAuY2hlY2tib3ggaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogM3B4O1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuXG4vLyBNYXJnaW4gdG8gc3BhY2Ugb3V0IGZpZWxkc2V0c1xuLmNvbnRyb2wtZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiBAYmFzZUxpbmVIZWlnaHQgLyAyO1xufVxuXG4vLyBMZWdlbmQgY29sbGFwc2VzIG1hcmdpbiwgc28gbmV4dCBlbGVtZW50IGlzIHJlc3BvbnNpYmxlIGZvciBzcGFjaW5nXG5sZWdlbmQgKyAuY29udHJvbC1ncm91cCB7XG4gIG1hcmdpbi10b3A6IEBiYXNlTGluZUhlaWdodDtcbiAgLXdlYmtpdC1tYXJnaW4tdG9wLWNvbGxhcHNlOiBzZXBhcmF0ZTtcbn1cblxuLy8gSG9yaXpvbnRhbC1zcGVjaWZpYyBzdHlsZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5mb3JtLWhvcml6b250YWwge1xuICAvLyBJbmNyZWFzZSBzcGFjaW5nIGJldHdlZW4gZ3JvdXBzXG4gIC5jb250cm9sLWdyb3VwIHtcbiAgICBtYXJnaW4tYm90dG9tOiBAYmFzZUxpbmVIZWlnaHQ7XG4gICAgLmNsZWFyZml4KCk7XG4gIH1cbiAgLy8gRmxvYXQgdGhlIGxhYmVscyBsZWZ0XG4gIC5jb250cm9sLWxhYmVsIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTQwcHg7XG4gICAgcGFkZGluZy10b3A6IDVweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxuICAvLyBNb3ZlIG92ZXIgYWxsIGlucHV0IGNvbnRyb2xzIGFuZCBjb250ZW50XG4gIC5jb250cm9scyB7XG4gICAgLy8gU3VwZXIgamFuayBJRTcgZml4IHRvIGVuc3VyZSB0aGUgaW5wdXRzIGluIC5pbnB1dC1hcHBlbmQgYW5kIGlucHV0LXByZXBlbmRcbiAgICAvLyBkbyBub3QgaW5oZXJpdCB0aGUgbWFyZ2luIG9mIHRoZSBwYXJlbnQsIGluIHRoaXMgY2FzZSAuY29udHJvbHNcbiAgICAqZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICpwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDE2MHB4O1xuICAgICptYXJnaW4tbGVmdDogMDtcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICpwYWRkaW5nLWxlZnQ6IDE2MHB4O1xuICAgIH1cbiAgfVxuICAvLyBSZW1vdmUgYm90dG9tIG1hcmdpbiBvbiBibG9jayBsZXZlbCBoZWxwIHRleHQgc2luY2UgdGhhdCBpcyBhY2NvdW50ZWQgZm9yIG9uIC5jb250cm9sLWdyb3VwXG4gIC5oZWxwLWJsb2NrIHtcbiAgICBtYXJnaW4tdG9wOiBAYmFzZUxpbmVIZWlnaHQgLyAyO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbiAgLy8gTW92ZSBvdmVyIGJ1dHRvbnMgaW4gLmZvcm0tYWN0aW9ucyB0byBhbGlnbiB3aXRoIC5jb250cm9sc1xuICAuZm9ybS1hY3Rpb25zIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2MHB4O1xuICB9XG59XG5cbi8qKlxuICogRml4ZXMgdG8gR29vZ2xlIEN1c3RvbSBTZWFyY2hcbiAqL1xuLmdjc19jb250YWluZXIge1xuICAvL291dGVyIHdyYXBwZXJcbiAgLmdzYy1jb250cm9sLWNzZSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgcGFkZGluZzogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IG5vbmU7XG4gIH1cbiAgLmdzYy1zZWFyY2gtYnV0dG9uIHtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gIH1cblxuXG4gIC5nc2Mtc2VhcmNoLWJveCxcbiAgLmdzYy1yZXN1bHRzLXdyYXBwZXItb3ZlcmxheSB7XG4gICAgLmdzYy1pbnB1dCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA1cHggIWltcG9ydGFudDtcbiAgICB9XG4gICAgdGFibGUge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICAgIHRkIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAmLmdzaWJfYSB7XG4gICAgICAgIHBhZGRpbmc6IDNweCA2cHggMCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgICB0ZC5nc2Mtc2VhcmNoLWJ1dHRvbiB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICB9XG4gICAgaW5wdXRbdHlwZT0ndGV4dCddIHtcbiAgICAgIC5ib3gtc2hhZG93KG5vbmUpO1xuICAgIH1cbiAgICBpbnB1dC5nc2Mtc2VhcmNoLWJ1dHRvbi12MiB7XG4gICAgICBwYWRkaW5nOiA2cHggMTVweCAhaW1wb3J0YW50O1xuICAgICAgaGVpZ2h0OiAxM3B4ICFpbXBvcnRhbnQ7XG4gICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgICAjZ3JhZGllbnQgPiAudmVydGljYWwoIGxpZ2h0ZW4oQGJhc2VDb2xvciwgMiUpLCBkYXJrZW4oQGJhc2VDb2xvciwgMiUpICk7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgI2dyYWRpZW50ID4gLnZlcnRpY2FsKGRhcmtlbihAYmFzZUNvbG9yLCAyJSksIGxpZ2h0ZW4oQGJhc2VDb2xvciwgMiUpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEJVVFRPTiBTVFlMRVNcbi8vIC0tLS0tLS0tLS0tLS1cblxuLy8gQmFzZSBzdHlsZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gQ29yZVxuLy8gdXNlZCBieSAuZXAtYmxvY2stYnV0dG9uXG4uYnRuLWNvcmUtcHJvcGVydGllcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogNHB4IDEwcHg7XG4gIGZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZTtcbiAgbGluZS1oZWlnaHQ6IEBiYXNlTGluZUhlaWdodDtcbiAgKmxpbmUtaGVpZ2h0OiAyMHB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG4uYnRuIHtcbiAgLmJ0bi1jb3JlLXByb3BlcnRpZXM7XG4gIG1hcmdpbi1ib3R0b206IDA7IC8vIEZvciBpbnB1dC5idG5cbiAgY29sb3I6IEBncmF5RGFyaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IEBncmF5TGlnaHRlcjtcbn1cbi8vIEhvdmVyIHN0YXRlXG4uYnRuOmhvdmVyIHtcbiAgY29sb3I6IEBncmF5RGFyaztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQHdoaXRlLCAxMCUpO1xuICAqYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKEB3aGl0ZSwgMTUlKTsgLyogQnV0dG9ucyBpbiBJRTcgZG9uJ3QgZ2V0IGJvcmRlcnMsIHNvIGRhcmtlbiBvbiBob3ZlciAqL1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xNXB4O1xuXG4gIC8vIHRyYW5zaXRpb24gaXMgb25seSB3aGVuIGdvaW5nIHRvIGhvdmVyLCBvdGhlcndpc2UgdGhlIGJhY2tncm91bmRcbiAgLy8gYmVoaW5kIHRoZSBncmFkaWVudCAodGhlcmUgZm9yIElFPD05IGZhbGxiYWNrKSBnZXRzIG1pc21hdGNoZWRcbiAgLnRyYW5zaXRpb24oYmFja2dyb3VuZC1wb3NpdGlvbiAuMXMgbGluZWFyKTtcbn1cbi8vIEZvY3VzIHN0YXRlIGZvciBrZXlib2FyZCBhbmQgYWNjZXNzaWJpbGl0eVxuLmJ0bjpmb2N1cyB7XG4gIC50YWItZm9jdXMoKTtcbn1cbi5idG4uYWN0aXZlLFxuLmJ0bjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQHdoaXRlLCAxMCUpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQHdoaXRlLCAxNSUpIGUoXCJcXDlcIik7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIG91dGxpbmU6IDA7XG59XG4uYnRuLmRpc2FibGVkLFxuLmJ0bltkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAd2hpdGUsIDEwJSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIC5vcGFjaXR5KDY1KTtcbiAgLmJveC1zaGFkb3cobm9uZSk7XG59XG5cblxuLy8gQnV0dG9uIFNpemVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBMYXJnZVxuLmJ0bi1sYXJnZSB7XG4gIHBhZGRpbmc6IDlweCAxNHB4O1xuICBmb250LXNpemU6IEBiYXNlRm9udFNpemUgKyAycHg7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG4uYnRuLWxhcmdlIFtjbGFzc149XCJpY29uLVwiXSB7XG4gIG1hcmdpbi10b3A6IDFweDtcbn1cblxuLy8gU21hbGxcbi5idG4tc21hbGwge1xuICBwYWRkaW5nOiA1cHggOXB4O1xuICBmb250LXNpemU6IEBiYXNlRm9udFNpemUgLSAycHg7XG4gIGxpbmUtaGVpZ2h0OiBAYmFzZUxpbmVIZWlnaHQgLSAycHg7XG59XG4uYnRuLXNtYWxsIFtjbGFzc149XCJpY29uLVwiXSB7XG4gIG1hcmdpbi10b3A6IC0xcHg7XG59XG5cbi8vIE1pbmlcbi5idG4tbWluaSB7XG4gIHBhZGRpbmc6IDJweCA2cHg7XG4gIGZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZSAtIDJweDtcbiAgbGluZS1oZWlnaHQ6IEBiYXNlTGluZUhlaWdodCAtIDRweDtcbn1cblxuXG4vLyBBbHRlcm5hdGUgYnV0dG9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gU2V0IHRleHQgY29sb3Jcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5idG4tcHJpbWFyeS5hY3RpdmUge1xuICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwuNzUpO1xufVxuXG4vLyBTZXQgdGhlIGJhY2tncm91bmRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uYnRuIHtcbiAgLy8gcmVzZXQgaGVyZSBhcyBvZiAyLjAuMyBkdWUgdG8gUmVjZXNzIHByb3BlcnR5IG9yZGVyXG4gIGJvcmRlci1jb2xvcjogI2NjYztcbiAgYmFja2dyb3VuZC1jb2xvcjogQGdyYXlMaWdodGVyO1xufVxuLmJ0bi1wcmltYXJ5LFxuLmJ0bi1wcmltYXJ5OmhvdmVyIHtcbiAgY29sb3I6IEB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGJhc2VDb2xvcjtcbn1cblxuLmJ0bi1wcmltYXJ5OmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKEBiYXNlQ29sb3IsIDEwJSk7XG4gICpiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oQGJhc2VDb2xvciwgMTUlKTsgLyogQnV0dG9ucyBpbiBJRTcgZG9uJ3QgZ2V0IGJvcmRlcnMsIHNvIGRhcmtlbiBvbiBob3ZlciAqL1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xNXB4O1xuXG4gIC8vIHRyYW5zaXRpb24gaXMgb25seSB3aGVuIGdvaW5nIHRvIGhvdmVyLCBvdGhlcndpc2UgdGhlIGJhY2tncm91bmRcbiAgLy8gYmVoaW5kIHRoZSBncmFkaWVudCAodGhlcmUgZm9yIElFPD05IGZhbGxiYWNrKSBnZXRzIG1pc21hdGNoZWRcbiAgLnRyYW5zaXRpb24oYmFja2dyb3VuZC1wb3NpdGlvbiAuMXMgbGluZWFyKTtcbn1cbiIsIi8vXG4vLyBUYWJsZXMubGVzc1xuLy8gVGFibGVzIGZvciwgeW91IGd1ZXNzZWQgaXQsIHRhYnVsYXIgZGF0YVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIEJBU0UgVEFCTEVTXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuXG50YWJsZSB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IEB0YWJsZUJhY2tncm91bmQ7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xuICBib3JkZXI6IDFweCBzb2xpZCBAdGFibGVCb3JkZXI7XG4gIGJvcmRlci1sZWZ0OiAwO1xuICBtYXJnaW4tYm90dG9tOiBAYmFzZUxpbmVIZWlnaHQ7XG4gIC8vIENlbGxzXG4gIHRoLFxuICB0ZCB7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiBAYmFzZUxpbmVIZWlnaHQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBAdGFibGVCb3JkZXI7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBAdGFibGVCb3JkZXI7XG4gIH1cbiAgdGgge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG4gIC8vIEJvdHRvbSBhbGlnbiBmb3IgY29sdW1uIGhlYWRpbmdzXG4gIHRoZWFkIHRoIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICB9XG4gIC8vIEFjY291bnQgZm9yIG11bHRpcGxlIHRib2R5IGluc3RhbmNlc1xuICB0Ym9keSArIHRib2R5IHtcbiAgICBib3JkZXItdG9wOiAycHggc29saWQgQHRhYmxlQm9yZGVyO1xuICB9XG4gIC8vIFByZXZlbnQgYSBkb3VibGUgYm9yZGVyXG4gIGNhcHRpb24gKyB0aGVhZCB0cjpmaXJzdC1jaGlsZCB0aCxcbiAgY2FwdGlvbiArIHRoZWFkIHRyOmZpcnN0LWNoaWxkIHRkLFxuICBjYXB0aW9uICsgdGJvZHkgdHI6Zmlyc3QtY2hpbGQgdGgsXG4gIGNhcHRpb24gKyB0Ym9keSB0cjpmaXJzdC1jaGlsZCB0ZCxcbiAgY29sZ3JvdXAgKyB0aGVhZCB0cjpmaXJzdC1jaGlsZCB0aCxcbiAgY29sZ3JvdXAgKyB0aGVhZCB0cjpmaXJzdC1jaGlsZCB0ZCxcbiAgY29sZ3JvdXAgKyB0Ym9keSB0cjpmaXJzdC1jaGlsZCB0aCxcbiAgY29sZ3JvdXAgKyB0Ym9keSB0cjpmaXJzdC1jaGlsZCB0ZCxcbiAgdGhlYWQ6Zmlyc3QtY2hpbGQgdHI6Zmlyc3QtY2hpbGQgdGgsXG4gIHRoZWFkOmZpcnN0LWNoaWxkIHRyOmZpcnN0LWNoaWxkIHRkLFxuICB0Ym9keTpmaXJzdC1jaGlsZCB0cjpmaXJzdC1jaGlsZCB0aCxcbiAgdGJvZHk6Zmlyc3QtY2hpbGQgdHI6Zmlyc3QtY2hpbGQgdGQge1xuICAgIGJvcmRlci10b3A6IDA7XG4gIH1cbn1cblxuLy8gQ09OREVOU0VEIFRBQkxFIFcvIEhBTEYgUEFERElOR1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4udGFibGUtY29uZGVuc2VkIHtcbiAgdGgsXG4gIHRkIHtcbiAgICBwYWRkaW5nOiA0cHggNXB4O1xuICB9XG59XG5cbi8vIE5PIEJPUkRFUiBWRVJTSU9OXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbi50YWJsZS1ub2JvcmRlciB7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGgsXG4gIHRkIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gIH1cbn1cblxuLy8gWkVCUkEtU1RSSVBJTkdcbi8vIC0tLS0tLS0tLS0tLS0tXG5cbi8vIERlZmF1bHQgemVicmEtc3RyaXBlIHN0eWxlcyAoYWx0ZXJuYXRpbmcgZ3JheSBhbmQgdHJhbnNwYXJlbnQgYmFja2dyb3VuZHMpXG4udGFibGUtc3RyaXBlZCB7XG4gIHRib2R5IHtcbiAgICB0cjpudGgtY2hpbGQob2RkKSB0ZCxcbiAgICB0cjpudGgtY2hpbGQob2RkKSB0aCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAdGFibGVCYWNrZ3JvdW5kQWNjZW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIEhPVkVSIEVGRkVDVFxuLy8gLS0tLS0tLS0tLS0tXG4vLyBQbGFjZWQgaGVyZSBzaW5jZSBpdCBoYXMgdG8gY29tZSBhZnRlciB0aGUgcG90ZW50aWFsIHplYnJhIHN0cmlwaW5nXG4udGFibGUge1xuICB0Ym9keSB0cjpob3ZlciB0ZCxcbiAgdGJvZHkgdHI6aG92ZXIgdGgge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEB0YWJsZUJhY2tncm91bmRIb3ZlcjtcbiAgfVxufVxuXG5cbi8vIFRBQkxFIENFTEwgU0laSU5HXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBDaGFuZ2UgdGhlIGNvbHVtbnNcbnRhYmxlIHtcbiAgLnNwYW4xICAgICB7IC50YWJsZUNvbHVtbnMoMSk7IH1cbiAgLnNwYW4yICAgICB7IC50YWJsZUNvbHVtbnMoMik7IH1cbiAgLnNwYW4zICAgICB7IC50YWJsZUNvbHVtbnMoMyk7IH1cbiAgLnNwYW40ICAgICB7IC50YWJsZUNvbHVtbnMoNCk7IH1cbiAgLnNwYW41ICAgICB7IC50YWJsZUNvbHVtbnMoNSk7IH1cbiAgLnNwYW42ICAgICB7IC50YWJsZUNvbHVtbnMoNik7IH1cbiAgLnNwYW43ICAgICB7IC50YWJsZUNvbHVtbnMoNyk7IH1cbiAgLnNwYW44ICAgICB7IC50YWJsZUNvbHVtbnMoOCk7IH1cbiAgLnNwYW45ICAgICB7IC50YWJsZUNvbHVtbnMoOSk7IH1cbiAgLnNwYW4xMCAgICB7IC50YWJsZUNvbHVtbnMoMTApOyB9XG4gIC5zcGFuMTEgICAgeyAudGFibGVDb2x1bW5zKDExKTsgfVxuICAuc3BhbjEyICAgIHsgLnRhYmxlQ29sdW1ucygxMik7IH1cbiAgLnNwYW4xMyAgICB7IC50YWJsZUNvbHVtbnMoMTMpOyB9XG4gIC5zcGFuMTQgICAgeyAudGFibGVDb2x1bW5zKDE0KTsgfVxuICAuc3BhbjE1ICAgIHsgLnRhYmxlQ29sdW1ucygxNSk7IH1cbiAgLnNwYW4xNiAgICB7IC50YWJsZUNvbHVtbnMoMTYpOyB9XG4gIC5zcGFuMTcgICAgeyAudGFibGVDb2x1bW5zKDE3KTsgfVxuICAuc3BhbjE4ICAgIHsgLnRhYmxlQ29sdW1ucygxOCk7IH1cbiAgLnNwYW4xOSAgICB7IC50YWJsZUNvbHVtbnMoMTkpOyB9XG4gIC5zcGFuMjAgICAgeyAudGFibGVDb2x1bW5zKDIwKTsgfVxuICAuc3BhbjIxICAgIHsgLnRhYmxlQ29sdW1ucygyMSk7IH1cbiAgLnNwYW4yMiAgICB7IC50YWJsZUNvbHVtbnMoMjIpOyB9XG4gIC5zcGFuMjMgICAgeyAudGFibGVDb2x1bW5zKDIzKTsgfVxuICAuc3BhbjI0ICAgIHsgLnRhYmxlQ29sdW1ucygyNCk7IH1cbn1cbiIsIkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ2ZvbnRlbGxvJztcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9mb250ZWxsby9mb250L2ZvbnRlbGxvLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9mb250ZWxsby9mb250L2ZvbnRlbGxvLmVvdD8jaWVmaXhcIikgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoXCIuLi9mb250cy9mb250ZWxsby9mb250L2ZvbnRlbGxvLndvZmZcIikgZm9ybWF0KCd3b2ZmJyksIHVybChcIi4uL2ZvbnRzL2ZvbnRlbGxvL2ZvbnQvZm9udGVsbG8udHRmXCIpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKFwiLi4vZm9udHMvZm9udGVsbG8vZm9udC9mb250ZWxsby5zdmcjZm9udGVsbG9cIikgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuW2NsYXNzXj1cImljb24tXCJdOmJlZm9yZSxcbltjbGFzcyo9XCIgaWNvbi1cIl06YmVmb3JlIHtcbiAgZm9udC1mYW1pbHk6ICdmb250ZWxsbyc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgc3BlYWs6IG5vbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICB3aWR0aDogMWVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuMmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG9wYWNpdHk6IDE7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5pY29uLXNlYXJjaDpiZWZvcmUgeyBjb250ZW50OiAnXFw0ZCc7IH0gLyogJ00nICovXG4uaWNvbi1pbnN0YWdyYW06YmVmb3JlIHsgY29udGVudDogJ1xcNzQnOyB9IC8qICd0JyAqL1xuLmljb24taGVhcnQ6YmVmb3JlIHsgY29udGVudDogJ1xcNDEnOyB9IC8qICdBJyAqL1xuLmljb24taGVhcnQtZW1wdHk6YmVmb3JlIHsgY29udGVudDogJ1xcNDInOyB9IC8qICdCJyAqL1xuLmljb24tc3RhcjpiZWZvcmUgeyBjb250ZW50OiAnXFw0Myc7IH0gLyogJ0MnICovXG4uaWNvbi1zdGFyLWVtcHR5OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXDQ0JzsgfSAvKiAnRCcgKi9cbi5pY29uLXZpZGVvY2FtOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDInOyB9IC8qICfuoIInICovXG4uaWNvbi1waWN0dXJlOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDAnOyB9IC8qICfuoIAnICovXG4uaWNvbi1jYW1lcmE6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwMSc7IH0gLyogJ+6ggScgKi9cbi5pY29uLW9rOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXDQ1JzsgfSAvKiAnRScgKi9cbi5pY29uLWNhbmNlbDpiZWZvcmUgeyBjb250ZW50OiAnXFw0Nic7IH0gLyogJ0YnICovXG4uaWNvbi1wbHVzOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXDQ3JzsgfSAvKiAnRycgKi9cbi5pY29uLW1pbnVzOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXDQ4JzsgfSAvKiAnSCcgKi9cbi5pY29uLWhlbHA6YmVmb3JlIHsgY29udGVudDogJ1xcNDknOyB9IC8qICdJJyAqL1xuLmljb24taG9tZTpiZWZvcmUgeyBjb250ZW50OiAnXFw1MCc7IH0gLyogJ1AnICovXG4uaWNvbi1saW5rOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXDUxJzsgfSAvKiAnUScgKi9cbi5pY29uLXRhZzpiZWZvcmUgeyBjb250ZW50OiAnXFw1Mic7IH0gLyogJ1InICovXG4uaWNvbi10YWdzOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXDUzJzsgfSAvKiAnUycgKi9cbi5pY29uLWRvd25sb2FkOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXDU0JzsgfSAvKiAnVCcgKi9cbi5pY29uLXByaW50OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXDU1JzsgfSAvKiAnVScgKi9cbi5pY29uLWNvbW1lbnQ6YmVmb3JlIHsgY29udGVudDogJ1xcNTYnOyB9IC8qICdWJyAqL1xuLmljb24tY2hhdDpiZWZvcmUgeyBjb250ZW50OiAnXFw1Nyc7IH0gLyogJ1cnICovXG4uaWNvbi1sb2NhdGlvbjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODA4JzsgfSAvKiAn7qCIJyAqL1xuLmljb24tZG9jLXRleHQ6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwNCc7IH0gLyogJ+6ghCcgKi9cbi5pY29uLW1haWw6YmVmb3JlIHsgY29udGVudDogJ1xcNzUnOyB9IC8qICd1JyAqL1xuLmljb24tcGhvbmU6YmVmb3JlIHsgY29udGVudDogJ1xcNTgnOyB9IC8qICdYJyAqL1xuLmljb24tbWVudTpiZWZvcmUgeyBjb250ZW50OiAnXFw0Yyc7IH0gLyogJ0wnICovXG4uaWNvbi1jYWxlbmRhcjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODA1JzsgfSAvKiAn7qCFJyAqL1xuLmljb24taGVhZHBob25lczpiZWZvcmUgeyBjb250ZW50OiAnXFw1OSc7IH0gLyogJ1knICovXG4uaWNvbi1wbGF5OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXDYwJzsgfSAvKiAnYCcgKi9cbi5pY29uLXRhYmxlOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDcnOyB9IC8qICfuoIcnICovXG4uaWNvbi1jaGFydC1iYXI6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwNic7IH0gLyogJ+6ghicgKi9cbi5pY29uLXNwaW5uZXI6YmVmb3JlIHsgY29udGVudDogJ1xcNjEnOyB9IC8qICdhJyAqL1xuLmljb24tbWFwOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDknOyB9IC8qICfuoIknICovXG4uaWNvbi1zaGFyZTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODBhJzsgfSAvKiAn7qCKJyAqL1xuLmljb24tZ3BsdXM6YmVmb3JlIHsgY29udGVudDogJ1xcNjInOyB9IC8qICdiJyAqL1xuLmljb24tcGludGVyZXN0OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXDYzJzsgfSAvKiAnYycgKi9cbi5pY29uLWNjOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXDY0JzsgfSAvKiAnZCcgKi9cbi5pY29uLWZsaWNrcjpiZWZvcmUgeyBjb250ZW50OiAnXFw2NSc7IH0gLyogJ2UnICovXG4uaWNvbi1saW5rZWRpbjpiZWZvcmUgeyBjb250ZW50OiAnXFw2Nic7IH0gLyogJ2YnICovXG4uaWNvbi1yc3M6YmVmb3JlIHsgY29udGVudDogJ1xcNjcnOyB9IC8qICdnJyAqL1xuLmljb24tdHdpdHRlcjpiZWZvcmUgeyBjb250ZW50OiAnXFw2OCc7IH0gLyogJ2gnICovXG4uaWNvbi15b3V0dWJlOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXDY5JzsgfSAvKiAnaScgKi9cbi5pY29uLWZhY2Vib29rOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXDcwJzsgfSAvKiAncCcgKi9cbi5pY29uLWdpdGh1YjpiZWZvcmUgeyBjb250ZW50OiAnXFw3MSc7IH0gLyogJ3EnICovXG4uaWNvbi1pdHVuZXM6YmVmb3JlIHsgY29udGVudDogJ1xcNzInOyB9IC8qICdyJyAqL1xuLmljb24tdHVtYmxyOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXDczJzsgfSAvKiAncycgKi9cbi5pY29uLWRvYy10ZXh0LWludjpiZWZvcmUgeyBjb250ZW50OiAnXFxlODAzJzsgfSAvKiAn7qCDJyAqL1xuXG4jaGVhZGVyLXNvY2lhbCB7XG4gIGkge1xuICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgIHRvcDogMDtcbiAgICBwYWRkaW5nOiA0cHg7XG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuICAgICAgb3BhY2l0eTogMC45O1xuICAgIH1cbiAgfVxufVxuIiwiLmdsb2JhbC1uYXYsXG4jcGFnZSxcbiNzaXRlLWZvb3RlcixcbiNmb290ZXItbG9nb3MsXG4uc3RpY2t5LW5hdi1jb250YWluZXIsXG4jYmVmb3JlLWZvb3RlciB7XG4gIG1heC13aWR0aDogQGNvbnRhaW5lck1heFdpZHRoO1xuICBwYWRkaW5nOiAwIDIuNSU7XG59XG4jcGFnZSB7XG4gIHBhZGRpbmctYm90dG9tOkBiYXNlbGluZSAqIDAuNzU7XG59XG4jbWFpbiB7XG4gIG1hcmdpbjogQGJhc2VsaW5lICogMC43NSAwO1xuICB6LWluZGV4OiAxO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4jbGVmdC1yYWlsIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuI2NvbnRlbnQtbWFpbiB7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuLy8gRmx1aWQgR3JpZFxuI2dyaWQgPiAuZmx1aWQoQGZsdWlkR3JpZENvbHVtbldpZHRoLCBAZmx1aWRHcmlkR3V0dGVyV2lkdGgpO1xuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0ODBweCkge1xuICAuaG9tZSAjbWFpbiB7XG4gICAgbWFyZ2luLXRvcDogQGJhc2VsaW5lO1xuICB9XG59XG5cbi5wb3BvdmVyIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIG1pbi13aWR0aDogMTgwcHg7XG4gIGJhY2tncm91bmQ6IEB3aGl0ZTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGNvbG9yOiBAZ3JheTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogMWVtO1xuICBib3JkZXI6IDFweCBzb2xpZCBAZ3JheUxpZ2h0ZXI7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwwLDAsLjIpO1xuICAqYm9yZGVyLXJpZ2h0LXdpZHRoOiAycHg7XG4gICpib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG4gIC5ib3gtc2hhZG93KDAgNXB4IDEwcHggcmdiYSgwLDAsMCwuMikpO1xuICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgIC1tb3otYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nO1xuICAgICAgICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3JkZXItbGVmdDogMTBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmlnaHQ6IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMTBweCBzb2xpZCBAZ3JheUxpZ2h0ZXI7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogQGRyb3Bkb3duQm9yZGVyO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0xMHB4O1xuICAgIGxlZnQ6IDlweDtcbiAgfVxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYm9yZGVyLWxlZnQ6IDlweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmlnaHQ6IDlweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tOiA5cHggc29saWQgQGRyb3Bkb3duQmFja2dyb3VuZDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtOXB4O1xuICAgIGxlZnQ6IDEwcHg7XG4gIH1cbn1cbiIsIi5nbG9iYWwtbmF2LWJnIHtcbiAgaGVpZ2h0OiAzOHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAaGVhZGVyRm9vdGVyQ29sb3I7XG59XG4uZ2xvYmFsLW5hdiB7XG4gIGZvbnQtZmFtaWx5OiBAc2Fuc0ZvbnRGYW1pbHk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAzOHB4O1xuICBvdmVyZmxvdzp2aXNpYmxlO1xuICB6LWluZGV4OiAxMDMwO1xuICB1bCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpc3Qtc3R5bGU6bm9uZTtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgbGkge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW46IDlweCAxOHB4IDAgMDtcbiAgICB9XG4gICAgYSB7XG4gICAgICAuZGFya0xpZ2h0KEBoZWFkZXJGb290ZXJDb2xvcik7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOm5vbmU7XG4gICAgICAgIGNvbG9yOiBkYXJrZW4oQHdoaXRlLCAxNSUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAubmF2LXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgdWwjaGVhZGVyLXNvY2lhbCB7XG4gICAgICBmbG9hdDpsZWZ0O1xuICAgICAgbWFyZ2luOiAwIDAgMCAwO1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgbGkge1xuICAgICAgICBtYXJnaW46IDVweCAwIDVweCAxMHB4O1xuICAgICAgICBhIHtcbiAgICAgICAgICBjb2xvcjogQHdoaXRlO1xuICAgICAgICAgIGkge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAzcHggNHB4IDJweCA0cHg7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAuZG9uYXRlLWJ0biB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbjogNXB4IDAgMCAxMHB4O1xuICAgIH1cbiAgfVxufVxuXG4uZG9uYXRlLWJ0biB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDI7XG4gIGJhY2tncm91bmQtY29sb3I6IEByZWQ7XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oQHJlZCwgNSUpO1xuICB9XG4gIGEge1xuICAgIHBhZGRpbmc6IDI0cHggN3B4O1xuICAgIGNvbG9yOiBAd2hpdGU7XG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246bm9uZTtcbiAgICB9XG4gIH1cbiAgaSB7XG4gICAgbWFyZ2luOiAxcHggM3B4IDAgMDtcbiAgfVxufVxuXG4ubmF2LXNoZWxmIGxpLmRvbmF0ZSB7XG4gIGEuZG9uYXRlLWxpbmsge1xuICAgIGNvbG9yOiBAcmVkO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAjaGVhZGVyLWV4dHJhcyBsaS5kb25hdGUgeyBkaXNwbGF5OiBub25lOyB9XG4gIC5uYXYtc2hlbGYgbGkuZG9uYXRlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDgxcHgpIHtcbiAgLm5hdi1zaGVsZiBsaS5kb25hdGUgeyBkaXNwbGF5OiBub25lOyB9XG59XG5cbi8vICNoZWFkZXItc2VhcmNoIHN0eWxlcyBhcHBseSBvbmx5IHRvIHRoZSBzZWFyY2ggaW4gdGhlIGdsb2JhbCBuYXYuXG4jaGVhZGVyLXNlYXJjaCB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIG1heC13aWR0aDogMjEwcHg7XG4gIGZsb2F0OmxlZnQ7XG4gIGZvcm0ge1xuICAgIG1hcmdpbjogMDsgLy8gaW4gY2FzZSBvZiB1c2VyLWFnZW50IHN0eWxlc2hlZXQuXG4gIH1cbiAgaW5wdXQsIGJ1dHRvbiB7XG4gICAgZm9udC1mYW1pbHk6IEBzYW5zRm9udEZhbWlseTtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cbiAgaW5wdXQge1xuICAgIGhlaWdodDogMThweDtcbiAgICBwYWRkaW5nOiA2cHggNHB4IDJweDtcbiAgfVxuICBidXR0b24ge1xuICAgIGhlaWdodDogMjhweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG59XG4jc2l0ZS1oZWFkZXIge1xuICBtYXJnaW46IEBiYXNlbGluZSAwO1xuICB3aWR0aDogYXV0bztcbiAgaW1nIHtcbiAgICBjbGVhcjogbm9uZTtcbiAgICBtYXJnaW46IDVweCAwO1xuICB9XG4gIC8vIGZvciBsYXJnb19oZWFkZXJfd2lkZ2V0X3NpZGViYXJcbiAgYXNpZGUge1xuICAgIG1heC13aWR0aDogMzIwcHg7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICB9XG59XG5oMS5icmFuZGluZyxcbmgyLmJyYW5kaW5nIHtcbiAgY2xlYXI6IGJvdGg7XG4gIG1hcmdpbjogMjBweCAwO1xuICBmb250LXNpemU6IEBiYXNlRm9udFNpemUgKiAzLjM3NTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGEge1xuICAgIGNvbG9yOiBAdGV4dENvbG9yO1xuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxuICBzcGFuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjbGVhcjogYm90aDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLnNpdGVuYW1lIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjI1ZW07ICBcbiAgfVxuICAudGFnbGluZSB7XG4gICAgZm9udC1zaXplOiBAYmFzZUZvbnRTaXplICogMS41O1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgY29sb3I6IEBncmF5O1xuICB9XG59XG4ucHJpbnQtaGVhZGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogSG9tZXBhZ2UgYWxlcnQgKi9cbi5hbGVydC13cmFwcGVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMnB4IHNvbGlkIEByZWQ7XG4gIG1hcmdpbjogMjBweCAwO1xufVxuI2FsZXJ0LWNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogQGNvbnRhaW5lck1heFdpZHRoO1xuICBtYXJnaW46IDFlbSBhdXRvO1xuICBwYWRkaW5nOiA4cHggMjBweCAwO1xuICBjb2xvcjogQGdyYXlEYXJrO1xuICBhIHtcbiAgICBjb2xvcjogQGdyYXlEYXJrO1xuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IEByZWQ7XG4gICAgfVxuICB9XG4gIC53aWRnZXQ6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgI21haW4tbmF2LFxuICAjc2l0ZS1oZWFkZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsImh0bWwubmF2LW9wZW4sXG5odG1sLm5hdi1vcGVuIGJvZHkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm5hdmJhciB7XG4gIC8vIEZpeCBmb3IgSUU3J3MgYmFkIHotaW5kZXhpbmcgc28gZHJvcGRvd25zIGRvbid0XG4gIC8vIGFwcGVhciBiZWxvdyBjb250ZW50IHRoYXQgZm9sbG93cyB0aGUgbmF2YmFyXG4gICpwb3NpdGlvbjogcmVsYXRpdmU7XG4gICp6LWluZGV4OiAyO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgbWFyZ2luLWJvdHRvbTogQGJhc2VsaW5lIC8gNTtcblxuICAuY29udGFpbmVyIHtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuXG4gIC50b2dnbGUtbmF2LWJhciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5uYXZiYXItaW5uZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXJCYWNrZ3JvdW5kO1xuICB9XG5cbiAgLy8gQnJhbmQsIGxpbmtzLCB0ZXh0LCBhbmQgYnV0dG9uc1xuICBjb2xvcjogQG5hdmJhclRleHQ7XG4gIGZvbnQtZmFtaWx5OiBAc2Fuc0ZvbnRGYW1pbHk7XG5cbiAgLy8gSG92ZXIgYW5kIGFjdGl2ZSBzdGF0ZXNcbiAgLy8gUGxhaW4gdGV4dCBpbiB0b3BiYXJcbiAgLm5hdmJhci10ZXh0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLy8gU29jaWFsIGljb25zIGFwcGVhcmluZyBpbiBtYWluIG9yIHN0aWNreSBuYXZcbiAgI2hlYWRlci1zb2NpYWwgbGkgPiBhIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDRweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7XG4gIH1cblxuICAvLyBDb21tb24gbmF2IGxheW91dFxuICAubmF2IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6IEBuYXZiYXJUZXh0O1xuXG4gICAgJiA+IGxpID4gYSB7XG4gICAgICBjb2xvcjogQG5hdmJhckxpbmtDb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBJbmRpdmlkdWFsIG5hdiBsaW5rc1xuICBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICYgPiBhIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgbGluZS1oZWlnaHQ6IEBuYXZiYXJIZWlnaHQ7XG4gICAgICBwYWRkaW5nLWxlZnQ6IEBuYXZiYXJIZWlnaHQgLyA0O1xuICAgICAgcGFkZGluZy1yaWdodDogQG5hdmJhckhlaWdodCAvIDQ7XG4gICAgfVxuICB9XG5cbiAgLy8gRHJvcGRvd25zIHdpdGhpbiBuYXZcbiAgbGkuZHJvcGRvd24gPiBhIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG4gIGxpLmRyb3Bkb3duIC5kcm9wZG93bi1tZW51IGxpIGEge1xuICAgIGNvbG9yOiBAbmF2YmFyTGlua0NvbG9yO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgbGluZS1oZWlnaHQ6IEBiYXNlTGluZUhlaWdodDtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IEBuYXZiYXJMaW5rQ29sb3JIb3ZlcjtcbiAgICB9XG4gIH1cblxuICBsaSA+IGE6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBuYXZiYXJMaW5rQmFja2dyb3VuZEFjdGl2ZTtcbiAgICBjb2xvcjogQG5hdmJhckxpbmtDb2xvckhvdmVyO1xuXG4gICAgLmNhcmV0OmJlZm9yZSB7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiBAbmF2YmFyRHJvcGRvd25DYXJldENvbG9ySG92ZXI7XG4gICAgfVxuICB9XG5cbiAgLy8gU3ViIG1lbnVzXG4gIC5zdWItbWVudTpiZWZvcmUsXG4gIC5zdWItc3ViLW1lbnU6YmVmb3JlIHtcbiAgICBib3JkZXItYm90dG9tOiA5cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgYm9yZGVyLXJpZ2h0OiA5cHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgIGJvcmRlci10b3A6IDlweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBsZWZ0OiAtOXB4O1xuICAgIHRvcDogMzAlO1xuICB9XG4gIC5zdWItbWVudTphZnRlcixcbiAgLnN1Yi1zdWItbWVudTphZnRlciB7XG4gICAgYm9yZGVyLXRvcDogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIGJvcmRlci1yaWdodDogOHB4IHNvbGlkIEB3aGl0ZTtcbiAgICBib3JkZXItYm90dG9tOiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgdG9wOiAzMSU7XG4gICAgbGVmdDogLThweDtcbiAgfVxuXG4gIC8vIEhvbWUgbGluayBhbmQgaG9tZSBpY29uXG4gIGxpLmhvbWUtaWNvbixcbiAgbGkuaG9tZS1saW5rIHtcbiAgICBhOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6IGxpZ2h0ZW4oQGxpbmtDb2xvckhvdmVyLCA1JSk7XG4gICAgfVxuICB9XG5cbiAgLmhvbWUtaWNvbjpob3ZlciBpbWcsXG4gIGxpLmhvbWUtbGluazpob3ZlciBpIHtcbiAgICAub3BhY2l0eSg4NSk7XG4gIH1cblxuICBsaS5ob21lLWxpbmsge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmID4gYSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgfVxuXG4gICAgICBpbWcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiBAbmF2YmFySGVpZ2h0O1xuICAgICAgICB3aWR0aDogQG5hdmJhckhlaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBsaS5ob21lLWljb24gPiBhIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgaGVpZ2h0OiAoQG5hdmJhckhlaWdodCAtIDE2cHgpO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgICB9XG4gIH1cblxuICAvLyBOYXYgdG9nZ2xlIChidXJnZXIgYnV0dG9uKVxuICAuYnRuLW5hdmJhciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiBub25lO1xuXG4gICAgLy8gQGljb25iYXJIZWlnaHQgaXMgdXNlZCA1eDogM3ggZm9yIHRoZSBiYXJzLCAyeCBmb3IgdGhlIG1hcmdpbiBiZXR3ZWVuIHRoZW0uXG4gICAgcGFkZGluZzogKGZsb29yKEBuYXZiYXJIZWlnaHQgLSAoNSAqIEBpY29uYmFySGVpZ2h0KSkpIC8gMiAxMHB4O1xuXG4gICAgLmxhYmVsIHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgbWFyZ2luOiAtMnB4IDAgMCA1cHg7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgZm9udC1zaXplOiBAbmF2YmFyRm9udFNpemU7XG4gICAgfVxuXG4gICAgLm5hdmJhciAuYnRuLW5hdmJhciAuYmFycyB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAuaWNvbi1iYXIge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMThweDtcbiAgICAgIGhlaWdodDogQGljb25iYXJIZWlnaHQ7XG4gICAgfVxuXG4gICAgLmljb24tYmFyICsgLmljb24tYmFyIHtcbiAgICAgIG1hcmdpbi10b3A6IEBpY29uYmFySGVpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjlweCkge1xuICAgIC5uYXYtbGVmdCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc3BvbnNpdmUgc3R5bGVzIGZvciAubmF2YmFyXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiA5O1xuXG4gICAgbGkuZHJvcGRvd24ge1xuICAgICAgLmRyb3Bkb3duLW1lbnUgbGkgYSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBAbmF2YmFySGVpZ2h0O1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogQG5hdmJhckhlaWdodDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY29udGFpbmVyIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAudG9nZ2xlLW5hdi1iYXIge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLm5hdi1zaGVsZiB7XG4gICAgICBiYWNrZ3JvdW5kOiBAZHJvcGRvd25CYWNrZ3JvdW5kO1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgdG9wOiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcblxuICAgICAgLnNpdGUtbmFtZSwgLmhvbWUtaWNvbiwgLmhvbWUtbGluayB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIHVsLCBsaSB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgfVxuXG4gICAgICBsaS5ob21lLWxpbmsge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICBsaSBiLmNhcmV0IHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAucm90YXRlKCAtOTBkZWcgKTtcbiAgICAgIH1cblxuICAgICAgbGkub3BlbiA+IGEgLmNhcmV0IHtcbiAgICAgICAgLnJvdGF0ZSggMGRlZyApO1xuICAgICAgfVxuXG4gICAgICBsaS5vcGVuID4gdWwuZHJvcGRvd24tbWVudSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIC5ib3gtc2hhZG93KCBub25lICk7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLm5hdiA+IGxpIHtcbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICAmLm9wZW4gLm5hdi1zaGVsZiB7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBAZ3JheUxpZ2h0ZXI7XG4gICAgfVxuXG4gICAgLm5hdiBsaSB7XG4gICAgICAmLmhvbWUtbGluayxcbiAgICAgICYuc2l0ZS1uYW1lIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gR3JhZGllbnQgaXMgYXBwbGllZCB0byBpdCdzIG93biBlbGVtZW50IGJlY2F1c2Ugb3ZlcmZsb3dcbi8vIHZpc2libGUgaXMgbm90IGhvbm9yZWQgYnkgSUUgd2hlbiBmaWx0ZXIgaXMgcHJlc2VudFxuLm5hdmJhci1pbm5lciB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMTAwJTtcbn1cblxuLy8gRHJvcGRvd24gYXJyb3cvY2FyZXRcbi5jYXJldCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogQGJhc2VGb250U2l6ZTtcbiAgcGFkZGluZzogMCAoQGJhc2VGb250U2l6ZSAvIDIpO1xuICB0b3A6IDJweDtcblxuICAmOmJlZm9yZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci10b3A6IDZweCBzb2xpZCBAbmF2YmFyRHJvcGRvd25DYXJldENvbG9yO1xuICAgIGJvcmRlci1yaWdodDogNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1sZWZ0OiA1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogIDVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBjb250ZW50OiBcIlwiO1xuICB9XG59XG5cbi8vIEdlbmVyYWwgZHJvcGRvd24vZHJvcHVwIHN0eWxlc1xuLmRyb3B1cCxcbi5kcm9wZG93biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAuY2FyZXQge1xuICAgIGJvcmRlci10b3AtY29sb3I6IEB3aGl0ZTtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiBAd2hpdGU7XG4gIH1cblxuICAmLmFjdGl2ZSAuY2FyZXQge1xuICAgIC5vcGFjaXR5KDEwMCk7XG4gIH1cbn1cblxuLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIC8vIFRoZSBjYXJldCBtYWtlcyB0aGUgdG9nZ2xlIGEgYml0IHRvbyB0YWxsIGluIElFN1xuICAqbWFyZ2luLWJvdHRvbTogLTNweDtcbn1cblxuLy8gRHJvcGRvd24gbWVudVxuLmRyb3Bkb3duLW1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogQHppbmRleERyb3Bkb3duO1xuICBkaXNwbGF5OiBub25lO1xuICBmbG9hdDogbGVmdDtcbiAgbWluLXdpZHRoOiAxNjBweDtcbiAgcGFkZGluZzogM3B4IDA7XG4gIG1hcmdpbjogMDsgLy8gb3ZlcnJpZGUgZGVmYXVsdCB1bFxuICBsaXN0LXN0eWxlOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAZHJvcGRvd25CYWNrZ3JvdW5kO1xuICBib3JkZXI6IDFweCBzb2xpZCBAZ3JheUxpZ2h0ZXI7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwwLDAsLjIpO1xuICAqYm9yZGVyLXJpZ2h0LXdpZHRoOiAycHg7XG4gICpib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG4gIC5ib3gtc2hhZG93KDAgNXB4IDEwcHggcmdiYSgwLDAsMCwuMikpO1xuICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIC1tb3otYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gIGxpIHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIExpbmtzIHdpdGhpbiB0aGUgZHJvcGRvd24gbWVudVxuICBsaSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICYgPiBhIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBwYWRkaW5nOiAzcHggMTVweDtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIHRleHQtc2hhZG93OiBub25lO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEFjdGl2ZSBsaW5rcy9tZW51cyB3aXRoaW4gZHJvcGRvd25zXG4gIC5hY3RpdmUgPiBhLFxuICAuYWN0aXZlID4gYTpob3ZlciB7XG4gICAgY29sb3I6IEBuYXZiYXJMaW5rQ29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGRyb3Bkb3duQmFja2dyb3VuZDtcbiAgfVxuXG4gIC8vIFRPRE86IFdoYXQgaXMgdGhpcz9cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3JkZXItbGVmdDogMTBweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmlnaHQ6IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMTBweCBzb2xpZCBAZ3JheUxpZ2h0ZXI7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogQGRyb3Bkb3duQm9yZGVyO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0xMHB4O1xuICAgIGxlZnQ6IDlweDtcbiAgfVxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYm9yZGVyLWxlZnQ6IDlweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmlnaHQ6IDlweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tOiA5cHggc29saWQgQGRyb3Bkb3duQmFja2dyb3VuZDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtOXB4O1xuICAgIGxlZnQ6IDEwcHg7XG4gIH1cblxuICAvLyBBZGQgc3VwcG9ydCBmb3Igc2Vjb25kIGxldmVsIGRyb3Bkb3duIG1lbnVzXG4gIC5zdWItbWVudSxcbiAgLnN1Yi1zdWItbWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTIwJTtcbiAgICBsZWZ0OiA5OSU7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbiAgLmljb24tYXJyb3ctcmlnaHQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDJweDtcbiAgICBsZWZ0OiAzcHg7XG4gIH1cbiAgbGk6aG92ZXIgLnN1Yi1tZW51LFxuICAuc3ViLW1lbnUgbGk6aG92ZXIgLnN1Yi1zdWItbWVudSB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIGxpOmhvdmVyIC5zdWItc3ViLW1lbnUsXG4gICAgbGk6aG92ZXIgLnN1Yi1tZW51IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjlweCkge1xuICBodG1sLm5vLXRvdWNoIHVsLm5hdiBsaS5kcm9wZG93bjpob3ZlciB1bC5kcm9wZG93bi1tZW51LFxuICBodG1sLnRvdWNoIHVsLm5hdiBsaS5kcm9wZG93bi5vcGVuIHVsLmRyb3Bkb3duLW1lbnUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLy8gT3BlbiBzdGF0ZSBmb3IgdGhlIGRyb3Bkb3duXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5vcGVuIHtcbiAgLy8gSUU3J3Mgei1pbmRleCBvbmx5IGdvZXMgdG8gdGhlIG5lYXJlc3QgcG9zaXRpb25lZCBhbmNlc3Rvciwgd2hpY2ggd291bGRcbiAgLy8gbWFrZSB0aGUgbWVudSBhcHBlYXIgYmVsb3cgYnV0dG9ucyB0aGF0IGFwcGVhcmVkIGxhdGVyIG9uIHRoZSBwYWdlXG4gICp6LWluZGV4OiBAemluZGV4RHJvcGRvd247XG5cbiAgJiA+IC5kcm9wZG93bi1tZW51IHtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjlweCkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gQWxsb3cgZm9yIGRyb3Bkb3ducyB0byBnbyBib3R0b20gdXAgKGFrYSwgZHJvcHVwLW1lbnUpXG4uZHJvcHVwLFxuLm5hdmJhci1maXhlZC1ib3R0b20gLmRyb3Bkb3duIHtcbiAgLy8gUmV2ZXJzZSB0aGUgY2FyZXRcbiAgLmNhcmV0IHtcbiAgICBib3JkZXItdG9wOiAwO1xuICAgIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCBAYmxhY2s7XG4gICAgY29udGVudDogXCJcXDIxOTFcIjtcbiAgfVxuICAvLyBEaWZmZXJlbnQgcG9zaXRpb25pbmcgZm9yIGJvdHRvbSB1cCBtZW51XG4gIC5kcm9wZG93bi1tZW51IHtcbiAgICB0b3A6IGF1dG87XG4gICAgYm90dG9tOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDFweDtcbiAgfVxufVxuXG4vLyBcIkRvbid0IG1pc3NcIi90b3BpY3MgYmFyXG4jdG9waWNzLWJhciB7XG4gIHBhZGRpbmc6IDNweCAwO1xuICB1bCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtZmFtaWx5OiBAc2Fuc0ZvbnRGYW1pbHk7XG4gICAgbGkge1xuICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICYubWVudS1sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIE5hdmJhciBzZWFyY2ggZm9ybVxuI21haW4tbmF2Lm5hdmJhciB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCBAbmF2YmFyUnVsZUNvbG9yO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgQG5hdmJhclJ1bGVDb2xvcjtcbn1cbiIsIkBzdGlja3lOYXZMaW5lSGVpZ2h0OiA1NnB4O1xuXG4uc3RpY2t5LW5hdi1jb250YWluZXIge1xuICBtYXJnaW46IDAgYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uc3RpY2t5LW5hdi1ob2xkZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IDk5OTk4O1xuXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgb3BhY2l0eTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHN0aWNreU5hdmJhckJhY2tncm91bmRDb2xvcjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIEBncmF5TGlnaHRlcjtcbiAgLnRyYW5zaXRpb24ob3BhY2l0eSAwLjNzKTtcblxuICAmLnRyYW5zaXRpb25pbmcge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgaGVpZ2h0OiBAc3RpY2t5TmF2TGluZUhlaWdodDtcblxuICAgIC5uYXZiYXIge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cblxuICAmLnNob3cge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIGJvZHkuYWRtaW4tYmFyICYge1xuICAgIHRvcDogMzJweDtcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3ODJweCkge1xuICAgICAgdG9wOiA0NnB4O1xuICAgIH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICAgIHRvcDogMDtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY5cHgpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGJvZHkgJi5tYWluX25hdl9oaWRlX2FydGljbGUsXG4gICAgYm9keSAmLnN0aWNreV9uYXZfZGlzcGxheSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cblxuLy8gRXh0ZW5kIHRoZSBjb21tb24gbmF2YmFyIHN0eWxlc1xuLm5hdmJhci5zdGlja3ktbmF2YmFyIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgLnRyYW5zaXRpb24ob3BhY2l0eSAwLjNzKTtcblxuICAubmF2IHtcbiAgICBjb2xvcjogQHN0aWNreU5hdmJhclRleHQ7XG4gIH1cblxuICBsaSB7XG4gICAgYSB7XG4gICAgICBsaW5lLWhlaWdodDogQHN0aWNreU5hdkxpbmVIZWlnaHQ7XG4gICAgICBjb2xvcjogQHN0aWNreU5hdmJhckxpbmtDb2xvcjtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiBAc3RpY2t5TmF2YmFyTGlua0NvbG9ySG92ZXI7XG4gICAgICB9XG5cbiAgICAgIC5jYXJldDpiZWZvcmUge1xuICAgICAgICBib3JkZXItdG9wLWNvbG9yOiBAc3RpY2t5TmF2YmFyRHJvcGRvd25DYXJldENvbG9yO1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIC5jYXJldDpiZWZvcmUge1xuICAgICAgICBib3JkZXItdG9wLWNvbG9yOiBAc3RpY2t5TmF2YmFyRHJvcGRvd25DYXJldENvbG9ySG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5ob21lLWxpbmsgPiBhOmhvdmVyIHtcbiAgICAgIGNvbG9yOiBsaWdodGVuKEBzdGlja3lOYXZiYXJMaW5rQ29sb3IsIDUlKTtcbiAgICB9XG4gIH1cblxuICAvLyBEcm9wZG93bnMgd2l0aGluIG5hdlxuICBsaS5kcm9wZG93biAuZHJvcGRvd24tbWVudSBsaSBhIHtcbiAgICBjb2xvcjogQHN0aWNreU5hdmJhckxpbmtDb2xvcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IEBzdGlja3lOYXZiYXJMaW5rQ29sb3JIb3ZlcjtcbiAgICB9XG4gIH1cblxuICAuc29jaWFsLWljb25zIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cblxuICAuYnRuLW5hdmJhciB7XG4gICAgcGFkZGluZzogMCAxMHB4IDAgMTBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbGluZS1oZWlnaHQ6IEBzdGlja3lOYXZMaW5lSGVpZ2h0O1xuXG4gICAgLmJhcnMge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgICAuaWNvbi1iYXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogQHN0aWNreU5hdmJhckxpbmtDb2xvcjtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIC5pY29uLWJhciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBzdGlja3lOYXZiYXJMaW5rQ29sb3JIb3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLmhvbWUtbGluayB7XG4gICAgLy8gVE9ETzogc2hvdWxkIGJlIGJhc2VkIG9uIGEgdmFyaWFibGVcbiAgICBtaW4td2lkdGg6IDQwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgLm5hdiA+IGxpIHtcbiAgICAgIGEge1xuICAgICAgICBpbWcge1xuICAgICAgICAgIC8vIFRPRE86IHNob3VsZCBiZSBiYXNlZCBvbiB2YXJpYWJsZVxuICAgICAgICAgIHdpZHRoOiAxLjQ5ZW07XG4gICAgICAgICAgaGVpZ2h0OiAxLjQ5ZW07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmljb24taG9tZTpiZWZvcmUge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDb250YWlucyBzb2NpYWwgaWNvbnMsIHNlYXJjaCwgZG9uYXRlIGxpbmtcbiAgLm5hdi1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuXG4gICAgI2hlYWRlci1leHRyYXMge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBhLmRvbmF0ZS1saW5rOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG5cbiAgICAgIC5kb25hdGUge1xuICAgICAgICBhIHNwYW4ge1xuICAgICAgICAgIC8vIFRPRE86IHNob3VsZCBiZSBiYXNlZCBvbiB2YXJzXG4gICAgICAgICAgcGFkZGluZzogNHB4IDhweDtcblxuICAgICAgICAgIGNvbG9yOiBAd2hpdGU7XG5cbiAgICAgICAgICAvLyBUT0RPOiBpcyB0aGlzIHNwZWNpZmljIHRvIHRoZSBkb25hdGUgbGluaz9cbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAcmVkO1xuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihAcmVkLCA1JSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gVE9ETzogd2hhdCBpcyB0aGlzIGZvcj9cbiAgICAgICAgICBpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAvLyBOYXZiYXIgc2VhcmNoIGZvcm1cbiAgLmZvcm0tc2VhcmNoIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLnRvZ2dsZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBjb2xvcjogQGJhc2VDb2xvcjtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDkxO1xuICAgICAgLnRyYW5zaXRpb24oIDAuM3MgKTtcbiAgICB9XG4gICAgLmlucHV0LWFwcGVuZCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogNDRweDtcbiAgICAgIHRvcDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIC50cmFuc2l0aW9uKCAwLjNzICk7XG4gICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgei1pbmRleDogOTA7XG4gICAgICB3aWR0aDogMjQ2cHg7XG4gICAgICAudGV4dC1pbnB1dC13cmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB3aWR0aDogMTk2cHg7XG4gICAgICB9XG4gICAgICBpbnB1dCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAuYm94LXNpemluZyggYm9yZGVyLWJveCApO1xuICAgICAgICBoZWlnaHQ6IDM2cHggIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgIGJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiA1MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMzZweCAhaW1wb3J0YW50O1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgLmJveC1zaXppbmcoIGJvcmRlci1ib3ggKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAgICNzdGlja3ktbmF2LXNlYXJjaC5zaG93IHtcbiAgICAgIC5pbnB1dC1hcHBlbmQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICB9XG4gICAgICAuaW5wdXQtYXBwZW5kLFxuICAgICAgLnRvZ2dsZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzNDM0MzQ7XG4gICAgICAgIGNvbG9yOiBAYm9keUJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm5hdi1sZWZ0IHtcbiAgICAmID4gdWwge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gIH1cblxuICAvLyBIaWRlcyB0aGUgc2Vjb25kIHNpdGUgbmFtZSBpbiB0aGUgc3RpY2t5IGhlYWRlclxuICAvLyB3aGVuIC5uYXYtc2hlbGYgaXMgdmlzaWJsZVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY5cHgpIHtcbiAgICAubmF2LWxlZnQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvLyBTaXRlIG5hbWVcbiAgLnNpdGUtbmFtZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29sb3I6ICMzNDM0MzQ7XG5cbiAgICBhIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgcGFkZGluZzogMCAxMHB4IDAgMDtcbiAgICAgIGNvbG9yOiBAc3RpY2t5TmF2YmFyTGlua0NvbG9yO1xuICAgICAgbWF4LXdpZHRoOiAyMTRweDtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IEBzdGlja3lOYXZiYXJMaW5rQ29sb3JIb3ZlcjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJpZ2h0IHNpZGUgb2YgbmF2LCBzZWFyY2gsIGRvbmF0ZSwgc29jaWFsIGljb25zXG4gIC5uYXYtcmlnaHQge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICAjaGVhZGVyLWV4dHJhcyB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGEuZG9uYXRlLWxpbms6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTdGlja3kgbmF2IGRyb3Bkb3duIG1vZHNcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgbGkuZHJvcGRvd24ge1xuICAgICAgLmRyb3Bkb3duLW1lbnUgbGkgYSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBAc3RpY2t5TmF2TGluZUhlaWdodDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubmF2LXNoZWxmIGIuY2FyZXQge1xuICAgICAgcGFkZGluZzogMjJweDtcbiAgICB9XG4gIH1cbn1cblxuLy8gRm9ybWF0IHRoZSBzdGlja3kgbmF2IG92ZXJmbG93IG1lbnVcbiNtZW51LW92ZXJmbG93ID4gdWwge1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIG1heC1oZWlnaHQ6IDgwdmg7XG4gIC5jYXJldDo6YmVmb3JlLCAuY2FyZXQ6OmFmdGVyIHtcbiAgICBkaXNwbGF5Om5vbmU7XG4gIH1cbiAgdWwuZHJvcGRvd24tbWVudSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGxpIGEge1xuICAgICAgcGFkZGluZy1sZWZ0OiAxLjVlbTtcbiAgICB9XG4gICAgJjo6YmVmb3JlLCAmOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAuc3ViLW1lbnUsXG4gICAgLnN1Yi1zdWItbWVudSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFBPU1QvUEFHRSBFTEVNRU5UU1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLnBvc3QtaGVhZGVyLFxuLnBhZ2UtaGVhZGVyLFxuLmVudHJ5LWNvbnRlbnQsXG4ucG9zdC1mb290ZXIsXG5hcnRpY2xlLnN0b3J5IHtcbiAgbWFyZ2luLWJvdHRvbTogQGJhc2VsaW5lO1xufVxuLnBvc3QtaGVhZGVyLFxuLnBhZ2UtaGVhZGVyLFxuYXJ0aWNsZS5zdG9yeSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBAZ3JheUxpZ2h0ZXI7XG59XG5hcnRpY2xlLnN0b3J5IHtcbiAgcGFkZGluZy1ib3R0b206IEBiYXNlbGluZSAvIDI7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBJTkRFWC5QSFBcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5zdG9yaWVzIGFydGljbGUge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkIEBncmF5TGlnaHQ7XG4gIG1hcmdpbi1ib3R0b206IEBiYXNlbGluZTtcbn1cbi5zdG9yaWVzIGFydGljbGUge1xuICAmLnNwYW4xLFxuICAmLnNwYW4yLFxuICAmLnNwYW4zLFxuICAmLnNwYW40LFxuICAmLnNwYW41LFxuICAmLnNwYW42LFxuICAmLnNwYW43LFxuICAmLnNwYW44LFxuICAmLnNwYW45LFxuICAmLnNwYW4xMCxcbiAgJi5zcGFuMTEsXG4gICYuc3BhbjEyIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuLnN0b3JpZXMgaDIuZW50cnktdGl0bGUge1xuICBmb250LXNpemU6IEBiYXNlRm9udFNpemUgKiAyO1xuICBtYXJnaW4tYm90dG9tOiBAYmFzZWxpbmUvMztcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbn1cbi5zdG9yaWVzIC5lbnRyeS1jb250ZW50IHAge1xuICBmb250LXNpemU6IEBiYXNlRm9udFNpemU7XG4gIG1hcmdpbi1ib3R0b206IEBiYXNlbGluZSAvIDI7XG59XG4uc3RvcmllcyBoNS50YWctbGlzdCB7XG4gIGZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZSAqIDAuODE1O1xuICBmb250LWZhbWlseTogQHNhbnNGb250RmFtaWx5O1xuICBmb250LXdlaWdodDpub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBQYWdlL0NvbXBvbmVudCBTcGVjaWZpYyBTdHlsZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbXBvcnQgXCJhcmNoaXZlcy5sZXNzXCI7XG5AaW1wb3J0IFwic2VhcmNoLmxlc3NcIjtcbkBpbXBvcnQgXCJzdGlja3kubGVzc1wiO1xuQGltcG9ydCBcInNpbmdsZS5sZXNzXCI7XG5AaW1wb3J0IFwiaG9tZXBhZ2UubGVzc1wiO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUG9zdCBQYWdlIENvbnRlbnQgTW9kdWxlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLm1vZHVsZSB7XG4gIG1hcmdpbi1ib3R0b206IEBiYXNlbGluZS8yO1xuICBjb2xvcjogQGJsYWNrO1xuICBoMyB7XG4gICAgZm9udC1zaXplOiBAYmFzZUZvbnRTaXplO1xuICAgIG1hcmdpbi1ib3R0b206IEBiYXNlbGluZS8yO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG4gIGRsIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbiAgZHQsIGRkIHtcbiAgICBmb250LXNpemU6IEBiYXNlRm9udFNpemUgKiAwLjgxNTtcbiAgICBtYXJnaW46IDAgMCBAYmFzZWxpbmUvMjtcbiAgfVxuICB1bCB7XG4gICAgZm9udC1zaXplOiBAYmFzZUZvbnRTaXplICogMC44MTU7XG4gIH1cbn1cbi50eXBlLWFzaWRlIHAge1xuICBmb250LXNpemU6IDAuODE1ZW07XG59XG4vKiBkZXByZWNhdGVkIGltYWdlIHR5cGU/ICovXG4uaW1hZ2UgcCB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgZm9udC1zaXplOiAxMHB4O1xufVxuLmltYWdlIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxucC53cC1tZWRpYS1jcmVkaXQge1xuICBmb250LXNpemU6IEBiYXNlRm9udFNpemUgKiAwLjgxNTtcbiAgbWFyZ2luOiAwO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgY29sb3I6IEBncmF5O1xuICBkaXNwbGF5OiBibG9jaztcbn1cbnAud3AtY2FwdGlvbi10ZXh0IHtcbiAgZm9udC1zaXplOiBAYmFzZUZvbnRTaXplICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogNXB4IDAgMDtcbiAgY29sb3I6IEBncmF5O1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmhhbGYsXG4uZnVsbCxcbi5leHRyYWN0IHtcbiAgbWFyZ2luOiAwIDAgQGJhc2VsaW5lO1xufVxuLmhhbGYge1xuICB3aWR0aDogNDAlO1xufVxuLmZ1bGwge1xuICB3aWR0aDogMTAwJTtcbn1cbi5mdWxsLWltYWdlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAZ3JheUxpZ2h0ZXI7XG59XG4ucHVsbC1xdW90ZSxcbi50eXBlLXB1bGwtcXVvdGUge1xuICBmb250OiBAc2VyaWZGb250RmFtaWx5O1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZSAqIDEuNTtcbiAgbGluZS1oZWlnaHQ6IDEuMztcblxuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMXB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMjBweCBhdXRvO1xuICAgIGJhY2tncm91bmQ6IEBncmF5TGlnaHRlcjtcbiAgfVxuXG4gIGg2IHtcbiAgICBmb250LXNpemU6IEBiYXNlRm9udFNpemU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB9XG4gIHAge1xuICAgIGZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZSAqIDEuNTtcbiAgICBtYXJnaW4tYm90dG9tOiBAYmFzZWxpbmUvNDtcbiAgfVxufVxuLkRWLWNvbnRhaW5lciB7XG4gIG1hcmdpbi1ib3R0b206IEBiYXNlbGluZS8zO1xufVxuIiwiLy8gQ2F0ZWdvcnksIFRhZyBhbmQgVGF4b25vbXkgUGFnZXNcbi5hcmNoaXZlLWJhY2tncm91bmQge1xuICBtYXJnaW4tYm90dG9tOiBAYmFzZWxpbmU7XG4gIHBhZGRpbmctYm90dG9tOiBAYmFzZWxpbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBAZ3JheUxpZ2h0ZXI7XG4gIGgxIHtcbiAgICBmb250LXNpemU6IEBiYXNlRm9udFNpemUgKiAyLjc1O1xuICAgIG1hcmdpbi1ib3R0b206IDNweDtcbiAgfVxuICBwIHtcbiAgICBmb250LXNpemU6IEBiYXNlRm9udFNpemU7XG4gICAgbWFyZ2luLWJvdHRvbTogQGJhc2VsaW5lLzM7XG4gIH1cbiAgLnJlbGF0ZWQtdG9waWNzIHtcbiAgICBmb250LWZhbWlseTogQHNhbnNGb250RmFtaWx5O1xuXHR1bCB7XG5cdCAgZmxvYXQ6IGxlZnQ7XG5cdCAgd2lkdGg6IDEwMCU7XG5cdCAgbGlzdC1zdHlsZTogbm9uZTtcblx0ICBtYXJnaW46IDA7XG5cdCAgZm9udC1zaXplOiBAYmFzZUZvbnRTaXplO1xuXHQgIGxpbmUtaGVpZ2h0OiAxLjM7XG5cdCAgbGkge1xuXHQgICAgZGlzcGxheTogaW5saW5lO1xuXHQgICAgbWFyZ2luOiAwO1xuXHQgICAgcGFkZGluZzogMDtcblx0ICAgICY6Zmlyc3QtY2hpbGQge1xuXHRcdCAgbWFyZ2luLXJpZ2h0OiA1cHg7XG5cdCAgICB9XG5cdCAgICAmOmFmdGVyIHtcblx0ICAgICAgY29udGVudDogXCIsIFwiO1xuXHQgICAgfVxuXHQgICAgJjpmaXJzdC1jaGlsZDphZnRlcixcblx0ICAgICY6bGFzdC1jaGlsZDphZnRlciB7XG5cdCAgICAgIGNvbnRlbnQ6IFwiXCI7XG5cdCAgICB9XG5cdCAgfVxuICAgIH1cbiAgfVxuICAucnNzLXN1YnNjcmliZS1saW5rIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBmb250LWZhbWlseTogQHNhbnNGb250RmFtaWx5O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6IEByc3M7XG4gICAgaSB7XG5cdCAgcGFkZGluZy1sZWZ0OiAzcHg7XG5cdCAgcG9zaXRpb246IHJlbGF0aXZlO1xuXHQgIHRvcDogLTJweDtcbiAgICB9XG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBjb2xvcjogZGFya2VuKEByc3MsIDE1JSk7XG4gICAgfVxufVxufVxuLmFyY2hpdmUgLmhlcm8ge1xuICBjbGVhcjogYm90aDtcbiAgbWFyZ2luOiAxZW0gMDtcbiAgLndwLWNhcHRpb24tdGV4dCxcbiAgLndwLW1lZGlhLWNyZWRpdCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuYXJ0aWNsZSBkaXYuaGFzLXRodW1ibmFpbCB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWF4LXdpZHRoOiAzMCU7XG4gIG1hcmdpbjogMCAwIDEwcHggMjBweDtcbn1cbmFydGljbGUgaW1nLmF0dGFjaG1lbnQtcG9zdC10aHVtYm5haWwge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi8vIGhpZXJhcmNoaWNhbCBjYXRlZ29yeSBwYWdlc1xuLnByaW1hcnktZmVhdHVyZWQtcG9zdCxcbi5zZWNvbmRhcnktZmVhdHVyZWQtcG9zdCB7XG4gIHBhZGRpbmc6IDAgMCAyNHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgQGdyYXlMaWdodGVyO1xuICBtYXJnaW4tYm90dG9tOiAyNHB4O1xufVxuLnByaW1hcnktZmVhdHVyZWQtcG9zdCB7XG4gIGgyIHtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgIG1hcmdpbi1ib3R0b206IEBiYXNlbGluZS8zO1xuICAgIGZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZSAqIDIuMjU7XG4gIH1cbiAgLmVudHJ5LWNvbnRlbnQgcCxcbiAgLmVudHJ5LWNvbnRlbnQgdWwsXG4gIC5lbnRyeS1jb250ZW50IG9sIHtcbiAgICBmb250LXNpemU6IEBiYXNlRm9udFNpemU7XG4gIH1cbn1cbi5zZWNvbmRhcnktZmVhdHVyZWQtcG9zdCB7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG5cbiAgaW1nIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIGgyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgZm9udC1zaXplOiBAYmFzZUZvbnRTaXplICogMS4yNTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6OTYwcHgpe1xuICAuc2Vjb25kYXJ5LWZlYXR1cmVkLXBvc3Qge1xuICAgIGgyIHtcbiAgICAgIGZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZSAqIDEuNTtcbiAgICB9XG4gIH1cbn1cblxuLy8gcG9zdHMgb24gYXJjaGl2ZSBwYWdlc1xuLmFyY2hpdmUsXG4uaG9tZSB7XG4gIC5zdG9yaWVzIC5oZXJvLmlzLWltYWdlIGltZyB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gIH1cbiAgLmVudHJ5LWNvbnRlbnQge1xuICAgICYud2l0aC1oZXJvIHtcbiAgICAgIG1hcmdpbjogLTIycHggNyUgMDtcbiAgICAgIHBhZGRpbmc6IDIycHggMThweDtcbiAgICAgIHdpZHRoOiA4NiU7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgbWFyZ2luOiA4cHggMCAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG4gICAgaDUuYnlsaW5lIHtcbiAgICAgIGZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZSAqIDAuODE1O1xuICAgICAgbWFyZ2luLWJvdHRvbTogQGJhc2VsaW5lIC8gMjtcbiAgICB9XG4gIH1cbn1cblxuLy8gRGF0ZSBBcmNoaXZlXG4uYXJjaGl2ZS1kcm9wZG93biB7XG4gIG1hcmdpbjogQGJhc2VsaW5lLzIgMDtcbn1cblxuLy8gU2VyaWVzIExhbmRpbmdzXG4jc2VyaWVzLWZvb3RlciB7XG4gIGNsZWFyOiBib3RoO1xufVxuI3Nlcmllcy1tYWluICNjb250ZW50IHtcbiAgbWFyZ2luLWJvdHRvbTogQGJhc2VsaW5lO1xufVxuI3Nlcmllcy1oZWFkZXIgLmJ5bGluZSB0aW1lLFxuI3Nlcmllcy1oZWFkZXIgLmJ5bGluZSAuc2VwIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLy8gTG9hZCBtb3JlIHBvc3RzXG4ubG9hZC1tb3JlIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLmxvYWRpbmcgLmxvYWQtbW9yZSB7XG4gIHBhZGRpbmctcmlnaHQ6IDMycHg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvd3AtYWRtaW4vaW1hZ2VzL2xvYWRpbmcuZ2lmKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogOTYlIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cbiIsIi8qKlxuICogU3R5bGVzIGZvciBzZWFyY2ggZm9ybXMgYW5kIHNlYXJjaCByZXN1bHRzXG4gKlxuICogU3R5bGVzIGZvciB0aGUgZ2xvYmFsIG5hdiBzZWFyY2ggYXJlIGluIGxlc3MvaW5jL2hlYWRlci5sZXNzXG4gKi9cblxuLy8gU2VhcmNoIFJlc3VsdHNcbi5hcmNoaXZlLnNlYXJjaC1yZXN1bHRzIHtcbiAgLmlucHV0LWFwcGVuZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG4gIC5mb3JtLXNlYXJjaCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgIGlucHV0IHtcbiAgICAgIHdpZHRoOiA5MCU7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIH1cbiAgICBidXR0b24ge1xuICAgICAgd2lkdGg6IDEwJTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuICB9XG4gIC5zZWFyY2gtdGVybSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGdyYXlMaWdodGVyO1xuICAgIHBhZGRpbmc6IDFweCA1cHg7XG4gIH1cbiAgaDMgLnJzcy1saW5rIHtcbiAgICBtYXJnaW4tbGVmdDogMWVtO1xuICB9XG4gIGgzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gICAgcGFkZGluZy1ib3R0b206IDAuNWVtO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBAZ3JheTtcbiAgfVxuXG4gIC5zdG9yaWVzIHtcbiAgICBhcnRpY2xlIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxMnB4O1xuICAgIH1cbiAgfVxuICAvLyBObyBzcGFjaW5nIGFmdGVyIHBhcmFncmFwaCwgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9JTk4vTGFyZ28vcHVsbC8xMTc3XG4gIC5lbnRyeS1jb250ZW50IHAge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbiAgLmRhdGUtbGluayBhLFxuICAuZGF0ZS1saW5rIHtcbiAgICBjb2xvcjogQGdyYXk7XG4gIH1cbn1cbi5zZWFyY2gtcmVzdWx0cyAjY29udGVudCAuZm9ybS1zZWFyY2gge1xufVxuXG4vKiBHb29nbGUgQ1NFICovXG4uZ2NzX2NvbnRhaW5lciB7XG4gIG1hcmdpbjogMjBweCAwO1xuXG4gIHRhYmxlIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICB0YWJsZSxcbiAgdGJvZHksXG4gIHRyLFxuICB0ZCB7XG4gICAgYm9yZGVyOiBub25lO1xuICB9XG5cbiAgLmdzYy1zZWFyY2gtYm94IHtcbiAgICBtYXJnaW46IDE4cHggMDtcbiAgICAuZ3NzdF9hIC5nc2NiX2Ege1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiAzcHg7XG4gICAgfVxuICAgIHRkLmdzaWJfYSB7XG4gICAgICBwYWRkaW5nOiAwIDZweCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC5nc2MtY29udHJvbC1jc2Uge1xuICAgIC5ncy1yZXN1bHQge1xuICAgICAgLmdzLXRpdGxlLFxuICAgICAgLmdzLXRpdGxlICoge1xuICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuc3RpY2t5LXJlbGF0ZWQsXG4uc3RpY2t5LXNvbG8ge1xuICBhIHtcbiAgICAmOmhvdmVyIHtcbiAgICAgIC5vcGFjaXR5KDkwKTtcbiAgICB9XG4gIH1cbn1cbi5zdGlja3ktbWFpbi1mZWF0dXJlIHtcbiAgLmltYWdlLXdyYXAge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGltZyB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG4gICAgJi5zcGFuMyBpbWcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG4gIGgyIHtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB9XG4gIHAge1xuICAgIGEge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cbiAgfVxufVxuLnN0aWNreS1mZWF0dXJlcy1saXN0IHtcbiAgaDQge1xuICAgIGZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZSAqIDEuMjtcbiAgICBtYXJnaW46IDAgMCA4cHggMDtcbiAgfVxuICB1bCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbGkge1xuICAgICAgbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiA3cHg7XG4gICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgJi5zdGlja3ktYWxsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAzNjBweCkge1xuICAuc3RpY2t5LW1haW4tZmVhdHVyZSB7XG4gICAgLmltYWdlLXdyYXAgaW1nIHtcbiAgICAgIG1hcmdpbjogMCAxNXB4IDE1cHggMDtcbiAgICB9XG4gICAgaDUuYnlsaW5lIHtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbiAgICAuc3Bhbjkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAzNjBweCkge1xuICAuc3RpY2t5LW1haW4tZmVhdHVyZSB7XG4gICAgLmhpZGRlbi1waG9uZSB7XG4gICAgICBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC52aXNpYmxlLXBob25lIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cbiIsIlxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgU2luZ2xlIC0gU3R5bGluZyBmb3Igc2luZ2xlIHBvc3RzICYgcGFnZXMuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIDEuMCAtIE5vcm1hbCBsYXlvdXQgb3ZlcnJpZGVzIChvdmVycmlkZSB0d28gY29sdW1uIGRpc3BsYXkpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5ib2R5Lm5vcm1hbC5zaW5nbGUtcG9zdCxcbmJvZHkubm9ybWFsLnBhZ2Uge1xuXG4gIC8qIDEuMSAtIEhlYWRlciAqL1xuXG4gIGFydGljbGUucG9zdCA+IGhlYWRlcixcbiAgYXJ0aWNsZS5wYWdlID4gaGVhZGVyIHtcblxuICAgIGNsZWFyOiBib3RoO1xuICAgIG1hcmdpbjogMjRweCAxNy4wMjEzJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAvLyB0b3AgdGFnXG4gICAgaDUudG9wLXRhZyB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAwO1xuICAgIH1cblxuICAgIGgxIHtcbiAgICAgIHBhZGRpbmctdG9wOiAyNnB4O1xuICAgIH1cblxuICAgIC8vIGVkaXQgbGlua1xuICAgIC5lZGl0LWxpbmsge1xuICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgfVxuXG4gIH1cblxuICAvKiAxLjIgLSBIZXJvICovXG4gIC5oZXJvIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcblxuICAgIHAud3AtY2FwdGlvbi10ZXh0LFxuICAgIHAud3AtbWVkaWEtY3JlZGl0IHtcbiAgICAgIG1hcmdpbjowIDE3LjAyMTMlIDEycHg7XG4gICAgfVxuICB9XG5cbiAgLyogMS4zIC0gU2lkZWJhciAocmlnaHQgb2YgcG9zdCkgKi9cblxuICAmLnNpbmdsZSAjbWFpbiAjc2lkZWJhciB7XG4gICAgICAvKiBhbGwgdG8gdW5kbyBib290c3RyYXAgKi9cbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAud2lkZ2V0OmZpcnN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctdG9wOiAwOyAvLyBmaXJzdCB3aWRnZXQgZmx1c2ggd2l0aCB0b3Agb2YgYXJ0aWNsZVxuICAgIH1cbiAgfVxuXG4gIC8qIDEuNCAtIEVudHJ5IENvbnRlbnQgKHRoZSBtYWluIHBvc3QgY29udGVudCkgKi9cblxuICAvLyBpZiB1cGRhdGluZyB0aGlzLCB1cGRhdGUgdGhlIGFsaWdud2lkZSBjbGFzc1xuICAuZW50cnktY29udGVudCB7XG4gICAgcGFkZGluZzogMCAxNy4wMjEyNzY1OTQlO1xuICB9XG5cbiAgdGltZSAubGFzdC1tb2RpZmllZCB7XG4gICAgY29sb3I6QHJlZDtcbiAgICBmb250LXdlaWdodDpib2xkO1xuICAgIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6MTNweDtcbiAgfVxuXG4gIHAuaW50cm8sXG4gIHAud3AtY2FwdGlvbi10ZXh0IHtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gIH1cblxuICAvKiAxLjUgLSBBcnRpY2xlIEJvdHRvbSAoYWZ0ZXIgcG9zdCBjb250ZW50KSAqL1xuXG4gIC5hcnRpY2xlLWJvdHRvbSB7XG4gICAgbWFyZ2luOiAwIDE3LjAyMTI3NjU5NCU7XG4gICAgLnBvc3Qtc29jaWFsIHtcbiAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICNjb21tZW50cyxcbiAgI2Rpc3F1c190aHJlYWQge1xuICAgIG1hcmdpbjogMCAxNy4wMjEyNzY1OTQlO1xuICB9XG5cbiAgLyogMS42IC0gT3ZlcnJpZGVzICovXG5cbiAgQG1lZGlhIEB0YWJsZXREb3duIHtcbiAgLnNpbmdsZSAjbWFpbiAjc2lkZWJhciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAuYXJ0aWNsZS1ib3R0b20sXG4gICAgI2NvbW1lbnRzLFxuICAgICNkaXNxdXNfdGhyZWFkIHtcbiAgICAgIG1hcmdpbjogMCBAZmx1aWRHcmlkQ29sdW1uV2lkdGg7XG4gICAgfVxuICAgIGFydGljbGUucG9zdCA+IGhlYWRlciB7XG4gICAgICBtYXJnaW46IDI0cHggQGZsdWlkR3JpZENvbHVtbldpZHRoO1xuICAgIH1cbiAgICAuZW50cnktY29udGVudCB7XG4gICAgICBwYWRkaW5nOiAwIEBmbHVpZEdyaWRDb2x1bW5XaWR0aDtcbiAgICB9XG4gICAgLmhlcm8ge1xuICAgICAgcC53cC1jYXB0aW9uLXRleHQsXG4gICAgICBwLndwLW1lZGlhLWNyZWRpdCB7XG4gICAgICAgIG1hcmdpbjowIEBmbHVpZEdyaWRHdXR0ZXJXaWR0aCAxMnB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSBAbW9iaWxlIHtcbiAgICAuYXJ0aWNsZS1ib3R0b20sXG4gICAgI2NvbW1lbnRzLFxuICAgICNkaXNxdXNfdGhyZWFkIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gICAgYXJ0aWNsZS5wb3N0ID4gaGVhZGVyIHtcbiAgICAgIG1hcmdpbjogMjRweCAwO1xuICAgIH1cbiAgICAuZW50cnktY29udGVudCB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgfVxuXG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIDIuMCAtIEVudHJ5IEVsZW1lbnQgU3R5bGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5cbi8vIHN1YnRpdGxlXG5oMi5zdWJ0aXRsZSB7XG4gIGZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZSAqIDEuMjIyO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogQGdyYXk7XG59XG5cbi8qIDIuMSAtIEJ5bGluZSAqL1xuXG4uYnlsaW5lIHtcbiAgbWFyZ2luLWJvdHRvbTogQGJhc2VsaW5lIC8gMjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zaXplOiBAYmFzZUZvbnRTaXplICogMC45MTU7XG5cbiAgLy8gZW5zdXJlIHRoYXQgZXZlcnl0aGluZyBpcyB2ZXJ0aWNhbGx5IGFsaWduZWRcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgJiA+ICoge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgfVxuXG4gIGEge1xuICAgIGNvbG9yOiBAdGV4dENvbG9yO1xuICB9XG4gIC5hdXRob3IsXG4gIC50aW1lLWFnbyxcbiAgLmVkaXQtbGluayBhIHtcbiAgICAvKnRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7Ki9cbiAgfVxuICAuYXV0aG9yIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuICAudGltZS1hZ28sXG4gIC5lZGl0LWxpbmsgYSB7XG4gICAgY29sb3I6IEByZWQ7XG4gIH1cblxuICAuYXZhdGFyLWRlZmF1bHQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgaW1nLFxuICAuYXZhdGFyIHtcbiAgICBtYXgtaGVpZ2h0OiAzMHB4OyAvLyBpbWFnZSBoZWlnaHQgaW50cm9kdWNlZCBpbiBodHRwczovL2dpdGh1Yi5jb20vSU5OL0xhcmdvL3B1bGwvMTM4NyBpcyA2MHB4XG4gICAgbWF4LXdpZHRoOiAzMHB4OyAvLyBpbWFnZSB3aWR0aCBpbnRyb2R1Y2VkIGluIGh0dHBzOi8vZ2l0aHViLmNvbS9JTk4vTGFyZ28vcHVsbC8xMzg3IGlzIDYwcHhcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgQGdyYXk7XG4gIH1cbn1cblxuLyogMi4yIC0gU29jaWFsIG1lZGlhIGxpbmtzICovXG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAucG9zdC1zb2NpYWwgPiBzcGFuIHtcbiAgICBtaW4td2lkdGg6IDUwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY5cHgpIHtcbiAgLnBvc3Qtc29jaWFsID4gc3BhbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG4gIC8vIEZ1ZGdpbmcgdG8gcHJldmVudCBvdmVybGFwIGJldHdlZW4gdGhlIGljb24gYW5kIHRoZSB0ZXh0XG4gIC5wb3N0LXNvY2lhbCBpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjJlbTtcbiAgfVxufVxuXG4ucG9zdC1zb2NpYWwge1xuICBtYXJnaW4tYm90dG9tOiBAYmFzZWxpbmU7XG4gICYgPiBzcGFuIHtcbiAgICAvLyBjb3BpZWQgZnJvbSB3aWRnZXRzL2xhcmdvLWZvbGxvdy5sZXNzXG4gICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgIG1heC13aWR0aDogMjUwcHg7XG4gICAgbWFyZ2luOiAwLjVlbSAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgZm9udC1mYW1pbHk6IEBzYW5zRm9udEZhbWlseTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZm9udC1zaXplOiBAYmFzZUZvbnRTaXplO1xuICAgIGNvbG9yOiBAd2hpdGU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG5cbiAgICAmID4gYSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBhZGRpbmc6IDAuM2VtIDFlbSAwLjNlbSAwLjVlbTsgLy8gSXJyZWd1bGFyIHBhZGRpbmcgaXMgdG8gY291bnRlciAwLjJlbSBtYXJnaW4tbGVmdCBvbiB0aGUgaWNvbi5cblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIHBhZGRpbmc6IDAuM2VtIDAuNmVtO1xuICAgICAgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gICAgICAgIHBhZGRpbmc6IDAuM2VtIDAuMmVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBhIHtcbiAgICBjb2xvcjogQHdoaXRlO1xuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IEB3aGl0ZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cbiAgaSwgJjo6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbiAgLmVtYWlsOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgLm1vcmUtc29jaWFsLWxpbmtzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAb3JhbmdlO1xuICAgIGNvbG9yOiBAd2hpdGU7XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKEBvcmFuZ2UsIDUlKTtcbiAgICB9XG5cbiAgICAucG9wb3ZlciB7XG4gICAgICB0b3A6IDQwcHg7XG5cbiAgICAgIGEge1xuICAgICAgICBjb2xvcjogQGdyYXk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiBAZ3JheURhcms7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaSB7XG4gICAgICAgIGNvbG9yOiBAZ3JheUxpZ2h0O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVlbTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9XG5cbiAgICAgIHVsLCBsaSB7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgfVxuXG4gICAgICBsaSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNWVtO1xuICAgICAgICBmbG9hdDogbGVmdDtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMjhweDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgcmlnaHQ6IDA7XG5cbiAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIH1cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIHJpZ2h0OiAxOXB4O1xuICAgICAgICB9XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgIHJpZ2h0OiAyMHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiNmbG9hdGluZy1zb2NpYWwtYnV0dG9ucyxcbi5sYXJnby1mb2xsb3cge1xuICAucnNzIHtcbiAgICAuc29jaWFsQnV0dG9uIChAcnNzKTtcbiAgfVxuICAudHdpdHRlciB7XG4gICAgLnNvY2lhbEJ1dHRvbiAoQHR3aXR0ZXIpO1xuICB9XG4gIC5mYWNlYm9vayB7XG4gICAgLnNvY2lhbEJ1dHRvbiAoQGZhY2Vib29rKTtcbiAgfVxuICAubGlua2VkaW4ge1xuICAgIC5zb2NpYWxCdXR0b24gKEBsaW5rZWRpbik7XG4gIH1cbiAgLmdwbHVzIHtcbiAgICAuc29jaWFsQnV0dG9uIChAZ3BsdXMpO1xuICB9XG4gIC5mbGlja3Ige1xuICAgIC5zb2NpYWxCdXR0b24gKEBmbGlja3IpO1xuICB9XG4gIC55b3V0dWJlIHtcbiAgICAuc29jaWFsQnV0dG9uIChAeW91dHViZSk7XG4gIH1cbiAgLmluc3RhZ3JhbSB7XG4gICAgLnNvY2lhbEJ1dHRvbiAoQGluc3RhZ3JhbSk7XG4gIH1cbiAgLnBpbnRlcmVzdCB7XG4gICAgLnNvY2lhbEJ1dHRvbiAoQHBpbnRlcmVzdCk7XG4gIH1cbiAgLnR1bWJsciB7XG4gICAgLnNvY2lhbEJ1dHRvbiAoQHR1bWJscik7XG4gIH1cbiAgLmdpdGh1YiB7XG4gICAgLnNvY2lhbEJ1dHRvbiAoQGdpdGh1Yik7XG4gIH1cbiAgLnByaW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODU4OThGO1xuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCM4NTg5OEYsIDUlKTtcbiAgICB9XG4gIH1cbiAgLmVtYWlsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjI2NTZGO1xuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCM2MjY1NkYsIDUlKTtcbiAgICB9XG4gIH1cbiAgLnNvY2lhbC1idG4ge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICBtYXJnaW46IDAuNWVtIDA7IC8vIGxlZnQtYWxpZ24gYnV0dG9uc1xuICAgIHBhZGRpbmc6IDAuNjZlbTtcbiAgICBjb2xvcjogQHdoaXRlO1xuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IEB3aGl0ZTtcbiAgICB9XG4gIH1cbn1cblxuI2Zsb2F0aW5nLXNvY2lhbC1idXR0b25zIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xuICBib3JkZXI6IDFweCBzb2xpZCBAZ3JheUxpZ2h0ZXI7XG4gIHotaW5kZXg6IDA7XG5cbiAgLmhpZGRlbi1waG9uZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAucG9zdC1zb2NpYWwge1xuICAgICYgPiBzcGFuIHtcbiAgICAgIHBhZGRpbmctbGVmdDogLTEwMCU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgfVxuICAgICAgJiA+IGEge1xuICAgICAgICBjb2xvcjogQGdyYXlMaWdodGVyO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcGFkZGluZzogMThweDtcbiAgICAgICAgbWluLXdpZHRoOiAyOHB4O1xuICAgICAgICBtaW4taGVpZ2h0OiAyOHB4O1xuICAgICAgfVxuICAgIH1cbiAgICAmID4gLmVtYWlsOmhvdmVyLFxuICAgICYgPiBzcGFuOmhvdmVyID4gYSB7XG4gICAgICBjb2xvcjogQHdoaXRlO1xuICAgIH1cbiAgfVxuICAudHdpdHRlcixcbiAgLmZhY2Vib29rLFxuICAucHJpbnQsXG4gIC5lbWFpbCB7XG4gICAgY29sb3I6IEBncmF5TGlnaHRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAd2hpdGU7XG4gIH1cbiAgLm1vcmUtc29jaWFsLWxpbmtzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAd2hpdGU7XG4gICAgY29sb3I6IEBncmF5TGlnaHRlcjtcbiAgICBhLnBvcHBlZCxcbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEBvcmFuZ2U7XG4gICAgICBjb2xvcjogQHdoaXRlO1xuICAgIH1cbiAgICAucG9wb3ZlciB7XG4gICAgICB0b3A6IDY4cHg7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBpIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1ZW07XG4gICAgICB9XG4gICAgICBhIHtcbiAgICAgICAgY29sb3I6IEBncmF5O1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogQGdyYXlEYXJrO1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5zb2NpYWwtYnRuIHtcbiAgICBwYWRkaW5nOiAwLjVlbTtcbiAgfVxuICAucG9zdC1zb2NpYWwge1xuICAgIGE6aG92ZXIgaSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGkge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgfVxufVxuXG4vKiAyLjMgLSBEZWZhdWx0IFdQIFBvc3QgUGFnaW5hdGlvblxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBOT1RFOiBMYXJnbyBoYXMgYSB3aWRnZXQgdG8gaGFuZGxlIHBvc3QgcGFnaW5hdGlvbiwgdGhlc2Ugc3R5bGUgZGVmYXVsdCBXUCBvdXRwdXRcbiAqXG4gKiBAc2VlIC9sZXNzL2luYy93aWRnZXRzL2xhcmdvLXByZXYtbmV4dC1saW5rcy5sZXNzXG4gKi9cbi5wb3N0LXBhZ2luYXRpb24ge1xuICBhLCBzcGFuIHtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgZm9udC1mYW1pbHk6IEBzYW5zRm9udEZhbWlseTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZSAqIDAuODE1O1xuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIH1cbiAgfVxufVxuXG4vKiAyLjQgLSBQb3N0IG1ldGEgKi9cblxuLmxhYmVscyxcbi50YWdzLFxuLnBhZ2VyLFxuLnRhZ3MsXG4ucGFnZXIge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBmb250LXNpemU6IEBiYXNlRm9udFNpemU7XG4gIGZvbnQtZmFtaWx5OiBAc2Fuc0ZvbnRGYW1pbHk7XG59XG5cbi5zaW5nbGUtcG9zdCAuYXV0aG9yLWJveCxcbi5zaW5nbGUtYXJnb2xpbmtyb3VuZHVwcyAuYXV0aG9yLWJveCxcbi5sYWJlbHMge1xuICBoNSB7XG4gICAgZm9udC1zaXplOiBAYmFzZUZvbnRTaXplICogMS4yO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cbi5sYWJlbHMgLnNlcmllcy1sYWJlbCBoNSB7XG4gIGEucnNzLWxpbmsge1xuICAgIGZsb2F0OnJpZ2h0O1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICBjb2xvcjogI2Y4OTQwNjtcbiAgICBmb250LXNpemU6IEBiYXNlRm9udFNpemUgKyAyO1xuICAgICY6aG92ZXIge1xuICAgICAgLm9wYWNpdHkoODUpO1xuICAgIH1cbiAgfVxufVxuXG4vKiAyLjUgLSBMYWJsZXMgKi9cblxuLnNlcmllcy1sYWJlbCB7XG4gIG1hcmdpbjogNXB4O1xuICBwYWRkaW5nOiA4cHg7XG4gIGg1IHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMnB4O1xuICB9XG4gIHAge1xuICAgIGZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZSAqIDAuODE1O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLyoqXG4gKiBTdHlsZXMgZm9yIHRoZSBwb3N0LWxlYWRpbmcgaGVybywgdXNlZCBpbiBib3RoIHNpbmdsZS1jb2x1bW4gLm5vcm1hbCBwb3N0cyBhbmQgdHdvLWNvbHVtbiAuY2xhc3NpYyBwb3N0c1xuICpcbiAqIEBzaW5jZSAwLjUuNVxuICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL0lOTi9MYXJnby9pc3N1ZXMvOTM0XG4gKi9cblxuLmhlcm8ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZmVmZWY7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgMCAyNHB4O1xuICAmLmlzLWdhbGxlcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICYuc3BhbjEyIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuICBwLndwLWNhcHRpb24tdGV4dCxcbiAgcC53cC1tZWRpYS1jcmVkaXQge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZSAtIDI7XG4gIH1cbiAgcC53cC1jYXB0aW9uLXRleHQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWFyZ2luOiAwIDEycHg7XG4gICAgcGFkZGluZy1ib3R0b206IDEycHg7XG4gIH1cbiAgcC53cC1tZWRpYS1jcmVkaXQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIG1hcmdpbjogNHB4IDEycHggNHB4O1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gIH1cbiAgJi5pcy1lbWJlZCxcbiAgJi5pcy12aWRlbyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgICAuZW1iZWQtY29udGFpbmVyIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG4gICYuaXMtZW1wdHkge1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICB9XG59XG4iLCIuaG9tZSAuc3RvcmllcyBhcnRpY2xlIGltZy5hdHRhY2htZW50LW1lZGl1bSxcbi5zdWItc3RvcmllcyBpbWcuYXR0YWNobWVudC1wb3N0LXRodW1ibmFpbCB7XG4gIG1heC13aWR0aDogMzAlO1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbjogMCAwIDEwcHggMjBweDtcbn1cblxuI2hvbWVwYWdlLWJvdHRvbSB7XG4gIG1hcmdpbi10b3A6IEBiYXNlbGluZTtcbiAgLndpZGdldCB7XG4gICAgd2lkdGg6IDQyLjUlO1xuICAgIHBhZGRpbmc6IDIuNSU7XG4gICAgJi5vZGQge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgICAmLmV2ZW4ge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgY2xlYXI6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQ09NTUVOVFNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiNkaXNxdXNfdGhyZWFkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQGdyYXlMaWdodGVyO1xuICBwYWRkaW5nOiAyMHB4IDEwcHg7XG4gIGJvcmRlci10b3A6IDhweCBzb2xpZCBAZ3JheUxpZ2h0O1xuICBtYXJnaW4tYm90dG9tOiBAYmFzZWxpbmU7XG59XG5cbi8qID0gQ3VzdG9taXplZCBjb21tZW50IGZvcm0gc3R5bGVzIHZpYSB0aGUgdHdlbnR5IGVsZXZlbiB0aGVtZVxuaHR0cDovL3dvcmRwcmVzcy5vcmcvZXh0ZW5kL3RoZW1lcy90d2VudHllbGV2ZW5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiNjb21tZW50cyB7XG5cdGNsZWFyOmJvdGg7XG59XG4jY29udGVudCAjY29tbWVudHMtdGl0bGUge1xuXHRmb250LXNpemU6IEBiYXNlRm9udFNpemUgKiAxLjU7XG5cdG1hcmdpbi1ib3R0b206IEBiYXNlbGluZSAvIDI7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLm5vcGFzc3dvcmQge1xuXHRjb2xvcjogQGdyYXlMaWdodDtcblx0Zm9udC1zaXplOiBAYmFzZUZvbnRTaXplICogMS41O1xuXHRmb250LXdlaWdodDogMTAwO1xuXHRtYXJnaW46IEBiYXNlbGluZSAwO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4ubm9jb21tZW50cyB7XG5cdGRpc3BsYXk6bm9uZTtcbn1cbi5jb21tZW50bGlzdCB7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdG1hcmdpbjogMCBhdXRvO1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLmNvbW1lbnRsaXN0ID4gbGkuY29tbWVudCB7XG5cdGJhY2tncm91bmQ6ICNmNmY2ZjY7XG5cdGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG5cdG1hcmdpbjogMCAwIEBiYXNlbGluZSAvIDI7XG5cdHBhZGRpbmc6IDE0cHg7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5jb21tZW50bGlzdCAucGluZ2JhY2sge1xuXHRtYXJnaW46IDAgMCAxLjYyNWVtO1xuXHRwYWRkaW5nOiAwIDEuNjI1ZW07XG59XG4uY29tbWVudGxpc3QgLmNoaWxkcmVuIHtcblx0bGlzdC1zdHlsZTogbm9uZTtcblx0bWFyZ2luOiAwO1xufVxuLmNvbW1lbnRsaXN0IC5jaGlsZHJlbiBsaS5jb21tZW50IHtcblx0YmFja2dyb3VuZDogI2ZmZjtcblx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZGRkO1xuXHRtYXJnaW46IDEuNjI1ZW0gMCAwO1xuXHRwYWRkaW5nOiAxLjYyNWVtO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uY29tbWVudGxpc3QgLmNoaWxkcmVuIGxpLmNvbW1lbnQgLmZuIHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG4uY29tbWVudC1tZXRhIC5mbiB7XG5cdGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi5jb21tZW50LW1ldGEge1xuXHRjb2xvcjogIzY2Njtcblx0Zm9udC1zaXplOiBAYmFzZUZvbnRTaXplICogMC44MTU7XG5cdGxpbmUtaGVpZ2h0OiAxLjU7XG59XG4uY29tbWVudGxpc3QgLmNvbW1lbnQtY29udGVudCB7XG5cdGNsZWFyOmJvdGg7XG59XG4uY29tbWVudGxpc3QgLmNvbW1lbnQtY29udGVudCBwIHtcblx0Zm9udC1zaXplOiBAYmFzZUZvbnRTaXplO1xuXHRtYXJnaW4tYm90dG9tOiBAYmFzZWxpbmUgLyA0O1xufVxuLmNvbW1lbnRsaXN0IC5jaGlsZHJlbiBsaS5jb21tZW50IC5jb21tZW50LW1ldGEge1xuXHRsaW5lLWhlaWdodDogMS42MjVlbTtcblx0bWFyZ2luLWxlZnQ6IDUwcHg7XG59XG4uY29tbWVudGxpc3QgLmNoaWxkcmVuIGxpLmNvbW1lbnQgLmNvbW1lbnQtY29udGVudCB7XG5cdG1hcmdpbjogMS42MjVlbSAwIDA7XG59XG4uY29tbWVudC1tZXRhIGE6Zm9jdXMsXG4uY29tbWVudC1tZXRhIGE6YWN0aXZlLFxuLmNvbW1lbnQtbWV0YSBhOmhvdmVyIHtcbn1cbi5jb21tZW50bGlzdCAuYXZhdGFyIHtcblx0LmJveC1zaGFkb3coMCAxcHggMnB4ICNjY2MpO1xuXHRwYWRkaW5nOiAwO1xuXHRmbG9hdDpsZWZ0O1xuXHRtYXJnaW46IDAgMTBweCAxMHB4IDA7XG5cdHdpZHRoOiA1MHB4O1xuXHRoZWlnaHQ6IDUwcHg7XG59XG5cbi5jb21tZW50bGlzdCAuY2hpbGRyZW4gLmF2YXRhciB7XG5cdGJhY2tncm91bmQ6IG5vbmU7XG5cdC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcblx0LW1vei1ib3gtc2hhZG93OiBub25lO1xuXHRib3gtc2hhZG93OiBub25lO1xuXHRsZWZ0OiAyLjJlbTtcblx0cGFkZGluZzogMDtcblx0dG9wOiAyLjJlbTtcbn1cbmEuY29tbWVudC1yZXBseS1saW5rIHtcblx0YmFja2dyb3VuZDogI2VlZTtcblx0Y29sb3I6ICM2NjY7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRwYWRkaW5nOiAwIDhweDtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuYS5jb21tZW50LXJlcGx5LWxpbms6aG92ZXIsXG5hLmNvbW1lbnQtcmVwbHktbGluazpmb2N1cyxcbmEuY29tbWVudC1yZXBseS1saW5rOmFjdGl2ZSB7XG5cdGJhY2tncm91bmQ6ICM4ODg7XG5cdGNvbG9yOiAjZmZmO1xufVxuYS5jb21tZW50LXJlcGx5LWxpbmsgPiBzcGFuIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHRvcDogLTFweDtcbn1cblxuLyogUG9zdCBhdXRob3IgaGlnaGxpZ2h0aW5nICovXG4uY29tbWVudGxpc3QgPiBsaS5ieXBvc3RhdXRob3Ige1xuXHRiYWNrZ3JvdW5kOiAjZGRkO1xuXHRib3JkZXItY29sb3I6ICNkM2QzZDM7XG59XG4uY29tbWVudGxpc3QgPiBsaS5ieXBvc3RhdXRob3IgLmNvbW1lbnQtbWV0YSB7XG5cdGNvbG9yOiAjNTc1NzU3O1xufVxuLmNvbW1lbnRsaXN0ID4gbGkuYnlwb3N0YXV0aG9yIC5jb21tZW50LW1ldGEgYTpmb2N1cyxcbi5jb21tZW50bGlzdCA+IGxpLmJ5cG9zdGF1dGhvciAuY29tbWVudC1tZXRhIGE6YWN0aXZlLFxuLmNvbW1lbnRsaXN0ID4gbGkuYnlwb3N0YXV0aG9yIC5jb21tZW50LW1ldGEgYTpob3ZlciB7XG59XG4uY29tbWVudGxpc3QgPiBsaS5ieXBvc3RhdXRob3I6YmVmb3JlIHtcblx0Y29udGVudDogdXJsKGltYWdlcy9jb21tZW50LWFycm93LWJ5cG9zdGF1dGhvci5wbmcpO1xufVxuXG4vKiBQb3N0IEF1dGhvciB0aHJlYWRlZCBjb21tZW50cyAqL1xuLmNvbW1lbnRsaXN0IC5jaGlsZHJlbiA+IGxpLmJ5cG9zdGF1dGhvciB7XG5cdGJhY2tncm91bmQ6ICNkZGQ7XG5cdGJvcmRlci1jb2xvcjogI2QzZDNkMztcbn1cblxuLyogQ29tbWVudCBGb3JtICovXG4jcmVzcG9uZCB7XG5cdGJhY2tncm91bmQ6ICNmNmY2ZjY7XG5cdGJvcmRlcjogMXB4IHNvbGlkICNlZWU7XG5cdG1hcmdpbjogMCBhdXRvIEBiYXNlbGluZTtcblx0cGFkZGluZzogNCUgNCUgOCU7XG5cdHdpZHRoOiA5MiU7XG59XG4jcmVzcG9uZCBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbiNyZXNwb25kIHRleHRhcmVhIHtcblx0YmFja2dyb3VuZDogI2ZmZjtcblx0Ym9yZGVyOiA0cHggc29saWQgI2VlZTtcblx0LXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAzcHggcmdiYSgyMDQsMjA0LDIwNCwwLjk1KTtcblx0LW1vei1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAzcHggcmdiYSgyMDQsMjA0LDIwNCwwLjk1KTtcblx0Ym94LXNoYWRvdzogaW5zZXQgMCAxcHggM3B4IHJnYmEoMjA0LDIwNCwyMDQsMC45NSk7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0cGFkZGluZzogMTBweDtcblx0dGV4dC1pbmRlbnQ6IDgwcHg7XG59XG4jcmVzcG9uZCAuY29tbWVudC1mb3JtLWF1dGhvcixcbiNyZXNwb25kIC5jb21tZW50LWZvcm0tZW1haWwsXG4jcmVzcG9uZCAuY29tbWVudC1mb3JtLXVybCxcbiNyZXNwb25kIC5jb21tZW50LWZvcm0tY29tbWVudCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0bWFyZ2luLXRvcDogLTIwcHg7XG59XG4jcmVzcG9uZCAuY29tbWVudC1mb3JtLWF1dGhvciBsYWJlbCxcbiNyZXNwb25kIC5jb21tZW50LWZvcm0tZW1haWwgbGFiZWwsXG4jcmVzcG9uZCAuY29tbWVudC1mb3JtLXVybCBsYWJlbCxcbiNyZXNwb25kIC5jb21tZW50LWZvcm0tY29tbWVudCBsYWJlbCB7XG5cdGJhY2tncm91bmQ6ICNlZWU7XG5cdC13ZWJraXQtYm94LXNoYWRvdzogMXB4IDJweCAycHggcmdiYSgyMDQsMjA0LDIwNCwwLjgpO1xuXHQtbW96LWJveC1zaGFkb3c6IDFweCAycHggMnB4IHJnYmEoMjA0LDIwNCwyMDQsMC44KTtcblx0Ym94LXNoYWRvdzogMXB4IDJweCAycHggcmdiYSgyMDQsMjA0LDIwNCwwLjgpO1xuXHRjb2xvcjogIzU1NTtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRmb250LXNpemU6IDAuODE1ZW07XG5cdGxlZnQ6IDRweDtcblx0bWluLXdpZHRoOiA2MHB4O1xuXHRwYWRkaW5nOiA0cHggMTBweDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR0b3A6IDQwcHg7XG5cdHotaW5kZXg6IDE7XG59XG4jcmVzcG9uZCBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyxcbiNyZXNwb25kIHRleHRhcmVhOmZvY3VzIHtcblx0dGV4dC1pbmRlbnQ6IDA7XG5cdHotaW5kZXg6IDE7XG59XG4jcmVzcG9uZCB0ZXh0YXJlYSB7XG5cdHJlc2l6ZTogdmVydGljYWw7XG5cdHdpZHRoOiA5NSU7XG59XG4jcmVzcG9uZCAuY29tbWVudC1mb3JtLWF1dGhvciAucmVxdWlyZWQsXG4jcmVzcG9uZCAuY29tbWVudC1mb3JtLWVtYWlsIC5yZXF1aXJlZCB7XG5cdGNvbG9yOiAjYmQzNTAwO1xuXHRmb250LXNpemU6IDIycHg7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRsZWZ0OiA3NSU7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiA0NXB4O1xuXHR6LWluZGV4OiAxO1xufVxuI3Jlc3BvbmQgLmNvbW1lbnQtbm90ZXMsXG4jcmVzcG9uZCAubG9nZ2VkLWluLWFzIHtcblx0Zm9udC1zaXplOiAwLjgxNWVtO1xufVxuI3Jlc3BvbmQgcCB7XG5cdG1hcmdpbjogMTBweCAwO1xufVxuI3Jlc3BvbmQgLmZvcm0tc3VibWl0IHtcblx0ZmxvYXQ6IHJpZ2h0O1xuXHRtYXJnaW46IC0yMHB4IDAgMTBweDtcbn1cbiNyZXNwb25kIGlucHV0I3N1Ym1pdCB7XG5cdGJhY2tncm91bmQ6ICMyMjI7XG5cdGJvcmRlcjogbm9uZTtcblx0LmJveC1zaGFkb3coMCAxcHggMnB4IHJnYmEoMCwwLDAsMC4zKSk7XG5cdGNvbG9yOiAjZWVlO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGZvbnQtc2l6ZTogMTVweDtcblx0bWFyZ2luOiAxNHB4IDAgMjBweDtcblx0cGFkZGluZzogNXB4IDIycHg7XG5cdHRleHQtc2hhZG93OiAwIC0xcHggMCByZ2JhKDAsMCwwLDAuMyk7XG59XG5cbiNyZXNwb25kIGlucHV0I3N1Ym1pdDpob3ZlciB7XG5cdGJhY2tncm91bmQ6ICM1NTU7XG59XG5cbiNyZXNwb25kIGlucHV0I3N1Ym1pdDphY3RpdmUge1xuXHRiYWNrZ3JvdW5kOiAjMTk4MmQxO1xuXHRjb2xvcjogI2JmZGRmMztcbn1cbiNyZXNwb25kICNjYW5jZWwtY29tbWVudC1yZXBseS1saW5rIHtcblx0Y29sb3I6ICM2NjY7XG5cdG1hcmdpbi1sZWZ0OiAwLjY2N2VtO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4jcmVzcG9uZCAubG9nZ2VkLWluLWFzIGE6aG92ZXIsXG4jcmVzcG9uZCAjY2FuY2VsLWNvbW1lbnQtcmVwbHktbGluazpob3ZlciB7XG5cdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLmNvbW1lbnRsaXN0ICNyZXNwb25kIHtcblx0bWFyZ2luOiAxLjYyNWVtIDAgMDtcblx0d2lkdGg6IGF1dG87XG59XG4jcmVwbHktdGl0bGUge1xuXHRjb2xvcjogIzM3MzczNztcblx0Zm9udC1zaXplOiAxLjVlbTtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdGxpbmUtaGVpZ2h0OiAzMHB4O1xufVxuI2NhbmNlbC1jb21tZW50LXJlcGx5LWxpbmsge1xuXHRjb2xvcjogIzg4ODtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGZvbnQtc2l6ZTogMC42NjdlbTtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0bGluZS1oZWlnaHQ6IDIuMmVtO1xuXHRsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHJpZ2h0OiAxLjYyNWVtO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdHRvcDogMS4xZW07XG59XG4jY2FuY2VsLWNvbW1lbnQtcmVwbHktbGluazpmb2N1cyxcbiNjYW5jZWwtY29tbWVudC1yZXBseS1saW5rOmFjdGl2ZSxcbiNjYW5jZWwtY29tbWVudC1yZXBseS1saW5rOmhvdmVyIHtcblx0Y29sb3I6ICNmZjRiMzM7XG59XG4jcmVzcG9uZCBsYWJlbCB7XG5cdGxpbmUtaGVpZ2h0OiAyLjJlbTtcbn1cbiNyZXNwb25kIGlucHV0W3R5cGU9dGV4dF0ge1xuXHRkaXNwbGF5OiBibG9jaztcblx0aGVpZ2h0OiAyNHB4O1xuXHR3aWR0aDogNzUlO1xufVxuI3Jlc3BvbmQgcCB7XG5cdGZvbnQtc2l6ZTogMC44MTVlbTtcbn1cbnAuY29tbWVudC1mb3JtLWNvbW1lbnQge1xuXHRtYXJnaW46IDA7XG59XG4uZm9ybS1hbGxvd2VkLXRhZ3Mge1xuXHRkaXNwbGF5OiBub25lO1xufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgV2lkZ2V0cyAtIFN0eWxpbmcgd2lkZ2V0cyBhbmQgc2lkZWJhcnMuXG5cbiAgMS4wIC0gR2xvYmFsIFdpZGdldCBTdHlsZXNcbiAgICAxLjEgLSBCYXNlIFN0eWxlc1xuICAgIDEuMiAtIFRpdGxlIFN0eWxlc1xuICAgIDEuMyAtIEZvb3RlciBTdHlsZXNcbiAgICAxLjQgLSBCYWNrZ3JvdW5kIFN0eWxlc1xuICAgIDEuNSAtIFJlc2V0cyBhbmQgRml4ZXNcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgMi4wIC0gV2lkZ2V0IEZpbGUgSW1wb3J0c1xuICAgIDIuMSAtIERlZmF1bHQgV29yZFByZXNzIFdpZGdldHMgKGZpbGUgaW1wb3J0cylcbiAgICAyLjIgLSBMYXJnbyBXaWRnZXRzIChmaWxlIGltcG9ydHMpXG4gICAgMi4zIC0gSU5OLXN1cHBvcnRlZCB3aWRnZXRzIChmaWxlIGltcG9ydHMpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgMS4wIC0gR2xvYmFsIFdpZGdldCBTdHlsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIDEuMSAtIEJhc2UgU3R5bGVzICovXG4ud2lkZ2V0IHtcbiAgbWFyZ2luLWJvdHRvbTogQGJhc2VsaW5lO1xuICBwLCB1bCB7XG4gICAgZm9udC1zaXplOiBAYmFzZUZvbnRTaXplO1xuICB9XG4gIHVsIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogQGJhc2VsaW5lLzUgMCAwIDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICB1bCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiBAYmFzZWxpbmUgLyA1O1xuICAgICAgbWFyZ2luLXRvcDogQGJhc2VsaW5lICogMC41O1xuICAgIH1cbiAgfVxuICBsaSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gIH1cbiAgcC5tb3JlbGluayB7XG4gICBtYXJnaW46IC0oQGJhc2VsaW5lIC8gNCkgMCAwO1xuICAgZm9udC1zaXplOiBAYmFzZUZvbnRTaXplOyAvLyB0byBhdm9pZCBvdmVycmlkZXNcbiAgfVxuXG4gIGltZyB7XG4gICAgLy8gU21hbGwgdGh1bWJuYWlscyBhcmUgZWl0aGVyIHJpZ2h0IG9yIGxlZnQgYWxpZ25lZC5cbiAgICAmLnJpZ2h0LWFsaWduIHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIHBhZGRpbmc6IC4yZW0gMCAuNGVtIC42NmVtO1xuICAgIH1cbiAgICAmLmxlZnQtYWxpZ24ge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBwYWRkaW5nOiAuMmVtIC42NmVtIC40ZW0gMDtcbiAgICB9XG4gICAgLy8gTGFyZ2UgdGh1bWJuYWlscyBnZXQgZGlmZmVyZW50IHBhZGRpbmcuXG4gICAgJi5hdHRhY2htZW50LWxhcmdlLCYuYXR0YWNobWVudC1tZWRpdW0ge1xuICAgICAgcGFkZGluZzogMCAwIC42NmVtO1xuICAgIH1cbiAgfVxuICBoNSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC4yZW07XG4gICAgZm9udC1zaXplOiAxLjI1ICogQGJhc2VGb250U2l6ZTtcbiAgfVxufVxuXG4ucm93LWZsdWlkIHtcbiAgJiA+IC5zcGFuMSxcbiAgJiA+IC5zcGFuMixcbiAgJiA+IC5zcGFuMyxcbiAgJiA+IC5zcGFuNCxcbiAgJiA+IC5zcGFuNSxcbiAgJiA+IC5zcGFuNixcbiAgJiA+IC5zcGFuNyxcbiAgJiA+IC5zcGFuOCxcbiAgJiA+IC5zcGFuOSxcbiAgJiA+IC5zcGFuMTAsXG4gICYgPiAuc3BhbjExLFxuICAmID4gLnNwYW4xMiB7XG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAmID4gKiA+IC53aWRnZXQsXG4gICAgICAmID4gLndpZGdldCB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IEBiYXNlbGluZTtcbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgJiA+ICogPiAud2lkZ2V0LFxuICAgICAgJiA+IC53aWRnZXQge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IEBiYXNlbGluZTtcbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qIDEuMiAtIFRpdGxlIFN0eWxlcyAqL1xuXG4ud2lkZ2V0dGl0bGUsXG4uc3RvcmllcyBoMy53aWRnZXR0aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IEBiYXNlbGluZSAvIDM7XG4gIGZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZSAqIDEuMjU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogQGJsYWNrO1xuICBhIHtcbiAgICBjb2xvcjogQGJsYWNrO1xuICB9XG59XG5cbi8qIDEuMyAtIEZvb3RlciBTdHlsZXMgKi9cblxuI3NpdGUtZm9vdGVyIHtcbiAgLmRhcmtMaWdodChAaGVhZGVyRm9vdGVyQ29sb3IpO1xuICBhOmhvdmVyIHtcbiAgICBjb2xvcjogbGlnaHRlbihAbGlua0NvbG9yLCAyMCUpO1xuICB9XG4gIC53aWRnZXR0aXRsZSxcbiAgbGkubWVudS1sYWJlbCB7XG4gICAgLmRhcmtMaWdodChAaGVhZGVyRm9vdGVyQ29sb3IpO1xuICAgIGZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIG1hcmdpbi1ib3R0b206IEBiYXNlbGluZSAvIDM7XG4gICAgcGFkZGluZy1ib3R0b206IEBiYXNlbGluZSAvIDU7XG4gIH1cbiAgLndpZGdldCB7XG4gICAgbWFyZ2luOiAwIDAgKEBiYXNlbGluZSAvIDIpIDA7XG4gIH1cbiAgLndpZGdldHRpdGxlLFxuICAud2lkZ2V0IHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgfVxuICBwLCBsaSB7XG4gICAgZm9udC1zaXplOiBAYmFzZUZvbnRTaXplICogMC45O1xuICB9XG4gIHVsIHtcbiAgICBtYXJnaW46MDtcbiAgICBmb250LWZhbWlseTogQHNhbnNGb250RmFtaWx5O1xuICAgIGxpIHtcbiAgICAgIGxpbmUtaGVpZ2h0OjEuMjU7XG4gICAgICBtYXJnaW4tYm90dG9tOiBAYmFzZWxpbmUgLyAyO1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICB9XG4gIH1cbiAgLyogRk9PVEVSIEZPUk0gLyBTRUFSQ0ggU1RZTEVTICovXG4gIGlucHV0LFxuICBzZWxlY3Qge1xuICAgIGZvbnQtZmFtaWx5OiBAc2Fuc0ZvbnRGYW1pbHk7XG4gIH1cbiAgc2VsZWN0IHtcbiAgICB3aWR0aDogOTAlO1xuICB9XG4gIGlucHV0LnNlYXJjaC1xdWVyeSB7XG4gICAgd2lkdGg6IDY3JTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xuICAgIGhlaWdodDogMTlweDsgLy8gbGVhdmUgdGhpcyBhbG9uZSwgZm9ybXMgYmUgY2hhbGxlbmdpbmdcbiAgfVxuICBpbnB1dC5zZWFyY2gtc3VibWl0IHtcbiAgICBtYXgtd2lkdGg6IDI1JTtcbiAgICBwYWRkaW5nOiAwLjFlbSAwLjVlbTtcbiAgfVxufVxuXG4jc3VwcGxlbWVudGFyeSAubWVudS1kb250LW1pc3MtY29udGFpbmVyIGg0LFxuI3NpdGUtZm9vdGVyIGFzaWRlIGxpLm1lbnUtbGFiZWwge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiAxLjQgLSBCYWNrZ3JvdW5kIFN0eWxlcyAoUmV2ZXJzZSBhbmQgTm9uZSkgKi9cblxuLndpZGdldC5yZXYge1xuICBjb2xvcjogQHdoaXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBAYmFzZUNvbG9yO1xuICAud2lkZ2V0dGl0bGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEB3aGl0ZTtcbiAgICBjb2xvcjogQGJhc2VDb2xvcjtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgYSB7XG4gICAgICBjb2xvcjogQGJhc2VDb2xvcjtcbiAgICB9XG4gIH1cbiAgYSB7XG4gICAgY29sb3I6IEB3aGl0ZTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuICAud2lkZ2V0dGl0bGUgYSB7XG4gICAgY29sb3I6IEBncmF5RGFyaztcbiAgfVxufVxuLndpZGdldC5uby1iZyB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHAsIHVsIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgfVxuICAud2lkZ2V0dGl0bGUge1xuICAgIGNvbG9yOiBAYmxhY2s7XG4gIH1cbn1cblxuLyogMS41IC0gUmVzZXRzIGFuZCBGaXhlcyAqL1xuXG4jc2lkZWJhciBpZnJhbWUge1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi8qIDEuNiAtIHNpZGViYXIgc3R5bGVzICovXG4jc2lkZWJhciAud2lkZ2V0IHtcbiAgcGFkZGluZzogMCAwIDAgQGJhc2VsaW5lO1xuICAmLnJldiB7XG4gICAgcGFkZGluZzogQGJhc2VsaW5lIEBiYXNlbGluZSAwO1xuICB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cbi5zaW5nbGUubm9ybWFsICNzaWRlYmFyIC53aWRnZXQge1xuICBwYWRkaW5nOiAwIChAYmFzZWxpbmUgLyAyKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgMi4xIC0gV29yZFByZXNzIERlZmF1bHQgV2lkZ2V0c1xuXG4gICAgRWl0aGVyOlxuICAgIC0gQ1JFQVRFIGEgbmV3IGZpbGUgZm9yIHNpZ25pZmljYW50IGNoYW5nZXMgdG8gYSBkZWZhdWx0IHdpZGdldCdzIG91dHB1dC5cbiAgICAtIEFERCBhIHNlY3Rpb24gdG8gdGhlIHdwLWdlbmVyYWwubGVzcyBmaWxlIGFuZCBkb2N1bWVudCBoZXJlLlxuXG4gICAgd3AtZ2VuZXJhbC5sZXNzXG4gICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLndpZGdldF9hcmNoaXZlcyAtIEFyY2hpdmVzIGRyb3Bkb3duXG4gICAgLndpZGdldF9jYXRlZ29yaWVzIC0gQ2F0ZWdvcmllcyBkcm9wZG93blxuICAgIC53aWRnZXRfc2VhcmNoIC0gU2VhcmNoIGZvcm1cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbkBpbXBvcnQgXCJ3aWRnZXRzL3dwLWdlbmVyYWwubGVzc1wiO1xuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgMi4yIC0gTGFyZ28gd2lkZ2V0IHN0eWxlc1xuXG4gICAgVGhpcyBzZWN0aW9uIGFpbXMgdG8gaGF2ZSBvbmUgZmlsZSBmb3IgZXZlcnkgd2lkZ2V0IGluY2x1ZGVkIGluIExhcmdvLCBhbmRcbiAgICBzZWxlY3QgdGhpcmQtcGFydHkgd2lkZ2V0cyB0aGF0IExhcmdvIHN1cHBvcnRzLiBJZiB5b3UgYWRkIGEgcnVsZSBmb3IgYVxuICAgIHdpZGdldCBpbiBhIGZpbGUgdGhhdCBkb2VzIG5vdCBiZWxvbmcgdG8gdGhhdCB3aWRnZXQsIHBsZWFzZSBkb2N1bWVudCBoZXJlXG4gICAgdGhlIGZpbGUgeW91IGFyZSBhZGRpbmcgdGhlIHJ1bGUgdG8uXG5cbiAgICBTb21lIGZpbGVzIGluIHRoaXMgc2VjdGlvbiBjb250YWluIG5vIHJ1bGVzLiBTZWUgdGhlaXIgQHNlZSBkaXJlY3RpdmVzIGZvclxuICAgIG1vcmUgaW5mb3JtYXRpb24uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vLyBGaWxlbmFtZXMgYXJlIGJhc2VkIG9uIHRoZSBuYW1lIG9mIHRoZSB3aWRnZXQgYXMgaXQgYXBwZWFycyBpbiB0aGUgV1AgQWRtaW4uXG5AaW1wb3J0IFwid2lkZ2V0cy9sYXJnby1hYm91dC1zaXRlLmxlc3NcIjtcbkBpbXBvcnQgXCJ3aWRnZXRzL2xhcmdvLWF1dGhvci1iaW8ubGVzc1wiO1xuQGltcG9ydCBcIndpZGdldHMvbGFyZ28tZGlzY2xhaW1lci5sZXNzXCI7XG5AaW1wb3J0IFwid2lkZ2V0cy9sYXJnby1kb25hdGUtd2lkZ2V0Lmxlc3NcIjtcbkBpbXBvcnQgXCJ3aWRnZXRzL2xhcmdvLWZvbGxvdy5sZXNzXCI7XG5AaW1wb3J0IFwid2lkZ2V0cy9sYXJnby1pbWFnZS13aWRnZXQubGVzc1wiO1xuQGltcG9ydCBcIndpZGdldHMvbGFyZ28tcHJldi1uZXh0LWxpbmtzLmxlc3NcIjtcbkBpbXBvcnQgXCJ3aWRnZXRzL2xhcmdvLXJlY2VudC1jb21tZW50cy5sZXNzXCI7XG5AaW1wb3J0IFwid2lkZ2V0cy9sYXJnby1yZWxhdGVkLXBvc3RzLmxlc3NcIjtcbkBpbXBvcnQgXCJ3aWRnZXRzL2xhcmdvLXNlcmllcy1wb3N0cy5sZXNzXCI7XG5AaW1wb3J0IFwid2lkZ2V0cy9sYXJnby1zdGFmZi1yb3N0ZXIubGVzc1wiO1xuQGltcG9ydCBcIndpZGdldHMvbGFyZ28tdGFnLWxpc3QubGVzc1wiO1xuQGltcG9ydCBcIndpZGdldHMvbGFyZ28tdGF4b25vbXktbGlzdC5sZXNzXCI7XG5AaW1wb3J0IFwid2lkZ2V0cy9sYXJnby10d2l0dGVyLmxlc3NcIjtcbiIsIi8qKlxuICogR2VuZXJhbCBzdHlsZXMgZm9yIFdvcmRQcmVzcyBkZWZhdWx0IHdpZGdldHNcbiAqXG4gKiBAc2luY2UgMC41LjNcbiAqL1xuLndpZGdldF9hcmNoaXZlIHNlbGVjdCxcbi53aWRnZXRfY2F0ZWdvcmllcyBzZWxlY3QsXG4ubGFyZ28tdGF4b25vbXktbGlzdCBzZWxlY3QsXG4ud2lkZ2V0X3NlYXJjaCBmb3JtIHtcbiAgbWFyZ2luOiBAYmFzZWxpbmUvNSAwO1xufVxuLndpZGdldF9hcmNoaXZlIGxhYmVsLFxuLndpZGdldF9jYXRlZ29yaWVzIGxhYmVsIHtcbiAgLnZpc3VhbGx5aGlkZGVuXG59XG4iLCIvKipcbiAqIFN0eWxlcyBmb3IgdGhlIExhcmdvIEFib3V0IFNpdGUgd2lkZ2V0XG4gKlxuICogQHNpbmNlIDAuM1xuICovXG5cbi5sYXJnby1hYm91dCBwIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuI3NpdGUtZm9vdGVyIC5sYXJnby1hYm91dCBwIHtcbiAgbWFyZ2luLWJvdHRvbTogQGJhc2VsaW5lIC8gMjtcbn1cbiIsIi8qKlxuICogU3R5bGVzIGZvciB0aGUgTGFyZ28gQXV0aG9yIEJpbyB3aWRnZXRcbiAqXG4gKiBAc2luY2UgMC41LjNcbiAqL1xuXG4ud2lkZ2V0IC5hdXRob3ItYm94IHVsIHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xufVxuLy8gQVVUSE9SIEJPWFxuLmF1dGhvci1ib3gge1xuICBjbGVhcjogYm90aDtcbiAgbWFyZ2luOiAwO1xuICBpbWcuYXZhdGFyIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDVweCAxNXB4IDEwcHggMDtcbiAgICBwYWRkaW5nOiA0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgQGdyYXlMaWdodGVyO1xuICB9XG4gIHAge1xuICAgIGZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZTtcbiAgICBtYXJnaW4tYm90dG9tOiBAYmFzZWxpbmUvMztcbiAgfVxuICB1bCB7XG4gICAgbGlzdC1zdHlsZTpub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBsaSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgbWluLXdpZHRoOiAzMHB4O1xuICAgICAgYSB7XG5cdCAgICBkaXNwbGF5OiBibG9jaztcblx0ICAgIHBhZGRpbmc6IDRweDtcblx0ICAgIGNvbG9yOiBAd2hpdGU7XG5cdCAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAZ3JheURhcms7XG5cdCAgICAuYm9yZGVyLXJhZGl1cyg0cHgpO1xuXHQgICAgJjpob3ZlciB7XG5cdFx0ICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKEBncmF5RGFyaywxMCUpO1xuXHRcdH0gICAgXG4gICAgICB9XG4gICAgICBpIHtcbiAgICAgICAgcGFkZGluZzogNHB4O1xuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5hdXRob3ItcG9zdHMtbGluayB7XG4gICAgICAgIGZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZSAtIDM7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBmb250LWZhbWlseTogQHNhbnNGb250RmFtaWx5O1xuICAgICAgICBhIHtcblx0ICAgICAgcGFkZGluZzogNnB4IDEwcHg7XG4gICAgICAgICAgY29sb3I6IEB3aGl0ZTtcbiAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCIvKipcbiAqIFN0eWxlcyBmb3IgdGhlIExhcmdvIERpc2NsYWltZXIgd2lkZ2V0XG4gKlxuICogQHNpbmNlIDAuNS4zXG4gKi9cbmJvZHkubm9ybWFsLnNpbmdsZS1wb3N0LFxuYm9keS5ub3JtYWwucGFnZSB7XG4gIC5hcnRpY2xlLWJvdHRvbSB7XG4gICAgLmxhcmdvLWRpc2NsYWltZXIge1xuICAgICAgY29sb3I6IEBncmF5RGFyaztcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogU3R5bGVzIGZvciB0aGUgTGFyZ28gRG9uYXRlIFdpZGdldFxuICpcbiAqIEBzaW5jZSAwLjNcbiAqL1xuXG4ubGFyZ28tZG9uYXRlIHAge1xuICBtYXJnaW4tYm90dG9tOiBAYmFzZWxpbmUgLyAzO1xufVxuIiwiLyoqXG4gKiBTdHlsZXMgZm9yIHRoZSBMYXJnbyBGb2xsb3cgd2lkZ2V0XG4gKlxuICogTm90ZTogc3R5bGVzIGZvciBzb2NpYWwgYnV0dG9ucyBhcmUgaW4gc2luZ2xlLmxlc3NcbiAqXG4gKiBAc2luY2UgMC41LjNcbiAqL1xuLnN1YnNjcmliZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IEBiYXNlRm9udFNpemUgLSAyO1xuICBmb250LWZhbWlseTogQHNhbnNGb250RmFtaWx5O1xuICBtYXJnaW4tYm90dG9tOiBAYmFzZWxpbmUgLyA0O1xuICBjb2xvcjogQGdyYXk7XG4gICY6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiBAZ3JheURhcmtlcjtcbiAgfVxuICBpIHtcbiAgICBjb2xvcjogQHdoaXRlO1xuICAgIHBhZGRpbmc6IDAgMWVtIDAgMC41ZW07XG4gICAgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCBAd2hpdGU7XG4gICAgZm9udC1zaXplOiBAYmFzZUZvbnRTaXplIC0gMztcbiAgICBtYXJnaW4tcmlnaHQ6IEBiYXNlbGluZSAvIDQ7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbn1cblxuLmFydGljbGUtYm90dG9tIC5sYXJnby1mb2xsb3cge1xuICBwYWRkaW5nOiAwO1xufVxuIiwiLyoqXG4gKiBTdHlsZXMgZm9yIHRoZSBMYXJnbyBJbWFnZSBXaWRnZXQsIGFrYSBcIkltYWdlIFdpZGdldFwiXG4gKlxuICogQHNlZSAvaW5jL3dpZGdldHMvbGFyZ28taW1hZ2Utd2lkZ2V0LnBocFxuICogQHNpbmNlIDAuNS4zXG4gKi9cblxuLy8gTWFueSBzdHlsZXMgZm9yIHRoaXMgd2lkZ2V0IGFyZSBpbmNsdWRlZCBpbiAvaW5jL3dpZGdldHMvbGFyZ28taW1hZ2Utd2lkZ2V0LnBocFxuXG4jc2l0ZS1mb290ZXIgLndpZGdldC1zcC1pbWFnZSBpbWcge1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgLy8gYmVjYXVzZSB0aGUgd2lkZ2V0IHVzZXMgaW5saW5lIG1heC13aWR0aDpweCBmaXhlZCB3aWR0aHNcbn1cbiIsIi8qKlxuICogU3R5bGVzIGZvciBMYXJnbyBQcmV2L05leHQgTGlua3Mgd2lkZ2V0c1xuICpcbiAqIEBzaW5jZSAwLjUuM1xuICovXG5cbi8vIFRoaXMgd2lkZ2V0IGlzIGFuIGluc3RhbmNlIG9mIGxhcmdvX2NvbnRlbnRfbmF2KCdzaW5nbGUtcG9zdC1uYXYtYmVsb3cnKSxcbi8vIHdoaWNoIHVzZXMgdGhlIElEICNuYXYtYmVsb3cgYW5kIGlzIG9ubHkgb3V0cHV0IG9uIHNpbmdsZSBwYWdlcy5cblxuLyogTmV4dC1wcmV2IG5hdmlnYXRpb24gXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBUaGVzZSBzdHlsZXMgd2VyZSBtb3ZlZCBmcm9tIHNpbmdsZS5sZXNzICovXG4ucGFnZXIge1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogMTBweCAxNXB4O1xuICAgIGNvbG9yOiBAdGV4dENvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAcG9zdEJveEJhY2tncm91bmRDb2xvciwgMTAlKTtcbiAgICAmOmhvdmVyIHtcbiAgXHQgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAcG9zdEJveEJhY2tncm91bmRDb2xvciwgMzUlKTtcbiAgXHQgIGNvbG9yOiBAd2hpdGU7XG4gIFx0ICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG59XG4ubmV4dCB7XG4gIHdpZHRoOiA0OCU7XG4gIGZsb2F0OiByaWdodDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGltZyB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHBhZGRpbmctbGVmdDogQGJhc2VsaW5lIC0gNDtcbiAgfVxufVxuLnByZXZpb3VzIHtcbiAgd2lkdGg6IDQ4JTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGltZyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZy1yaWdodDogQGJhc2VsaW5lIC0gNDtcbiAgfVxufVxuIiwiLyoqXG4gKiBTdHlsZXMgZm9yIHRoZSBMYXJnbyBSZWNlbnQgQ29tbWVudHMgd2lkZ2V0XG4gKlxuICogQHNlZSAvbGVzcy9pbmMvY29tbWVudHMubGVzcyBwcm92aWRlcyBtYW55IHN0eWxlcyBub3QgZW51bWVyYXRlZCBoZXJlXG4gKiBAc2luY2UgMC41LjNcbiAqL1xuXG4ud2lkZ2V0LmxhcmdvLXJlY2VudC1jb21tZW50cyB7XG4gIHVsIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICB9XG4gIGxpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tYm90dG9tOiAyZW07XG4gIH1cbiAgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogQGJhc2VsaW5lIC8gNTtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgICYuY29tbWVudC1leGNlcnB0IHtcbiAgICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgfVxuICAgICYuY29tbWVudC1wb3N0IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cbiAgICAmLmNvbW1lbnQtbWV0YSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICBhIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6NzAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiBTdHlsZXMgZm9yIHRoZSBMYXJnbyBSZWxhdGVkIFBvc3RzIHdpZGdldFxuICpcbiAqIEBzZWUgL2xlc3MvaW5jL3Jlc3BvbnNpdmUtNzY3cHgtbWF4Lmxlc3NcbiAqIEBzZWUgL2xlc3MvaW5jL3NpbmdsZS5sZXNzXG4gKiBAc2luY2UgMC41LjNcbiAqL1xuXG4ud2lkZ2V0LmxhcmdvLXJlbGF0ZWQtcG9zdHMge1xuICAud2lkZ2V0dGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS43NWVtO1xuICAgIG1hcmdpbi1ib3R0b206IEBiYXNlbGluZSAtIDQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIHVsLnJlbGF0ZWQge1xuICAgIG1hcmdpbjogMDtcbiAgICBsaSB7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAuY2xlYXJmaXgoKTtcbiAgICB9XG4gIH1cbiAgaDQge1xuICAgIGZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZSAqIDEuNTtcbiAgICBtYXJnaW4tYm90dG9tOiBAYmFzZWxpbmUgLyAyO1xuICAgIC8qIFJlc3BvbnNpdmUgVHlwb2dyYXBoeSBQcm9wb3J0aW9uaW5nICovXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCkge1xuICAgICAgZm9udC1zaXplOiBAYmFzZUZvbnRTaXplICogMS4yNTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgICBtYXJnaW4tYm90dG9tOiBAYmFzZWxpbmUgLyA1O1xuICAgIH1cbiAgfVxuICBoNS5ieWxpbmUge1xuICAgIGZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZSAqIDAuOTtcbiAgICBtYXJnaW4tYm90dG9tOiBAYmFzZWxpbmUgLyAyO1xuICAgIC8qIEhpZGRlbiBvbiBNb2JpbGUgKi9cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuICBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gICAgLyogSGlkZGVuIG9uIE1vYmlsZSAqL1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAgIGZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZSAqIDAuOTtcbiAgICB9XG4gIH1cbiAgLndwLXBvc3QtaW1hZ2Uge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogMC41ZW0gMS4yZW0gMCAwO1xuICB9XG59XG4iLCIvKipcbiAqIFN0eWxlcyBmb3IgdGhlIExhcmdvIFNlcmllcyBQb3N0cyB3aWRnZXRcbiAqXG4gKiBAc2luY2UgMC41LjNcbiAqL1xuXG4ud2lkZ2V0LmxhcmdvLXNlcmllcy1wb3N0cyB7XG4gIGg0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjRlbTtcbiAgICAvLyB0aGlzIHNwZWNpZmljIGg0IHNob3VsZCB0aGUgc2FtZSBzaXplIGFzIHRoZSBzdGFuZGFyZCB0ZXh0XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICBmb250LXNpemU6IEBiYXNlRm9udFNpemU7XG4gIH1cbiAgdWwge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIH1cbiAgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMHB4O1xuICB9XG4gIGkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGZvbnQtc2l6ZTogMTEwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xMDAlO1xuICB9XG4gIGxpIGEge1xuICAgIHBhZGRpbmctbGVmdDogMmVtO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LWZhbWlseTogQHNhbnNGb250RmFtaWx5O1xuICB9XG4gIGEubW9yZSB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIgwrtcIjtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogU3R5bGVzIGZvciB0aGUgTGFyZ28gU3RhZmYgUm9zdGVyIHdpZGdldFxuICpcbiAqIEBzaW5jZSAwLjUuM1xuICovXG5cbnVsLnN0YWZmLXJvc3RlciB7XG4gIGZsb2F0OiBsZWZ0O1xuICBjbGVhcjogYm90aDtcbiAgbWFyZ2luOiAoQGJhc2VsaW5lIC0gNCkgMCAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgbWFyZ2luOiAwIDAgQGJhc2VsaW5lIDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaW1nIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgd2lkdGg6IDY1cHg7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW46IDAgMWVtIDAuNWVtIDA7XG4gICAgICBib3JkZXI6MXB4IHNvbGlkIEBncmF5TGlnaHRlcjtcbiAgICAgIHBhZGRpbmc6IEBiYXNlbGluZSAvIDU7XG4gICAgfVxuICB9XG4gIC5zdGFmZi1uYW1lIHtcbiAgICBmb250LWZhbWlseTogQHNhbnNGb250RmFtaWx5O1xuICAgIGZvbnQtc2l6ZTogMS4yNWVtO1xuICAgIG1hcmdpbi1ib3R0b206MC4yNWVtO1xuICB9XG4gIHAge1xuICAgIG1hcmdpbjogMC40ZW0gMDtcbiAgICBmb250LXNpemU6IDAuOWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjFlbTtcbiAgICBjb2xvcjogQGdyYXk7XG4gIH1cbiAgcCArIHAge1xuICAgIG1hcmdpbi10b3A6MC43NWVtO1xuICB9XG59XG4iLCIvKipcbiAqIFN0eWxlcyBmb3IgdGhlIExhcmdvIFRhZyBMaXN0IHdpZGdldFxuICpcbiAqIEBzZWUgL2xlc3MvaW5jL3NpbmdsZS5sZXNzXG4gKiBAc2luY2UgMC41LjNcbiAqL1xuXG4vLyBUaGUgTGFyZ28gVGFnIExpc3Qgd2lkZ2V0IGhhcyBubyBzdHlsZXMgaG9va2VkIG9uIGl0cyBjbGFzcyAubGFyZ28tdGFnLWxpc3QuXG4vLyBXaGF0IHN0eWxlcyB0aGVyZSBhcmUgYXJlIGluIC9sZXNzL2luYy9zaW5nbGUubGVzcyB1bmRlciAudGFncywgd2l0aCBhIGxvdCBvZiBzaW1pbGFyIHN0eWxlcy5cblxuLmxhYmVscyxcbi50YWdzIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogYXV0bztcbiAgbWFyZ2luLWJvdHRvbTogQGJhc2VsaW5lIC8gMjtcbiAgLy8gVGhpcyBzdGF5cyBhbiBoNSBmb3Igc2VtYW50aWMgcmVhc29ucywgYnV0IGdhaW5zIHRoZSBhcHBlYXJhbmNlIG9mIGp1c3Qgbm9ybWFsIHRleHRcbiAgaDUge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiBAYmFzZUZvbnRTaXplO1xuICAgIGxpbmUtaGVpZ2h0OiBAYmFzZUZvbnRTaXplO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbiAgfVxuICB1bCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZSAtIDEuNTtcbiAgICBsaW5lLWhlaWdodDogQGJhc2VGb250U2l6ZSAtIDE7XG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICBsaSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCIgIHwgIFwiO1xuICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgICB9XG4gICAgICAmOmxhc3QtY2hpbGQ6OmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICAgIGkge1xuICAgICAgICBtYXJnaW46IDFweCAzcHggMCAwO1xuICAgICAgfVxuICAgICAgYSB7XG4gICAgICAgIGNvbG9yOiBAZ3JheTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgY29sb3I6IGRhcmtlbihAZ3JheURhcmssIDEwJSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkB0YXgtbGlzdC1pbWctc2l6ZTogNjBweDtcbi5sYXJnby10YXhvbm9teS1saXN0IGltZyB7XG4gIG1heC13aWR0aDogQHRheC1saXN0LWltZy1zaXplO1xuICBtYXgtaGVpZ2h0OiBAdGF4LWxpc3QtaW1nLXNpemU7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IDhweDs7XG59XG4ubGFyZ28tdGF4b25vbXktbGlzdCB1bCB7XG4gIG1hcmdpbjogMDtcbn1cbi5sYXJnby10YXhvbm9teS1saXN0IGxpIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbi5sYXJnby10YXhvbm9teS1saXN0IGg1IHtcbiAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4vLyBTdHlsZXMgZm9yIHRoaXMgd2lkZ2V0IGluIHRoZSBsZWZ0LWhhbmQgc2lkZWJhciAod2hpY2ggc2hvdWxkIG5vdCBiZSB1c2VkLCBidXQganVzdCBpbiBjYXNlKVxuYXJ0aWNsZSAubGFyZ28tdGF4b25vbXktbGlzdCB7XG4gIC5oYXMtdGh1bWJuYWlsIGEge1xuICAgIHRleHQtYWxpZ246IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuICBpbWcuYXR0YWNobWVudC1wb3N0LXRodW1ibmFpbCB7XG4gICAgLy8gZnVsbCB3aWR0aCBvZiB3aWRnZXRcbiAgICBmbG9hdDogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbi8vIEZpeCBmb3IgcmlnaHQgc2lkZWJhciBlZGdlIGNhc2Ugd2hlcmUgbG9uZyBzZXJpZXMgbmFtZSBhbmQgbG9uZyBoZWFkbGluZSBuYW1lIGNvbWJpbmUgd2l0aCB0aHVtYm5haWwgdG8gd3JhcCBiZWxvdyB0aGUgaW1hZ2UuXG4ubGFyZ28tdGF4b25vbXktbGlzdCBsaS5oYXMtdGh1bWJuYWlsIGE6bnRoLWNoaWxkKDIpIHtcbiAgcGFkZGluZy1sZWZ0OiBAdGF4LWxpc3QtaW1nLXNpemUgKyA4cHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLy8gQW5kIGEgZnVydGhlciBmaXggZm9yIHRoZSBhYm92ZSBpc3N1ZSBvbiBhcnRpY2xlIHBhZ2VzLCB3aGVyZSBpdCBzaG91bGQgbm90IGRvIHRoYXQuIDooXG5hcnRpY2xlIC5sYXJnby10YXhvbm9teS1saXN0IGxpLmhhcy10aHVtYm5haWwgYTpudGgtY2hpbGQoMikge1xuICBwYWRkaW5nOiAwO1xufVxuIiwiLyoqXG4gKiBTdHlsZXMgZm9yIHRoZSBMYXJnbyBUd2l0dGVyIFdpZGdldFxuICpcbiAqIEBzaW5jZSAwLjUuNVxuICovXG4ubGFyZ28tdHdpdHRlciB7XG4gIG1heC1oZWlnaHQ6IDYwMHB4O1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG4iLCIvKipcbiAqIEJlZm9yZSBGb290ZXIsIFNpdGUgRm9vdGVyXG4gKlxuICogI2JlZm9yZS1mb290ZXIgLSBhIGR5bmFtaWMgd2lkZ2V0IGFyZWEgcHJpb3IgdG8gI3NpdGUtZm9vdGVyXG4gKiAjc2l0ZS1mb290ZXJcbiAqICAgI3N1cHBsZW1lbnRhcnkgLSBwcmltYXJ5IHdpZGdldCB6b25lcyBmb3Igc2l0ZSBmb290ZXJcbiAqICAgI2JvaWxlcnBsYXRlIC0gc29jaWFsIGljb25zLCBjb3B5cmlnaHQsIElOTiBsb2dvIGFuZCBmb290ZXIgbGlua3NcbiAqXG4gKiBAc2luY2UgMC41LjNcbiAqL1xuIFxuLmJlZm9yZS1mb290ZXItd3JhcHBlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBwcmVGb290ZXJDb2xvcjtcbn1cblxuI2JlZm9yZS1mb290ZXIge1xuICAud2lkZ2V0Omxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuLmZvb3Rlci1iZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IEBoZWFkZXJGb290ZXJDb2xvcjtcbiAgcGFkZGluZzogMCAwIDE4cHg7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbiNzdXBwbGVtZW50YXJ5IHtcbiAgcGFkZGluZzogQGJhc2VsaW5lIDAgMCAwO1xuICAmLl8xY29sIGFzaWRlIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cblxuLyogc3BlY2lmaWMgdG8gdGhlIG9uZSBjb2x1bW4gZm9vdGVyIGxheW91dCAqL1xuLl8xY29sIC53aWRnZXRfbmF2X21lbnUgbGkge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIG1hcmdpbi1yaWdodDogMWVtO1xufVxuXG4vKlxuICogaW1hZ2UgZGlzcGxheXMgMzAwcHggd2lkZSwgYnV0IGlzIHBoeXNpY2FsbHkgMTY5OXgzODUgcHheMlxuICogV2UnbGwgdXNlIG1hdGggdG8gZ2V0IHRoZSBwYWRkaW5nIHRvcCBhbmQgYm90dG9tIGNvcnJlY3QsIGFjY29yZGluZyB0byB0aGUgYnJhbmQgZ3VpZGVsaW5lc1xuICogbWFyZ2luIHRvcCBhbmQgbWFyZ2luIGJvdHRvbSBzaG91bGQgYmUgZXF1YWwgdG8gdGhlIGhlaWdodCBvZiBvbmUgb2YgdGhlIHNxdWFyZXMuXG4gKiBCeSBjcm9wcGluZyB0aGUgaW1hZ2UgdG8gdGhlIG91dGVyIGJvdW5kYXJ5IG9mIHRoZSBsb3dlci1sZWZ0IHNxdWFyZSBpbiBpbm5fbG9nb19yZXZlcnNldHlwZS5wbmcsIHdlIGdldCBhIHNxdWFyZSBoZWlnaHQgb2YgMTg0cHguXG4gKiAxODQvMTY2OSA9IHgvMzAwXG4gKi9cbkBpbm4tbG9nby1waHlzaWNhbC13aWR0aDogMTY2OXB4O1xuQGlubi1sb2dvLXBoeXNpY2FsLWhlaWdodDogMzg1cHg7XG5AaW5uLWxvZ28td2lkdGg6IDIwMHB4O1xuQGlubi1sb2dvLXNxdWFyZTogKEBpbm4tbG9nby13aWR0aCoxODQvQGlubi1sb2dvLXBoeXNpY2FsLXdpZHRoKTsgLy8gMTg0IGNvbWVzIGZvcm0gdGhlIHdpZHRoIG9mIG9uZSBzcXVhcmUgaW4gSU5OJ3MgMjAxNSBsb2dvXG5AaW5uLWxvZ28taGVpZ2h0OiAoQGlubi1sb2dvLXdpZHRoKkBpbm4tbG9nby1waHlzaWNhbC1oZWlnaHQvQGlubi1sb2dvLXBoeXNpY2FsLXdpZHRoKTsgLy8gdGhlIHJlbmRlcmVkIGhlaWdodCBvZiB0aGUgbG9nbyBpbWFnZVxuQGZvb3Rlci1zb2NpYWwtbG9nby1mb250LXNpemU6IEBiYXNlRm9udFNpemUgKyAyO1xuXG4jaW5uLWxvZ28ge1xuICBtYXJnaW4tdG9wOiBAaW5uLWxvZ28tc3F1YXJlO1xuICBtYXJnaW4tYm90dG9tOiBAaW5uLWxvZ28tc3F1YXJlKjAuNzU7XG4gIG1heC13aWR0aDogQGlubi1sb2dvLXdpZHRoO1xufVxuXG4jZm9vdGVyLWxvZ29zLWJnIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogQHdoaXRlO1xuICBwYWRkaW5nOiAxMHB4IDA7XG59XG5cbiNmb290ZXItbG9nb3Mge1xuICBvdmVyZmxvdzpoaWRkZW47XG4gIGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICBcdGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxNi42NjY2NjY2NjclO1xuICAgIGltZyB7XG5cdCAgZGlzcGxheTogYmxvY2s7XG5cdCAgd2lkdGg6IDEwMCU7XG5cdCAgbWF4LXdpZHRoOiAxODBweDtcblx0ICBtYXJnaW46IDAgYXV0bztcbiAgICB9XG4gIH1cbiAgaDYge1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogM3B4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBAZ3JheUxpZ2h0ZXI7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiBAZ3JheTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgYSB7XG5cdCAgZmxvYXQ6IHJpZ2h0O1xuXHQgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxufVxuXG51bCNmb290ZXItc29jaWFsIHtcbiAgcGFkZGluZy10b3A6IEBpbm4tbG9nby1zcXVhcmU7XG4gIHBhZGRpbmctYm90dG9tOiBAaW5uLWxvZ28tc3F1YXJlKjAuNzU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuICBsaSB7XG4gICAgaGVpZ2h0OiBAaW5uLWxvZ28taGVpZ2h0O1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgICBhIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgICBwYWRkaW5nLXRvcDogKChAaW5uLWxvZ28taGVpZ2h0IC0gQGZvb3Rlci1zb2NpYWwtbG9nby1mb250LXNpemUpLzEuNzUpO1xuICAgIH1cbiAgICBpIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGNvbG9yOiBAd2hpdGU7XG4gICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICBtYXJnaW4tdG9wOiAxLjI1KkBpbm4tbG9nby1zcXVhcmU7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IGRhcmtlbihAd2hpdGUsIDI1JSk7XG4gICAgICB9XG4gICAgICBmb250LXNpemU6IEBmb290ZXItc29jaWFsLWxvZ28tZm9udC1zaXplO1xuICAgICAgLmRhcmtMaWdodChAaGVhZGVyRm9vdGVyQ29sb3IpO1xuICAgIH1cbiAgfVxuICBsaTpsYXN0LWNoaWxkIGEge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH1cbn1cblxuI2JvaWxlcnBsYXRlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtZmFtaWx5OiBAc2Fuc0ZvbnRGYW1pbHk7XG4gIHAge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgY29sb3I6IzlGOUZBMztcbiAgfVxuICAubWVudSB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IEBiYXNlRm9udFNpemUgKiAwLjY2NztcbiAgICBsaSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgIH1cbiAgfVxuICAubWVudSB7XG4gICAgY2xlYXI6IG5vbmU7XG4gIH1cbn1cblxuZm9vdGVyICNib2lsZXJwbGF0ZSB7XG4gIHAge1xuICAgIGNvbG9yOiM5RjlGQTM7XG4gIH1cbiAgYSB7XG4gICAgY29sb3I6QGdyYXlMaWdodGVyO1xuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6IzA5QzlGRjsgLy8gVGhpcyBibHVlIGlzIElOTidzIFByaW1hcnkgQnJhbmQgY29sb3IhXG4gICAgfVxuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjlweCkge1xuICAjYm9pbGVycGxhdGUgLnNwYW42LnJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk3OXB4KSB7XG4gIC8vIElmIHRoZSBJTk4gbG9nbyBpcyBub3QgZGlzcGxheWVkLCB0aGUgZm9vdGVyIGNyZWRpdCBnZXRzIHNvbWUgcGFkZGluZyB1cCB0b3BcbiAgLmZvb3Rlci1jcmVkaXQtcGFkZGluZy1pbm4tbG9nby1taXNzaW5nIHtcbiAgICBtYXJnaW4tdG9wOiBAaW5uLWxvZ28taGVpZ2h0ICsgMS43NSpAaW5uLWxvZ28tc3F1YXJlO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5NzlweCkge1xuICAjYm9pbGVycGxhdGUgLnJvdy1mbHVpZCB7XG4gICAgLnNwYW42IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gIH1cbiAgdWwjZm9vdGVyLXNvY2lhbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG4gIC5mb290ZXItY3JlZGl0IHNwYW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi5zY3JlZW4tcmVhZGVyLXRleHQsXG4uYmFjay10by10b3Age1xuICAudmlzdWFsbHloaWRkZW5cbn1cbiIsIi5oZWFkZXItYWQtem9uZSB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0I2hlYWRlci1hZC16b25lLWNvbnRhaW5lciB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcblx0XHQvKiBBQ00gYWQgem9uZXMgb25seSwgc29ycnkgKi9cblx0XHQuYWNtX2FkX3pvbmVzIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0fVxuXHR9XG59XG4jaGVhZGVyLWFkLXpvbmUtY29udGFpbmVyLFxuI2JlZm9yZS1mb290ZXIge1xuICB3aWR0aDogMTAwJTtcbiAgZGl2IGRpdiB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgLy9zb21ldGltZXMgZGZwIGFkZHMgaW5saW5lIHN0eWxlcyBzZXQgdG8gZGlzcGxheTppbmxpbmUtYmxvY2sgOihcbiAgICBtYXgtd2lkdGg6IDcyOHB4O1xuICAgIG1hcmdpbjogMWVtIGF1dG87XG4gIH1cbn1cbiNoZWFkZXItYWQtem9uZS1jb250YWluZXIge1xuICAud2lkZ2V0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG4gIGRpdiBkaXYge1xuICAgIG1hcmdpbjogMC41ZW0gYXV0byAwO1xuICB9XG59IiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEEgRkVXIENPUkUgU1RZTEVTIEZPUiBXUCBJTUFHRVNcbi8vIEJBU0VEIE9OOiBodHRwOi8vamVmZnNlYnJpbmcuY29tL3Jlc3BvbnNpdmUtd29yZHByZXNzLWltYWdlcy9cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5zdGlja3ksXG4uYnlwb3N0YXV0aG9yLFxuLmdhbGxlcnktY2FwdGlvbiB7XG4gICBkaXNwbGF5OiBub3JtYWw7XG59XG5cbi5hbGlnbm5vbmUge1xuICAgbWFyZ2luOiBAYmFzZWxpbmUgKjAuNzUgMDtcbn1cblxuLmFsaWduY2VudGVyLFxuLmFsaWduLWNlbnRlcixcbi5jZW50ZXIge1xuICAgY2xlYXI6IGJvdGg7XG4gICBkaXNwbGF5OmJsb2NrO1xuICAgbWFyZ2luOiAoQGJhc2VsaW5lICowLjc1KSBhdXRvO1xufVxuXG4uYWxpZ25yaWdodCxcbi5hbGlnbi1yaWdodCxcbi5yaWdodCB7XG4gICBmbG9hdDpyaWdodDtcbiAgIG1hcmdpbjogQGJhc2VsaW5lLzQgMCBAYmFzZWxpbmUvMiAyMHB4O1xufVxuXG4uYWxpZ25sZWZ0LFxuLmFsaWduLWxlZnQsXG4ubGVmdCB7XG4gICBmbG9hdDpsZWZ0O1xuICAgbWFyZ2luOiBAYmFzZWxpbmUvNCAyMHB4IEBiYXNlbGluZS8yIDA7XG59XG5cbmltZyxcbmltZ1tjbGFzcyo9XCJhbGlnblwiXSxcbmltZ1tjbGFzcyo9XCJ3cC1pbWFnZS1cIl0ge1xuICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgaGVpZ2h0OiBhdXRvO1xuICAgY2xlYXI6Ym90aDtcbn1cblxuLmFsaWduZnVsbCxcbi5hbGlnbndpZGUge1xuICBtYXgtd2lkdGg6IDEwMHZ3O1xuICBpbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4uYWxpZ25mdWxsIHtcbiAgLy8gZnVsbCB3aWR0aCBvZiBmcmFtZVxuICB3aWR0aDogMTAwdnc7XG4gIG1hcmdpbi1sZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuLmFsaWdud2lkZSB7XG4gIC8vIHdpZHRoIGlzIGhhbGZ3YXkgZnJvbSBjb2x1bW4gd2lkdGggdG8gd2lkdGggb2YgZnJhbWVcbiAgbWF4LXdpZHRoOiBub25lO1xuICB3aWR0aDogYXV0bztcbiAgLy8gdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW4sIHRoZSBwYWRkaW5nLShsZWZ0fHJpZ2h0KSBvZiB0aGF0LCBoYWx2ZWRcbiAgLy8gY29weSB0aGVzZSB0byAuYWxpZ253aWRlIG9uIHRoZSBmdWxsLXdpZHRoIHRlbXBsYXRlXG4gIG1hcmdpbi1sZWZ0OiB+XCJjYWxjKC0wLjUgKiAoOTV2dyAqIDAuMTcwMjEyNzY1OTQpIClcIjtcbiAgbWFyZ2luLXJpZ2h0OiB+XCJjYWxjKC0wLjUgKiAoOTV2dyAqIDAuMTcwMjEyNzY1OTQpIClcIjtcbn1cbkBtZWRpYSBAdGFibGV0RG93biB7XG4gIC5hbGlnbndpZGUge1xuICAgIC8vIHRoZXNlIHZhbHVlcyBtYXRjaCB0aGUgcGFkZGluZyBvbiAjcGFnZSwgcGx1cyB0aGUgcGFkZGluZyBvbiAjZW50cnktY29udGVudCwgaGFsdmVkXG4gICAgbWFyZ2luLWxlZnQ6IH5cImNhbGMoLTAuNSAqICgyLjV2dyArIDYuMzgyOTc4NzIlKSApXCI7XG4gICAgbWFyZ2luLXJpZ2h0OiB+XCJjYWxjKC0wLjUgKiAoMi41dncgKyA2LjM4Mjk3ODcyJSkgKVwiO1xuICB9XG59XG5cbi8vIGNsYXNzaWMgbGF5b3V0IGFsaWdubWVudCBDU1Ncbi5jbGFzc2ljIHtcbiAgLmFsaWduZnVsbHtcblxuICAgIC8vIGJlY2F1c2UgI3BhZ2UgZG9lcyBub3QgaGF2ZSBib3gtc2l6aW5nOiBib3JkZXItYm94IGJ1dCBkb2VzIGhhdmUgcGFkZGluZyAwIDIuNSVcbiAgICAvLyAxMTcwcHggKiAxLjA1ID0gMTIyOC41cHhcbiAgICAvL1xuICAgIC8vIDExNzBweDogdGhlIG1heC13aWR0aCBvZiAjcGFnZTtcbiAgICAvLyAyLjV2dzogcGFkZGluZy1sZWZ0IGFuZCBwYWRkaW5nLXJpZ2h0IG9uICNwYWdlIHdoZW4gI3BhZ2UgaXMgd2hvbGUgd2lkdGggb2Ygdmlld3BvcnRcbiAgICAvLyAyNHB4OiBwYWRkaW5nLWxlZnQgb24gI3NpZGViYXIud2lkZ2V0XG4gICAgLy8gMi4xMjc2NTk1NyU6IG1hcmdpbi1sZWZ0IG9uICNzaWRlYmFyIHNpbmNlIGl0IGlzIGEgLnNwYW40XG4gICAgLy8gMTE3MHB4ICogMi4xMjc2NTk1NyU6IGFjY2VwdGFibGUgYmxlZWQgZnJvbSAjY29udGVudCBpbnRvIHRoZSBndXR0ZXIgb2YgdGhlIHNpZGViYXIsIGF0IHRoYXQgdmlld3BvcnQgd2lkdGhcbiAgICAvLyA5NXZ3ICogMi4xMjc2NTk1NyU6IGFjY2VwdGFibGUgYmxlZWQsIGJlbG93IHRoYXQgdmlld3BvcnQgd2lkdGhcbiAgICBAbWVkaWEgKCBtaW4td2lkdGg6IDEyMjlweCApIHtcbiAgICAgIHdpZHRoOiB+XCJjYWxjKCAxMDAlICsgKCAwLjUgKiAoIDEwMHZ3IC0gMTE3MHB4ICkgKSArICggMTE3MHB4ICogMC4wMjEyNzY1OTU3ICkgKVwiOyAvLyB0aGUgY29sdW1uIHdpZHRoIHBsdXMgdGhlIGxlZnQgbWFyZ2luIG9uICNwYWdlLCBwbHVzIHRoZSBibGVlZCBmaWd1cmVcbiAgICAgIG1hcmdpbi1sZWZ0OiB+XCJjYWxjKCAtMC41ICogKCAxMDB2dyAtIDExNzBweCApIClcIjsgLy8gdGhlIGxlZnQgbWFyZ2luIG9uICNwYWdlLCBhcyBhIG5lZ2F0aXZlLlxuICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgIH1cbiAgICBAbWVkaWEgKCBtYXgtd2lkdGg6IDEyMjhweCApIHtcbiAgICAgIHdpZHRoOiB+XCJjYWxjKCAxMDAlICsgMi41dncgKyAoIDk1dncgKiAwLjAyMTI3NjU5NTcgKSApXCI7IC8vIHRoZSBjb2x1bW4gd2lkdGggcGx1cyB0aGUgbGVmdCBtYXJnaW4gb24gI3BhZ2UsIHBsdXMgdGhlIGJsZWVkIGZpZ3VyZVxuICAgICAgbWFyZ2luLWxlZnQ6IC0yLjV2dzsgLy8gdGhlIGxlZnQgbWFyZ2luIG9uICNwYWdlLCBhcyBhIG5lZ2F0aXZlLlxuICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgIH1cbiAgICBAbWVkaWEgKCBtYXgtd2lkdGg6IDc2OHB4ICkge1xuICAgICAgd2lkdGg6IDEwMHZ3O1xuICAgIH1cblxuICB9XG5cbiAgLy8gUmF0aGVyIHRoYW4gYmVpbmcgdGhlIFwiZnVsbFwiIHdpZHRoLCBhbGlnbi13aWRlIGp1c3QgZXNjYXBlcyB0aGUgY29sdW1uIGEgbGl0dGxlLlxuICAuYWxpZ253aWRlIHtcbiAgICBAbWVkaWEgKCBtaW4td2lkdGg6IDEyMjlweCApIHtcbiAgICAgIHdpZHRoOiB+XCJjYWxjKCAxMDAlICsgKCAwLjUgKiAoIDEwMHZ3IC0gMTE3MHB4ICkgKSArICggMTE3MHB4ICogMC4wMjEyNzY1OTU3ICkgKVwiOyAvLyB0aGUgY29sdW1uIHdpZHRoIHBsdXMgdGhlIGxlZnQgbWFyZ2luIG9uICNwYWdlLCBwbHVzIHRoZSBibGVlZCBmaWd1cmVcbiAgICAgIG1hcmdpbi1sZWZ0OiB+XCJjYWxjKCAtMC41ICogKCAxMDB2dyAtIDExNzBweCApIClcIjsgLy8gdGhlIGxlZnQgbWFyZ2luIG9uICNwYWdlLCBhcyBhIG5lZ2F0aXZlLlxuICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgIH1cbiAgICBAbWVkaWEgKCBtYXgtd2lkdGg6IDEyMjhweCApIHtcbiAgICAgIHdpZHRoOiB+XCJjYWxjKCAxMDAlICsgMi41dncgKyAoIDk1dncgKiAwLjAyMTI3NjU5NTcgKSApXCI7IC8vIHRoZSBjb2x1bW4gd2lkdGggcGx1cyB0aGUgbGVmdCBtYXJnaW4gb24gI3BhZ2UsIHBsdXMgdGhlIGJsZWVkIGZpZ3VyZVxuICAgICAgbWFyZ2luLWxlZnQ6IC0yLjV2dzsgLy8gdGhlIGxlZnQgbWFyZ2luIG9uICNwYWdlLCBhcyBhIG5lZ2F0aXZlLlxuICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgIH1cbiAgICBAbWVkaWEgKCBtYXgtd2lkdGg6IDc2OHB4ICkge1xuICAgICAgd2lkdGg6IDEwMHZ3O1xuICAgICAgbWFyZ2luLWxlZnQ6IC0yLjV2dztcbiAgICAgIG1hcmdpbi1yaWdodDogLTIuNXZ3O1xuICAgIH1cbiAgfVxufVxuLy8gZnVsbC13aWR0aCBsYXlvdXQgYWxpZ25tZW50IENTU1xuLnBhZ2UtdGVtcGxhdGUtZnVsbC1wYWdlIHtcbiAgLmFsaWdud2lkZSB7XG4gICAgQG1lZGlhICggbWF4LXdpZHRoOiAxMzk2cHggKSB7XG4gICAgICAvLyB0aGVzZSB2YWx1ZXMgbWF0Y2ggdGhlIHBhZGRpbmcgb24gI3BhZ2UsIHBsdXMgdGhlIHBhZGRpbmcgb24gI2VudHJ5LWNvbnRlbnQsIGhhbHZlZFxuICAgICAgLy8gY29weSB0aGVzZSBmcm9tIC5hbGlnbndpZGVcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMS4yNXZ3O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMS4yNXZ3O1xuICAgICAgbWF4LXdpZHRoOiA5Ny41dnc7XG4gICAgfVxuICB9XG59XG4vLyBAdG9kb1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU1VQUE9SVCBGT1IgSUZSQU1FL09CSkVDVC9FTUJFRFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmVtYmVkLWNvbnRhaW5lcixcbi50eXBlLWVtYmVkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1ib3R0b206IDU2LjI1JTsgLyogMTYvOSByYXRpbyAqL1xuICAgIHBhZGRpbmctdG9wOiAzMHB4OyAvKiBJRTYgd29ya2Fyb3VuZCovXG4gICAgaGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWFyZ2luLWJvdHRvbToyOHB4O1xufVxuLmVtYmVkLWNvbnRhaW5lciBpZnJhbWUsXG4uZW1iZWQtY29udGFpbmVyIG9iamVjdCxcbi5lbWJlZC1jb250YWluZXIgZW1iZWQsXG4udHlwZS1lbWJlZCBpZnJhbWUsXG4udHlwZS1lbWJlZCBvYmplY3QsXG4udHlwZS1lbWJlZCBlbWJlZCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbn1cbmZpZ3VyZSBpZnJhbWUge1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG4iLCIvLyBSRVNQT05TSVZFIENMQVNTRVNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBIaWRlIGZyb20gc2NyZWVucmVhZGVycyBhbmQgYnJvd3NlcnNcbi8vIENyZWRpdDogSFRNTDUgQm9pbGVycGxhdGVcbi5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi8vIFZpc2liaWxpdHkgdXRpbGl0aWVzXG5cbi8vIEZvciBkZXNrdG9wc1xuLnZpc2libGUtcGhvbmUgICAgIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4udmlzaWJsZS10YWJsZXQgICAgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbi52aXNpYmxlLWRlc2t0b3AgICB7IH0gLy8gRG9uJ3Qgc2V0IGluaXRpYWxseVxuLmhpZGRlbi1waG9uZSAgICAgIHsgfVxuLmhpZGRlbi10YWJsZXQgICAgIHsgfVxuLmhpZGRlbi1kZXNrdG9wICAgIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi8vIFBob25lcyBvbmx5XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLy8gU2hvd1xuICAudmlzaWJsZS1waG9uZSAgICAgeyBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH0gLy8gVXNlIGluaGVyaXQgdG8gcmVzdG9yZSBwcmV2aW91cyBiZWhhdmlvclxuICAvLyBIaWRlXG4gIC5oaWRkZW4tcGhvbmUgICAgICB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAvLyBIaWRlIGV2ZXJ5dGhpbmcgZWxzZVxuICAuaGlkZGVuLWRlc2t0b3AgICAgeyBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cbiAgLnZpc2libGUtZGVza3RvcCAgIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG59XG5cbi8vIFRhYmxldHMgJiBzbWFsbCBkZXNrdG9wcyBvbmx5XG5AbWVkaWEgKG1pbi13aWR0aDogNzY5cHgpIGFuZCAobWF4LXdpZHRoOiA5NzlweCkge1xuICAvLyBTaG93XG4gIC52aXNpYmxlLXRhYmxldCAgICB7IGRpc3BsYXk6IGluaGVyaXQgIWltcG9ydGFudDsgfVxuICAvLyBIaWRlXG4gIC5oaWRkZW4tdGFibGV0ICAgICB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAvLyBIaWRlIGV2ZXJ5dGhpbmcgZWxzZVxuICAuaGlkZGVuLWRlc2t0b3AgICAgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLnZpc2libGUtZGVza3RvcCAgIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50IDsgfVxufVxuIiwiLy8gTEFSR0UgREVTS1RPUCAmIFVQXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuZ2xvYmFsLW5hdixcbiAgI3BhZ2UsXG4gICNzaXRlLWZvb3RlcixcbiAgI2Zvb3Rlci1sb2dvcyxcbiAgI2JlZm9yZS1mb290ZXIge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE2MDBweCkge1xuICAuZ2xvYmFsLW5hdixcbiAgI3NpdGUtZm9vdGVyLFxuICAjZm9vdGVyLWxvZ29zIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG4gICNwYWdlIHtcbiAgICBwYWRkaW5nOiAwIDIwcHg7XG4gIH1cbn1cblxuIiwiLy8gUE9SVFJBSVQgVEFCTEVUIFRPIERFRkFVTFQgREVTS1RPUFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY5cHgpIGFuZCAobWF4LXdpZHRoOiA5NzlweCl7XG4gIC5nbG9iYWwtbmF2LFxuICAjcGFnZSxcbiAgI3NpdGUtZm9vdGVyLFxuICAjZm9vdGVyLWxvZ29zIHtcbiAgICBwYWRkaW5nOiAwIDE4cHg7XG4gIH1cbiAgI21haW4ge1xuICAgIG1hcmdpbjogMTJweCAwIDA7XG4gIH1cbiAgaDEuYnJhbmRpbmcsXG4gIGgyLmJyYW5kaW5nIHtcbiAgICBmb250LXNpemU6IEBiYXNlRm9udFNpemUgKiAyLjc1O1xuICAgIC50YWdsaW5lIHtcbiAgICAgIGZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZSAqIDEuMjIyO1xuICAgIH1cbiAgfVxuICAjZm9vdGVyLWxvZ29zLFxuICAjZm9vdGVyLWxvZ29zIC5sb2dvNCB7XG4gICAgY2xlYXI6Ym90aDtcbiAgfVxuICAjZm9vdGVyLWxvZ29zIGEge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcbiAgfVxuICAjaG9tZXBhZ2UtYm90dG9tIC53aWRnZXQub2RkLFxuICAjaG9tZXBhZ2UtYm90dG9tIC53aWRnZXQuZXZlbiB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IDk1JTtcbiAgICBtYXJnaW46IDAgMCBAYmFzZWxpbmU7XG4gICAgcGFkZGluZy1sZWZ0OiAyLjUlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDIuNSU7XG4gIH1cbiAgI3Nlcmllcy1tYWluICNzaWRlYmFyLWxlZnQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgI3Nlcmllcy1tYWluICNjb250ZW50LnNwYW41e1xuICAgIHdpZHRoOiA2MyU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbiAgI3Nlcmllcy1tYWluICNzaWRlYmFyIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cbiAgLnN0aWNreS1tYWluLWZlYXR1cmUsXG4gIC5zdGlja3ktZmVhdHVyZXMtbGlzdCB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgfVxufVxuIiwiLy8gTEFORFNDQVBFIFBIT05FIFRPIFNNQUxMIERFU0tUT1AgJiBQT1JUUkFJVCBUQUJMRVRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAjc2lkZWJhcixcbiAgI3NpdGUtZm9vdGVyIGRpdltjbGFzc149XCJzcGFuXCJdLFxuICAuaGFsZixcbiAgLmZ1bGwsXG4gICNsZWZ0LXJhaWwsXG4gICNjb250ZW50LW1haW4ge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGZsb2F0OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCAwIEBiYXNlbGluZTtcbiAgfVxuICAjaG9tZXBhZ2UtYm90dG9tIC53aWRnZXQub2RkLFxuICAjaG9tZXBhZ2UtYm90dG9tIC53aWRnZXQuZXZlbiB7XG4gICAgd2lkdGg6IDk1JTtcbiAgICBjbGVhcjogYm90aDtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDIuNSU7XG4gICAgcGFkZGluZy1yaWdodDogMi41JTtcbiAgfVxuICAuaGFsZixcbiAgLmZ1bGwsXG4gICNjb250ZW50LW1haW4ge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuICAjcGFnZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDEycHg7XG4gIH1cbiAgI21haW4ge1xuICAgIG1hcmdpbjogQGJhc2VsaW5lIC8gMyAwIDA7XG4gIH1cbiAgI2NvbnRlbnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5nbG9iYWwtbmF2IHVsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5nbG9iYWwtbmF2IC5uYXYtcmlnaHQge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5nbG9iYWwtbmF2IC5uYXYtcmlnaHQgLmRvbmF0ZS1idG4ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIGgxLmVudHJ5LXRpdGxlLFxuICBoMS5wYWdlLXRpdGxlIHtcbiAgICBmb250LXNpemU6IEBiYXNlRm9udFNpemUgKiAyO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIH1cbiAgLmNhdGVnb3J5LWJhY2tncm91bmQgLnJlbGF0ZWQtdG9waWNzIHVsIHtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICB9XG4gIC5zdG9yaWVzIGgyLmVudHJ5LXRpdGxlLFxuICAuc3RpY2t5LW1haW4tZmVhdHVyZSBoMixcbiAgLmNhcm91c2VsLWNhcHRpb24gaDIge1xuICAgIGZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZSAqIDEuNTtcbiAgfVxuICAuc3RpY2t5LW1haW4tZmVhdHVyZSxcbiAgLnN0aWNreS1mZWF0dXJlcy1saXN0IHtcbiAgICBjbGVhcjogYm90aDtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICB9XG4gICNzaXRlLWZvb3RlciAud2lkZ2V0X25hdl9tZW51IGxpIGEge1xuICAgIGZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZSArIDM7XG4gICAgcGFkZGluZzogMTBweCAwO1xuICB9XG4gICNmb290ZXItbG9nb3MgLmxvZ280IHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxuICAjZm9vdGVyLWxvZ29zIGEge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMzMzJTtcbiAgfVxuICAjZm9vdGVyLWxvZ29zIGg2IGEge1xuICBcdGRpc3BsYXk6IGlubGluZTtcbiAgXHRjbGVhcjogYm90aDtcbiAgXHRmbG9hdDogbm9uZTtcbiAgXHR0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG4gICNmdC1zb2NpYWwge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGxpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgaSB7XG4gICAgICAgIGZvbnQtc2l6ZTogQGJhc2VGb250U2l6ZSAqIDI7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICNzaXRlLWZvb3RlciBpbnB1dCB7XG4gICAgbWFyZ2luLWJvdHRvbTogQGJhc2VsaW5lO1xuICB9XG4gICNzaXRlLWZvb3RlciBpbnB1dC5zZWFyY2gtcXVlcnkge1xuICAgIGhlaWdodDogMzJweDtcbiAgICB3aWR0aDogNzQlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG4gICNzaXRlLWZvb3RlciBpbnB1dC5zZWFyY2gtc3VibWl0IHtcbiAgICBwYWRkaW5nOiA4cHggMiU7XG4gICAgd2lkdGg6IDIwJTtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cbiAgI2JvaWxlcnBsYXRlIHAuYmFjay10by10b3Age1xuICAgIHBhZGRpbmctdG9wOiBAYmFzZWxpbmUgLyAyO1xuICB9XG4gICNzZXJpZXMtbWFpbiAjc2lkZWJhci1sZWZ0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICNzZXJpZXMtbWFpbiAjY29udGVudCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbiAgLmdsb2JhbC1uYXYtYmcge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLm5hdmJhciAuYnRuLW5hdmJhciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLmNhdGVnb3J5IHtcbiAgICAucm93LWZsdWlkID4gKiB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgICAuc3BhbjQgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luOiAwIGF1dG8gMWVtO1xuICAgIH1cbiAgICAuc2Vjb25kYXJ5LWZlYXR1cmVkLXBvc3QgaW1nIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWF4LXdpZHRoOiAyMyU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDMlO1xuICAgICAgbWFyZ2luLXRvcDogMWVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG4gICAgfVxuICB9XG59XG5cbi8vIFVQIFRPIExBTkRTQ0FQRSBQSE9ORVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgI2Zvb3Rlci1sb2dvcyBoNiBhIHtcbiAgXHRkaXNwbGF5OiBpbmxpbmU7XG4gIFx0Y2xlYXI6IGJvdGg7XG4gIFx0ZmxvYXQ6IG5vbmU7XG4gIFx0dGV4dC1hbGlnbjogbGVmdDtcbiAgfVxufVxuXG4iLCJAbWVkaWEgcHJpbnQge1xuXG5cdC8vIHRoZSBiYXNpY3MgKGJhc2VkIG9uIGh0dHA6Ly9odG1sNWJvaWxlcnBsYXRlLmNvbS8pXG5cdCoge1xuXHRcdGJhY2tncm91bmQ6dHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblx0XHRjb2xvcjojMDAwICFpbXBvcnRhbnQ7XG5cdFx0Ym94LXNoYWRvdzpub25lICFpbXBvcnRhbnQ7XG5cdFx0dGV4dC1zaGFkb3c6bm9uZSAhaW1wb3J0YW50O1xuXHRcdGZpbHRlcjpub25lICFpbXBvcnRhbnQ7XG5cdFx0LW1zLWZpbHRlcjpub25lICFpbXBvcnRhbnRcblx0fVxuXG5cdGEsYTp2aXNpdGVkIHtcblx0XHRjb2xvcjojMDAwMDY2OyBcblx0XHR0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lXG5cdH1cblxuXHQuaGVybyB7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHR9XG5cblx0aHIge1xuXHRcdG1hcmdpbjogMTJweCAwO1xuXHR9XG5cblx0cHJlLGJsb2NrcXVvdGUge1xuXHRcdGJvcmRlcjoxcHggc29saWQgIzk5OTtcblx0XHRwYWdlLWJyZWFrLWluc2lkZTphdm9pZFxuXHR9XG5cblx0LyogT25lIGNvbHVtbiBkaXNwbGF5ICovXG5cblx0Ym9keS5ub3JtYWwuc2luZ2xlLXBvc3QgLmhlcm8sIGJvZHkubm9ybWFsLnBhZ2UgLmhlcm8ge1xuXHRcdHdpZHRoOiA2MCU7IC8qIHNhdmUgc29tZSBwYXBlci4gKi9cblx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdGZsb2F0Om5vbmU7XG5cdH1cblx0XG5cdCNjb250ZW50ID4gaW1nLnNpemUtbGFyZ2UsICNjb250ZW50IC53cC1jYXB0aW9uIGltZy5zaXplLWxhcmdlIHtcblx0XHRtYXgtd2lkdGg6IDYwJSAhaW1wb3J0YW50O1xuXHRcdGhlaWdodDogYXV0bztcblx0fVxuXG5cdGFzaWRlLnR5cGUtcHVsbC1xdW90ZSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMTJweDtcblx0fVxuXG5cdCNjb250ZW50LnNwYW44W3JvbGU9bWFpbl0ge1xuXHRcdG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG5cdH1cblx0XG5cdHRoZWFkIHtcblx0XHRkaXNwbGF5OnRhYmxlLWhlYWRlci1ncm91cFxuXHR9XG5cblx0dHIsaW1nIHtcblx0XHRwYWdlLWJyZWFrLWluc2lkZTphdm9pZFxuXHR9XG5cblx0aW1nIHsgLypcblx0XHRtYXgtd2lkdGg6MTAwJSAhaW1wb3J0YW50XG5cdCovfVxuXG5cdEBwYWdlIHtcblx0XHRtYXJnaW46LjVjbSAuNWNtIDFjbVxuXHR9XG5cblx0cCxoMixoMyB7XG5cdFx0b3JwaGFuczozO1xuXHRcdHdpZG93czozXG5cdH1cblxuXHRoMixoMyB7XG5cdFx0cGFnZS1icmVhay1hZnRlcjphdm9pZFxuXHR9XG5cblx0LmF1dGhvciAudXJsIHtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdH1cblxuXHRuYXYsXG5cdGlmcmFtZSxcblx0b2JqZWN0LFxuXHRhdWRpbyxcblx0dmlkZW8sXG5cdC5nbG9iYWwtbmF2LFxuXHQjc2l0ZS1oZWFkZXIsXG5cdC5wb3N0LXNvY2lhbCxcblx0LmJvdHRvbS1tZXRhLFxuXHQuYXV0aG9yLWJveCxcblx0I3JlbGF0ZWQtcG9zdHMsXG5cdCNjb21tZW50cyxcblx0LnBvc3QtbmF2LFxuXHQjc2lkZWJhcixcblx0I3NpdGUtZm9vdGVyLFxuXHQuc3RpY2t5LW5hdi13cmFwcGVyLFxuXHQuYXJ0aWNsZS1ib3R0b20gLndpZGdldDpub3QoLmxhcmdvLWRpc2NsYWltZXIpIHtcblx0XHRkaXNwbGF5Om5vbmVcblx0fVxuXG5cdC5hcnRpY2xlLWJvdHRvbSB7XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG5cdH1cblxuXHQubW9kdWxlLFxuXHQubW9kdWxlLmltYWdlLFxuXHQud3AtY2FwdGlvbixcblx0LndwLW1lZGlhLWNyZWRpdCxcblx0cC53cC1jYXB0aW9uLXRleHQsXG5cdC5sYXJnby1kaXNjbGFpbWVyLFxuXHQuaGVyb1xuXHQge1xuXHRcdGZvbnQtc2l6ZTogMTBweCAhaW1wb3J0YW50O1xuXHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0fVxuXG5cdC5oZXJvIHAud3AtbWVkaWEtY3JlZGl0LFxuXHQuaGVybyBwLndwLWNhcHRpb24sXG5cdC5oZXJvIHAud3AtY2FwdGlvbi10ZXh0IHtcblx0XHR3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuXHRcdG1hcmdpbjogMCAhaW1wb3J0YW50O1xuXHR9XG5cblx0LmVkaXQtbGluayB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdC5wcmludC1oZWFkZXIge1xuXHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMwMDA7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRzdHJvbmcge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzAwMDtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDEwcHg7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XG5cdFx0fVxuXHR9XG5cblx0cCx1bCxvbCwuYnlsaW5lIHtcblx0XHRmb250LXNpemU6MTJweCAhaW1wb3J0YW50O1xuXHRcdG1hcmdpbi1ib3R0b206MTBweFxuXHR9XG5cblx0aDEsaDIsaDIsaDQsaDUsaDYsLmVudHJ5LWNvbnRlbnQgaDMge1xuXHRcdGZvbnQtc2l6ZToxNnB4ICFpbXBvcnRhbnRcblx0fVxuXG5cdGgxLmVudHJ5LXRpdGxlIHtcblx0XHRmb250LXNpemU6MjhweCAhaW1wb3J0YW50XG5cdH1cblxuXHQuZW50cnktY29udGVudCBhOmxpbms6YWZ0ZXIsXG5cdC5lbnRyeS1jb250ZW50IGE6dmlzaXRlZDphZnRlciB7XG5cdFx0Y29udGVudDpcIiAoXCIgYXR0cihocmVmKSBcIikgXCI7XG5cdFx0Zm9udC1zaXplOjgwJVxuXHR9XG5cbiAgLkRWLWNvbnRhaW5lciB7IGRpc3BsYXk6IG5vbmU7IH1cbn1cbiJdfQ== */