@charset "UTF-8";
/*doc
---
title: Kitchen Sink
name: kitchen-sink
category: General - Kitchen Sink
---
*/
/* Functional styling;
 * These styles are required for noUiSlider to function.
 * You don't need to change these rules to apply your design.
 */
@import url(https://fonts.googleapis.com/css?family=Roboto:500,400italic,100,700italic,300,700,500italic,100italic,300italic,400);

.noUi-target,
.noUi-target * {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -ms-touch-action: none;
  touch-action: none;
  -ms-user-select: none;
  -moz-user-select: none;
  user-select: none;
  -moz-box-sizing: border-box;
  box-sizing: border-box; }

.noUi-target {
  position: relative;
  direction: ltr; }

.noUi-base {
  width: 100%;
  height: 100%;
  position: relative;
  z-index: 1;
  /* Fix 401 */ }

.noUi-origin {
  position: absolute;
  right: 0;
  top: 0;
  left: 0;
  bottom: 0; }

.noUi-handle {
  position: relative;
  z-index: 1; }

.noUi-stacking .noUi-handle {
  /* This class is applied to the lower origin when
   its values is > 50%. */
  z-index: 10; }

.noUi-state-tap .noUi-origin {
  -webkit-transition: left 0.3s, top 0.3s;
  transition: left 0.3s, top 0.3s; }

.noUi-state-drag * {
  cursor: inherit !important; }

/* Painting and performance;
 * Browsers can paint handles in their own layer.
 */
.noUi-base,
.noUi-handle {
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0); }

/* Slider size and handle placement;
 */
.noUi-horizontal {
  height: 18px; }

.noUi-horizontal .noUi-handle {
  width: 34px;
  height: 28px;
  left: -17px;
  top: -6px; }

.noUi-vertical {
  width: 18px; }

.noUi-vertical .noUi-handle {
  width: 28px;
  height: 34px;
  left: -6px;
  top: -17px; }

/* Styling;
 */
.noUi-background {
  background: #FAFAFA;
  box-shadow: inset 0 1px 1px #f0f0f0; }

.noUi-connect {
  background: #3FB8AF;
  box-shadow: inset 0 0 3px rgba(51, 51, 51, 0.45);
  -webkit-transition: background 450ms;
  transition: background 450ms; }

.noUi-origin {
  border-radius: 2px; }

.noUi-target {
  border-radius: 4px;
  border: 1px solid #D3D3D3;
  box-shadow: inset 0 1px 1px #F0F0F0, 0 3px 6px -5px #BBB; }

.noUi-target.noUi-connect {
  box-shadow: inset 0 0 3px rgba(51, 51, 51, 0.45), 0 3px 6px -5px #BBB; }

/* Handles and cursors;
 */
.noUi-draggable {
  cursor: w-resize; }

.noUi-vertical .noUi-draggable {
  cursor: n-resize; }

.noUi-handle {
  border: 1px solid #D9D9D9;
  border-radius: 3px;
  background: #FFF;
  cursor: default;
  box-shadow: inset 0 0 1px #FFF, inset 0 1px 7px #EBEBEB, 0 3px 6px -3px #BBB; }

.noUi-active {
  box-shadow: inset 0 0 1px #FFF, inset 0 1px 7px #DDD, 0 3px 6px -3px #BBB; }

/* Handle stripes;
 */
.noUi-handle:before,
.noUi-handle:after {
  content: "";
  display: block;
  position: absolute;
  height: 14px;
  width: 1px;
  background: #E8E7E6;
  left: 14px;
  top: 6px; }

.noUi-handle:after {
  left: 17px; }

.noUi-vertical .noUi-handle:before,
.noUi-vertical .noUi-handle:after {
  width: 14px;
  height: 1px;
  left: 6px;
  top: 14px; }

.noUi-vertical .noUi-handle:after {
  top: 17px; }

/* Disabled state;
 */
[disabled].noUi-connect,
[disabled] .noUi-connect {
  background: #B8B8B8; }

[disabled].noUi-origin,
[disabled] .noUi-handle {
  cursor: not-allowed; }

/* Slider */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent; }

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0; }
  .slick-list:focus {
    outline: none; }
  .slick-list.dragging {
    cursor: pointer;
    cursor: hand; }

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0); }

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block; }
  .slick-track:before, .slick-track:after {
    content: "";
    display: table; }
  .slick-track:after {
    clear: both; }
  .slick-loading .slick-track {
    visibility: hidden; }

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  display: none; }
  [dir="rtl"] .slick-slide {
    float: right; }
  .slick-slide img {
    display: block; }
  .slick-slide.slick-loading img {
    display: none; }
  .slick-slide.dragging img {
    pointer-events: none; }
  .slick-initialized .slick-slide {
    display: block; }
  .slick-loading .slick-slide {
    visibility: hidden; }
  .slick-vertical .slick-slide {
    display: block;
    height: auto;
    border: 1px solid transparent; }

.slick-arrow.slick-hidden {
  display: none; }

/*doc
---
title: z-index Map
name: g-z-index-map
category: Layout - Layout Helpers
---

If an element needs a z-index, then you should use the *z-index* mixin. The main
reason for doing this is to maintain a single place in our code to
manage all our z-indexes.

Every time you want to declare a z-index on anything you must modify the sass
variable,`$z-indexes` (located in ***_variables.scss***) which is a map of all
the z-indexes (ideally) used in our sass.

#### Usage (2 step process)

Let's say we want to assign a z-index to the class `.enterprise`.

(1) First we do this:

```sass_example?show-code=true
.enterprise {
    @include z-index;
}
```

(2) Then in ***_variables.scss***, we put the selector inside the $z-index map as
the key and the actual numerical z-index as the value (*If the selector is nested,
you must include the parent selector in the key*).

```sass_example?show-code=true
$z-indexes: (
    ...

    '.enterprise': 1701,

    ...
}
```

#### This is a listing of our current z-indexes:

```sass_example?show-code=true

$z-indexes: (
    '.sg-modal': 1000002,
    '.sg-settings-trigger': 1000001,
    '.sg-console': 1000001,
    '.sg-component-overlay': 1000000,

    // autocomplete results drop-down menu
    '.twitter-typeahead .tt-menu': 1600,
    // hover menus should overlay most things
    '.mega-menu-container': 1500,
    '.right-off-canvas-menu .right-off-canvas-toggle': 1002, // needed for clickability

    '.ad-adhesion': 800,

    // search form at medium-down breakpoints is an overlay and should be over ads
    '.search-small-form-header-buttons.is-fixed': 721,
    'html.js .search-application-left-column': 720,

    '.ad-leaderboard-a': 700,
    '.mega-menu-container': 600,
    'html.js .search-left-column.is-fixed .search-form-header-sticky-row.is-stuck': 577,
    'html.js .search-left-column': 576,
    '.search-hud-sticky-row.is-stuck': 575,
    '.search-application-results-header.is-fixed': 575,

    // the subnav shows over almost everything else
    '.sub-nav-container': 500,
    '.sub-nav-search-mobile': 500,

    '.slide-up-container': 430,

    '.is-sticky': 400,

    '.stickable.is-stuck': 300,
    '.stickable.is-fixed': 300,

    '.search-control.is-fixed': 200,

    // the hamburger button
    '.tab-bar .right-small': 2,

    // local levels
    '.rail-sticky': 1,

    '.input-search .icon-search-box': 1,
    '.form-control input': -1,
    '.tabs.chart-tabs.flex-friendlify-tabs:after': -1
);

```
*/
meta.foundation-version {
  font-family: "/5.5.2/"; }

meta.foundation-mq-small {
  font-family: "/only screen/";
  width: 0em; }

meta.foundation-mq-small-only {
  font-family: "/only screen and (max-width: 40em)/";
  width: 0em; }

meta.foundation-mq-medium {
  font-family: "/only screen and (min-width:40.0625em)/";
  width: 40.0625em; }

meta.foundation-mq-medium-only {
  font-family: "/only screen and (min-width:40.0625em) and (max-width:63.9375em)/";
  width: 40.0625em; }

meta.foundation-mq-large {
  font-family: "/only screen and (min-width:64em)/";
  width: 64em; }

meta.foundation-mq-large-only {
  font-family: "/only screen and (min-width:64em) and (max-width:90em)/";
  width: 64em; }

meta.foundation-mq-xlarge {
  font-family: "/only screen and (min-width:90.0625em)/";
  width: 90.0625em; }

meta.foundation-mq-xlarge-only {
  font-family: "/only screen and (min-width:90.0625em) and (max-width:120em)/";
  width: 90.0625em; }

meta.foundation-mq-xxlarge {
  font-family: "/only screen and (min-width:120.0625em)/";
  width: 120.0625em; }

meta.foundation-data-attribute-namespace {
  font-family: false; }

html, body {
  height: 100%; }

html {
  box-sizing: border-box; }

*,
*:before,
*:after {
  -webkit-box-sizing: inherit;
  -moz-box-sizing: inherit;
  box-sizing: inherit; }

html,
body {
  font-size: 100%; }

body {
  background: #fff;
  color: #333333;
  cursor: auto;
  font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-style: normal;
  font-weight: 400;
  line-height: 1.5;
  margin: 0;
  padding: 0;
  position: relative; }

a:hover {
  cursor: pointer; }

img {
  max-width: 100%;
  height: auto; }

img {
  -ms-interpolation-mode: bicubic; }

#map_canvas img,
#map_canvas embed,
#map_canvas object,
.map_canvas img,
.map_canvas embed,
.map_canvas object,
.mqa-display img,
.mqa-display embed,
.mqa-display object {
  max-width: none !important; }

.left {
  float: left !important; }

.right {
  float: right !important; }

.clearfix:before, .clearfix:after {
  content: " ";
  display: table; }

.clearfix:after {
  clear: both; }

.hide {
  display: none; }

.invisible {
  visibility: hidden; }

.antialiased {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

img {
  display: inline-block;
  vertical-align: middle; }

textarea {
  height: auto;
  min-height: 50px; }

select {
  width: 100%; }

.row {
  margin: 0 auto;
  max-width: 62.5rem;
  width: 100%; }
  .row:before, .row:after {
    content: " ";
    display: table; }
  .row:after {
    clear: both; }
  .row.collapse > .column,
  .row.collapse > .columns {
    padding-left: 0;
    padding-right: 0; }
  .row.collapse .row {
    margin-left: 0;
    margin-right: 0; }
  .row .row {
    margin: 0 -0.9375rem;
    max-width: none;
    width: auto; }
    .row .row:before, .row .row:after {
      content: " ";
      display: table; }
    .row .row:after {
      clear: both; }
    .row .row.collapse {
      margin: 0;
      max-width: none;
      width: auto; }
      .row .row.collapse:before, .row .row.collapse:after {
        content: " ";
        display: table; }
      .row .row.collapse:after {
        clear: both; }

.column,
.columns {
  padding-left: 0.9375rem;
  padding-right: 0.9375rem;
  width: 100%;
  float: left; }

.column + .column:last-child,
.columns + .column:last-child, .column +
.columns:last-child,
.columns +
.columns:last-child {
  float: right; }

.column + .column.end,
.columns + .column.end, .column +
.columns.end,
.columns +
.columns.end {
  float: left; }

@media only screen {
  .small-push-0 {
    position: relative;
    left: 0;
    right: auto; }
  .small-pull-0 {
    position: relative;
    right: 0;
    left: auto; }
  .small-push-1 {
    position: relative;
    left: 8.33333%;
    right: auto; }
  .small-pull-1 {
    position: relative;
    right: 8.33333%;
    left: auto; }
  .small-push-2 {
    position: relative;
    left: 16.66667%;
    right: auto; }
  .small-pull-2 {
    position: relative;
    right: 16.66667%;
    left: auto; }
  .small-push-3 {
    position: relative;
    left: 25%;
    right: auto; }
  .small-pull-3 {
    position: relative;
    right: 25%;
    left: auto; }
  .small-push-4 {
    position: relative;
    left: 33.33333%;
    right: auto; }
  .small-pull-4 {
    position: relative;
    right: 33.33333%;
    left: auto; }
  .small-push-5 {
    position: relative;
    left: 41.66667%;
    right: auto; }
  .small-pull-5 {
    position: relative;
    right: 41.66667%;
    left: auto; }
  .small-push-6 {
    position: relative;
    left: 50%;
    right: auto; }
  .small-pull-6 {
    position: relative;
    right: 50%;
    left: auto; }
  .small-push-7 {
    position: relative;
    left: 58.33333%;
    right: auto; }
  .small-pull-7 {
    position: relative;
    right: 58.33333%;
    left: auto; }
  .small-push-8 {
    position: relative;
    left: 66.66667%;
    right: auto; }
  .small-pull-8 {
    position: relative;
    right: 66.66667%;
    left: auto; }
  .small-push-9 {
    position: relative;
    left: 75%;
    right: auto; }
  .small-pull-9 {
    position: relative;
    right: 75%;
    left: auto; }
  .small-push-10 {
    position: relative;
    left: 83.33333%;
    right: auto; }
  .small-pull-10 {
    position: relative;
    right: 83.33333%;
    left: auto; }
  .small-push-11 {
    position: relative;
    left: 91.66667%;
    right: auto; }
  .small-pull-11 {
    position: relative;
    right: 91.66667%;
    left: auto; }
  .column,
  .columns {
    position: relative;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    float: left; }
  .small-1 {
    width: 8.33333%; }
  .small-2 {
    width: 16.66667%; }
  .small-3 {
    width: 25%; }
  .small-4 {
    width: 33.33333%; }
  .small-5 {
    width: 41.66667%; }
  .small-6 {
    width: 50%; }
  .small-7 {
    width: 58.33333%; }
  .small-8 {
    width: 66.66667%; }
  .small-9 {
    width: 75%; }
  .small-10 {
    width: 83.33333%; }
  .small-11 {
    width: 91.66667%; }
  .small-12 {
    width: 100%; }
  .small-offset-0 {
    margin-left: 0 !important; }
  .small-offset-1 {
    margin-left: 8.33333% !important; }
  .small-offset-2 {
    margin-left: 16.66667% !important; }
  .small-offset-3 {
    margin-left: 25% !important; }
  .small-offset-4 {
    margin-left: 33.33333% !important; }
  .small-offset-5 {
    margin-left: 41.66667% !important; }
  .small-offset-6 {
    margin-left: 50% !important; }
  .small-offset-7 {
    margin-left: 58.33333% !important; }
  .small-offset-8 {
    margin-left: 66.66667% !important; }
  .small-offset-9 {
    margin-left: 75% !important; }
  .small-offset-10 {
    margin-left: 83.33333% !important; }
  .small-offset-11 {
    margin-left: 91.66667% !important; }
  .small-reset-order {
    float: left;
    left: auto;
    margin-left: 0;
    margin-right: 0;
    right: auto; }
  .column.small-centered,
  .columns.small-centered {
    margin-left: auto;
    margin-right: auto;
    float: none; }
  .column.small-uncentered,
  .columns.small-uncentered {
    float: left;
    margin-left: 0;
    margin-right: 0; }
  .column.small-centered:last-child,
  .columns.small-centered:last-child {
    float: none; }
  .column.small-uncentered:last-child,
  .columns.small-uncentered:last-child {
    float: left; }
  .column.small-uncentered.opposite,
  .columns.small-uncentered.opposite {
    float: right; }
  .row.small-collapse > .column,
  .row.small-collapse > .columns {
    padding-left: 0;
    padding-right: 0; }
  .row.small-collapse .row {
    margin-left: 0;
    margin-right: 0; }
  .row.small-uncollapse > .column,
  .row.small-uncollapse > .columns {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    float: left; } }

@media only screen and (min-width: 40.0625em) {
  .medium-push-0 {
    position: relative;
    left: 0;
    right: auto; }
  .medium-pull-0 {
    position: relative;
    right: 0;
    left: auto; }
  .medium-push-1 {
    position: relative;
    left: 8.33333%;
    right: auto; }
  .medium-pull-1 {
    position: relative;
    right: 8.33333%;
    left: auto; }
  .medium-push-2 {
    position: relative;
    left: 16.66667%;
    right: auto; }
  .medium-pull-2 {
    position: relative;
    right: 16.66667%;
    left: auto; }
  .medium-push-3 {
    position: relative;
    left: 25%;
    right: auto; }
  .medium-pull-3 {
    position: relative;
    right: 25%;
    left: auto; }
  .medium-push-4 {
    position: relative;
    left: 33.33333%;
    right: auto; }
  .medium-pull-4 {
    position: relative;
    right: 33.33333%;
    left: auto; }
  .medium-push-5 {
    position: relative;
    left: 41.66667%;
    right: auto; }
  .medium-pull-5 {
    position: relative;
    right: 41.66667%;
    left: auto; }
  .medium-push-6 {
    position: relative;
    left: 50%;
    right: auto; }
  .medium-pull-6 {
    position: relative;
    right: 50%;
    left: auto; }
  .medium-push-7 {
    position: relative;
    left: 58.33333%;
    right: auto; }
  .medium-pull-7 {
    position: relative;
    right: 58.33333%;
    left: auto; }
  .medium-push-8 {
    position: relative;
    left: 66.66667%;
    right: auto; }
  .medium-pull-8 {
    position: relative;
    right: 66.66667%;
    left: auto; }
  .medium-push-9 {
    position: relative;
    left: 75%;
    right: auto; }
  .medium-pull-9 {
    position: relative;
    right: 75%;
    left: auto; }
  .medium-push-10 {
    position: relative;
    left: 83.33333%;
    right: auto; }
  .medium-pull-10 {
    position: relative;
    right: 83.33333%;
    left: auto; }
  .medium-push-11 {
    position: relative;
    left: 91.66667%;
    right: auto; }
  .medium-pull-11 {
    position: relative;
    right: 91.66667%;
    left: auto; }
  .column,
  .columns {
    position: relative;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    float: left; }
  .medium-1 {
    width: 8.33333%; }
  .medium-2 {
    width: 16.66667%; }
  .medium-3 {
    width: 25%; }
  .medium-4 {
    width: 33.33333%; }
  .medium-5 {
    width: 41.66667%; }
  .medium-6 {
    width: 50%; }
  .medium-7 {
    width: 58.33333%; }
  .medium-8 {
    width: 66.66667%; }
  .medium-9 {
    width: 75%; }
  .medium-10 {
    width: 83.33333%; }
  .medium-11 {
    width: 91.66667%; }
  .medium-12 {
    width: 100%; }
  .medium-offset-0 {
    margin-left: 0 !important; }
  .medium-offset-1 {
    margin-left: 8.33333% !important; }
  .medium-offset-2 {
    margin-left: 16.66667% !important; }
  .medium-offset-3 {
    margin-left: 25% !important; }
  .medium-offset-4 {
    margin-left: 33.33333% !important; }
  .medium-offset-5 {
    margin-left: 41.66667% !important; }
  .medium-offset-6 {
    margin-left: 50% !important; }
  .medium-offset-7 {
    margin-left: 58.33333% !important; }
  .medium-offset-8 {
    margin-left: 66.66667% !important; }
  .medium-offset-9 {
    margin-left: 75% !important; }
  .medium-offset-10 {
    margin-left: 83.33333% !important; }
  .medium-offset-11 {
    margin-left: 91.66667% !important; }
  .medium-reset-order {
    float: left;
    left: auto;
    margin-left: 0;
    margin-right: 0;
    right: auto; }
  .column.medium-centered,
  .columns.medium-centered {
    margin-left: auto;
    margin-right: auto;
    float: none; }
  .column.medium-uncentered,
  .columns.medium-uncentered {
    float: left;
    margin-left: 0;
    margin-right: 0; }
  .column.medium-centered:last-child,
  .columns.medium-centered:last-child {
    float: none; }
  .column.medium-uncentered:last-child,
  .columns.medium-uncentered:last-child {
    float: left; }
  .column.medium-uncentered.opposite,
  .columns.medium-uncentered.opposite {
    float: right; }
  .row.medium-collapse > .column,
  .row.medium-collapse > .columns {
    padding-left: 0;
    padding-right: 0; }
  .row.medium-collapse .row {
    margin-left: 0;
    margin-right: 0; }
  .row.medium-uncollapse > .column,
  .row.medium-uncollapse > .columns {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    float: left; }
  .push-0 {
    position: relative;
    left: 0;
    right: auto; }
  .pull-0 {
    position: relative;
    right: 0;
    left: auto; }
  .push-1 {
    position: relative;
    left: 8.33333%;
    right: auto; }
  .pull-1 {
    position: relative;
    right: 8.33333%;
    left: auto; }
  .push-2 {
    position: relative;
    left: 16.66667%;
    right: auto; }
  .pull-2 {
    position: relative;
    right: 16.66667%;
    left: auto; }
  .push-3 {
    position: relative;
    left: 25%;
    right: auto; }
  .pull-3 {
    position: relative;
    right: 25%;
    left: auto; }
  .push-4 {
    position: relative;
    left: 33.33333%;
    right: auto; }
  .pull-4 {
    position: relative;
    right: 33.33333%;
    left: auto; }
  .push-5 {
    position: relative;
    left: 41.66667%;
    right: auto; }
  .pull-5 {
    position: relative;
    right: 41.66667%;
    left: auto; }
  .push-6 {
    position: relative;
    left: 50%;
    right: auto; }
  .pull-6 {
    position: relative;
    right: 50%;
    left: auto; }
  .push-7 {
    position: relative;
    left: 58.33333%;
    right: auto; }
  .pull-7 {
    position: relative;
    right: 58.33333%;
    left: auto; }
  .push-8 {
    position: relative;
    left: 66.66667%;
    right: auto; }
  .pull-8 {
    position: relative;
    right: 66.66667%;
    left: auto; }
  .push-9 {
    position: relative;
    left: 75%;
    right: auto; }
  .pull-9 {
    position: relative;
    right: 75%;
    left: auto; }
  .push-10 {
    position: relative;
    left: 83.33333%;
    right: auto; }
  .pull-10 {
    position: relative;
    right: 83.33333%;
    left: auto; }
  .push-11 {
    position: relative;
    left: 91.66667%;
    right: auto; }
  .pull-11 {
    position: relative;
    right: 91.66667%;
    left: auto; } }

@media only screen and (min-width: 64em) {
  .large-push-0 {
    position: relative;
    left: 0;
    right: auto; }
  .large-pull-0 {
    position: relative;
    right: 0;
    left: auto; }
  .large-push-1 {
    position: relative;
    left: 8.33333%;
    right: auto; }
  .large-pull-1 {
    position: relative;
    right: 8.33333%;
    left: auto; }
  .large-push-2 {
    position: relative;
    left: 16.66667%;
    right: auto; }
  .large-pull-2 {
    position: relative;
    right: 16.66667%;
    left: auto; }
  .large-push-3 {
    position: relative;
    left: 25%;
    right: auto; }
  .large-pull-3 {
    position: relative;
    right: 25%;
    left: auto; }
  .large-push-4 {
    position: relative;
    left: 33.33333%;
    right: auto; }
  .large-pull-4 {
    position: relative;
    right: 33.33333%;
    left: auto; }
  .large-push-5 {
    position: relative;
    left: 41.66667%;
    right: auto; }
  .large-pull-5 {
    position: relative;
    right: 41.66667%;
    left: auto; }
  .large-push-6 {
    position: relative;
    left: 50%;
    right: auto; }
  .large-pull-6 {
    position: relative;
    right: 50%;
    left: auto; }
  .large-push-7 {
    position: relative;
    left: 58.33333%;
    right: auto; }
  .large-pull-7 {
    position: relative;
    right: 58.33333%;
    left: auto; }
  .large-push-8 {
    position: relative;
    left: 66.66667%;
    right: auto; }
  .large-pull-8 {
    position: relative;
    right: 66.66667%;
    left: auto; }
  .large-push-9 {
    position: relative;
    left: 75%;
    right: auto; }
  .large-pull-9 {
    position: relative;
    right: 75%;
    left: auto; }
  .large-push-10 {
    position: relative;
    left: 83.33333%;
    right: auto; }
  .large-pull-10 {
    position: relative;
    right: 83.33333%;
    left: auto; }
  .large-push-11 {
    position: relative;
    left: 91.66667%;
    right: auto; }
  .large-pull-11 {
    position: relative;
    right: 91.66667%;
    left: auto; }
  .column,
  .columns {
    position: relative;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    float: left; }
  .large-1 {
    width: 8.33333%; }
  .large-2 {
    width: 16.66667%; }
  .large-3 {
    width: 25%; }
  .large-4 {
    width: 33.33333%; }
  .large-5 {
    width: 41.66667%; }
  .large-6 {
    width: 50%; }
  .large-7 {
    width: 58.33333%; }
  .large-8 {
    width: 66.66667%; }
  .large-9 {
    width: 75%; }
  .large-10 {
    width: 83.33333%; }
  .large-11 {
    width: 91.66667%; }
  .large-12 {
    width: 100%; }
  .large-offset-0 {
    margin-left: 0 !important; }
  .large-offset-1 {
    margin-left: 8.33333% !important; }
  .large-offset-2 {
    margin-left: 16.66667% !important; }
  .large-offset-3 {
    margin-left: 25% !important; }
  .large-offset-4 {
    margin-left: 33.33333% !important; }
  .large-offset-5 {
    margin-left: 41.66667% !important; }
  .large-offset-6 {
    margin-left: 50% !important; }
  .large-offset-7 {
    margin-left: 58.33333% !important; }
  .large-offset-8 {
    margin-left: 66.66667% !important; }
  .large-offset-9 {
    margin-left: 75% !important; }
  .large-offset-10 {
    margin-left: 83.33333% !important; }
  .large-offset-11 {
    margin-left: 91.66667% !important; }
  .large-reset-order {
    float: left;
    left: auto;
    margin-left: 0;
    margin-right: 0;
    right: auto; }
  .column.large-centered,
  .columns.large-centered {
    margin-left: auto;
    margin-right: auto;
    float: none; }
  .column.large-uncentered,
  .columns.large-uncentered {
    float: left;
    margin-left: 0;
    margin-right: 0; }
  .column.large-centered:last-child,
  .columns.large-centered:last-child {
    float: none; }
  .column.large-uncentered:last-child,
  .columns.large-uncentered:last-child {
    float: left; }
  .column.large-uncentered.opposite,
  .columns.large-uncentered.opposite {
    float: right; }
  .row.large-collapse > .column,
  .row.large-collapse > .columns {
    padding-left: 0;
    padding-right: 0; }
  .row.large-collapse .row {
    margin-left: 0;
    margin-right: 0; }
  .row.large-uncollapse > .column,
  .row.large-uncollapse > .columns {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    float: left; }
  .push-0 {
    position: relative;
    left: 0;
    right: auto; }
  .pull-0 {
    position: relative;
    right: 0;
    left: auto; }
  .push-1 {
    position: relative;
    left: 8.33333%;
    right: auto; }
  .pull-1 {
    position: relative;
    right: 8.33333%;
    left: auto; }
  .push-2 {
    position: relative;
    left: 16.66667%;
    right: auto; }
  .pull-2 {
    position: relative;
    right: 16.66667%;
    left: auto; }
  .push-3 {
    position: relative;
    left: 25%;
    right: auto; }
  .pull-3 {
    position: relative;
    right: 25%;
    left: auto; }
  .push-4 {
    position: relative;
    left: 33.33333%;
    right: auto; }
  .pull-4 {
    position: relative;
    right: 33.33333%;
    left: auto; }
  .push-5 {
    position: relative;
    left: 41.66667%;
    right: auto; }
  .pull-5 {
    position: relative;
    right: 41.66667%;
    left: auto; }
  .push-6 {
    position: relative;
    left: 50%;
    right: auto; }
  .pull-6 {
    position: relative;
    right: 50%;
    left: auto; }
  .push-7 {
    position: relative;
    left: 58.33333%;
    right: auto; }
  .pull-7 {
    position: relative;
    right: 58.33333%;
    left: auto; }
  .push-8 {
    position: relative;
    left: 66.66667%;
    right: auto; }
  .pull-8 {
    position: relative;
    right: 66.66667%;
    left: auto; }
  .push-9 {
    position: relative;
    left: 75%;
    right: auto; }
  .pull-9 {
    position: relative;
    right: 75%;
    left: auto; }
  .push-10 {
    position: relative;
    left: 83.33333%;
    right: auto; }
  .pull-10 {
    position: relative;
    right: 83.33333%;
    left: auto; }
  .push-11 {
    position: relative;
    left: 91.66667%;
    right: auto; }
  .pull-11 {
    position: relative;
    right: 91.66667%;
    left: auto; } }

.accordion {
  margin-bottom: 0; }
  .accordion:before, .accordion:after {
    content: " ";
    display: table; }
  .accordion:after {
    clear: both; }
  .accordion .accordion-navigation, .accordion dd {
    display: block;
    margin-bottom: 0 !important; }
    .accordion .accordion-navigation.active > a, .accordion dd.active > a {
      background: #ededed; }
    .accordion .accordion-navigation > a, .accordion dd > a {
      background: #f4f4f4;
      color: #222222;
      display: block;
      font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
      font-size: 1rem;
      padding: 1rem; }
      .accordion .accordion-navigation > a:hover, .accordion dd > a:hover {
        background: #e8e8e8; }
    .accordion .accordion-navigation > .content, .accordion dd > .content {
      display: none;
      padding: 0.9375rem; }
      .accordion .accordion-navigation > .content.active, .accordion dd > .content.active {
        background: #FFFFFF;
        display: block; }

[class*="block-grid-"] {
  display: block;
  padding: 0;
  margin: 0 -0.625rem; }
  [class*="block-grid-"]:before, [class*="block-grid-"]:after {
    content: " ";
    display: table; }
  [class*="block-grid-"]:after {
    clear: both; }
  [class*="block-grid-"] > li {
    display: block;
    float: left;
    height: auto;
    padding: 0 0.625rem 1.25rem; }

@media only screen {
  .small-block-grid-1 > li {
    list-style: none;
    width: 100%; }
    .small-block-grid-1 > li:nth-of-type(1n) {
      clear: none; }
    .small-block-grid-1 > li:nth-of-type(1n+1) {
      clear: both; }
  .small-block-grid-2 > li {
    list-style: none;
    width: 50%; }
    .small-block-grid-2 > li:nth-of-type(1n) {
      clear: none; }
    .small-block-grid-2 > li:nth-of-type(2n+1) {
      clear: both; }
  .small-block-grid-3 > li {
    list-style: none;
    width: 33.33333%; }
    .small-block-grid-3 > li:nth-of-type(1n) {
      clear: none; }
    .small-block-grid-3 > li:nth-of-type(3n+1) {
      clear: both; }
  .small-block-grid-4 > li {
    list-style: none;
    width: 25%; }
    .small-block-grid-4 > li:nth-of-type(1n) {
      clear: none; }
    .small-block-grid-4 > li:nth-of-type(4n+1) {
      clear: both; }
  .small-block-grid-5 > li {
    list-style: none;
    width: 20%; }
    .small-block-grid-5 > li:nth-of-type(1n) {
      clear: none; }
    .small-block-grid-5 > li:nth-of-type(5n+1) {
      clear: both; }
  .small-block-grid-6 > li {
    list-style: none;
    width: 16.66667%; }
    .small-block-grid-6 > li:nth-of-type(1n) {
      clear: none; }
    .small-block-grid-6 > li:nth-of-type(6n+1) {
      clear: both; }
  .small-block-grid-7 > li {
    list-style: none;
    width: 14.28571%; }
    .small-block-grid-7 > li:nth-of-type(1n) {
      clear: none; }
    .small-block-grid-7 > li:nth-of-type(7n+1) {
      clear: both; }
  .small-block-grid-8 > li {
    list-style: none;
    width: 12.5%; }
    .small-block-grid-8 > li:nth-of-type(1n) {
      clear: none; }
    .small-block-grid-8 > li:nth-of-type(8n+1) {
      clear: both; }
  .small-block-grid-9 > li {
    list-style: none;
    width: 11.11111%; }
    .small-block-grid-9 > li:nth-of-type(1n) {
      clear: none; }
    .small-block-grid-9 > li:nth-of-type(9n+1) {
      clear: both; }
  .small-block-grid-10 > li {
    list-style: none;
    width: 10%; }
    .small-block-grid-10 > li:nth-of-type(1n) {
      clear: none; }
    .small-block-grid-10 > li:nth-of-type(10n+1) {
      clear: both; }
  .small-block-grid-11 > li {
    list-style: none;
    width: 9.09091%; }
    .small-block-grid-11 > li:nth-of-type(1n) {
      clear: none; }
    .small-block-grid-11 > li:nth-of-type(11n+1) {
      clear: both; }
  .small-block-grid-12 > li {
    list-style: none;
    width: 8.33333%; }
    .small-block-grid-12 > li:nth-of-type(1n) {
      clear: none; }
    .small-block-grid-12 > li:nth-of-type(12n+1) {
      clear: both; } }

@media only screen and (min-width: 40.0625em) {
  .medium-block-grid-1 > li {
    list-style: none;
    width: 100%; }
    .medium-block-grid-1 > li:nth-of-type(1n) {
      clear: none; }
    .medium-block-grid-1 > li:nth-of-type(1n+1) {
      clear: both; }
  .medium-block-grid-2 > li {
    list-style: none;
    width: 50%; }
    .medium-block-grid-2 > li:nth-of-type(1n) {
      clear: none; }
    .medium-block-grid-2 > li:nth-of-type(2n+1) {
      clear: both; }
  .medium-block-grid-3 > li {
    list-style: none;
    width: 33.33333%; }
    .medium-block-grid-3 > li:nth-of-type(1n) {
      clear: none; }
    .medium-block-grid-3 > li:nth-of-type(3n+1) {
      clear: both; }
  .medium-block-grid-4 > li {
    list-style: none;
    width: 25%; }
    .medium-block-grid-4 > li:nth-of-type(1n) {
      clear: none; }
    .medium-block-grid-4 > li:nth-of-type(4n+1) {
      clear: both; }
  .medium-block-grid-5 > li {
    list-style: none;
    width: 20%; }
    .medium-block-grid-5 > li:nth-of-type(1n) {
      clear: none; }
    .medium-block-grid-5 > li:nth-of-type(5n+1) {
      clear: both; }
  .medium-block-grid-6 > li {
    list-style: none;
    width: 16.66667%; }
    .medium-block-grid-6 > li:nth-of-type(1n) {
      clear: none; }
    .medium-block-grid-6 > li:nth-of-type(6n+1) {
      clear: both; }
  .medium-block-grid-7 > li {
    list-style: none;
    width: 14.28571%; }
    .medium-block-grid-7 > li:nth-of-type(1n) {
      clear: none; }
    .medium-block-grid-7 > li:nth-of-type(7n+1) {
      clear: both; }
  .medium-block-grid-8 > li {
    list-style: none;
    width: 12.5%; }
    .medium-block-grid-8 > li:nth-of-type(1n) {
      clear: none; }
    .medium-block-grid-8 > li:nth-of-type(8n+1) {
      clear: both; }
  .medium-block-grid-9 > li {
    list-style: none;
    width: 11.11111%; }
    .medium-block-grid-9 > li:nth-of-type(1n) {
      clear: none; }
    .medium-block-grid-9 > li:nth-of-type(9n+1) {
      clear: both; }
  .medium-block-grid-10 > li {
    list-style: none;
    width: 10%; }
    .medium-block-grid-10 > li:nth-of-type(1n) {
      clear: none; }
    .medium-block-grid-10 > li:nth-of-type(10n+1) {
      clear: both; }
  .medium-block-grid-11 > li {
    list-style: none;
    width: 9.09091%; }
    .medium-block-grid-11 > li:nth-of-type(1n) {
      clear: none; }
    .medium-block-grid-11 > li:nth-of-type(11n+1) {
      clear: both; }
  .medium-block-grid-12 > li {
    list-style: none;
    width: 8.33333%; }
    .medium-block-grid-12 > li:nth-of-type(1n) {
      clear: none; }
    .medium-block-grid-12 > li:nth-of-type(12n+1) {
      clear: both; } }

@media only screen and (min-width: 64em) {
  .large-block-grid-1 > li {
    list-style: none;
    width: 100%; }
    .large-block-grid-1 > li:nth-of-type(1n) {
      clear: none; }
    .large-block-grid-1 > li:nth-of-type(1n+1) {
      clear: both; }
  .large-block-grid-2 > li {
    list-style: none;
    width: 50%; }
    .large-block-grid-2 > li:nth-of-type(1n) {
      clear: none; }
    .large-block-grid-2 > li:nth-of-type(2n+1) {
      clear: both; }
  .large-block-grid-3 > li {
    list-style: none;
    width: 33.33333%; }
    .large-block-grid-3 > li:nth-of-type(1n) {
      clear: none; }
    .large-block-grid-3 > li:nth-of-type(3n+1) {
      clear: both; }
  .large-block-grid-4 > li {
    list-style: none;
    width: 25%; }
    .large-block-grid-4 > li:nth-of-type(1n) {
      clear: none; }
    .large-block-grid-4 > li:nth-of-type(4n+1) {
      clear: both; }
  .large-block-grid-5 > li {
    list-style: none;
    width: 20%; }
    .large-block-grid-5 > li:nth-of-type(1n) {
      clear: none; }
    .large-block-grid-5 > li:nth-of-type(5n+1) {
      clear: both; }
  .large-block-grid-6 > li {
    list-style: none;
    width: 16.66667%; }
    .large-block-grid-6 > li:nth-of-type(1n) {
      clear: none; }
    .large-block-grid-6 > li:nth-of-type(6n+1) {
      clear: both; }
  .large-block-grid-7 > li {
    list-style: none;
    width: 14.28571%; }
    .large-block-grid-7 > li:nth-of-type(1n) {
      clear: none; }
    .large-block-grid-7 > li:nth-of-type(7n+1) {
      clear: both; }
  .large-block-grid-8 > li {
    list-style: none;
    width: 12.5%; }
    .large-block-grid-8 > li:nth-of-type(1n) {
      clear: none; }
    .large-block-grid-8 > li:nth-of-type(8n+1) {
      clear: both; }
  .large-block-grid-9 > li {
    list-style: none;
    width: 11.11111%; }
    .large-block-grid-9 > li:nth-of-type(1n) {
      clear: none; }
    .large-block-grid-9 > li:nth-of-type(9n+1) {
      clear: both; }
  .large-block-grid-10 > li {
    list-style: none;
    width: 10%; }
    .large-block-grid-10 > li:nth-of-type(1n) {
      clear: none; }
    .large-block-grid-10 > li:nth-of-type(10n+1) {
      clear: both; }
  .large-block-grid-11 > li {
    list-style: none;
    width: 9.09091%; }
    .large-block-grid-11 > li:nth-of-type(1n) {
      clear: none; }
    .large-block-grid-11 > li:nth-of-type(11n+1) {
      clear: both; }
  .large-block-grid-12 > li {
    list-style: none;
    width: 8.33333%; }
    .large-block-grid-12 > li:nth-of-type(1n) {
      clear: none; }
    .large-block-grid-12 > li:nth-of-type(12n+1) {
      clear: both; } }

.breadcrumbs {
  border-style: none;
  border-width: 1px;
  display: block;
  list-style: none;
  margin-left: 0;
  overflow: hidden;
  padding: 0 0.875rem 0.5625rem;
  background-color: transparent;
  border-color: transparent;
  border-radius: 3px; }
  .breadcrumbs > * {
    color: #2c7ef0;
    float: left;
    font-size: 0.75rem;
    line-height: 0.75rem;
    margin: 0;
    text-transform: uppercase; }
    .breadcrumbs > *:hover a, .breadcrumbs > *:focus a {
      text-decoration: underline; }
    .breadcrumbs > * a {
      color: #2c7ef0; }
    .breadcrumbs > *.current {
      color: #999999;
      cursor: default; }
      .breadcrumbs > *.current a {
        color: #999999;
        cursor: default; }
      .breadcrumbs > *.current:hover, .breadcrumbs > *.current:hover a, .breadcrumbs > *.current:focus, .breadcrumbs > *.current:focus a {
        text-decoration: none; }
    .breadcrumbs > *.unavailable {
      color: #999999; }
      .breadcrumbs > *.unavailable a {
        color: #999999; }
      .breadcrumbs > *.unavailable:hover,
      .breadcrumbs > *.unavailable:hover a, .breadcrumbs > *.unavailable:focus,
      .breadcrumbs > *.unavailable a:focus {
        color: #999999;
        cursor: not-allowed;
        text-decoration: none; }
    .breadcrumbs > *:before {
      color: #AAAAAA;
      content: "/";
      margin: 0 0.75rem;
      position: relative;
      top: 1px; }
    .breadcrumbs > *:first-child:before {
      content: " ";
      margin: 0; }

/* Accessibility - hides the forward slash */
[aria-label="breadcrumbs"] [aria-hidden="true"]:after {
  content: "/"; }

button, .button {
  -webkit-appearance: none;
  -moz-appearance: none;
  border-radius: 0;
  border-style: solid;
  border-width: 0;
  cursor: pointer;
  font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 400;
  line-height: normal;
  margin: 0 0 1.25rem;
  position: relative;
  text-align: center;
  text-decoration: none;
  display: inline-block;
  padding: 0.9375rem 1.875rem 1rem 1.875rem;
  font-size: 1rem;
  background-color: #2262bb;
  border-color: #1552a8;
  color: #FFFFFF;
  transition: background-color 300ms ease-out; }
  button:hover, button:focus, .button:hover, .button:focus {
    background-color: #1552a8; }
  button:hover, button:focus, .button:hover, .button:focus {
    color: #FFFFFF; }
  button.secondary, .button.secondary {
    background-color: #EBEBEB;
    border-color: #dcdfe8;
    color: #333333; }
    button.secondary:hover, button.secondary:focus, .button.secondary:hover, .button.secondary:focus {
      background-color: #dcdfe8; }
    button.secondary:hover, button.secondary:focus, .button.secondary:hover, .button.secondary:focus {
      color: #333333; }
  button.success, .button.success {
    background-color: #43AC6A;
    border-color: #368a55;
    color: #FFFFFF; }
    button.success:hover, button.success:focus, .button.success:hover, .button.success:focus {
      background-color: #368a55; }
    button.success:hover, button.success:focus, .button.success:hover, .button.success:focus {
      color: #FFFFFF; }
  button.alert, .button.alert {
    background-color: #f04124;
    border-color: #cf2a0e;
    color: #FFFFFF; }
    button.alert:hover, button.alert:focus, .button.alert:hover, .button.alert:focus {
      background-color: #cf2a0e; }
    button.alert:hover, button.alert:focus, .button.alert:hover, .button.alert:focus {
      color: #FFFFFF; }
  button.warning, .button.warning {
    background-color: #f08a24;
    border-color: #cf6e0e;
    color: #FFFFFF; }
    button.warning:hover, button.warning:focus, .button.warning:hover, .button.warning:focus {
      background-color: #cf6e0e; }
    button.warning:hover, button.warning:focus, .button.warning:hover, .button.warning:focus {
      color: #FFFFFF; }
  button.info, .button.info {
    background-color: #a0d3e8;
    border-color: #61b6d9;
    color: #333333; }
    button.info:hover, button.info:focus, .button.info:hover, .button.info:focus {
      background-color: #61b6d9; }
    button.info:hover, button.info:focus, .button.info:hover, .button.info:focus {
      color: #FFFFFF; }
  button.large, .button.large {
    padding: 1.125rem 2.25rem 1.1875rem 2.25rem;
    font-size: 1.25rem; }
  button.small, .button.small {
    padding: 0.64062rem 1.28125rem 0.70312rem 1.28125rem;
    font-size: 1rem; }
  button.tiny, .button.tiny {
    padding: 0.475rem 0.95rem 0.5375rem 0.95rem;
    font-size: 0.75rem; }
  button.expand, .button.expand {
    padding-left: 0;
    padding-right: 0;
    width: 100%; }
  button.left-align, .button.left-align {
    text-align: left;
    text-indent: 0.75rem; }
  button.right-align, .button.right-align {
    text-align: right;
    padding-right: 0.75rem; }
  button.radius, .button.radius {
    border-radius: 3px; }
  button.round, button.icon-maps-markerMap.blue, button.icon-maps-markerMap.orange, .button.round, .button.icon-maps-markerMap.blue, .button.icon-maps-markerMap.orange {
    border-radius: 1000px; }
  button.disabled, button[disabled], .button.disabled, .button[disabled] {
    background-color: #2262bb;
    border-color: #1552a8;
    color: #FFFFFF;
    box-shadow: none;
    cursor: default;
    opacity: 0.5; }
    button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus {
      background-color: #1552a8; }
    button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus {
      color: #FFFFFF; }
    button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus {
      background-color: #2262bb; }
    button.disabled.secondary, button[disabled].secondary, .button.disabled.secondary, .button[disabled].secondary {
      background-color: #EBEBEB;
      border-color: #dcdfe8;
      color: #333333;
      box-shadow: none;
      cursor: default;
      opacity: 0.5; }
      button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
        background-color: #dcdfe8; }
      button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
        color: #333333; }
      button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
        background-color: #EBEBEB; }
    button.disabled.success, button[disabled].success, .button.disabled.success, .button[disabled].success {
      background-color: #43AC6A;
      border-color: #368a55;
      color: #FFFFFF;
      box-shadow: none;
      cursor: default;
      opacity: 0.5; }
      button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus {
        background-color: #368a55; }
      button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus {
        color: #FFFFFF; }
      button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus {
        background-color: #43AC6A; }
    button.disabled.alert, button[disabled].alert, .button.disabled.alert, .button[disabled].alert {
      background-color: #f04124;
      border-color: #cf2a0e;
      color: #FFFFFF;
      box-shadow: none;
      cursor: default;
      opacity: 0.5; }
      button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus {
        background-color: #cf2a0e; }
      button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus {
        color: #FFFFFF; }
      button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus {
        background-color: #f04124; }
    button.disabled.warning, button[disabled].warning, .button.disabled.warning, .button[disabled].warning {
      background-color: #f08a24;
      border-color: #cf6e0e;
      color: #FFFFFF;
      box-shadow: none;
      cursor: default;
      opacity: 0.5; }
      button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus {
        background-color: #cf6e0e; }
      button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus {
        color: #FFFFFF; }
      button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus {
        background-color: #f08a24; }
    button.disabled.info, button[disabled].info, .button.disabled.info, .button[disabled].info {
      background-color: #a0d3e8;
      border-color: #61b6d9;
      color: #333333;
      box-shadow: none;
      cursor: default;
      opacity: 0.5; }
      button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus {
        background-color: #61b6d9; }
      button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus {
        color: #FFFFFF; }
      button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus {
        background-color: #a0d3e8; }

button::-moz-focus-inner {
  border: 0;
  padding: 0; }

@media only screen and (min-width: 40.0625em) {
  button, .button {
    display: inline-block; } }

.button-group {
  list-style: none;
  margin: 0;
  left: 0; }
  .button-group:before, .button-group:after {
    content: " ";
    display: table; }
  .button-group:after {
    clear: both; }
  .button-group.even-2 li {
    display: inline-block;
    margin: 0 -2px;
    width: 50%; }
    .button-group.even-2 li > button, .button-group.even-2 li .button {
      border-left: 1px solid;
      border-color: rgba(255, 255, 255, 0.5); }
    .button-group.even-2 li:first-child button, .button-group.even-2 li:first-child .button {
      border-left: 0; }
    .button-group.even-2 li button, .button-group.even-2 li .button {
      width: 100%; }
  .button-group.even-3 li {
    display: inline-block;
    margin: 0 -2px;
    width: 33.33333%; }
    .button-group.even-3 li > button, .button-group.even-3 li .button {
      border-left: 1px solid;
      border-color: rgba(255, 255, 255, 0.5); }
    .button-group.even-3 li:first-child button, .button-group.even-3 li:first-child .button {
      border-left: 0; }
    .button-group.even-3 li button, .button-group.even-3 li .button {
      width: 100%; }
  .button-group.even-4 li {
    display: inline-block;
    margin: 0 -2px;
    width: 25%; }
    .button-group.even-4 li > button, .button-group.even-4 li .button {
      border-left: 1px solid;
      border-color: rgba(255, 255, 255, 0.5); }
    .button-group.even-4 li:first-child button, .button-group.even-4 li:first-child .button {
      border-left: 0; }
    .button-group.even-4 li button, .button-group.even-4 li .button {
      width: 100%; }
  .button-group.even-5 li {
    display: inline-block;
    margin: 0 -2px;
    width: 20%; }
    .button-group.even-5 li > button, .button-group.even-5 li .button {
      border-left: 1px solid;
      border-color: rgba(255, 255, 255, 0.5); }
    .button-group.even-5 li:first-child button, .button-group.even-5 li:first-child .button {
      border-left: 0; }
    .button-group.even-5 li button, .button-group.even-5 li .button {
      width: 100%; }
  .button-group.even-6 li {
    display: inline-block;
    margin: 0 -2px;
    width: 16.66667%; }
    .button-group.even-6 li > button, .button-group.even-6 li .button {
      border-left: 1px solid;
      border-color: rgba(255, 255, 255, 0.5); }
    .button-group.even-6 li:first-child button, .button-group.even-6 li:first-child .button {
      border-left: 0; }
    .button-group.even-6 li button, .button-group.even-6 li .button {
      width: 100%; }
  .button-group.even-7 li {
    display: inline-block;
    margin: 0 -2px;
    width: 14.28571%; }
    .button-group.even-7 li > button, .button-group.even-7 li .button {
      border-left: 1px solid;
      border-color: rgba(255, 255, 255, 0.5); }
    .button-group.even-7 li:first-child button, .button-group.even-7 li:first-child .button {
      border-left: 0; }
    .button-group.even-7 li button, .button-group.even-7 li .button {
      width: 100%; }
  .button-group.even-8 li {
    display: inline-block;
    margin: 0 -2px;
    width: 12.5%; }
    .button-group.even-8 li > button, .button-group.even-8 li .button {
      border-left: 1px solid;
      border-color: rgba(255, 255, 255, 0.5); }
    .button-group.even-8 li:first-child button, .button-group.even-8 li:first-child .button {
      border-left: 0; }
    .button-group.even-8 li button, .button-group.even-8 li .button {
      width: 100%; }
  .button-group > li {
    display: inline-block;
    margin: 0 -2px; }
    .button-group > li > button, .button-group > li .button {
      border-left: 1px solid;
      border-color: rgba(255, 255, 255, 0.5); }
    .button-group > li:first-child button, .button-group > li:first-child .button {
      border-left: 0; }
  .button-group.stack > li {
    display: block;
    margin: 0;
    float: none; }
    .button-group.stack > li > button, .button-group.stack > li .button {
      border-left: 1px solid;
      border-color: rgba(255, 255, 255, 0.5); }
    .button-group.stack > li:first-child button, .button-group.stack > li:first-child .button {
      border-left: 0; }
    .button-group.stack > li > button, .button-group.stack > li .button {
      border-color: rgba(255, 255, 255, 0.5);
      border-left-width: 0;
      border-top: 1px solid;
      display: block;
      margin: 0; }
    .button-group.stack > li > button {
      width: 100%; }
    .button-group.stack > li:first-child button, .button-group.stack > li:first-child .button {
      border-top: 0; }
  .button-group.stack-for-small > li {
    display: inline-block;
    margin: 0 -2px; }
    .button-group.stack-for-small > li > button, .button-group.stack-for-small > li .button {
      border-left: 1px solid;
      border-color: rgba(255, 255, 255, 0.5); }
    .button-group.stack-for-small > li:first-child button, .button-group.stack-for-small > li:first-child .button {
      border-left: 0; }
    @media only screen and (max-width: 40em) {
      .button-group.stack-for-small > li {
        display: block;
        margin: 0; }
        .button-group.stack-for-small > li > button, .button-group.stack-for-small > li .button {
          border-left: 1px solid;
          border-color: rgba(255, 255, 255, 0.5); }
        .button-group.stack-for-small > li:first-child button, .button-group.stack-for-small > li:first-child .button {
          border-left: 0; }
        .button-group.stack-for-small > li > button, .button-group.stack-for-small > li .button {
          border-color: rgba(255, 255, 255, 0.5);
          border-left-width: 0;
          border-top: 1px solid;
          display: block;
          margin: 0; }
        .button-group.stack-for-small > li > button {
          width: 100%; }
        .button-group.stack-for-small > li:first-child button, .button-group.stack-for-small > li:first-child .button {
          border-top: 0; } }
  .button-group.radius > * {
    display: inline-block;
    margin: 0 -2px; }
    .button-group.radius > * > button, .button-group.radius > * .button {
      border-left: 1px solid;
      border-color: rgba(255, 255, 255, 0.5); }
    .button-group.radius > *:first-child button, .button-group.radius > *:first-child .button {
      border-left: 0; }
    .button-group.radius > *,
    .button-group.radius > * > a,
    .button-group.radius > * > button,
    .button-group.radius > * > .button {
      border-radius: 0; }
    .button-group.radius > *:first-child,
    .button-group.radius > *:first-child > a,
    .button-group.radius > *:first-child > button,
    .button-group.radius > *:first-child > .button {
      -webkit-border-bottom-left-radius: 3px;
      -webkit-border-top-left-radius: 3px;
      border-bottom-left-radius: 3px;
      border-top-left-radius: 3px; }
    .button-group.radius > *:last-child,
    .button-group.radius > *:last-child > a,
    .button-group.radius > *:last-child > button,
    .button-group.radius > *:last-child > .button {
      -webkit-border-bottom-right-radius: 3px;
      -webkit-border-top-right-radius: 3px;
      border-bottom-right-radius: 3px;
      border-top-right-radius: 3px; }
  .button-group.radius.stack > * {
    display: block;
    margin: 0; }
    .button-group.radius.stack > * > button, .button-group.radius.stack > * .button {
      border-left: 1px solid;
      border-color: rgba(255, 255, 255, 0.5); }
    .button-group.radius.stack > *:first-child button, .button-group.radius.stack > *:first-child .button {
      border-left: 0; }
    .button-group.radius.stack > * > button, .button-group.radius.stack > * .button {
      border-color: rgba(255, 255, 255, 0.5);
      border-left-width: 0;
      border-top: 1px solid;
      display: block;
      margin: 0; }
    .button-group.radius.stack > * > button {
      width: 100%; }
    .button-group.radius.stack > *:first-child button, .button-group.radius.stack > *:first-child .button {
      border-top: 0; }
    .button-group.radius.stack > *,
    .button-group.radius.stack > * > a,
    .button-group.radius.stack > * > button,
    .button-group.radius.stack > * > .button {
      border-radius: 0; }
    .button-group.radius.stack > *:first-child,
    .button-group.radius.stack > *:first-child > a,
    .button-group.radius.stack > *:first-child > button,
    .button-group.radius.stack > *:first-child > .button {
      -webkit-top-left-radius: 3px;
      -webkit-top-right-radius: 3px;
      border-top-left-radius: 3px;
      border-top-right-radius: 3px; }
    .button-group.radius.stack > *:last-child,
    .button-group.radius.stack > *:last-child > a,
    .button-group.radius.stack > *:last-child > button,
    .button-group.radius.stack > *:last-child > .button {
      -webkit-bottom-left-radius: 3px;
      -webkit-bottom-right-radius: 3px;
      border-bottom-left-radius: 3px;
      border-bottom-right-radius: 3px; }
  @media only screen and (min-width: 40.0625em) {
    .button-group.radius.stack-for-small > * {
      display: inline-block;
      margin: 0 -2px; }
      .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * .button {
        border-left: 1px solid;
        border-color: rgba(255, 255, 255, 0.5); }
      .button-group.radius.stack-for-small > *:first-child button, .button-group.radius.stack-for-small > *:first-child .button {
        border-left: 0; }
      .button-group.radius.stack-for-small > *,
      .button-group.radius.stack-for-small > * > a,
      .button-group.radius.stack-for-small > * > button,
      .button-group.radius.stack-for-small > * > .button {
        border-radius: 0; }
      .button-group.radius.stack-for-small > *:first-child,
      .button-group.radius.stack-for-small > *:first-child > a,
      .button-group.radius.stack-for-small > *:first-child > button,
      .button-group.radius.stack-for-small > *:first-child > .button {
        -webkit-border-bottom-left-radius: 3px;
        -webkit-border-top-left-radius: 3px;
        border-bottom-left-radius: 3px;
        border-top-left-radius: 3px; }
      .button-group.radius.stack-for-small > *:last-child,
      .button-group.radius.stack-for-small > *:last-child > a,
      .button-group.radius.stack-for-small > *:last-child > button,
      .button-group.radius.stack-for-small > *:last-child > .button {
        -webkit-border-bottom-right-radius: 3px;
        -webkit-border-top-right-radius: 3px;
        border-bottom-right-radius: 3px;
        border-top-right-radius: 3px; } }
  @media only screen and (max-width: 40em) {
    .button-group.radius.stack-for-small > * {
      display: block;
      margin: 0; }
      .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * .button {
        border-left: 1px solid;
        border-color: rgba(255, 255, 255, 0.5); }
      .button-group.radius.stack-for-small > *:first-child button, .button-group.radius.stack-for-small > *:first-child .button {
        border-left: 0; }
      .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * .button {
        border-color: rgba(255, 255, 255, 0.5);
        border-left-width: 0;
        border-top: 1px solid;
        display: block;
        margin: 0; }
      .button-group.radius.stack-for-small > * > button {
        width: 100%; }
      .button-group.radius.stack-for-small > *:first-child button, .button-group.radius.stack-for-small > *:first-child .button {
        border-top: 0; }
      .button-group.radius.stack-for-small > *,
      .button-group.radius.stack-for-small > * > a,
      .button-group.radius.stack-for-small > * > button,
      .button-group.radius.stack-for-small > * > .button {
        border-radius: 0; }
      .button-group.radius.stack-for-small > *:first-child,
      .button-group.radius.stack-for-small > *:first-child > a,
      .button-group.radius.stack-for-small > *:first-child > button,
      .button-group.radius.stack-for-small > *:first-child > .button {
        -webkit-top-left-radius: 3px;
        -webkit-top-right-radius: 3px;
        border-top-left-radius: 3px;
        border-top-right-radius: 3px; }
      .button-group.radius.stack-for-small > *:last-child,
      .button-group.radius.stack-for-small > *:last-child > a,
      .button-group.radius.stack-for-small > *:last-child > button,
      .button-group.radius.stack-for-small > *:last-child > .button {
        -webkit-bottom-left-radius: 3px;
        -webkit-bottom-right-radius: 3px;
        border-bottom-left-radius: 3px;
        border-bottom-right-radius: 3px; } }
  .button-group.round > *, .button-group.icon-maps-markerMap.blue > *, .button-group.icon-maps-markerMap.orange > * {
    display: inline-block;
    margin: 0 -2px; }
    .button-group.round > * > button, .button-group.icon-maps-markerMap.blue > * > button, .button-group.icon-maps-markerMap.orange > * > button, .button-group.round > * .button, .button-group.icon-maps-markerMap.blue > * .button, .button-group.icon-maps-markerMap.orange > * .button {
      border-left: 1px solid;
      border-color: rgba(255, 255, 255, 0.5); }
    .button-group.round > *:first-child button, .button-group.icon-maps-markerMap.blue > *:first-child button, .button-group.icon-maps-markerMap.orange > *:first-child button, .button-group.round > *:first-child .button, .button-group.icon-maps-markerMap.blue > *:first-child .button, .button-group.icon-maps-markerMap.orange > *:first-child .button {
      border-left: 0; }
    .button-group.round > *, .button-group.icon-maps-markerMap.blue > *, .button-group.icon-maps-markerMap.orange > *,
    .button-group.round > * > a, .button-group.icon-maps-markerMap.blue > * > a, .button-group.icon-maps-markerMap.orange > * > a,
    .button-group.round > * > button, .button-group.icon-maps-markerMap.blue > * > button, .button-group.icon-maps-markerMap.orange > * > button,
    .button-group.round > * > .button, .button-group.icon-maps-markerMap.blue > * > .button, .button-group.icon-maps-markerMap.orange > * > .button {
      border-radius: 0; }
    .button-group.round > *:first-child, .button-group.icon-maps-markerMap.blue > *:first-child, .button-group.icon-maps-markerMap.orange > *:first-child,
    .button-group.round > *:first-child > a, .button-group.icon-maps-markerMap.blue > *:first-child > a, .button-group.icon-maps-markerMap.orange > *:first-child > a,
    .button-group.round > *:first-child > button, .button-group.icon-maps-markerMap.blue > *:first-child > button, .button-group.icon-maps-markerMap.orange > *:first-child > button,
    .button-group.round > *:first-child > .button, .button-group.icon-maps-markerMap.blue > *:first-child > .button, .button-group.icon-maps-markerMap.orange > *:first-child > .button {
      -webkit-border-bottom-left-radius: 1000px;
      -webkit-border-top-left-radius: 1000px;
      border-bottom-left-radius: 1000px;
      border-top-left-radius: 1000px; }
    .button-group.round > *:last-child, .button-group.icon-maps-markerMap.blue > *:last-child, .button-group.icon-maps-markerMap.orange > *:last-child,
    .button-group.round > *:last-child > a, .button-group.icon-maps-markerMap.blue > *:last-child > a, .button-group.icon-maps-markerMap.orange > *:last-child > a,
    .button-group.round > *:last-child > button, .button-group.icon-maps-markerMap.blue > *:last-child > button, .button-group.icon-maps-markerMap.orange > *:last-child > button,
    .button-group.round > *:last-child > .button, .button-group.icon-maps-markerMap.blue > *:last-child > .button, .button-group.icon-maps-markerMap.orange > *:last-child > .button {
      -webkit-border-bottom-right-radius: 1000px;
      -webkit-border-top-right-radius: 1000px;
      border-bottom-right-radius: 1000px;
      border-top-right-radius: 1000px; }
  .button-group.round.stack > *, .button-group.stack.icon-maps-markerMap.blue > *, .button-group.stack.icon-maps-markerMap.orange > * {
    display: block;
    margin: 0; }
    .button-group.round.stack > * > button, .button-group.stack.icon-maps-markerMap.blue > * > button, .button-group.stack.icon-maps-markerMap.orange > * > button, .button-group.round.stack > * .button, .button-group.stack.icon-maps-markerMap.blue > * .button, .button-group.stack.icon-maps-markerMap.orange > * .button {
      border-left: 1px solid;
      border-color: rgba(255, 255, 255, 0.5); }
    .button-group.round.stack > *:first-child button, .button-group.stack.icon-maps-markerMap.blue > *:first-child button, .button-group.stack.icon-maps-markerMap.orange > *:first-child button, .button-group.round.stack > *:first-child .button, .button-group.stack.icon-maps-markerMap.blue > *:first-child .button, .button-group.stack.icon-maps-markerMap.orange > *:first-child .button {
      border-left: 0; }
    .button-group.round.stack > * > button, .button-group.stack.icon-maps-markerMap.blue > * > button, .button-group.stack.icon-maps-markerMap.orange > * > button, .button-group.round.stack > * .button, .button-group.stack.icon-maps-markerMap.blue > * .button, .button-group.stack.icon-maps-markerMap.orange > * .button {
      border-color: rgba(255, 255, 255, 0.5);
      border-left-width: 0;
      border-top: 1px solid;
      display: block;
      margin: 0; }
    .button-group.round.stack > * > button, .button-group.stack.icon-maps-markerMap.blue > * > button, .button-group.stack.icon-maps-markerMap.orange > * > button {
      width: 100%; }
    .button-group.round.stack > *:first-child button, .button-group.stack.icon-maps-markerMap.blue > *:first-child button, .button-group.stack.icon-maps-markerMap.orange > *:first-child button, .button-group.round.stack > *:first-child .button, .button-group.stack.icon-maps-markerMap.blue > *:first-child .button, .button-group.stack.icon-maps-markerMap.orange > *:first-child .button {
      border-top: 0; }
    .button-group.round.stack > *, .button-group.stack.icon-maps-markerMap.blue > *, .button-group.stack.icon-maps-markerMap.orange > *,
    .button-group.round.stack > * > a, .button-group.stack.icon-maps-markerMap.blue > * > a, .button-group.stack.icon-maps-markerMap.orange > * > a,
    .button-group.round.stack > * > button, .button-group.stack.icon-maps-markerMap.blue > * > button, .button-group.stack.icon-maps-markerMap.orange > * > button,
    .button-group.round.stack > * > .button, .button-group.stack.icon-maps-markerMap.blue > * > .button, .button-group.stack.icon-maps-markerMap.orange > * > .button {
      border-radius: 0; }
    .button-group.round.stack > *:first-child, .button-group.stack.icon-maps-markerMap.blue > *:first-child, .button-group.stack.icon-maps-markerMap.orange > *:first-child,
    .button-group.round.stack > *:first-child > a, .button-group.stack.icon-maps-markerMap.blue > *:first-child > a, .button-group.stack.icon-maps-markerMap.orange > *:first-child > a,
    .button-group.round.stack > *:first-child > button, .button-group.stack.icon-maps-markerMap.blue > *:first-child > button, .button-group.stack.icon-maps-markerMap.orange > *:first-child > button,
    .button-group.round.stack > *:first-child > .button, .button-group.stack.icon-maps-markerMap.blue > *:first-child > .button, .button-group.stack.icon-maps-markerMap.orange > *:first-child > .button {
      -webkit-top-left-radius: 0.9375rem;
      -webkit-top-right-radius: 0.9375rem;
      border-top-left-radius: 0.9375rem;
      border-top-right-radius: 0.9375rem; }
    .button-group.round.stack > *:last-child, .button-group.stack.icon-maps-markerMap.blue > *:last-child, .button-group.stack.icon-maps-markerMap.orange > *:last-child,
    .button-group.round.stack > *:last-child > a, .button-group.stack.icon-maps-markerMap.blue > *:last-child > a, .button-group.stack.icon-maps-markerMap.orange > *:last-child > a,
    .button-group.round.stack > *:last-child > button, .button-group.stack.icon-maps-markerMap.blue > *:last-child > button, .button-group.stack.icon-maps-markerMap.orange > *:last-child > button,
    .button-group.round.stack > *:last-child > .button, .button-group.stack.icon-maps-markerMap.blue > *:last-child > .button, .button-group.stack.icon-maps-markerMap.orange > *:last-child > .button {
      -webkit-bottom-left-radius: 0.9375rem;
      -webkit-bottom-right-radius: 0.9375rem;
      border-bottom-left-radius: 0.9375rem;
      border-bottom-right-radius: 0.9375rem; }
  @media only screen and (min-width: 40.0625em) {
    .button-group.round.stack-for-small > *, .button-group.stack-for-small.icon-maps-markerMap.blue > *, .button-group.stack-for-small.icon-maps-markerMap.orange > * {
      display: inline-block;
      margin: 0 -2px; }
      .button-group.round.stack-for-small > * > button, .button-group.stack-for-small.icon-maps-markerMap.blue > * > button, .button-group.stack-for-small.icon-maps-markerMap.orange > * > button, .button-group.round.stack-for-small > * .button, .button-group.stack-for-small.icon-maps-markerMap.blue > * .button, .button-group.stack-for-small.icon-maps-markerMap.orange > * .button {
        border-left: 1px solid;
        border-color: rgba(255, 255, 255, 0.5); }
      .button-group.round.stack-for-small > *:first-child button, .button-group.stack-for-small.icon-maps-markerMap.blue > *:first-child button, .button-group.stack-for-small.icon-maps-markerMap.orange > *:first-child button, .button-group.round.stack-for-small > *:first-child .button, .button-group.stack-for-small.icon-maps-markerMap.blue > *:first-child .button, .button-group.stack-for-small.icon-maps-markerMap.orange > *:first-child .button {
        border-left: 0; }
      .button-group.round.stack-for-small > *, .button-group.stack-for-small.icon-maps-markerMap.blue > *, .button-group.stack-for-small.icon-maps-markerMap.orange > *,
      .button-group.round.stack-for-small > * > a, .button-group.stack-for-small.icon-maps-markerMap.blue > * > a, .button-group.stack-for-small.icon-maps-markerMap.orange > * > a,
      .button-group.round.stack-for-small > * > button, .button-group.stack-for-small.icon-maps-markerMap.blue > * > button, .button-group.stack-for-small.icon-maps-markerMap.orange > * > button,
      .button-group.round.stack-for-small > * > .button, .button-group.stack-for-small.icon-maps-markerMap.blue > * > .button, .button-group.stack-for-small.icon-maps-markerMap.orange > * > .button {
        border-radius: 0; }
      .button-group.round.stack-for-small > *:first-child, .button-group.stack-for-small.icon-maps-markerMap.blue > *:first-child, .button-group.stack-for-small.icon-maps-markerMap.orange > *:first-child,
      .button-group.round.stack-for-small > *:first-child > a, .button-group.stack-for-small.icon-maps-markerMap.blue > *:first-child > a, .button-group.stack-for-small.icon-maps-markerMap.orange > *:first-child > a,
      .button-group.round.stack-for-small > *:first-child > button, .button-group.stack-for-small.icon-maps-markerMap.blue > *:first-child > button, .button-group.stack-for-small.icon-maps-markerMap.orange > *:first-child > button,
      .button-group.round.stack-for-small > *:first-child > .button, .button-group.stack-for-small.icon-maps-markerMap.blue > *:first-child > .button, .button-group.stack-for-small.icon-maps-markerMap.orange > *:first-child > .button {
        -webkit-border-bottom-left-radius: 1000px;
        -webkit-border-top-left-radius: 1000px;
        border-bottom-left-radius: 1000px;
        border-top-left-radius: 1000px; }
      .button-group.round.stack-for-small > *:last-child, .button-group.stack-for-small.icon-maps-markerMap.blue > *:last-child, .button-group.stack-for-small.icon-maps-markerMap.orange > *:last-child,
      .button-group.round.stack-for-small > *:last-child > a, .button-group.stack-for-small.icon-maps-markerMap.blue > *:last-child > a, .button-group.stack-for-small.icon-maps-markerMap.orange > *:last-child > a,
      .button-group.round.stack-for-small > *:last-child > button, .button-group.stack-for-small.icon-maps-markerMap.blue > *:last-child > button, .button-group.stack-for-small.icon-maps-markerMap.orange > *:last-child > button,
      .button-group.round.stack-for-small > *:last-child > .button, .button-group.stack-for-small.icon-maps-markerMap.blue > *:last-child > .button, .button-group.stack-for-small.icon-maps-markerMap.orange > *:last-child > .button {
        -webkit-border-bottom-right-radius: 1000px;
        -webkit-border-top-right-radius: 1000px;
        border-bottom-right-radius: 1000px;
        border-top-right-radius: 1000px; } }
  @media only screen and (max-width: 40em) {
    .button-group.round.stack-for-small > *, .button-group.stack-for-small.icon-maps-markerMap.blue > *, .button-group.stack-for-small.icon-maps-markerMap.orange > * {
      display: block;
      margin: 0; }
      .button-group.round.stack-for-small > * > button, .button-group.stack-for-small.icon-maps-markerMap.blue > * > button, .button-group.stack-for-small.icon-maps-markerMap.orange > * > button, .button-group.round.stack-for-small > * .button, .button-group.stack-for-small.icon-maps-markerMap.blue > * .button, .button-group.stack-for-small.icon-maps-markerMap.orange > * .button {
        border-left: 1px solid;
        border-color: rgba(255, 255, 255, 0.5); }
      .button-group.round.stack-for-small > *:first-child button, .button-group.stack-for-small.icon-maps-markerMap.blue > *:first-child button, .button-group.stack-for-small.icon-maps-markerMap.orange > *:first-child button, .button-group.round.stack-for-small > *:first-child .button, .button-group.stack-for-small.icon-maps-markerMap.blue > *:first-child .button, .button-group.stack-for-small.icon-maps-markerMap.orange > *:first-child .button {
        border-left: 0; }
      .button-group.round.stack-for-small > * > button, .button-group.stack-for-small.icon-maps-markerMap.blue > * > button, .button-group.stack-for-small.icon-maps-markerMap.orange > * > button, .button-group.round.stack-for-small > * .button, .button-group.stack-for-small.icon-maps-markerMap.blue > * .button, .button-group.stack-for-small.icon-maps-markerMap.orange > * .button {
        border-color: rgba(255, 255, 255, 0.5);
        border-left-width: 0;
        border-top: 1px solid;
        display: block;
        margin: 0; }
      .button-group.round.stack-for-small > * > button, .button-group.stack-for-small.icon-maps-markerMap.blue > * > button, .button-group.stack-for-small.icon-maps-markerMap.orange > * > button {
        width: 100%; }
      .button-group.round.stack-for-small > *:first-child button, .button-group.stack-for-small.icon-maps-markerMap.blue > *:first-child button, .button-group.stack-for-small.icon-maps-markerMap.orange > *:first-child button, .button-group.round.stack-for-small > *:first-child .button, .button-group.stack-for-small.icon-maps-markerMap.blue > *:first-child .button, .button-group.stack-for-small.icon-maps-markerMap.orange > *:first-child .button {
        border-top: 0; }
      .button-group.round.stack-for-small > *, .button-group.stack-for-small.icon-maps-markerMap.blue > *, .button-group.stack-for-small.icon-maps-markerMap.orange > *,
      .button-group.round.stack-for-small > * > a, .button-group.stack-for-small.icon-maps-markerMap.blue > * > a, .button-group.stack-for-small.icon-maps-markerMap.orange > * > a,
      .button-group.round.stack-for-small > * > button, .button-group.stack-for-small.icon-maps-markerMap.blue > * > button, .button-group.stack-for-small.icon-maps-markerMap.orange > * > button,
      .button-group.round.stack-for-small > * > .button, .button-group.stack-for-small.icon-maps-markerMap.blue > * > .button, .button-group.stack-for-small.icon-maps-markerMap.orange > * > .button {
        border-radius: 0; }
      .button-group.round.stack-for-small > *:first-child, .button-group.stack-for-small.icon-maps-markerMap.blue > *:first-child, .button-group.stack-for-small.icon-maps-markerMap.orange > *:first-child,
      .button-group.round.stack-for-small > *:first-child > a, .button-group.stack-for-small.icon-maps-markerMap.blue > *:first-child > a, .button-group.stack-for-small.icon-maps-markerMap.orange > *:first-child > a,
      .button-group.round.stack-for-small > *:first-child > button, .button-group.stack-for-small.icon-maps-markerMap.blue > *:first-child > button, .button-group.stack-for-small.icon-maps-markerMap.orange > *:first-child > button,
      .button-group.round.stack-for-small > *:first-child > .button, .button-group.stack-for-small.icon-maps-markerMap.blue > *:first-child > .button, .button-group.stack-for-small.icon-maps-markerMap.orange > *:first-child > .button {
        -webkit-top-left-radius: 0.9375rem;
        -webkit-top-right-radius: 0.9375rem;
        border-top-left-radius: 0.9375rem;
        border-top-right-radius: 0.9375rem; }
      .button-group.round.stack-for-small > *:last-child, .button-group.stack-for-small.icon-maps-markerMap.blue > *:last-child, .button-group.stack-for-small.icon-maps-markerMap.orange > *:last-child,
      .button-group.round.stack-for-small > *:last-child > a, .button-group.stack-for-small.icon-maps-markerMap.blue > *:last-child > a, .button-group.stack-for-small.icon-maps-markerMap.orange > *:last-child > a,
      .button-group.round.stack-for-small > *:last-child > button, .button-group.stack-for-small.icon-maps-markerMap.blue > *:last-child > button, .button-group.stack-for-small.icon-maps-markerMap.orange > *:last-child > button,
      .button-group.round.stack-for-small > *:last-child > .button, .button-group.stack-for-small.icon-maps-markerMap.blue > *:last-child > .button, .button-group.stack-for-small.icon-maps-markerMap.orange > *:last-child > .button {
        -webkit-bottom-left-radius: 0.9375rem;
        -webkit-bottom-right-radius: 0.9375rem;
        border-bottom-left-radius: 0.9375rem;
        border-bottom-right-radius: 0.9375rem; } }

.button-bar:before, .button-bar:after {
  content: " ";
  display: table; }

.button-bar:after {
  clear: both; }

.button-bar .button-group {
  float: left;
  margin-right: 0.625rem; }
  .button-bar .button-group div {
    overflow: hidden; }

/* Clearing Styles */
.clearing-thumbs, [data-clearing] {
  list-style: none;
  margin-left: 0;
  margin-bottom: 0; }
  .clearing-thumbs:before, .clearing-thumbs:after, [data-clearing]:before, [data-clearing]:after {
    content: " ";
    display: table; }
  .clearing-thumbs:after, [data-clearing]:after {
    clear: both; }
  .clearing-thumbs li, [data-clearing] li {
    float: left;
    margin-right: 10px; }
  .clearing-thumbs[class*="block-grid-"] li, [data-clearing][class*="block-grid-"] li {
    margin-right: 0; }

.clearing-blackout {
  background: #333333;
  height: 100%;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 998;
  left: 0; }
  .clearing-blackout .clearing-close {
    display: block; }

.clearing-container {
  height: 100%;
  margin: 0;
  overflow: hidden;
  position: relative;
  z-index: 998; }

.clearing-touch-label {
  color: #AAAAAA;
  font-size: .6em;
  left: 50%;
  position: absolute;
  top: 50%; }

.visible-img {
  height: 95%;
  position: relative; }
  .visible-img img {
    position: absolute;
    left: 50%;
    top: 50%;
    -webkit-transform: translateY(-50%) translateX(-50%);
    -moz-transform: translateY(-50%) translateX(-50%);
    -ms-transform: translateY(-50%) translateX(-50%);
    -o-transform: translateY(-50%) translateX(-50%);
    transform: translateY(-50%) translateX(-50%);
    max-height: 100%;
    max-width: 100%; }

.clearing-caption {
  background: #333333;
  bottom: 0;
  color: #CCCCCC;
  font-size: 0.875em;
  line-height: 1.3;
  margin-bottom: 0;
  padding: 10px 30px 20px;
  position: absolute;
  text-align: center;
  width: 100%;
  left: 0; }

.clearing-close {
  color: #CCCCCC;
  display: none;
  font-size: 30px;
  line-height: 1;
  padding-left: 20px;
  padding-top: 10px;
  z-index: 999; }
  .clearing-close:hover, .clearing-close:focus {
    color: #CCCCCC; }

.clearing-assembled .clearing-container {
  height: 100%; }
  .clearing-assembled .clearing-container .carousel > ul {
    display: none; }

.clearing-feature li {
  display: none; }
  .clearing-feature li.clearing-featured-img {
    display: block; }

@media only screen and (min-width: 40.0625em) {
  .clearing-main-prev,
  .clearing-main-next {
    height: 100%;
    position: absolute;
    top: 0;
    width: 40px; }
    .clearing-main-prev > span,
    .clearing-main-next > span {
      border: solid 12px;
      display: block;
      height: 0;
      position: absolute;
      top: 50%;
      width: 0; }
      .clearing-main-prev > span:hover,
      .clearing-main-next > span:hover {
        opacity: .8; }
  .clearing-main-prev {
    left: 0; }
    .clearing-main-prev > span {
      left: 5px;
      border-color: transparent;
      border-right-color: #CCCCCC; }
  .clearing-main-next {
    right: 0; }
    .clearing-main-next > span {
      border-color: transparent;
      border-left-color: #CCCCCC; }
  .clearing-main-prev.disabled,
  .clearing-main-next.disabled {
    opacity: .3; }
  .clearing-assembled .clearing-container .carousel {
    background: rgba(51, 51, 51, 0.8);
    height: 120px;
    margin-top: 10px;
    text-align: center; }
    .clearing-assembled .clearing-container .carousel > ul {
      display: inline-block;
      z-index: 999;
      height: 100%;
      position: relative;
      float: none; }
      .clearing-assembled .clearing-container .carousel > ul li {
        clear: none;
        cursor: pointer;
        display: block;
        float: left;
        margin-right: 0;
        min-height: inherit;
        opacity: .4;
        overflow: hidden;
        padding: 0;
        position: relative;
        width: 120px; }
        .clearing-assembled .clearing-container .carousel > ul li.fix-height img {
          height: 100%;
          max-width: none; }
        .clearing-assembled .clearing-container .carousel > ul li a.th {
          border: none;
          box-shadow: none;
          display: block; }
        .clearing-assembled .clearing-container .carousel > ul li img {
          cursor: pointer !important;
          width: 100% !important; }
        .clearing-assembled .clearing-container .carousel > ul li.visible {
          opacity: 1; }
        .clearing-assembled .clearing-container .carousel > ul li:hover {
          opacity: .8; }
  .clearing-assembled .clearing-container .visible-img {
    background: #333333;
    height: 85%;
    overflow: hidden; }
  .clearing-close {
    padding-left: 0;
    padding-top: 0;
    position: absolute;
    top: 10px;
    right: 20px; } }

/* Foundation Dropdowns */
.f-dropdown {
  display: none;
  left: -9999px;
  list-style: none;
  margin-left: 0;
  position: absolute;
  background: #FFFFFF;
  border: solid 1px #cccccc;
  font-size: 0.875rem;
  height: auto;
  max-height: none;
  width: 100%;
  z-index: 89;
  margin-top: 2px;
  max-width: 200px; }
  .f-dropdown.open {
    display: block; }
  .f-dropdown > *:first-child {
    margin-top: 0; }
  .f-dropdown > *:last-child {
    margin-bottom: 0; }
  .f-dropdown:before {
    border: inset 6px;
    content: "";
    display: block;
    height: 0;
    width: 0;
    border-color: transparent transparent #FFFFFF transparent;
    border-bottom-style: solid;
    position: absolute;
    top: -12px;
    left: 10px;
    z-index: 89; }
  .f-dropdown:after {
    border: inset 7px;
    content: "";
    display: block;
    height: 0;
    width: 0;
    border-color: transparent transparent #cccccc transparent;
    border-bottom-style: solid;
    position: absolute;
    top: -14px;
    left: 9px;
    z-index: 88; }
  .f-dropdown.right:before {
    left: auto;
    right: 10px; }
  .f-dropdown.right:after {
    left: auto;
    right: 9px; }
  .f-dropdown.drop-right {
    display: none;
    left: -9999px;
    list-style: none;
    margin-left: 0;
    position: absolute;
    background: #FFFFFF;
    border: solid 1px #cccccc;
    font-size: 0.875rem;
    height: auto;
    max-height: none;
    width: 100%;
    z-index: 89;
    margin-top: 0;
    margin-left: 2px;
    max-width: 200px; }
    .f-dropdown.drop-right.open {
      display: block; }
    .f-dropdown.drop-right > *:first-child {
      margin-top: 0; }
    .f-dropdown.drop-right > *:last-child {
      margin-bottom: 0; }
    .f-dropdown.drop-right:before {
      border: inset 6px;
      content: "";
      display: block;
      height: 0;
      width: 0;
      border-color: transparent #FFFFFF transparent transparent;
      border-right-style: solid;
      position: absolute;
      top: 10px;
      left: -12px;
      z-index: 89; }
    .f-dropdown.drop-right:after {
      border: inset 7px;
      content: "";
      display: block;
      height: 0;
      width: 0;
      border-color: transparent #cccccc transparent transparent;
      border-right-style: solid;
      position: absolute;
      top: 9px;
      left: -14px;
      z-index: 88; }
  .f-dropdown.drop-left {
    display: none;
    left: -9999px;
    list-style: none;
    margin-left: 0;
    position: absolute;
    background: #FFFFFF;
    border: solid 1px #cccccc;
    font-size: 0.875rem;
    height: auto;
    max-height: none;
    width: 100%;
    z-index: 89;
    margin-top: 0;
    margin-left: -2px;
    max-width: 200px; }
    .f-dropdown.drop-left.open {
      display: block; }
    .f-dropdown.drop-left > *:first-child {
      margin-top: 0; }
    .f-dropdown.drop-left > *:last-child {
      margin-bottom: 0; }
    .f-dropdown.drop-left:before {
      border: inset 6px;
      content: "";
      display: block;
      height: 0;
      width: 0;
      border-color: transparent transparent transparent #FFFFFF;
      border-left-style: solid;
      position: absolute;
      top: 10px;
      right: -12px;
      left: auto;
      z-index: 89; }
    .f-dropdown.drop-left:after {
      border: inset 7px;
      content: "";
      display: block;
      height: 0;
      width: 0;
      border-color: transparent transparent transparent #cccccc;
      border-left-style: solid;
      position: absolute;
      top: 9px;
      right: -14px;
      left: auto;
      z-index: 88; }
  .f-dropdown.drop-top {
    display: none;
    left: -9999px;
    list-style: none;
    margin-left: 0;
    position: absolute;
    background: #FFFFFF;
    border: solid 1px #cccccc;
    font-size: 0.875rem;
    height: auto;
    max-height: none;
    width: 100%;
    z-index: 89;
    margin-left: 0;
    margin-top: -2px;
    max-width: 200px; }
    .f-dropdown.drop-top.open {
      display: block; }
    .f-dropdown.drop-top > *:first-child {
      margin-top: 0; }
    .f-dropdown.drop-top > *:last-child {
      margin-bottom: 0; }
    .f-dropdown.drop-top:before {
      border: inset 6px;
      content: "";
      display: block;
      height: 0;
      width: 0;
      border-color: #FFFFFF transparent transparent transparent;
      border-top-style: solid;
      bottom: -12px;
      position: absolute;
      top: auto;
      left: 10px;
      right: auto;
      z-index: 89; }
    .f-dropdown.drop-top:after {
      border: inset 7px;
      content: "";
      display: block;
      height: 0;
      width: 0;
      border-color: #cccccc transparent transparent transparent;
      border-top-style: solid;
      bottom: -14px;
      position: absolute;
      top: auto;
      left: 9px;
      right: auto;
      z-index: 88; }
  .f-dropdown li {
    cursor: pointer;
    font-size: 0.875rem;
    line-height: 1.125rem;
    margin: 0; }
    .f-dropdown li:hover, .f-dropdown li:focus {
      background: #eeeeee; }
    .f-dropdown li.radius {
      border-radius: 3px; }
    .f-dropdown li a {
      display: block;
      padding: 0.5rem;
      color: #555555; }
  .f-dropdown.content {
    display: none;
    left: -9999px;
    list-style: none;
    margin-left: 0;
    position: absolute;
    background: #FFFFFF;
    border: solid 1px #cccccc;
    font-size: 0.875rem;
    height: auto;
    max-height: none;
    padding: 1.25rem;
    width: 100%;
    z-index: 89;
    max-width: 200px; }
    .f-dropdown.content.open {
      display: block; }
    .f-dropdown.content > *:first-child {
      margin-top: 0; }
    .f-dropdown.content > *:last-child {
      margin-bottom: 0; }
  .f-dropdown.tiny {
    max-width: 200px; }
  .f-dropdown.small {
    max-width: 300px; }
  .f-dropdown.medium {
    max-width: 500px; }
  .f-dropdown.large {
    max-width: 800px; }
  .f-dropdown.mega {
    width: 100% !important;
    max-width: 100% !important; }
    .f-dropdown.mega.open {
      left: 0 !important; }

.dropdown.button, button.dropdown {
  position: relative;
  padding-right: 3.5625rem; }
  .dropdown.button::after, button.dropdown::after {
    border-color: #FFFFFF transparent transparent transparent;
    border-style: solid;
    content: "";
    display: block;
    height: 0;
    position: absolute;
    top: 50%;
    width: 0; }
  .dropdown.button::after, button.dropdown::after {
    border-width: 0.375rem;
    right: 1.40625rem;
    margin-top: -0.15625rem; }
  .dropdown.button::after, button.dropdown::after {
    border-color: #FFFFFF transparent transparent transparent; }
  .dropdown.button.tiny, button.dropdown.tiny {
    padding-right: 2.625rem; }
    .dropdown.button.tiny:after, button.dropdown.tiny:after {
      border-width: 0.375rem;
      right: 1.125rem;
      margin-top: -0.125rem; }
    .dropdown.button.tiny::after, button.dropdown.tiny::after {
      border-color: #FFFFFF transparent transparent transparent; }
  .dropdown.button.small, button.dropdown.small {
    padding-right: 3.0625rem; }
    .dropdown.button.small::after, button.dropdown.small::after {
      border-width: 0.4375rem;
      right: 1.3125rem;
      margin-top: -0.15625rem; }
    .dropdown.button.small::after, button.dropdown.small::after {
      border-color: #FFFFFF transparent transparent transparent; }
  .dropdown.button.large, button.dropdown.large {
    padding-right: 3.625rem; }
    .dropdown.button.large::after, button.dropdown.large::after {
      border-width: 0.3125rem;
      right: 1.71875rem;
      margin-top: -0.15625rem; }
    .dropdown.button.large::after, button.dropdown.large::after {
      border-color: #FFFFFF transparent transparent transparent; }
  .dropdown.button.secondary:after, button.dropdown.secondary:after {
    border-color: #333333 transparent transparent transparent; }

.flex-video {
  height: 0;
  margin-bottom: 1rem;
  overflow: hidden;
  padding-bottom: 67.5%;
  padding-top: 1.5625rem;
  position: relative; }
  .flex-video.widescreen {
    padding-bottom: 56.34%; }
  .flex-video.vimeo {
    padding-top: 0; }
  .flex-video iframe,
  .flex-video object,
  .flex-video embed,
  .flex-video video {
    height: 100%;
    position: absolute;
    top: 0;
    width: 100%;
    left: 0; }

/* Standard Forms */
form {
  margin: 0 0 1.125rem; }

/* Using forms within rows, we need to set some defaults */
form .row .row {
  margin: 0 -0.5625rem; }
  form .row .row .column,
  form .row .row .columns {
    padding: 0 0.5625rem; }
  form .row .row.collapse {
    margin: 0; }
    form .row .row.collapse .column,
    form .row .row.collapse .columns {
      padding: 0; }
    form .row .row.collapse input {
      -webkit-border-bottom-right-radius: 0;
      -webkit-border-top-right-radius: 0;
      border-bottom-right-radius: 0;
      border-top-right-radius: 0; }

form .row input.column,
form .row input.columns,
form .row textarea.column,
form .row textarea.columns {
  padding-left: 0.5625rem; }

/* Label Styles */
label {
  color: #4d4d4d;
  cursor: pointer;
  display: block;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  margin-bottom: 0;
  /* Styles for required inputs */ }
  label.right {
    float: none !important;
    text-align: right; }
  label.inline {
    margin: 0 0 1.125rem 0;
    padding: 0.625rem 0; }
  label small {
    text-transform: capitalize;
    color: #676767; }

/* Attach elements to the beginning or end of an input */
.prefix,
.postfix {
  border-style: solid;
  border-width: 1px;
  display: block;
  font-size: 1rem;
  height: 2.625rem;
  line-height: 2.625rem;
  overflow: visible;
  padding-bottom: 0;
  padding-top: 0;
  position: relative;
  text-align: center;
  width: 100%;
  z-index: 2; }

/* Adjust padding, alignment and radius if pre/post element is a button */
.postfix.button {
  border-color: true; }

.prefix.button {
  border: none;
  padding-left: 0;
  padding-right: 0;
  padding-bottom: 0;
  padding-top: 0;
  text-align: center; }

.prefix.button.radius {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 3px;
  -webkit-border-top-left-radius: 3px;
  border-bottom-left-radius: 3px;
  border-top-left-radius: 3px; }

.postfix.button.radius {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 3px;
  -webkit-border-top-right-radius: 3px;
  border-bottom-right-radius: 3px;
  border-top-right-radius: 3px; }

.prefix.button.round, .prefix.button.icon-maps-markerMap.blue, .prefix.button.icon-maps-markerMap.orange {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 1000px;
  -webkit-border-top-left-radius: 1000px;
  border-bottom-left-radius: 1000px;
  border-top-left-radius: 1000px; }

.postfix.button.round, .postfix.button.icon-maps-markerMap.blue, .postfix.button.icon-maps-markerMap.orange {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 1000px;
  -webkit-border-top-right-radius: 1000px;
  border-bottom-right-radius: 1000px;
  border-top-right-radius: 1000px; }

/* Separate prefix and postfix styles when on span or label so buttons keep their own */
span.prefix, label.prefix {
  background: #f2f2f2;
  border-right: none;
  color: #333333;
  border-color: #cccccc; }

span.postfix, label.postfix {
  background: #f2f2f2;
  color: #333333;
  border-color: #cccccc; }

/* We use this to get basic styling on all basic form elements */
input[type="text"], input[type="password"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="month"], input[type="week"], input[type="email"], input[type="number"], input[type="search"], input[type="tel"], input[type="time"], input[type="url"], input[type="color"], textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  border-radius: 0;
  background-color: #FFFFFF;
  border-style: solid;
  border-width: 1px;
  border-color: #cccccc;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  color: rgba(0, 0, 0, 0.75);
  display: block;
  font-family: inherit;
  font-size: 1rem;
  height: 2.625rem;
  margin: 0 0 1.125rem 0;
  padding: 0.5625rem;
  width: 100%;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-transition: border-color 0.15s linear, background 0.15s linear;
  -moz-transition: border-color 0.15s linear, background 0.15s linear;
  -ms-transition: border-color 0.15s linear, background 0.15s linear;
  -o-transition: border-color 0.15s linear, background 0.15s linear;
  transition: border-color 0.15s linear, background 0.15s linear; }
  input[type="text"]:focus, input[type="password"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="month"]:focus, input[type="week"]:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="time"]:focus, input[type="url"]:focus, input[type="color"]:focus, textarea:focus {
    background: #fafafa;
    border-color: #999999;
    outline: none; }
  input[type="text"]:disabled, input[type="password"]:disabled, input[type="date"]:disabled, input[type="datetime"]:disabled, input[type="datetime-local"]:disabled, input[type="month"]:disabled, input[type="week"]:disabled, input[type="email"]:disabled, input[type="number"]:disabled, input[type="search"]:disabled, input[type="tel"]:disabled, input[type="time"]:disabled, input[type="url"]:disabled, input[type="color"]:disabled, textarea:disabled {
    background-color: #DDDDDD;
    cursor: default; }
  input[type="text"][disabled], input[type="text"][readonly],
  fieldset[disabled] input[type="text"], input[type="password"][disabled], input[type="password"][readonly],
  fieldset[disabled] input[type="password"], input[type="date"][disabled], input[type="date"][readonly],
  fieldset[disabled] input[type="date"], input[type="datetime"][disabled], input[type="datetime"][readonly],
  fieldset[disabled] input[type="datetime"], input[type="datetime-local"][disabled], input[type="datetime-local"][readonly],
  fieldset[disabled] input[type="datetime-local"], input[type="month"][disabled], input[type="month"][readonly],
  fieldset[disabled] input[type="month"], input[type="week"][disabled], input[type="week"][readonly],
  fieldset[disabled] input[type="week"], input[type="email"][disabled], input[type="email"][readonly],
  fieldset[disabled] input[type="email"], input[type="number"][disabled], input[type="number"][readonly],
  fieldset[disabled] input[type="number"], input[type="search"][disabled], input[type="search"][readonly],
  fieldset[disabled] input[type="search"], input[type="tel"][disabled], input[type="tel"][readonly],
  fieldset[disabled] input[type="tel"], input[type="time"][disabled], input[type="time"][readonly],
  fieldset[disabled] input[type="time"], input[type="url"][disabled], input[type="url"][readonly],
  fieldset[disabled] input[type="url"], input[type="color"][disabled], input[type="color"][readonly],
  fieldset[disabled] input[type="color"], textarea[disabled], textarea[readonly],
  fieldset[disabled] textarea {
    background-color: #DDDDDD;
    cursor: default; }
  input[type="text"].radius, input[type="password"].radius, input[type="date"].radius, input[type="datetime"].radius, input[type="datetime-local"].radius, input[type="month"].radius, input[type="week"].radius, input[type="email"].radius, input[type="number"].radius, input[type="search"].radius, input[type="tel"].radius, input[type="time"].radius, input[type="url"].radius, input[type="color"].radius, textarea.radius {
    border-radius: 3px; }

form .row .prefix-radius.row.collapse input,
form .row .prefix-radius.row.collapse textarea,
form .row .prefix-radius.row.collapse select,
form .row .prefix-radius.row.collapse button {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 3px;
  -webkit-border-top-right-radius: 3px;
  border-bottom-right-radius: 3px;
  border-top-right-radius: 3px; }

form .row .prefix-radius.row.collapse .prefix {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 3px;
  -webkit-border-top-left-radius: 3px;
  border-bottom-left-radius: 3px;
  border-top-left-radius: 3px; }

form .row .postfix-radius.row.collapse input,
form .row .postfix-radius.row.collapse textarea,
form .row .postfix-radius.row.collapse select,
form .row .postfix-radius.row.collapse button {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 3px;
  -webkit-border-top-left-radius: 3px;
  border-bottom-left-radius: 3px;
  border-top-left-radius: 3px; }

form .row .postfix-radius.row.collapse .postfix {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 3px;
  -webkit-border-top-right-radius: 3px;
  border-bottom-right-radius: 3px;
  border-top-right-radius: 3px; }

form .row .prefix-round.row.collapse input,
form .row .prefix-round.row.collapse textarea,
form .row .prefix-round.row.collapse select,
form .row .prefix-round.row.collapse button {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 1000px;
  -webkit-border-top-right-radius: 1000px;
  border-bottom-right-radius: 1000px;
  border-top-right-radius: 1000px; }

form .row .prefix-round.row.collapse .prefix {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 1000px;
  -webkit-border-top-left-radius: 1000px;
  border-bottom-left-radius: 1000px;
  border-top-left-radius: 1000px; }

form .row .postfix-round.row.collapse input,
form .row .postfix-round.row.collapse textarea,
form .row .postfix-round.row.collapse select,
form .row .postfix-round.row.collapse button {
  border-radius: 0;
  -webkit-border-bottom-left-radius: 1000px;
  -webkit-border-top-left-radius: 1000px;
  border-bottom-left-radius: 1000px;
  border-top-left-radius: 1000px; }

form .row .postfix-round.row.collapse .postfix {
  border-radius: 0;
  -webkit-border-bottom-right-radius: 1000px;
  -webkit-border-top-right-radius: 1000px;
  border-bottom-right-radius: 1000px;
  border-top-right-radius: 1000px; }

input[type="submit"] {
  -webkit-appearance: none;
  -moz-appearance: none;
  border-radius: 0; }

/* Respect enforced amount of rows for textarea */
textarea[rows] {
  height: auto; }

/* Not allow resize out of parent */
textarea {
  max-width: 100%; }

::-webkit-input-placeholder {
  color: #cccccc; }

:-moz-placeholder {
  /* Firefox 18- */
  color: #cccccc; }

::-moz-placeholder {
  /* Firefox 19+ */
  color: #cccccc; }

:-ms-input-placeholder {
  color: #cccccc; }

/* Add height value for select elements to match text input height */
select {
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  background-color: #FAFAFA;
  border-radius: 0;
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMTJweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzcHgiIHZpZXdCb3g9IjAgMCA2IDMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYgMyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBvbHlnb24gcG9pbnRzPSI1Ljk5MiwwIDIuOTkyLDMgLTAuMDA4LDAgIi8+PC9zdmc+);
  background-position: 100% center;
  background-repeat: no-repeat;
  border-style: solid;
  border-width: 1px;
  border-color: #cccccc;
  color: rgba(0, 0, 0, 0.75);
  font-family: inherit;
  font-size: 1rem;
  line-height: normal;
  padding: 0.5625rem;
  border-radius: 0;
  height: 2.625rem; }
  select::-ms-expand {
    display: none; }
  select.radius {
    border-radius: 3px; }
  select:hover {
    background-color: #f3f3f3;
    border-color: #999999; }
  select:disabled {
    background-color: #DDDDDD;
    cursor: default; }
  select[multiple] {
    height: auto; }

/* Adjust margin for form elements below */
input[type="file"],
input[type="checkbox"],
input[type="radio"],
select {
  margin: 0 0 1.125rem 0; }

input[type="checkbox"] + label,
input[type="radio"] + label {
  display: inline-block;
  margin-left: 0.5625rem;
  margin-right: 1.125rem;
  margin-bottom: 0;
  vertical-align: baseline; }

/* Normalize file input width */
input[type="file"] {
  width: 100%; }

/* HTML5 Number spinners settings */
/* We add basic fieldset styling */
fieldset {
  border: 1px solid #DDDDDD;
  margin: 1.125rem 0;
  padding: 1.25rem; }
  fieldset legend {
    background: #FFFFFF;
    font-weight: 700;
    margin-left: -0.1875rem;
    margin: 0;
    padding: 0 0.1875rem; }

/* Error Handling */
[data-abide] .error small.error, [data-abide] .error span.error, [data-abide] span.error, [data-abide] small.error {
  display: block;
  font-size: 0.75rem;
  font-style: normal;
  font-weight: 400;
  margin-bottom: 1.125rem;
  margin-top: 0;
  padding: 0.375rem 0.5625rem 0.5625rem 0;
  background: #FFFFFF;
  color: #333333; }

[data-abide] span.error, [data-abide] small.error {
  display: none; }

span.error, small.error {
  display: block;
  font-size: 0.75rem;
  font-style: normal;
  font-weight: 400;
  margin-bottom: 1.125rem;
  margin-top: 0;
  padding: 0.375rem 0.5625rem 0.5625rem 0;
  background: #FFFFFF;
  color: #333333; }

.error input,
.error textarea,
.error select {
  margin-bottom: 0; }

.error input[type="checkbox"],
.error input[type="radio"] {
  margin-bottom: 1.125rem; }

.error label,
.error label.error {
  color: #f04124; }

.error small.error {
  display: block;
  font-size: 0.75rem;
  font-style: normal;
  font-weight: 400;
  margin-bottom: 1.125rem;
  margin-top: 0;
  padding: 0.375rem 0.5625rem 0.5625rem 0;
  background: #FFFFFF;
  color: #333333; }

.error > label > small {
  background: transparent;
  color: #676767;
  display: inline;
  font-size: 60%;
  font-style: normal;
  margin: 0;
  padding: 0;
  text-transform: capitalize; }

.error span.error-message {
  display: block; }

input.error,
textarea.error,
select.error {
  margin-bottom: 0; }

label.error {
  color: #f04124; }

.inline-list {
  list-style: none;
  margin-left: -1.375rem;
  margin-right: 0;
  margin: 0 auto 1rem auto;
  overflow: hidden;
  padding: 0; }
  .inline-list > li {
    display: block;
    float: left;
    list-style: none;
    margin-left: 1.375rem; }
    .inline-list > li > * {
      display: block; }

/* Foundation Joyride */
.joyride-list {
  display: none; }

/* Default styles for the container */
.joyride-tip-guide {
  background: #333333;
  color: #FFFFFF;
  display: none;
  font-family: inherit;
  font-weight: 400;
  position: absolute;
  top: 0;
  width: 95%;
  z-index: 101;
  left: 2.5%; }

.lt-ie9 .joyride-tip-guide {
  margin-left: -400px;
  max-width: 800px;
  left: 50%; }

.joyride-content-wrapper {
  padding: 1.125rem 1.25rem 1.5rem;
  width: 100%; }
  .joyride-content-wrapper .button {
    margin-bottom: 0 !important; }
  .joyride-content-wrapper .joyride-prev-tip {
    margin-right: 10px; }

/* Add a little css triangle pip, older browser just miss out on the fanciness of it */
.joyride-tip-guide .joyride-nub {
  border: 10px solid #333333;
  display: block;
  height: 0;
  position: absolute;
  width: 0;
  left: 22px; }
  .joyride-tip-guide .joyride-nub.top {
    border-color: #333333;
    border-top-color: transparent !important;
    border-top-style: solid;
    border-left-color: transparent !important;
    border-right-color: transparent !important;
    top: -20px; }
  .joyride-tip-guide .joyride-nub.bottom {
    border-color: #333333 !important;
    border-bottom-color: transparent !important;
    border-bottom-style: solid;
    border-left-color: transparent !important;
    border-right-color: transparent !important;
    bottom: -20px; }
  .joyride-tip-guide .joyride-nub.right {
    right: -20px; }
  .joyride-tip-guide .joyride-nub.left {
    left: -20px; }

/* Typography */
.joyride-tip-guide h1,
.joyride-tip-guide h2,
.joyride-tip-guide h3,
.joyride-tip-guide h4,
.joyride-tip-guide h5,
.joyride-tip-guide h6 {
  color: #FFFFFF;
  font-weight: 700;
  line-height: 1.25;
  margin: 0; }

.joyride-tip-guide p {
  font-size: 0.875rem;
  line-height: 1.3;
  margin: 0 0 1.125rem 0; }

.joyride-timer-indicator-wrap {
  border: solid 1px #555555;
  bottom: 1rem;
  height: 3px;
  position: absolute;
  width: 50px;
  right: 1.0625rem; }

.joyride-timer-indicator {
  background: #666666;
  display: block;
  height: inherit;
  width: 0; }

.joyride-close-tip {
  color: #777777 !important;
  font-size: 24px;
  font-weight: 400;
  line-height: .5 !important;
  position: absolute;
  text-decoration: none;
  top: 10px;
  right: 12px; }
  .joyride-close-tip:hover, .joyride-close-tip:focus {
    color: #eeeeee !important; }

.joyride-modal-bg {
  background: rgba(0, 0, 0, 0.5);
  cursor: pointer;
  display: none;
  height: 100%;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 100;
  left: 0; }

.joyride-expose-wrapper {
  background-color: #FFFFFF;
  border-radius: 3px;
  box-shadow: 0 0 15px #FFFFFF;
  position: absolute;
  z-index: 102; }

.joyride-expose-cover {
  background: transparent;
  border-radius: 3px;
  left: 0;
  position: absolute;
  top: 0;
  z-index: 9999; }

/* Styles for screens that are at least 768px; */
@media only screen and (min-width: 40.0625em) {
  .joyride-tip-guide {
    width: 300px;
    left: inherit; }
    .joyride-tip-guide .joyride-nub.bottom {
      border-color: #333333 !important;
      border-bottom-color: transparent !important;
      border-left-color: transparent !important;
      border-right-color: transparent !important;
      bottom: -20px; }
    .joyride-tip-guide .joyride-nub.right {
      border-color: #333333 !important;
      border-right-color: transparent !important;
      border-bottom-color: transparent !important;
      border-top-color: transparent !important;
      left: auto;
      right: -20px;
      top: 22px; }
    .joyride-tip-guide .joyride-nub.left {
      border-color: #333333 !important;
      border-bottom-color: transparent !important;
      border-left-color: transparent !important;
      border-top-color: transparent !important;
      left: -20px;
      right: auto;
      top: 22px; } }

.label {
  display: inline-block;
  font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 400;
  line-height: 1;
  margin-bottom: auto;
  position: relative;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  padding: 0.25rem 0.5rem 0.25rem;
  font-size: 0.6875rem;
  background-color: #2262bb;
  color: #FFFFFF; }
  .label.radius {
    border-radius: 3px; }
  .label.round, .label.icon-maps-markerMap.blue, .label.icon-maps-markerMap.orange {
    border-radius: 1000px; }
  .label.alert {
    background-color: #f04124;
    color: #FFFFFF; }
  .label.warning {
    background-color: #f08a24;
    color: #FFFFFF; }
  .label.success {
    background-color: #43AC6A;
    color: #FFFFFF; }
  .label.secondary {
    background-color: #EBEBEB;
    color: #333333; }
  .label.info {
    background-color: #a0d3e8;
    color: #333333; }

[data-magellan-expedition], [data-magellan-expedition-clone] {
  background: #FFFFFF;
  min-width: 100%;
  padding: 10px;
  z-index: 50; }
  [data-magellan-expedition] .sub-nav, [data-magellan-expedition-clone] .sub-nav {
    margin-bottom: 0; }
    [data-magellan-expedition] .sub-nav dd, [data-magellan-expedition-clone] .sub-nav dd {
      margin-bottom: 0; }
    [data-magellan-expedition] .sub-nav a, [data-magellan-expedition-clone] .sub-nav a {
      line-height: 1.8em; }

ul.pagination {
  display: block;
  margin-left: -0.3125rem;
  min-height: 1.5rem; }
  ul.pagination li {
    color: #222222;
    font-size: 0.875rem;
    height: 1.5rem;
    margin-left: 0.3125rem; }
    ul.pagination li a, ul.pagination li button {
      border-radius: 3px;
      transition: background-color 300ms ease-out;
      background: none;
      color: #999999;
      display: block;
      font-size: 1em;
      font-weight: normal;
      line-height: inherit;
      padding: 0.0625rem 0.625rem 0.0625rem; }
    ul.pagination li:hover a,
    ul.pagination li a:focus,
    ul.pagination li:hover button,
    ul.pagination li button:focus {
      background: #e6e6e6; }
    ul.pagination li.unavailable a, ul.pagination li.unavailable button {
      cursor: default;
      color: #999999; }
    ul.pagination li.unavailable:hover a,
    ul.pagination li.unavailable a:focus,
    ul.pagination li.unavailable:hover button,
    ul.pagination li.unavailable button:focus {
      background: transparent; }
    ul.pagination li.current a, ul.pagination li.current button {
      background: #2262bb;
      color: #FFFFFF;
      cursor: default;
      font-weight: 700; }
      ul.pagination li.current a:hover, ul.pagination li.current a:focus, ul.pagination li.current button:hover, ul.pagination li.current button:focus {
        background: #2262bb; }
  ul.pagination li {
    display: block;
    float: left; }

/* Pagination centred wrapper */
.pagination-centered {
  text-align: center; }
  .pagination-centered ul.pagination li {
    display: inline-block;
    float: none; }

/* Panels */
.panel, .panel-borderless, .panel.borderless, .panel-tight, .error-panel {
  border-style: solid;
  border-width: 1px;
  border-color: #b6b6b6;
  margin-bottom: 1.25rem;
  padding: 1.25rem;
  background: #cccccc;
  color: #333333; }
  .panel > :first-child, .panel-borderless > :first-child, .panel-tight > :first-child, .error-panel > :first-child {
    margin-top: 0; }
  .panel > :last-child, .panel-borderless > :last-child, .panel-tight > :last-child, .error-panel > :last-child {
    margin-bottom: 0; }
  .panel h1, .panel-borderless h1, .panel.borderless h1, .panel-tight h1, .error-panel h1, .panel h2, .panel-borderless h2, .panel.borderless h2, .panel-tight h2, .error-panel h2, .panel h3, .panel-borderless h3, .panel.borderless h3, .panel-tight h3, .error-panel h3, .panel h4, .panel-borderless h4, .panel.borderless h4, .panel-tight h4, .error-panel h4, .panel h5, .panel-borderless h5, .panel.borderless h5, .panel-tight h5, .error-panel h5, .panel h6, .panel-borderless h6, .panel.borderless h6, .panel-tight h6, .error-panel h6, .panel p, .panel-borderless p, .panel.borderless p, .panel-tight p, .error-panel p, .panel li, .panel-borderless li, .panel.borderless li, .panel-tight li, .error-panel li, .panel dl, .panel-borderless dl, .panel.borderless dl, .panel-tight dl, .error-panel dl {
    color: #333333; }
  .panel h1, .panel-borderless h1, .panel.borderless h1, .panel-tight h1, .error-panel h1, .panel h2, .panel-borderless h2, .panel.borderless h2, .panel-tight h2, .error-panel h2, .panel h3, .panel-borderless h3, .panel.borderless h3, .panel-tight h3, .error-panel h3, .panel h4, .panel-borderless h4, .panel.borderless h4, .panel-tight h4, .error-panel h4, .panel h5, .panel-borderless h5, .panel.borderless h5, .panel-tight h5, .error-panel h5, .panel h6, .panel-borderless h6, .panel.borderless h6, .panel-tight h6, .error-panel h6 {
    line-height: 1;
    margin-bottom: 0.625rem; }
    .panel h1.subheader, .panel-borderless h1.subheader, .panel-tight h1.subheader, .error-panel h1.subheader, .panel h2.subheader, .panel-borderless h2.subheader, .panel-tight h2.subheader, .error-panel h2.subheader, .panel h3.subheader, .panel-borderless h3.subheader, .panel-tight h3.subheader, .error-panel h3.subheader, .panel h4.subheader, .panel-borderless h4.subheader, .panel-tight h4.subheader, .error-panel h4.subheader, .panel h5.subheader, .panel-borderless h5.subheader, .panel-tight h5.subheader, .error-panel h5.subheader, .panel h6.subheader, .panel-borderless h6.subheader, .panel-tight h6.subheader, .error-panel h6.subheader {
      line-height: 1.4; }
  .panel.callout, .callout.panel-borderless, .callout.panel-tight, .callout.error-panel {
    border-style: solid;
    border-width: 1px;
    border-color: #b6b6b6;
    margin-bottom: 1.25rem;
    padding: 1.25rem;
    background: #f0f5fc;
    color: #333333; }
    .panel.callout > :first-child, .callout.panel-borderless > :first-child, .callout.panel-tight > :first-child, .callout.error-panel > :first-child {
      margin-top: 0; }
    .panel.callout > :last-child, .callout.panel-borderless > :last-child, .callout.panel-tight > :last-child, .callout.error-panel > :last-child {
      margin-bottom: 0; }
    .panel.callout h1, .callout.panel-borderless h1, .callout.panel-tight h1, .callout.error-panel h1, .panel.callout h2, .callout.panel-borderless h2, .callout.panel-tight h2, .callout.error-panel h2, .panel.callout h3, .callout.panel-borderless h3, .callout.panel-tight h3, .callout.error-panel h3, .panel.callout h4, .callout.panel-borderless h4, .callout.panel-tight h4, .callout.error-panel h4, .panel.callout h5, .callout.panel-borderless h5, .callout.panel-tight h5, .callout.error-panel h5, .panel.callout h6, .callout.panel-borderless h6, .callout.panel-tight h6, .callout.error-panel h6, .panel.callout p, .callout.panel-borderless p, .callout.panel-tight p, .callout.error-panel p, .panel.callout li, .callout.panel-borderless li, .callout.panel-tight li, .callout.error-panel li, .panel.callout dl, .callout.panel-borderless dl, .callout.panel-tight dl, .callout.error-panel dl {
      color: #333333; }
    .panel.callout h1, .callout.panel-borderless h1, .callout.panel-tight h1, .callout.error-panel h1, .panel.callout h2, .callout.panel-borderless h2, .callout.panel-tight h2, .callout.error-panel h2, .panel.callout h3, .callout.panel-borderless h3, .callout.panel-tight h3, .callout.error-panel h3, .panel.callout h4, .callout.panel-borderless h4, .callout.panel-tight h4, .callout.error-panel h4, .panel.callout h5, .callout.panel-borderless h5, .callout.panel-tight h5, .callout.error-panel h5, .panel.callout h6, .callout.panel-borderless h6, .callout.panel-tight h6, .callout.error-panel h6 {
      line-height: 1;
      margin-bottom: 0.625rem; }
      .panel.callout h1.subheader, .callout.panel-borderless h1.subheader, .callout.panel-tight h1.subheader, .callout.error-panel h1.subheader, .panel.callout h2.subheader, .callout.panel-borderless h2.subheader, .callout.panel-tight h2.subheader, .callout.error-panel h2.subheader, .panel.callout h3.subheader, .callout.panel-borderless h3.subheader, .callout.panel-tight h3.subheader, .callout.error-panel h3.subheader, .panel.callout h4.subheader, .callout.panel-borderless h4.subheader, .callout.panel-tight h4.subheader, .callout.error-panel h4.subheader, .panel.callout h5.subheader, .callout.panel-borderless h5.subheader, .callout.panel-tight h5.subheader, .callout.error-panel h5.subheader, .panel.callout h6.subheader, .callout.panel-borderless h6.subheader, .callout.panel-tight h6.subheader, .callout.error-panel h6.subheader {
        line-height: 1.4; }
    .panel.callout a:not(.button), .callout.panel-borderless a:not(.button), .callout.panel-tight a:not(.button), .callout.error-panel a:not(.button) {
      color: #2262bb; }
      .panel.callout a:not(.button):hover, .callout.panel-borderless a:not(.button):hover, .callout.panel-tight a:not(.button):hover, .callout.error-panel a:not(.button):hover, .panel.callout a:not(.button):focus, .callout.panel-borderless a:not(.button):focus, .callout.panel-tight a:not(.button):focus, .callout.error-panel a:not(.button):focus {
        color: #1d54a1; }
  .panel.radius, .radius.panel-borderless, .radius.panel-tight, .radius.error-panel {
    border-radius: 3px; }

/* Progress Bar */
.progress {
  background-color: #F6F6F6;
  border: 0px solid white;
  height: 0.625rem;
  margin-bottom: 0;
  padding: 0; }
  .progress .meter {
    background: #2262bb;
    display: block;
    height: 100%; }
  .progress.secondary .meter {
    background: #EBEBEB;
    display: block;
    height: 100%; }
  .progress.success .meter {
    background: #43AC6A;
    display: block;
    height: 100%; }
  .progress.alert .meter {
    background: #f04124;
    display: block;
    height: 100%; }
  .progress.radius {
    border-radius: 3px; }
    .progress.radius .meter {
      border-radius: 2px; }
  .progress.round, .progress.icon-maps-markerMap.blue, .progress.icon-maps-markerMap.orange {
    border-radius: 1000px; }
    .progress.round .meter, .progress.icon-maps-markerMap.blue .meter, .progress.icon-maps-markerMap.orange .meter {
      border-radius: 999px; }

.reveal-modal-bg {
  background: #000000;
  background: rgba(0, 0, 0, 0.45);
  bottom: 0;
  display: none;
  left: 0;
  position: fixed;
  right: 0;
  top: 0;
  z-index: 1004;
  left: 0; }

.reveal-modal {
  border-radius: 3px;
  display: none;
  position: absolute;
  top: 0;
  visibility: hidden;
  width: 100%;
  z-index: 1005;
  left: 0;
  background-color: #FFFFFF;
  padding: 1.875rem;
  border: solid 1px #666666;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.4); }
  @media only screen and (max-width: 40em) {
    .reveal-modal {
      min-height: 100vh; } }
  .reveal-modal .column, .reveal-modal .columns {
    min-width: 0; }
  .reveal-modal > :first-child {
    margin-top: 0; }
  .reveal-modal > :last-child {
    margin-bottom: 0; }
  @media only screen and (min-width: 40.0625em) {
    .reveal-modal {
      left: 0;
      margin: 0 auto;
      max-width: 62.5rem;
      right: 0;
      width: 80%; } }
  @media only screen and (min-width: 40.0625em) {
    .reveal-modal {
      top: 6.25rem; } }
  .reveal-modal.radius {
    border-radius: 3px; }
  .reveal-modal.round, .reveal-modal.icon-maps-markerMap.blue, .reveal-modal.icon-maps-markerMap.orange {
    border-radius: 1000px; }
  .reveal-modal.collapse {
    padding: 0; }
  @media only screen and (min-width: 40.0625em) {
    .reveal-modal.tiny {
      left: 0;
      margin: 0 auto;
      max-width: 62.5rem;
      right: 0;
      width: 30%; } }
  @media only screen and (min-width: 40.0625em) {
    .reveal-modal.small {
      left: 0;
      margin: 0 auto;
      max-width: 62.5rem;
      right: 0;
      width: 40%; } }
  @media only screen and (min-width: 40.0625em) {
    .reveal-modal.medium {
      left: 0;
      margin: 0 auto;
      max-width: 62.5rem;
      right: 0;
      width: 60%; } }
  @media only screen and (min-width: 40.0625em) {
    .reveal-modal.large {
      left: 0;
      margin: 0 auto;
      max-width: 62.5rem;
      right: 0;
      width: 70%; } }
  @media only screen and (min-width: 40.0625em) {
    .reveal-modal.xlarge {
      left: 0;
      margin: 0 auto;
      max-width: 62.5rem;
      right: 0;
      width: 95%; } }
  .reveal-modal.full {
    height: 100vh;
    height: 100%;
    left: 0;
    margin-left: 0 !important;
    max-width: none !important;
    min-height: 100vh;
    top: 0; }
    @media only screen and (min-width: 40.0625em) {
      .reveal-modal.full {
        left: 0;
        margin: 0 auto;
        max-width: 62.5rem;
        right: 0;
        width: 100%; } }
  .reveal-modal.toback {
    z-index: 1003; }
  .reveal-modal .close-reveal-modal {
    color: #AAAAAA;
    cursor: pointer;
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 1;
    position: absolute;
    top: 0.625rem;
    right: 1.375rem; }

.side-nav {
  display: block;
  font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
  list-style-position: outside;
  list-style-type: none;
  margin: 0;
  padding: 0.875rem 0; }
  .side-nav li {
    font-size: 0.875rem;
    font-weight: 400;
    margin: 0 0 0.4375rem 0; }
    .side-nav li a:not(.button) {
      color: #2262bb;
      display: block;
      margin: 0;
      padding: 0.4375rem 0.875rem; }
      .side-nav li a:not(.button):hover, .side-nav li a:not(.button):focus {
        background: rgba(0, 0, 0, 0.025);
        color: #548ee0; }
      .side-nav li a:not(.button):active {
        color: #548ee0; }
    .side-nav li.active > a:first-child:not(.button) {
      color: #548ee0;
      font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
      font-weight: 400; }
    .side-nav li.divider {
      border-top: 1px solid;
      height: 0;
      list-style: none;
      padding: 0;
      border-top-color: #e6e6e6; }
    .side-nav li.heading {
      color: #2262bb;
      font-size: 0.875rem;
      font-weight: bold;
      text-transform: uppercase; }

.split.button {
  position: relative;
  padding-right: 5.0625rem; }
  .split.button span {
    display: block;
    height: 100%;
    position: absolute;
    right: 0;
    top: 0;
    border-left: solid 1px; }
    .split.button span:after {
      position: absolute;
      content: "";
      width: 0;
      height: 0;
      display: block;
      border-style: inset;
      top: 50%;
      left: 50%; }
    .split.button span:active {
      background-color: rgba(0, 0, 0, 0.1); }
  .split.button span {
    border-left-color: rgba(255, 255, 255, 0.5); }
  .split.button span {
    width: 3.09375rem; }
    .split.button span:after {
      border-top-style: solid;
      border-width: 0.375rem;
      margin-left: -0.375rem;
      top: 48%; }
  .split.button span:after {
    border-color: #FFFFFF transparent transparent transparent; }
  .split.button.secondary span {
    border-left-color: rgba(255, 255, 255, 0.5); }
  .split.button.secondary span:after {
    border-color: #FFFFFF transparent transparent transparent; }
  .split.button.alert span {
    border-left-color: rgba(255, 255, 255, 0.5); }
  .split.button.success span {
    border-left-color: rgba(255, 255, 255, 0.5); }
  .split.button.tiny {
    padding-right: 3.75rem; }
    .split.button.tiny span {
      width: 2.25rem; }
      .split.button.tiny span:after {
        border-top-style: solid;
        border-width: 0.375rem;
        margin-left: -0.375rem;
        top: 48%; }
  .split.button.small {
    padding-right: 4.375rem; }
    .split.button.small span {
      width: 2.625rem; }
      .split.button.small span:after {
        border-top-style: solid;
        border-width: 0.4375rem;
        margin-left: -0.375rem;
        top: 48%; }
  .split.button.large {
    padding-right: 5.5rem; }
    .split.button.large span {
      width: 3.4375rem; }
      .split.button.large span:after {
        border-top-style: solid;
        border-width: 0.3125rem;
        margin-left: -0.375rem;
        top: 48%; }
  .split.button.expand {
    padding-left: 2rem; }
  .split.button.secondary span:after {
    border-color: #333333 transparent transparent transparent; }
  .split.button.radius span {
    -webkit-border-bottom-right-radius: 3px;
    -webkit-border-top-right-radius: 3px;
    border-bottom-right-radius: 3px;
    border-top-right-radius: 3px; }
  .split.button.round span, .split.button.icon-maps-markerMap.blue span, .split.button.icon-maps-markerMap.orange span {
    -webkit-border-bottom-right-radius: 1000px;
    -webkit-border-top-right-radius: 1000px;
    border-bottom-right-radius: 1000px;
    border-top-right-radius: 1000px; }
  .split.button.no-pip span:before {
    border-style: none; }
  .split.button.no-pip span:after {
    border-style: none; }
  .split.button.no-pip span > i {
    display: block;
    left: 50%;
    margin-left: -0.28889em;
    margin-top: -0.48889em;
    position: absolute;
    top: 50%; }

table {
  background: #FFFFFF;
  border: solid 1px #DDDDDD;
  margin-bottom: 1.25rem;
  table-layout: auto; }
  table caption {
    background: transparent;
    color: #222222;
    font-size: 1rem;
    font-weight: bold; }
  table thead {
    background: #F5F5F5; }
    table thead tr th,
    table thead tr td {
      color: #222222;
      font-size: 0.9375rem;
      font-weight: 500;
      padding: 1rem 0.875rem 1rem; }
  table tfoot {
    background: #F5F5F5; }
    table tfoot tr th,
    table tfoot tr td {
      color: #222222;
      font-size: 0.9375rem;
      font-weight: 500;
      padding: 1rem 0.875rem 1rem; }
  table tr th,
  table tr td {
    color: #222222;
    font-size: 0.9375rem;
    padding: 0.5625rem 0.625rem;
    text-align: left; }
  table tr.even, table tr.alt, table tr:nth-of-type(even) {
    background: #F9F9F9; }
  table thead tr th,
  table tfoot tr th,
  table tfoot tr td,
  table tbody tr th,
  table tbody tr td,
  table tr td {
    display: table-cell;
    line-height: 1.125rem; }

.tabs {
  margin-bottom: 0 !important;
  margin-left: 0; }
  .tabs:before, .tabs:after {
    content: " ";
    display: table; }
  .tabs:after {
    clear: both; }
  .tabs dd,
  .tabs .tab-title {
    float: left;
    list-style: none;
    margin-bottom: 0 !important;
    position: relative; }
    .tabs dd > a,
    .tabs .tab-title > a {
      display: block;
      background-color: #EFEFEF;
      color: #222222;
      font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
      font-size: 1rem;
      padding: 1rem 2rem; }
      .tabs dd > a:hover,
      .tabs .tab-title > a:hover {
        background-color: #e1e1e1; }
    .tabs dd.active a,
    .tabs .tab-title.active a {
      background-color: #FFFFFF;
      color: #222222; }
  .tabs.radius dd:first-child a,
  .tabs.radius .tab:first-child a {
    -webkit-border-bottom-left-radius: 3px;
    -webkit-border-top-left-radius: 3px;
    border-bottom-left-radius: 3px;
    border-top-left-radius: 3px; }
  .tabs.radius dd:last-child a,
  .tabs.radius .tab:last-child a {
    -webkit-border-bottom-right-radius: 3px;
    -webkit-border-top-right-radius: 3px;
    border-bottom-right-radius: 3px;
    border-top-right-radius: 3px; }
  .tabs.vertical dd,
  .tabs.vertical .tab-title {
    position: inherit;
    float: none;
    display: block;
    top: auto; }

.tabs-content {
  margin-bottom: 1.5rem;
  width: 100%; }
  .tabs-content:before, .tabs-content:after {
    content: " ";
    display: table; }
  .tabs-content:after {
    clear: both; }
  .tabs-content > .content {
    display: none;
    float: left;
    padding: 0.9375rem 0;
    width: 100%; }
    .tabs-content > .content.active {
      display: block;
      float: none; }
    .tabs-content > .content.contained {
      padding: 0.9375rem; }
  .tabs-content.vertical {
    display: block; }
    .tabs-content.vertical > .content {
      padding: 0 0.9375rem; }

@media only screen and (min-width: 40.0625em) {
  .tabs.vertical {
    float: left;
    margin: 0;
    margin-bottom: 1.25rem !important;
    max-width: 20%;
    width: 20%; }
  .tabs-content.vertical {
    float: left;
    margin-left: -1px;
    max-width: 80%;
    padding-left: 1rem;
    width: 80%; } }

.no-js .tabs-content > .content {
  display: block;
  float: none; }

/* Image Thumbnails */
.th {
  border: solid 4px #FFFFFF;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);
  display: inline-block;
  line-height: 0;
  max-width: 100%;
  transition: all 200ms ease-out; }
  .th:hover, .th:focus {
    box-shadow: 0 0 6px 1px rgba(34, 98, 187, 0.5); }
  .th.radius {
    border-radius: 3px; }

meta.foundation-mq-topbar {
  font-family: "/only screen and (min-width:880px)/";
  width: 880px; }

/* Wrapped around .top-bar to contain to grid width */
.contain-to-grid {
  width: 100%;
  background: #333333; }
  .contain-to-grid .top-bar {
    margin-bottom: 0; }

.fixed {
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 99;
  left: 0; }
  .fixed.expanded:not(.top-bar) {
    height: auto;
    max-height: 100%;
    overflow-y: auto;
    width: 100%; }
    .fixed.expanded:not(.top-bar) .title-area {
      position: fixed;
      width: 100%;
      z-index: 99; }
    .fixed.expanded:not(.top-bar) .top-bar-section {
      margin-top: 2.8125rem;
      z-index: 98; }

.top-bar {
  background: #333333;
  height: 2.8125rem;
  line-height: 2.8125rem;
  margin-bottom: 0;
  overflow: hidden;
  position: relative; }
  .top-bar ul {
    list-style: none;
    margin-bottom: 0; }
  .top-bar .row {
    max-width: none; }
  .top-bar form,
  .top-bar input,
  .top-bar select {
    margin-bottom: 0; }
  .top-bar input,
  .top-bar select {
    font-size: 0.75rem;
    height: 1.75rem;
    padding-bottom: .35rem;
    padding-top: .35rem; }
  .top-bar .button, .top-bar button {
    font-size: 0.75rem;
    margin-bottom: 0;
    padding-bottom: 0.4125rem;
    padding-top: 0.4125rem; }
    @media only screen and (max-width: 40em) {
      .top-bar .button, .top-bar button {
        position: relative;
        top: -1px; } }
  .top-bar .title-area {
    margin: 0;
    position: relative; }
  .top-bar .name {
    font-size: 16px;
    height: 2.8125rem;
    margin: 0; }
    .top-bar .name h1, .top-bar .name h2, .top-bar .name h3, .top-bar .name h4, .top-bar .name p, .top-bar .name span {
      font-size: 1.0625rem;
      line-height: 2.8125rem;
      margin: 0; }
      .top-bar .name h1 a, .top-bar .name h2 a, .top-bar .name h3 a, .top-bar .name h4 a, .top-bar .name p a, .top-bar .name span a {
        color: #FFFFFF;
        display: block;
        font-weight: 400;
        padding: 0 0.9375rem;
        width: 75%; }
  .top-bar .toggle-topbar {
    position: absolute;
    right: 0;
    top: 0; }
    .top-bar .toggle-topbar a {
      color: #FFFFFF;
      display: block;
      font-size: 0.8125rem;
      font-weight: 700;
      height: 2.8125rem;
      line-height: 2.8125rem;
      padding: 0 0.9375rem;
      position: relative;
      text-transform: uppercase; }
    .top-bar .toggle-topbar.menu-icon {
      margin-top: -16px;
      top: 50%; }
      .top-bar .toggle-topbar.menu-icon a {
        color: #FFFFFF;
        height: 34px;
        line-height: 33px;
        padding: 0 2.5rem 0 0.9375rem;
        position: relative; }
        .top-bar .toggle-topbar.menu-icon a span::after {
          content: "";
          display: block;
          height: 0;
          position: absolute;
          margin-top: -8px;
          top: 50%;
          right: 0.9375rem;
          box-shadow: 0 0 0 1px #FFFFFF, 0 7px 0 1px #FFFFFF, 0 14px 0 1px #FFFFFF;
          width: 16px; }
        .top-bar .toggle-topbar.menu-icon a span:hover:after {
          box-shadow: 0 0 0 1px "", 0 7px 0 1px "", 0 14px 0 1px ""; }
  .top-bar.expanded {
    background: transparent;
    height: auto; }
    .top-bar.expanded .title-area {
      background: #333333; }
    .top-bar.expanded .toggle-topbar a {
      color: #888888; }
      .top-bar.expanded .toggle-topbar a span::after {
        box-shadow: 0 0 0 1px #888888, 0 7px 0 1px #888888, 0 14px 0 1px #888888; }
    @media screen and (-webkit-min-device-pixel-ratio: 0) {
      .top-bar.expanded .top-bar-section .has-dropdown.moved > .dropdown,
      .top-bar.expanded .top-bar-section .dropdown {
        clip: initial; }
      .top-bar.expanded .top-bar-section .has-dropdown:not(.moved) > ul {
        padding: 0; } }

.top-bar-section {
  left: 0;
  position: relative;
  width: auto;
  transition: left 300ms ease-out; }
  .top-bar-section ul {
    display: block;
    font-size: 16px;
    height: auto;
    margin: 0;
    padding: 0;
    width: 100%; }
  .top-bar-section .divider,
  .top-bar-section [role="separator"] {
    border-top: solid 1px #1a1a1a;
    clear: both;
    height: 1px;
    width: 100%; }
  .top-bar-section ul li {
    background: #333333; }
    .top-bar-section ul li > a {
      color: #FFFFFF;
      display: block;
      font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
      font-size: 0.8125rem;
      font-weight: 400;
      padding-left: 0.9375rem;
      padding: 12px 0 12px 0.9375rem;
      text-transform: none;
      width: 100%; }
      .top-bar-section ul li > a.button {
        font-size: 0.8125rem;
        padding-left: 0.9375rem;
        padding-right: 0.9375rem;
        background-color: #2262bb;
        border-color: #1552a8;
        color: #FFFFFF; }
        .top-bar-section ul li > a.button:hover, .top-bar-section ul li > a.button:focus {
          background-color: #1552a8; }
        .top-bar-section ul li > a.button:hover, .top-bar-section ul li > a.button:focus {
          color: #FFFFFF; }
      .top-bar-section ul li > a.button.secondary {
        background-color: #EBEBEB;
        border-color: #bcbcbc;
        color: #333333; }
        .top-bar-section ul li > a.button.secondary:hover, .top-bar-section ul li > a.button.secondary:focus {
          background-color: #bcbcbc; }
        .top-bar-section ul li > a.button.secondary:hover, .top-bar-section ul li > a.button.secondary:focus {
          color: #333333; }
      .top-bar-section ul li > a.button.success {
        background-color: #43AC6A;
        border-color: #368a55;
        color: #FFFFFF; }
        .top-bar-section ul li > a.button.success:hover, .top-bar-section ul li > a.button.success:focus {
          background-color: #368a55; }
        .top-bar-section ul li > a.button.success:hover, .top-bar-section ul li > a.button.success:focus {
          color: #FFFFFF; }
      .top-bar-section ul li > a.button.alert {
        background-color: #f04124;
        border-color: #cf2a0e;
        color: #FFFFFF; }
        .top-bar-section ul li > a.button.alert:hover, .top-bar-section ul li > a.button.alert:focus {
          background-color: #cf2a0e; }
        .top-bar-section ul li > a.button.alert:hover, .top-bar-section ul li > a.button.alert:focus {
          color: #FFFFFF; }
      .top-bar-section ul li > a.button.warning {
        background-color: #f08a24;
        border-color: #cf6e0e;
        color: #FFFFFF; }
        .top-bar-section ul li > a.button.warning:hover, .top-bar-section ul li > a.button.warning:focus {
          background-color: #cf6e0e; }
        .top-bar-section ul li > a.button.warning:hover, .top-bar-section ul li > a.button.warning:focus {
          color: #FFFFFF; }
      .top-bar-section ul li > a.button.info {
        background-color: #a0d3e8;
        border-color: #61b6d9;
        color: #333333; }
        .top-bar-section ul li > a.button.info:hover, .top-bar-section ul li > a.button.info:focus {
          background-color: #61b6d9; }
        .top-bar-section ul li > a.button.info:hover, .top-bar-section ul li > a.button.info:focus {
          color: #FFFFFF; }
    .top-bar-section ul li > button {
      font-size: 0.8125rem;
      padding-left: 0.9375rem;
      padding-right: 0.9375rem;
      background-color: #2262bb;
      border-color: #1552a8;
      color: #FFFFFF; }
      .top-bar-section ul li > button:hover, .top-bar-section ul li > button:focus {
        background-color: #1552a8; }
      .top-bar-section ul li > button:hover, .top-bar-section ul li > button:focus {
        color: #FFFFFF; }
      .top-bar-section ul li > button.secondary {
        background-color: #EBEBEB;
        border-color: #bcbcbc;
        color: #333333; }
        .top-bar-section ul li > button.secondary:hover, .top-bar-section ul li > button.secondary:focus {
          background-color: #bcbcbc; }
        .top-bar-section ul li > button.secondary:hover, .top-bar-section ul li > button.secondary:focus {
          color: #333333; }
      .top-bar-section ul li > button.success {
        background-color: #43AC6A;
        border-color: #368a55;
        color: #FFFFFF; }
        .top-bar-section ul li > button.success:hover, .top-bar-section ul li > button.success:focus {
          background-color: #368a55; }
        .top-bar-section ul li > button.success:hover, .top-bar-section ul li > button.success:focus {
          color: #FFFFFF; }
      .top-bar-section ul li > button.alert {
        background-color: #f04124;
        border-color: #cf2a0e;
        color: #FFFFFF; }
        .top-bar-section ul li > button.alert:hover, .top-bar-section ul li > button.alert:focus {
          background-color: #cf2a0e; }
        .top-bar-section ul li > button.alert:hover, .top-bar-section ul li > button.alert:focus {
          color: #FFFFFF; }
      .top-bar-section ul li > button.warning {
        background-color: #f08a24;
        border-color: #cf6e0e;
        color: #FFFFFF; }
        .top-bar-section ul li > button.warning:hover, .top-bar-section ul li > button.warning:focus {
          background-color: #cf6e0e; }
        .top-bar-section ul li > button.warning:hover, .top-bar-section ul li > button.warning:focus {
          color: #FFFFFF; }
      .top-bar-section ul li > button.info {
        background-color: #a0d3e8;
        border-color: #61b6d9;
        color: #333333; }
        .top-bar-section ul li > button.info:hover, .top-bar-section ul li > button.info:focus {
          background-color: #61b6d9; }
        .top-bar-section ul li > button.info:hover, .top-bar-section ul li > button.info:focus {
          color: #FFFFFF; }
    .top-bar-section ul li:hover:not(.has-form) > a {
      background-color: #555555;
      color: #FFFFFF;
      background: #222222; }
    .top-bar-section ul li.active > a {
      background: #2262bb;
      color: #FFFFFF; }
      .top-bar-section ul li.active > a:hover {
        background: #1d54a1;
        color: #FFFFFF; }
  .top-bar-section .has-form {
    padding: 0.9375rem; }
  .top-bar-section .has-dropdown {
    position: relative; }
    .top-bar-section .has-dropdown > a:after {
      border: inset 5px;
      content: "";
      display: block;
      height: 0;
      width: 0;
      border-color: transparent transparent transparent rgba(255, 255, 255, 0.4);
      border-left-style: solid;
      margin-right: 0.9375rem;
      margin-top: -4.5px;
      position: absolute;
      top: 50%;
      right: 0; }
    .top-bar-section .has-dropdown.moved {
      position: static; }
      .top-bar-section .has-dropdown.moved > .dropdown {
        position: static !important;
        height: auto;
        width: auto;
        overflow: visible;
        clip: auto;
        display: block;
        position: absolute !important;
        width: 100%; }
      .top-bar-section .has-dropdown.moved > a:after {
        display: none; }
  .top-bar-section .dropdown {
    clip: rect(1px, 1px, 1px, 1px);
    height: 1px;
    overflow: hidden;
    position: absolute !important;
    width: 1px;
    display: block;
    padding: 0;
    position: absolute;
    top: 0;
    z-index: 99;
    left: 100%; }
    .top-bar-section .dropdown li {
      height: auto;
      width: 100%; }
      .top-bar-section .dropdown li a {
        font-weight: 400;
        padding: 8px 0.9375rem; }
        .top-bar-section .dropdown li a.parent-link {
          font-weight: 400; }
      .top-bar-section .dropdown li.title h5, .top-bar-section .dropdown li.parent-link {
        margin-bottom: 0;
        margin-top: 0;
        font-size: 1.125rem; }
        .top-bar-section .dropdown li.title h5 a, .top-bar-section .dropdown li.parent-link a {
          color: #FFFFFF;
          display: block; }
          .top-bar-section .dropdown li.title h5 a:hover, .top-bar-section .dropdown li.parent-link a:hover {
            background: none; }
      .top-bar-section .dropdown li.has-form {
        padding: 8px 0.9375rem; }
      .top-bar-section .dropdown li .button,
      .top-bar-section .dropdown li button {
        top: auto; }
    .top-bar-section .dropdown label {
      color: #777777;
      font-size: 0.625rem;
      font-weight: 700;
      margin-bottom: 0;
      padding: 8px 0.9375rem 2px;
      text-transform: uppercase; }

.js-generated {
  display: block; }

@media only screen and (min-width: 880px) {
  .top-bar {
    background: #333333;
    overflow: visible; }
    .top-bar:before, .top-bar:after {
      content: " ";
      display: table; }
    .top-bar:after {
      clear: both; }
    .top-bar .toggle-topbar {
      display: none; }
    .top-bar .title-area {
      float: left; }
    .top-bar .name h1 a,
    .top-bar .name h2 a,
    .top-bar .name h3 a,
    .top-bar .name h4 a,
    .top-bar .name h5 a,
    .top-bar .name h6 a {
      width: auto; }
    .top-bar input,
    .top-bar select,
    .top-bar .button,
    .top-bar button {
      font-size: 0.875rem;
      height: 1.75rem;
      position: relative;
      top: 0.53125rem; }
    .top-bar.expanded {
      background: #333333; }
  .contain-to-grid .top-bar {
    margin-bottom: 0;
    margin: 0 auto;
    max-width: 62.5rem; }
  .top-bar-section {
    transition: none 0 0;
    left: 0 !important; }
    .top-bar-section ul {
      display: inline;
      height: auto !important;
      width: auto; }
      .top-bar-section ul li {
        float: left; }
        .top-bar-section ul li .js-generated {
          display: none; }
    .top-bar-section li.hover > a:not(.button) {
      background-color: #555555;
      background: #222222;
      color: #FFFFFF; }
    .top-bar-section li:not(.has-form) a:not(.button) {
      background: #333333;
      line-height: 2.8125rem;
      padding: 0 0.9375rem; }
      .top-bar-section li:not(.has-form) a:not(.button):hover {
        background-color: #555555;
        background: #222222; }
    .top-bar-section li.active:not(.has-form) a:not(.button) {
      background: #2262bb;
      color: #FFFFFF;
      line-height: 2.8125rem;
      padding: 0 0.9375rem; }
      .top-bar-section li.active:not(.has-form) a:not(.button):hover {
        background: #1d54a1;
        color: #FFFFFF; }
    .top-bar-section .has-dropdown > a {
      padding-right: 2.1875rem !important; }
      .top-bar-section .has-dropdown > a:after {
        border: inset 5px;
        content: "";
        display: block;
        height: 0;
        width: 0;
        border-color: rgba(255, 255, 255, 0.4) transparent transparent transparent;
        border-top-style: solid;
        margin-top: -2.5px;
        top: 1.40625rem; }
    .top-bar-section .has-dropdown.moved {
      position: relative; }
      .top-bar-section .has-dropdown.moved > .dropdown {
        clip: rect(1px, 1px, 1px, 1px);
        height: 1px;
        overflow: hidden;
        position: absolute !important;
        width: 1px;
        display: block; }
    .top-bar-section .has-dropdown.hover > .dropdown, .top-bar-section .has-dropdown.not-click:hover > .dropdown {
      position: static !important;
      height: auto;
      width: auto;
      overflow: visible;
      clip: auto;
      display: block;
      position: absolute !important; }
    .top-bar-section .has-dropdown > a:focus + .dropdown {
      position: static !important;
      height: auto;
      width: auto;
      overflow: visible;
      clip: auto;
      display: block;
      position: absolute !important; }
    .top-bar-section .has-dropdown .dropdown li.has-dropdown > a:after {
      border: none;
      content: "\00bb";
      top: 0.1875rem;
      right: 5px; }
    .top-bar-section .dropdown {
      left: 0;
      background: transparent;
      min-width: 100%;
      top: auto; }
      .top-bar-section .dropdown li a {
        background: #333333;
        color: #FFFFFF;
        line-height: 2.8125rem;
        padding: 12px 0.9375rem;
        white-space: nowrap; }
      .top-bar-section .dropdown li:not(.has-form):not(.active) > a:not(.button) {
        background: #333333;
        color: #FFFFFF; }
      .top-bar-section .dropdown li:not(.has-form):not(.active):hover > a:not(.button) {
        background-color: #555555;
        color: #FFFFFF;
        background: #222222; }
      .top-bar-section .dropdown li label {
        background: #333333;
        white-space: nowrap; }
      .top-bar-section .dropdown li .dropdown {
        left: 100%;
        top: 0; }
    .top-bar-section > ul > .divider,
    .top-bar-section > ul > [role="separator"] {
      border-right: solid 1px #4e4e4e;
      border-bottom: none;
      border-top: none;
      clear: none;
      height: 2.8125rem;
      width: 0; }
    .top-bar-section .has-form {
      background: #333333;
      height: 2.8125rem;
      padding: 0 0.9375rem; }
    .top-bar-section .right li .dropdown {
      left: auto;
      right: 0; }
      .top-bar-section .right li .dropdown li .dropdown {
        right: 100%; }
    .top-bar-section .left li .dropdown {
      right: auto;
      left: 0; }
      .top-bar-section .left li .dropdown li .dropdown {
        left: 100%; }
  .no-js .top-bar-section ul li:hover > a {
    background-color: #555555;
    background: #222222;
    color: #FFFFFF; }
  .no-js .top-bar-section ul li:active > a {
    background: #2262bb;
    color: #FFFFFF; }
  .no-js .top-bar-section .has-dropdown:hover > .dropdown {
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto;
    display: block;
    position: absolute !important; }
  .no-js .top-bar-section .has-dropdown > a:focus + .dropdown {
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto;
    display: block;
    position: absolute !important; } }

.text-left {
  text-align: left !important; }

.text-right {
  text-align: right !important; }

.text-center {
  text-align: center !important; }

.text-justify {
  text-align: justify !important; }

@media only screen and (max-width: 40em) {
  .small-only-text-left {
    text-align: left !important; }
  .small-only-text-right {
    text-align: right !important; }
  .small-only-text-center {
    text-align: center !important; }
  .small-only-text-justify {
    text-align: justify !important; } }

@media only screen {
  .small-text-left {
    text-align: left !important; }
  .small-text-right {
    text-align: right !important; }
  .small-text-center {
    text-align: center !important; }
  .small-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .medium-only-text-left {
    text-align: left !important; }
  .medium-only-text-right {
    text-align: right !important; }
  .medium-only-text-center {
    text-align: center !important; }
  .medium-only-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 40.0625em) {
  .medium-text-left {
    text-align: left !important; }
  .medium-text-right {
    text-align: right !important; }
  .medium-text-center {
    text-align: center !important; }
  .medium-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 64em) and (max-width: 90em) {
  .large-only-text-left {
    text-align: left !important; }
  .large-only-text-right {
    text-align: right !important; }
  .large-only-text-center {
    text-align: center !important; }
  .large-only-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 64em) {
  .large-text-left {
    text-align: left !important; }
  .large-text-right {
    text-align: right !important; }
  .large-text-center {
    text-align: center !important; }
  .large-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 90.0625em) and (max-width: 120em) {
  .xlarge-only-text-left {
    text-align: left !important; }
  .xlarge-only-text-right {
    text-align: right !important; }
  .xlarge-only-text-center {
    text-align: center !important; }
  .xlarge-only-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 90.0625em) {
  .xlarge-text-left {
    text-align: left !important; }
  .xlarge-text-right {
    text-align: right !important; }
  .xlarge-text-center {
    text-align: center !important; }
  .xlarge-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 120.0625em) and (max-width: 6249999.9375em) {
  .xxlarge-only-text-left {
    text-align: left !important; }
  .xxlarge-only-text-right {
    text-align: right !important; }
  .xxlarge-only-text-center {
    text-align: center !important; }
  .xxlarge-only-text-justify {
    text-align: justify !important; } }

@media only screen and (min-width: 120.0625em) {
  .xxlarge-text-left {
    text-align: left !important; }
  .xxlarge-text-right {
    text-align: right !important; }
  .xxlarge-text-center {
    text-align: center !important; }
  .xxlarge-text-justify {
    text-align: justify !important; } }

/* Typography resets */
div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
form,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0; }

/* Default Link Styles */
a {
  color: #2c7ef0;
  line-height: inherit;
  text-decoration: none; }
  a:hover, a:focus {
    color: #1552a8; }
  a img {
    border: none; }

/* Default paragraph styles */
p {
  font-family: inherit;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  margin-bottom: 1.25rem;
  text-rendering: optimizeLegibility; }
  p.lead {
    font-size: 1.21875rem;
    line-height: 1.6; }
  p aside {
    font-size: 0.875rem;
    font-style: italic;
    line-height: 1.35; }

/* Default header styles */
h1, h2, h3, h4, h5, h6 {
  color: #333333;
  font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-style: normal;
  font-weight: 400;
  line-height: 1.4;
  margin-bottom: 0.5rem;
  margin-top: 0;
  text-rendering: optimizeLegibility; }
  h1 small, h2 small, h3 small, h4 small, h5 small, h6 small {
    color: #7a7a7a;
    font-size: 60%;
    line-height: 0; }

h1 {
  font-size: 2.1875rem; }

h2 {
  font-size: 1.25rem; }

h3 {
  font-size: 1.1875rem; }

h4 {
  font-size: 0.8125rem; }

h5 {
  font-size: 1.125rem; }

h6 {
  font-size: 1rem; }

.subheader {
  line-height: 1.4;
  color: #7a7a7a;
  font-weight: 400;
  margin-top: 0.2rem;
  margin-bottom: 0.5rem; }

hr {
  border: solid #DDDDDD;
  border-width: 1px 0 0;
  clear: both;
  height: 0;
  margin: 1.25rem 0 1.1875rem; }

/* Helpful Typography Defaults */
em,
i {
  font-style: italic;
  line-height: inherit; }

strong,
b {
  font-weight: 700;
  line-height: inherit; }

small {
  font-size: 60%;
  line-height: inherit; }

code {
  background-color: #f9f9f9;
  border-color: #e0e0e0;
  border-style: solid;
  border-width: 1px;
  color: #333333;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: 400;
  padding: 0.125rem 0.3125rem 0.0625rem; }

/* Lists */
ul,
ol,
dl {
  font-family: inherit;
  font-size: 1rem;
  line-height: 1.5;
  list-style-position: outside;
  margin-bottom: 1.25rem; }

ul {
  margin-left: 1.1rem; }
  ul.no-bullet, ul.scorecard-list, div.stock-change ul.stock-change-list {
    margin-left: 0; }
    ul.no-bullet li ul, ul.scorecard-list li ul, div.stock-change ul.stock-change-list li ul,
    ul.no-bullet li ol, ul.scorecard-list li ol, div.stock-change ul.stock-change-list li ol {
      margin-left: 1.25rem;
      margin-bottom: 0;
      list-style: none; }

/* Unordered Lists */
ul li ul,
ul li ol {
  margin-left: 1.25rem;
  margin-bottom: 0; }

ul.square li ul, ul.circle li ul, ul.disc li ul {
  list-style: inherit; }

ul.square {
  list-style-type: square;
  margin-left: 1.1rem; }

ul.circle {
  list-style-type: circle;
  margin-left: 1.1rem; }

ul.disc {
  list-style-type: disc;
  margin-left: 1.1rem; }

ul.no-bullet, ul.scorecard-list, div.stock-change ul.stock-change-list {
  list-style: none; }

/* Ordered Lists */
ol {
  margin-left: 1.4rem; }
  ol li ul,
  ol li ol {
    margin-left: 1.25rem;
    margin-bottom: 0; }

/* Definition Lists */
dl dt {
  margin-bottom: 0.3rem;
  font-weight: 700; }

dl dd {
  margin-bottom: 0.75rem; }

/* Abbreviations */
abbr,
acronym {
  text-transform: uppercase;
  font-size: 90%;
  color: #333333;
  cursor: help; }

abbr {
  text-transform: none; }
  abbr[title] {
    border-bottom: 1px dotted #DDDDDD; }

/* Blockquotes */
blockquote {
  margin: 0 0 1.25rem;
  padding: 0.5625rem 1.25rem 0 1.1875rem;
  border-left: 1px solid #DDDDDD; }
  blockquote cite {
    display: block;
    font-size: 0.8125rem;
    color: #626262; }
    blockquote cite:before {
      content: "\2014 \0020"; }
    blockquote cite a,
    blockquote cite a:visited {
      color: #626262; }

blockquote,
blockquote p {
  line-height: 1.5;
  color: #7a7a7a; }

/* Microformats */
.vcard {
  display: inline-block;
  margin: 0 0 1.25rem 0;
  border: 1px solid #DDDDDD;
  padding: 0.625rem 0.75rem; }
  .vcard li {
    margin: 0;
    display: block; }
  .vcard .fn {
    font-weight: 700;
    font-size: 0.9375rem; }

.vevent .summary {
  font-weight: 700; }

.vevent abbr {
  cursor: default;
  text-decoration: none;
  font-weight: 700;
  border: none;
  padding: 0 0.0625rem; }

@media only screen and (min-width: 40.0625em) {
  h1, h2, h3, h4, h5, h6 {
    line-height: 1.4; }
  h1 {
    font-size: 2.8125rem; }
  h2 {
    font-size: 1.875rem; }
  h3 {
    font-size: 1.5rem; }
  h4 {
    font-size: 1.125rem; }
  h5 {
    font-size: 1.125rem; }
  h6 {
    font-size: 1rem; } }

.off-canvas-wrap {
  -webkit-backface-visibility: hidden;
  position: relative;
  width: 100%;
  overflow: hidden; }
  .off-canvas-wrap.move-right, .off-canvas-wrap.move-left {
    min-height: 100%;
    -webkit-overflow-scrolling: touch; }

.inner-wrap {
  position: relative;
  width: 100%;
  -webkit-transition: -webkit-transform 500ms ease;
  -moz-transition: -moz-transform 500ms ease;
  -ms-transition: -ms-transform 500ms ease;
  -o-transition: -o-transform 500ms ease;
  transition: transform 500ms ease; }
  .inner-wrap:before, .inner-wrap:after {
    content: " ";
    display: table; }
  .inner-wrap:after {
    clear: both; }

.tab-bar {
  -webkit-backface-visibility: hidden;
  background: #13325D;
  color: #FFFFFF;
  height: 3.5rem;
  line-height: 3.5rem;
  position: relative; }
  .tab-bar h1, .tab-bar h2, .tab-bar h3, .tab-bar h4, .tab-bar h5, .tab-bar h6 {
    color: #FFFFFF;
    font-weight: 700;
    line-height: 3.5rem;
    margin: 0; }
  .tab-bar h1, .tab-bar h2, .tab-bar h3, .tab-bar h4 {
    font-size: 1.125rem; }

.left-small {
  height: 3.5rem;
  position: absolute;
  top: 0;
  width: 3.5rem;
  border-right: solid 1px #0a192f;
  left: 0; }

.right-small {
  height: 3.5rem;
  position: absolute;
  top: 0;
  width: 3.5rem;
  border-left: solid 1px #0a192f;
  right: 0; }

.tab-bar-section {
  height: 3.5rem;
  padding: 0 0.625rem;
  position: absolute;
  text-align: center;
  top: 0; }
  .tab-bar-section.left {
    text-align: left; }
  .tab-bar-section.right {
    text-align: right; }
  .tab-bar-section.left {
    left: 0;
    right: 3.5rem; }
  .tab-bar-section.right {
    left: 3.5rem;
    right: 0; }
  .tab-bar-section.middle {
    left: 3.5rem;
    right: 3.5rem; }

.tab-bar .menu-icon {
  color: #FFFFFF;
  display: block;
  height: 3.5rem;
  padding: 0;
  position: relative;
  text-indent: 2.1875rem;
  transform: translate3d(0, 0, 0);
  width: 3.5rem; }
  .tab-bar .menu-icon span::after {
    content: "";
    display: block;
    height: 0;
    position: absolute;
    top: 50%;
    margin-top: -0.5rem;
    left: 1.25rem;
    box-shadow: 0 0 0 1px #FFFFFF, 0 7px 0 1px #FFFFFF, 0 14px 0 1px #FFFFFF;
    width: 1rem; }
  .tab-bar .menu-icon span:hover:after {
    box-shadow: 0 0 0 1px #b3b3b3, 0 7px 0 1px #b3b3b3, 0 14px 0 1px #b3b3b3; }

.left-off-canvas-menu {
  -webkit-backface-visibility: hidden;
  background: #10294B;
  bottom: 0;
  box-sizing: content-box;
  -webkit-overflow-scrolling: touch;
  -ms-overflow-style: -ms-autohiding-scrollbar;
  overflow-x: hidden;
  overflow-y: auto;
  position: absolute;
  top: 0;
  transition: transform 500ms ease 0s;
  width: 15.625rem;
  z-index: 1001;
  -webkit-transform: translate3d(-100%, 0, 0);
  -moz-transform: translate3d(-100%, 0, 0);
  -ms-transform: translate(-100%, 0);
  -ms-transform: translate3d(-100%, 0, 0);
  -o-transform: translate3d(-100%, 0, 0);
  transform: translate3d(-100%, 0, 0);
  left: 0; }
  .left-off-canvas-menu * {
    -webkit-backface-visibility: hidden; }

.right-off-canvas-menu {
  -webkit-backface-visibility: hidden;
  background: #10294B;
  bottom: 0;
  box-sizing: content-box;
  -webkit-overflow-scrolling: touch;
  -ms-overflow-style: -ms-autohiding-scrollbar;
  overflow-x: hidden;
  overflow-y: auto;
  position: absolute;
  top: 0;
  transition: transform 500ms ease 0s;
  width: 15.625rem;
  z-index: 1001;
  -webkit-transform: translate3d(100%, 0, 0);
  -moz-transform: translate3d(100%, 0, 0);
  -ms-transform: translate(100%, 0);
  -ms-transform: translate3d(100%, 0, 0);
  -o-transform: translate3d(100%, 0, 0);
  transform: translate3d(100%, 0, 0);
  right: 0; }
  .right-off-canvas-menu * {
    -webkit-backface-visibility: hidden; }

ul.off-canvas-list {
  list-style-type: none;
  margin: 0;
  padding: 0; }
  ul.off-canvas-list li label {
    background: #10294B;
    border-bottom: none;
    border-top: 1px solid #1a437b;
    color: #FFFFFF;
    display: block;
    font-size: 1.125rem;
    font-weight: 500;
    margin: 0;
    padding: 0 0.9375rem;
    text-transform: none; }
  ul.off-canvas-list li a {
    border-bottom: 0;
    color: #c0cadd;
    display: block;
    padding: 0.3rem 0.9375rem;
    transition: background 300ms ease; }
    ul.off-canvas-list li a:hover {
      background: #10294B; }
    ul.off-canvas-list li a:active {
      background: #10294B; }

.move-right > .inner-wrap {
  -webkit-transform: translate3d(15.625rem, 0, 0);
  -moz-transform: translate3d(15.625rem, 0, 0);
  -ms-transform: translate(15.625rem, 0);
  -ms-transform: translate3d(15.625rem, 0, 0);
  -o-transform: translate3d(15.625rem, 0, 0);
  transform: translate3d(15.625rem, 0, 0); }

.move-right .exit-off-canvas {
  -webkit-backface-visibility: hidden;
  box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
  cursor: pointer;
  transition: background 300ms ease;
  -webkit-tap-highlight-color: transparent;
  background: rgba(255, 255, 255, 0.4);
  bottom: 0;
  display: block;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 1002; }
  @media only screen and (min-width: 40.0625em) {
    .move-right .exit-off-canvas:hover {
      background: rgba(255, 255, 255, 0.05); } }

.move-left > .inner-wrap {
  -webkit-transform: translate3d(-15.625rem, 0, 0);
  -moz-transform: translate3d(-15.625rem, 0, 0);
  -ms-transform: translate(-15.625rem, 0);
  -ms-transform: translate3d(-15.625rem, 0, 0);
  -o-transform: translate3d(-15.625rem, 0, 0);
  transform: translate3d(-15.625rem, 0, 0); }

.move-left .exit-off-canvas {
  -webkit-backface-visibility: hidden;
  box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
  cursor: pointer;
  transition: background 300ms ease;
  -webkit-tap-highlight-color: transparent;
  background: rgba(255, 255, 255, 0.4);
  bottom: 0;
  display: block;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 1002; }
  @media only screen and (min-width: 40.0625em) {
    .move-left .exit-off-canvas:hover {
      background: rgba(255, 255, 255, 0.05); } }

.offcanvas-overlap .left-off-canvas-menu, .offcanvas-overlap .right-off-canvas-menu {
  -ms-transform: none;
  -webkit-transform: none;
  -moz-transform: none;
  -o-transform: none;
  transform: none;
  z-index: 1003; }

.offcanvas-overlap .exit-off-canvas {
  -webkit-backface-visibility: hidden;
  box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
  cursor: pointer;
  transition: background 300ms ease;
  -webkit-tap-highlight-color: transparent;
  background: rgba(255, 255, 255, 0.4);
  bottom: 0;
  display: block;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 1002; }
  @media only screen and (min-width: 40.0625em) {
    .offcanvas-overlap .exit-off-canvas:hover {
      background: rgba(255, 255, 255, 0.05); } }

.offcanvas-overlap-left .right-off-canvas-menu {
  -ms-transform: none;
  -webkit-transform: none;
  -moz-transform: none;
  -o-transform: none;
  transform: none;
  z-index: 1003; }

.offcanvas-overlap-left .exit-off-canvas {
  -webkit-backface-visibility: hidden;
  box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
  cursor: pointer;
  transition: background 300ms ease;
  -webkit-tap-highlight-color: transparent;
  background: rgba(255, 255, 255, 0.4);
  bottom: 0;
  display: block;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 1002; }
  @media only screen and (min-width: 40.0625em) {
    .offcanvas-overlap-left .exit-off-canvas:hover {
      background: rgba(255, 255, 255, 0.05); } }

.offcanvas-overlap-right .left-off-canvas-menu {
  -ms-transform: none;
  -webkit-transform: none;
  -moz-transform: none;
  -o-transform: none;
  transform: none;
  z-index: 1003; }

.offcanvas-overlap-right .exit-off-canvas {
  -webkit-backface-visibility: hidden;
  box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
  cursor: pointer;
  transition: background 300ms ease;
  -webkit-tap-highlight-color: transparent;
  background: rgba(255, 255, 255, 0.4);
  bottom: 0;
  display: block;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 1002; }
  @media only screen and (min-width: 40.0625em) {
    .offcanvas-overlap-right .exit-off-canvas:hover {
      background: rgba(255, 255, 255, 0.05); } }

.no-csstransforms .left-off-canvas-menu {
  left: -15.625rem; }

.no-csstransforms .right-off-canvas-menu {
  right: -15.625rem; }

.no-csstransforms .move-left > .inner-wrap {
  right: 15.625rem; }

.no-csstransforms .move-right > .inner-wrap {
  left: 15.625rem; }

.left-submenu {
  -webkit-backface-visibility: hidden;
  -webkit-overflow-scrolling: touch;
  background: #10294B;
  bottom: 0;
  box-sizing: content-box;
  margin: 0;
  overflow-x: hidden;
  overflow-y: auto;
  position: absolute;
  top: 0;
  width: 15.625rem;
  z-index: 1002;
  -webkit-transform: translate3d(-100%, 0, 0);
  -moz-transform: translate3d(-100%, 0, 0);
  -ms-transform: translate(-100%, 0);
  -ms-transform: translate3d(-100%, 0, 0);
  -o-transform: translate3d(-100%, 0, 0);
  transform: translate3d(-100%, 0, 0);
  left: 0;
  -webkit-transition: -webkit-transform 500ms ease;
  -moz-transition: -moz-transform 500ms ease;
  -ms-transition: -ms-transform 500ms ease;
  -o-transition: -o-transform 500ms ease;
  transition: transform 500ms ease; }
  .left-submenu * {
    -webkit-backface-visibility: hidden; }
  .left-submenu .back > a {
    background: #13325D;
    border-bottom: 0;
    border-top: 0;
    color: #FFFFFF;
    font-weight: 500;
    padding: 0 0.9375rem;
    text-transform: none;
    margin: 0; }
    .left-submenu .back > a:hover {
      background: #13325D;
      border-bottom: none;
      border-top: 0; }
    .left-submenu .back > a:before {
      content: "\AB";
      margin-right: .5rem;
      display: inline; }
  .left-submenu.move-right, .left-submenu.offcanvas-overlap-right, .left-submenu.offcanvas-overlap {
    -webkit-transform: translate3d(0%, 0, 0);
    -moz-transform: translate3d(0%, 0, 0);
    -ms-transform: translate(0%, 0);
    -ms-transform: translate3d(0%, 0, 0);
    -o-transform: translate3d(0%, 0, 0);
    transform: translate3d(0%, 0, 0); }

.right-submenu {
  -webkit-backface-visibility: hidden;
  -webkit-overflow-scrolling: touch;
  background: #10294B;
  bottom: 0;
  box-sizing: content-box;
  margin: 0;
  overflow-x: hidden;
  overflow-y: auto;
  position: absolute;
  top: 0;
  width: 15.625rem;
  z-index: 1002;
  -webkit-transform: translate3d(100%, 0, 0);
  -moz-transform: translate3d(100%, 0, 0);
  -ms-transform: translate(100%, 0);
  -ms-transform: translate3d(100%, 0, 0);
  -o-transform: translate3d(100%, 0, 0);
  transform: translate3d(100%, 0, 0);
  right: 0;
  -webkit-transition: -webkit-transform 500ms ease;
  -moz-transition: -moz-transform 500ms ease;
  -ms-transition: -ms-transform 500ms ease;
  -o-transition: -o-transform 500ms ease;
  transition: transform 500ms ease; }
  .right-submenu * {
    -webkit-backface-visibility: hidden; }
  .right-submenu .back > a {
    background: #13325D;
    border-bottom: 0;
    border-top: 0;
    color: #FFFFFF;
    font-weight: 500;
    padding: 0 0.9375rem;
    text-transform: none;
    margin: 0; }
    .right-submenu .back > a:hover {
      background: #13325D;
      border-bottom: none;
      border-top: 0; }
    .right-submenu .back > a:after {
      content: "\BB";
      margin-left: .5rem;
      display: inline; }
  .right-submenu.move-left, .right-submenu.offcanvas-overlap-left, .right-submenu.offcanvas-overlap {
    -webkit-transform: translate3d(0%, 0, 0);
    -moz-transform: translate3d(0%, 0, 0);
    -ms-transform: translate(0%, 0);
    -ms-transform: translate3d(0%, 0, 0);
    -o-transform: translate3d(0%, 0, 0);
    transform: translate3d(0%, 0, 0); }

.left-off-canvas-menu ul.off-canvas-list li.has-submenu > a:after {
  content: "\BB";
  margin-left: .5rem;
  display: inline; }

.right-off-canvas-menu ul.off-canvas-list li.has-submenu > a:before {
  content: "\AB";
  margin-right: .5rem;
  display: inline; }

/* small displays */
@media only screen {
  .show-for-small-only, .show-for-small-up, .show-for-small, .show-for-small-down, .hide-for-medium-only, .hide-for-medium-up, .hide-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
    display: inherit !important; }
  .hide-for-small-only, .hide-for-small-up, .hide-for-small, .hide-for-small-down, .show-for-medium-only, .show-for-medium-up, .show-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
    display: none !important; }
  .visible-for-small-only, .visible-for-small-up, .visible-for-small, .visible-for-small-down, .hidden-for-medium-only, .hidden-for-medium-up, .hidden-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto; }
  .hidden-for-small-only, .hidden-for-small-up, .hidden-for-small, .hidden-for-small-down, .visible-for-medium-only, .visible-for-medium-up, .visible-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
    clip: rect(1px, 1px, 1px, 1px);
    height: 1px;
    overflow: hidden;
    position: absolute !important;
    width: 1px; }
  table.show-for-small-only, table.show-for-small-up, table.show-for-small, table.show-for-small-down, table.hide-for-medium-only, table.hide-for-medium-up, table.hide-for-medium, table.show-for-medium-down, table.hide-for-large-only, table.hide-for-large-up, table.hide-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
    display: table !important; }
  thead.show-for-small-only, thead.show-for-small-up, thead.show-for-small, thead.show-for-small-down, thead.hide-for-medium-only, thead.hide-for-medium-up, thead.hide-for-medium, thead.show-for-medium-down, thead.hide-for-large-only, thead.hide-for-large-up, thead.hide-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
    display: table-header-group !important; }
  tbody.show-for-small-only, tbody.show-for-small-up, tbody.show-for-small, tbody.show-for-small-down, tbody.hide-for-medium-only, tbody.hide-for-medium-up, tbody.hide-for-medium, tbody.show-for-medium-down, tbody.hide-for-large-only, tbody.hide-for-large-up, tbody.hide-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
    display: table-row-group !important; }
  tr.show-for-small-only, tr.show-for-small-up, tr.show-for-small, tr.show-for-small-down, tr.hide-for-medium-only, tr.hide-for-medium-up, tr.hide-for-medium, tr.show-for-medium-down, tr.hide-for-large-only, tr.hide-for-large-up, tr.hide-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
    display: table-row; }
  th.show-for-small-only, td.show-for-small-only, th.show-for-small-up, td.show-for-small-up, th.show-for-small, td.show-for-small, th.show-for-small-down, td.show-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.hide-for-medium-up, td.hide-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.show-for-medium-down, td.show-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.hide-for-large-up, td.hide-for-large-up, th.hide-for-large, td.hide-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
    display: table-cell !important; } }

/* medium displays */
@media only screen and (min-width: 40.0625em) {
  .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .show-for-medium-only, .show-for-medium-up, .show-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
    display: inherit !important; }
  .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .hide-for-medium-only, .hide-for-medium-up, .hide-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
    display: none !important; }
  .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .visible-for-medium-only, .visible-for-medium-up, .visible-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto; }
  .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .hidden-for-medium-only, .hidden-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
    clip: rect(1px, 1px, 1px, 1px);
    height: 1px;
    overflow: hidden;
    position: absolute !important;
    width: 1px; }
  table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.show-for-medium-only, table.show-for-medium-up, table.show-for-medium, table.show-for-medium-down, table.hide-for-large-only, table.hide-for-large-up, table.hide-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
    display: table !important; }
  thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.show-for-medium-only, thead.show-for-medium-up, thead.show-for-medium, thead.show-for-medium-down, thead.hide-for-large-only, thead.hide-for-large-up, thead.hide-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
    display: table-header-group !important; }
  tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.show-for-medium-only, tbody.show-for-medium-up, tbody.show-for-medium, tbody.show-for-medium-down, tbody.hide-for-large-only, tbody.hide-for-large-up, tbody.hide-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
    display: table-row-group !important; }
  tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.show-for-medium-only, tr.show-for-medium-up, tr.show-for-medium, tr.show-for-medium-down, tr.hide-for-large-only, tr.hide-for-large-up, tr.hide-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
    display: table-row; }
  th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.show-for-medium-only, td.show-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.show-for-medium, td.show-for-medium, th.show-for-medium-down, td.show-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.hide-for-large-up, td.hide-for-large-up, th.hide-for-large, td.hide-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
    display: table-cell !important; } }

/* large displays */
@media only screen and (min-width: 64em) {
  .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
    display: inherit !important; }
  .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
    display: none !important; }
  .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto; }
  .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
    clip: rect(1px, 1px, 1px, 1px);
    height: 1px;
    overflow: hidden;
    position: absolute !important;
    width: 1px; }
  table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.show-for-large-only, table.show-for-large-up, table.show-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
    display: table !important; }
  thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.show-for-large-only, thead.show-for-large-up, thead.show-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
    display: table-header-group !important; }
  tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.show-for-large-only, tbody.show-for-large-up, tbody.show-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
    display: table-row-group !important; }
  tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.show-for-large-only, tr.show-for-large-up, tr.show-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
    display: table-row; }
  th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.show-for-large-only, td.show-for-large-only, th.show-for-large-up, td.show-for-large-up, th.show-for-large, td.show-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
    display: table-cell !important; } }

/* xlarge displays */
@media only screen and (min-width: 90.0625em) {
  .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .hide-for-large-only, .show-for-large-up, .hide-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
    display: inherit !important; }
  .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .show-for-large-only, .hide-for-large-up, .show-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
    display: none !important; }
  .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .hidden-for-large-only, .visible-for-large-up, .hidden-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto; }
  .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .visible-for-large-only, .hidden-for-large-up, .visible-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
    clip: rect(1px, 1px, 1px, 1px);
    height: 1px;
    overflow: hidden;
    position: absolute !important;
    width: 1px; }
  table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.hide-for-large-only, table.show-for-large-up, table.hide-for-large, table.hide-for-large-down, table.show-for-xlarge-only, table.show-for-xlarge-up, table.show-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
    display: table !important; }
  thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.hide-for-large-only, thead.show-for-large-up, thead.hide-for-large, thead.hide-for-large-down, thead.show-for-xlarge-only, thead.show-for-xlarge-up, thead.show-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
    display: table-header-group !important; }
  tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.hide-for-large-only, tbody.show-for-large-up, tbody.hide-for-large, tbody.hide-for-large-down, tbody.show-for-xlarge-only, tbody.show-for-xlarge-up, tbody.show-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
    display: table-row-group !important; }
  tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.hide-for-large-only, tr.show-for-large-up, tr.hide-for-large, tr.hide-for-large-down, tr.show-for-xlarge-only, tr.show-for-xlarge-up, tr.show-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
    display: table-row; }
  th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.show-for-large-up, td.show-for-large-up, th.hide-for-large, td.hide-for-large, th.hide-for-large-down, td.hide-for-large-down, th.show-for-xlarge-only, td.show-for-xlarge-only, th.show-for-xlarge-up, td.show-for-xlarge-up, th.show-for-xlarge, td.show-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
    display: table-cell !important; } }

/* xxlarge displays */
@media only screen and (min-width: 120.0625em) {
  .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .hide-for-large-only, .show-for-large-up, .hide-for-large, .hide-for-large-down, .hide-for-xlarge-only, .show-for-xlarge-up, .hide-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .show-for-xxlarge-down {
    display: inherit !important; }
  .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .show-for-large-only, .hide-for-large-up, .show-for-large, .show-for-large-down, .show-for-xlarge-only, .hide-for-xlarge-up, .show-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .hide-for-xxlarge-down {
    display: none !important; }
  .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .hidden-for-large-only, .visible-for-large-up, .hidden-for-large, .hidden-for-large-down, .hidden-for-xlarge-only, .visible-for-xlarge-up, .hidden-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .visible-for-xxlarge-down {
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto; }
  .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .visible-for-large-only, .hidden-for-large-up, .visible-for-large, .visible-for-large-down, .visible-for-xlarge-only, .hidden-for-xlarge-up, .visible-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .hidden-for-xxlarge-down {
    clip: rect(1px, 1px, 1px, 1px);
    height: 1px;
    overflow: hidden;
    position: absolute !important;
    width: 1px; }
  table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.hide-for-large-only, table.show-for-large-up, table.hide-for-large, table.hide-for-large-down, table.hide-for-xlarge-only, table.show-for-xlarge-up, table.hide-for-xlarge, table.hide-for-xlarge-down, table.show-for-xxlarge-only, table.show-for-xxlarge-up, table.show-for-xxlarge, table.show-for-xxlarge-down {
    display: table !important; }
  thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.hide-for-large-only, thead.show-for-large-up, thead.hide-for-large, thead.hide-for-large-down, thead.hide-for-xlarge-only, thead.show-for-xlarge-up, thead.hide-for-xlarge, thead.hide-for-xlarge-down, thead.show-for-xxlarge-only, thead.show-for-xxlarge-up, thead.show-for-xxlarge, thead.show-for-xxlarge-down {
    display: table-header-group !important; }
  tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.hide-for-large-only, tbody.show-for-large-up, tbody.hide-for-large, tbody.hide-for-large-down, tbody.hide-for-xlarge-only, tbody.show-for-xlarge-up, tbody.hide-for-xlarge, tbody.hide-for-xlarge-down, tbody.show-for-xxlarge-only, tbody.show-for-xxlarge-up, tbody.show-for-xxlarge, tbody.show-for-xxlarge-down {
    display: table-row-group !important; }
  tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.hide-for-large-only, tr.show-for-large-up, tr.hide-for-large, tr.hide-for-large-down, tr.hide-for-xlarge-only, tr.show-for-xlarge-up, tr.hide-for-xlarge, tr.hide-for-xlarge-down, tr.show-for-xxlarge-only, tr.show-for-xxlarge-up, tr.show-for-xxlarge, tr.show-for-xxlarge-down {
    display: table-row; }
  th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.show-for-large-up, td.show-for-large-up, th.hide-for-large, td.hide-for-large, th.hide-for-large-down, td.hide-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.show-for-xlarge-up, td.show-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.hide-for-xlarge-down, td.hide-for-xlarge-down, th.show-for-xxlarge-only, td.show-for-xxlarge-only, th.show-for-xxlarge-up, td.show-for-xxlarge-up, th.show-for-xxlarge, td.show-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
    display: table-cell !important; } }

/* Orientation targeting */
.show-for-landscape,
.hide-for-portrait {
  display: inherit !important; }

.hide-for-landscape,
.show-for-portrait {
  display: none !important; }

/* Specific visibility for tables */
table.hide-for-landscape, table.show-for-portrait {
  display: table !important; }

thead.hide-for-landscape, thead.show-for-portrait {
  display: table-header-group !important; }

tbody.hide-for-landscape, tbody.show-for-portrait {
  display: table-row-group !important; }

tr.hide-for-landscape, tr.show-for-portrait {
  display: table-row !important; }

td.hide-for-landscape, td.show-for-portrait,
th.hide-for-landscape,
th.show-for-portrait {
  display: table-cell !important; }

@media only screen and (orientation: landscape) {
  .show-for-landscape,
  .hide-for-portrait {
    display: inherit !important; }
  .hide-for-landscape,
  .show-for-portrait {
    display: none !important; }
  /* Specific visibility for tables */
  table.show-for-landscape, table.hide-for-portrait {
    display: table !important; }
  thead.show-for-landscape, thead.hide-for-portrait {
    display: table-header-group !important; }
  tbody.show-for-landscape, tbody.hide-for-portrait {
    display: table-row-group !important; }
  tr.show-for-landscape, tr.hide-for-portrait {
    display: table-row !important; }
  td.show-for-landscape, td.hide-for-portrait,
  th.show-for-landscape,
  th.hide-for-portrait {
    display: table-cell !important; } }

@media only screen and (orientation: portrait) {
  .show-for-portrait,
  .hide-for-landscape {
    display: inherit !important; }
  .hide-for-portrait,
  .show-for-landscape {
    display: none !important; }
  /* Specific visibility for tables */
  table.show-for-portrait, table.hide-for-landscape {
    display: table !important; }
  thead.show-for-portrait, thead.hide-for-landscape {
    display: table-header-group !important; }
  tbody.show-for-portrait, tbody.hide-for-landscape {
    display: table-row-group !important; }
  tr.show-for-portrait, tr.hide-for-landscape {
    display: table-row !important; }
  td.show-for-portrait, td.hide-for-landscape,
  th.show-for-portrait,
  th.hide-for-landscape {
    display: table-cell !important; } }

/* Touch-enabled device targeting */
.show-for-touch {
  display: none !important; }

.hide-for-touch {
  display: inherit !important; }

.touch .show-for-touch {
  display: inherit !important; }

.touch .hide-for-touch {
  display: none !important; }

/* Specific visibility for tables */
table.hide-for-touch {
  display: table !important; }

.touch table.show-for-touch {
  display: table !important; }

thead.hide-for-touch {
  display: table-header-group !important; }

.touch thead.show-for-touch {
  display: table-header-group !important; }

tbody.hide-for-touch {
  display: table-row-group !important; }

.touch tbody.show-for-touch {
  display: table-row-group !important; }

tr.hide-for-touch {
  display: table-row !important; }

.touch tr.show-for-touch {
  display: table-row !important; }

td.hide-for-touch {
  display: table-cell !important; }

.touch td.show-for-touch {
  display: table-cell !important; }

th.hide-for-touch {
  display: table-cell !important; }

.touch th.show-for-touch {
  display: table-cell !important; }

/* Screen reader-specific classes */
.show-for-sr {
  clip: rect(1px, 1px, 1px, 1px);
  height: 1px;
  overflow: hidden;
  position: absolute !important;
  width: 1px; }

.show-on-focus {
  clip: rect(1px, 1px, 1px, 1px);
  height: 1px;
  overflow: hidden;
  position: absolute !important;
  width: 1px; }
  .show-on-focus:focus, .show-on-focus:active {
    position: static !important;
    height: auto;
    width: auto;
    overflow: visible;
    clip: auto; }

/*
       * Print styles.
       *
       * Inlined to avoid required HTTP connection: www.phpied.com/delay-loading-your-print-css/
       * Credit to Paul Irish and HTML5 Boilerplate (html5boilerplate.com)
      */
.print-only {
  display: none !important; }

@media print {
  * {
    background: transparent !important;
    box-shadow: none !important;
    color: #000000 !important;
    /* Black prints faster: h5bp.com/s */
    text-shadow: none !important; }
  .show-for-print {
    display: block; }
  .hide-for-print {
    display: none; }
  table.show-for-print {
    display: table !important; }
  thead.show-for-print {
    display: table-header-group !important; }
  tbody.show-for-print {
    display: table-row-group !important; }
  tr.show-for-print {
    display: table-row !important; }
  td.show-for-print {
    display: table-cell !important; }
  th.show-for-print {
    display: table-cell !important; }
  a,
  a:visited {
    text-decoration: underline; }
  a[href]:after {
    content: " (" attr(href) ")"; }
  abbr[title]:after {
    content: " (" attr(title) ")"; }
  .ir a:after,
  a[href^="javascript:"]:after,
  a[href^="#"]:after {
    content: ""; }
  pre,
  blockquote {
    border: 1px solid #999999;
    page-break-inside: avoid; }
  thead {
    display: table-header-group;
    /* h5bp.com/t */ }
  tr,
  img {
    page-break-inside: avoid; }
  img {
    max-width: 100% !important; }
  @page {
    margin: .5cm; }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3; }
  h2,
  h3 {
    page-break-after: avoid; }
  .hide-on-print {
    display: none !important; }
  .print-only {
    display: block !important; }
  .hide-for-print {
    display: none !important; }
  .show-for-print {
    display: inherit !important; } }

/* Print visibility */
@media print {
  .show-for-print {
    display: block; }
  .hide-for-print {
    display: none; }
  table.show-for-print {
    display: table !important; }
  thead.show-for-print {
    display: table-header-group !important; }
  tbody.show-for-print {
    display: table-row-group !important; }
  tr.show-for-print {
    display: table-row !important; }
  td.show-for-print {
    display: table-cell !important; }
  th.show-for-print {
    display: table-cell !important; } }

@media not print {
  .show-for-print {
    display: none !important; } }

html:after {
  content: "js-breakpoints-getComputedStyleTest";
  visibility: hidden;
  position: absolute;
  clip: rect(0 0 0 0);
  overflow: hidden;
  width: 0;
  height: 0; }

/*doc
---
title: The 3 Main Breakpoints
name: a-default-breakpoints
category: Layout - Breakpoints
---

In general, we are using **3** media queries for all our layout needs. We are
definitely *mobile first*, therefore, consider our *small* styles the default.

The [basic grid][a-basic-grid] and the [flex grid][a-flex-grid] including our [layout
helpers][a-margin-helpers] (with responsive qualifiers like
[margin][a-margin-helpers], 
[padding][b-padding-helpers],
[visibility][c-visibility-helpers],
[display type][d-display-type-helpers],
and
[float][e-float-helpers] helpers)
are based upon the following 3
breakpoints:

### Default Breakpoints

| Breakpoint         | px    
|--------------------|--------
| small              | 0
| medium             | 640
| large              | 1023

We build our default media queries with these numbers and they form the 
basis upon which we build the vocabulary for our responsive toolset.

### Responsive vocabulary

| Responsive qualifiers | range
|-----------------------|--------
| -small-up              | screen
| -small-only            | 0 to 640
| -medium-up             | 641 up
| -medium-only           | 641 to 1023
| -large-up              | 1024 up

Using our 3 default breakpoints and the vocabulary above, we were able to 
create handy helper classes to satisfy most of our layout needs. Things like:
`.flex-small-6`
`.block-tight-for-small-only`
`.pad-looser-for-large-up`
`.show-for-medium-up`
`.hide-for-small-only`
`.display-inline-for-medium-up`
`.left-for-medium-only`

<br>
*/
/*doc
---
title: Breakpoint Mixins
name: b-breakpoint-helpers
category: Layout - Breakpoints
---

You will most definitely need to style components differently depending
on the viewport width and the way to do it is with these breakpoint mixins:

Here are the mixins you can @include:

| mixin                                      | result
|--------------------------------------------|--------
| `from(BREAKPOINT_VAR)`                     | styles applied above this breakpoint
| `to(BREAKPOINT_VAR)`                       | styles applied before this breakpoint
| `between(BREAKPOINT_VAR, BREAKPOINT_VAR)`  | styles applied between two breakpoints


Here are the available breakpoint variables:

| BREAKPOINT_VAR     | px    
|--------------------|--------
| bp-small           | 0
| bp-small-wide      | 320
| bp-small-wider     | 360
| bp-small-widest    | 414
| bp-medium          | 640
| bp-medium-wide     | 768
| bp-medium-wider    | 880
| bp-medium-widest   | 960
| bp-large           | 1024

### An example:

>**TODO:** Add an example that uses the syntax above to change the color of boxes or something

In cases where our default breakpoints do not suffice and a more surgical
media query is necessary, you can add to the list of variables above but we
ask that you do so by appending `-NUMERICAL_VALUE` with the numerical value
being the additional pixels above the preceding variable.

For example. If we needed to add a breakpoint of 980, you would add the
following to the table:

| BREAKPOINT_VAR             | px    
|----------------------------|--------
| bp-medium-widest-20        | 980

*/
@media only screen and (max-width: 40em) {
  body:after, .breakpoint-global:after {
    content: "BREAKPOINT-SMALL";
    visibility: hidden;
    position: absolute;
    clip: rect(0 0 0 0);
    overflow: hidden;
    width: 0;
    height: 0; }
  body .js-breakpoints-BREAKPOINT-SMALL, .breakpoint-global .js-breakpoints-BREAKPOINT-SMALL {
    position: absolute; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  body:after, .breakpoint-global:after {
    content: "BREAKPOINT-MEDIUM";
    visibility: hidden;
    position: absolute;
    clip: rect(0 0 0 0);
    overflow: hidden;
    width: 0;
    height: 0; }
  body .js-breakpoints-BREAKPOINT-MEDIUM, .breakpoint-global .js-breakpoints-BREAKPOINT-MEDIUM {
    position: absolute; } }

@media (min-width: 48em) and (max-width: 63.875em) {
  body:after, .breakpoint-global:after {
    content: "BREAKPOINT-MEDIUM-WIDE";
    visibility: hidden;
    position: absolute;
    clip: rect(0 0 0 0);
    overflow: hidden;
    width: 0;
    height: 0; }
  body .js-breakpoints-BREAKPOINT-MEDIUM-WIDE, .breakpoint-global .js-breakpoints-BREAKPOINT-MEDIUM-WIDE {
    position: absolute; } }

@media only screen and (min-width: 64em) {
  .breakpoint-global:after {
    content: "BREAKPOINT-WIDER";
    visibility: hidden;
    position: absolute;
    clip: rect(0 0 0 0);
    overflow: hidden;
    width: 0;
    height: 0; }
  .breakpoint-global .js-breakpoints-BREAKPOINT-WIDER {
    position: absolute; } }

@media only screen and (min-width: 64em) {
  body:after, .breakpoint-global:after {
    content: "BREAKPOINT-LARGE";
    visibility: hidden;
    position: absolute;
    clip: rect(0 0 0 0);
    overflow: hidden;
    width: 0;
    height: 0; }
  body .js-breakpoints-BREAKPOINT-LARGE, .breakpoint-global .js-breakpoints-BREAKPOINT-LARGE {
    position: absolute; } }

@media (min-width: 48em) {
  .show-for-medium-wide-up {
    display: inherit !important; } }

/*!
 * animate.css -http://daneden.me/animate
 * Version - 3.5.0
 * Licensed under the MIT license - http://opensource.org/licenses/MIT
 *
 * Copyright (c) 2016 Daniel Eden
 */
.animated, .search-result-animate-in {
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both; }

.animated.infinite, .infinite.search-result-animate-in {
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite; }

.animated.hinge, .hinge.search-result-animate-in {
  -webkit-animation-duration: 2s;
  animation-duration: 2s; }

.animated.flipOutX, .flipOutX.search-result-animate-in,
.animated.flipOutY,
.flipOutY.search-result-animate-in,
.animated.bounceIn,
.bounceIn.search-result-animate-in,
.animated.bounceOut,
.bounceOut.search-result-animate-in {
  -webkit-animation-duration: .75s;
  animation-duration: .75s; }

@-webkit-keyframes bounce {
  from, 20%, 53%, 80%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  40%, 43% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -webkit-transform: translate3d(0, -30px, 0);
    transform: translate3d(0, -30px, 0); }
  70% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -webkit-transform: translate3d(0, -15px, 0);
    transform: translate3d(0, -15px, 0); }
  90% {
    -webkit-transform: translate3d(0, -4px, 0);
    transform: translate3d(0, -4px, 0); } }

@keyframes bounce {
  from, 20%, 53%, 80%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  40%, 43% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -webkit-transform: translate3d(0, -30px, 0);
    transform: translate3d(0, -30px, 0); }
  70% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -webkit-transform: translate3d(0, -15px, 0);
    transform: translate3d(0, -15px, 0); }
  90% {
    -webkit-transform: translate3d(0, -4px, 0);
    transform: translate3d(0, -4px, 0); } }

.bounce {
  -webkit-animation-name: bounce;
  animation-name: bounce;
  -webkit-transform-origin: center bottom;
  transform-origin: center bottom; }

@-webkit-keyframes flash {
  from, 50%, to {
    opacity: 1; }
  25%, 75% {
    opacity: 0; } }

@keyframes flash {
  from, 50%, to {
    opacity: 1; }
  25%, 75% {
    opacity: 0; } }

.flash {
  -webkit-animation-name: flash;
  animation-name: flash; }

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@-webkit-keyframes pulse {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); }
  50% {
    -webkit-transform: scale3d(1.05, 1.05, 1.05);
    transform: scale3d(1.05, 1.05, 1.05); }
  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }

@keyframes pulse {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); }
  50% {
    -webkit-transform: scale3d(1.05, 1.05, 1.05);
    transform: scale3d(1.05, 1.05, 1.05); }
  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }

.pulse {
  -webkit-animation-name: pulse;
  animation-name: pulse; }

@-webkit-keyframes rubberBand {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); }
  30% {
    -webkit-transform: scale3d(1.25, 0.75, 1);
    transform: scale3d(1.25, 0.75, 1); }
  40% {
    -webkit-transform: scale3d(0.75, 1.25, 1);
    transform: scale3d(0.75, 1.25, 1); }
  50% {
    -webkit-transform: scale3d(1.15, 0.85, 1);
    transform: scale3d(1.15, 0.85, 1); }
  65% {
    -webkit-transform: scale3d(0.95, 1.05, 1);
    transform: scale3d(0.95, 1.05, 1); }
  75% {
    -webkit-transform: scale3d(1.05, 0.95, 1);
    transform: scale3d(1.05, 0.95, 1); }
  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }

@keyframes rubberBand {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); }
  30% {
    -webkit-transform: scale3d(1.25, 0.75, 1);
    transform: scale3d(1.25, 0.75, 1); }
  40% {
    -webkit-transform: scale3d(0.75, 1.25, 1);
    transform: scale3d(0.75, 1.25, 1); }
  50% {
    -webkit-transform: scale3d(1.15, 0.85, 1);
    transform: scale3d(1.15, 0.85, 1); }
  65% {
    -webkit-transform: scale3d(0.95, 1.05, 1);
    transform: scale3d(0.95, 1.05, 1); }
  75% {
    -webkit-transform: scale3d(1.05, 0.95, 1);
    transform: scale3d(1.05, 0.95, 1); }
  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }

.rubberBand {
  -webkit-animation-name: rubberBand;
  animation-name: rubberBand; }

@-webkit-keyframes shake {
  from, to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  10%, 30%, 50%, 70%, 90% {
    -webkit-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0); }
  20%, 40%, 60%, 80% {
    -webkit-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0); } }

@keyframes shake {
  from, to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  10%, 30%, 50%, 70%, 90% {
    -webkit-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0); }
  20%, 40%, 60%, 80% {
    -webkit-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0); } }

.shake {
  -webkit-animation-name: shake;
  animation-name: shake; }

@-webkit-keyframes headShake {
  0% {
    -webkit-transform: translateX(0);
    transform: translateX(0); }
  6.5% {
    -webkit-transform: translateX(-6px) rotateY(-9deg);
    transform: translateX(-6px) rotateY(-9deg); }
  18.5% {
    -webkit-transform: translateX(5px) rotateY(7deg);
    transform: translateX(5px) rotateY(7deg); }
  31.5% {
    -webkit-transform: translateX(-3px) rotateY(-5deg);
    transform: translateX(-3px) rotateY(-5deg); }
  43.5% {
    -webkit-transform: translateX(2px) rotateY(3deg);
    transform: translateX(2px) rotateY(3deg); }
  50% {
    -webkit-transform: translateX(0);
    transform: translateX(0); } }

@keyframes headShake {
  0% {
    -webkit-transform: translateX(0);
    transform: translateX(0); }
  6.5% {
    -webkit-transform: translateX(-6px) rotateY(-9deg);
    transform: translateX(-6px) rotateY(-9deg); }
  18.5% {
    -webkit-transform: translateX(5px) rotateY(7deg);
    transform: translateX(5px) rotateY(7deg); }
  31.5% {
    -webkit-transform: translateX(-3px) rotateY(-5deg);
    transform: translateX(-3px) rotateY(-5deg); }
  43.5% {
    -webkit-transform: translateX(2px) rotateY(3deg);
    transform: translateX(2px) rotateY(3deg); }
  50% {
    -webkit-transform: translateX(0);
    transform: translateX(0); } }

.headShake {
  -webkit-animation-timing-function: ease-in-out;
  animation-timing-function: ease-in-out;
  -webkit-animation-name: headShake;
  animation-name: headShake; }

@-webkit-keyframes swing {
  20% {
    -webkit-transform: rotate3d(0, 0, 1, 15deg);
    transform: rotate3d(0, 0, 1, 15deg); }
  40% {
    -webkit-transform: rotate3d(0, 0, 1, -10deg);
    transform: rotate3d(0, 0, 1, -10deg); }
  60% {
    -webkit-transform: rotate3d(0, 0, 1, 5deg);
    transform: rotate3d(0, 0, 1, 5deg); }
  80% {
    -webkit-transform: rotate3d(0, 0, 1, -5deg);
    transform: rotate3d(0, 0, 1, -5deg); }
  to {
    -webkit-transform: rotate3d(0, 0, 1, 0deg);
    transform: rotate3d(0, 0, 1, 0deg); } }

@keyframes swing {
  20% {
    -webkit-transform: rotate3d(0, 0, 1, 15deg);
    transform: rotate3d(0, 0, 1, 15deg); }
  40% {
    -webkit-transform: rotate3d(0, 0, 1, -10deg);
    transform: rotate3d(0, 0, 1, -10deg); }
  60% {
    -webkit-transform: rotate3d(0, 0, 1, 5deg);
    transform: rotate3d(0, 0, 1, 5deg); }
  80% {
    -webkit-transform: rotate3d(0, 0, 1, -5deg);
    transform: rotate3d(0, 0, 1, -5deg); }
  to {
    -webkit-transform: rotate3d(0, 0, 1, 0deg);
    transform: rotate3d(0, 0, 1, 0deg); } }

.swing {
  -webkit-transform-origin: top center;
  transform-origin: top center;
  -webkit-animation-name: swing;
  animation-name: swing; }

@-webkit-keyframes tada {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); }
  10%, 20% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); }
  30%, 50%, 70%, 90% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); }
  40%, 60%, 80% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); }
  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }

@keyframes tada {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); }
  10%, 20% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); }
  30%, 50%, 70%, 90% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); }
  40%, 60%, 80% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); }
  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }

.tada {
  -webkit-animation-name: tada;
  animation-name: tada; }

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@-webkit-keyframes wobble {
  from {
    -webkit-transform: none;
    transform: none; }
  15% {
    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); }
  30% {
    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); }
  45% {
    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); }
  60% {
    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); }
  75% {
    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); }
  to {
    -webkit-transform: none;
    transform: none; } }

@keyframes wobble {
  from {
    -webkit-transform: none;
    transform: none; }
  15% {
    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); }
  30% {
    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); }
  45% {
    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); }
  60% {
    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); }
  75% {
    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); }
  to {
    -webkit-transform: none;
    transform: none; } }

.wobble {
  -webkit-animation-name: wobble;
  animation-name: wobble; }

@-webkit-keyframes jello {
  from, 11.1%, to {
    -webkit-transform: none;
    transform: none; }
  22.2% {
    -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
    transform: skewX(-12.5deg) skewY(-12.5deg); }
  33.3% {
    -webkit-transform: skewX(6.25deg) skewY(6.25deg);
    transform: skewX(6.25deg) skewY(6.25deg); }
  44.4% {
    -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
    transform: skewX(-3.125deg) skewY(-3.125deg); }
  55.5% {
    -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
    transform: skewX(1.5625deg) skewY(1.5625deg); }
  66.6% {
    -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
    transform: skewX(-0.78125deg) skewY(-0.78125deg); }
  77.7% {
    -webkit-transform: skewX(0.39062deg) skewY(0.39062deg);
    transform: skewX(0.39062deg) skewY(0.39062deg); }
  88.8% {
    -webkit-transform: skewX(-0.19531deg) skewY(-0.19531deg);
    transform: skewX(-0.19531deg) skewY(-0.19531deg); } }

@keyframes jello {
  from, 11.1%, to {
    -webkit-transform: none;
    transform: none; }
  22.2% {
    -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
    transform: skewX(-12.5deg) skewY(-12.5deg); }
  33.3% {
    -webkit-transform: skewX(6.25deg) skewY(6.25deg);
    transform: skewX(6.25deg) skewY(6.25deg); }
  44.4% {
    -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
    transform: skewX(-3.125deg) skewY(-3.125deg); }
  55.5% {
    -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
    transform: skewX(1.5625deg) skewY(1.5625deg); }
  66.6% {
    -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
    transform: skewX(-0.78125deg) skewY(-0.78125deg); }
  77.7% {
    -webkit-transform: skewX(0.39062deg) skewY(0.39062deg);
    transform: skewX(0.39062deg) skewY(0.39062deg); }
  88.8% {
    -webkit-transform: skewX(-0.19531deg) skewY(-0.19531deg);
    transform: skewX(-0.19531deg) skewY(-0.19531deg); } }

.jello {
  -webkit-animation-name: jello;
  animation-name: jello;
  -webkit-transform-origin: center;
  transform-origin: center; }

@-webkit-keyframes bounceIn {
  from, 20%, 40%, 60%, 80%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); }
  20% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1); }
  40% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9);
    transform: scale3d(0.9, 0.9, 0.9); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(1.03, 1.03, 1.03);
    transform: scale3d(1.03, 1.03, 1.03); }
  80% {
    -webkit-transform: scale3d(0.97, 0.97, 0.97);
    transform: scale3d(0.97, 0.97, 0.97); }
  to {
    opacity: 1;
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }

@keyframes bounceIn {
  from, 20%, 40%, 60%, 80%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); }
  20% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1); }
  40% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9);
    transform: scale3d(0.9, 0.9, 0.9); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(1.03, 1.03, 1.03);
    transform: scale3d(1.03, 1.03, 1.03); }
  80% {
    -webkit-transform: scale3d(0.97, 0.97, 0.97);
    transform: scale3d(0.97, 0.97, 0.97); }
  to {
    opacity: 1;
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1); } }

.bounceIn {
  -webkit-animation-name: bounceIn;
  animation-name: bounceIn; }

@-webkit-keyframes bounceInDown {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, -3000px, 0);
    transform: translate3d(0, -3000px, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, 25px, 0);
    transform: translate3d(0, 25px, 0); }
  75% {
    -webkit-transform: translate3d(0, -10px, 0);
    transform: translate3d(0, -10px, 0); }
  90% {
    -webkit-transform: translate3d(0, 5px, 0);
    transform: translate3d(0, 5px, 0); }
  to {
    -webkit-transform: none;
    transform: none; } }

@keyframes bounceInDown {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, -3000px, 0);
    transform: translate3d(0, -3000px, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, 25px, 0);
    transform: translate3d(0, 25px, 0); }
  75% {
    -webkit-transform: translate3d(0, -10px, 0);
    transform: translate3d(0, -10px, 0); }
  90% {
    -webkit-transform: translate3d(0, 5px, 0);
    transform: translate3d(0, 5px, 0); }
  to {
    -webkit-transform: none;
    transform: none; } }

.bounceInDown {
  -webkit-animation-name: bounceInDown;
  animation-name: bounceInDown; }

@-webkit-keyframes bounceInLeft {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-3000px, 0, 0);
    transform: translate3d(-3000px, 0, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(25px, 0, 0);
    transform: translate3d(25px, 0, 0); }
  75% {
    -webkit-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0); }
  90% {
    -webkit-transform: translate3d(5px, 0, 0);
    transform: translate3d(5px, 0, 0); }
  to {
    -webkit-transform: none;
    transform: none; } }

@keyframes bounceInLeft {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-3000px, 0, 0);
    transform: translate3d(-3000px, 0, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(25px, 0, 0);
    transform: translate3d(25px, 0, 0); }
  75% {
    -webkit-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0); }
  90% {
    -webkit-transform: translate3d(5px, 0, 0);
    transform: translate3d(5px, 0, 0); }
  to {
    -webkit-transform: none;
    transform: none; } }

.bounceInLeft {
  -webkit-animation-name: bounceInLeft;
  animation-name: bounceInLeft; }

@-webkit-keyframes bounceInRight {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  from {
    opacity: 0;
    -webkit-transform: translate3d(3000px, 0, 0);
    transform: translate3d(3000px, 0, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(-25px, 0, 0);
    transform: translate3d(-25px, 0, 0); }
  75% {
    -webkit-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0); }
  90% {
    -webkit-transform: translate3d(-5px, 0, 0);
    transform: translate3d(-5px, 0, 0); }
  to {
    -webkit-transform: none;
    transform: none; } }

@keyframes bounceInRight {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  from {
    opacity: 0;
    -webkit-transform: translate3d(3000px, 0, 0);
    transform: translate3d(3000px, 0, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(-25px, 0, 0);
    transform: translate3d(-25px, 0, 0); }
  75% {
    -webkit-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0); }
  90% {
    -webkit-transform: translate3d(-5px, 0, 0);
    transform: translate3d(-5px, 0, 0); }
  to {
    -webkit-transform: none;
    transform: none; } }

.bounceInRight {
  -webkit-animation-name: bounceInRight;
  animation-name: bounceInRight; }

@-webkit-keyframes bounceInUp {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 3000px, 0);
    transform: translate3d(0, 3000px, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0);
    transform: translate3d(0, -20px, 0); }
  75% {
    -webkit-transform: translate3d(0, 10px, 0);
    transform: translate3d(0, 10px, 0); }
  90% {
    -webkit-transform: translate3d(0, -5px, 0);
    transform: translate3d(0, -5px, 0); }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

@keyframes bounceInUp {
  from, 60%, 75%, 90%, to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 3000px, 0);
    transform: translate3d(0, 3000px, 0); }
  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0);
    transform: translate3d(0, -20px, 0); }
  75% {
    -webkit-transform: translate3d(0, 10px, 0);
    transform: translate3d(0, 10px, 0); }
  90% {
    -webkit-transform: translate3d(0, -5px, 0);
    transform: translate3d(0, -5px, 0); }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

.bounceInUp {
  -webkit-animation-name: bounceInUp;
  animation-name: bounceInUp; }

@-webkit-keyframes bounceOut {
  20% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9);
    transform: scale3d(0.9, 0.9, 0.9); }
  50%, 55% {
    opacity: 1;
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1); }
  to {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); } }

@keyframes bounceOut {
  20% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9);
    transform: scale3d(0.9, 0.9, 0.9); }
  50%, 55% {
    opacity: 1;
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1); }
  to {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); } }

.bounceOut {
  -webkit-animation-name: bounceOut;
  animation-name: bounceOut; }

@-webkit-keyframes bounceOutDown {
  20% {
    -webkit-transform: translate3d(0, 10px, 0);
    transform: translate3d(0, 10px, 0); }
  40%, 45% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0);
    transform: translate3d(0, -20px, 0); }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0); } }

@keyframes bounceOutDown {
  20% {
    -webkit-transform: translate3d(0, 10px, 0);
    transform: translate3d(0, 10px, 0); }
  40%, 45% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0);
    transform: translate3d(0, -20px, 0); }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0); } }

.bounceOutDown {
  -webkit-animation-name: bounceOutDown;
  animation-name: bounceOutDown; }

@-webkit-keyframes bounceOutLeft {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(20px, 0, 0);
    transform: translate3d(20px, 0, 0); }
  to {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0); } }

@keyframes bounceOutLeft {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(20px, 0, 0);
    transform: translate3d(20px, 0, 0); }
  to {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0); } }

.bounceOutLeft {
  -webkit-animation-name: bounceOutLeft;
  animation-name: bounceOutLeft; }

@-webkit-keyframes bounceOutRight {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(-20px, 0, 0);
    transform: translate3d(-20px, 0, 0); }
  to {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0); } }

@keyframes bounceOutRight {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(-20px, 0, 0);
    transform: translate3d(-20px, 0, 0); }
  to {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0); } }

.bounceOutRight {
  -webkit-animation-name: bounceOutRight;
  animation-name: bounceOutRight; }

@-webkit-keyframes bounceOutUp {
  20% {
    -webkit-transform: translate3d(0, -10px, 0);
    transform: translate3d(0, -10px, 0); }
  40%, 45% {
    opacity: 1;
    -webkit-transform: translate3d(0, 20px, 0);
    transform: translate3d(0, 20px, 0); }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0); } }

@keyframes bounceOutUp {
  20% {
    -webkit-transform: translate3d(0, -10px, 0);
    transform: translate3d(0, -10px, 0); }
  40%, 45% {
    opacity: 1;
    -webkit-transform: translate3d(0, 20px, 0);
    transform: translate3d(0, 20px, 0); }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0); } }

.bounceOutUp {
  -webkit-animation-name: bounceOutUp;
  animation-name: bounceOutUp; }

@-webkit-keyframes fadeIn {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

@keyframes fadeIn {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

.fadeIn, .search-result-animate-in {
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn; }

@-webkit-keyframes fadeInDown {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

@keyframes fadeInDown {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

.fadeInDown {
  -webkit-animation-name: fadeInDown;
  animation-name: fadeInDown; }

@-webkit-keyframes fadeInDownBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

@keyframes fadeInDownBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

.fadeInDownBig {
  -webkit-animation-name: fadeInDownBig;
  animation-name: fadeInDownBig; }

@-webkit-keyframes fadeInLeft {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

@keyframes fadeInLeft {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

.fadeInLeft {
  -webkit-animation-name: fadeInLeft;
  animation-name: fadeInLeft; }

@-webkit-keyframes fadeInLeftBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

@keyframes fadeInLeftBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

.fadeInLeftBig {
  -webkit-animation-name: fadeInLeftBig;
  animation-name: fadeInLeftBig; }

@-webkit-keyframes fadeInRight {
  from {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

@keyframes fadeInRight {
  from {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

.fadeInRight {
  -webkit-animation-name: fadeInRight;
  animation-name: fadeInRight; }

@-webkit-keyframes fadeInRightBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

@keyframes fadeInRightBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

.fadeInRightBig {
  -webkit-animation-name: fadeInRightBig;
  animation-name: fadeInRightBig; }

@-webkit-keyframes fadeInUp {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

@keyframes fadeInUp {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

.fadeInUp {
  -webkit-animation-name: fadeInUp;
  animation-name: fadeInUp; }

@-webkit-keyframes fadeInUpBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

@keyframes fadeInUpBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

.fadeInUpBig {
  -webkit-animation-name: fadeInUpBig;
  animation-name: fadeInUpBig; }

@-webkit-keyframes fadeOut {
  from {
    opacity: 1; }
  to {
    opacity: 0; } }

@keyframes fadeOut {
  from {
    opacity: 1; }
  to {
    opacity: 0; } }

.fadeOut {
  -webkit-animation-name: fadeOut;
  animation-name: fadeOut; }

@-webkit-keyframes fadeOutDown {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0); } }

@keyframes fadeOutDown {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0); } }

.fadeOutDown {
  -webkit-animation-name: fadeOutDown;
  animation-name: fadeOutDown; }

@-webkit-keyframes fadeOutDownBig {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0); } }

@keyframes fadeOutDownBig {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0); } }

.fadeOutDownBig {
  -webkit-animation-name: fadeOutDownBig;
  animation-name: fadeOutDownBig; }

@-webkit-keyframes fadeOutLeft {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0); } }

@keyframes fadeOutLeft {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0); } }

.fadeOutLeft {
  -webkit-animation-name: fadeOutLeft;
  animation-name: fadeOutLeft; }

@-webkit-keyframes fadeOutLeftBig {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0); } }

@keyframes fadeOutLeftBig {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0); } }

.fadeOutLeftBig {
  -webkit-animation-name: fadeOutLeftBig;
  animation-name: fadeOutLeftBig; }

@-webkit-keyframes fadeOutRight {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0); } }

@keyframes fadeOutRight {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0); } }

.fadeOutRight {
  -webkit-animation-name: fadeOutRight;
  animation-name: fadeOutRight; }

@-webkit-keyframes fadeOutRightBig {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0); } }

@keyframes fadeOutRightBig {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0); } }

.fadeOutRightBig {
  -webkit-animation-name: fadeOutRightBig;
  animation-name: fadeOutRightBig; }

@-webkit-keyframes fadeOutUp {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); } }

@keyframes fadeOutUp {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); } }

.fadeOutUp {
  -webkit-animation-name: fadeOutUp;
  animation-name: fadeOutUp; }

@-webkit-keyframes fadeOutUpBig {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0); } }

@keyframes fadeOutUpBig {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0); } }

.fadeOutUpBig {
  -webkit-animation-name: fadeOutUpBig;
  animation-name: fadeOutUpBig; }

@-webkit-keyframes flip {
  from {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out; }
  40% {
    -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out; }
  50% {
    -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  80% {
    -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
    transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; } }

@keyframes flip {
  from {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out; }
  40% {
    -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out; }
  50% {
    -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
    transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  80% {
    -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
    transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; } }

.animated.flip, .flip.search-result-animate-in {
  -webkit-backface-visibility: visible;
  backface-visibility: visible;
  -webkit-animation-name: flip;
  animation-name: flip; }

@-webkit-keyframes flipInX {
  from {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0; }
  40% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  60% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    opacity: 1; }
  80% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -5deg); }
  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); } }

@keyframes flipInX {
  from {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0; }
  40% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  60% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    opacity: 1; }
  80% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -5deg); }
  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); } }

.flipInX {
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
  -webkit-animation-name: flipInX;
  animation-name: flipInX; }

@-webkit-keyframes flipInY {
  from {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0; }
  40% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  60% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    opacity: 1; }
  80% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -5deg); }
  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); } }

@keyframes flipInY {
  from {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0; }
  40% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in; }
  60% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    opacity: 1; }
  80% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -5deg); }
  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); } }

.flipInY {
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
  -webkit-animation-name: flipInY;
  animation-name: flipInY; }

@-webkit-keyframes flipOutX {
  from {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); }
  30% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    opacity: 1; }
  to {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    opacity: 0; } }

@keyframes flipOutX {
  from {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); }
  30% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    opacity: 1; }
  to {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    opacity: 0; } }

.flipOutX {
  -webkit-animation-name: flipOutX;
  animation-name: flipOutX;
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important; }

@-webkit-keyframes flipOutY {
  from {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); }
  30% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    opacity: 1; }
  to {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    opacity: 0; } }

@keyframes flipOutY {
  from {
    -webkit-transform: perspective(400px);
    transform: perspective(400px); }
  30% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    opacity: 1; }
  to {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    opacity: 0; } }

.flipOutY {
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
  -webkit-animation-name: flipOutY;
  animation-name: flipOutY; }

@-webkit-keyframes lightSpeedIn {
  from {
    -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
    transform: translate3d(100%, 0, 0) skewX(-30deg);
    opacity: 0; }
  60% {
    -webkit-transform: skewX(20deg);
    transform: skewX(20deg);
    opacity: 1; }
  80% {
    -webkit-transform: skewX(-5deg);
    transform: skewX(-5deg);
    opacity: 1; }
  to {
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

@keyframes lightSpeedIn {
  from {
    -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
    transform: translate3d(100%, 0, 0) skewX(-30deg);
    opacity: 0; }
  60% {
    -webkit-transform: skewX(20deg);
    transform: skewX(20deg);
    opacity: 1; }
  80% {
    -webkit-transform: skewX(-5deg);
    transform: skewX(-5deg);
    opacity: 1; }
  to {
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

.lightSpeedIn {
  -webkit-animation-name: lightSpeedIn;
  animation-name: lightSpeedIn;
  -webkit-animation-timing-function: ease-out;
  animation-timing-function: ease-out; }

@-webkit-keyframes lightSpeedOut {
  from {
    opacity: 1; }
  to {
    -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
    transform: translate3d(100%, 0, 0) skewX(30deg);
    opacity: 0; } }

@keyframes lightSpeedOut {
  from {
    opacity: 1; }
  to {
    -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
    transform: translate3d(100%, 0, 0) skewX(30deg);
    opacity: 0; } }

.lightSpeedOut {
  -webkit-animation-name: lightSpeedOut;
  animation-name: lightSpeedOut;
  -webkit-animation-timing-function: ease-in;
  animation-timing-function: ease-in; }

@-webkit-keyframes rotateIn {
  from {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate3d(0, 0, 1, -200deg);
    transform: rotate3d(0, 0, 1, -200deg);
    opacity: 0; }
  to {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

@keyframes rotateIn {
  from {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate3d(0, 0, 1, -200deg);
    transform: rotate3d(0, 0, 1, -200deg);
    opacity: 0; }
  to {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

.rotateIn {
  -webkit-animation-name: rotateIn;
  animation-name: rotateIn; }

@-webkit-keyframes rotateInDownLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0; }
  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

@keyframes rotateInDownLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0; }
  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

.rotateInDownLeft {
  -webkit-animation-name: rotateInDownLeft;
  animation-name: rotateInDownLeft; }

@-webkit-keyframes rotateInDownRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0; }
  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

@keyframes rotateInDownRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0; }
  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

.rotateInDownRight {
  -webkit-animation-name: rotateInDownRight;
  animation-name: rotateInDownRight; }

@-webkit-keyframes rotateInUpLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0; }
  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

@keyframes rotateInUpLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0; }
  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

.rotateInUpLeft {
  -webkit-animation-name: rotateInUpLeft;
  animation-name: rotateInUpLeft; }

@-webkit-keyframes rotateInUpRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, -90deg);
    transform: rotate3d(0, 0, 1, -90deg);
    opacity: 0; }
  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

@keyframes rotateInUpRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, -90deg);
    transform: rotate3d(0, 0, 1, -90deg);
    opacity: 0; }
  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: none;
    transform: none;
    opacity: 1; } }

.rotateInUpRight {
  -webkit-animation-name: rotateInUpRight;
  animation-name: rotateInUpRight; }

@-webkit-keyframes rotateOut {
  from {
    -webkit-transform-origin: center;
    transform-origin: center;
    opacity: 1; }
  to {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate3d(0, 0, 1, 200deg);
    transform: rotate3d(0, 0, 1, 200deg);
    opacity: 0; } }

@keyframes rotateOut {
  from {
    -webkit-transform-origin: center;
    transform-origin: center;
    opacity: 1; }
  to {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate3d(0, 0, 1, 200deg);
    transform: rotate3d(0, 0, 1, 200deg);
    opacity: 0; } }

.rotateOut {
  -webkit-animation-name: rotateOut;
  animation-name: rotateOut; }

@-webkit-keyframes rotateOutDownLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    opacity: 1; }
  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0; } }

@keyframes rotateOutDownLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    opacity: 1; }
  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0; } }

.rotateOutDownLeft {
  -webkit-animation-name: rotateOutDownLeft;
  animation-name: rotateOutDownLeft; }

@-webkit-keyframes rotateOutDownRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    opacity: 1; }
  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0; } }

@keyframes rotateOutDownRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    opacity: 1; }
  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0; } }

.rotateOutDownRight {
  -webkit-animation-name: rotateOutDownRight;
  animation-name: rotateOutDownRight; }

@-webkit-keyframes rotateOutUpLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    opacity: 1; }
  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0; } }

@keyframes rotateOutUpLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    opacity: 1; }
  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0; } }

.rotateOutUpLeft {
  -webkit-animation-name: rotateOutUpLeft;
  animation-name: rotateOutUpLeft; }

@-webkit-keyframes rotateOutUpRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    opacity: 1; }
  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, 90deg);
    transform: rotate3d(0, 0, 1, 90deg);
    opacity: 0; } }

@keyframes rotateOutUpRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    opacity: 1; }
  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, 90deg);
    transform: rotate3d(0, 0, 1, 90deg);
    opacity: 0; } }

.rotateOutUpRight {
  -webkit-animation-name: rotateOutUpRight;
  animation-name: rotateOutUpRight; }

@-webkit-keyframes hinge {
  0% {
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out; }
  20%, 60% {
    -webkit-transform: rotate3d(0, 0, 1, 80deg);
    transform: rotate3d(0, 0, 1, 80deg);
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out; }
  40%, 80% {
    -webkit-transform: rotate3d(0, 0, 1, 60deg);
    transform: rotate3d(0, 0, 1, 60deg);
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    opacity: 1; }
  to {
    -webkit-transform: translate3d(0, 700px, 0);
    transform: translate3d(0, 700px, 0);
    opacity: 0; } }

@keyframes hinge {
  0% {
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out; }
  20%, 60% {
    -webkit-transform: rotate3d(0, 0, 1, 80deg);
    transform: rotate3d(0, 0, 1, 80deg);
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out; }
  40%, 80% {
    -webkit-transform: rotate3d(0, 0, 1, 60deg);
    transform: rotate3d(0, 0, 1, 60deg);
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    opacity: 1; }
  to {
    -webkit-transform: translate3d(0, 700px, 0);
    transform: translate3d(0, 700px, 0);
    opacity: 0; } }

.hinge {
  -webkit-animation-name: hinge;
  animation-name: hinge; }

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@-webkit-keyframes rollIn {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
    transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

@keyframes rollIn {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
    transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); }
  to {
    opacity: 1;
    -webkit-transform: none;
    transform: none; } }

.rollIn {
  -webkit-animation-name: rollIn;
  animation-name: rollIn; }

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@-webkit-keyframes rollOut {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
    transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); } }

@keyframes rollOut {
  from {
    opacity: 1; }
  to {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
    transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); } }

.rollOut {
  -webkit-animation-name: rollOut;
  animation-name: rollOut; }

@-webkit-keyframes zoomIn {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); }
  50% {
    opacity: 1; } }

@keyframes zoomIn {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); }
  50% {
    opacity: 1; } }

.zoomIn {
  -webkit-animation-name: zoomIn;
  animation-name: zoomIn; }

@-webkit-keyframes zoomInDown {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

@keyframes zoomInDown {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

.zoomInDown {
  -webkit-animation-name: zoomInDown;
  animation-name: zoomInDown; }

@-webkit-keyframes zoomInLeft {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

@keyframes zoomInLeft {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

.zoomInLeft {
  -webkit-animation-name: zoomInLeft;
  animation-name: zoomInLeft; }

@-webkit-keyframes zoomInRight {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

@keyframes zoomInRight {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

.zoomInRight {
  -webkit-animation-name: zoomInRight;
  animation-name: zoomInRight; }

@-webkit-keyframes zoomInUp {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

@keyframes zoomInUp {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

.zoomInUp {
  -webkit-animation-name: zoomInUp;
  animation-name: zoomInUp; }

@-webkit-keyframes zoomOut {
  from {
    opacity: 1; }
  50% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); }
  to {
    opacity: 0; } }

@keyframes zoomOut {
  from {
    opacity: 1; }
  50% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3); }
  to {
    opacity: 0; } }

.zoomOut {
  -webkit-animation-name: zoomOut;
  animation-name: zoomOut; }

@-webkit-keyframes zoomOutDown {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  to {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

@keyframes zoomOutDown {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  to {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

.zoomOutDown {
  -webkit-animation-name: zoomOutDown;
  animation-name: zoomOutDown; }

@-webkit-keyframes zoomOutLeft {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); }
  to {
    opacity: 0;
    -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);
    transform: scale(0.1) translate3d(-2000px, 0, 0);
    -webkit-transform-origin: left center;
    transform-origin: left center; } }

@keyframes zoomOutLeft {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); }
  to {
    opacity: 0;
    -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);
    transform: scale(0.1) translate3d(-2000px, 0, 0);
    -webkit-transform-origin: left center;
    transform-origin: left center; } }

.zoomOutLeft {
  -webkit-animation-name: zoomOutLeft;
  animation-name: zoomOutLeft; }

@-webkit-keyframes zoomOutRight {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); }
  to {
    opacity: 0;
    -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);
    transform: scale(0.1) translate3d(2000px, 0, 0);
    -webkit-transform-origin: right center;
    transform-origin: right center; } }

@keyframes zoomOutRight {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); }
  to {
    opacity: 0;
    -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);
    transform: scale(0.1) translate3d(2000px, 0, 0);
    -webkit-transform-origin: right center;
    transform-origin: right center; } }

.zoomOutRight {
  -webkit-animation-name: zoomOutRight;
  animation-name: zoomOutRight; }

@-webkit-keyframes zoomOutUp {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  to {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

@keyframes zoomOutUp {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  to {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

.zoomOutUp {
  -webkit-animation-name: zoomOutUp;
  animation-name: zoomOutUp; }

@-webkit-keyframes slideInDown {
  from {
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
    visibility: visible; }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

@keyframes slideInDown {
  from {
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
    visibility: visible; }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

.slideInDown {
  -webkit-animation-name: slideInDown;
  animation-name: slideInDown; }

@-webkit-keyframes slideInLeft {
  from {
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    visibility: visible; }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

@keyframes slideInLeft {
  from {
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    visibility: visible; }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

.slideInLeft {
  -webkit-animation-name: slideInLeft;
  animation-name: slideInLeft; }

@-webkit-keyframes slideInRight {
  from {
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
    visibility: visible; }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

@keyframes slideInRight {
  from {
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
    visibility: visible; }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

.slideInRight {
  -webkit-animation-name: slideInRight;
  animation-name: slideInRight; }

@-webkit-keyframes slideInUp {
  from {
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
    visibility: visible; }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

@keyframes slideInUp {
  from {
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
    visibility: visible; }
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); } }

.slideInUp {
  -webkit-animation-name: slideInUp;
  animation-name: slideInUp; }

@-webkit-keyframes slideOutDown {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  to {
    visibility: hidden;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0); } }

@keyframes slideOutDown {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  to {
    visibility: hidden;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0); } }

.slideOutDown {
  -webkit-animation-name: slideOutDown;
  animation-name: slideOutDown; }

@-webkit-keyframes slideOutLeft {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  to {
    visibility: hidden;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0); } }

@keyframes slideOutLeft {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  to {
    visibility: hidden;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0); } }

.slideOutLeft {
  -webkit-animation-name: slideOutLeft;
  animation-name: slideOutLeft; }

@-webkit-keyframes slideOutRight {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  to {
    visibility: hidden;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0); } }

@keyframes slideOutRight {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  to {
    visibility: hidden;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0); } }

.slideOutRight {
  -webkit-animation-name: slideOutRight;
  animation-name: slideOutRight; }

@-webkit-keyframes slideOutUp {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  to {
    visibility: hidden;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); } }

@keyframes slideOutUp {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
  to {
    visibility: hidden;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0); } }

.slideOutUp {
  -webkit-animation-name: slideOutUp;
  animation-name: slideOutUp; }

/*doc
---
title: Label Mixins
name: d-mixin-mixin
category: Visual Treatments - Label
---

Use the label-match mixin to create custom .label modifier classes

```sass_example
.label {
    .partial-match {
        @include label-match(
            // This options sets label padding
            $padding:rem-calc(5) rem-calc(10),
            // This option sets label text-size
            $text-size:13px,
            // This option sets label background-color
            $bg: $white,
            // This option sets the radius of the label
            $radius:0,
            // Color of the text.
            $color: $black
        )
    }
}
```

*/
/*doc
---
title: Shadow (mixin)
name: a-mixins
category: Visual Treatments - Shadow
authors: Will Ferguson
---

Add a box-shadow eg. `@include box-shadow(0, 0, 5px, 0, #aaa, false);`

```sass_example
@mixin shadow($type) {
    box-shadow: 0 0 rem-calc(5) 0 rgba(0, 0, 0, 0.5);
}

@mixin box-shadow($top, $left, $blur, $size, $color, $inset: false) {
    @if $inset {
        -webkit-box-shadow:inset $top $left $blur $size $color;
        -moz-box-shadow:inset $top $left $blur $size $color;
        box-shadow:inset $top $left $blur $size $color;
    } @else {
        -webkit-box-shadow: $top $left $blur $size $color;
        -moz-box-shadow: $top $left $blur $size $color;
        box-shadow: $top $left $blur $size $color;
    }
}
```
*/
/*doc
---
title: Vertical Center Inner (mixin)
name: i-vertical-center-inner
category: Layout - Layout Helpers
---

Center align elements in a bar

```sass_example
@mixin vertical-center-inner($height,
  $include-line-height: false,
  $include-content-before: true) {
  height: $height;

  @if $include-line-height {
    line-height: $height;
  }

  > * {
    display: inline-block;
    vertical-align: middle;
  }

  @if $include-content-before {
    &:before {  // trick from: https://css-tricks.com/centering-in-the-unknown/
      content: '';
      display: inline-block;
      height: 100%;
      vertical-align: middle;
    }
  }
}
```
*/
/*doc
---
title: Vertical Align Middle (mixin)
name: j-vertical-align-middle
category: Layout - Layout Helpers
---

Vertically align element absolutely to container.  Currently being using in `.promolist` style elements to align text center to image.

```sass_example
@mixin vertical-align-middle {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  display: inline-block;
}
```
*/
/*doc
---
title: Vertical Align Middle Undo (mixin)
name: k-vertical-align-middle-undo
category: Layout - Layout Helpers
---

Undo effects of @include vertical-align-middle

```sass_example
@mixin reset-vertical-align-middle {
  position: relative;
  top: auto;
  -webkit-transform: none;
  -ms-transform: none;
  transform: none;
  display: block;
}
```
*/
/*doc
---
title: Clearfix
name: f-clearfix
category: Layout - Layout Helpers
---

Add class of `.clearfix` or use the
Mixin for adding clearfix

```sass_example?show-code=true
@include clearfix();
```
*/
/*doc
---
title: Border Triangle (mixin)
name: a-mixin
category: Visual Treatments - Arrow
authors: Pablo Lazo
---
Used to make a border triangle.
Examples:
<span class='stock-trend text-largest up'></span>
<span class='stock-trend text-largest down'></span>

``` sass_example
@include border-triangle('up', 20px, $green-pro, true)
```
*/
/*doc
---
title: JS Classes
name: a-visibility-js-classes
category: JavaScript - State Classes
---

Meant to be manipulated by our JS, these classes should ideally 
affect one property on an element and have the highest priority
with !important.

For component-specific states, please put them in that component's
files. This file is meant for states that may be used across
multiple components.

We should probably prefer using the HTML5 `hidden` property instead
of a custom CSS class.

```sass_example-show-code
.is-none, .is-hidden, [hidden] {
    display: none !important;
}

.is-sticky {
    @include z-index(true);
}

.is-overflow-anchor-disabled {
    overflow-anchor: none;
}

```
*/
.is-none, .is-hidden, html.no-js .hide-for-no-js-only, html.js .hide-for-js-only, [hidden] {
  display: none !important; }

.is-sticky {
  z-index: 400 !important; }

.is-overflow-anchor-disabled {
  overflow-anchor: none; }

@media not screen and (min-width: 64em) {
  html.has-no-scroll {
    overflow: auto !important; }
    html.has-no-scroll body {
      overflow: hidden !important; } }

pre[data-dump] {
  display: none;
  background: Yellow;
  padding: 5px;
  width: 100%;
  overflow: auto; }

/*doc
---
title: All Colors
name: a-colors
category: Colors - Colors
---


<p class="block-loose" style="max-width: 500px;">Coded by: <strong>Houda Benqassem </strong> </p>
<div class="block-loose padding-left-normal padding-top-tight" style="border: 1px solid #ddd; background-color:#f4f4f4;">
        <p class="block-tight text-small">DESIGNER TOOLS</p>
        <p class="block-tight text-small text-muted text-left" > <a href="http://webdesign.usnews.com/_Resources/Colors/">Photoshop Swatches</a></p>
        <p class="block-tight text-small text-muted text-left"> <a href="https://docs.google.com/document/d/19nMTGUcDEVpVXD_UXhrhJY8KOUO4sfA3Kh9hxA30XJA/edit">Installation Guide</a></p>
</div>

Please add new colors to <code class = "styleguide">_variables.scss</code>




<ul class="medium-block-grid-3">
{%- for colorName, colorValue in colors %}
  <li>
      <div class="small-12 columns" style="background:{{colorValue}}; border: 1px solid #ddd;"><br><br><br><br><br></div>
      <pre class="small-12 columns text-center">${{colorName}}</pre>
      <pre class="small-12 columns text-center">{{colorValue}}</pre>
  </li>
{%- endfor %}
</ul>



<h2 style="font-size: 21px; color:#333; "> Color Palette Sets</h2>
Blue Monochrome
---
<br>
<ul class="medium-block-grid-3">
    <li>
        <div class="small-12 columns" style="background:#13325d; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$blue-light</pre>
        <pre class="small-12 columns text-center">#13325d</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#2262bb; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$blue</pre>
        <pre class="small-12 columns text-center">#2262bb</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#2c7ef0; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$link-blue-light</pre>
        <pre class="small-12 columns text-center">#2c7ef0</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#c0ddf2; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$light-blue</pre>
        <pre class="small-12 columns text-center">#c0ddf2</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#c0cadd; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$light-gray</pre>
        <pre class="small-12 columns text-center">#c0cadd</pre>
    </li>
</ul>


Vibrant
---
<br>
<ul class="medium-block-grid-3">
    <li>
        <div class="small-12 columns" style="background:#2c7ef0; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$link-blue-light</pre>
        <pre class="small-12 columns text-center">#2c7ef0</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#0ABBA4; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$green-pro</pre>
        <pre class="small-12 columns text-center">#0ABBA4</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#ffc14e; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$orange-light</pre>
        <pre class="small-12 columns text-center">#ffc14e</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#D1453D; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$red</pre>
        <pre class="small-12 columns text-center">#D1453D</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#E38D13; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$orange-dark</pre>
        <pre class="small-12 columns text-center">#E38D13</pre>
    </li>
</ul>
Modern
---
<br>
<ul class="medium-block-grid-3">
    <li>
        <div class="small-12 columns" style="background:#2262bb; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$blue</pre>
        <pre class="small-12 columns text-center">#2262bb</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#ffc14e; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$orange-light</pre>
        <pre class="small-12 columns text-center">#ffc14e</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#13325D; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$blue-light</pre>
        <pre class="small-12 columns text-center">#13325D</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#c0ddf2; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$light-blue</pre>
        <pre class="small-12 columns text-center">#c0ddf2</pre>
    </li>
</ul>

Island
---
<br>
<ul class="medium-block-grid-3">
    <li>
        <div class="small-12 columns" style="background:#037b6b; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$green-forest</pre>
        <pre class="small-12 columns text-center">#037b6b</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#0ABBA4; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$green-pro</pre>
        <pre class="small-12 columns text-center">#0ABBA4</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#5dd5c5; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$green-caribbean</pre>
        <pre class="small-12 columns text-center">#5dd5c5</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#ade8e0; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$green-sea-foam</pre>
        <pre class="small-12 columns text-center">#ade8e0</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#13325D; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$blue-light</pre>
        <pre class="small-12 columns text-center">#13325D</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#2262bb; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$blue</pre>
        <pre class="small-12 columns text-center">#2262bb</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#2c7ef0; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$link-blue-light</pre>
        <pre class="small-12 columns text-center">#2c7ef0</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#c0cadd; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$light-gray</pre>
        <pre class="small-12 columns text-center">#c0cadd</pre>
    </li>
</ul>

StopLight
---
<br>
<ul class="medium-block-grid-3">
    <li>
        <div class="small-12 columns" style="background:#0ABBA4; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$green-pro</pre>
        <pre class="small-12 columns text-center">#0ABBA4</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#E38D13; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$orange-dark</pre>
        <pre class="small-12 columns text-center">#E38D13</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#D1453D; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$red</pre>
        <pre class="small-12 columns text-center">#D1453D</pre>
    </li>
</ul>

Full Set
---
<br>
<ul class="medium-block-grid-3">
    <li>
        <div class="small-12 columns" style="background:#2262BB; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$blue</pre>
        <pre class="small-12 columns text-center">#2262BB</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#0ABBA4; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$green-pro</pre>
        <pre class="small-12 columns text-center">#0ABBA4</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#ffc14e; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$orange-light</pre>
        <pre class="small-12 columns text-center">#ffc14e</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#D1453D; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$red</pre>
        <pre class="small-12 columns text-center">#D1453D</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#E38D13; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$orange-dark</pre>
        <pre class="small-12 columns text-center">#E38D13</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#13325d; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$blue-light</pre>
        <pre class="small-12 columns text-center">#13325d</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#037b6b; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$green-forest</pre>
        <pre class="small-12 columns text-center">#037b6b</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#8d0c04; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$red-brick</pre>
        <pre class="small-12 columns text-center">#8d0c04</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#a6670d; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$mustard</pre>
        <pre class="small-12 columns text-center">#a6670d</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#333333; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$oil</pre>
        <pre class="small-12 columns text-center">#333333</pre>
    </li>
</ul>
<h2 style="font-size: 21px; color:#333; "> Gradient Palette Sets</h2><br>
---
Climate Gradient
---
<div class="block-loose flex-large-12" style="height:70px;background: -webkit-linear-gradient(left,#D1453D,#E38D13,#fef6c8,#EAF0F1,#2c7ef0); background: -o-linear-gradient(left,#D1453D,#E38D13,#EAF0F1,#2c7ef0);background: -moz-linear-gradient(left,#D1453D,#E38D13,#EAF0F1,#2c7ef0);background: linear-gradient(to right, #D1453D,#E38D13,#EAF0F1,#2c7ef0);"></div>
<ul class="medium-block-grid-3">
    <li>
        <div class="small-12 columns" style="background:#D1453D; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$red</pre>
        <pre class="small-12 columns text-center">#D1453D </pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#E38D13; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$orange-dark</pre>
        <pre class="small-12 columns text-center">#E38D13 </pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#fef6c8; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$yellow-light</pre>
        <pre class="small-12 columns text-center">#fef6c8</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#EAF0F1; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$background-blue</pre>
        <pre class="small-12 columns text-center">#EAF0F1</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#2c7ef0; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$link-blue-light</pre>
        <pre class="small-12 columns text-center">#2c7ef0</pre>
    </li>
</ul>

Heat Map Gradient
---
<br>
<div class="block-loose flex-large-12" style="height:70px;background: -webkit-linear-gradient(left,#8d0c04,#D1453D,#fef6c8,#ade8e0,#0ABBA4,#037b6b); background: -o-linear-gradient(left,#8d0c04,#D1453D,#fef6c8,#ade8e0,#0ABBA4,#037b6b);background: -moz-linear-gradient(left,#8d0c04,#D1453D,#fef6c8,#ade8e0,#0ABBA4,#037b6b);background: linear-gradient(to right, #8d0c04,#D1453D,#fef6c8,#ade8e0,#0ABBA4,#037b6b);"></div>
<ul class="medium-block-grid-3">
    <li>
        <div class="small-12 columns" style="background:#8d0c04; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$red-brick</pre>
        <pre class="small-12 columns text-center">#8d0c04</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#D1453D; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$red</pre>
        <pre class="small-12 columns text-center">#D1453D </pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#fef6c8; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$yellow-light</pre>
        <pre class="small-12 columns text-center"> #fef6c8 </pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#ade8e0; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$green-sea-foam</pre>
        <pre class="small-12 columns text-center">#ade8e0</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#0ABBA4; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$green-pro</pre>
        <pre class="small-12 columns text-center">#0ABBA4</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#037b6b; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$green-forest</pre>
        <pre class="small-12 columns text-center">#037b6b</pre>
    </li>
</ul>

Blue Gradient
---
<br>
<div class="block-loose flex-large-8" style="height:70px;background: -webkit-linear-gradient(left,#2262BB, #c0ddf2); background: -o-linear-gradient(left,#2262BB, #c0ddf2);background: -moz-linear-gradient(left,#2262BB, #c0ddf2);background: linear-gradient(to right, #2262BB, #c0ddf2);"></div>
<ul class="medium-block-grid-3">
    <li>
        <div class="small-12 columns" style="background:#2262BB; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$blue</pre>
        <pre class="small-12 columns text-center">#2262BB</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#c0ddf2; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$light-blue</pre>
        <pre class="small-12 columns text-center">#c0ddf2</pre>
    </li>
</ul>
Green Gradient
---
<br>
<div class="block-loose flex-large-8" style="height:70px;background: -webkit-linear-gradient(left,#037b6b, #ade8e0); background: -o-linear-gradient(left,#037b6b, #ade8e0);background: -moz-linear-gradient(left,#037b6b, #ade8e0);background: linear-gradient(to right, #037b6b, #ade8e0);"></div>
<ul class="medium-block-grid-3">
    <li>
        <div class="small-12 columns" style="background:#037b6b; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$green-forest</pre>
        <pre class="small-12 columns text-center">#037b6b</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#ade8e0; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$green-sea-foam</pre>
        <pre class="small-12 columns text-center">#ade8e0</pre>
    </li>
</ul>
Orange Gradient
---
<br>
<div class="block-loose flex-large-8" style="height:70px;background: -webkit-linear-gradient(left,#E38D13, #FFF5E5); background: -o-linear-gradient(left,#E38D13, #FFF5E5);background: -moz-linear-gradient(left,#E38D13, #FFF5E5);background: linear-gradient(to right,#E38D13, #FFF5E5);"></div>
<ul class="medium-block-grid-3">
    <li>
        <div class="small-12 columns" style="background:#E38D13; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$orange-dark</pre>
        <pre class="small-12 columns text-center">#E38D13</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#FFF5E5; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$background-yellow</pre>
        <pre class="small-12 columns text-center">#FFF5E5</pre>
    </li>
</ul>
Red Gradient
---
<br>
<div class="block-loose flex-large-8" style="height:70px;background: -webkit-linear-gradient(left,#8d0c04, #F06E65); background: -o-linear-gradient(left,#8d0c04, #F06E65);background: -moz-linear-gradient(left,#8d0c04, #F06E65);background: linear-gradient(to right,#8d0c04, #F06E65);"></div>
<ul class="medium-block-grid-3">
    <li>
        <div class="small-12 columns" style="background:#8d0c04; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$red-brick</pre>
        <pre class="small-12 columns text-center">#8d0c04</pre>
    </li>
    <li>
        <div class="small-12 columns" style="background:#F06E65; border: 1px solid #ddd;"><br><br><br><br><br></div>
        <pre class="small-12 columns text-center">$red-con</pre>
        <pre class="small-12 columns text-center">#F06E65</pre>
    </li>
</ul>

```sass_example
@ref-doc Global
// We use these to show percentage match in USN Rankings score in _label.scss
$percent-25-color: $orange-dark;
$percent-50-color: $yellow;
$percent-75-color: $green-dark;
$percent-100-color: $green-light;

// Ad colors
$brandfuse-yellow: #ffc611;

```
*/
/*doc
---
title: Background Colors
name: b-colors
category: Colors - Colors
selectors:
    - .jet-black
    - .soft-black
    - .silver-gray
    - .smoke-gray
    - .smoke-for-small-only
    - .white
    - .transparent
    - .bg-iron
    - .bg-gainsboro
---

We are using color class names to specify that the background color and font colors will be set to a particular color scheme:

`.jet-black`, `.soft-black`, `.transparent`, `.white`, `.smoke-gray`, `.bg-iron`, `.bg-blue`, `.bg-steel-blue-light`, `bg-gainsboro`
 */
.bg-gainsboro {
  background-color: #DDDDDD; }

.bg-iron {
  background-color: #CCCCCC; }

.bg-blue {
  background-color: #2262bb; }

.bg-blue-dark {
  background-color: #10294B; }

.bg-steel-blue-light {
  background-color: #d9e4e6; }

.bg-background-blue {
  background-color: #EAF0F1; }

.bg-link-blue-dark {
  background-color: #1552a8; }

div.jet-black {
  background-color: #222222; }

div.soft-black {
  background-color: #1a1a1a; }

div.silver-gray {
  background-color: #e1e1e1; }

.bg-smoke-gray, .smoke-gray {
  background-color: #f4f4f4; }

div.smoke {
  background-color: #eeeeee; }

@media only screen {
  div.smoke-for-small {
    background-color: #eeeeee; } }

@media only screen and (max-width: 40em) {
  div.smoke-for-small-only {
    background-color: #eeeeee; } }

@media only screen and (min-width: 40.0625em) {
  div.smoke-for-medium {
    background-color: #eeeeee; } }

@media only screen and (min-width: 40.0625em) {
  div.smoke-for-medium-up {
    background-color: #eeeeee; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  div.smoke-for-medium-only {
    background-color: #eeeeee; } }

@media only screen and (min-width: 64em) {
  div.smoke-for-large {
    background-color: #eeeeee; } }

@media only screen and (min-width: 64em) {
  div.smoke-for-large-up {
    background-color: #eeeeee; } }

div.background-blue {
  background-color: #EAF0F1; }

@media only screen {
  div.background-blue-for-small {
    background-color: #EAF0F1; } }

@media only screen and (max-width: 40em) {
  div.background-blue-for-small-only {
    background-color: #EAF0F1; } }

@media only screen and (min-width: 40.0625em) {
  div.background-blue-for-medium {
    background-color: #EAF0F1; } }

@media only screen and (min-width: 40.0625em) {
  div.background-blue-for-medium-up {
    background-color: #EAF0F1; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  div.background-blue-for-medium-only {
    background-color: #EAF0F1; } }

@media only screen and (min-width: 64em) {
  div.background-blue-for-large {
    background-color: #EAF0F1; } }

@media only screen and (min-width: 64em) {
  div.background-blue-for-large-up {
    background-color: #EAF0F1; } }

div.green-pro {
  background-color: #0ABBA4; }

@media only screen {
  div.green-pro-for-small {
    background-color: #0ABBA4; } }

@media only screen and (max-width: 40em) {
  div.green-pro-for-small-only {
    background-color: #0ABBA4; } }

@media only screen and (min-width: 40.0625em) {
  div.green-pro-for-medium {
    background-color: #0ABBA4; } }

@media only screen and (min-width: 40.0625em) {
  div.green-pro-for-medium-up {
    background-color: #0ABBA4; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  div.green-pro-for-medium-only {
    background-color: #0ABBA4; } }

@media only screen and (min-width: 64em) {
  div.green-pro-for-large {
    background-color: #0ABBA4; } }

@media only screen and (min-width: 64em) {
  div.green-pro-for-large-up {
    background-color: #0ABBA4; } }

div.green-forest {
  background-color: #037b6b; }

@media only screen {
  div.green-forest-for-small {
    background-color: #037b6b; } }

@media only screen and (max-width: 40em) {
  div.green-forest-for-small-only {
    background-color: #037b6b; } }

@media only screen and (min-width: 40.0625em) {
  div.green-forest-for-medium {
    background-color: #037b6b; } }

@media only screen and (min-width: 40.0625em) {
  div.green-forest-for-medium-up {
    background-color: #037b6b; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  div.green-forest-for-medium-only {
    background-color: #037b6b; } }

@media only screen and (min-width: 64em) {
  div.green-forest-for-large {
    background-color: #037b6b; } }

@media only screen and (min-width: 64em) {
  div.green-forest-for-large-up {
    background-color: #037b6b; } }

div.orange-light {
  background-color: #ffc14e; }

@media only screen {
  div.orange-light-for-small {
    background-color: #ffc14e; } }

@media only screen and (max-width: 40em) {
  div.orange-light-for-small-only {
    background-color: #ffc14e; } }

@media only screen and (min-width: 40.0625em) {
  div.orange-light-for-medium {
    background-color: #ffc14e; } }

@media only screen and (min-width: 40.0625em) {
  div.orange-light-for-medium-up {
    background-color: #ffc14e; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  div.orange-light-for-medium-only {
    background-color: #ffc14e; } }

@media only screen and (min-width: 64em) {
  div.orange-light-for-large {
    background-color: #ffc14e; } }

@media only screen and (min-width: 64em) {
  div.orange-light-for-large-up {
    background-color: #ffc14e; } }

div.orange-dark {
  background-color: #E38D13; }

@media only screen {
  div.orange-dark-for-small {
    background-color: #E38D13; } }

@media only screen and (max-width: 40em) {
  div.orange-dark-for-small-only {
    background-color: #E38D13; } }

@media only screen and (min-width: 40.0625em) {
  div.orange-dark-for-medium {
    background-color: #E38D13; } }

@media only screen and (min-width: 40.0625em) {
  div.orange-dark-for-medium-up {
    background-color: #E38D13; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  div.orange-dark-for-medium-only {
    background-color: #E38D13; } }

@media only screen and (min-width: 64em) {
  div.orange-dark-for-large {
    background-color: #E38D13; } }

@media only screen and (min-width: 64em) {
  div.orange-dark-for-large-up {
    background-color: #E38D13; } }

div.red {
  background-color: #D1453D; }

@media only screen {
  div.red-for-small {
    background-color: #D1453D; } }

@media only screen and (max-width: 40em) {
  div.red-for-small-only {
    background-color: #D1453D; } }

@media only screen and (min-width: 40.0625em) {
  div.red-for-medium {
    background-color: #D1453D; } }

@media only screen and (min-width: 40.0625em) {
  div.red-for-medium-up {
    background-color: #D1453D; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  div.red-for-medium-only {
    background-color: #D1453D; } }

@media only screen and (min-width: 64em) {
  div.red-for-large {
    background-color: #D1453D; } }

@media only screen and (min-width: 64em) {
  div.red-for-large-up {
    background-color: #D1453D; } }

.blue-light {
  background-color: #13325D; }

div.white {
  background-color: #FFFFFF; }

div.transparent {
  background-color: transparent; }

div.mist {
  background-color: #ecedf1; }

.inherit-background-color {
  background-color: inherit; }

.background-red {
  background-color: #D1453D; }

.background-white {
  background-color: #FFFFFF; }

/*
    Gives a little extra room above heading items that need to be hash link targets.
    Prevents the usual sticky content from covering the item that you're jumping to.
 */
.toc-target:before {
  content: ' ';
  display: block;
  height: 80px;
  margin-top: -80px; }

.cursor-pointer {
  cursor: pointer; }

/*doc
---
title: Margin Helpers (block)
name: a-margin-helpers
category: Layout - Layout Helpers
selectors:
    - .block-flush
    - .block-tightest
    - .block-tighter
    - .block-tight
    - .block-normal
    - .block-loose
    - .block-looser
    - .block-loosest
selector_type: layout
---

We have the following `.block-*` helper classes to add margin to the bottom of any element. Keep in mind that this does
not mean that applying this class will result in the exact specified white-space. It could depend on the bottom
white-space of the last inner element of the element this is applied to. Or, it could depend on the nature (e.g. an
element's line-height) of the element directly below.

| .block-* helper classes | margin-bottom |
|------------------------|---------------|
| `.block-flush`         | rem-calc(0)   |
| `.block-tightest`      | rem-calc(2)   |
| `.block-tighter`       | rem-calc(4)   |
| `.block-tight`         | rem-calc(8)   |
| `.block-normal`        | rem-calc(16)  |
| `.block-loose`         | rem-calc(24)  |
| `.block-looser`        | rem-calc(32)  |
| `.block-loosest`       | rem-calc(48)  |

```html_example
<div class="panel block-flush">
    <pre>class="block-flush"</pre>
</div>
<div class="panel block-tightest">
    <pre>class="block-tightest"</pre>
</div>
<div class="panel block-tighter">
    <pre>class="block-tighter"</pre>
</div>
<div class="panel block-tight">
    <pre>class="block-tight"</pre>
</div>
<div class="panel block-normal">
    <pre>class="block-normal"</pre>
</div>
<div class="panel block-loose">
    <pre>class="block-loosest"</pre>
</div>
<div class="panel block-looser">
    <pre>class="block-looser"</pre>
</div>
<div class="panel block-loosest">
    <pre>class="block-loosest"</pre>
</div>
<div class="panel">
    This is just here to visually reference the whitespace above
</div>
```



#### Responsive Modifiers

In addition, these `.block-*` can be isolated to the
[breakpoint(s) variables](/structure_-_breakpoints.html#a-media-queries)
we have at our disposal. Use the following class name pattern:

`.block-{flush, tight, tighter, tightest, normal, loose, looser or loosest}-for-{small-only, medium-up, medium-only or large-up}`

Here are options for applying `.block-tight` selectively to breakpoints:

| .block-tight-for-* examples            |
|----------------------------------------|
| `.block-tight-for-small-only`          |
| `.block-tight-for-medium-up`           |
| `.block-tight-for-medium-only`         |
| `.block-tight-for-large-up`            |

So, you do something like the following ridiculous scenario which has`.block-flush`
applied to small viewports, `.block-tightest` applied to medium viewports and
`.block-loosest` applied to the the large viewports. Try it. On mobile, the panels should be flush, at medium it should
have a tiny gap, and on large the loosest gap.

```html_example
<div class="panel block-flush block-tightest-for-medium-up block-loosest-for-large-up">
    <pre>class="block-flush block-tightest-for-medium-up block-loosest-for-large-up"</pre>
</div>
<div class="panel">
    This is just here to visually reference the whitespace above
 </div>
```



#### Mixin

You should also be able to implement vertical spacing as a mixin (see the sass example).
It can take 3 arguments.

1. spacing keyword (flush thru loosest)
2. boolean for adding !important *(optional)*
3. breakpoint variable(s) (comma separated) to apply to specific breakpoint(s) *(optional)*

For example, the panel below should be *flush for large up* without using presentational classes in your html.

``` html_example
<div class="example-vertical-spacer">
    @include block('flush', true, $large-up)
</div>
<div class="panel">
    This is just here to visually reference the whitespace above
 </div>
```

``` sass_example
.example-vertical-spacer {
    @include panel();
    @include block('flush', true, $large-up)
}

.block-center {
    margin-left: auto;
    margin-right: auto;
}
```
*/
.block-flush {
  margin-bottom: 0 !important; }

.block-tightest {
  margin-bottom: 0.125rem !important; }

.block-tighter {
  margin-bottom: 0.25rem !important; }

.block-tight, .search-hud-facets-list li {
  margin-bottom: 0.5rem !important; }

.block-normal {
  margin-bottom: 0.9375rem !important; }

.block-loose {
  margin-bottom: 1.5rem !important; }

.block-looser, .zocdoc-inner .zocdoc-body .WidgetAppWrapper-bpSreJ {
  margin-bottom: 2rem !important; }

.block-loosest {
  margin-bottom: 3rem !important; }

@media only screen {
  .block-flush-for-small {
    margin-bottom: 0 !important; } }

@media only screen {
  .block-tightest-for-small {
    margin-bottom: 0.125rem !important; } }

@media only screen {
  .block-tighter-for-small {
    margin-bottom: 0.25rem !important; } }

@media only screen {
  .block-tight-for-small {
    margin-bottom: 0.5rem !important; } }

@media only screen {
  .block-normal-for-small {
    margin-bottom: 0.9375rem !important; } }

@media only screen {
  .block-loose-for-small {
    margin-bottom: 1.5rem !important; } }

@media only screen {
  .block-looser-for-small {
    margin-bottom: 2rem !important; } }

@media only screen {
  .block-loosest-for-small {
    margin-bottom: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .block-flush-for-small-only {
    margin-bottom: 0 !important; } }

@media only screen and (max-width: 40em) {
  .block-tightest-for-small-only {
    margin-bottom: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .block-tighter-for-small-only {
    margin-bottom: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .block-tight-for-small-only {
    margin-bottom: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .block-normal-for-small-only {
    margin-bottom: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .block-loose-for-small-only {
    margin-bottom: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .block-looser-for-small-only {
    margin-bottom: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .block-loosest-for-small-only {
    margin-bottom: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .block-flush-for-medium {
    margin-bottom: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .block-tightest-for-medium {
    margin-bottom: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .block-tighter-for-medium {
    margin-bottom: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .block-tight-for-medium {
    margin-bottom: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .block-normal-for-medium {
    margin-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .block-loose-for-medium {
    margin-bottom: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .block-looser-for-medium {
    margin-bottom: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .block-loosest-for-medium {
    margin-bottom: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .block-flush-for-medium-up {
    margin-bottom: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .block-tightest-for-medium-up {
    margin-bottom: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .block-tighter-for-medium-up {
    margin-bottom: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .block-tight-for-medium-up {
    margin-bottom: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .block-normal-for-medium-up {
    margin-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .block-loose-for-medium-up {
    margin-bottom: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .block-looser-for-medium-up {
    margin-bottom: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .block-loosest-for-medium-up {
    margin-bottom: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .block-flush-for-medium-only {
    margin-bottom: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .block-tightest-for-medium-only {
    margin-bottom: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .block-tighter-for-medium-only {
    margin-bottom: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .block-tight-for-medium-only {
    margin-bottom: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .block-normal-for-medium-only {
    margin-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .block-loose-for-medium-only {
    margin-bottom: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .block-looser-for-medium-only {
    margin-bottom: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .block-loosest-for-medium-only {
    margin-bottom: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .block-flush-for-large {
    margin-bottom: 0 !important; } }

@media only screen and (min-width: 64em) {
  .block-tightest-for-large {
    margin-bottom: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .block-tighter-for-large {
    margin-bottom: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .block-tight-for-large {
    margin-bottom: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .block-normal-for-large {
    margin-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .block-loose-for-large {
    margin-bottom: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .block-looser-for-large {
    margin-bottom: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .block-loosest-for-large {
    margin-bottom: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .block-flush-for-large-up {
    margin-bottom: 0 !important; } }

@media only screen and (min-width: 64em) {
  .block-tightest-for-large-up {
    margin-bottom: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .block-tighter-for-large-up {
    margin-bottom: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .block-tight-for-large-up {
    margin-bottom: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .block-normal-for-large-up {
    margin-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .block-loose-for-large-up {
    margin-bottom: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .block-looser-for-large-up {
    margin-bottom: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .block-loosest-for-large-up {
    margin-bottom: 3rem !important; } }

.block-center {
  margin-left: auto;
  margin-right: auto; }

.block-center-iframe > iframe {
  margin-left: auto;
  margin-right: auto;
  display: block; }

.example-vertical-spacer {
  border-style: solid;
  border-width: 1px;
  border-color: #b6b6b6;
  margin-bottom: 1.25rem;
  padding: 1.25rem;
  background: #cccccc;
  color: #333333; }
  .example-vertical-spacer > :first-child {
    margin-top: 0; }
  .example-vertical-spacer > :last-child {
    margin-bottom: 0; }
  .example-vertical-spacer h1, .example-vertical-spacer h2, .example-vertical-spacer h3, .example-vertical-spacer h4, .example-vertical-spacer h5, .example-vertical-spacer h6, .example-vertical-spacer p, .example-vertical-spacer li, .example-vertical-spacer dl {
    color: #333333; }
  .example-vertical-spacer h1, .example-vertical-spacer h2, .example-vertical-spacer h3, .example-vertical-spacer h4, .example-vertical-spacer h5, .example-vertical-spacer h6 {
    line-height: 1;
    margin-bottom: 0.625rem; }
    .example-vertical-spacer h1.subheader, .example-vertical-spacer h2.subheader, .example-vertical-spacer h3.subheader, .example-vertical-spacer h4.subheader, .example-vertical-spacer h5.subheader, .example-vertical-spacer h6.subheader {
      line-height: 1.4; }
  @media only screen and (min-width: 64em) {
    .example-vertical-spacer {
      margin-bottom: 0 !important; } }

/*doc
---
title: Padding Helpers (pad)
name: b-padding-helpers-pad
category: Layout - Layout Helpers
selectors:
    - .pad-flush
    - .pad-tightest
    - .pad-tighter
    - .pad-tight
    - .pad-normal
    - .pad-loose
    - .pad-looser
    - .pad-loosest
selector_type: layout
---

```html_example?kitchen-sink=false
<div class="panel">
    <p><span class="heading-normal text-alert text-stronger">DEPRECATED: </span>
    .pad-* has been replaced by the padding-* classes</p>
</div>
```
Margin is our default for spacing, but if you must override the default padding
of an object, so that the component has no trailing white space, then use the
pad classes.

We have the following `.pad-*` helper classes to add padding to the bottom of any element. Keep in mind that this does
not mean that applying this class will result in the exact specified white-space. It could depend on the bottom
white-space of the last inner element of the element this is applied to. Or, it could depend on the nature (e.g. an
element's line-height) of the element directly below.

| .pad-* helper classes | margin-bottom |
|------------------------|---------------|
| `.pad-flush`         | rem-calc(0)   |
| `.pad-tightest`      | rem-calc(2)   |
| `.pad-tighter`       | rem-calc(4)   |
| `.pad-tight`         | rem-calc(8)   |
| `.pad-normal`        | rem-calc(16)  |
| `.pad-loose`         | rem-calc(24)  |
| `.pad-looser`        | rem-calc(32)  |
| `.pad-loosest`       | rem-calc(48)  |

```html_example?kitchen-sink=false
<div class="panel pad-flush">
    <pre>class="pad-flush"</pre>
</div>
<div class="panel pad-tightest">
    <pre>class="pad-tightest"</pre>
</div>
<div class="panel pad-tighter">
    <pre>class="pad-tighter"</pre>
</div>
<div class="panel pad-tight">
    <pre>class="pad-tight"</pre>
</div>
<div class="panel pad-normal">
    <pre>class="pad-normal"</pre>
</div>
<div class="panel pad-loose">
    <pre>class="pad-loosest"</pre>
</div>
<div class="panel pad-looser">
    <pre>class="pad-looser"</pre>
</div>
<div class="panel pad-loosest">
    <pre>class="pad-loosest"</pre>
</div>
<div class="panel">
    This is just here to visually reference the whitespace above
</div>
```

#### Responsive helpers

In addition, these `.pad-*` can be isolated to the
[breakpoint(s) variables](/structure_-_breakpoints.html#a-media-queries)
we have at our disposal. Use the following class name pattern:

`.pad-{flush, tight, tighter, tightest, normal, loose, looser or loosest}-for-{small-only, medium-up, medium-only or large-up}`

Here are options for applying `.pad-tight` selectively to breakpoints:

| .pad-tight-for-* examples            |
|----------------------------------------|
| `.pad-tight-for-small-only`          |
| `.pad-tight-for-medium-up`           |
| `.pad-tight-for-medium-only`         |
| `.pad-tight-for-large-up`            |

So, you do something like the following ridiculous scenario which has `.pad-flush`
applied to small viewports, `.pad-tightest` applied to medium viewports and
`.pad-loosest` applied to the the large viewports. Try it. On mobile, the panels should be flush, at medium it should
have a tiny gap, and on large the loosest gap.

```html_example
<div class="panel pad-flush pad-tightest-for-medium-up pad-loosest-for-large-up">
    check out the space below this text
</div>
<div class="panel">
    This is just here to visually reference the whitespace above
 </div>
```
*/
.pad-flush {
  padding-bottom: 0 !important; }

.pad-tightest {
  padding-bottom: 0.125rem !important; }

.pad-tighter {
  padding-bottom: 0.25rem !important; }

.pad-tight {
  padding-bottom: 0.5rem !important; }

.pad-normal {
  padding-bottom: 0.9375rem !important; }

.pad-loose {
  padding-bottom: 1.5rem !important; }

.pad-looser {
  padding-bottom: 2rem !important; }

.pad-loosest {
  padding-bottom: 3rem !important; }

@media only screen {
  .pad-flush-for-small {
    padding-bottom: 0 !important; } }

@media only screen {
  .pad-tightest-for-small {
    padding-bottom: 0.125rem !important; } }

@media only screen {
  .pad-tighter-for-small {
    padding-bottom: 0.25rem !important; } }

@media only screen {
  .pad-tight-for-small {
    padding-bottom: 0.5rem !important; } }

@media only screen {
  .pad-normal-for-small {
    padding-bottom: 0.9375rem !important; } }

@media only screen {
  .pad-loose-for-small {
    padding-bottom: 1.5rem !important; } }

@media only screen {
  .pad-looser-for-small {
    padding-bottom: 2rem !important; } }

@media only screen {
  .pad-loosest-for-small {
    padding-bottom: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .pad-flush-for-small-only {
    padding-bottom: 0 !important; } }

@media only screen and (max-width: 40em) {
  .pad-tightest-for-small-only {
    padding-bottom: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .pad-tighter-for-small-only {
    padding-bottom: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .pad-tight-for-small-only {
    padding-bottom: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .pad-normal-for-small-only {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .pad-loose-for-small-only {
    padding-bottom: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .pad-looser-for-small-only {
    padding-bottom: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .pad-loosest-for-small-only {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .pad-flush-for-medium {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .pad-tightest-for-medium {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .pad-tighter-for-medium {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .pad-tight-for-medium {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .pad-normal-for-medium {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .pad-loose-for-medium {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .pad-looser-for-medium {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .pad-loosest-for-medium {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .pad-flush-for-medium-up {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .pad-tightest-for-medium-up {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .pad-tighter-for-medium-up {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .pad-tight-for-medium-up {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .pad-normal-for-medium-up {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .pad-loose-for-medium-up {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .pad-looser-for-medium-up {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .pad-loosest-for-medium-up {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .pad-flush-for-medium-only {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .pad-tightest-for-medium-only {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .pad-tighter-for-medium-only {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .pad-tight-for-medium-only {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .pad-normal-for-medium-only {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .pad-loose-for-medium-only {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .pad-looser-for-medium-only {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .pad-loosest-for-medium-only {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .pad-flush-for-large {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 64em) {
  .pad-tightest-for-large {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .pad-tighter-for-large {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .pad-tight-for-large {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .pad-normal-for-large {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .pad-loose-for-large {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .pad-looser-for-large {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .pad-loosest-for-large {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .pad-flush-for-large-up {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 64em) {
  .pad-tightest-for-large-up {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .pad-tighter-for-large-up {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .pad-tight-for-large-up {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .pad-normal-for-large-up {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .pad-loose-for-large-up {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .pad-looser-for-large-up {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .pad-loosest-for-large-up {
    padding-bottom: 3rem !important; } }

/*doc
---
title: Padding Helpers (padding)
name: b-padding-helpers-padding
category: Layout - Layout Helpers
selectors:
    - .padding-left-flush
    - .padding-left-tightest
    - .padding-left-tighter
    - .padding-left-tight
    - .padding-left-normal
    - .padding-left-loose
    - .padding-left-looser
    - .padding-left-loosest
    - .padding-right-flush
    - .padding-right-tightest
    - .padding-right-tighter
    - .padding-right-tight
    - .padding-right-normal
    - .padding-right-loose
    - .padding-right-looser
    - .padding-right-loosest
    - .padding-top-flush
    - .padding-top-tightest
    - .padding-top-tighter
    - .padding-top-tight
    - .padding-top-normal
    - .padding-top-loose
    - .padding-top-looser
    - .padding-top-loosest
    - .padding-bottom-flush
    - .padding-bottom-tightest
    - .padding-bottom-tighter
    - .padding-bottom-tight
    - .padding-bottom-normal
    - .padding-bottom-loose
    - .padding-bottom-looser
    - .padding-bottom-loosest
selector_type: layout
---

| .padding-* helper classes | padding |
|---------------------------|---------------|
| `.padding-flush`          | rem-calc(0)   |
| `.padding-tightest`       | rem-calc(2)   |
| `.padding-tighter`        | rem-calc(4)   |
| `.padding-tight`          | rem-calc(8)   |
| `.padding-normal`         | rem-calc(16)  |
| `.padding-loose`          | rem-calc(24)  |
| `.padding-looser`         | rem-calc(32)  |
| `.padding-loosest`        | rem-calc(48)  |

```html_example?kitchen-sink=true
<div class="flex-row">
    <div class="flex-small-3 panel">
        <div class="flex-small panel callout padding-left-flush">
            <pre>padding-left-flush</pre>
        </div>
        <div class="flex-small panel callout padding-left-tightest">
            <pre>padding-left-tightest</pre>
        </div>
        <div class="flex-small panel callout padding-left-tighter">
            <pre>padding-left-tighter</pre>
        </div>
        <div class="flex-small panel callout padding-left-tight">
            <pre>padding-left-tight</pre>
        </div>
        <div class="flex-small panel callout padding-left-normal">
            <pre>padding-left-normal</pre>
        </div>
        <div class="flex-small panel callout padding-left-loose">
            <pre>padding-left-loose</pre>
        </div>
        <div class="flex-small panel callout padding-left-looser">
            <pre>padding-left-looser</pre>
        </div>
        <div class="flex-small panel callout padding-left-loosest">
            <pre>padding-left-loosest</pre>
        </div>
    </div>
    <div class="flex-small-3 panel">
        <div class="flex-small panel callout padding-right-flush">
            <pre class="right">padding-right-flush</pre>
        </div>
        <div class="flex-small panel callout padding-right-tightest">
            <pre class="right">padding-right-tightest</pre>
        </div>
        <div class="flex-small panel callout padding-right-tighter">
            <pre class="right">padding-right-tighter</pre>
        </div>
        <div class="flex-small panel callout padding-right-tight">
            <pre class="right">padding-right-tight</pre>
        </div>
        <div class="flex-small panel callout padding-right-normal">
            <pre class="right">padding-right-normal</pre>
        </div>
        <div class="flex-small panel callout padding-right-loose">
            <pre class="right">padding-right-loose</pre>
        </div>
        <div class="flex-small panel callout padding-right-looser">
            <pre class="right">padding-right-looser</pre>
        </div>
        <div class="flex-small panel callout padding-right-loosest">
            <pre class="right">padding-right-loosest</pre>
        </div>
    </div>
    <div class="flex-small-3 panel">
        <div class="flex-small panel callout padding-top-flush">
            <pre>padding-top-flush</pre>
        </div>
        <div class="flex-small panel callout padding-top-tightest">
            <pre>padding-top-tightest</pre>
        </div>
        <div class="flex-small panel callout padding-top-tighter">
            <pre>padding-top-tighter</pre>
        </div>
        <div class="flex-small panel callout padding-top-tight">
            <pre>padding-top-tight</pre>
        </div>
        <div class="flex-small panel callout padding-top-normal">
            <pre>padding-top-normal</pre>
        </div>
        <div class="flex-small panel callout padding-top-loose">
            <pre>padding-top-loose</pre>
        </div>
        <div class="flex-small panel callout padding-top-looser">
            <pre>padding-top-looser</pre>
        </div>
        <div class="flex-small panel callout padding-top-loosest">
            <pre>padding-top-loosest</pre>
        </div>
    </div>
    <div class="flex-small-3 panel">
        <div class="flex-small panel callout padding-bottom-flush">
            <pre>padding-bottom-flush</pre>
        </div>
        <div class="flex-small panel callout padding-bottom-tightest">
            <pre>padding-bottom-tightest</pre>
        </div>
        <div class="flex-small panel callout padding-bottom-tighter">
            <pre>padding-bottom-tighter</pre>
        </div>
        <div class="flex-small panel callout padding-bottom-tight">
            <pre>padding-bottom-tight</pre>
        </div>
        <div class="flex-small panel callout padding-bottom-normal">
            <pre>padding-bottom-normal</pre>
        </div>
        <div class="flex-small panel callout padding-bottom-loose">
            <pre>padding-bottom-loose</pre>
        </div>
        <div class="flex-small panel callout padding-bottom-looser">
            <pre>padding-bottom-looser</pre>
        </div>
        <div class="flex-small panel callout padding-bottom-loosest">
            <pre>padding-bottom-loosest</pre>
        </div>
    </div>
</div>
```

.padding has responsive helper based on size of padding and breakpoint size
`.padding-{flush, tight, tighter, tightest, normal, loose, looser or loosest}-for-{small-only, medium-up, medium-only or large-up}`

*/
.padding-left-flush {
  padding-left: 0 !important; }

.padding-left-tightest {
  padding-left: 0.125rem !important; }

.padding-left-tighter {
  padding-left: 0.25rem !important; }

.padding-left-tight {
  padding-left: 0.5rem !important; }

.padding-left-normal {
  padding-left: 0.9375rem !important; }

.padding-left-loose {
  padding-left: 1.5rem !important; }

.padding-left-looser {
  padding-left: 2rem !important; }

.padding-left-loosest {
  padding-left: 3rem !important; }

.padding-right-flush {
  padding-right: 0 !important; }

.padding-right-tightest {
  padding-right: 0.125rem !important; }

.padding-right-tighter {
  padding-right: 0.25rem !important; }

.padding-right-tight {
  padding-right: 0.5rem !important; }

.padding-right-normal {
  padding-right: 0.9375rem !important; }

.padding-right-loose {
  padding-right: 1.5rem !important; }

.padding-right-looser {
  padding-right: 2rem !important; }

.padding-right-loosest {
  padding-right: 3rem !important; }

.padding-top-flush {
  padding-top: 0 !important; }

.padding-top-tightest {
  padding-top: 0.125rem !important; }

.padding-top-tighter {
  padding-top: 0.25rem !important; }

.padding-top-tight {
  padding-top: 0.5rem !important; }

.padding-top-normal {
  padding-top: 0.9375rem !important; }

.padding-top-loose {
  padding-top: 1.5rem !important; }

.padding-top-looser {
  padding-top: 2rem !important; }

.padding-top-loosest {
  padding-top: 3rem !important; }

.padding-bottom-flush {
  padding-bottom: 0 !important; }

.padding-bottom-tightest {
  padding-bottom: 0.125rem !important; }

.padding-bottom-tighter {
  padding-bottom: 0.25rem !important; }

.padding-bottom-tight {
  padding-bottom: 0.5rem !important; }

.padding-bottom-normal {
  padding-bottom: 0.9375rem !important; }

.padding-bottom-loose {
  padding-bottom: 1.5rem !important; }

.padding-bottom-looser {
  padding-bottom: 2rem !important; }

.padding-bottom-loosest {
  padding-bottom: 3rem !important; }

.padding-flush {
  padding-left: 0 !important;
  padding-right: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important; }

@media only screen {
  .padding-flush-for-small {
    padding-left: 0 !important; } }

@media only screen {
  .padding-flush-for-small {
    padding-right: 0 !important; } }

@media only screen {
  .padding-flush-for-small {
    padding-top: 0 !important; } }

@media only screen {
  .padding-flush-for-small {
    padding-bottom: 0 !important; } }

@media only screen {
  .padding-tightest-for-small {
    padding-left: 0.125rem !important; } }

@media only screen {
  .padding-tightest-for-small {
    padding-right: 0.125rem !important; } }

@media only screen {
  .padding-tightest-for-small {
    padding-top: 0.125rem !important; } }

@media only screen {
  .padding-tightest-for-small {
    padding-bottom: 0.125rem !important; } }

@media only screen {
  .padding-tighter-for-small {
    padding-left: 0.25rem !important; } }

@media only screen {
  .padding-tighter-for-small {
    padding-right: 0.25rem !important; } }

@media only screen {
  .padding-tighter-for-small {
    padding-top: 0.25rem !important; } }

@media only screen {
  .padding-tighter-for-small {
    padding-bottom: 0.25rem !important; } }

@media only screen {
  .padding-tight-for-small {
    padding-left: 0.5rem !important; } }

@media only screen {
  .padding-tight-for-small {
    padding-right: 0.5rem !important; } }

@media only screen {
  .padding-tight-for-small {
    padding-top: 0.5rem !important; } }

@media only screen {
  .padding-tight-for-small {
    padding-bottom: 0.5rem !important; } }

@media only screen {
  .padding-normal-for-small {
    padding-left: 0.9375rem !important; } }

@media only screen {
  .padding-normal-for-small {
    padding-right: 0.9375rem !important; } }

@media only screen {
  .padding-normal-for-small {
    padding-top: 0.9375rem !important; } }

@media only screen {
  .padding-normal-for-small {
    padding-bottom: 0.9375rem !important; } }

@media only screen {
  .padding-loose-for-small {
    padding-left: 1.5rem !important; } }

@media only screen {
  .padding-loose-for-small {
    padding-right: 1.5rem !important; } }

@media only screen {
  .padding-loose-for-small {
    padding-top: 1.5rem !important; } }

@media only screen {
  .padding-loose-for-small {
    padding-bottom: 1.5rem !important; } }

@media only screen {
  .padding-looser-for-small {
    padding-left: 2rem !important; } }

@media only screen {
  .padding-looser-for-small {
    padding-right: 2rem !important; } }

@media only screen {
  .padding-looser-for-small {
    padding-top: 2rem !important; } }

@media only screen {
  .padding-looser-for-small {
    padding-bottom: 2rem !important; } }

@media only screen {
  .padding-loosest-for-small {
    padding-left: 3rem !important; } }

@media only screen {
  .padding-loosest-for-small {
    padding-right: 3rem !important; } }

@media only screen {
  .padding-loosest-for-small {
    padding-top: 3rem !important; } }

@media only screen {
  .padding-loosest-for-small {
    padding-bottom: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-flush-for-small-only {
    padding-left: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-flush-for-small-only {
    padding-right: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-flush-for-small-only {
    padding-top: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-flush-for-small-only {
    padding-bottom: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-tightest-for-small-only {
    padding-left: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tightest-for-small-only {
    padding-right: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tightest-for-small-only {
    padding-top: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tightest-for-small-only {
    padding-bottom: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tighter-for-small-only {
    padding-left: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tighter-for-small-only {
    padding-right: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tighter-for-small-only {
    padding-top: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tighter-for-small-only {
    padding-bottom: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tight-for-small-only {
    padding-left: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tight-for-small-only {
    padding-right: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tight-for-small-only {
    padding-top: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tight-for-small-only {
    padding-bottom: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-normal-for-small-only {
    padding-left: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-normal-for-small-only {
    padding-right: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-normal-for-small-only {
    padding-top: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-normal-for-small-only {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loose-for-small-only {
    padding-left: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loose-for-small-only {
    padding-right: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loose-for-small-only {
    padding-top: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loose-for-small-only {
    padding-bottom: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-looser-for-small-only {
    padding-left: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-looser-for-small-only {
    padding-right: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-looser-for-small-only {
    padding-top: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-looser-for-small-only {
    padding-bottom: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loosest-for-small-only {
    padding-left: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loosest-for-small-only {
    padding-right: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loosest-for-small-only {
    padding-top: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loosest-for-small-only {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium {
    padding-left: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium {
    padding-right: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium {
    padding-top: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium-up {
    padding-left: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium-up {
    padding-right: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium-up {
    padding-top: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium-up {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium-up {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium-up {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium-up {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium-up {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium-up {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium-up {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium-up {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium-up {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium-up {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium-up {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium-up {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium-up {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium-up {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium-up {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium-up {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium-up {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium-up {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium-up {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium-up {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium-up {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium-up {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium-up {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium-up {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium-up {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium-up {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium-up {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium-up {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium-up {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-flush-for-medium-only {
    padding-left: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-flush-for-medium-only {
    padding-right: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-flush-for-medium-only {
    padding-top: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-flush-for-medium-only {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tightest-for-medium-only {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tightest-for-medium-only {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tightest-for-medium-only {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tightest-for-medium-only {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tighter-for-medium-only {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tighter-for-medium-only {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tighter-for-medium-only {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tighter-for-medium-only {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tight-for-medium-only {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tight-for-medium-only {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tight-for-medium-only {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tight-for-medium-only {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-normal-for-medium-only {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-normal-for-medium-only {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-normal-for-medium-only {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-normal-for-medium-only {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loose-for-medium-only {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loose-for-medium-only {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loose-for-medium-only {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loose-for-medium-only {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-looser-for-medium-only {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-looser-for-medium-only {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-looser-for-medium-only {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-looser-for-medium-only {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loosest-for-medium-only {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loosest-for-medium-only {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loosest-for-medium-only {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loosest-for-medium-only {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large {
    padding-left: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large {
    padding-right: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large {
    padding-top: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large-up {
    padding-left: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large-up {
    padding-right: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large-up {
    padding-top: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large-up {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large-up {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large-up {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large-up {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large-up {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large-up {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large-up {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large-up {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large-up {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large-up {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large-up {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large-up {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large-up {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large-up {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large-up {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large-up {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large-up {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large-up {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large-up {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large-up {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large-up {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large-up {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large-up {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large-up {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large-up {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large-up {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large-up {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large-up {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large-up {
    padding-bottom: 3rem !important; } }

.padding-tightest {
  padding-left: 0.125rem !important;
  padding-right: 0.125rem !important;
  padding-top: 0.125rem !important;
  padding-bottom: 0.125rem !important; }

@media only screen {
  .padding-flush-for-small {
    padding-left: 0 !important; } }

@media only screen {
  .padding-flush-for-small {
    padding-right: 0 !important; } }

@media only screen {
  .padding-flush-for-small {
    padding-top: 0 !important; } }

@media only screen {
  .padding-flush-for-small {
    padding-bottom: 0 !important; } }

@media only screen {
  .padding-tightest-for-small {
    padding-left: 0.125rem !important; } }

@media only screen {
  .padding-tightest-for-small {
    padding-right: 0.125rem !important; } }

@media only screen {
  .padding-tightest-for-small {
    padding-top: 0.125rem !important; } }

@media only screen {
  .padding-tightest-for-small {
    padding-bottom: 0.125rem !important; } }

@media only screen {
  .padding-tighter-for-small {
    padding-left: 0.25rem !important; } }

@media only screen {
  .padding-tighter-for-small {
    padding-right: 0.25rem !important; } }

@media only screen {
  .padding-tighter-for-small {
    padding-top: 0.25rem !important; } }

@media only screen {
  .padding-tighter-for-small {
    padding-bottom: 0.25rem !important; } }

@media only screen {
  .padding-tight-for-small {
    padding-left: 0.5rem !important; } }

@media only screen {
  .padding-tight-for-small {
    padding-right: 0.5rem !important; } }

@media only screen {
  .padding-tight-for-small {
    padding-top: 0.5rem !important; } }

@media only screen {
  .padding-tight-for-small {
    padding-bottom: 0.5rem !important; } }

@media only screen {
  .padding-normal-for-small {
    padding-left: 0.9375rem !important; } }

@media only screen {
  .padding-normal-for-small {
    padding-right: 0.9375rem !important; } }

@media only screen {
  .padding-normal-for-small {
    padding-top: 0.9375rem !important; } }

@media only screen {
  .padding-normal-for-small {
    padding-bottom: 0.9375rem !important; } }

@media only screen {
  .padding-loose-for-small {
    padding-left: 1.5rem !important; } }

@media only screen {
  .padding-loose-for-small {
    padding-right: 1.5rem !important; } }

@media only screen {
  .padding-loose-for-small {
    padding-top: 1.5rem !important; } }

@media only screen {
  .padding-loose-for-small {
    padding-bottom: 1.5rem !important; } }

@media only screen {
  .padding-looser-for-small {
    padding-left: 2rem !important; } }

@media only screen {
  .padding-looser-for-small {
    padding-right: 2rem !important; } }

@media only screen {
  .padding-looser-for-small {
    padding-top: 2rem !important; } }

@media only screen {
  .padding-looser-for-small {
    padding-bottom: 2rem !important; } }

@media only screen {
  .padding-loosest-for-small {
    padding-left: 3rem !important; } }

@media only screen {
  .padding-loosest-for-small {
    padding-right: 3rem !important; } }

@media only screen {
  .padding-loosest-for-small {
    padding-top: 3rem !important; } }

@media only screen {
  .padding-loosest-for-small {
    padding-bottom: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-flush-for-small-only {
    padding-left: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-flush-for-small-only {
    padding-right: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-flush-for-small-only {
    padding-top: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-flush-for-small-only {
    padding-bottom: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-tightest-for-small-only {
    padding-left: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tightest-for-small-only {
    padding-right: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tightest-for-small-only {
    padding-top: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tightest-for-small-only {
    padding-bottom: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tighter-for-small-only {
    padding-left: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tighter-for-small-only {
    padding-right: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tighter-for-small-only {
    padding-top: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tighter-for-small-only {
    padding-bottom: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tight-for-small-only {
    padding-left: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tight-for-small-only {
    padding-right: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tight-for-small-only {
    padding-top: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tight-for-small-only {
    padding-bottom: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-normal-for-small-only {
    padding-left: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-normal-for-small-only {
    padding-right: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-normal-for-small-only {
    padding-top: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-normal-for-small-only {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loose-for-small-only {
    padding-left: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loose-for-small-only {
    padding-right: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loose-for-small-only {
    padding-top: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loose-for-small-only {
    padding-bottom: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-looser-for-small-only {
    padding-left: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-looser-for-small-only {
    padding-right: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-looser-for-small-only {
    padding-top: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-looser-for-small-only {
    padding-bottom: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loosest-for-small-only {
    padding-left: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loosest-for-small-only {
    padding-right: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loosest-for-small-only {
    padding-top: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loosest-for-small-only {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium {
    padding-left: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium {
    padding-right: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium {
    padding-top: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium-up {
    padding-left: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium-up {
    padding-right: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium-up {
    padding-top: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium-up {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium-up {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium-up {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium-up {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium-up {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium-up {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium-up {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium-up {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium-up {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium-up {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium-up {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium-up {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium-up {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium-up {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium-up {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium-up {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium-up {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium-up {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium-up {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium-up {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium-up {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium-up {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium-up {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium-up {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium-up {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium-up {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium-up {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium-up {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium-up {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-flush-for-medium-only {
    padding-left: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-flush-for-medium-only {
    padding-right: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-flush-for-medium-only {
    padding-top: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-flush-for-medium-only {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tightest-for-medium-only {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tightest-for-medium-only {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tightest-for-medium-only {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tightest-for-medium-only {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tighter-for-medium-only {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tighter-for-medium-only {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tighter-for-medium-only {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tighter-for-medium-only {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tight-for-medium-only {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tight-for-medium-only {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tight-for-medium-only {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tight-for-medium-only {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-normal-for-medium-only {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-normal-for-medium-only {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-normal-for-medium-only {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-normal-for-medium-only {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loose-for-medium-only {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loose-for-medium-only {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loose-for-medium-only {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loose-for-medium-only {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-looser-for-medium-only {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-looser-for-medium-only {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-looser-for-medium-only {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-looser-for-medium-only {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loosest-for-medium-only {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loosest-for-medium-only {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loosest-for-medium-only {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loosest-for-medium-only {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large {
    padding-left: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large {
    padding-right: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large {
    padding-top: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large-up {
    padding-left: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large-up {
    padding-right: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large-up {
    padding-top: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large-up {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large-up {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large-up {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large-up {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large-up {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large-up {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large-up {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large-up {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large-up {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large-up {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large-up {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large-up {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large-up {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large-up {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large-up {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large-up {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large-up {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large-up {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large-up {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large-up {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large-up {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large-up {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large-up {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large-up {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large-up {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large-up {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large-up {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large-up {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large-up {
    padding-bottom: 3rem !important; } }

.padding-tighter {
  padding-left: 0.25rem !important;
  padding-right: 0.25rem !important;
  padding-top: 0.25rem !important;
  padding-bottom: 0.25rem !important; }

@media only screen {
  .padding-flush-for-small {
    padding-left: 0 !important; } }

@media only screen {
  .padding-flush-for-small {
    padding-right: 0 !important; } }

@media only screen {
  .padding-flush-for-small {
    padding-top: 0 !important; } }

@media only screen {
  .padding-flush-for-small {
    padding-bottom: 0 !important; } }

@media only screen {
  .padding-tightest-for-small {
    padding-left: 0.125rem !important; } }

@media only screen {
  .padding-tightest-for-small {
    padding-right: 0.125rem !important; } }

@media only screen {
  .padding-tightest-for-small {
    padding-top: 0.125rem !important; } }

@media only screen {
  .padding-tightest-for-small {
    padding-bottom: 0.125rem !important; } }

@media only screen {
  .padding-tighter-for-small {
    padding-left: 0.25rem !important; } }

@media only screen {
  .padding-tighter-for-small {
    padding-right: 0.25rem !important; } }

@media only screen {
  .padding-tighter-for-small {
    padding-top: 0.25rem !important; } }

@media only screen {
  .padding-tighter-for-small {
    padding-bottom: 0.25rem !important; } }

@media only screen {
  .padding-tight-for-small {
    padding-left: 0.5rem !important; } }

@media only screen {
  .padding-tight-for-small {
    padding-right: 0.5rem !important; } }

@media only screen {
  .padding-tight-for-small {
    padding-top: 0.5rem !important; } }

@media only screen {
  .padding-tight-for-small {
    padding-bottom: 0.5rem !important; } }

@media only screen {
  .padding-normal-for-small {
    padding-left: 0.9375rem !important; } }

@media only screen {
  .padding-normal-for-small {
    padding-right: 0.9375rem !important; } }

@media only screen {
  .padding-normal-for-small {
    padding-top: 0.9375rem !important; } }

@media only screen {
  .padding-normal-for-small {
    padding-bottom: 0.9375rem !important; } }

@media only screen {
  .padding-loose-for-small {
    padding-left: 1.5rem !important; } }

@media only screen {
  .padding-loose-for-small {
    padding-right: 1.5rem !important; } }

@media only screen {
  .padding-loose-for-small {
    padding-top: 1.5rem !important; } }

@media only screen {
  .padding-loose-for-small {
    padding-bottom: 1.5rem !important; } }

@media only screen {
  .padding-looser-for-small {
    padding-left: 2rem !important; } }

@media only screen {
  .padding-looser-for-small {
    padding-right: 2rem !important; } }

@media only screen {
  .padding-looser-for-small {
    padding-top: 2rem !important; } }

@media only screen {
  .padding-looser-for-small {
    padding-bottom: 2rem !important; } }

@media only screen {
  .padding-loosest-for-small {
    padding-left: 3rem !important; } }

@media only screen {
  .padding-loosest-for-small {
    padding-right: 3rem !important; } }

@media only screen {
  .padding-loosest-for-small {
    padding-top: 3rem !important; } }

@media only screen {
  .padding-loosest-for-small {
    padding-bottom: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-flush-for-small-only {
    padding-left: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-flush-for-small-only {
    padding-right: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-flush-for-small-only {
    padding-top: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-flush-for-small-only {
    padding-bottom: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-tightest-for-small-only {
    padding-left: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tightest-for-small-only {
    padding-right: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tightest-for-small-only {
    padding-top: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tightest-for-small-only {
    padding-bottom: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tighter-for-small-only {
    padding-left: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tighter-for-small-only {
    padding-right: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tighter-for-small-only {
    padding-top: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tighter-for-small-only {
    padding-bottom: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tight-for-small-only {
    padding-left: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tight-for-small-only {
    padding-right: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tight-for-small-only {
    padding-top: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tight-for-small-only {
    padding-bottom: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-normal-for-small-only {
    padding-left: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-normal-for-small-only {
    padding-right: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-normal-for-small-only {
    padding-top: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-normal-for-small-only {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loose-for-small-only {
    padding-left: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loose-for-small-only {
    padding-right: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loose-for-small-only {
    padding-top: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loose-for-small-only {
    padding-bottom: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-looser-for-small-only {
    padding-left: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-looser-for-small-only {
    padding-right: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-looser-for-small-only {
    padding-top: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-looser-for-small-only {
    padding-bottom: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loosest-for-small-only {
    padding-left: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loosest-for-small-only {
    padding-right: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loosest-for-small-only {
    padding-top: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loosest-for-small-only {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium {
    padding-left: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium {
    padding-right: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium {
    padding-top: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium-up {
    padding-left: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium-up {
    padding-right: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium-up {
    padding-top: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium-up {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium-up {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium-up {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium-up {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium-up {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium-up {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium-up {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium-up {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium-up {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium-up {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium-up {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium-up {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium-up {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium-up {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium-up {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium-up {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium-up {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium-up {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium-up {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium-up {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium-up {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium-up {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium-up {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium-up {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium-up {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium-up {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium-up {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium-up {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium-up {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-flush-for-medium-only {
    padding-left: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-flush-for-medium-only {
    padding-right: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-flush-for-medium-only {
    padding-top: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-flush-for-medium-only {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tightest-for-medium-only {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tightest-for-medium-only {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tightest-for-medium-only {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tightest-for-medium-only {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tighter-for-medium-only {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tighter-for-medium-only {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tighter-for-medium-only {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tighter-for-medium-only {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tight-for-medium-only {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tight-for-medium-only {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tight-for-medium-only {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tight-for-medium-only {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-normal-for-medium-only {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-normal-for-medium-only {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-normal-for-medium-only {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-normal-for-medium-only {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loose-for-medium-only {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loose-for-medium-only {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loose-for-medium-only {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loose-for-medium-only {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-looser-for-medium-only {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-looser-for-medium-only {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-looser-for-medium-only {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-looser-for-medium-only {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loosest-for-medium-only {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loosest-for-medium-only {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loosest-for-medium-only {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loosest-for-medium-only {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large {
    padding-left: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large {
    padding-right: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large {
    padding-top: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large-up {
    padding-left: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large-up {
    padding-right: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large-up {
    padding-top: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large-up {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large-up {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large-up {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large-up {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large-up {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large-up {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large-up {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large-up {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large-up {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large-up {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large-up {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large-up {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large-up {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large-up {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large-up {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large-up {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large-up {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large-up {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large-up {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large-up {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large-up {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large-up {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large-up {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large-up {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large-up {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large-up {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large-up {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large-up {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large-up {
    padding-bottom: 3rem !important; } }

.padding-tight {
  padding-left: 0.5rem !important;
  padding-right: 0.5rem !important;
  padding-top: 0.5rem !important;
  padding-bottom: 0.5rem !important; }

@media only screen {
  .padding-flush-for-small {
    padding-left: 0 !important; } }

@media only screen {
  .padding-flush-for-small {
    padding-right: 0 !important; } }

@media only screen {
  .padding-flush-for-small {
    padding-top: 0 !important; } }

@media only screen {
  .padding-flush-for-small {
    padding-bottom: 0 !important; } }

@media only screen {
  .padding-tightest-for-small {
    padding-left: 0.125rem !important; } }

@media only screen {
  .padding-tightest-for-small {
    padding-right: 0.125rem !important; } }

@media only screen {
  .padding-tightest-for-small {
    padding-top: 0.125rem !important; } }

@media only screen {
  .padding-tightest-for-small {
    padding-bottom: 0.125rem !important; } }

@media only screen {
  .padding-tighter-for-small {
    padding-left: 0.25rem !important; } }

@media only screen {
  .padding-tighter-for-small {
    padding-right: 0.25rem !important; } }

@media only screen {
  .padding-tighter-for-small {
    padding-top: 0.25rem !important; } }

@media only screen {
  .padding-tighter-for-small {
    padding-bottom: 0.25rem !important; } }

@media only screen {
  .padding-tight-for-small {
    padding-left: 0.5rem !important; } }

@media only screen {
  .padding-tight-for-small {
    padding-right: 0.5rem !important; } }

@media only screen {
  .padding-tight-for-small {
    padding-top: 0.5rem !important; } }

@media only screen {
  .padding-tight-for-small {
    padding-bottom: 0.5rem !important; } }

@media only screen {
  .padding-normal-for-small {
    padding-left: 0.9375rem !important; } }

@media only screen {
  .padding-normal-for-small {
    padding-right: 0.9375rem !important; } }

@media only screen {
  .padding-normal-for-small {
    padding-top: 0.9375rem !important; } }

@media only screen {
  .padding-normal-for-small {
    padding-bottom: 0.9375rem !important; } }

@media only screen {
  .padding-loose-for-small {
    padding-left: 1.5rem !important; } }

@media only screen {
  .padding-loose-for-small {
    padding-right: 1.5rem !important; } }

@media only screen {
  .padding-loose-for-small {
    padding-top: 1.5rem !important; } }

@media only screen {
  .padding-loose-for-small {
    padding-bottom: 1.5rem !important; } }

@media only screen {
  .padding-looser-for-small {
    padding-left: 2rem !important; } }

@media only screen {
  .padding-looser-for-small {
    padding-right: 2rem !important; } }

@media only screen {
  .padding-looser-for-small {
    padding-top: 2rem !important; } }

@media only screen {
  .padding-looser-for-small {
    padding-bottom: 2rem !important; } }

@media only screen {
  .padding-loosest-for-small {
    padding-left: 3rem !important; } }

@media only screen {
  .padding-loosest-for-small {
    padding-right: 3rem !important; } }

@media only screen {
  .padding-loosest-for-small {
    padding-top: 3rem !important; } }

@media only screen {
  .padding-loosest-for-small {
    padding-bottom: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-flush-for-small-only {
    padding-left: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-flush-for-small-only {
    padding-right: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-flush-for-small-only {
    padding-top: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-flush-for-small-only {
    padding-bottom: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-tightest-for-small-only {
    padding-left: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tightest-for-small-only {
    padding-right: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tightest-for-small-only {
    padding-top: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tightest-for-small-only {
    padding-bottom: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tighter-for-small-only {
    padding-left: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tighter-for-small-only {
    padding-right: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tighter-for-small-only {
    padding-top: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tighter-for-small-only {
    padding-bottom: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tight-for-small-only {
    padding-left: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tight-for-small-only {
    padding-right: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tight-for-small-only {
    padding-top: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tight-for-small-only {
    padding-bottom: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-normal-for-small-only {
    padding-left: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-normal-for-small-only {
    padding-right: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-normal-for-small-only {
    padding-top: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-normal-for-small-only {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loose-for-small-only {
    padding-left: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loose-for-small-only {
    padding-right: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loose-for-small-only {
    padding-top: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loose-for-small-only {
    padding-bottom: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-looser-for-small-only {
    padding-left: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-looser-for-small-only {
    padding-right: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-looser-for-small-only {
    padding-top: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-looser-for-small-only {
    padding-bottom: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loosest-for-small-only {
    padding-left: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loosest-for-small-only {
    padding-right: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loosest-for-small-only {
    padding-top: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loosest-for-small-only {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium {
    padding-left: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium {
    padding-right: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium {
    padding-top: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium-up {
    padding-left: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium-up {
    padding-right: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium-up {
    padding-top: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium-up {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium-up {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium-up {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium-up {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium-up {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium-up {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium-up {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium-up {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium-up {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium-up {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium-up {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium-up {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium-up {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium-up {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium-up {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium-up {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium-up {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium-up {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium-up {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium-up {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium-up {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium-up {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium-up {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium-up {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium-up {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium-up {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium-up {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium-up {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium-up {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-flush-for-medium-only {
    padding-left: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-flush-for-medium-only {
    padding-right: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-flush-for-medium-only {
    padding-top: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-flush-for-medium-only {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tightest-for-medium-only {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tightest-for-medium-only {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tightest-for-medium-only {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tightest-for-medium-only {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tighter-for-medium-only {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tighter-for-medium-only {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tighter-for-medium-only {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tighter-for-medium-only {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tight-for-medium-only {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tight-for-medium-only {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tight-for-medium-only {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tight-for-medium-only {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-normal-for-medium-only {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-normal-for-medium-only {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-normal-for-medium-only {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-normal-for-medium-only {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loose-for-medium-only {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loose-for-medium-only {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loose-for-medium-only {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loose-for-medium-only {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-looser-for-medium-only {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-looser-for-medium-only {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-looser-for-medium-only {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-looser-for-medium-only {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loosest-for-medium-only {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loosest-for-medium-only {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loosest-for-medium-only {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loosest-for-medium-only {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large {
    padding-left: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large {
    padding-right: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large {
    padding-top: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large-up {
    padding-left: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large-up {
    padding-right: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large-up {
    padding-top: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large-up {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large-up {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large-up {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large-up {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large-up {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large-up {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large-up {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large-up {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large-up {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large-up {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large-up {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large-up {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large-up {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large-up {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large-up {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large-up {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large-up {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large-up {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large-up {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large-up {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large-up {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large-up {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large-up {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large-up {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large-up {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large-up {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large-up {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large-up {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large-up {
    padding-bottom: 3rem !important; } }

.padding-normal {
  padding-left: 0.9375rem !important;
  padding-right: 0.9375rem !important;
  padding-top: 0.9375rem !important;
  padding-bottom: 0.9375rem !important; }

@media only screen {
  .padding-flush-for-small {
    padding-left: 0 !important; } }

@media only screen {
  .padding-flush-for-small {
    padding-right: 0 !important; } }

@media only screen {
  .padding-flush-for-small {
    padding-top: 0 !important; } }

@media only screen {
  .padding-flush-for-small {
    padding-bottom: 0 !important; } }

@media only screen {
  .padding-tightest-for-small {
    padding-left: 0.125rem !important; } }

@media only screen {
  .padding-tightest-for-small {
    padding-right: 0.125rem !important; } }

@media only screen {
  .padding-tightest-for-small {
    padding-top: 0.125rem !important; } }

@media only screen {
  .padding-tightest-for-small {
    padding-bottom: 0.125rem !important; } }

@media only screen {
  .padding-tighter-for-small {
    padding-left: 0.25rem !important; } }

@media only screen {
  .padding-tighter-for-small {
    padding-right: 0.25rem !important; } }

@media only screen {
  .padding-tighter-for-small {
    padding-top: 0.25rem !important; } }

@media only screen {
  .padding-tighter-for-small {
    padding-bottom: 0.25rem !important; } }

@media only screen {
  .padding-tight-for-small {
    padding-left: 0.5rem !important; } }

@media only screen {
  .padding-tight-for-small {
    padding-right: 0.5rem !important; } }

@media only screen {
  .padding-tight-for-small {
    padding-top: 0.5rem !important; } }

@media only screen {
  .padding-tight-for-small {
    padding-bottom: 0.5rem !important; } }

@media only screen {
  .padding-normal-for-small {
    padding-left: 0.9375rem !important; } }

@media only screen {
  .padding-normal-for-small {
    padding-right: 0.9375rem !important; } }

@media only screen {
  .padding-normal-for-small {
    padding-top: 0.9375rem !important; } }

@media only screen {
  .padding-normal-for-small {
    padding-bottom: 0.9375rem !important; } }

@media only screen {
  .padding-loose-for-small {
    padding-left: 1.5rem !important; } }

@media only screen {
  .padding-loose-for-small {
    padding-right: 1.5rem !important; } }

@media only screen {
  .padding-loose-for-small {
    padding-top: 1.5rem !important; } }

@media only screen {
  .padding-loose-for-small {
    padding-bottom: 1.5rem !important; } }

@media only screen {
  .padding-looser-for-small {
    padding-left: 2rem !important; } }

@media only screen {
  .padding-looser-for-small {
    padding-right: 2rem !important; } }

@media only screen {
  .padding-looser-for-small {
    padding-top: 2rem !important; } }

@media only screen {
  .padding-looser-for-small {
    padding-bottom: 2rem !important; } }

@media only screen {
  .padding-loosest-for-small {
    padding-left: 3rem !important; } }

@media only screen {
  .padding-loosest-for-small {
    padding-right: 3rem !important; } }

@media only screen {
  .padding-loosest-for-small {
    padding-top: 3rem !important; } }

@media only screen {
  .padding-loosest-for-small {
    padding-bottom: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-flush-for-small-only {
    padding-left: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-flush-for-small-only {
    padding-right: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-flush-for-small-only {
    padding-top: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-flush-for-small-only {
    padding-bottom: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-tightest-for-small-only {
    padding-left: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tightest-for-small-only {
    padding-right: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tightest-for-small-only {
    padding-top: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tightest-for-small-only {
    padding-bottom: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tighter-for-small-only {
    padding-left: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tighter-for-small-only {
    padding-right: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tighter-for-small-only {
    padding-top: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tighter-for-small-only {
    padding-bottom: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tight-for-small-only {
    padding-left: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tight-for-small-only {
    padding-right: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tight-for-small-only {
    padding-top: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tight-for-small-only {
    padding-bottom: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-normal-for-small-only {
    padding-left: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-normal-for-small-only {
    padding-right: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-normal-for-small-only {
    padding-top: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-normal-for-small-only {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loose-for-small-only {
    padding-left: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loose-for-small-only {
    padding-right: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loose-for-small-only {
    padding-top: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loose-for-small-only {
    padding-bottom: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-looser-for-small-only {
    padding-left: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-looser-for-small-only {
    padding-right: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-looser-for-small-only {
    padding-top: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-looser-for-small-only {
    padding-bottom: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loosest-for-small-only {
    padding-left: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loosest-for-small-only {
    padding-right: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loosest-for-small-only {
    padding-top: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loosest-for-small-only {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium {
    padding-left: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium {
    padding-right: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium {
    padding-top: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium-up {
    padding-left: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium-up {
    padding-right: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium-up {
    padding-top: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium-up {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium-up {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium-up {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium-up {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium-up {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium-up {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium-up {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium-up {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium-up {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium-up {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium-up {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium-up {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium-up {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium-up {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium-up {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium-up {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium-up {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium-up {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium-up {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium-up {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium-up {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium-up {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium-up {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium-up {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium-up {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium-up {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium-up {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium-up {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium-up {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-flush-for-medium-only {
    padding-left: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-flush-for-medium-only {
    padding-right: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-flush-for-medium-only {
    padding-top: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-flush-for-medium-only {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tightest-for-medium-only {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tightest-for-medium-only {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tightest-for-medium-only {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tightest-for-medium-only {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tighter-for-medium-only {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tighter-for-medium-only {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tighter-for-medium-only {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tighter-for-medium-only {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tight-for-medium-only {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tight-for-medium-only {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tight-for-medium-only {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tight-for-medium-only {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-normal-for-medium-only {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-normal-for-medium-only {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-normal-for-medium-only {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-normal-for-medium-only {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loose-for-medium-only {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loose-for-medium-only {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loose-for-medium-only {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loose-for-medium-only {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-looser-for-medium-only {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-looser-for-medium-only {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-looser-for-medium-only {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-looser-for-medium-only {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loosest-for-medium-only {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loosest-for-medium-only {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loosest-for-medium-only {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loosest-for-medium-only {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large {
    padding-left: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large {
    padding-right: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large {
    padding-top: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large-up {
    padding-left: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large-up {
    padding-right: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large-up {
    padding-top: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large-up {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large-up {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large-up {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large-up {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large-up {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large-up {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large-up {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large-up {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large-up {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large-up {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large-up {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large-up {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large-up {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large-up {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large-up {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large-up {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large-up {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large-up {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large-up {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large-up {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large-up {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large-up {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large-up {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large-up {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large-up {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large-up {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large-up {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large-up {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large-up {
    padding-bottom: 3rem !important; } }

.padding-loose {
  padding-left: 1.5rem !important;
  padding-right: 1.5rem !important;
  padding-top: 1.5rem !important;
  padding-bottom: 1.5rem !important; }

@media only screen {
  .padding-flush-for-small {
    padding-left: 0 !important; } }

@media only screen {
  .padding-flush-for-small {
    padding-right: 0 !important; } }

@media only screen {
  .padding-flush-for-small {
    padding-top: 0 !important; } }

@media only screen {
  .padding-flush-for-small {
    padding-bottom: 0 !important; } }

@media only screen {
  .padding-tightest-for-small {
    padding-left: 0.125rem !important; } }

@media only screen {
  .padding-tightest-for-small {
    padding-right: 0.125rem !important; } }

@media only screen {
  .padding-tightest-for-small {
    padding-top: 0.125rem !important; } }

@media only screen {
  .padding-tightest-for-small {
    padding-bottom: 0.125rem !important; } }

@media only screen {
  .padding-tighter-for-small {
    padding-left: 0.25rem !important; } }

@media only screen {
  .padding-tighter-for-small {
    padding-right: 0.25rem !important; } }

@media only screen {
  .padding-tighter-for-small {
    padding-top: 0.25rem !important; } }

@media only screen {
  .padding-tighter-for-small {
    padding-bottom: 0.25rem !important; } }

@media only screen {
  .padding-tight-for-small {
    padding-left: 0.5rem !important; } }

@media only screen {
  .padding-tight-for-small {
    padding-right: 0.5rem !important; } }

@media only screen {
  .padding-tight-for-small {
    padding-top: 0.5rem !important; } }

@media only screen {
  .padding-tight-for-small {
    padding-bottom: 0.5rem !important; } }

@media only screen {
  .padding-normal-for-small {
    padding-left: 0.9375rem !important; } }

@media only screen {
  .padding-normal-for-small {
    padding-right: 0.9375rem !important; } }

@media only screen {
  .padding-normal-for-small {
    padding-top: 0.9375rem !important; } }

@media only screen {
  .padding-normal-for-small {
    padding-bottom: 0.9375rem !important; } }

@media only screen {
  .padding-loose-for-small {
    padding-left: 1.5rem !important; } }

@media only screen {
  .padding-loose-for-small {
    padding-right: 1.5rem !important; } }

@media only screen {
  .padding-loose-for-small {
    padding-top: 1.5rem !important; } }

@media only screen {
  .padding-loose-for-small {
    padding-bottom: 1.5rem !important; } }

@media only screen {
  .padding-looser-for-small {
    padding-left: 2rem !important; } }

@media only screen {
  .padding-looser-for-small {
    padding-right: 2rem !important; } }

@media only screen {
  .padding-looser-for-small {
    padding-top: 2rem !important; } }

@media only screen {
  .padding-looser-for-small {
    padding-bottom: 2rem !important; } }

@media only screen {
  .padding-loosest-for-small {
    padding-left: 3rem !important; } }

@media only screen {
  .padding-loosest-for-small {
    padding-right: 3rem !important; } }

@media only screen {
  .padding-loosest-for-small {
    padding-top: 3rem !important; } }

@media only screen {
  .padding-loosest-for-small {
    padding-bottom: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-flush-for-small-only {
    padding-left: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-flush-for-small-only {
    padding-right: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-flush-for-small-only {
    padding-top: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-flush-for-small-only {
    padding-bottom: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-tightest-for-small-only {
    padding-left: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tightest-for-small-only {
    padding-right: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tightest-for-small-only {
    padding-top: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tightest-for-small-only {
    padding-bottom: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tighter-for-small-only {
    padding-left: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tighter-for-small-only {
    padding-right: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tighter-for-small-only {
    padding-top: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tighter-for-small-only {
    padding-bottom: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tight-for-small-only {
    padding-left: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tight-for-small-only {
    padding-right: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tight-for-small-only {
    padding-top: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tight-for-small-only {
    padding-bottom: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-normal-for-small-only {
    padding-left: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-normal-for-small-only {
    padding-right: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-normal-for-small-only {
    padding-top: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-normal-for-small-only {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loose-for-small-only {
    padding-left: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loose-for-small-only {
    padding-right: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loose-for-small-only {
    padding-top: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loose-for-small-only {
    padding-bottom: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-looser-for-small-only {
    padding-left: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-looser-for-small-only {
    padding-right: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-looser-for-small-only {
    padding-top: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-looser-for-small-only {
    padding-bottom: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loosest-for-small-only {
    padding-left: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loosest-for-small-only {
    padding-right: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loosest-for-small-only {
    padding-top: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loosest-for-small-only {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium {
    padding-left: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium {
    padding-right: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium {
    padding-top: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium-up {
    padding-left: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium-up {
    padding-right: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium-up {
    padding-top: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium-up {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium-up {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium-up {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium-up {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium-up {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium-up {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium-up {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium-up {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium-up {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium-up {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium-up {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium-up {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium-up {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium-up {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium-up {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium-up {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium-up {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium-up {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium-up {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium-up {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium-up {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium-up {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium-up {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium-up {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium-up {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium-up {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium-up {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium-up {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium-up {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-flush-for-medium-only {
    padding-left: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-flush-for-medium-only {
    padding-right: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-flush-for-medium-only {
    padding-top: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-flush-for-medium-only {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tightest-for-medium-only {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tightest-for-medium-only {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tightest-for-medium-only {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tightest-for-medium-only {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tighter-for-medium-only {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tighter-for-medium-only {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tighter-for-medium-only {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tighter-for-medium-only {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tight-for-medium-only {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tight-for-medium-only {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tight-for-medium-only {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tight-for-medium-only {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-normal-for-medium-only {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-normal-for-medium-only {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-normal-for-medium-only {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-normal-for-medium-only {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loose-for-medium-only {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loose-for-medium-only {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loose-for-medium-only {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loose-for-medium-only {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-looser-for-medium-only {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-looser-for-medium-only {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-looser-for-medium-only {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-looser-for-medium-only {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loosest-for-medium-only {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loosest-for-medium-only {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loosest-for-medium-only {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loosest-for-medium-only {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large {
    padding-left: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large {
    padding-right: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large {
    padding-top: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large-up {
    padding-left: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large-up {
    padding-right: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large-up {
    padding-top: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large-up {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large-up {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large-up {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large-up {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large-up {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large-up {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large-up {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large-up {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large-up {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large-up {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large-up {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large-up {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large-up {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large-up {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large-up {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large-up {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large-up {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large-up {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large-up {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large-up {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large-up {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large-up {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large-up {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large-up {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large-up {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large-up {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large-up {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large-up {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large-up {
    padding-bottom: 3rem !important; } }

.padding-looser {
  padding-left: 2rem !important;
  padding-right: 2rem !important;
  padding-top: 2rem !important;
  padding-bottom: 2rem !important; }

@media only screen {
  .padding-flush-for-small {
    padding-left: 0 !important; } }

@media only screen {
  .padding-flush-for-small {
    padding-right: 0 !important; } }

@media only screen {
  .padding-flush-for-small {
    padding-top: 0 !important; } }

@media only screen {
  .padding-flush-for-small {
    padding-bottom: 0 !important; } }

@media only screen {
  .padding-tightest-for-small {
    padding-left: 0.125rem !important; } }

@media only screen {
  .padding-tightest-for-small {
    padding-right: 0.125rem !important; } }

@media only screen {
  .padding-tightest-for-small {
    padding-top: 0.125rem !important; } }

@media only screen {
  .padding-tightest-for-small {
    padding-bottom: 0.125rem !important; } }

@media only screen {
  .padding-tighter-for-small {
    padding-left: 0.25rem !important; } }

@media only screen {
  .padding-tighter-for-small {
    padding-right: 0.25rem !important; } }

@media only screen {
  .padding-tighter-for-small {
    padding-top: 0.25rem !important; } }

@media only screen {
  .padding-tighter-for-small {
    padding-bottom: 0.25rem !important; } }

@media only screen {
  .padding-tight-for-small {
    padding-left: 0.5rem !important; } }

@media only screen {
  .padding-tight-for-small {
    padding-right: 0.5rem !important; } }

@media only screen {
  .padding-tight-for-small {
    padding-top: 0.5rem !important; } }

@media only screen {
  .padding-tight-for-small {
    padding-bottom: 0.5rem !important; } }

@media only screen {
  .padding-normal-for-small {
    padding-left: 0.9375rem !important; } }

@media only screen {
  .padding-normal-for-small {
    padding-right: 0.9375rem !important; } }

@media only screen {
  .padding-normal-for-small {
    padding-top: 0.9375rem !important; } }

@media only screen {
  .padding-normal-for-small {
    padding-bottom: 0.9375rem !important; } }

@media only screen {
  .padding-loose-for-small {
    padding-left: 1.5rem !important; } }

@media only screen {
  .padding-loose-for-small {
    padding-right: 1.5rem !important; } }

@media only screen {
  .padding-loose-for-small {
    padding-top: 1.5rem !important; } }

@media only screen {
  .padding-loose-for-small {
    padding-bottom: 1.5rem !important; } }

@media only screen {
  .padding-looser-for-small {
    padding-left: 2rem !important; } }

@media only screen {
  .padding-looser-for-small {
    padding-right: 2rem !important; } }

@media only screen {
  .padding-looser-for-small {
    padding-top: 2rem !important; } }

@media only screen {
  .padding-looser-for-small {
    padding-bottom: 2rem !important; } }

@media only screen {
  .padding-loosest-for-small {
    padding-left: 3rem !important; } }

@media only screen {
  .padding-loosest-for-small {
    padding-right: 3rem !important; } }

@media only screen {
  .padding-loosest-for-small {
    padding-top: 3rem !important; } }

@media only screen {
  .padding-loosest-for-small {
    padding-bottom: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-flush-for-small-only {
    padding-left: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-flush-for-small-only {
    padding-right: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-flush-for-small-only {
    padding-top: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-flush-for-small-only {
    padding-bottom: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-tightest-for-small-only {
    padding-left: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tightest-for-small-only {
    padding-right: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tightest-for-small-only {
    padding-top: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tightest-for-small-only {
    padding-bottom: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tighter-for-small-only {
    padding-left: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tighter-for-small-only {
    padding-right: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tighter-for-small-only {
    padding-top: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tighter-for-small-only {
    padding-bottom: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tight-for-small-only {
    padding-left: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tight-for-small-only {
    padding-right: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tight-for-small-only {
    padding-top: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tight-for-small-only {
    padding-bottom: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-normal-for-small-only {
    padding-left: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-normal-for-small-only {
    padding-right: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-normal-for-small-only {
    padding-top: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-normal-for-small-only {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loose-for-small-only {
    padding-left: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loose-for-small-only {
    padding-right: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loose-for-small-only {
    padding-top: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loose-for-small-only {
    padding-bottom: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-looser-for-small-only {
    padding-left: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-looser-for-small-only {
    padding-right: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-looser-for-small-only {
    padding-top: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-looser-for-small-only {
    padding-bottom: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loosest-for-small-only {
    padding-left: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loosest-for-small-only {
    padding-right: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loosest-for-small-only {
    padding-top: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loosest-for-small-only {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium {
    padding-left: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium {
    padding-right: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium {
    padding-top: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium-up {
    padding-left: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium-up {
    padding-right: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium-up {
    padding-top: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium-up {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium-up {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium-up {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium-up {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium-up {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium-up {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium-up {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium-up {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium-up {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium-up {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium-up {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium-up {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium-up {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium-up {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium-up {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium-up {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium-up {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium-up {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium-up {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium-up {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium-up {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium-up {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium-up {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium-up {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium-up {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium-up {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium-up {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium-up {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium-up {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-flush-for-medium-only {
    padding-left: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-flush-for-medium-only {
    padding-right: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-flush-for-medium-only {
    padding-top: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-flush-for-medium-only {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tightest-for-medium-only {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tightest-for-medium-only {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tightest-for-medium-only {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tightest-for-medium-only {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tighter-for-medium-only {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tighter-for-medium-only {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tighter-for-medium-only {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tighter-for-medium-only {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tight-for-medium-only {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tight-for-medium-only {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tight-for-medium-only {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tight-for-medium-only {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-normal-for-medium-only {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-normal-for-medium-only {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-normal-for-medium-only {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-normal-for-medium-only {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loose-for-medium-only {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loose-for-medium-only {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loose-for-medium-only {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loose-for-medium-only {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-looser-for-medium-only {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-looser-for-medium-only {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-looser-for-medium-only {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-looser-for-medium-only {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loosest-for-medium-only {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loosest-for-medium-only {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loosest-for-medium-only {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loosest-for-medium-only {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large {
    padding-left: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large {
    padding-right: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large {
    padding-top: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large-up {
    padding-left: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large-up {
    padding-right: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large-up {
    padding-top: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large-up {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large-up {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large-up {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large-up {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large-up {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large-up {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large-up {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large-up {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large-up {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large-up {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large-up {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large-up {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large-up {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large-up {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large-up {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large-up {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large-up {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large-up {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large-up {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large-up {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large-up {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large-up {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large-up {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large-up {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large-up {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large-up {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large-up {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large-up {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large-up {
    padding-bottom: 3rem !important; } }

.padding-loosest {
  padding-left: 3rem !important;
  padding-right: 3rem !important;
  padding-top: 3rem !important;
  padding-bottom: 3rem !important; }

@media only screen {
  .padding-flush-for-small {
    padding-left: 0 !important; } }

@media only screen {
  .padding-flush-for-small {
    padding-right: 0 !important; } }

@media only screen {
  .padding-flush-for-small {
    padding-top: 0 !important; } }

@media only screen {
  .padding-flush-for-small {
    padding-bottom: 0 !important; } }

@media only screen {
  .padding-tightest-for-small {
    padding-left: 0.125rem !important; } }

@media only screen {
  .padding-tightest-for-small {
    padding-right: 0.125rem !important; } }

@media only screen {
  .padding-tightest-for-small {
    padding-top: 0.125rem !important; } }

@media only screen {
  .padding-tightest-for-small {
    padding-bottom: 0.125rem !important; } }

@media only screen {
  .padding-tighter-for-small {
    padding-left: 0.25rem !important; } }

@media only screen {
  .padding-tighter-for-small {
    padding-right: 0.25rem !important; } }

@media only screen {
  .padding-tighter-for-small {
    padding-top: 0.25rem !important; } }

@media only screen {
  .padding-tighter-for-small {
    padding-bottom: 0.25rem !important; } }

@media only screen {
  .padding-tight-for-small {
    padding-left: 0.5rem !important; } }

@media only screen {
  .padding-tight-for-small {
    padding-right: 0.5rem !important; } }

@media only screen {
  .padding-tight-for-small {
    padding-top: 0.5rem !important; } }

@media only screen {
  .padding-tight-for-small {
    padding-bottom: 0.5rem !important; } }

@media only screen {
  .padding-normal-for-small {
    padding-left: 0.9375rem !important; } }

@media only screen {
  .padding-normal-for-small {
    padding-right: 0.9375rem !important; } }

@media only screen {
  .padding-normal-for-small {
    padding-top: 0.9375rem !important; } }

@media only screen {
  .padding-normal-for-small {
    padding-bottom: 0.9375rem !important; } }

@media only screen {
  .padding-loose-for-small {
    padding-left: 1.5rem !important; } }

@media only screen {
  .padding-loose-for-small {
    padding-right: 1.5rem !important; } }

@media only screen {
  .padding-loose-for-small {
    padding-top: 1.5rem !important; } }

@media only screen {
  .padding-loose-for-small {
    padding-bottom: 1.5rem !important; } }

@media only screen {
  .padding-looser-for-small {
    padding-left: 2rem !important; } }

@media only screen {
  .padding-looser-for-small {
    padding-right: 2rem !important; } }

@media only screen {
  .padding-looser-for-small {
    padding-top: 2rem !important; } }

@media only screen {
  .padding-looser-for-small {
    padding-bottom: 2rem !important; } }

@media only screen {
  .padding-loosest-for-small {
    padding-left: 3rem !important; } }

@media only screen {
  .padding-loosest-for-small {
    padding-right: 3rem !important; } }

@media only screen {
  .padding-loosest-for-small {
    padding-top: 3rem !important; } }

@media only screen {
  .padding-loosest-for-small {
    padding-bottom: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-flush-for-small-only {
    padding-left: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-flush-for-small-only {
    padding-right: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-flush-for-small-only {
    padding-top: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-flush-for-small-only {
    padding-bottom: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-tightest-for-small-only {
    padding-left: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tightest-for-small-only {
    padding-right: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tightest-for-small-only {
    padding-top: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tightest-for-small-only {
    padding-bottom: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tighter-for-small-only {
    padding-left: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tighter-for-small-only {
    padding-right: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tighter-for-small-only {
    padding-top: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tighter-for-small-only {
    padding-bottom: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tight-for-small-only {
    padding-left: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tight-for-small-only {
    padding-right: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tight-for-small-only {
    padding-top: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-tight-for-small-only {
    padding-bottom: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-normal-for-small-only {
    padding-left: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-normal-for-small-only {
    padding-right: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-normal-for-small-only {
    padding-top: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-normal-for-small-only {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loose-for-small-only {
    padding-left: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loose-for-small-only {
    padding-right: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loose-for-small-only {
    padding-top: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loose-for-small-only {
    padding-bottom: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-looser-for-small-only {
    padding-left: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-looser-for-small-only {
    padding-right: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-looser-for-small-only {
    padding-top: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-looser-for-small-only {
    padding-bottom: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loosest-for-small-only {
    padding-left: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loosest-for-small-only {
    padding-right: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loosest-for-small-only {
    padding-top: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-loosest-for-small-only {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium {
    padding-left: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium {
    padding-right: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium {
    padding-top: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium-up {
    padding-left: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium-up {
    padding-right: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium-up {
    padding-top: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-flush-for-medium-up {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium-up {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium-up {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium-up {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tightest-for-medium-up {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium-up {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium-up {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium-up {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tighter-for-medium-up {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium-up {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium-up {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium-up {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-tight-for-medium-up {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium-up {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium-up {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium-up {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-normal-for-medium-up {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium-up {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium-up {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium-up {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loose-for-medium-up {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium-up {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium-up {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium-up {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-looser-for-medium-up {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium-up {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium-up {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium-up {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-loosest-for-medium-up {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-flush-for-medium-only {
    padding-left: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-flush-for-medium-only {
    padding-right: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-flush-for-medium-only {
    padding-top: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-flush-for-medium-only {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tightest-for-medium-only {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tightest-for-medium-only {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tightest-for-medium-only {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tightest-for-medium-only {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tighter-for-medium-only {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tighter-for-medium-only {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tighter-for-medium-only {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tighter-for-medium-only {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tight-for-medium-only {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tight-for-medium-only {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tight-for-medium-only {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-tight-for-medium-only {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-normal-for-medium-only {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-normal-for-medium-only {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-normal-for-medium-only {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-normal-for-medium-only {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loose-for-medium-only {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loose-for-medium-only {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loose-for-medium-only {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loose-for-medium-only {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-looser-for-medium-only {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-looser-for-medium-only {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-looser-for-medium-only {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-looser-for-medium-only {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loosest-for-medium-only {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loosest-for-medium-only {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loosest-for-medium-only {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-loosest-for-medium-only {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large {
    padding-left: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large {
    padding-right: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large {
    padding-top: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large-up {
    padding-left: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large-up {
    padding-right: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large-up {
    padding-top: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-flush-for-large-up {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large-up {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large-up {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large-up {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tightest-for-large-up {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large-up {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large-up {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large-up {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tighter-for-large-up {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large-up {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large-up {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large-up {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-tight-for-large-up {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large-up {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large-up {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large-up {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-normal-for-large-up {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large-up {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large-up {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large-up {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loose-for-large-up {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large-up {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large-up {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large-up {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-looser-for-large-up {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large-up {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large-up {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large-up {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-loosest-for-large-up {
    padding-bottom: 3rem !important; } }

@media only screen {
  .padding-left-flush-for-small {
    padding-left: 0 !important; } }

@media only screen {
  .padding-left-tightest-for-small {
    padding-left: 0.125rem !important; } }

@media only screen {
  .padding-left-tighter-for-small {
    padding-left: 0.25rem !important; } }

@media only screen {
  .padding-left-tight-for-small {
    padding-left: 0.5rem !important; } }

@media only screen {
  .padding-left-normal-for-small {
    padding-left: 0.9375rem !important; } }

@media only screen {
  .padding-left-loose-for-small {
    padding-left: 1.5rem !important; } }

@media only screen {
  .padding-left-looser-for-small {
    padding-left: 2rem !important; } }

@media only screen {
  .padding-left-loosest-for-small {
    padding-left: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-left-flush-for-small-only {
    padding-left: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-left-tightest-for-small-only {
    padding-left: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-left-tighter-for-small-only {
    padding-left: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-left-tight-for-small-only {
    padding-left: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-left-normal-for-small-only {
    padding-left: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-left-loose-for-small-only {
    padding-left: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-left-looser-for-small-only {
    padding-left: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-left-loosest-for-small-only {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-left-flush-for-medium {
    padding-left: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-left-tightest-for-medium {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-left-tighter-for-medium {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-left-tight-for-medium {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-left-normal-for-medium {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-left-loose-for-medium {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-left-looser-for-medium {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-left-loosest-for-medium {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-left-flush-for-medium-up {
    padding-left: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-left-tightest-for-medium-up {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-left-tighter-for-medium-up {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-left-tight-for-medium-up {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-left-normal-for-medium-up {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-left-loose-for-medium-up {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-left-looser-for-medium-up {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-left-loosest-for-medium-up {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-left-flush-for-medium-only {
    padding-left: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-left-tightest-for-medium-only {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-left-tighter-for-medium-only {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-left-tight-for-medium-only {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-left-normal-for-medium-only {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-left-loose-for-medium-only {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-left-looser-for-medium-only {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-left-loosest-for-medium-only {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-left-flush-for-large {
    padding-left: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-left-tightest-for-large {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-left-tighter-for-large {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-left-tight-for-large {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-left-normal-for-large {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-left-loose-for-large {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-left-looser-for-large {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-left-loosest-for-large {
    padding-left: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-left-flush-for-large-up {
    padding-left: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-left-tightest-for-large-up {
    padding-left: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-left-tighter-for-large-up {
    padding-left: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-left-tight-for-large-up {
    padding-left: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-left-normal-for-large-up {
    padding-left: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-left-loose-for-large-up {
    padding-left: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-left-looser-for-large-up {
    padding-left: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-left-loosest-for-large-up {
    padding-left: 3rem !important; } }

@media only screen {
  .padding-right-flush-for-small {
    padding-right: 0 !important; } }

@media only screen {
  .padding-right-tightest-for-small {
    padding-right: 0.125rem !important; } }

@media only screen {
  .padding-right-tighter-for-small {
    padding-right: 0.25rem !important; } }

@media only screen {
  .padding-right-tight-for-small {
    padding-right: 0.5rem !important; } }

@media only screen {
  .padding-right-normal-for-small {
    padding-right: 0.9375rem !important; } }

@media only screen {
  .padding-right-loose-for-small {
    padding-right: 1.5rem !important; } }

@media only screen {
  .padding-right-looser-for-small {
    padding-right: 2rem !important; } }

@media only screen {
  .padding-right-loosest-for-small {
    padding-right: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-right-flush-for-small-only {
    padding-right: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-right-tightest-for-small-only {
    padding-right: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-right-tighter-for-small-only {
    padding-right: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-right-tight-for-small-only {
    padding-right: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-right-normal-for-small-only {
    padding-right: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-right-loose-for-small-only {
    padding-right: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-right-looser-for-small-only {
    padding-right: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-right-loosest-for-small-only {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-right-flush-for-medium {
    padding-right: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-right-tightest-for-medium {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-right-tighter-for-medium {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-right-tight-for-medium {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-right-normal-for-medium {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-right-loose-for-medium {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-right-looser-for-medium {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-right-loosest-for-medium {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-right-flush-for-medium-up {
    padding-right: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-right-tightest-for-medium-up {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-right-tighter-for-medium-up {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-right-tight-for-medium-up {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-right-normal-for-medium-up {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-right-loose-for-medium-up {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-right-looser-for-medium-up {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-right-loosest-for-medium-up {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-right-flush-for-medium-only {
    padding-right: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-right-tightest-for-medium-only {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-right-tighter-for-medium-only {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-right-tight-for-medium-only {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-right-normal-for-medium-only {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-right-loose-for-medium-only {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-right-looser-for-medium-only {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-right-loosest-for-medium-only {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-right-flush-for-large {
    padding-right: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-right-tightest-for-large {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-right-tighter-for-large {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-right-tight-for-large {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-right-normal-for-large {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-right-loose-for-large {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-right-looser-for-large {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-right-loosest-for-large {
    padding-right: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-right-flush-for-large-up {
    padding-right: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-right-tightest-for-large-up {
    padding-right: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-right-tighter-for-large-up {
    padding-right: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-right-tight-for-large-up {
    padding-right: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-right-normal-for-large-up {
    padding-right: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-right-loose-for-large-up {
    padding-right: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-right-looser-for-large-up {
    padding-right: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-right-loosest-for-large-up {
    padding-right: 3rem !important; } }

@media only screen {
  .padding-top-flush-for-small {
    padding-top: 0 !important; } }

@media only screen {
  .padding-top-tightest-for-small {
    padding-top: 0.125rem !important; } }

@media only screen {
  .padding-top-tighter-for-small {
    padding-top: 0.25rem !important; } }

@media only screen {
  .padding-top-tight-for-small {
    padding-top: 0.5rem !important; } }

@media only screen {
  .padding-top-normal-for-small {
    padding-top: 0.9375rem !important; } }

@media only screen {
  .padding-top-loose-for-small {
    padding-top: 1.5rem !important; } }

@media only screen {
  .padding-top-looser-for-small {
    padding-top: 2rem !important; } }

@media only screen {
  .padding-top-loosest-for-small {
    padding-top: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-top-flush-for-small-only {
    padding-top: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-top-tightest-for-small-only {
    padding-top: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-top-tighter-for-small-only {
    padding-top: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-top-tight-for-small-only {
    padding-top: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-top-normal-for-small-only {
    padding-top: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-top-loose-for-small-only {
    padding-top: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-top-looser-for-small-only {
    padding-top: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-top-loosest-for-small-only {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-top-flush-for-medium {
    padding-top: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-top-tightest-for-medium {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-top-tighter-for-medium {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-top-tight-for-medium {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-top-normal-for-medium {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-top-loose-for-medium {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-top-looser-for-medium {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-top-loosest-for-medium {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-top-flush-for-medium-up {
    padding-top: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-top-tightest-for-medium-up {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-top-tighter-for-medium-up {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-top-tight-for-medium-up {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-top-normal-for-medium-up {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-top-loose-for-medium-up {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-top-looser-for-medium-up {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-top-loosest-for-medium-up {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-top-flush-for-medium-only {
    padding-top: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-top-tightest-for-medium-only {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-top-tighter-for-medium-only {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-top-tight-for-medium-only {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-top-normal-for-medium-only {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-top-loose-for-medium-only {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-top-looser-for-medium-only {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-top-loosest-for-medium-only {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-top-flush-for-large {
    padding-top: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-top-tightest-for-large {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-top-tighter-for-large {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-top-tight-for-large {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-top-normal-for-large {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-top-loose-for-large {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-top-looser-for-large {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-top-loosest-for-large {
    padding-top: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-top-flush-for-large-up {
    padding-top: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-top-tightest-for-large-up {
    padding-top: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-top-tighter-for-large-up {
    padding-top: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-top-tight-for-large-up {
    padding-top: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-top-normal-for-large-up {
    padding-top: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-top-loose-for-large-up {
    padding-top: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-top-looser-for-large-up {
    padding-top: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-top-loosest-for-large-up {
    padding-top: 3rem !important; } }

@media only screen {
  .padding-bottom-flush-for-small {
    padding-bottom: 0 !important; } }

@media only screen {
  .padding-bottom-tightest-for-small {
    padding-bottom: 0.125rem !important; } }

@media only screen {
  .padding-bottom-tighter-for-small {
    padding-bottom: 0.25rem !important; } }

@media only screen {
  .padding-bottom-tight-for-small {
    padding-bottom: 0.5rem !important; } }

@media only screen {
  .padding-bottom-normal-for-small {
    padding-bottom: 0.9375rem !important; } }

@media only screen {
  .padding-bottom-loose-for-small {
    padding-bottom: 1.5rem !important; } }

@media only screen {
  .padding-bottom-looser-for-small {
    padding-bottom: 2rem !important; } }

@media only screen {
  .padding-bottom-loosest-for-small {
    padding-bottom: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-bottom-flush-for-small-only {
    padding-bottom: 0 !important; } }

@media only screen and (max-width: 40em) {
  .padding-bottom-tightest-for-small-only {
    padding-bottom: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-bottom-tighter-for-small-only {
    padding-bottom: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-bottom-tight-for-small-only {
    padding-bottom: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-bottom-normal-for-small-only {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-bottom-loose-for-small-only {
    padding-bottom: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-bottom-looser-for-small-only {
    padding-bottom: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .padding-bottom-loosest-for-small-only {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-bottom-flush-for-medium {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-bottom-tightest-for-medium {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-bottom-tighter-for-medium {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-bottom-tight-for-medium {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-bottom-normal-for-medium {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-bottom-loose-for-medium {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-bottom-looser-for-medium {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-bottom-loosest-for-medium {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-bottom-flush-for-medium-up {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-bottom-tightest-for-medium-up {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-bottom-tighter-for-medium-up {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-bottom-tight-for-medium-up {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-bottom-normal-for-medium-up {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-bottom-loose-for-medium-up {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-bottom-looser-for-medium-up {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .padding-bottom-loosest-for-medium-up {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-bottom-flush-for-medium-only {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-bottom-tightest-for-medium-only {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-bottom-tighter-for-medium-only {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-bottom-tight-for-medium-only {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-bottom-normal-for-medium-only {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-bottom-loose-for-medium-only {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-bottom-looser-for-medium-only {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .padding-bottom-loosest-for-medium-only {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-bottom-flush-for-large {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-bottom-tightest-for-large {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-bottom-tighter-for-large {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-bottom-tight-for-large {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-bottom-normal-for-large {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-bottom-loose-for-large {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-bottom-looser-for-large {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-bottom-loosest-for-large {
    padding-bottom: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-bottom-flush-for-large-up {
    padding-bottom: 0 !important; } }

@media only screen and (min-width: 64em) {
  .padding-bottom-tightest-for-large-up {
    padding-bottom: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-bottom-tighter-for-large-up {
    padding-bottom: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-bottom-tight-for-large-up {
    padding-bottom: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-bottom-normal-for-large-up {
    padding-bottom: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-bottom-loose-for-large-up {
    padding-bottom: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-bottom-looser-for-large-up {
    padding-bottom: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .padding-bottom-loosest-for-large-up {
    padding-bottom: 3rem !important; } }

/*doc
---
title: Horizontal Padding Helpers (bar)
name: c-padding-helpers-horiz
category: Layout - Layout Helpers
selectors:
    - .bar-flush
    - .bar-tightest
    - .bar-tighter
    - .bar-tight
    - .bar-normal
    - .bar-loose
    - .bar-looser
    - .bar-loosest
selector_type: layout
---

Why not also have margin-right helpers? Sometimes you need to simply
space items in a way where the grid doesn't quite cut it.

| .bar-* helper classes | margin-right |
|------------------------|---------------|
| `.bar-flush`         | rem-calc(0)   |
| `.bar-tightest`      | rem-calc(2)   |
| `.bar-tighter`       | rem-calc(4)   |
| `.bar-tight`         | rem-calc(8)   |
| `.bar-normal`        | rem-calc(16)  |
| `.bar-loose`         | rem-calc(24)  |
| `.bar-looser`        | rem-calc(32)  |
| `.bar-loosest`       | rem-calc(48)  |

```html_example?kitchen-sink=true
<div class="flex-row">
    <div class="flex-small panel bar-flush">
        <pre>bar-flush</pre>
    </div>
    <div class="flex-small panel bar-tightest">
        <pre>bar-tightest</pre>
    </div>
    <div class="flex-small panel bar-tighter">
        <pre>bar-tighter</pre>
    </div>
    <div class="flex-small panel bar-tight">
        <pre>bar-tight</pre>
    </div>
    <div class="flex-small panel bar-normal">
        <pre>bar-normal</pre>
    </div>
    <div class="flex-small panel bar-loose">
        <pre>bar-loose</pre>
    </div>
    <div class="flex-small panel bar-looser">
        <pre>bar-looser</pre>
    </div>
    <div class="flex-small panel bar-loosest">
        <pre>bar-loosest</pre>
    </div>
</div>
```

As with `.block-` and `.pad` these have the same responsive helpers.
`.bar-{flush, tight, tighter, tightest, normal, loose, looser or loosest}-for-{small-only, medium-up, medium-only or large-up}`

*/
.bar-flush {
  margin-right: 0 !important; }

.bar-tightest {
  margin-right: 0.125rem !important; }

.bar-tighter {
  margin-right: 0.25rem !important; }

.bar-tight, .search-hud-facets-list li {
  margin-right: 0.5rem !important; }

.bar-normal {
  margin-right: 0.9375rem !important; }

.bar-loose {
  margin-right: 1.5rem !important; }

.bar-looser {
  margin-right: 2rem !important; }

.bar-loosest {
  margin-right: 3rem !important; }

@media only screen {
  .bar-flush-for-small {
    margin-right: 0 !important; } }

@media only screen {
  .bar-tightest-for-small {
    margin-right: 0.125rem !important; } }

@media only screen {
  .bar-tighter-for-small {
    margin-right: 0.25rem !important; } }

@media only screen {
  .bar-tight-for-small {
    margin-right: 0.5rem !important; } }

@media only screen {
  .bar-normal-for-small {
    margin-right: 0.9375rem !important; } }

@media only screen {
  .bar-loose-for-small {
    margin-right: 1.5rem !important; } }

@media only screen {
  .bar-looser-for-small {
    margin-right: 2rem !important; } }

@media only screen {
  .bar-loosest-for-small {
    margin-right: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .bar-flush-for-small-only {
    margin-right: 0 !important; } }

@media only screen and (max-width: 40em) {
  .bar-tightest-for-small-only {
    margin-right: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .bar-tighter-for-small-only {
    margin-right: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .bar-tight-for-small-only {
    margin-right: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .bar-normal-for-small-only {
    margin-right: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .bar-loose-for-small-only {
    margin-right: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .bar-looser-for-small-only {
    margin-right: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .bar-loosest-for-small-only {
    margin-right: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .bar-flush-for-medium {
    margin-right: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .bar-tightest-for-medium {
    margin-right: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .bar-tighter-for-medium {
    margin-right: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .bar-tight-for-medium {
    margin-right: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .bar-normal-for-medium {
    margin-right: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .bar-loose-for-medium {
    margin-right: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .bar-looser-for-medium {
    margin-right: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .bar-loosest-for-medium {
    margin-right: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .bar-flush-for-medium-up {
    margin-right: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .bar-tightest-for-medium-up {
    margin-right: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .bar-tighter-for-medium-up {
    margin-right: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .bar-tight-for-medium-up {
    margin-right: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .bar-normal-for-medium-up {
    margin-right: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .bar-loose-for-medium-up {
    margin-right: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .bar-looser-for-medium-up {
    margin-right: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .bar-loosest-for-medium-up {
    margin-right: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .bar-flush-for-medium-only {
    margin-right: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .bar-tightest-for-medium-only {
    margin-right: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .bar-tighter-for-medium-only {
    margin-right: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .bar-tight-for-medium-only {
    margin-right: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .bar-normal-for-medium-only {
    margin-right: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .bar-loose-for-medium-only {
    margin-right: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .bar-looser-for-medium-only {
    margin-right: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .bar-loosest-for-medium-only {
    margin-right: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .bar-flush-for-large {
    margin-right: 0 !important; } }

@media only screen and (min-width: 64em) {
  .bar-tightest-for-large {
    margin-right: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .bar-tighter-for-large {
    margin-right: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .bar-tight-for-large {
    margin-right: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .bar-normal-for-large {
    margin-right: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .bar-loose-for-large {
    margin-right: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .bar-looser-for-large {
    margin-right: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .bar-loosest-for-large {
    margin-right: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .bar-flush-for-large-up {
    margin-right: 0 !important; } }

@media only screen and (min-width: 64em) {
  .bar-tightest-for-large-up {
    margin-right: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .bar-tighter-for-large-up {
    margin-right: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .bar-tight-for-large-up {
    margin-right: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .bar-normal-for-large-up {
    margin-right: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .bar-loose-for-large-up {
    margin-right: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .bar-looser-for-large-up {
    margin-right: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .bar-loosest-for-large-up {
    margin-right: 3rem !important; } }

/*doc
---
title: Horizontal Padding Helpers (inline)
name: c-padding-helpers-inline
category: Layout - Layout Helpers
selectors:
    - .inline-flush
    - .inline-tightest
    - .inline-tighter
    - .inline-tight
    - .inline-normal
    - .inline-loose
    - .inline-looser
    - .inline-loosest
selector_type: layout
---

| .inline-* helper classes | |
|------------------------|---------------|
| `.inline-flush`         | rem-calc(0)   |
| `.inline-tightest`      | rem-calc(2)   |
| `.inline-tighter`       | rem-calc(4)   |
| `.inline-tight`         | rem-calc(8)   |
| `.inline-normal`        | rem-calc(16)  |
| `.inline-loose`         | rem-calc(24)  |
| `.inline-looser`        | rem-calc(32)  |
| `.inline-loosest`       | rem-calc(48)  |

```html_example?kitchen-sink=true
<div class="flex-row">
    <div class="flex-small panel inline-flush">
        <pre>inline-flush</pre>
    </div>
    <div class="flex-small panel inline-tightest">
        <pre>inline-tightest</pre>
    </div>
    <div class="flex-small panel inline-tighter">
        <pre>inline-tighter</pre>
    </div>
    <div class="flex-small panel inline-tight">
        <pre>inline-tight</pre>
    </div>
    <div class="flex-small panel inline-normal">
        <pre>inline-normal</pre>
    </div>
    <div class="flex-small panel inline-loose">
        <pre>inline-loose</pre>
    </div>
    <div class="flex-small panel inline-looser">
        <pre>inline-looser</pre>
    </div>
    <div class="flex-small panel inline-loosest">
        <pre>inline-loosest</pre>
    </div>
</div>
```

As with `.block-` and `.pad` these have the same responsive helpers.
`.inline-{flush, tight, tighter, tightest, normal, loose, looser or loosest}-for-{small-only, medium-up, medium-only or large-up}`

*/
.inline-left-flush {
  margin-left: 0 !important; }

.inline-left-tightest {
  margin-left: 0.125rem !important; }

.inline-left-tighter {
  margin-left: 0.25rem !important; }

.inline-left-tight {
  margin-left: 0.5rem !important; }

.inline-left-normal {
  margin-left: 0.9375rem !important; }

.inline-left-loose {
  margin-left: 1.5rem !important; }

.inline-left-looser {
  margin-left: 2rem !important; }

.inline-left-loosest {
  margin-left: 3rem !important; }

.inline-right-flush {
  margin-right: 0 !important; }

.inline-right-tightest {
  margin-right: 0.125rem !important; }

.inline-right-tighter {
  margin-right: 0.25rem !important; }

.inline-right-tight {
  margin-right: 0.5rem !important; }

.inline-right-normal {
  margin-right: 0.9375rem !important; }

.inline-right-loose {
  margin-right: 1.5rem !important; }

.inline-right-looser {
  margin-right: 2rem !important; }

.inline-right-loosest {
  margin-right: 3rem !important; }

@media only screen {
  .inline-left-flush-for-small {
    margin-left: 0 !important; } }

@media only screen {
  .inline-left-tightest-for-small {
    margin-left: 0.125rem !important; } }

@media only screen {
  .inline-left-tighter-for-small {
    margin-left: 0.25rem !important; } }

@media only screen {
  .inline-left-tight-for-small {
    margin-left: 0.5rem !important; } }

@media only screen {
  .inline-left-normal-for-small {
    margin-left: 0.9375rem !important; } }

@media only screen {
  .inline-left-loose-for-small {
    margin-left: 1.5rem !important; } }

@media only screen {
  .inline-left-looser-for-small {
    margin-left: 2rem !important; } }

@media only screen {
  .inline-left-loosest-for-small {
    margin-left: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .inline-left-flush-for-small-only {
    margin-left: 0 !important; } }

@media only screen and (max-width: 40em) {
  .inline-left-tightest-for-small-only {
    margin-left: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .inline-left-tighter-for-small-only {
    margin-left: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .inline-left-tight-for-small-only {
    margin-left: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .inline-left-normal-for-small-only {
    margin-left: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .inline-left-loose-for-small-only {
    margin-left: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .inline-left-looser-for-small-only {
    margin-left: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .inline-left-loosest-for-small-only {
    margin-left: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .inline-left-flush-for-medium {
    margin-left: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .inline-left-tightest-for-medium {
    margin-left: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .inline-left-tighter-for-medium {
    margin-left: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .inline-left-tight-for-medium {
    margin-left: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .inline-left-normal-for-medium {
    margin-left: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .inline-left-loose-for-medium {
    margin-left: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .inline-left-looser-for-medium {
    margin-left: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .inline-left-loosest-for-medium {
    margin-left: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .inline-left-flush-for-medium-up {
    margin-left: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .inline-left-tightest-for-medium-up {
    margin-left: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .inline-left-tighter-for-medium-up {
    margin-left: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .inline-left-tight-for-medium-up {
    margin-left: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .inline-left-normal-for-medium-up {
    margin-left: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .inline-left-loose-for-medium-up {
    margin-left: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .inline-left-looser-for-medium-up {
    margin-left: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .inline-left-loosest-for-medium-up {
    margin-left: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .inline-left-flush-for-medium-only {
    margin-left: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .inline-left-tightest-for-medium-only {
    margin-left: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .inline-left-tighter-for-medium-only {
    margin-left: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .inline-left-tight-for-medium-only {
    margin-left: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .inline-left-normal-for-medium-only {
    margin-left: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .inline-left-loose-for-medium-only {
    margin-left: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .inline-left-looser-for-medium-only {
    margin-left: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .inline-left-loosest-for-medium-only {
    margin-left: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .inline-left-flush-for-large {
    margin-left: 0 !important; } }

@media only screen and (min-width: 64em) {
  .inline-left-tightest-for-large {
    margin-left: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .inline-left-tighter-for-large {
    margin-left: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .inline-left-tight-for-large {
    margin-left: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .inline-left-normal-for-large {
    margin-left: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .inline-left-loose-for-large {
    margin-left: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .inline-left-looser-for-large {
    margin-left: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .inline-left-loosest-for-large {
    margin-left: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .inline-left-flush-for-large-up {
    margin-left: 0 !important; } }

@media only screen and (min-width: 64em) {
  .inline-left-tightest-for-large-up {
    margin-left: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .inline-left-tighter-for-large-up {
    margin-left: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .inline-left-tight-for-large-up {
    margin-left: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .inline-left-normal-for-large-up {
    margin-left: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .inline-left-loose-for-large-up {
    margin-left: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .inline-left-looser-for-large-up {
    margin-left: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .inline-left-loosest-for-large-up {
    margin-left: 3rem !important; } }

@media only screen {
  .inline-right-flush-for-small {
    margin-right: 0 !important; } }

@media only screen {
  .inline-right-tightest-for-small {
    margin-right: 0.125rem !important; } }

@media only screen {
  .inline-right-tighter-for-small {
    margin-right: 0.25rem !important; } }

@media only screen {
  .inline-right-tight-for-small {
    margin-right: 0.5rem !important; } }

@media only screen {
  .inline-right-normal-for-small {
    margin-right: 0.9375rem !important; } }

@media only screen {
  .inline-right-loose-for-small {
    margin-right: 1.5rem !important; } }

@media only screen {
  .inline-right-looser-for-small {
    margin-right: 2rem !important; } }

@media only screen {
  .inline-right-loosest-for-small {
    margin-right: 3rem !important; } }

@media only screen and (max-width: 40em) {
  .inline-right-flush-for-small-only {
    margin-right: 0 !important; } }

@media only screen and (max-width: 40em) {
  .inline-right-tightest-for-small-only {
    margin-right: 0.125rem !important; } }

@media only screen and (max-width: 40em) {
  .inline-right-tighter-for-small-only {
    margin-right: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .inline-right-tight-for-small-only {
    margin-right: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .inline-right-normal-for-small-only {
    margin-right: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .inline-right-loose-for-small-only {
    margin-right: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .inline-right-looser-for-small-only {
    margin-right: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .inline-right-loosest-for-small-only {
    margin-right: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .inline-right-flush-for-medium {
    margin-right: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .inline-right-tightest-for-medium {
    margin-right: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .inline-right-tighter-for-medium {
    margin-right: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .inline-right-tight-for-medium {
    margin-right: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .inline-right-normal-for-medium {
    margin-right: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .inline-right-loose-for-medium {
    margin-right: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .inline-right-looser-for-medium {
    margin-right: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .inline-right-loosest-for-medium {
    margin-right: 3rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .inline-right-flush-for-medium-up {
    margin-right: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .inline-right-tightest-for-medium-up {
    margin-right: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .inline-right-tighter-for-medium-up {
    margin-right: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .inline-right-tight-for-medium-up {
    margin-right: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .inline-right-normal-for-medium-up {
    margin-right: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .inline-right-loose-for-medium-up {
    margin-right: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .inline-right-looser-for-medium-up {
    margin-right: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .inline-right-loosest-for-medium-up {
    margin-right: 3rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .inline-right-flush-for-medium-only {
    margin-right: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .inline-right-tightest-for-medium-only {
    margin-right: 0.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .inline-right-tighter-for-medium-only {
    margin-right: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .inline-right-tight-for-medium-only {
    margin-right: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .inline-right-normal-for-medium-only {
    margin-right: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .inline-right-loose-for-medium-only {
    margin-right: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .inline-right-looser-for-medium-only {
    margin-right: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .inline-right-loosest-for-medium-only {
    margin-right: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .inline-right-flush-for-large {
    margin-right: 0 !important; } }

@media only screen and (min-width: 64em) {
  .inline-right-tightest-for-large {
    margin-right: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .inline-right-tighter-for-large {
    margin-right: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .inline-right-tight-for-large {
    margin-right: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .inline-right-normal-for-large {
    margin-right: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .inline-right-loose-for-large {
    margin-right: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .inline-right-looser-for-large {
    margin-right: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .inline-right-loosest-for-large {
    margin-right: 3rem !important; } }

@media only screen and (min-width: 64em) {
  .inline-right-flush-for-large-up {
    margin-right: 0 !important; } }

@media only screen and (min-width: 64em) {
  .inline-right-tightest-for-large-up {
    margin-right: 0.125rem !important; } }

@media only screen and (min-width: 64em) {
  .inline-right-tighter-for-large-up {
    margin-right: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .inline-right-tight-for-large-up {
    margin-right: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .inline-right-normal-for-large-up {
    margin-right: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .inline-right-loose-for-large-up {
    margin-right: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .inline-right-looser-for-large-up {
    margin-right: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .inline-right-loosest-for-large-up {
    margin-right: 3rem !important; } }

/*doc
---
title: Top Margin Helpers
name: c-margin-top-helpers
category: Layout - Layout Helpers
selectors:
    - .margin-top-flush
    - .margin-top-tighter
    - .margin-top-tight
    - .margin-top-loose
    - .margin-top-looser
selector_type: layout
---

Why not also have margin-top helpers? Sometimes you need to simply
space items in a way where the grid doesn't quite cut it.

| .margin-top helper classes  | margin-top    |
|-----------------------------|---------------|
| `.margin-top-flush`         | rem-calc(0)   |
| `.margin-top-tighter`       | rem-calc(5)   |
| `.margin-top-tight`         | rem-calc(10)  |
| `.margin-top-normal`        | rem-calc(15)  |
| `.margin-top-loose`         | rem-calc(20)  |
| `.margin-top-looser`        | rem-calc(25)  |

```html_example?kitchen-sink=true
<div class="flex-row">
    <div class="flex-small panel margin-top-flush">
        <pre>margin-top-flush</pre>
    </div>
    <div class="flex-small panel margin-top-tighter">
        <pre>margin-top-tighter></pre>
    </div>
    <div class="flex-small panel margin-top-tight">
        <pre>margin-top-tight</pre>
    </div>
    <div class="flex-small panel margin-top-normal">
        <pre>margin-top-normal</pre>
    </div>
    <div class="flex-small panel margin-top-loose">
        <pre>margin-top-loose</pre>
    </div>
    <div class="flex-small panel margin-top-looser">
        <pre>margin-top-looser></pre>
    </div>
</div>
```

As with `.block-` and `.pad` these have the same responsive helpers.
`.margin-top-{flush, tight, tighter, tightest, normal, loose, looser or loosest}-for-{small-only, medium-up, medium-only or large-up}`

*/
.margin-top-flush {
  margin-top: 0 !important; }

.margin-top-tighter {
  margin-top: 0.25rem !important; }

.margin-top-tight {
  margin-top: 0.5rem !important; }

.margin-top-normal {
  margin-top: 0.9375rem !important; }

.margin-top-loose {
  margin-top: 1.5rem !important; }

.margin-top-looser {
  margin-top: 2rem !important; }

@media only screen {
  .margin-top-flush-for-small {
    margin-top: 0 !important; } }

@media only screen {
  .margin-top-tighter-for-small {
    margin-top: 0.25rem !important; } }

@media only screen {
  .margin-top-tight-for-small {
    margin-top: 0.5rem !important; } }

@media only screen {
  .margin-top-normal-for-small {
    margin-top: 0.9375rem !important; } }

@media only screen {
  .margin-top-loose-for-small {
    margin-top: 1.5rem !important; } }

@media only screen {
  .margin-top-looser-for-small {
    margin-top: 2rem !important; } }

@media only screen and (max-width: 40em) {
  .margin-top-flush-for-small-only {
    margin-top: 0 !important; } }

@media only screen and (max-width: 40em) {
  .margin-top-tighter-for-small-only {
    margin-top: 0.25rem !important; } }

@media only screen and (max-width: 40em) {
  .margin-top-tight-for-small-only {
    margin-top: 0.5rem !important; } }

@media only screen and (max-width: 40em) {
  .margin-top-normal-for-small-only {
    margin-top: 0.9375rem !important; } }

@media only screen and (max-width: 40em) {
  .margin-top-loose-for-small-only {
    margin-top: 1.5rem !important; } }

@media only screen and (max-width: 40em) {
  .margin-top-looser-for-small-only {
    margin-top: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .margin-top-flush-for-medium {
    margin-top: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .margin-top-tighter-for-medium {
    margin-top: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .margin-top-tight-for-medium {
    margin-top: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .margin-top-normal-for-medium {
    margin-top: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .margin-top-loose-for-medium {
    margin-top: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .margin-top-looser-for-medium {
    margin-top: 2rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .margin-top-flush-for-medium-up {
    margin-top: 0 !important; } }

@media only screen and (min-width: 40.0625em) {
  .margin-top-tighter-for-medium-up {
    margin-top: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .margin-top-tight-for-medium-up {
    margin-top: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .margin-top-normal-for-medium-up {
    margin-top: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .margin-top-loose-for-medium-up {
    margin-top: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .margin-top-looser-for-medium-up {
    margin-top: 2rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .margin-top-flush-for-medium-only {
    margin-top: 0 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .margin-top-tighter-for-medium-only {
    margin-top: 0.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .margin-top-tight-for-medium-only {
    margin-top: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .margin-top-normal-for-medium-only {
    margin-top: 0.9375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .margin-top-loose-for-medium-only {
    margin-top: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .margin-top-looser-for-medium-only {
    margin-top: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .margin-top-flush-for-large {
    margin-top: 0 !important; } }

@media only screen and (min-width: 64em) {
  .margin-top-tighter-for-large {
    margin-top: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .margin-top-tight-for-large {
    margin-top: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .margin-top-normal-for-large {
    margin-top: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .margin-top-loose-for-large {
    margin-top: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .margin-top-looser-for-large {
    margin-top: 2rem !important; } }

@media only screen and (min-width: 64em) {
  .margin-top-flush-for-large-up {
    margin-top: 0 !important; } }

@media only screen and (min-width: 64em) {
  .margin-top-tighter-for-large-up {
    margin-top: 0.25rem !important; } }

@media only screen and (min-width: 64em) {
  .margin-top-tight-for-large-up {
    margin-top: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .margin-top-normal-for-large-up {
    margin-top: 0.9375rem !important; } }

@media only screen and (min-width: 64em) {
  .margin-top-loose-for-large-up {
    margin-top: 1.5rem !important; } }

@media only screen and (min-width: 64em) {
  .margin-top-looser-for-large-up {
    margin-top: 2rem !important; } }

/*doc
---
title: Visibility Helpers
name: d-visibility-helpers
category: Layout - Layout Helpers
selectors:
    - .show-for-small-only
    - .show-for-medium-small
    - .show-for-medium-up
    - .show-for-medium-only
    - .show-for-medium-wider-only
    - .show-for-large-up
    - .show-for-large-only
    - .show-for-xlarge-up
    - .show-for-xlarge-only
    - .show-for-xxlarge-up
    - .hide-for-small-only
    - .hide-for-medium-small
    - .hide-for-medium-up
    - .hide-for-medium-only
    - .hide-for-medium-wider-only
    - .hide-for-large-up
    - .hide-for-large-only
    - .hide-for-xlarge-up
    - .hide-for-xlarge-only
    - .hide-for-xxlarge-up
selector_type: layout
---

**Note:** This works by throwing in a `display: inherit !important`. So keep in mind
(currently) that if you want it to be visibled inline or block, you have to set the
 parent's display property. Even for `hide-for-small-only`. Sucks.

### Show

In this example, we use the show visibility classes to show certain strings of
text based on the device on which users view a page. If their browser meets the
class's conditions, the element will be shown. If not, it will be hidden.

```html_example?kitchen-sink=true
<p class="panel">
    <strong class="show-for-small-only">Show for small only</strong>
    <strong class="show-for-medium-small-only">Show for medium-small only</strong>
    <strong class="show-for-medium-up">Show for medium up.</strong>
    <strong class="show-for-medium-only">Show for medium only.</strong>
    <strong class="show-for-large-up">Show for large up.</strong>
    <strong class="show-for-large-only">Show for large only.</strong>
    <strong class="show-for-xlarge-up">Show for xlarge up.</strong>
    <strong class="show-for-xlarge-only">Show for xlarge only.</strong>
    <strong class="show-for-xxlarge-up">Show for xxlarge up.</strong>
</p>
```

#### Sticky-Based Visibility

Similar to how show works for device widths, we use 'show-in-stuck-for-*'
to display an element that is a child of an element stuck using [Scroll to Fixed (JS)](/stickies_-_scroll_to_fixed_(js).html).

These use responsive helpers: `.show-in-stuck-for-{small-only, medium-up, medium-only or large-up}`

#### Optional Location-Based Visibility

When the `lib\util\location-classes.js` module is loaded on a page and geolocation data
is loaded successfully, CSS classes will be added to the `html` element:
`.location-${ country code }` or `.location-unknown`.

These classes are then used to define for us several location-based
visibility classes `.show-for-location-us-only`, `.show-for-location-us-or-unknown-only`,
`.show-for-location-not-us-only`, and `.show-for-location-not-us-or-unknown-only`,
which hide elements based on the visitors geolocation.

Note that Akamai Edge Side Includes functionality is used to determine location, so location
will usually only be known for code running in production.

### Hide

This example shows the opposite: It uses the hide visibility classes to state
which elements should disappear based on your device's screen size or orientation.
Users will see elements on every browser except those that meet these conditions.

``` html_example
<p class="panel">
    <strong class="hide-for-small-only">Hide for small only</strong>
    <strong class="hide-for-medium-small-only">Hide for medium-small only</strong>
    <strong class="hide-for-medium-up">Hide for medium up</strong>
    <strong class="hide-for-medium-only">Hide for medium only</strong>

    <strong class="hide-for-large-up">Hide for large up</strong>
    <strong class="hide-for-large-only">Hide for large only</strong>
    <strong class="hide-for-xlarge-up">Hide for xlarge up</strong>
    <strong class="hide-for-xlarge-only">Hide for xlarge only</strong>
    <strong class="hide-for-xxlarge-up">Hide for xxlarge up.</strong>
</p>
```

Since we're running Modernizr, we can style for when Javascript is or isn't running
as well. When our base templates start out with the `.no-js` class on `<html>` by default,
Modernizr will rewrite it to `.js` if/when it starts, allowing our CSS to know
when JS is running. (See https://modernizr.com/docs)

We can use either `.hide-for-no-js-only` to hide something when JS is not running,
or `.hide-for-js-only` to hide something only when it is.

We can also use `.show-for-no-js` to force-show something when JS is not running.
(Note that it forces `display: inherit`, which might not be optimal in all cases.)

```html_example?kitchen-sink=true
<p class="panel">
    <strong class="hide-for-js-only">Hidden only when Javascript is running</strong>
    <strong class="hide-for-no-js-only">Hidden only when Javascript is not running</strong>
    <strong class="is-hidden show-for-no-js">Hidden by default, but forced to show when Javascript is not running</strong>
</p>
```
*/
html.no-touch .show-for-hover-container .show-for-hover {
  visibility: hidden; }

html.no-touch .show-for-hover-container:hover .show-for-hover {
  visibility: visible; }

html.no-js .show-for-no-js {
  display: inherit !important; }

@media only screen {
  .show-in-stuck-for-small {
    display: none !important; }
  .scroll-to-fixed-fixed .show-in-stuck-for-small {
    display: unset !important; } }

@media only screen and (max-width: 40em) {
  .show-in-stuck-for-small-only {
    display: none !important; }
  .scroll-to-fixed-fixed .show-in-stuck-for-small-only {
    display: unset !important; } }

@media only screen and (min-width: 40.0625em) {
  .show-in-stuck-for-medium {
    display: none !important; }
  .scroll-to-fixed-fixed .show-in-stuck-for-medium {
    display: unset !important; } }

@media only screen and (min-width: 40.0625em) {
  .show-in-stuck-for-medium-up {
    display: none !important; }
  .scroll-to-fixed-fixed .show-in-stuck-for-medium-up {
    display: unset !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .show-in-stuck-for-medium-only {
    display: none !important; }
  .scroll-to-fixed-fixed .show-in-stuck-for-medium-only {
    display: unset !important; } }

@media only screen and (min-width: 64em) {
  .show-in-stuck-for-large {
    display: none !important; }
  .scroll-to-fixed-fixed .show-in-stuck-for-large {
    display: unset !important; } }

@media only screen and (min-width: 64em) {
  .show-in-stuck-for-large-up {
    display: none !important; }
  .scroll-to-fixed-fixed .show-in-stuck-for-large-up {
    display: unset !important; } }

html:not(.location-us) .show-for-location-us-only {
  display: none !important; }

html:not(.location-us):not(.location-unknown) .show-for-location-us-or-unknown-only {
  display: none !important; }

html:not(.location-not-us) .show-for-location-not-us-only {
  display: none !important; }

html:not(.location-not-us):not(.location-unknown) .show-for-location-not-us-or-unknown-only {
  display: none !important; }

.visible-for-small-widest-86-up {
  clip: rect(1px, 1px, 1px, 1px);
  height: 1px;
  overflow: hidden;
  position: absolute !important;
  width: 1px; }
  @media (min-width: 500px) {
    .visible-for-small-widest-86-up {
      position: static !important;
      height: auto;
      width: auto;
      overflow: visible;
      clip: auto; } }

.hidden-for-small-widest-86-up {
  position: static !important;
  height: auto;
  width: auto;
  overflow: visible;
  clip: auto; }
  @media (min-width: 500px) {
    .hidden-for-small-widest-86-up {
      clip: rect(1px, 1px, 1px, 1px);
      height: 1px;
      overflow: hidden;
      position: absolute !important;
      width: 1px; } }

@media (max-width: 40em) {
  .show-for-medium-wider-only {
    display: none !important; } }

@media (min-width: 40.0625em) and (max-width: 54.9375em) {
  .show-for-medium-wider-only {
    display: inherit !important; } }

@media (min-width: 55em) {
  .show-for-medium-wider-only {
    display: none !important; } }

@media (min-width: 40.0625em) and (max-width: 54.9375em) {
  .hide-for-medium-wider-only {
    display: none !important; } }

@media (max-width: 40em) {
  .show-for-medium-wide-only {
    display: none !important; } }

@media (min-width: 40.0625em) and (max-width: 47.9375em) {
  .show-for-medium-wide-only {
    display: inherit !important; } }

@media (min-width: 63.9375em) {
  .show-for-medium-wide-only {
    display: none !important; } }

/*doc
---
title: Display Type Helpers
name: d-display-type-helpers
category: Layout - Layout Helpers
selectors:
    - .display-inline
    - .display-inline-block
    - .display-block
    - .display-inline-for-small-only
    - .display-inline-for-medium-up
    - .display-inline-for-medium-only
    - .display-inline-for-large-up
    - .display-inline-block-for-small-only
    - .display-block-for-small-only
    - .display-inline-block-for-medium-up
    - .display-block-for-medium-up
    - .display-inline-block-for-medium-only
    - .display-block-for-medium-only
    - .display-inline-block-for-large-up
    - .display-block-for-large-up
selector_type: layout
---

You can change the display property of an element for all breakpoints and
for specific breakpoints.

// TODO: make a mixin

| display: inline                   | display: inline-block                  |  display: block                 |
|-----------------------------------|----------------------------------------|---------------------------------|
| `.display-inline-for-small-only`  | `.display-inline-block-for-small-only` | `.display-block-for-small-only` |
| `.display-inline-for-medium-up`   | `.display-inline-block-for-medium-up`  | `.display-block-for-medium-up`  |
| `.display-inline-for-medium-only` | `.display-inline-block-for-medium-only`| `.display-block-for-medium-only`|
| `.display-inline-for-large-up`    | `.display-inline-block-for-large-up`   | `.display-block-for-large-up`   |


Use case illustrated below shows the items all on one line for small and on 2 lines for medium-up:

```html_example
<div class="media">
    <a class="left" href="#">
        <svg class="media-object icon medium nolink">
            <use xlink:href="/static/sprites/svg/sprite.symbol.svg#newspaper"/>
        </svg>
    </a>

    <div class="media-body">
        <h4 class="media-heading heading-small display-inline-for-small-only">0.9%</h4>
        <h4 class="subheader text-smaller text-muted text-uppercase display-inline-for-small-only">Unemployment Rate</h4>
    </div>
</div>
```

### A useful example

Here is a case using float helpers and display helpers together. On small we just have just the next button and we want it full width.
In order to do this, we hide the left button on small, kill the float using `.right-for-medium-up` and force display block on the button with `.display-block-for-small-only`
(of course we can go the semantic route, but this gets the job done).

``` html_example
<div class="clearfix">
    <a href="{{pagerPrev.url}}" class="left button radius secondary shadow show-for-medium-up">
        <svg class="icon flipped"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#arrow-button" /></svg>
        <strong>Previous:</strong> {{pagerPrev.name}}
    </a>
     <a href="{{pagerNext.url}}" class="right-for-medium-up button radius secondary shadow display-block-for-small-only">
        <strong>Next:</strong> {{pagerNext.name}}
        <svg class="icon"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#arrow-button" /></svg>
    </a>
</div>
```
*/
.display-inline {
  display: inline !important; }

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

.display-block {
  display: block !important; }

.display-flex {
  display: -webkit-box !important;
  display: -webkit-flex !important;
  display: -moz-flex !important;
  display: -ms-flexbox !important;
  display: flex !important; }

@media only screen {
  .display-inline-for-small {
    display: inline !important; } }

@media only screen {
  .display-inline-block-for-small {
    display: inline-block !important; } }

@media only screen {
  .display-block-for-small {
    display: block !important; } }

@media only screen {
  .display-flex-for-small {
    display: -webkit-box !important;
    display: -webkit-flex !important;
    display: -moz-flex !important;
    display: -ms-flexbox !important;
    display: flex !important; } }

@media only screen and (max-width: 40em) {
  .display-inline-for-small-only {
    display: inline !important; } }

@media only screen and (max-width: 40em) {
  .display-inline-block-for-small-only {
    display: inline-block !important; } }

@media only screen and (max-width: 40em) {
  .display-block-for-small-only {
    display: block !important; } }

@media only screen and (max-width: 40em) {
  .display-flex-for-small-only {
    display: -webkit-box !important;
    display: -webkit-flex !important;
    display: -moz-flex !important;
    display: -ms-flexbox !important;
    display: flex !important; } }

@media only screen and (min-width: 40.0625em) {
  .display-inline-for-medium {
    display: inline !important; } }

@media only screen and (min-width: 40.0625em) {
  .display-inline-block-for-medium {
    display: inline-block !important; } }

@media only screen and (min-width: 40.0625em) {
  .display-block-for-medium {
    display: block !important; } }

@media only screen and (min-width: 40.0625em) {
  .display-flex-for-medium {
    display: -webkit-box !important;
    display: -webkit-flex !important;
    display: -moz-flex !important;
    display: -ms-flexbox !important;
    display: flex !important; } }

@media only screen and (min-width: 40.0625em) {
  .display-inline-for-medium-up {
    display: inline !important; } }

@media only screen and (min-width: 40.0625em) {
  .display-inline-block-for-medium-up {
    display: inline-block !important; } }

@media only screen and (min-width: 40.0625em) {
  .display-block-for-medium-up {
    display: block !important; } }

@media only screen and (min-width: 40.0625em) {
  .display-flex-for-medium-up {
    display: -webkit-box !important;
    display: -webkit-flex !important;
    display: -moz-flex !important;
    display: -ms-flexbox !important;
    display: flex !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .display-inline-for-medium-only {
    display: inline !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .display-inline-block-for-medium-only {
    display: inline-block !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .display-block-for-medium-only {
    display: block !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .display-flex-for-medium-only {
    display: -webkit-box !important;
    display: -webkit-flex !important;
    display: -moz-flex !important;
    display: -ms-flexbox !important;
    display: flex !important; } }

@media only screen and (min-width: 64em) {
  .display-inline-for-large {
    display: inline !important; } }

@media only screen and (min-width: 64em) {
  .display-inline-block-for-large {
    display: inline-block !important; } }

@media only screen and (min-width: 64em) {
  .display-block-for-large {
    display: block !important; } }

@media only screen and (min-width: 64em) {
  .display-flex-for-large {
    display: -webkit-box !important;
    display: -webkit-flex !important;
    display: -moz-flex !important;
    display: -ms-flexbox !important;
    display: flex !important; } }

@media only screen and (min-width: 64em) {
  .display-inline-for-large-up {
    display: inline !important; } }

@media only screen and (min-width: 64em) {
  .display-inline-block-for-large-up {
    display: inline-block !important; } }

@media only screen and (min-width: 64em) {
  .display-block-for-large-up {
    display: block !important; } }

@media only screen and (min-width: 64em) {
  .display-flex-for-large-up {
    display: -webkit-box !important;
    display: -webkit-flex !important;
    display: -moz-flex !important;
    display: -ms-flexbox !important;
    display: flex !important; } }

/*doc
---
title: Display Table Cell
name: d-display-table-cell
category: Layout - Layout Helpers
selectors:
    - .display-table-cell
    - .display-table
    - .display-table-for-large-up-only
    - .table-cell-center
selector_type: layout
---

Use this class to prevent classes with bulleted text from wrapping to the beginning of the line.

``` html_example
<ul class="no-bullet">
    <li class="block-tight">
        <div class="left bar-tight">
            <svg class="icon badge ranking" xmlns="http://www.w3.org/2000/svg"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#mini-badge" /></svg>
            <strong>#1</strong>
        </div>
        <a class="text-black display-table-cell" href="#">
            <span>First item</span>
        </a>
    </li>
    <li class="block-tight">
        <div class="left bar-tight">
            <svg class="icon badge ranking" xmlns="http://www.w3.org/2000/svg"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#mini-badge" /></svg>
            <strong>#2</strong>
        </div>
        <a class="text-black display-table-cell" href="#">
            <span>An item with a really, really, really, really, long name. (Really)</span>
        </a>
    </li>
    <li class="block-tight">
        <div class="left bar-tight">
            <svg class="icon badge ranking" xmlns="http://www.w3.org/2000/svg"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#mini-badge" /></svg>
            <strong>#3</strong>
        </div>
        <a class="text-black display-table-cell" href="#">
            <span>Third item</span>
        </a>
    </li>
</ul>
```

*/
.display-table {
  display: table !important; }

.display-table-for-large-up-only {
  display: none; }
  @media only screen and (min-width: 64em) {
    .display-table-for-large-up-only {
      display: table;
      width: 100%; } }

.display-table-cell {
  display: table-cell; }
  .display-table-cell.align-middle {
    vertical-align: middle; }

.table-cell-center {
  display: table-cell;
  vertical-align: middle;
  padding-left: 1.875rem;
  padding-right: 1.875rem;
  width: 100%;
  height: auto; }
  @media only screen and (min-width: 64em) {
    .table-cell-center {
      height: 11.75rem;
      min-height: 11.75rem;
      max-height: 11.75rem; } }

/*doc
---
title: Float Helpers
name: e-float-helpers
category: Layout - Layout Helpers
selectors:
    - .left-for-small-only
    - .right-for-small-only
    - .left-for-medium-up
    - .right-for-medium-up
    - .left-for-medium-only
    - .right-for-medium-only
    - .left-for-large-up
    - .right-for-large-up
selector_type: layout
---

You can change the float behavior of an element by adding .left or .right to
an HTML element. To clear floats, add the class .clearfix to the parent element
or use the class .clear to clear both above an element.

If you need to change float behavior at different breakpoints you can use:

| Left                    | Right                   |
|------------------------ | ------------------------|
| `.left-for-small-only`  | `.right-for-small-only` |
| `.left-for-medium-up`   | `.right-for-medium-up`  |
| `.left-for-medium-only` | `.right-for-medium-only`|
| `.left-for-large-up`    | `.right-for-large-up`   |


```html_example?kitchen-sink=true
<div class="panel clearfix">
    <a class="button right">Float Right</a>
    <a class="button left-for-small-only">Float Left</a>
</div>
```
*/
@media only screen {
  .right-for-small {
    float: right !important; } }

@media only screen {
  .left-for-small {
    float: left !important; } }

@media only screen and (max-width: 40em) {
  .right-for-small-only {
    float: right !important; } }

@media only screen and (max-width: 40em) {
  .left-for-small-only {
    float: left !important; } }

@media only screen and (min-width: 40.0625em) {
  .right-for-medium {
    float: right !important; } }

@media only screen and (min-width: 40.0625em) {
  .left-for-medium {
    float: left !important; } }

@media only screen and (min-width: 40.0625em) {
  .right-for-medium-up {
    float: right !important; } }

@media only screen and (min-width: 40.0625em) {
  .left-for-medium-up {
    float: left !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .right-for-medium-only {
    float: right !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .left-for-medium-only {
    float: left !important; } }

@media only screen and (min-width: 64em) {
  .right-for-large {
    float: right !important; } }

@media only screen and (min-width: 64em) {
  .left-for-large {
    float: left !important; } }

@media only screen and (min-width: 64em) {
  .right-for-large-up {
    float: right !important; } }

@media only screen and (min-width: 64em) {
  .left-for-large-up {
    float: left !important; } }

.clear {
  clear: both; }

/*doc
---
title: Full Width Helper
name: h-full-width
category: Layout - Layout Helpers
selectors:
    - .full-width
    - .full-width-for-small-only
    - .vertical-align
---

>**TODO:** Refactor, seems too specific to an implementation

This is most commonly use in the rail on divs surrounding all component (block level), so that they all have the same styling of 25px padding-bottom, border-bottom, 25px margin-bottom

The assumption is that all components that are secondary content (that go into the rail on large, will have no padding/margin on the ourside of the component (what you visually see at the end of it))

``` html_example
<aside id="rail"><!-- example of where it would be in the layout -->

    <div class="bordered-bottom full-width">
        <div class=".ad-rectangle">
            <img src="http://placehold.it/300x250/999999/ffffff&text=DESKTOP AD"/>
        </div>
    </div>

</aside>
```

``` sass_example
.full-width {
    width: 100%;
}
```
*/
.full-width {
  width: 100%; }

@media only screen and (max-width: 40em) {
  .full-width-for-small-only {
    width: 100%; } }

.full-height {
  height: 100%; }

@media only screen and (max-width: 40em) {
  .full-height-for-small-only {
    height: 100%; } }

.vertical-align > li > * {
  display: inline-block;
  vertical-align: middle; }

/*doc
---
title: Callout Helpers
name: e-callout-helpers
category: Layout - Layout Helpers
selectors:
    - .callout-left
    - .callout-right
selector_type: layout
template:
    alignment: left
---

This is for content that floats left or right in an article body. On mobile, it takes the
entire width.

```html_example
<div class="clearfix">
    <div class="callout-right text-center clearfix">
        <img class="block-tight" style="max-width: 100%;border:1px solid #999" src="http://www-uat5.usnews.com/dims4/USNEWS/a4ff4db/2147483647/resize/300x/quality/85/?url=http%3A%2F%2Fwww.usnews.com%2Fcmsmedia%2F93%2F8b%2Fcd836190469ba0ad46d65d2387b4%2Fap269870917683-4.jpg" alt="Civilians and armed forces members carry the flag-draped coffin of Iranian Revolutionary Guard Brig. Gen. Mohammad Ali Allahdadi in his funeral ceremony outside the Guard compound in Tehran, Iran, Wednesday, Jan. 21, 2015. " title="Vahid Salemi/AP" data-doc-id="7cbb47d7-0d99-43b1-b832-4be244cdf1b6">
        <p class="text-muted text-small block-normal text-left" style="max-width:300px;margin: 0 auto;" data-doc-id="0c38e807-d1bd-444a-bda9-1ae1639e1ef3">Day in Photos: World Economic Forum</p>

        <p class="block-tight text-small text-muted text-left" style="max-width:300px;margin: 0 auto;" data-doc-id="1a341318-6707-4e3f-af75-2647f357d159"><svg class="icon muted rotate-135" data-doc-id="502023f8-f552-4519-955b-d8dbd218dfb4" viewBox="0 0 64 64"><style>.st0{fill:#d0b152}.st1{fill:#f9c14f}.st2{fill:#fdd895}.st3{fill:#010101}.st4{fill:none}.st5{stroke:#000;stroke-width:4.8066;stroke-miterlimit:10}</style><path d="M49.3 32.4L32.8 48.8c-.6.6-1.4.9-2.3.9-.9 0-1.7-.4-2.3-.9l-1.9-1.9c-.6-.6-1-1.4-1-2.3s.4-1.7 1-2.3l7.4-7.4H16c-1.8 0-3-1.5-3-3.2v-3.2c0-1.7 1.1-3.2 3-3.2h17.8l-7.4-7.4c-.6-.6-1-1.4-1-2.3 0-.9.4-1.7 1-2.3l1.9-1.9c.6-.6 1.4-1 2.3-1 .9 0 1.7.4 2.3 1l16.5 16.5c.6.6.9 1.4.9 2.3-.1.7-.4 1.6-1 2.2z"></path></svg> EXPAND GALLERY</p>
        <hr style="max-width:300px;margin: 0 auto;">
    </div>
</div>
```

*/
.callout-left, .callout-right {
  width: 100%;
  margin-bottom: 0.9375rem; }
  @media only screen and (min-width: 40.0625em) {
    .callout-left, .callout-right {
      width: auto; } }

@media only screen and (min-width: 40.0625em) {
  .callout-left {
    float: left;
    margin-right: 1.5rem;
    max-width: 300px; } }

@media only screen and (min-width: 64em) {
  .large-8.large-offset-2 > .callout-left {
    margin-left: -6rem; } }

@media only screen and (min-width: 40.0625em) {
  .callout-right {
    float: right;
    margin-left: 1.5rem;
    max-width: 300px;
    position: relative;
    z-index: 2; } }

@media only screen and (min-width: 64em) {
  .large-8.large-offset-2 > .callout-right {
    margin-right: -6rem; } }

/*
Quick fix to get the HRs to collapse a bit
*/
hr.tight {
  margin: 0.5rem 0 0.5rem; }

hr.flush {
  margin: 0; }

/*doc
---
title: Hug
name: f-hug
category: Layout - Layout Helpers
selectors:
    - .hug
selector_type: layout
---

Sometimes you need to pull a component up one pixel.
Put `.hug` on a component and it will apply a -1px margin-top.

See an example below of how it could be helpful:

```html_example
<div class="panel naked block-flush">
    <h5>This is a panel with a .block-flush class.</h5>
    <p>See what happens below</p>
</div>

<div class="panel naked hug">
    <h5>This a panel with .naked.hug class</h5>
    <p>It is designed to work below another panel where you want
    to create a 1px border between</p>
</div>

<div class="panel naked block-flush">
    <h5>no hug</h5>
</div>

<div class="panel naked">
    <h5>no hug</h5>
</div>
```
*/
.hug {
  margin-top: -1px; }

/*doc
---
title: Background Positioning
name: f-background-position
category: Layout - Background Positioning
selectors:
    - .background_position_top_center
    - .background_position_bottom_center
selector_type: layout
---

Sometimes you need to pull a component up one pixel.
Put `.hug` on a component and it will apply a -1px margin-top.

*/
.background_position_top_center {
  background-position: top center; }

.background_position_bottom_center {
  background-position: bottom center; }

/*doc
---
title: Relative Positioning
name: g-relative-positioning
category: Layout - Layout Helpers
selectors:
    - .relative
selector_type: layout
---

Sometimes you need `position: relative` on a container to control
child elements that are absolutely positioned.
*/
.relative {
  position: relative !important; }

/*doc
---
title: Absolute Positioning
name: g-absolute-positioning
category: Layout - Layout Helpers
selectors:
    - .absolute
selector_type: layout
---

Sometimes you need `position: absolute` on an element to control
where it appears on the page.
*/
.absolute {
  position: absolute !important; }

.hide-overflow {
  overflow: hidden !important; }

/*doc
---
title: Stretching
name: h-stretching
category: Layout - Layout Helpers
selectors:
    - .stretched
selector_type: layout
---

Sometimes you need to stretch a container to be fullscreen.
*/
.stretched {
  width: 100vw;
  height: 100vh; }

/*doc
---
title: Fading
name: i-fading
category: Layout - Layout Helpers
selectors:
    - .faded
selector_type: layout
---

Sometimes you need to make something faded, to show that it is disabled or
locked.

See an example below of how it could be helpful:

```html_example
<div class="panel">
    <p>Not faded</p>
    <a>Here is an anchor</a>
</div>

<div class="panel faded">
    <p>Faded</p>
    <a>Here is an anchor</a>
</div>

*/
.faded {
  opacity: 0.5; }

.flex, .flex-full-width, .button.divided, .diet-tooltip-matches {
  box-sizing: border-box;
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
  -webkit-flex: 0 1 auto;
  -moz-box-flex: 0;
  -moz-flex: 0 1 auto;
  -ms-flex: 0 1 auto;
  flex: 0 1 auto;
  -webkit-box-direction: normal;
  -webkit-box-orient: horizontal;
  -webkit-flex-direction: row;
  -moz-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-flex-wrap: wrap;
  -moz-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  max-width: 62.5rem;
  margin: 0 auto; }

.flex-item {
  box-sizing: border-box;
  -webkit-box-flex: 1;
  -webkit-flex: 1 0 0;
  -moz-box-flex: 1;
  -moz-flex: 1 0 0;
  -ms-flex: 1 0 0;
  flex: 1 0 0;
  max-width: 100%; }

.flex-grow-0 {
  -webkit-box-flex: 0;
  -webkit-flex-grow: 0;
  -moz-flex-grow: 0;
  -ms-flex-positive: 0;
  flex-grow: 0; }

.flex-shrink-0 {
  -webkit-flex-shrink: 0;
  -moz-flex-shrink: 0;
  -ms-flex-negative: 0;
  flex-shrink: 0; }

.flex-start {
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  -webkit-justify-content: flex-start;
  -moz-justify-content: flex-start;
  justify-content: flex-start;
  text-align: start; }
  @media all and (-ms-high-contrast: none) {
    .flex-start {
      text-align: left; } }

.flex-center {
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  -webkit-justify-content: center;
  -moz-justify-content: center;
  justify-content: center;
  text-align: center; }

.flex-end {
  -webkit-box-pack: end;
  -ms-flex-pack: end;
  -webkit-justify-content: flex-end;
  -moz-justify-content: flex-end;
  justify-content: flex-end;
  text-align: end;
  overflow: auto; }
  @media all and (-ms-high-contrast: none) {
    .flex-end {
      text-align: right; } }

.flex-top {
  -webkit-box-align: start;
  -ms-flex-align: start;
  -webkit-align-items: flex-start;
  -moz-align-items: flex-start;
  align-items: flex-start; }

.flex-middle {
  -webkit-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  -moz-align-items: center;
  align-items: center; }

.flex-bottom {
  -webkit-box-align: end;
  -ms-flex-align: end;
  -webkit-align-items: flex-end;
  -moz-align-items: flex-end;
  align-items: flex-end; }

.flex-stretch {
  -webkit-box-align: stretch;
  -ms-flex-align: stretch;
  -webkit-align-items: stretch;
  -moz-align-items: stretch;
  align-items: stretch; }

.flex-around {
  -ms-flex-pack: distribute;
  -webkit-justify-content: space-around;
  -moz-justify-content: space-around;
  justify-content: space-around; }

.flex-between {
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  -webkit-justify-content: space-between;
  -moz-justify-content: space-between;
  justify-content: space-between; }

.flex-first {
  -webkit-box-ordinal-group: 0;
  -webkit-order: -1;
  -moz-order: -1;
  -ms-flex-order: -1;
  order: -1; }

.flex-last {
  -webkit-box-ordinal-group: 2;
  -webkit-order: 1;
  -moz-order: 1;
  -ms-flex-order: 1;
  order: 1; }

@media only screen {
  .flex-first-for-small {
    -webkit-box-ordinal-group: 0;
    -webkit-order: -1;
    -moz-order: -1;
    -ms-flex-order: -1;
    order: -1; } }

@media only screen {
  .flex-last-for-small {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
    -moz-order: 1;
    -ms-flex-order: 1;
    order: 1; } }

@media only screen and (max-width: 40em) {
  .flex-first-for-small-only {
    -webkit-box-ordinal-group: 0;
    -webkit-order: -1;
    -moz-order: -1;
    -ms-flex-order: -1;
    order: -1; } }

@media only screen and (max-width: 40em) {
  .flex-last-for-small-only {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
    -moz-order: 1;
    -ms-flex-order: 1;
    order: 1; } }

@media only screen and (min-width: 40.0625em) {
  .flex-first-for-medium {
    -webkit-box-ordinal-group: 0;
    -webkit-order: -1;
    -moz-order: -1;
    -ms-flex-order: -1;
    order: -1; } }

@media only screen and (min-width: 40.0625em) {
  .flex-last-for-medium {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
    -moz-order: 1;
    -ms-flex-order: 1;
    order: 1; } }

@media only screen and (min-width: 40.0625em) {
  .flex-first-for-medium-up {
    -webkit-box-ordinal-group: 0;
    -webkit-order: -1;
    -moz-order: -1;
    -ms-flex-order: -1;
    order: -1; } }

@media only screen and (min-width: 40.0625em) {
  .flex-last-for-medium-up {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
    -moz-order: 1;
    -ms-flex-order: 1;
    order: 1; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .flex-first-for-medium-only {
    -webkit-box-ordinal-group: 0;
    -webkit-order: -1;
    -moz-order: -1;
    -ms-flex-order: -1;
    order: -1; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .flex-last-for-medium-only {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
    -moz-order: 1;
    -ms-flex-order: 1;
    order: 1; } }

@media only screen and (min-width: 64em) {
  .flex-first-for-large {
    -webkit-box-ordinal-group: 0;
    -webkit-order: -1;
    -moz-order: -1;
    -ms-flex-order: -1;
    order: -1; } }

@media only screen and (min-width: 64em) {
  .flex-last-for-large {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
    -moz-order: 1;
    -ms-flex-order: 1;
    order: 1; } }

@media only screen and (min-width: 64em) {
  .flex-first-for-large-up {
    -webkit-box-ordinal-group: 0;
    -webkit-order: -1;
    -moz-order: -1;
    -ms-flex-order: -1;
    order: -1; } }

@media only screen and (min-width: 64em) {
  .flex-last-for-large-up {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
    -moz-order: 1;
    -ms-flex-order: 1;
    order: 1; } }

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

.flex-nowrap, .button.divided, .diet-tooltip-matches {
  -webkit-flex-wrap: nowrap !important;
  -moz-flex-wrap: nowrap !important;
  -ms-flex-wrap: nowrap !important;
  flex-wrap: nowrap !important; }

.flex-data-columns > .flex-data-col {
  flex-basis: 100%; }

@media only screen and (min-width: 64em) {
  .flex-data-columns > .flex-data-col:nth-child(1):nth-last-child(2) {
    flex-basis: 50%;
    padding-right: 10px; }
  .flex-data-columns > .flex-data-col:nth-child(1):nth-last-child(2) + .flex-data-col {
    flex-basis: 50%;
    padding-left: 10px; } }

/*doc
---
title: Basic Flex Grid
name: a-flex-grid
category: Layout - Grid
selectors:
    - .flex-row
selector_type: layout
---

Similar to the original Foundation grid but you can have
*auto-width* columns  where you let flexbox figure out the column widths. Simply
leave off the number at the end of the class name. For example: `.flex-small`.

**Non-flex items in a flex row**

Also, keep in mind that you very often might often hava a flex row where you
[mix flex and non-flex siblings][f-flex-grid-examples]. *This is
not just a grid system, it is more of an overall layout tool*.

But keep in mind nested `.flex-row` have a negative margin on the left and right
like most grid systems. If you desire to use `.flex-row` for the flexbox
features and you want to remove this behavior, set an override class of
`.flex-ungrid`.

If you want to have the horizontal padding of a flex item on a non-flex item you can wrap it with a `div.flex-fixed`

**Note :** There is no longer a need for the `.column` or `.columns` classes
when you use the flex grid.

#### Percentage Width Columns

Here is an example of **percentage based columns** with the row divided in
thirds for *small* and then a "2 4 6"  layout for *medium*.

```html_example
<div class="flex-row">
  <div class="flex-small-4 flex-medium-2"><div class="panel"></div></div>
  <div class="flex-small-4 flex-medium-4"><div class="panel"></div></div>
  <div class="flex-small-4 flex-medium-6"><div class="panel"></div></div>
</div>
```

Here is a more complicated nested layout.

```html_example

<div class="flex-row">
  <div class="flex-small-12 flex-large-8">
      <div class="flex-row">
        <div class="flex-small-4 flex-medium-2"><div class="panel"></div></div>
        <div class="flex-small-4 flex-medium-4"><div class="panel"></div></div>
        <div class="flex-small-4 flex-medium-6"><div class="panel"></div></div>
    </div>
  </div>
  <div class="flex-small-12 flex-large-4">
      <div class="flex-small-12 panel"></div>
      <div class="flex-small-12 panel"></div>
      <div class="flex-small-12 panel"></div>
   </div>
</div>
```
#### Auto-width Columns

*Auto-width* columns will basically divide the row into as many
columns as there are child divs.

Look Ma! A 5 column grid! That's
a bit harder with percentage based grids (prob can use block grid tho).

``` html_example
<div class="flex-row">
  <div class="flex-small"><div class="panel">1</div></div>
  <div class="flex-small"><div class="panel">2</div></div>
  <div class="flex-small"><div class="panel">3</div></div>
  <div class="flex-small"><div class="panel">4</div></div>
  <div class="flex-small"><div class="panel"><strong>5!</strong></div></div>
</div>
```
#### Percentage and auto-width columns together

Here is a weird auto-width 5 column layout for small using `.flex-small`
and then for medium we fix the first column to 50% with a `.flex-medium-6`
and `.flex-medium`(auto-width) for the rest. All this
without nesting.

``` html_example
<div class="flex-row">
  <div class="flex-small flex-medium-6"><div class="panel">1</div></div>
  <div class="flex-small flex-medium"><div class="panel">2</div></div>
  <div class="flex-small flex-medium"><div class="panel">3</div></div>
  <div class="flex-small flex-medium"><div class="panel">4</div></div>
  <div class="flex-small flex-medium"><div class="panel">5</div></div>
</div>
```
#### Nesting

You can nest if you like.

``` html_example
<div class="flex-row" style="padding-bottom: 20px; padding-top: 20px; background: #eee">
    <div class="flex-small">
        <div class="flex-row" style="padding-top: 20px; background: #ddd">
            <div class="flex-small"><div class="panel"></div></div>
        </div>
    </div>
    <div class="flex-small">
        <div class="flex-row" style="padding-top: 20px; background: #ddd">
            <div class="flex-small"><div class="panel"></div></div>
            <div class="flex-small"><div class="panel"></div></div>
        </div>
    </div>
</div>
```

#### Collapsing (and Uncollapsing)

This example will be collapsed if you size your browser
to the medium breakpoint using `.medium-collapse.large-uncollapse`.

``` html_example
<div class="flex-row medium-collapse large-uncollapse" style="padding-top: 20px; background: #eee">
    <div class="flex-small"><div class="panel"></div></div>
    <div class="flex-small"><div class="panel"></div></div>
</div>
```

*/
/*doc
---
title: Flex Grid Offsets
name: b-flex-grid-offsets
category: Layout - Grid
---

Offset columns at small, medium or large breakpoints.

```html_example
<div class="flex-row">
  <div class="flex-small-3 flex-small-offset-9"><div class="panel"></div></div>
  <div class="flex-small-4 flex-small-offset-8"><div class="panel"></div></div>
  <div class="flex-small-5 flex-small-offset-7"><div class="panel"></div></div>
</div>
```
*/
/*doc
---
title: Flex Grid Alignment
name: c-flex-grid-alignment
category: Layout - Grid
---

**start-**

Item aligned to the start of flex-row with `.small-start`.

```html_example
<div class="flex-row small-start" style="background: #eee">
    <div class="flex-small-6"><div class="panel"></div></div>
</div>
```

**center-**

Item centered in flex-row with `.small-center`.

```html_example
<div class="flex-row small-center" style="background: #eee">
    <div class="flex-small-6"><div class="panel"></div></div>
</div>
```

**end-**

Item aligned to end of flex-row with `.small-end`.

```html_example
<div class="flex-row small-end" style="background: #eee">
    <div class="flex-small-6"><div class="panel"></div></div>
</div>
```

**All together now (horizontal)**

Adjust the width of screen to see it left on small, center on medium and right on large.

`.small-start.medium-center.large-end`

```html_example
<div class="flex-row small-start medium-center large-end" style="background: #eee">
    <div class="flex-small-6"><div class="panel">resize window!</div></div>
</div>
```

**-top**

These items are aligned to the top of the flex-row with `.small-top`.

```html_example
<div class="flex-row small-top" style="background: #eee">
    <div class="flex-small-4"><div class="panel"></div></div>
    <div class="flex-small-4"><div class="panel" style="height: 8rem;"></div></div>
    <div class="flex-small-4"><div class="panel"></div></div>
</div>
```

**-middle**

These items are aligned to the middle of the flex-row with `.small-middle`.

```html_example
<div class="flex-row small-middle" style="background: #eee">
    <div class="flex-small-4"><div class="panel"></div></div>
    <div class="flex-small-4"><div class="panel" style="height: 8rem;"></div></div>
    <div class="flex-small-4"><div class="panel"></div></div>
</div>
```

**-bottom**

These items are aligned to the bottom of the flex-row with `.small-bottom`.

```html_example
<div class="flex-row small-bottom" style="background: #eee">
    <div class="flex-small-4"><div class="panel"></div></div>
    <div class="flex-small-4"><div class="panel" style="height: 8rem;"></div></div>
    <div class="flex-small-4"><div class="panel"></div></div>
</div>
```

**All together now (vertical)**

Adjust the width of screen to see it top on small, middle on medium and bottom on large.

`.small-top.medium-middle.large-bottom`

```html_example
<div class="flex-row small-top medium-middle large-bottom" style="background: #eee">
    <div class="flex-small-6"><div class="panel" style="height: 8rem;"></div></div>
    <div class="flex-small-6"><div class="panel">resize window!</div></div>
</div>
```
*/
/*doc
---
title: Flex Grid Distribution
name: d-flex-grid-distribution
category: Layout - Grid
---

**-around**

These items have equal space *around* them with `.small-around`.

```html_example
<div class="flex-row small-around" style="background: #eee">
    <div class="flex-small-2"><div class="panel"></div></div>
    <div class="flex-small-2"><div class="panel"></div></div>
    <div class="flex-small-2"><div class="panel"></div></div>
</div>
```

**-between**

These items have equal space *between* them with `.small-between`.
It is a good way to push items to the edges.

```html_example
<div class="flex-row small-between" style="background: #eee">
    <div class="flex-small-2"><div class="panel"></div></div>
    <div class="flex-small-2"><div class="panel"></div></div>
</div>
```
*/
/*doc
---
title: Flex Grid Source Ordering
name: e-flex-grid-source-ordering
category: Layout - Grid
---

**-first**

Move any column to the begining. In this case, applying `.small-first` to column
5 moved it to the beginning *(note that these modify columns, not rows)*.

``` html_example
<div class="flex-row">
  <div class="flex-small"><div class="panel">1</div></div>
  <div class="flex-small"><div class="panel">2</div></div>
  <div class="flex-small"><div class="panel">3</div></div>
  <div class="flex-small"><div class="panel">4</div></div>
  <div class="flex-small small-first"><div class="panel"><strong>5!</strong></div></div>
</div>
```

**-last**

Move any column to the end. In this case, applying `.small-last` to column 5
moved it to the beginning *(note that these modify columns, not rows)*.

``` html_example
<div class="flex-row">
  <div class="flex-small small-last"><div class="panel">1</div></div>
  <div class="flex-small"><div class="panel">2</div></div>
  <div class="flex-small"><div class="panel">3</div></div>
  <div class="flex-small"><div class="panel">4</div></div>
  <div class="flex-small"><div class="panel"><strong>5!</strong></div></div>
</div>
```

**Backwards!** Just add `.reverse` modifier *to the row*.

``` html_example
<div class="flex-row reverse">
  <div class="flex-small"><div class="panel">1</div></div>
  <div class="flex-small"><div class="panel">2</div></div>
  <div class="flex-small"><div class="panel">3</div></div>
  <div class="flex-small"><div class="panel">4</div></div>
  <div class="flex-small"><div class="panel"><strong>5!</strong></div></div>
</div>
```
*/
/*doc
---
title: Flex Grid Examples
name: f-flex-grid-examples
category: Layout - Grid
---

#### Flexible form input

**Note:** This is temp until we can just link to components that have been
built with this syntax.

Here is a common pattern, we want a flexible input and a fixed button. Although
there are other solutions to make this happen, flexbox makes it easy. Simply
contain the unit in a `.flex-row` and then wrap the input in a `.flex-small`
(for auto-width).
We can wrap the fixed width item with a `div.flex-fixed` to give it the horizontal padding properties of a flex item.

```html_example
<div class="flex-row">
    <div class="flex-small">
        <input type="text" placeholder="Flexy!">
    </div>
    <div class="flex-fixed">
        <a class="button radius action shadow small" href="#">Fixed Size</a>
    </div>
</div>
```

**TODO**: Make a list pointing to flexbox being used to use this system. Requires refactoring of
a few existing components like sub-nav

## RoadMap
1. Document mixins this is based on
2. Add column support
3. Add flex-grow helpers

<br>
*/
.flex-row {
  box-sizing: border-box;
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
  -webkit-flex: 0 1 auto;
  -moz-box-flex: 0;
  -moz-flex: 0 1 auto;
  -ms-flex: 0 1 auto;
  flex: 0 1 auto;
  -webkit-box-direction: normal;
  -webkit-box-orient: horizontal;
  -webkit-flex-direction: row;
  -moz-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-flex-wrap: wrap;
  -moz-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  max-width: 62.5rem;
  margin: 0 auto; }
  .flex-row.flex-nowrap, .flex-row.button.divided, .flex-row.diet-tooltip-matches {
    -webkit-flex-wrap: nowrap;
    -moz-flex-wrap: nowrap;
    -ms-flex-wrap: none;
    flex-wrap: nowrap; }
  .flex-row.multi-line [class*="flex"] {
    display: flex; }
    .flex-row.multi-line [class*="flex"] > div {
      display: flex;
      flex-direction: column;
      justify-content: center; }

.flex-row .flex-row {
  margin-left: -0.9375rem;
  margin-right: -0.9375rem;
  max-width: none;
  width: auto; }

.flex-ungrid {
  margin-left: 0 !important;
  margin-right: 0 !important; }

@media only screen and (max-width: 40em) {
  .flex-grid-for-small-only {
    margin-left: -0.9375rem !important;
    margin-right: -0.9375rem !important; } }

.flex-ungrid-child > .flex-row {
  margin-left: 0 !important;
  margin-right: 0 !important; }

.flex-row.reverse {
  -webkit-box-direction: reverse;
  -webkit-box-orient: horizontal;
  -webkit-flex-direction: row-reverse;
  -moz-flex-direction: row-reverse;
  -ms-flex-direction: row-reverse;
  flex-direction: row-reverse; }

.flex-column.reverse {
  -webkit-box-direction: reverse;
  -webkit-box-orient: vertical;
  -webkit-flex-direction: column-reverse;
  -moz-flex-direction: column-reverse;
  -ms-flex-direction: column-reverse;
  flex-direction: column-reverse; }

.flex-fixed {
  box-sizing: border-box;
  -webkit-box-flex: 0;
  -webkit-flex: 0 1 auto;
  -moz-box-flex: 0;
  -moz-flex: 0 1 auto;
  -ms-flex: 0 1 auto;
  flex: 0 1 auto;
  padding-right: 0.9375rem;
  padding-left: 0.9375rem; }

@media (min-width: 0em) {
  .flex-small {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-box-flex: 1;
    -webkit-flex-grow: 1;
    -moz-flex-grow: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
    -webkit-flex-basis: 0;
    -moz-flex-basis: 0;
    -ms-flex-preferred-size: 0;
    flex-basis: 0;
    max-width: 100%; }
  .flex-row.small-collapse > [class^="flex-"] {
    padding-right: 0;
    padding-left: 0; }
  .flex-row.small-uncollapse > [class^="flex-"] {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem; }
  .flex-small-1 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 8.33333%;
    -moz-flex-basis: 8.33333%;
    -ms-flex-preferred-size: 8.33333%;
    flex-basis: 8.33333%;
    max-width: 8.33333%; }
  .flex-small-offset-1 {
    margin-left: 8.33333%; }
  .flex-small-2 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 16.66667%;
    -moz-flex-basis: 16.66667%;
    -ms-flex-preferred-size: 16.66667%;
    flex-basis: 16.66667%;
    max-width: 16.66667%; }
  .flex-small-offset-2 {
    margin-left: 16.66667%; }
  .flex-small-3 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 25%;
    -moz-flex-basis: 25%;
    -ms-flex-preferred-size: 25%;
    flex-basis: 25%;
    max-width: 25%; }
  .flex-small-offset-3 {
    margin-left: 25%; }
  .flex-small-4 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 33.33333%;
    -moz-flex-basis: 33.33333%;
    -ms-flex-preferred-size: 33.33333%;
    flex-basis: 33.33333%;
    max-width: 33.33333%; }
  .flex-small-offset-4 {
    margin-left: 33.33333%; }
  .flex-small-5 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 41.66667%;
    -moz-flex-basis: 41.66667%;
    -ms-flex-preferred-size: 41.66667%;
    flex-basis: 41.66667%;
    max-width: 41.66667%; }
  .flex-small-offset-5 {
    margin-left: 41.66667%; }
  .flex-small-6 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 50%;
    -moz-flex-basis: 50%;
    -ms-flex-preferred-size: 50%;
    flex-basis: 50%;
    max-width: 50%; }
  .flex-small-offset-6 {
    margin-left: 50%; }
  .flex-small-7 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 58.33333%;
    -moz-flex-basis: 58.33333%;
    -ms-flex-preferred-size: 58.33333%;
    flex-basis: 58.33333%;
    max-width: 58.33333%; }
  .flex-small-offset-7 {
    margin-left: 58.33333%; }
  .flex-small-8 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 66.66667%;
    -moz-flex-basis: 66.66667%;
    -ms-flex-preferred-size: 66.66667%;
    flex-basis: 66.66667%;
    max-width: 66.66667%; }
  .flex-small-offset-8 {
    margin-left: 66.66667%; }
  .flex-small-9 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 75%;
    -moz-flex-basis: 75%;
    -ms-flex-preferred-size: 75%;
    flex-basis: 75%;
    max-width: 75%; }
  .flex-small-offset-9 {
    margin-left: 75%; }
  .flex-small-10 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 83.33333%;
    -moz-flex-basis: 83.33333%;
    -ms-flex-preferred-size: 83.33333%;
    flex-basis: 83.33333%;
    max-width: 83.33333%; }
  .flex-small-offset-10 {
    margin-left: 83.33333%; }
  .flex-small-11 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 91.66667%;
    -moz-flex-basis: 91.66667%;
    -ms-flex-preferred-size: 91.66667%;
    flex-basis: 91.66667%;
    max-width: 91.66667%; }
  .flex-small-offset-11 {
    margin-left: 91.66667%; }
  .flex-small-12 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 100%;
    -moz-flex-basis: 100%;
    -ms-flex-preferred-size: 100%;
    flex-basis: 100%;
    max-width: 100%; }
  .flex-small-offset-12 {
    margin-left: 100%; }
  .small-start {
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    -webkit-justify-content: flex-start;
    -moz-justify-content: flex-start;
    justify-content: flex-start;
    text-align: start; } }
  @media all and (min-width: 0em) and (-ms-high-contrast: none) {
    .small-start {
      text-align: left; } }

@media (min-width: 0em) {
    @supports (-ms-ime-align: auto) {
      .small-start {
        text-align: left; } }
  .small-center {
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    -webkit-justify-content: center;
    -moz-justify-content: center;
    justify-content: center;
    text-align: center; }
  .small-end {
    -webkit-box-pack: end;
    -ms-flex-pack: end;
    -webkit-justify-content: flex-end;
    -moz-justify-content: flex-end;
    justify-content: flex-end;
    text-align: end; } }
  @media all and (min-width: 0em) and (-ms-high-contrast: none) {
    .small-end {
      text-align: right; } }

@media (min-width: 0em) {
  .small-top {
    -webkit-box-align: start;
    -ms-flex-align: start;
    -webkit-align-items: flex-start;
    -moz-align-items: flex-start;
    align-items: flex-start; }
  .small-middle {
    -webkit-box-align: center;
    -ms-flex-align: center;
    -webkit-align-items: center;
    -moz-align-items: center;
    align-items: center; }
  .small-bottom {
    -webkit-box-align: end;
    -ms-flex-align: end;
    -webkit-align-items: flex-end;
    -moz-align-items: flex-end;
    align-items: flex-end; }
  .small-around {
    -ms-flex-pack: distribute;
    -webkit-justify-content: space-around;
    -moz-justify-content: space-around;
    justify-content: space-around; }
  .small-between {
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    -webkit-justify-content: space-between;
    -moz-justify-content: space-between;
    justify-content: space-between; }
  .small-first {
    -webkit-box-ordinal-group: 0;
    -webkit-order: -1;
    -moz-order: -1;
    -ms-flex-order: -1;
    order: -1; }
  .small-last {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
    -moz-order: 1;
    -ms-flex-order: 1;
    order: 1; }
  .flex-small-fixed {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: initial;
    -moz-flex-basis: initial;
    -ms-flex-preferred-size: initial;
    flex-basis: initial;
    max-width: initial; } }

@media (min-width: 40.0625em) {
  .flex-medium {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-box-flex: 1;
    -webkit-flex-grow: 1;
    -moz-flex-grow: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
    -webkit-flex-basis: 0;
    -moz-flex-basis: 0;
    -ms-flex-preferred-size: 0;
    flex-basis: 0;
    max-width: 100%; }
  .flex-row.medium-collapse > [class^="flex-"] {
    padding-right: 0;
    padding-left: 0; }
  .flex-row.medium-uncollapse > [class^="flex-"] {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem; }
  .flex-medium-1 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 8.33333%;
    -moz-flex-basis: 8.33333%;
    -ms-flex-preferred-size: 8.33333%;
    flex-basis: 8.33333%;
    max-width: 8.33333%; }
  .flex-medium-offset-1 {
    margin-left: 8.33333%; }
  .flex-medium-2 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 16.66667%;
    -moz-flex-basis: 16.66667%;
    -ms-flex-preferred-size: 16.66667%;
    flex-basis: 16.66667%;
    max-width: 16.66667%; }
  .flex-medium-offset-2 {
    margin-left: 16.66667%; }
  .flex-medium-3 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 25%;
    -moz-flex-basis: 25%;
    -ms-flex-preferred-size: 25%;
    flex-basis: 25%;
    max-width: 25%; }
  .flex-medium-offset-3 {
    margin-left: 25%; }
  .flex-medium-4 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 33.33333%;
    -moz-flex-basis: 33.33333%;
    -ms-flex-preferred-size: 33.33333%;
    flex-basis: 33.33333%;
    max-width: 33.33333%; }
  .flex-medium-offset-4 {
    margin-left: 33.33333%; }
  .flex-medium-5 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 41.66667%;
    -moz-flex-basis: 41.66667%;
    -ms-flex-preferred-size: 41.66667%;
    flex-basis: 41.66667%;
    max-width: 41.66667%; }
  .flex-medium-offset-5 {
    margin-left: 41.66667%; }
  .flex-medium-6 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 50%;
    -moz-flex-basis: 50%;
    -ms-flex-preferred-size: 50%;
    flex-basis: 50%;
    max-width: 50%; }
  .flex-medium-offset-6 {
    margin-left: 50%; }
  .flex-medium-7 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 58.33333%;
    -moz-flex-basis: 58.33333%;
    -ms-flex-preferred-size: 58.33333%;
    flex-basis: 58.33333%;
    max-width: 58.33333%; }
  .flex-medium-offset-7 {
    margin-left: 58.33333%; }
  .flex-medium-8 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 66.66667%;
    -moz-flex-basis: 66.66667%;
    -ms-flex-preferred-size: 66.66667%;
    flex-basis: 66.66667%;
    max-width: 66.66667%; }
  .flex-medium-offset-8 {
    margin-left: 66.66667%; }
  .flex-medium-9 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 75%;
    -moz-flex-basis: 75%;
    -ms-flex-preferred-size: 75%;
    flex-basis: 75%;
    max-width: 75%; }
  .flex-medium-offset-9 {
    margin-left: 75%; }
  .flex-medium-10 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 83.33333%;
    -moz-flex-basis: 83.33333%;
    -ms-flex-preferred-size: 83.33333%;
    flex-basis: 83.33333%;
    max-width: 83.33333%; }
  .flex-medium-offset-10 {
    margin-left: 83.33333%; }
  .flex-medium-11 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 91.66667%;
    -moz-flex-basis: 91.66667%;
    -ms-flex-preferred-size: 91.66667%;
    flex-basis: 91.66667%;
    max-width: 91.66667%; }
  .flex-medium-offset-11 {
    margin-left: 91.66667%; }
  .flex-medium-12 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 100%;
    -moz-flex-basis: 100%;
    -ms-flex-preferred-size: 100%;
    flex-basis: 100%;
    max-width: 100%; }
  .flex-medium-offset-12 {
    margin-left: 100%; }
  .medium-start {
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    -webkit-justify-content: flex-start;
    -moz-justify-content: flex-start;
    justify-content: flex-start;
    text-align: start; } }
  @media all and (min-width: 40.0625em) and (-ms-high-contrast: none) {
    .medium-start {
      text-align: left; } }

@media (min-width: 40.0625em) {
    @supports (-ms-ime-align: auto) {
      .medium-start {
        text-align: left; } }
  .medium-center {
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    -webkit-justify-content: center;
    -moz-justify-content: center;
    justify-content: center;
    text-align: center; }
  .medium-end {
    -webkit-box-pack: end;
    -ms-flex-pack: end;
    -webkit-justify-content: flex-end;
    -moz-justify-content: flex-end;
    justify-content: flex-end;
    text-align: end; } }
  @media all and (min-width: 40.0625em) and (-ms-high-contrast: none) {
    .medium-end {
      text-align: right; } }

@media (min-width: 40.0625em) {
  .medium-top {
    -webkit-box-align: start;
    -ms-flex-align: start;
    -webkit-align-items: flex-start;
    -moz-align-items: flex-start;
    align-items: flex-start; }
  .medium-middle {
    -webkit-box-align: center;
    -ms-flex-align: center;
    -webkit-align-items: center;
    -moz-align-items: center;
    align-items: center; }
  .medium-bottom {
    -webkit-box-align: end;
    -ms-flex-align: end;
    -webkit-align-items: flex-end;
    -moz-align-items: flex-end;
    align-items: flex-end; }
  .medium-around {
    -ms-flex-pack: distribute;
    -webkit-justify-content: space-around;
    -moz-justify-content: space-around;
    justify-content: space-around; }
  .medium-between {
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    -webkit-justify-content: space-between;
    -moz-justify-content: space-between;
    justify-content: space-between; }
  .medium-first {
    -webkit-box-ordinal-group: 0;
    -webkit-order: -1;
    -moz-order: -1;
    -ms-flex-order: -1;
    order: -1; }
  .medium-last {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
    -moz-order: 1;
    -ms-flex-order: 1;
    order: 1; }
  .flex-medium-fixed {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: initial;
    -moz-flex-basis: initial;
    -ms-flex-preferred-size: initial;
    flex-basis: initial;
    max-width: initial; } }

@media (min-width: 63.9375em) {
  .flex-large {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-box-flex: 1;
    -webkit-flex-grow: 1;
    -moz-flex-grow: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
    -webkit-flex-basis: 0;
    -moz-flex-basis: 0;
    -ms-flex-preferred-size: 0;
    flex-basis: 0;
    max-width: 100%; }
  .flex-row.large-collapse > [class^="flex-"] {
    padding-right: 0;
    padding-left: 0; }
  .flex-row.large-uncollapse > [class^="flex-"] {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem; }
  .flex-large-1 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 8.33333%;
    -moz-flex-basis: 8.33333%;
    -ms-flex-preferred-size: 8.33333%;
    flex-basis: 8.33333%;
    max-width: 8.33333%; }
  .flex-large-offset-1 {
    margin-left: 8.33333%; }
  .flex-large-2 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 16.66667%;
    -moz-flex-basis: 16.66667%;
    -ms-flex-preferred-size: 16.66667%;
    flex-basis: 16.66667%;
    max-width: 16.66667%; }
  .flex-large-offset-2 {
    margin-left: 16.66667%; }
  .flex-large-3 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 25%;
    -moz-flex-basis: 25%;
    -ms-flex-preferred-size: 25%;
    flex-basis: 25%;
    max-width: 25%; }
  .flex-large-offset-3 {
    margin-left: 25%; }
  .flex-large-4 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 33.33333%;
    -moz-flex-basis: 33.33333%;
    -ms-flex-preferred-size: 33.33333%;
    flex-basis: 33.33333%;
    max-width: 33.33333%; }
  .flex-large-offset-4 {
    margin-left: 33.33333%; }
  .flex-large-5 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 41.66667%;
    -moz-flex-basis: 41.66667%;
    -ms-flex-preferred-size: 41.66667%;
    flex-basis: 41.66667%;
    max-width: 41.66667%; }
  .flex-large-offset-5 {
    margin-left: 41.66667%; }
  .flex-large-6 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 50%;
    -moz-flex-basis: 50%;
    -ms-flex-preferred-size: 50%;
    flex-basis: 50%;
    max-width: 50%; }
  .flex-large-offset-6 {
    margin-left: 50%; }
  .flex-large-7 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 58.33333%;
    -moz-flex-basis: 58.33333%;
    -ms-flex-preferred-size: 58.33333%;
    flex-basis: 58.33333%;
    max-width: 58.33333%; }
  .flex-large-offset-7 {
    margin-left: 58.33333%; }
  .flex-large-8 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 66.66667%;
    -moz-flex-basis: 66.66667%;
    -ms-flex-preferred-size: 66.66667%;
    flex-basis: 66.66667%;
    max-width: 66.66667%; }
  .flex-large-offset-8 {
    margin-left: 66.66667%; }
  .flex-large-9 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 75%;
    -moz-flex-basis: 75%;
    -ms-flex-preferred-size: 75%;
    flex-basis: 75%;
    max-width: 75%; }
  .flex-large-offset-9 {
    margin-left: 75%; }
  .flex-large-10 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 83.33333%;
    -moz-flex-basis: 83.33333%;
    -ms-flex-preferred-size: 83.33333%;
    flex-basis: 83.33333%;
    max-width: 83.33333%; }
  .flex-large-offset-10 {
    margin-left: 83.33333%; }
  .flex-large-11 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 91.66667%;
    -moz-flex-basis: 91.66667%;
    -ms-flex-preferred-size: 91.66667%;
    flex-basis: 91.66667%;
    max-width: 91.66667%; }
  .flex-large-offset-11 {
    margin-left: 91.66667%; }
  .flex-large-12 {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: 100%;
    -moz-flex-basis: 100%;
    -ms-flex-preferred-size: 100%;
    flex-basis: 100%;
    max-width: 100%; }
  .flex-large-offset-12 {
    margin-left: 100%; }
  .large-start {
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    -webkit-justify-content: flex-start;
    -moz-justify-content: flex-start;
    justify-content: flex-start;
    text-align: start; } }
  @media all and (min-width: 63.9375em) and (-ms-high-contrast: none) {
    .large-start {
      text-align: left; } }

@media (min-width: 63.9375em) {
    @supports (-ms-ime-align: auto) {
      .large-start {
        text-align: left; } }
  .large-center {
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    -webkit-justify-content: center;
    -moz-justify-content: center;
    justify-content: center;
    text-align: center; }
  .large-end {
    -webkit-box-pack: end;
    -ms-flex-pack: end;
    -webkit-justify-content: flex-end;
    -moz-justify-content: flex-end;
    justify-content: flex-end;
    text-align: end; } }
  @media all and (min-width: 63.9375em) and (-ms-high-contrast: none) {
    .large-end {
      text-align: right; } }

@media (min-width: 63.9375em) {
  .large-top {
    -webkit-box-align: start;
    -ms-flex-align: start;
    -webkit-align-items: flex-start;
    -moz-align-items: flex-start;
    align-items: flex-start; }
  .large-middle {
    -webkit-box-align: center;
    -ms-flex-align: center;
    -webkit-align-items: center;
    -moz-align-items: center;
    align-items: center; }
  .large-bottom {
    -webkit-box-align: end;
    -ms-flex-align: end;
    -webkit-align-items: flex-end;
    -moz-align-items: flex-end;
    align-items: flex-end; }
  .large-around {
    -ms-flex-pack: distribute;
    -webkit-justify-content: space-around;
    -moz-justify-content: space-around;
    justify-content: space-around; }
  .large-between {
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    -webkit-justify-content: space-between;
    -moz-justify-content: space-between;
    justify-content: space-between; }
  .large-first {
    -webkit-box-ordinal-group: 0;
    -webkit-order: -1;
    -moz-order: -1;
    -ms-flex-order: -1;
    order: -1; }
  .large-last {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
    -moz-order: 1;
    -ms-flex-order: 1;
    order: 1; }
  .flex-large-fixed {
    box-sizing: border-box;
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 1 auto;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    padding-right: 0.9375rem;
    padding-left: 0.9375rem;
    -webkit-flex-basis: initial;
    -moz-flex-basis: initial;
    -ms-flex-preferred-size: initial;
    flex-basis: initial;
    max-width: initial; } }

@media only screen and (min-width: 64em) {
  .flex-large-second {
    order: 2; } }

/*doc
---
title: Old Grid
name: g-old-grid
category: Layout - Grid
selectors:
    - .row
    - .column
    - .columns
selector_type: layout
---
>**TODO:** We want to slowly kill this. Let's get selectors referenced down to 0.

Use our [Flex Grid][a-flex-grid] instead.

Start by adding an element with `.row`. This will create a horizontal
block to contain vertical columns. Then add divs with `.column` class within that
row. You can use `.column` or `.columns` - the only difference is grammar. Specify the
widths of each column with the small-#, medium-#, and large-# classes.

Foundation is mobile-first. Code for small screens first, and larger devices
will inherit those styles. Customize for larger screens as necessary.

**Note:** The included panel class is just for show in the styleguide. The
numbers in the panels denote the column size or width at our small breakpoint.

```html_example
<div class="row">
  <div class="small-2 large-4 columns"><div class="panel">2</div></div>
  <div class="small-4 large-4 columns"><div class="panel">4</div></div>
  <div class="small-6 large-4 columns"><div class="panel">6</div></div>
</div>
<div class="row">
  <div class="large-3 columns"><div class="panel">full</div></div>
  <div class="large-6 columns"><div class="panel">full</div></div>
  <div class="large-3 columns"><div class="panel">full</div></div>
</div>
<div class="row">
  <div class="small-6 large-2 columns"><div class="panel">6</div></div>
  <div class="small-6 large-8 columns"><div class="panel">6</div></div>
  <div class="small-12 large-2 columns"><div class="panel">12</div></div>
</div>
<div class="row">
  <div class="small-3 columns"><div class="panel">3</div></div>
  <div class="small-9 columns"><div class="panel">9</div></div>
</div>
<div class="row">
  <div class="large-4 columns"><div class="panel">full</div></div>
  <div class="large-8 columns"><div class="panel">full</div></div>
</div>
<div class="row">
  <div class="small-6 large-5 columns"><div class="panel">6</div></div>
  <div class="small-6 large-7 columns"><div class="panel">6</div></div>
</div>
<div class="row">
  <div class="large-6 columns"><div class="panel">full</div></div>
  <div class="large-6 columns"><div class="panel">full</div></div>
</div>
```
### Nesting

You can nest the grids indefinitely, though at a certain point it will get absurd.

```html_example
<div class="row">
  <div class="small-8 columns"><div class="panel">8</div>
    <div class="row">
      <div class="small-8 columns"><div class="panel">8 Nested</div>
        <div class="row">
          <div class="small-8 columns"><div class="panel">8 Nested Again</div></div>
          <div class="small-4 columns"><div class="panel">4</div></div>
        </div>
      </div>
      <div class="small-4 columns"><div class="panel">4</div></div>
    </div>
  </div>
  <div class="small-4 columns"><div class="panel">4</div></div>
</div>
```

### Offsets

Move blocks up to 11 columns to the right by using classes like `.large-
offset-1` and `.small-offset-3`.

```html_example
<div class="row">
  <div class="large-1 columns"><div class="panel">1</div></div>
  <div class="large-11 columns"><div class="panel">11</div></div>
</div>
<div class="row">
  <div class="large-1 columns"><div class="panel">1</div></div>
  <div class="large-10 large-offset-1 columns"><div class="panel">10, offset 1</div></div>
</div>
<div class="row">
  <div class="large-1 columns"><div class="panel">1</div></div>
  <div class="large-9 large-offset-2 columns"><div class="panel">9, offset 2</div></div>
</div>
<div class="row">
  <div class="large-1 columns"><div class="panel">1</div></div>
  <div class="large-8 large-offset-3 columns"><div class="panel">8, offset 3</div></div>
</div>
```

### Incomplete Rows

Usually you want all the column classes inside a row to add up to 12. But if
you don't...

In order to work around browsers' different rounding behaviors, Foundation will
float the last column in a row to the right so the edge aligns. If your row
doesn't have a count that adds up to 12 columns, you can tag the last column
with a class of `.end` in order to override that behavior.

```html_example
<div class="row">
  <div class="medium-3 columns"><div class="panel">3</div></div>
  <div class="medium-3 columns"><div class="panel">3</div></div>
  <div class="medium-3 columns"><div class="panel">3</div></div>
</div>
<div class="row">
  <div class="medium-3 columns"><div class="panel">3</div></div>
  <div class="medium-3 columns"><div class="panel">3</div></div>
  <div class="medium-3 columns end"><div class="panel">3 end</div></div>
</div>
```

### Collapse/Uncollapse

There are times when you won't want each media query to be collapsed or
uncollapsed. In this case, use the media query size you want and collapse or
uncollapse and add that to your `.row` element.

The example shows no gutter at small media size and then adds the gutter to
columns at medium.


```html_example
<div class="row medium-uncollapse large-collapse">
    <div class="small-6 columns">
        <div class="panel">Removes gutter at large media query</div>
    </div>
    <div class="small-6 columns">
        <div class="panel">Removes gutter at large media query</div>
    </div>
</div>
```

### Centered Columns

Center your columns by adding a class of `.small-centered` to your column. Large
will inherit small centering by default, but you can also center solely on large
by applying a `.large-centered` class. To uncenter on large screens use
`.large-uncentered`.

```html_example
<div class="row">
  <div class="small-3 small-centered columns"><div class="panel">3 centered</div></div>
</div>
<div class="row">
  <div class="small-6 large-centered columns"><div class="panel">6 centered</div></div>
</div>
<div class="row">
  <div class="small-9 small-centered large-uncentered columns"><div class="panel">9 centered but large uncentered</div></div>
</div>
<div class="row">
  <div class="small-11 small-centered columns"><div class="panel">11 centered</div></div>
</div>
```

### Source Ordering

Using these source ordering classes, you can shift columns around between our
breakpoints.

This means if you place sub-navigation below main content on small
displays, you have the option to position the sub-navigation on either the left
or right of the page for large displays.

Prefix push/pull with the size of the device you want to apply the styles to.

`.medium-push-#`, `.large-push-#` is the syntax you'll use. There is a symmetry
to it. Just take a look at the class names in the html and remember stuff adds
up to 12.


Use `.large-reset-order` to reset pushed or pulled columns to
their original position on large screens.

```html_example
<div class="row">
  <div class="small-10 small-push-2 columns"><div class="panel">10</div></div>
  <div class="small-2 small-pull-10 columns"><div class="panel">2 (last)</div></div>
</div>
<div class="row">
  <div class="large-9 large-push-3 columns"><div class="panel">9</div></div>
  <div class="large-3 large-pull-9 columns"><div class="panel">3 (last)</div></div>
</div>
<div class="row">
  <div class="large-8 large-push-4 columns"><div class="panel">8</div></div>
  <div class="large-4 large-pull-8 columns"><div class="panel">4 (last)</div></div>
</div>
<div class="row">
  <div class="small-5 small-push-7 medium-7 medium-push-5 columns"><div class="panel">7</div></div>
  <div class="small-7 small-pull-5 medium-5 medium-pull-7 columns"><div class="panel">5 (last)</div></div>
</div>
<div class="row">
  <div class="medium-6 medium-push-6 columns"><div class="panel">6</div></div>
  <div class="medium-6 medium-pull-6 columns"><div class="panel">6 (last)</div></div>
</div>

```
*/
.row.display {
  background: #EAF0F1; }

.column.display {
  background: #10294B; }

@media only screen and (min-width: 64em) {
  .rail-left {
    border-right: 1px solid #E1E2E6; } }

.content-right {
  padding-top: 2rem; }

/*doc
---
title: Block Grid
name: 1-block-grid
category: Layout - Layout Helpers
---

Block grids give you a way to evenly split contents of a list within the grid.
If you wanted to create a row of five images or paragraphs that need to stay
evenly spaced no matter the screen size, the block grid is for you.

Use additional classes to specify a different number of items in a row for each
screen size. Refer to Foundation's
[documentation](http://foundation.zurb.com/docs/components/block_grid.html).

```html_example?kitchen-sink=true
<ul class="small-block-grid-3">
    <li><img src="http://placehold.it/300x200&text=A" alt=""></li>
    <li><img src="http://placehold.it/300x200&text=Block" alt=""></li>
    <li><img src="http://placehold.it/300x200&text=Grid" alt=""></li>
</ul>
```
*/
/*doc
---
title: Fonts
name: a-fonts
category: Typography - Fonts
---

We are currently using
[Roboto](http://www.google.com/fonts#UsePlace:use/Collection:Roboto).

**TODO:**
Once final fonts are decided, we should put the src on static. Right now just
pointing to google's servers.

```html_example
<p>This is default text.</p>
<p class="text-serif">This is text with .text-serif class, which is different.</p>
```

*/
.text-serif {
  font-family: Georgia, Cambria, "Times New Roman", Times, serif; }

/*doc
---
title: Text Sizes
name: a-text-sizes
category: Typography - Text (and helpers)
selectors:
    - .text-smallest
    - .text-smaller
    - .text-small
    - .text-normal
    - .text-large
    - .text-larger
    - .text-largest
selector_type: text
---

Normal paragraph text is 16px with a line-height of 1.5. By default they have
20px of margin-bottom.

```html_example
    <p>
        Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nam quaerat
        quidem consequatur dolore perferendis quasi beatae vitae inventore
        officia assumenda sequi aliquam perspiciatis aspernatur enim,
        quibusdam accusamus tenetur officiis. Nisi!
    </p>
    <p class="block-flush">
        Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nam quaerat
        quidem consequatur dolore perferendis quasi beatae vitae inventore
        officia assumenda sequi aliquam perspiciatis aspernatur enim,
        quibusdam accusamus tenetur officiis. Nisi!
    </p>
```

### General Helpers

To modify text sizing, apply these classes to anything (except headings) to declare text sizes
(headings have their own sizing classes).

`.text-smallest` (10px)
`.text-smaller ` (12px)
`.text-small   ` (14px)
`.text-normal  ` (16px)
`.text-large   ` (18px)
`.text-larger  ` (20px)
`.text-largest ` (22px)

```html_example
<p class="text-smallest">This is text with .text-smallest class</p>
<p class="text-smaller">This is text with .text-smaller class</p>
<p class="text-small">This is text with .text-small class</p>
<p class="text-normal">This is text with .text-normal class</p>
<p class="text-large">This is text with .text-large class</p>
<p class="text-larger">This is text with .text-larger class</p>
<p class="text-largest">This is text with .text-largest class</p>
```

### Responsive Helpers

Not only do we have the general text size helpers above you can isolate the
helpers by one or a range of our 3 main breakpoints. These should be all the
ones you need to change the size of text according to screen size:


| for small only                 |   for medium up              | for medium only                | for large up                   |
|--------------------------------|------------------------------|--------------------------------|--------------------------------|
| .text-smallest-for-small-only  | .text-smallest-for-medium-up | .text-smallest-for-medium-only | .text-smallest-for-medium-only |
| .text-smaller-for-small-only   | .text-smaller-for-medium-up  | .text-smaller-for-medium-only  | .text-smaller-for-medium-only  |
| .text-small-for-small-only     | .text-small-for-medium-up    | .text-small-for-medium-only    | .text-small-for-medium-only    |
| .text-normal-for-small-only    | .text-normal-for-medium-up   | .text-normal-for-medium-only   | .text-normal-for-medium-only   |
| .text-large-for-small-only     | .text-large-for-medium-up    | .text-large-for-medium-only    | .text-large-for-medium-only    |
| .text-larger-for-small-only    | .text-larger-for-medium-up   | .text-larger-for-medium-only   | .text-larger-for-medium-only   |
| .text-largest-for-small-only   | .text-largest-for-medium-up  | .text-largest-for-medium-only  | .text-largest-for-medium-only  |

### Mixin

See [Sassdoc documentation](/sassdoc/#mixin-text)
*/
.text-tiny {
  font-size: 0.5rem !important; }

@media only screen and (max-width: 40em) {
  .text-tiny-for-small-only {
    font-size: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .text-tiny-for-medium-up {
    font-size: 0.5rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .text-tiny-for-medium-only {
    font-size: 0.5rem !important; } }

@media only screen and (min-width: 64em) {
  .text-tiny-for-large-up {
    font-size: 0.5rem !important; } }

.text-smallest {
  font-size: 0.625rem !important; }

@media only screen and (max-width: 40em) {
  .text-smallest-for-small-only {
    font-size: 0.625rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .text-smallest-for-medium-up {
    font-size: 0.625rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .text-smallest-for-medium-only {
    font-size: 0.625rem !important; } }

@media only screen and (min-width: 64em) {
  .text-smallest-for-large-up {
    font-size: 0.625rem !important; } }

.text-smaller {
  font-size: 0.75rem !important; }

@media only screen and (max-width: 40em) {
  .text-smaller-for-small-only {
    font-size: 0.75rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .text-smaller-for-medium-up {
    font-size: 0.75rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .text-smaller-for-medium-only {
    font-size: 0.75rem !important; } }

@media only screen and (min-width: 64em) {
  .text-smaller-for-large-up {
    font-size: 0.75rem !important; } }

.text-small {
  font-size: 0.875rem !important; }

@media only screen and (max-width: 40em) {
  .text-small-for-small-only {
    font-size: 0.875rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .text-small-for-medium-up {
    font-size: 0.875rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .text-small-for-medium-only {
    font-size: 0.875rem !important; } }

@media only screen and (min-width: 64em) {
  .text-small-for-large-up {
    font-size: 0.875rem !important; } }

.text-normal {
  font-size: 1rem !important; }

@media only screen and (max-width: 40em) {
  .text-normal-for-small-only {
    font-size: 1rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .text-normal-for-medium-up {
    font-size: 1rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .text-normal-for-medium-only {
    font-size: 1rem !important; } }

@media only screen and (min-width: 64em) {
  .text-normal-for-large-up {
    font-size: 1rem !important; } }

.text-large, div.stock-change .stock-change-list li {
  font-size: 1.125rem !important; }

@media only screen and (max-width: 40em) {
  .text-large-for-small-only {
    font-size: 1.125rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .text-large-for-medium-up {
    font-size: 1.125rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .text-large-for-medium-only {
    font-size: 1.125rem !important; } }

@media only screen and (min-width: 64em) {
  .text-large-for-large-up {
    font-size: 1.125rem !important; } }

.text-larger {
  font-size: 1.25rem !important; }

@media only screen and (max-width: 40em) {
  .text-larger-for-small-only {
    font-size: 1.25rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .text-larger-for-medium-up {
    font-size: 1.25rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .text-larger-for-medium-only {
    font-size: 1.25rem !important; } }

@media only screen and (min-width: 64em) {
  .text-larger-for-large-up {
    font-size: 1.25rem !important; } }

.text-largest {
  font-size: 1.375rem !important; }

@media only screen and (max-width: 40em) {
  .text-largest-for-small-only {
    font-size: 1.375rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .text-largest-for-medium-up {
    font-size: 1.375rem !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .text-largest-for-medium-only {
    font-size: 1.375rem !important; } }

@media only screen and (min-width: 64em) {
  .text-largest-for-large-up {
    font-size: 1.375rem !important; } }

/*doc
---
title: Text Alignment
name: b-text-alignment
category: Typography - Text (and helpers)
selectors:
    - .text-left
    - .text-right
    - .text-center
    - .text-justify
selector_type: text
---

This aligns text inside elements.

`.text-left`
`.text-right`
`.text-center`
`.text-justify`

### Responsive Helpers

**TODO:** These stock Foundation helpers are confusing and annoying naming-
wise, but they exist. You can set text aligmnment via breakpoints. I might
change the naming to be more consistent with the other named stuff. Instead of
`.small-text-medium`, will make it `.text-left-for-medium-up`.


| left                   | right                   | center                   | justify                    |
|------------------------|-------------------------|--------------------------|----------------------------|
| .small-text-left       | .small-text-right       | .small-text-center       | .small-text-justify        |
| .small-only-text-left  | .small-only-text-right  | .small-only-text-center  | .small-only-text-justify   |
| .medium-text-left      | .medium-text-right      | .medium-text-center      | .medium-text-justify       |
| .medium-only-text-left | .medium-only-text-right | .medium-only-text-center | .medium-only-text-justify  |
| .large-text-left       | .large-text-right       | .large-text-center       | .large-text-justify        |
| .large-only-text-left  | .large-only-text-right  | .large-only-text-center  | .large-only-text-justify   |

*/
/*doc
---
title: Heading Sizes
name: a-heading-sizes
category: Typography - Headings (and helpers)
selectors:
    - .heading-smallest
    - .heading-smaller
    - .heading-small
    - .heading-normal
    - .heading-large
    - .heading-larger
    - .heading-largest
selector_type: text
---

Apply these classes to headings to manipulate the sizes.
**Note:** All headings `h1, h2, h3, h4, h5, h6` should have a
`.heading-*` class attached.

`.heading-smallest` (12px)
`.heading-smaller ` (14px)
`.heading-small   ` (16px)
`.heading-normal  ` (18px)
`.heading-large   ` (24px)
`.heading-larger  ` (30px)
`.heading-largest ` (45px)

```html_example
<h2 class="heading-smallest">This is a heading with .heading-smallest class</h2>
<h2 class="heading-smaller">This is a heading with .heading-smaller class</h2>
<h2 class="heading-small">This is a heading with .heading-small class</h2>
<h2 class="heading-normal">This is a heading with .heading-normal class</h2>
<h2 class="heading-large">This is a heading with .heading-large class</h2>
<h2 class="heading-larger">This is a heading with .heading-larger class</h2>
<h2 class="heading-largest">This is a heading with .heading-largest class</h2>
```

### Responsive Helpers

Not only do we have the general heading size classes above, you can isolate the
sizes by one or a range of our 3 main breakpoints. These should be all the
ones you need to change the size of heading according to screen size:


| for small only                    |   for medium up                 | for medium only                   | for large up                      |
|-----------------------------------|---------------------------------|-----------------------------------|-----------------------------------|
| .heading-smallest-for-small-only  | .heading-smallest-for-medium-up | .heading-smallest-for-medium-only | .heading-smallest-for-medium-only |
| .heading-smaller-for-small-only   | .heading-smaller-for-medium-up  | .heading-smaller-for-medium-only  | .heading-smaller-for-medium-only  |
| .heading-small-for-small-only     | .heading-small-for-medium-up    | .heading-small-for-medium-only    | .heading-small-for-medium-only    |
| .heading-normal-for-small-only    | .heading-normal-for-medium-up   | .heading-normal-for-medium-only   | .heading-normal-for-medium-only   |
| .heading-large-for-small-only     | .heading-large-for-medium-up    | .heading-large-for-medium-only    | .heading-large-for-medium-only    |
| .heading-larger-for-small-only    | .heading-larger-for-medium-up   | .heading-larger-for-medium-only   | .heading-larger-for-medium-only   |
| .heading-largest-for-small-only   | .heading-largest-for-medium-up  | .heading-largest-for-medium-only  | .heading-largest-for-medium-only  |

### Mixin

See [Sassdoc documentation](/sassdoc/#mixin-heading)
*/
.heading-tiny {
  font-size: 0.625rem !important;
  font-weight: 500 !important; }

@media only screen and (max-width: 40em) {
  .heading-tiny-for-small-only {
    font-size: 0.625rem !important;
    font-weight: 500 !important; } }

@media only screen and (min-width: 40.0625em) {
  .heading-tiny-for-medium-up {
    font-size: 0.625rem !important;
    font-weight: 500 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .heading-tiny-for-medium-only {
    font-size: 0.625rem !important;
    font-weight: 500 !important; } }

@media only screen and (min-width: 64em) {
  .heading-tiny-for-large-up {
    font-size: 0.625rem !important;
    font-weight: 500 !important; } }

.heading-smallest {
  font-size: 0.75rem !important;
  font-weight: 500 !important; }

@media only screen and (max-width: 40em) {
  .heading-smallest-for-small-only {
    font-size: 0.75rem !important;
    font-weight: 500 !important; } }

@media only screen and (min-width: 40.0625em) {
  .heading-smallest-for-medium-up {
    font-size: 0.75rem !important;
    font-weight: 500 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .heading-smallest-for-medium-only {
    font-size: 0.75rem !important;
    font-weight: 500 !important; } }

@media only screen and (min-width: 64em) {
  .heading-smallest-for-large-up {
    font-size: 0.75rem !important;
    font-weight: 500 !important; } }

.heading-smaller {
  font-size: 0.875rem !important;
  font-weight: 500 !important; }

@media only screen and (max-width: 40em) {
  .heading-smaller-for-small-only {
    font-size: 0.875rem !important;
    font-weight: 500 !important; } }

@media only screen and (min-width: 40.0625em) {
  .heading-smaller-for-medium-up {
    font-size: 0.875rem !important;
    font-weight: 500 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .heading-smaller-for-medium-only {
    font-size: 0.875rem !important;
    font-weight: 500 !important; } }

@media only screen and (min-width: 64em) {
  .heading-smaller-for-large-up {
    font-size: 0.875rem !important;
    font-weight: 500 !important; } }

.heading-small {
  font-size: 1rem !important;
  font-weight: 500 !important; }

@media only screen and (max-width: 40em) {
  .heading-small-for-small-only {
    font-size: 1rem !important;
    font-weight: 500 !important; } }

@media only screen and (min-width: 40.0625em) {
  .heading-small-for-medium-up {
    font-size: 1rem !important;
    font-weight: 500 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .heading-small-for-medium-only {
    font-size: 1rem !important;
    font-weight: 500 !important; } }

@media only screen and (min-width: 64em) {
  .heading-small-for-large-up {
    font-size: 1rem !important;
    font-weight: 500 !important; } }

.heading-normal {
  font-size: 1.125rem !important;
  font-weight: 500 !important; }

@media only screen and (max-width: 40em) {
  .heading-normal-for-small-only {
    font-size: 1.125rem !important;
    font-weight: 500 !important; } }

@media only screen and (min-width: 40.0625em) {
  .heading-normal-for-medium-up {
    font-size: 1.125rem !important;
    font-weight: 500 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .heading-normal-for-medium-only {
    font-size: 1.125rem !important;
    font-weight: 500 !important; } }

@media only screen and (min-width: 64em) {
  .heading-normal-for-large-up {
    font-size: 1.125rem !important;
    font-weight: 500 !important; } }

.heading-large {
  font-size: 1.5rem !important;
  font-weight: 500 !important; }

@media only screen and (max-width: 40em) {
  .heading-large-for-small-only {
    font-size: 1.5rem !important;
    font-weight: 500 !important; } }

@media only screen and (min-width: 40.0625em) {
  .heading-large-for-medium-up {
    font-size: 1.5rem !important;
    font-weight: 500 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .heading-large-for-medium-only {
    font-size: 1.5rem !important;
    font-weight: 500 !important; } }

@media only screen and (min-width: 64em) {
  .heading-large-for-large-up {
    font-size: 1.5rem !important;
    font-weight: 500 !important; } }

.heading-larger {
  font-size: 1.875rem !important;
  font-weight: 500 !important; }

@media only screen and (max-width: 40em) {
  .heading-larger-for-small-only {
    font-size: 1.875rem !important;
    font-weight: 500 !important; } }

@media only screen and (min-width: 40.0625em) {
  .heading-larger-for-medium-up {
    font-size: 1.875rem !important;
    font-weight: 500 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .heading-larger-for-medium-only {
    font-size: 1.875rem !important;
    font-weight: 500 !important; } }

@media only screen and (min-width: 64em) {
  .heading-larger-for-large-up {
    font-size: 1.875rem !important;
    font-weight: 500 !important; } }

.heading-largest {
  font-size: 2.8125rem !important;
  font-weight: 500 !important; }

@media only screen and (max-width: 40em) {
  .heading-largest-for-small-only {
    font-size: 2.8125rem !important;
    font-weight: 500 !important; } }

@media only screen and (min-width: 40.0625em) {
  .heading-largest-for-medium-up {
    font-size: 2.8125rem !important;
    font-weight: 500 !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .heading-largest-for-medium-only {
    font-size: 2.8125rem !important;
    font-weight: 500 !important; } }

@media only screen and (min-width: 64em) {
  .heading-largest-for-large-up {
    font-size: 2.8125rem !important;
    font-weight: 500 !important; } }

/*doc
---
title: Small Heading Segments
name: b-small-header-segments
category: Typography - Headings (and helpers)
---

Inserting a `<small>` element into a heading will scale the heading font
size down for an inline element, allowing you to use this for subtitles or other
secondary heading text.

```html_example
<h2 class="heading-normal">Normal heading with a <small>small segment.</small></h3>
<h2 class="heading-large">Large heading  with a <small>small segment.</small></h4>
<h2 class="heading-larger">Larger heading  with a <small>small segment.</small></h4>
<h2 class="heading-largest">Largest heading  with a <small>small segment.</small></h4>
```
*/
h1 sup, h2 sup, h3 sup, h4 sup, h5 sup, h6 sup {
  font-size: 0.5em; }

/*doc
---
title: Heading Specific Helpers
name: c-heading-specific-helpers
category: Typography - Headings (and helpers)
selectors:
    - .heading-light
selector_type: text
---

Sometimes you want to debold a heading. Use: `.heading-light` (font-weight: 400)

```html_example
<h3 class="heading-normal">This is a default heading</h2>
<h3 class="heading-normal heading-light">This is a debolded heading</h2>
```

*/
.heading-light {
  font-weight: 400 !important; }

.heading-lighter {
  font-weight: 300 !important; }

/*doc
---
title: Text Color
name: a-text-color
category: Typography - General Helpers
selectors:
    - .text-muted
    - .text-caption
    - .text-coal
    - .text-steel
    - .text-iron
    - .text-black
    - .text-jet
    - .text-above-average
    - .text-average
    - .text-below-average
    - .text-alert
    - .text-white
    - .text-light-purple
    - .text-light-gray
selector_type: text
---

Default text color is `#333333`. You can override the default color on any text element with:


| classname                           | example                                                                                                                                          |
|-------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------|
| .text-muted                         | <span class="text-muted">Muted gray text (aluminum or #999999) that is used a ton</span>                                                         |
| .text-caption                       | <span class="text-caption">Darker (jumbo or #888888) than .text-muted, used for caption text</span>                                              |
| .text-coal                          | <span class="text-coal">Slightly darker gray (charcoal or #555555) if we must</span>
| .text-steel                         | <span class="text-steel"> Slightly darker than coal gray text ($steel or #666) the new subheading color</span>                                                              |
| .text-black                         | <span class="text-black">Black (#333) text used for rail links in news</span>                                                                    |
| .text-jet                           | <span class="text-jet">Jet (#222) text used for sponsored label text</span>                                                                    |
| .text-iron                          | <span class="text-iron">Gray (charcoal or #333333) used in text over black backgrounds</span>                                                    |
| .text-above-average                 | <span class="text-above-average">Conveys above average, positive or good (green-pro or #0abba4)</span>                                           |
| .text-average                       | <span class="text-average">Conveys average, neutral or C student (orange-light or #ffc14e)</span>                                                |
| .text-below-average or .text-alert  | <span class="text-below-average">Conveys below average, negative or bad; use .text-alert in other cases (red or #d1453d)</span>                  |
| .text-white                         | <div style="padding: 2px 6px;" class="panel block-flush text-white">White (#ffffff) text, handy for overlaying images and dark backgrounds</div> |
| .text-light-purple                  | <span class="text-light-purple">Light purple text (#c9dbf5) is used for overlines in superheroes</span>                                          |
| .text-light-gray                    | <span class="text-light-gray">Light gray (#c0cadd) is used in the top-bar</span>                                                                 |
| .text-link-blue-light               | <span class="text-link-blue-light">Light blue that looks like a link</span>
| .text-steel-blue-dark               | <span class="text-steel-blue-dark bg-steel-blue-light">To go with things on a steel-blue-light background</span>
| .text-primary-color                 | <span class="text-primary-color">When you want your text to match your primary color elements</span>

*/
.text-muted {
  color: #999999 !important; }

.text-caption {
  color: #888888 !important; }

.text-coal {
  color: #555555 !important; }

.text-steel {
  color: #666666 !important; }

.text-iron {
  color: #CCCCCC !important; }

.text-black,
.text-black > a {
  color: #333333 !important; }

.text-jet {
  color: #222222 !important; }

.text-above-average {
  color: #0ABBA4 !important; }

.text-average {
  color: #ffc14e !important; }

.text-below-average,
.text-alert {
  color: #D1453D !important; }

.text-white {
  color: #FFFFFF !important; }

@media only screen {
  .text-white-for-small {
    color: #FFFFFF !important; } }

@media only screen and (max-width: 40em) {
  .text-white-for-small-only {
    color: #FFFFFF !important; } }

@media only screen and (min-width: 40.0625em) {
  .text-white-for-medium {
    color: #FFFFFF !important; } }

@media only screen and (min-width: 40.0625em) {
  .text-white-for-medium-up {
    color: #FFFFFF !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .text-white-for-medium-only {
    color: #FFFFFF !important; } }

@media only screen and (min-width: 64em) {
  .text-white-for-large {
    color: #FFFFFF !important; } }

@media only screen and (min-width: 64em) {
  .text-white-for-large-up {
    color: #FFFFFF !important; } }

.text-light-purple {
  color: #c9dbf5; }

.text-light-gray {
  color: #c0cadd; }

.text-dark-orange {
  color: #E38D13; }

.text-link-blue-light {
  color: #2c7ef0 !important; }

.text-primary-color {
  color: #2262bb !important; }

.text-steel-blue-dark {
  color: #6e868f !important; }

/*doc
---
title: Text Transformations
name: b-text-transformations
category: Typography - General Helpers
selectors:
    - .text-uppercase
    - .text-uppercase-for-small-only
    - .text-semistrong
    - .text-strong
    - .text-stronger
    - .text-weak
    - .text-emphasized
    - .text-shadow
    - .text-strong-shadow
    - .text-strikethrough
selector_type: text
---

A few helpers to transform the styling of text specifically:


| classname                           | example                                                                                                                                                              |
|-------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| .text-uppercase                     | <span class="text-uppercase">This will uppercase any text</span>                                                                                                     |
| .text-semistrong                    | <span class="text-semistrong">This is semistrong (or semibold) text</span>                                                                                           |
| .text-strong or `<strong />`        | <span class="text-strong">This bolds text to a weight of 500, a commonly used bold weight</span> <strong>(same as strong tag)</strong>                               |
| .text-stronger                      | <span class="text-stronger">This bolds text even more to a max weight of 700</span>                                                                                  |
| .text-weak                          | <span class="text-weak">This lightens text to the weakest(thinnest) weight of 300</span>                                                                             |
| .text-emphasized or `<em />`        | <span class="text-emphasized">This makes text look italic, also emphasized</span>                                                                                    |
| .text-underline                     | <span class="text-underline">Text with underline</span>                                                                                                              |
| .text-strikethrough                 | <span class="text-strikethrough">Text with strikethrough</span>                                                                                                      |
| .text-shadow                        | <div style="padding: 2px 6px;" class="panel block-flush text-white text-shadow">This adds a shadow to usually white text on overlays often seen in hero units</div>  |
| .text-strong-shadow                 | <div style="padding: 2px 6px;" class="panel block-flush text-white text-strong-shadow">A stronger shadow, great for image overlays</div>                             |

*/
.text-uppercase {
  text-transform: uppercase !important; }

@media only screen and (max-width: 40em) {
  .text-uppercase-for-small-only {
    text-transform: uppercase !important; } }

.text-semistrong {
  font-weight: 400 !important; }

.text-strong {
  font-weight: 500 !important; }

@media only screen and (max-width: 40em) {
  .text-strong-for-small-only {
    font-weight: 500 !important; } }

strong {
  font-weight: 500; }

b p {
  font-weight: 700; }

.text-stronger {
  font-weight: 700 !important; }

.text-weak {
  font-weight: 300 !important; }

.text-emphasized {
  font-style: italic; }

.text-shadow {
  text-shadow: 0px 1px 2px rgba(0, 0, 0, 0.5) !important; }

@media only screen {
  .text-shadow-for-small {
    text-shadow: 0px 1px 2px rgba(0, 0, 0, 0.5) !important; } }

@media only screen and (max-width: 40em) {
  .text-shadow-for-small-only {
    text-shadow: 0px 1px 2px rgba(0, 0, 0, 0.5) !important; } }

@media only screen and (min-width: 40.0625em) {
  .text-shadow-for-medium {
    text-shadow: 0px 1px 2px rgba(0, 0, 0, 0.5) !important; } }

@media only screen and (min-width: 40.0625em) {
  .text-shadow-for-medium-up {
    text-shadow: 0px 1px 2px rgba(0, 0, 0, 0.5) !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .text-shadow-for-medium-only {
    text-shadow: 0px 1px 2px rgba(0, 0, 0, 0.5) !important; } }

@media only screen and (min-width: 64em) {
  .text-shadow-for-large {
    text-shadow: 0px 1px 2px rgba(0, 0, 0, 0.5) !important; } }

@media only screen and (min-width: 64em) {
  .text-shadow-for-large-up {
    text-shadow: 0px 1px 2px rgba(0, 0, 0, 0.5) !important; } }

.text-strong-shadow {
  text-shadow: 2px 2px 3px black !important; }

@media only screen {
  .text-strong-shadow-for-small {
    text-shadow: 2px 2px 3px black !important; } }

@media only screen and (max-width: 40em) {
  .text-strong-shadow-for-small-only {
    text-shadow: 2px 2px 3px black !important; } }

@media only screen and (min-width: 40.0625em) {
  .text-strong-shadow-for-medium {
    text-shadow: 2px 2px 3px black !important; } }

@media only screen and (min-width: 40.0625em) {
  .text-strong-shadow-for-medium-up {
    text-shadow: 2px 2px 3px black !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .text-strong-shadow-for-medium-only {
    text-shadow: 2px 2px 3px black !important; } }

@media only screen and (min-width: 64em) {
  .text-strong-shadow-for-large {
    text-shadow: 2px 2px 3px black !important; } }

@media only screen and (min-width: 64em) {
  .text-strong-shadow-for-large-up {
    text-shadow: 2px 2px 3px black !important; } }

.text-underline {
  text-decoration: underline !important; }

.text-strikethrough {
  text-decoration: line-through !important; }

/*doc
---
title: Line Height Modifiers (Leading)
name: c-line-height-modifiers
category: Typography - General Helpers
selectors:
    - .text-tightest
    - .text-tighter
    - .text-tight
    - .text-loose
    - .text-looser
    - .text-loosest
selector_type: text
---

A few helpers to tighten or loosen between text *(not to be confused with .block-tight or .pad-loose, those are for padding and margins):*

`.text-tightest` (line-height: 1)
`.text-tighter` (line-height: 1.16666667)
`.text-tight` (line-height: 1.3333334)
`default` (line-height: 1.5)
`.text-loose` (line-height: 1.6666667)
`.text-looser` (line-height: 1.833333334)
`.text-loosest` (line-height: 2)

``` html_example
<p class="text-tightest">
    This text is <strong>TIGHTEST</strong> with a line-height set to <em>1</em> - Lorem ipsum dolor sit amet, consectetur adipisicing elit. Culpa mollitia inventore sunt modi ratione eius, sapiente distinctio molestias, a recusandae voluptates repudiandae in maxime magnam accusantium soluta. Soluta nesciunt, reiciendis?
</p>

<p class="text-tighter">
    This text is <strong>TIGHTER</strong> with a line-height set to <em>1.167</em> - Lorem ipsum dolor sit amet, consectetur adipisicing elit. Culpa mollitia inventore sunt modi ratione eius, sapiente distinctio molestias, a recusandae voluptates repudiandae in maxime magnam accusantium soluta. Soluta nesciunt, reiciendis?
</p>

<p class="text-tight">
    This text is <strong>TIGHT</strong> with a line-height set to <em>1.33</em> - Lorem ipsum dolor sit amet, consectetur adipisicing elit. Culpa mollitia inventore sunt modi ratione eius, sapiente distinctio molestias, a recusandae voluptates repudiandae in maxime magnam accusantium soluta. Soluta nesciunt, reiciendis?
</p>

<p>
    This text is has a <strong>NORMAL</strong> with line-height of <em>1.5</em> - Lorem ipsum dolor sit amet, consectetur adipisicing elit. Culpa mollitia inventore sunt modi ratione eius, sapiente distinctio molestias, a recusandae voluptates repudiandae in maxime magnam accusantium soluta. Soluta nesciunt, reiciendis?
</p>

<p class="text-loose">
    This text is <strong>LOOSE</strong> with a line-height set to <em>1.67</em> - Lorem ipsum dolor sit amet, consectetur adipisicing elit. Culpa mollitia inventore sunt modi ratione eius, sapiente distinctio molestias, a recusandae voluptates repudiandae in maxime magnam accusantium soluta. Soluta nesciunt, reiciendis?
</p>

<p class="text-looser">
    This text is <strong>LOOSER</strong> with a line-height set to <em>1.84</em> - Lorem ipsum dolor sit amet, consectetur adipisicing elit. Culpa mollitia inventore sunt modi ratione eius, sapiente distinctio molestias, a recusandae voluptates repudiandae in maxime magnam accusantium soluta. Soluta nesciunt, reiciendis?
</p>

<p class="text-loosest">
    This text is <strong>LOOSEST</strong> with a line-height set to <em>2</em> - Lorem ipsum dolor sit amet, consectetur adipisicing elit. Culpa mollitia inventore sunt modi ratione eius, sapiente distinctio molestias, a recusandae voluptates repudiandae in maxime magnam accusantium soluta. Soluta nesciunt, reiciendis?
</p>

```
*/
.text-tightest {
  line-height: 1; }

.text-tighter {
  line-height: 1.166666667; }

.text-tight {
  line-height: 1.333333334; }

.text-loose {
  line-height: 1.666666667; }

.text-looser {
  line-height: 1.833333334; }

.text-loosest {
  line-height: 2; }

/*doc
---
title: Letter Spacing Modifiers
name: c-letter-spacing-modifiers
category: Typography - General Helpers
selectors:
    - .letters-sponsored-label
    - .letters-loose
    - .letters-looser
    - .letters-loosest
selector_type: text
---

A few helpers to loosen letter spacing

`.letters-sponsored-label` (letter-spacing: 0.08rem)
`.letters-loose` (letter-spacing: 1px)
`.letters-looser` (letter-spacing: 3px)
`.letters-loosest` (letter-spacing: 5px)

``` html_example
<p class="letters-sponsored-label">
    These letters are <strong>sponsored-label</strong> with a letter-spacing set to <em>0.08rem</em> and is used for sponsored media labels on superheros.
</p>

<p class="letters-loose">
    These letters are <strong>LOOSE</strong> with a letter-spacing set to <em>1px</em>.
</p>

<p class="letters-looser">
    These letters are <strong>LOOSER</strong> with a letter-spacing set to <em>3px</em>
</p>

<p class="text-loosest">
    These letters are the <strong>LOOSEST</strong> with a letter-spacing set to <em>5px</em>
</p>

```
*/
.letters-sponsored-label {
  letter-spacing: 0.08rem; }

.letters-loose {
  letter-spacing: 1px; }

.letters-looser {
  letter-spacing: 3px; }

.letters-loosest {
  letter-spacing: 5px; }

/*doc
---
title: Nowrap
name: d-nowrap
category: Typography - General Helpers
selectors:
    - .text-nowrap
selector_type: text
---

Set `.text-nowrap` to prevent text from wrapping. Helpful in table heading situations.

*/
.text-nowrap {
  white-space: nowrap !important; }

/*doc
---
title: Links
name: a-links
category: Typography - Links & Tags
selectors:
    - .dotted
    - .hover-muted
    - .hover-coal
    - .hover-smoke
    - .hover-black
    - .hover-light-gray
selector_type: text
---

| classname     | example                                                                          |
|-----------------|----------------------------------------------------------------------------------|
| `<a />`         | Here is a <a href="">default link</a>                                            |
| .text-black     | Here is a <a class="text-black" href="">tricky black link</a> used in news rails |
| .dotted         | Here is a <a class="dotted" href="">dotted link</a>                              |
| .hover-muted    | Here is a <a class="hover-muted" href="">hover muted</a>                         |
| .hover-smoke    | Here is a <a class="hover-smoke" href="">hover smoke</a>                         |
| .hover-coal     | Here is a <a class="hover-coal" href="">hover coal</a>                           |
| .hover-gainsboro| Here is a <a class="hover-gainsboro" href="">hover gainsboro</a>                 |
| .hover-black    | Here is a <a class="hover-black" href="">hover black</a>                         |

```html_example?kitchen-sink=true
<ul>
    <li>Here is <a href="http://www.youtube.com/watch?v=zT2aVoUkSDg">an example</a> of our standard link style</li>
    <li>Here is <a class="text-black" href="">a hard to tell black link</a> used in news rails.</li>
    <li>Here is <a class="dotted" href="">a dotted link</a> used in some modules</li>
    <li>Here is <a class="text-muted hover-coal" href="">a muted link with coal hover</a> used in some modules</li>
</ul>
```

*/
a.dotted {
  border-bottom: 2px dotted #f4c581;
  padding-bottom: 2.5px;
  color: #333333; }

.hover-muted:hover {
  color: #999999 !important; }

.hover-smoke:hover {
  color: #eeeeee !important; }

.hover-coal:hover {
  color: #555555 !important; }

.hover-gainsboro:hover {
  color: #DDDDDD !important; }

.hover-black:hover {
  color: #000000 !important; }

.no-hover {
  cursor: default !important; }

.hover-light-gray:hover {
  color: #c0cadd !important; }

u[data-rte2-sanitize="underline"] {
  text-decoration: none; }

/*doc
---
title: Tags
name: b-tags
category: Typography - Links & Tags
selectors:
    - .tags
selector_type: text
---

This class is for the styling of tags at the bottom of articles.

```html_example?kitchen-sink=true
<p class="tags">Tags: <a href="#" alt="">careers</a>,<a href="#" alt=""> money</a>,<a href="#" alt=""> resumes</a>, <a href="#" alt="">job searching</a></p>
```

*/
.tags {
  font-weight: 500;
  font-size: 0.875rem; }
  .tags > a {
    color: #333333; }
    .tags > a:hover {
      color: #999999; }

/*doc
---
title: Blockquotes
name: b-cms-custom-quote
category: Typography - Other
selectors:
    - .cms-custom-quote
selector_type: text
---

This is special styling for blockquotes added in the CMS rich text editor.

```html_example?kitchen-sink=true
<div class="cms-custom-quote">David A. Graham at The Atlantic also <a class="" href="http://www.theatlantic.com/notes/2016/01/sanders-america/425043/">praises</a> Sanders for trying to avoid negativity. Speaking about the ad overall, Graham observes, "It's a pretty great spot, with lots of warm fuzzies." However, Graham argues that the ad could have shown more racial diversity: "Still, it's hard not to notice how white the ad is – I counted perhaps half a dozen people of color in the spot." Graham notes that "Iowa and New Hampshire Democrats are heavily white" but says that the ad does not appeal to the "broader Democratic electorate," especially the African-American and Latino communities.</div>
<div class="cms-custom-quote">Hot Air's Allahpundit <a href="http://hotair.com/archives/2016/01/21/the-medias-got-a-fever-and-the-only-prescription-is-this-new-bernie-sanders-ad/" title="Link: http://hotair.com/archives/2016/01/21/the-medias-got-a-fever-and-the-only-prescription-is-this-new-bernie-sanders-ad/">finds</a>&nbsp;that the ad deserves the attention it has garnered. He praises Sanders for being able to successfully convey his message through "atmosphere" rather than narration. Allahpundit writes, "The populist contrast with Hillary is so obvious that Sanders doesn't even allude to her here." He also observes that Sanders manages to contrast himself with Obama. "The Obama movement was ultimately about Obama and his cult of personality. The Sanders movement is being sold, however implicitly, as a reaction to that, devolving the spirit of liberalism back to the people after enshrining it in a leader who disappointed some progressives when he wasn't radical enough." Like Graham, he points out that the ad is "heavy on white people," though.</div>
```

*/
.cms-custom-quote {
  border-left: 2px solid #2c7ef0;
  margin-left: 25px;
  margin-bottom: 25px;
  padding-left: 25px; }
  .cms-custom-quote + .cms-custom-quote {
    padding-top: 25px;
    margin-top: -25px; }

/*doc
---
title: Auto Ellipsis
name: auto-ellipsis
category: Typography - General Helpers
selectors:
selector_type: text
---

Automatically inserts an ellipsis at the end of some text if it overflows.  A custom height is necessary.
Care must be taken to ensure the height matches up with the bottom of the last line, or the ellipsis will look funky.

A generalization of the technique described in this article:
http://www.mobify.com/blog/multiline-ellipsis-in-pure-css/

The Sass mixin that drives this macro also allows for a custom ellipsis element to create a "more" link, arrow, etc. instead of "... " by passing `true` as the first argument.

{% set editor_id = uuid() %}

```nunjucks_tab?editor-id={{editor_id}}
{% from "templates/common/utils/ellipsis.nunj" import ellipsis %}
{% call ellipsis(48) %}
    <span>One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a horrible vermin.</span>
    <span>He lay on his armour-like back, and if he lifted his head a little he could see his brown belly, slightly domed and divided by arches into stiff sections.</span>
    <span>The bedding was hardly able to cover it and seemed ready to slide off any moment. His many legs, pitifully thin compared with the size of the rest of him, waved about helplessly as he looked.</span>
{% endcall %}

<br>
<br>

{% from "templates/common/utils/ellipsis.nunj" import linkEllipsis %}
{% call linkEllipsis(48, 'more', 'http://usnews.com') %}
    <span>One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a horrible vermin.</span>
    <span>He lay on his armour-like back, and if he lifted his head a little he could see his brown belly, slightly domed and divided by arches into stiff sections.</span>
    <span>The bedding was hardly able to cover it and seemed ready to slide off any moment. His many legs, pitifully thin compared with the size of the rest of him, waved about helplessly as he looked.</span>
{% endcall %}
```

*/
.ellipsis-block {
  overflow: hidden;
  position: relative; }
  .ellipsis-block:before {
    content: '';
    float: left;
    height: 100%;
    width: 5px; }
  .ellipsis-block .ellipsis-text {
    float: right;
    margin-left: -5px;
    width: 100%; }
  .ellipsis-block .ellipsis-visual {
    color: black;
    display: block;
    float: right;
    left: 100%;
    height: 0;
    position: relative;
    width: 5px; }
    .ellipsis-block .ellipsis-visual:before {
      background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, white 30%);
      bottom: 0px;
      right: 5px;
      position: absolute;
      text-align: center;
      content: "... ";
      width: 40px; }
  .ellipsis-block[data-collapsed="false"] [data-js-handle="expand"] {
    display: none; }
  .ellipsis-block[data-collapsed="true"] [data-js-handle="collapse"] {
    display: none; }

.ellipsis-block-custom {
  overflow: hidden;
  position: relative; }
  .ellipsis-block-custom:before {
    content: '';
    float: left;
    height: 100%;
    width: 5px; }
  .ellipsis-block-custom .ellipsis-text {
    float: right;
    margin-left: -5px;
    width: 100%; }
  .ellipsis-block-custom .ellipsis-visual {
    color: black;
    display: block;
    float: right;
    left: 100%;
    height: 0;
    position: relative;
    width: 5px; }
    .ellipsis-block-custom .ellipsis-visual > *:first-child {
      background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, white 30%);
      bottom: 0px;
      right: 5px;
      position: absolute;
      text-align: center;
      width: 120px; }
  .ellipsis-block-custom[data-collapsed="false"] [data-js-handle="expand"] {
    display: none; }
  .ellipsis-block-custom[data-collapsed="true"] [data-js-handle="collapse"] {
    display: none; }

@media (max-width: 40em) {
  body {
    -webkit-text-size-adjust: none; } }

/*doc
---
title: Single Line Ellipsis
name: single-line-ellipsis
category: Typography - General Helpers
selectors:
selector_type: text
---

Automatically inserts an ellipsis at the end of line of text if it overflows.
Further granular control of length can be achieved with a `max-width` set inline.

```html_example
<div class="flex-row">
    <div class="flex-small-12 overflow-ellipsis">
        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
    </div>
    <div class="flex-small-6 overflow-ellipsis">
        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
    </div>
</div>
```
*/
.overflow-ellipsis {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap !important; }

/*doc
---
title: Hyphenate Overflow Text
name: hyphenate-overflow-text
category: Typography - General Helpers
selectors:
    - .text-overflow-hyphenate
selector_type: text
---

If a block of text can no longer be overflowed by wrapping to a newline on whitespace, this will break the overflowing word to a newline and hyphenate after the break.

<strong>IMPORTANT: This also requires a `lang="en"` attribute to be present on the element using this class.</strong>

```html_example
<div>
   (without class)
   <p style="padding: 5px; border: 1px solid; width: 8em;">
       This is a long and Supercalifragilisticexpialidocious sentence.
   </p>

   (with .text-overflow-hyphenate)
   <p lang="en" class="text-overflow-hyphenate" style="padding: 5px; border: 1px solid; width: 8em;">
       This is a long and Supercalifragilisticexpialidocious sentence.
   </p>
</div>
```
*/
.text-overflow-hyphenate {
  hyphens: auto; }

/*doc
---
title: List Modifiers
name: f-lists
category: Lists - Lists
---

Styles for a number of different unordered list `<ul>` styles, as well as ordered and definition lists.

Styling: `.disc` for the default styling, `.no-bullet` for list-sytle-type: none
### Disc

```html_example
<ul class="disc">
  <li>List item with disc and a much longer description or more content.</li>
  <li>List item with disc</li>
  <li>List item with disc
 </ul>
```
### No-bullet
```html_example
 <ul class="no-bullet">
   <li>List item with a much longer description or more content.</li>
   <li>List item</li>
   <li>List item
  </ul>
```
*/
/*doc
---
title: Inline Lists
name: g-inline-lists
category: Lists - Lists
---

Use class `.inline-list` to create a horizontal row of links

Use it when you want more control than spaces between links, like in a footer.

```html_example
<ul class="inline-list">
  <li><a href="#">Link 1</a></li>
  <li><a href="#">Link 2</a></li>
  <li><a href="#">Link 3</a></li>
  <li><a href="#">Link 4</a></li>
  <li><a href="#">Link 5</a></li>
</ul>
```
*/
/*doc
---
title: Touch (Friendly)
name: h-touch-for-small-only
category: Lists - Lists
---

Use class `.touch-for-small-only` when you want to have lines below the li in small

This example is also using the `.no-bullet` class
```html_example
<ul class="touch-for-small-only no-bullet">
  <li><a href="#">Link 1</a></li>
  <li><a href="#">Link 2</a></li>
  <li><a href="#">Link 3</a></li>
  <li><a href="#">Link 4</a></li>
  <li><a href="#">Link 5</a></li>
</ul>
```
*/
@media only screen and (max-width: 40em) {
  .touch-for-small-only {
    font-size: 1.125rem;
    color: #2c7ef0;
    margin-bottom: 0; }
    .touch-for-small-only li {
      margin: 0 -1.875rem; }
    .touch-for-small-only a {
      border-bottom: 1px solid #DDE1E2;
      padding: 0.75rem 0 0.75rem 0.9375rem;
      display: block; }
    .touch-for-small-only li:first-of-type {
      border-top: 1px solid #DDE1E2; }
    .touch-for-small-only .icon {
      margin-right: 1.25rem; } }

/*doc
---
title: Mobile List Styling
name: t-mobile-list
category:  Lists - Lists
---
 `.small-list` formats with a set padding for looking like a `.promolist.text` list in mobile

```html_example
  <div class="small-12 medium-6">
      <a class="heading-normal small-list" href="#">Admissions</a>
      <a class="heading-normal small-list" href="#">Recommendation Letters</a>
      <a class="heading-normal small-list" href="#">Wait List</a>
  </div>
```

```html_example
<ul class="inline-list small-12">
  <li><a href="#">Link 1</a></li>
  <li><a href="#">Link 2</a></li>
  <li><a href="#">Link 3</a></li>
  <li><a href="#">Link 4</a></li>
  <li><a href="#">Link 5</a></li>
</ul>
```
*/
.inline-list {
  margin: 0 0 1rem -1.375rem; }

.small-list {
  padding: 0.9375rem 0.4375rem 0.9375rem 0;
  display: block; }
  @media only screen and (min-width: 40.0625em) {
    .small-list {
      padding: 0.78125rem 0.4375rem 0.78125rem 0; } }

@media only screen and (max-width: 40em) {
  .inline-list.small-list > li {
    clear: both;
    margin-left: 0;
    padding: 0.9375rem 0.4375rem 0.9375rem 0; } }

/*doc
---
title: Rankings List
name: rankings-list
category: Lists - Lists
authors: Corey Hutton
template:
    rankings:
        -
            name: "Best Diets Overall"
            rank: "#1"
            url: "/wellness/diets/best-overall-diets"
        -
            name: "Best Weight-Loss Diets"
            rank: "#12"
            url: "/wellness/diets/best-weight-loss-diets"
        -
            name: "Best Diabetes Diets"
            rank: "#1"
            url: "/wellness/diets/best-diabetes-diets"
        -
            name: "Best Diets for Healthy Eating"
            rank: "#3"
            url: "/wellness/diets/best-diets-for-healthy-eating"
        -
            name: "Best Diets for Heart Health"
            rank: "#8"
            url: "/wellness/diets/best-diets-for-heart-health"
        -
            name: "Easiest Diets to Follow"
            rank: "#1"
            url: "/wellness/diets/easiest-diets-to-follow"
---

A simple list for rankings, with badge icons as bullets.

```nunjucks_tab?editor-id={{uuid()}}
{% from "templates/common/list/rankings.nunj" import rankingsList %}
{{ rankingsList(rankings) }}
```
*/
.rankings-list > li > svg.ranking {
  margin-top: -1px; }

/*doc
---
title: Squares List
name: squares-list
category: Lists - Lists
authors: Wes DiMiceli
template:
    squaresList:
        -
            name: "Best Diets Overall"
            url: "/wellness/diets/best-overall-diets"
            blurb: lorem ipsum
        -
            name: "Best Weight-Loss Diets"
            url: "/wellness/diets/best-weight-loss-diets"
            blurb: lorem ipsum
        -
            name: "Best Diabetes Diets"
            url: "/wellness/diets/best-diabetes-diets"
            blurb: lorem ipsum
        -
            name: "Best Diets for Healthy Eating"
            url: "/wellness/diets/best-diets-for-healthy-eating"
            blurb: lorem ipsum
        -
            name: "Best Diets for Heart Health"
            url: "/wellness/diets/best-diets-for-heart-health"
            blurb: lorem ipsum
        -
            name: "Easiest Diets to Follow"
            url: "/wellness/diets/easiest-diets-to-follow"
            blurb: lorem ipsum
---

A simple list of links contained within a gray border.

```nunjucks_tab?editor-id={{uuid()}}
{% from "templates/common/list/squares.nunj" import squares %}
{% call(item, components) squares(squaresList) %}
    {{ components.itemRenderer(item.name, item.url, item.blurb) }}
{% endcall %}
```
*/
.squares .squares-bordered {
  border: 2px solid #DDE1E2;
  border-radius: 3px;
  margin: 0 2%;
  max-width: 46%;
  padding: 0; }
  .squares .squares-bordered a {
    display: block;
    padding: 1.5625rem 1.125rem; }

/*doc
---
title: List to Dropdown Styling (For Mobile)
name: list-to-dropdown
category:  Lists - Lists
---
 `.list-to-dropdown` formats a list to be a dropdown on mobile and list on desktop

```html_example

<div class="list-to-dropdown">
  <input type="checkbox" id="list-id">
  <label for="list-id" class="heading-normal">
      List Heading (clickable on small)
  </label>
  <ul class="no-bullet">
    <li><a href="#item1">item 1</a></li>
    <li><a href="#item2">item 2</a></li>
    <li><a href="#item3">item 3</a></li>
  </ul>
</div>
```
*/
.list-to-dropdown ul {
  border: none;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }
  @media (min-width: 40.0625em) {
    .list-to-dropdown ul {
      border: none;
      clip: auto;
      height: auto;
      margin: auto;
      overflow: auto;
      padding: auto;
      position: relative;
      width: auto; } }

.list-to-dropdown input[type="checkbox"] {
  display: none; }
  @media only screen and (min-width: 64em) {
    .list-to-dropdown input[type="checkbox"] + label {
      cursor: auto; } }
  .list-to-dropdown input[type="checkbox"] + label {
    margin-left: 0;
    margin-right: 0; }
  .list-to-dropdown input[type="checkbox"]:checked ~ ul {
    border: none;
    clip: auto;
    height: auto;
    margin: auto;
    overflow: auto;
    padding: auto;
    position: relative;
    width: auto; }

@media (min-width: 40.0625em) {
  .list-to-dropdown .icon {
    display: none; } }

/*doc
---
title: Shadow Modifiers
name: a-shadow-default
category: Visual Treatments - Shadow
selectors:
    - .shadow-default
---

Add `.shadow-default` modifier to an element to to give it the default shadow that 
is centered around an element with a 5px blur.

`box-shadow: 0 0 5px 0 #ccc`

```html_example
<div class="panel borderless white shadow-default">This has a default shadow</div>
```

`.shadow-subtle` has lighter shadow

`box-shadow: 0 0 5px 0 #eee`

```html_example
<div class="panel borderless white shadow-subtle">This has a .shadow-subtle</div>
```

`.shadow-dark` has darker shadow

`box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5)`

```html_example
<div class="panel borderless white shadow-dark">This has a .shadow-dark</div>
```

`.shadow-tight` has less blur

`box-shadow: 0 0 3px 0 #ccc`

```html_example
<div class="panel borderless white shadow-tight">This has a .shadow-tight</div>
```

`.shadow-low` is shifted down slightly

`box-shadow: 0 3px 5px 0 #ccc`

```html_example
<div class="panel borderless white shadow-low">This has a .shadow-low</div>
```
```html_example
<div class="panel borderless white shadow-none">This has a .shadow-none</div>
`.shadow-none` no shadow; used to override hero shadow class. 
`box-shadow: none;`
```
*/
.shadow-default {
  -webkit-box-shadow: 0 0 5px 0 #ccc;
  -moz-box-shadow: 0 0 5px 0 #ccc;
  box-shadow: 0 0 5px 0 #ccc; }

.shadow-subtle {
  -webkit-box-shadow: 0 0 5px 0 #eee;
  -moz-box-shadow: 0 0 5px 0 #eee;
  box-shadow: 0 0 5px 0 #eee; }

.shadow-dark {
  -webkit-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5);
  -moz-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5);
  box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5); }

@media only screen {
  .shadow-dark-for-small {
    -webkit-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5);
    -moz-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5);
    box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5); } }

@media only screen and (max-width: 40em) {
  .shadow-dark-for-small-only {
    -webkit-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5);
    -moz-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5);
    box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5); } }

@media only screen and (min-width: 40.0625em) {
  .shadow-dark-for-medium {
    -webkit-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5);
    -moz-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5);
    box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5); } }

@media only screen and (min-width: 40.0625em) {
  .shadow-dark-for-medium-up {
    -webkit-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5);
    -moz-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5);
    box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5); } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .shadow-dark-for-medium-only {
    -webkit-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5);
    -moz-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5);
    box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5); } }

@media only screen and (min-width: 64em) {
  .shadow-dark-for-large {
    -webkit-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5);
    -moz-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5);
    box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5); } }

@media only screen and (min-width: 64em) {
  .shadow-dark-for-large-up {
    -webkit-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5);
    -moz-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5);
    box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5); } }

.shadow-tight {
  -webkit-box-shadow: 0 0 2px 0 #ccc;
  -moz-box-shadow: 0 0 2px 0 #ccc;
  box-shadow: 0 0 2px 0 #ccc; }

.shadow-low {
  -webkit-box-shadow: 0 3px 5px 0 #ccc;
  -moz-box-shadow: 0 3px 5px 0 #ccc;
  box-shadow: 0 3px 5px 0 #ccc; }

.shadow-none {
  box-shadow: none !important; }

/*doc
---
title: Round Modifiers
name: a-round-helper
category: Visual Treatments - Round
selectors:
    - .round
---

Add `.round` modifier to an element to make it round.

```html_example
<img class="round" src="http://placehold.it/180x180" alt="..." height="90" width="90">
```

*/
.round, .icon-maps-markerMap.blue, .icon-maps-markerMap.orange {
  border-radius: 50% !important; }

/*doc
---
title: Icons
name: a-icons
category: Icons & Images - SVG Icons
selectors:
    - .icon
selector_type: component
---

SVG icons are easy to include and style.

  You can import and use the Icon Macro described below: `svgIcon(iconName, color='')`

The generated markup looks like:

  `<svg class="icon"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#NAME" /></svg>`

It will make a call to an *external svg sprite file* on static and return the icon that
matches the hashmark fragment id appended to the url, i.e `#NAME` above.
To see a list of icons we can use, take a look at the [directory](#c-global-icons) below.

Note: Internet Explorer doesn't support `<use>` with an external source at all
(https://css-tricks.com/svg-use-with-external-reference-take-2/), so we
are running the "svg4everybody" JS tool that inlines external SVG
content with ajax in browsers that need it (https://github.com/jonathantneal/svg4everybody).

A basic svg icon with class of `.icon` will default to `black` and `1.5rem` square.
Here is an example of an svg icon called `search` and the markup to use.

```html_example
<p><svg class="icon"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#search" /></svg> search icon!</p>
```
*/
/*doc
---
title: Styling Icons
name: b-styling-icons
category: Icons & Images - SVG Icons
selectors:
    - .icon.link
    - .icon.nolink
    - .icon.muted
    - .icon.pro
    - .icon.con
    - .icon.badge
    - .icon.tiny
    - .icon.smallest
    - .icon.smaller
    - .icon.small
    - .icon.medium
    - .icon.large
    - .icon.larger
    - .icon.largest
    - .icon.x-large
    - .icon.x-larger
    - .icon.x-largest
    - .icon.hover-black
---

**Options**

| Default                                                                                        | className     |
|------------------------------------------------------------------------------------------------|---------------|
| <svg class="icon"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#compass" /></svg>     | icon          |

| Colors                                                                                                 | className      |
|--------------------------------------------------------------------------------------------------------|----------------|
| <svg class="icon link"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#compass" /></svg>        | link           |
| <svg class="icon nolink"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#compass" /></svg>      | nolink or muted|
| <svg class="icon pro"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#check-pro" /></svg>       | pro            |
| <svg class="icon con"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#x-con" /></svg>           | con            | 
| <svg class="icon badge"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#mini-badge" /></svg>    | badge          |
| <svg class="icon white"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#mini-badge" /></svg>    | white          |
| <svg class="icon coal"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#mini-badge" /></svg>     | coal           |
| <svg class="icon iron"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#mini-badge" /></svg>     | iron           |
| <svg class="icon steel"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#mini-badge" /></svg>    | steel (for global off-canvas icons) |
| <svg class="icon aluminum"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#mini-badge" /></svg> | aluminum       |

| Sizes                                                                                                | className |
|------------------------------------------------------------------------------------------------------|-----------|
| <svg class="icon tiny"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#compass" /></svg>      | tiny      |
| <svg class="icon smallest"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#compass" /></svg>  | smallest  |
| <svg class="icon smaller"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#compass" /></svg>   | smaller   |
| <svg class="icon small"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#compass" /></svg>     | small     |
| <svg class="icon small"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#compass" /></svg>     | small     |
| <svg class="icon medium"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#compass" /></svg>    | medium    |
| <svg class="icon large"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#compass" /></svg>     | large     |
| <svg class="icon larger"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#compass" /></svg>    | larger    |
| <svg class="icon largest"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#compass" /></svg>   | largest   |
| <svg class="icon x-large"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#compass" /></svg>   | x-large   |
| <svg class="icon x-larger"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#compass" /></svg>  | x-larger  |
| <svg class="icon x-largest"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#compass" /></svg> | x-largest |

| Rotation & Flipping                                                                                         | className       |
|------------------------------------------------------------------------------------------------------------ | --------------- |
| <svg class="icon rotate-45"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#arrow-button" /></svg>   | rotate-45       |
| <svg class="icon rotate-90"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#arrow-button" /></svg>   | rotate-90       |
| <svg class="icon rotate-180"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#arrow-button" /></svg>  | rotate-180      |
| <svg class="icon rotate-270"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#arrow-button" /></svg>  | rotate-270      |
| <svg class="icon flip-horizontal"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#travel" /></svg>   | flip-horizontal |
| <svg class="icon flip-vertical"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#cars" /></svg>       | flip-vertical   |

Note: If you wish to add the `.rotate-*` classes dynamically to the icon and
have it animate the change of rotation state, add the `.animate-rotation`
class to your icon to provide a transition. It should be before any `.rotate-*`
classes on your icon.

*/
/*doc
---
title: Icon Container Styling
name: c-icon-container-styling
category: Icons & Images - SVG Icons
selectors:
    - .background-blue
    - .background-green
    - .background-red
    - .background-dark
selector_type: component
---

Add these modifiers along with optional `.round` modifier to achieve this look:
Currently it has some sizing coupled to breakpoints but might be abstracted out
in the future.

`.background-blue`
`.background-blue.round`
`.background-green.round`
`.background-red.round`
`.background-dark.round`

```html_example
<svg class="icon background-blue white"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#bar-chart" /></svg>
<svg class="icon background-blue round white"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#bar-chart" /></svg>
<svg class="icon background-green round white"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#line-chart" /></svg>
<svg class="icon background-red round white"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#area-chart" /></svg>
<svg class="icon background-dark round white"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#law" /></svg>
```

*/
/*doc
---
title: Icon Directory
name: d-global-icons
category: Icons & Images - SVG Icons
---

Here are the icons we have so far...

```html_example?kitchen-sink=true
<ul class="small-block-grid-6">
{%- for name in icons %}
  <li><svg class="icon"><use xlink:href="{{static_remote_path}}/sprites/svg/sprite.symbol.svg{{'#' + name}}" /></svg> {{name}}</li>
{%- endfor %}
</ul>
```
*/
.icon {
  display: inline-block;
  fill: #000;
  vertical-align: middle;
  width: 1.25rem;
  height: 1.25rem; }
  .label > .icon {
    cursor: pointer; }
  .icon.nudge-up {
    margin-top: -3px; }

.icon.flipped {
  -webkit-transform: scaleX(-1);
  transform: scaleX(-1);
  filter: FlipH; }

.icon.tiny {
  height: 0.625rem;
  width: 0.625rem; }

.icon.smallest {
  height: 0.75rem;
  width: 0.75rem; }

.icon.smaller {
  height: 0.875rem;
  width: 0.875rem; }

.icon.small {
  height: 1rem;
  width: 1rem; }

@media only screen {
  .icon.small-for-small {
    height: 1rem;
    width: 1rem; } }

@media only screen and (max-width: 40em) {
  .icon.small-for-small-only {
    height: 1rem;
    width: 1rem; } }

@media only screen and (min-width: 40.0625em) {
  .icon.small-for-medium {
    height: 1rem;
    width: 1rem; } }

@media only screen and (min-width: 40.0625em) {
  .icon.small-for-medium-up {
    height: 1rem;
    width: 1rem; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .icon.small-for-medium-only {
    height: 1rem;
    width: 1rem; } }

@media only screen and (min-width: 64em) {
  .icon.small-for-large {
    height: 1rem;
    width: 1rem; } }

@media only screen and (min-width: 64em) {
  .icon.small-for-large-up {
    height: 1rem;
    width: 1rem; } }

.icon.medium {
  height: 1.5rem;
  width: 1.5rem; }

@media only screen {
  .icon.medium-for-small {
    height: 1.5rem;
    width: 1.5rem; } }

@media only screen and (max-width: 40em) {
  .icon.medium-for-small-only {
    height: 1.5rem;
    width: 1.5rem; } }

@media only screen and (min-width: 40.0625em) {
  .icon.medium-for-medium {
    height: 1.5rem;
    width: 1.5rem; } }

@media only screen and (min-width: 40.0625em) {
  .icon.medium-for-medium-up {
    height: 1.5rem;
    width: 1.5rem; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .icon.medium-for-medium-only {
    height: 1.5rem;
    width: 1.5rem; } }

@media only screen and (min-width: 64em) {
  .icon.medium-for-large {
    height: 1.5rem;
    width: 1.5rem; } }

@media only screen and (min-width: 64em) {
  .icon.medium-for-large-up {
    height: 1.5rem;
    width: 1.5rem; } }

.icon.medium-plus {
  height: 1.75rem;
  width: 1.75rem; }

.icon.large {
  height: 2rem;
  width: 2rem; }

@media only screen {
  .icon.large-for-small {
    height: 2rem;
    width: 2rem; } }

@media only screen and (max-width: 40em) {
  .icon.large-for-small-only {
    height: 2rem;
    width: 2rem; } }

@media only screen and (min-width: 40.0625em) {
  .icon.large-for-medium {
    height: 2rem;
    width: 2rem; } }

@media only screen and (min-width: 40.0625em) {
  .icon.large-for-medium-up {
    height: 2rem;
    width: 2rem; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .icon.large-for-medium-only {
    height: 2rem;
    width: 2rem; } }

@media only screen and (min-width: 64em) {
  .icon.large-for-large {
    height: 2rem;
    width: 2rem; } }

@media only screen and (min-width: 64em) {
  .icon.large-for-large-up {
    height: 2rem;
    width: 2rem; } }

.icon.larger {
  height: 3rem;
  width: 3rem; }

.icon.largest {
  height: 4rem;
  width: 4rem; }

.icon.x-large {
  height: 5rem;
  width: 5rem; }

.icon.x-larger {
  height: 6rem;
  width: 6rem; }

.icon.x-largest {
  height: 7rem;
  width: 7rem; }

.icon.link, .icon.link-hover:hover, .icon.search-form-header-close-button:hover {
  fill: #2c7ef0; }

.icon.link-hover:hover {
  transition: fill 300ms; }

.icon.nolink,
.icon.muted {
  fill: #999999; }

.icon.hover-black:hover {
  fill: #000000; }

.icon.pro {
  fill: #0ABBA4; }

.icon.con {
  fill: #F06E65; }

.icon.warn {
  fill: #E38D13; }

.icon.badge {
  fill: #ffc14e; }

.icon.white {
  fill: #ffffff; }

.icon.coal {
  fill: #555555; }

.icon.iron {
  fill: #CCCCCC; }

.icon.steel {
  fill: #c0cadd; }

.icon.aluminum {
  fill: #999999; }

.icon.animate-rotation {
  transform: rotate(0deg);
  transition-duration: 400ms; }

.icon.rotate-45 {
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg); }

.icon.rotate-90 {
  -webkit-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  transform: rotate(90deg); }

.icon.rotate-135 {
  -webkit-transform: rotate(135deg);
  -ms-transform: rotate(135deg);
  transform: rotate(135deg); }

.icon.rotate-180 {
  -webkit-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  transform: rotate(180deg); }

.icon.rotate-225 {
  -webkit-transform: rotate(225deg);
  -ms-transform: rotate(225deg);
  transform: rotate(225deg); }

.icon.rotate-270 {
  -webkit-transform: rotate(270deg);
  -ms-transform: rotate(270deg);
  transform: rotate(270deg); }

.icon.rotate-315 {
  -webkit-transform: rotate(315deg);
  -ms-transform: rotate(315deg);
  transform: rotate(315deg); }

.icon.flip-horizontal {
  -webkit-transform: scale(1, -1);
  -ms-transform: scale(1, -1);
  transform: scale(-1, 1); }

.icon.flip-vertical {
  -webkit-transform: scale(1, -1);
  -ms-transform: scale(1, -1);
  transform: scale(1, -1); }

.icon.background-blue, .icon-maps-markerMap.blue, .icon.background-green, .icon.background-red, .icon.background-dark, .icon.background-orange, .icon-maps-markerMap.orange {
  width: 3.375rem;
  height: 3.375rem;
  padding: 8px;
  border: 3px solid #fff;
  -webkit-box-shadow: 0px 1px 1px 0 #aaa;
  -moz-box-shadow: 0px 1px 1px 0 #aaa;
  box-shadow: 0px 1px 1px 0 #aaa; }
  @media (min-width: 40.0625em) {
    .icon.background-blue, .icon-maps-markerMap.blue, .icon.background-green, .icon.background-red, .icon.background-dark, .icon.background-orange, .icon-maps-markerMap.orange {
      padding: 10px;
      width: 4.25rem;
      height: 4.25rem; } }

.icon.background-blue, .icon-maps-markerMap.blue {
  background: #2c7ef0; }

.icon.background-green {
  background: #0ABBA4; }

.icon.background-red {
  background: #D1453D; }

.icon.background-dark {
  background: #10294B; }

.icon.background-orange, .icon-maps-markerMap.orange {
  background: #f8ab1d; }

/*doc
---
title: SVG Icon Rating
name: a-svg-ratings
category: Icons & Images - SVG Icons
authors: Pablo Lazo
---

A nunjucks macro for creating custom svg icon ratings.<br>
{% raw %}
    1) Import the macro<br>
    {% from "templates/common/utils/icon.nunj" import rating %}<br>
    2) Call it<br>
    rating(score=2.5)<br>
{% endraw %}

```html_example
{% from "templates/common/utils/icon.nunj" import rating %}
{{ rating(score=2.5) }}
<p>
score=2.5
</p>
{{ rating(score=7.8, max=10, icon="travel", classes="large", fill="#0ABBA4") }}
<p>
score=7.8, max=10, icon="travel", classes="large", fill="#0ABBA4"
</p>
{{ rating(score=2.2, max=6, icon="martini", classes="larger rotate-45", fill="#EA8ECC", bg="#A5D2FF") }}
<p>
score=2.2, max=6, icon="martini", classes="larger rotate-45", fill="#EA8ECC", bg="#A5D2FF"
</p>
{{ rating(score=7.8, max=10, icon="star", classes="largest", fill="#F36565") }}
<p>
score=7.8, max=10, icon="star", classes="largest", fill="#F36565"
</p>
```

| parameter    | purpose                                    | default            |
|--------------|--------------------------------------------|--------------------|
| `score`      | number score                               | 0                  |
| `max`        | maximum score (number of icons)            | 5                  |
| `icon`       | svg icon class                             | "star-rating"      |
| `classes`    | icon classes                               | ""                 |
| `fill`       | icon fill color                            | "rgb(26,96,183)"   |
| `bg`         | icon background color                      | "rgb(200,200,200)" |

*/
.svg-rating {
  display: inline-block; }
  .svg-rating svg {
    margin-right: -5px; }
    .svg-rating svg path {
      fill: inherit; }
    .svg-rating svg.medium-large {
      width: 1.5rem;
      height: 1.5rem;
      margin-right: -5px; }
    .svg-rating svg.large {
      margin-right: -6px; }
    .svg-rating svg.larger {
      margin-right: -8px; }
    .svg-rating svg.largest {
      margin-right: -10px; }

/*doc
---
title: SVG Icon Macro
name: e-svg-icon-macro
category: Icons & Images - SVG Icons
authors: Wes DeMiceli
---

A nunjucks macro for creating svg icons with minimal text

1) Import the macro into the template
` from "templates/common/utils/icon.nunj" import svgIcon `

2) Call it, where color can by a string any other modifiers you want to add
`svgIcon(iconName, color='')`

```html_example
{% from "templates/common/utils/icon.nunj" import svgIcon %}
<p> You can see the icon here: {{ svgIcon('zoom', 'link') }} </p>
<p> parameters passed: iconName=zoom, color=link </p>
```

| parameter    | purpose                                    | default            |
|--------------|--------------------------------------------|--------------------|
| `iconName`   | name from in icon directory                | 0                  |
| `color`      | icon modifying classes                     | 5                  |

*/
/*doc
---
title: Icons
name: z-map-icons
category: Icons & Images - Map Markers
selectors:
---

These particular icons are mainly for use on our leaflet.js maps. But could
be used anywhere really.

```html_example
<div class="icon-maps-markerMap blue"><span>a</span></div>
<div class="icon-maps-markerMap blue"><span>b</span></div>
<div class="icon-maps-markerMap blue"><span>c</span></div>
<div class="icon-maps-markerMap orange"><span>a</span></div>
<div class="icon-maps-markerMap orange"><span>b</span></div>
<div class="icon-maps-markerMap orange"><span>c</span></div>
<div class="icon-maps-markerMap blue orange large"><span>15</span></div>
```

*/
.icon-maps-markerMap {
  box-shadow: -1px 1px 5px #333;
  position: relative; }
  .icon-maps-markerMap span {
    display: block;
    color: #fff;
    font-size: 13px;
    height: 100%;
    left: 0px;
    position: absolute;
    text-align: center;
    text-transform: uppercase;
    top: 0px;
    width: 100%; }
  .icon-maps-markerMap.transparent {
    opacity: 0.75 !important; }
  .icon-maps-markerMap.small {
    height: 20px;
    width: 20px; }
    .icon-maps-markerMap.small.centered {
      margin-left: -10px;
      margin-top: -10px; }
    .icon-maps-markerMap.small span {
      line-height: 20px; }
  .icon-maps-markerMap.large {
    height: 40px;
    width: 40px; }
    .icon-maps-markerMap.large.centered {
      margin-left: -20px;
      margin-top: -20px; }
    .icon-maps-markerMap.large span {
      line-height: 34px; }
  .icon-maps-markerMap.blue.orange {
    background: linear-gradient(65deg, #2c7ef0 0%, #2c7ef0 50%, #f8ab1d 50%, #f8ab1d 100%); }

.leaflet-cluster-anim .leaflet-marker-icon, .leaflet-cluster-anim .leaflet-marker-shadow {
  -webkit-transition: -webkit-transform 0.3s ease-out, opacity 0.3s ease-in;
  -moz-transition: -moz-transform 0.3s ease-out, opacity 0.3s ease-in;
  -o-transition: -o-transform 0.3s ease-out, opacity 0.3s ease-in;
  transition: transform 0.3s ease-out, opacity 0.3s ease-in; }

.leaflet-cluster-spider-leg {
  /* stroke-dashoffset (duration and function) should match with leaflet-marker-icon transform in order to track it exactly */
  -webkit-transition: -webkit-stroke-dashoffset 0.3s ease-out, -webkit-stroke-opacity 0.3s ease-in;
  -moz-transition: -moz-stroke-dashoffset 0.3s ease-out, -moz-stroke-opacity 0.3s ease-in;
  -o-transition: -o-stroke-dashoffset 0.3s ease-out, -o-stroke-opacity 0.3s ease-in;
  transition: stroke-dashoffset 0.3s ease-out, stroke-opacity 0.3s ease-in; }

/*doc
---
title: Spinners
name: a-spinners
category: Icons & Images - Spinners
---

Our spinner is created entirely via CSS. To show one, simply create a div and add
the `.usn-spinner` class to it. The default dimensions will be 100x100, but you
can resize the div to any square dimensions you want using CSS.

```html_example
<div class="flex-row">
    <div class="flex-small-12 flex-medium-3 text-center border" style="padding-top: 2rem; padding-bottom: 2rem;">
        <div class="block-normal">
            <div class="usn-spinner" style="width: 50px; height: 50px;"></div>
        </div>

        <pre>.usn-spinner</pre>
    </div>

    <div class="flex-small-12 flex-medium-3 text-center" style="padding-top: 2rem; padding-bottom: 2rem; background-color: #333">
        <div class="block-normal">
            <div class="usn-spinner white" style="width: 50px; height: 50px;"></div>
        </div>

        <pre class="text-white">.usn-spinner.white</pre>
    </div>
</div>
```

**Sizes**

A few preset sizing classes in case they're useful.

| Sizes                                      | className |
|--------------------------------------------|-----------|
| <div class="usn-spinner small"></div>      | small     |
| <div class="usn-spinner medium"></div>     | medium    |
| <div class="usn-spinner large"></div>      | large     |

*/
@keyframes usn-spinner {
  from {
    transform: rotate(0); }
  to {
    transform: rotate(360deg); } }

.usn-spinner {
  display: inline-block;
  width: 100px;
  height: 100px;
  position: relative;
  vertical-align: middle; }
  .usn-spinner:before {
    content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23C9C9C9%22%20stroke-width%3D%2214%22%20d%3D%22M93%2C50%20a43%2C43%200%200%2C0%20-12.59%2C-30.41%22/%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23C9C9C9%22%20stroke-width%3D%2214%22%20d%3D%22M7%2C50%20a43%2C43%200%200%2C0%2012.59%2C30.41%22/%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23D9D9D9%22%20stroke-width%3D%2214%22%20d%3D%22M50%2C93%20a43%2C43%200%200%2C1%20-30.41%2C-12.59%22/%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23D9D9D9%22%20stroke-width%3D%2214%22%20d%3D%22M50%2C7%20a43%2C43%200%200%2C1%2030.41%2C12.59%22/%3E%3C/svg%3E%0A");
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    line-height: 0;
    animation-name: usn-spinner;
    animation-duration: 3s;
    animation-iteration-count: infinite;
    animation-timing-function: ease-in-out; }
  .usn-spinner:after {
    content: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%231A61A7%22%20stroke-width%3D%2214%22%20d%3D%22M50%2C7%20a43%2C43%200%200%2C0%20-43%2C43%22/%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%231A61A7%22%20stroke-width%3D%2214%22%20d%3D%22M50%2C93%20a43%2C43%200%200%2C0%2043%2C-43%22/%3E%3C/svg%3E");
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    line-height: 0;
    animation-name: usn-spinner;
    animation-duration: 1.5s;
    animation-iteration-count: infinite;
    animation-timing-function: ease-in-out; }
  .usn-spinner.white {
    background: white;
    border: 2px solid white;
    border-radius: 100%; }
  .usn-spinner.small {
    width: 1rem;
    height: 1rem; }
  .usn-spinner.medium {
    width: 3rem;
    height: 3rem; }
  .usn-spinner.large {
    width: 6rem;
    height: 6rem; }

/*doc
---
title: Border Helpers
name: a-border-helpers
category: Visual Treatments - Border
selectors:
    - .border-bottom
    - .border-bottom-for-small-only
    - .border-bottom-for-medium-up
    - .border-bottom-for-medium-only
    - .border-bottom-for-large-up
    - .border-bottom-none
    - .border-top
    - .border-top-none
    - .border-left
    - .border-right
    - .bordered-bottom
    - .border-thick
    - .border-curved
selector_type: layout
---

Usually we apply border to the bottom of an element with the following
helpers. This provides a very flexible system if used in conjuction with 
[.pad-][b-padding-helpers] and [.block-][a-margin-helpers] helper classes.

**Border bottom helpers**

`.border-bottom`        
`.border-bottom-for-small-only`  
`.border-bottom-for-medium-up`     
`.border-bottom-for-medium-only`   
`.border-bottom-for-large-up`    
`.border-bottom-none`

We have some top border helpers (but have not yet found it necessary to include
them with the responsive modifiers).

**Other available border helpers**

`.border-none`
`.border-top`  
`.border-top-none`  
`.border-left`  
`.border-right`  
`.border-left-none`
`.border-right-none`
`.border-thick`
`.border-curved`

Change the size of your viewport to get an idea of how these helpers work below:

```html_example
<div class="flex-row block-loose">
    <div class="flex-small bar-loose border-bottom pad-normal">.border-bottom</div>
    <div class="flex-small bar-loose border-bottom-for-small-only pad-normal">.border-bottom-for-small-only</div>
    <div class="flex-small bar-loose border-bottom-for-medium-up pad-normal">.border-bottom-for-medium-up</div>
    <div class="flex-small bar-loose border-bottom-for-medium-only pad-normal">.border-bottom-for-medium-only</div>
    <div class="flex-small bar-loose border-bottom-for-large-up pad-normal">.border-bottom-for-large-up</div>
</div>
<div class="flex-row">
    <div class="flex-small bar-loose border-bottom-none pad-normal">.border-bottom-none</div>
    <div class="flex-small bar-loose border-top pad-normal">.border-top</div>
    <div class="flex-small bar-loose border-top-none pad-normal">.border-top-none</div>
    <div class="flex-small bar-loose border-thick pad-normal">.border-thick</div>
    <div class="flex-small bar-loose border border-curved pad-normal">.border-curved</div>
</div>
```
*/
.border-none {
  border: 0 !important; }

.border-left {
  border-left: 1px solid #DDDDDD !important; }

.border-right {
  border-right: 1px solid #DDDDDD !important; }

.border-left-none {
  border-left: none !important; }

.border-right-none {
  border-right: none !important; }

@media only screen and (max-width: 40em) {
  .border-bottom-none-for-small-only {
    border-bottom: none !important; } }

.border-bottom {
  border-bottom: 1px solid #DDDDDD !important; }

.border-bottom-none {
  border-bottom: none !important; }

.border-top {
  border-top: 1px solid #DDDDDD !important; }

.border-top-none {
  border-top: none !important; }

@media only screen {
  .border-top-for-small {
    border-top: 1px solid #DDDDDD !important; } }

@media only screen and (max-width: 40em) {
  .border-top-for-small-only {
    border-top: 1px solid #DDDDDD !important; } }

@media only screen and (min-width: 40.0625em) {
  .border-top-for-medium {
    border-top: 1px solid #DDDDDD !important; } }

@media only screen and (min-width: 40.0625em) {
  .border-top-for-medium-up {
    border-top: 1px solid #DDDDDD !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .border-top-for-medium-only {
    border-top: 1px solid #DDDDDD !important; } }

@media only screen and (min-width: 64em) {
  .border-top-for-large {
    border-top: 1px solid #DDDDDD !important; } }

@media only screen and (min-width: 64em) {
  .border-top-for-large-up {
    border-top: 1px solid #DDDDDD !important; } }

@media only screen {
  .border-bottom-for-small {
    border-bottom: 1px solid #DDDDDD !important; } }

@media only screen and (max-width: 40em) {
  .border-bottom-for-small-only {
    border-bottom: 1px solid #DDDDDD !important; } }

@media only screen and (min-width: 40.0625em) {
  .border-bottom-for-medium {
    border-bottom: 1px solid #DDDDDD !important; } }

@media only screen and (min-width: 40.0625em) {
  .border-bottom-for-medium-up {
    border-bottom: 1px solid #DDDDDD !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .border-bottom-for-medium-only {
    border-bottom: 1px solid #DDDDDD !important; } }

@media only screen and (min-width: 64em) {
  .border-bottom-for-large {
    border-bottom: 1px solid #DDDDDD !important; } }

@media only screen and (min-width: 64em) {
  .border-bottom-for-large-up {
    border-bottom: 1px solid #DDDDDD !important; } }

@media only screen {
  .border-right-for-small {
    border-right: 1px solid #DDDDDD !important; } }

@media only screen and (max-width: 40em) {
  .border-right-for-small-only {
    border-right: 1px solid #DDDDDD !important; } }

@media only screen and (min-width: 40.0625em) {
  .border-right-for-medium {
    border-right: 1px solid #DDDDDD !important; } }

@media only screen and (min-width: 40.0625em) {
  .border-right-for-medium-up {
    border-right: 1px solid #DDDDDD !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .border-right-for-medium-only {
    border-right: 1px solid #DDDDDD !important; } }

@media only screen and (min-width: 64em) {
  .border-right-for-large {
    border-right: 1px solid #DDDDDD !important; } }

@media only screen and (min-width: 64em) {
  .border-right-for-large-up {
    border-right: 1px solid #DDDDDD !important; } }

@media only screen {
  .border-left-for-small {
    border-left: 1px solid #DDDDDD !important; } }

@media only screen and (max-width: 40em) {
  .border-left-for-small-only {
    border-left: 1px solid #DDDDDD !important; } }

@media only screen and (min-width: 40.0625em) {
  .border-left-for-medium {
    border-left: 1px solid #DDDDDD !important; } }

@media only screen and (min-width: 40.0625em) {
  .border-left-for-medium-up {
    border-left: 1px solid #DDDDDD !important; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .border-left-for-medium-only {
    border-left: 1px solid #DDDDDD !important; } }

@media only screen and (min-width: 64em) {
  .border-left-for-large {
    border-left: 1px solid #DDDDDD !important; } }

@media only screen and (min-width: 64em) {
  .border-left-for-large-up {
    border-left: 1px solid #DDDDDD !important; } }

@media not screen and (min-width: 64em) {
  .hide-border-for-medium-down {
    border: none !important; } }

.bordered-bottom {
  padding-bottom: 1.5625rem;
  border-bottom: 1px solid #DDDDDD;
  margin-bottom: 1.5625rem; }

.border {
  border: 1px solid #DDDDDD; }

.border-iron {
  border: 0.0625rem solid #CCCCCC; }

.border-thick {
  border: 2px solid #DDDDDD; }

.border-curved {
  border-radius: 5px; }

.thick-border-top-light-blue {
  border-top: 5px solid #2c7ef0; }

.thick-border-top-dark-blue {
  border-top: 5px solid #10294B; }

/*doc
---
title: Regular Label
name: a-labels
category: Visual Treatments - Label
---

Use the class `.label` to create default label look and feel.

```html_example
<span class="label">Regular Label</span>
```
*/
/*doc
---
title: Foundation Modifiers
name: b-advanced-labels
category: Visual Treatments - Label
---

The naming of class modifiers are intended to be semantic, related to function.  They are to be applied as a chained css rule, such as `.label.secondary` rather than as just `.secondary`

These are modifiers that are inherited with Foundation but are not currently used.
Please don't use them unless it's actually needed as a design/ui pattern.

color modifiers: `.alert` `.warning` `.success` `.info` and `.secondary`
shape modifiers: `.round` and`.radius`

```html_example
<span class="radius secondary label">Secondary Label</span>
<span class="round alert label">Round Alert Label</span>
<span class="warning label">Warning Label</span>
<span class="radius label">Radiused Success Label</span>
<span class="info label">Info Label</span>
```

*/
/*doc
---
title: Foundation Settings
name: b-usn-settings-usn-settings
category: Visual Treatments - Label
---

These are the default Foundation button variables we can edit from
`_.settings.scss`.  New settings are added to `_.variables.scss`

```sass_example
@ref-doc Labels

```
*/
/*doc
---
title: USN Modifiers
name: c-mixin-mixin
category: Visual Treatments - Label
---

You can create your own labels using a mixin.

A current list of USN label modifiers that uses the `label()` mixin are:

`.brandfuse`, `.low-match`, `.moderate-match`, `.major-match`, `.full-match`

``` html_example
<span class="label brandfuse">U.S. News BrandFuse</span>

<span class="label low-match">25% Match</span>
<span class="label moderate-match">50% Match</span>
<span class="label major-match">75% Match</span>
<span class="label full-match">100% Match</span>
```

``` sass_example
.label {
    &.brandfuse {
        @include label($padding:rem-calc(10), $bg:$brandfuse-color, $radius:0);
        color: $black;
        font-weight: bold;
        font-size: $text-small;
    }
}
```
*/
.label.full-match {
  display: inline-block;
  font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 400;
  line-height: 1;
  margin-bottom: auto;
  position: relative;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  padding: 0.3125rem 0.625rem;
  font-size: 0.6875rem;
  background-color: #1AD950;
  color: #FFFFFF;
  border-radius: 0;
  color: #000000;
  font-weight: 500; }

.label.major-match {
  display: inline-block;
  font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 400;
  line-height: 1;
  margin-bottom: auto;
  position: relative;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  padding: 0.3125rem 0.625rem;
  font-size: 0.6875rem;
  background-color: #AAD91A;
  color: #FFFFFF;
  border-radius: 0;
  color: #000000;
  font-weight: 500; }

.label.moderate-match {
  display: inline-block;
  font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 400;
  line-height: 1;
  margin-bottom: auto;
  position: relative;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  padding: 0.3125rem 0.625rem;
  font-size: 0.6875rem;
  background-color: #E3D713;
  color: #FFFFFF;
  border-radius: 0;
  color: #000000;
  font-weight: 500; }

.label.low-match {
  display: inline-block;
  font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 400;
  line-height: 1;
  margin-bottom: auto;
  position: relative;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  padding: 0.3125rem 0.625rem;
  font-size: 0.6875rem;
  background-color: #E38D13;
  color: #FFFFFF;
  border-radius: 0;
  color: #000000;
  font-weight: 500; }

.label.brandfuse {
  display: inline-block;
  font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 400;
  line-height: 1;
  margin-bottom: auto;
  position: relative;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  padding: 0.625rem;
  font-size: 0.6875rem;
  background-color: #ffc14e;
  color: #FFFFFF;
  border-radius: 0;
  color: #000000;
  font-weight: bold;
  font-size: 0.875rem; }

/*doc
---
title: Global Header
name: a-global-header
category: Headers & Footers - Headers
template:
    header:
      mega_menu:
        search_template_path: templates/pages/news/widgets/search.nunj
        menu:
          children:
          - link:
              pull_short_headline: false
              new_window: false
              content_reference_id: 00000142-928b-d33c-abc6-ff9fe7310000
              text: News
              url: "//www.usnews.com/news"
            url_patterns: []
          - link:
              pull_short_headline: false
              new_window: false
              content_reference_id: 00000145-f07e-d75e-a3d7-f47f72c40000
              text: Rankings
              url: "/rankings"
            url_patterns: []
          cms_taxon_root: true
      social_links:
      - new_window: false
        text: facebook
        url: "//www.facebook.com/usnewsandworldreport"
      - new_window: false
        text: twitter
        url: "//twitter.com/usnews"
      id: 00000156-2759-dfc4-a7fe-2f595fa60002
      title: Generic
      login: false
      migration_date: {}
selectors:
    - .header

---

Global header shared across all pages. It stretches full-width across the top
and features a *hamburger* icon that will trigger an off-canvas panel with
sub-menus.

- USN Logo points to homepage 
- Left-most item in navbar is the Vertical or Portal title (`header.title`) 
- Pages where the `header.title` value is 'Generic' in the db will feature 
  global links [(example)](/mocks/pages/money/investing/advice/topic.html)
- A few verticals will show a search and or login icon on the right

#### Off-canvas - First panel

All "More from U.S. News" links are hardcoded in `global-generic-navigation.nunj`

- Repeats the same links in the navbar
- Top-level "More from U.S. News" (vertical) links
- Links to USN meta pages
- Global social icons.

#### Off-canvas - Second panel
- Opens with "More from U.S. News" (vertical) links
- Links for just the vertical

**Note:** This doesn't look right due to conflicts with styleguide css, will be fixing.

```html_example
<header class="header">
  {% include "templates/common/global-header.nunj" %}
</header>
```

#### Mega Menu

We have 3 types of mega menus and the styling for these is mostly controlled by modifiers on `.mega-menu`.

**TODO:** These mega-menus will have a name change for the 3 modifiers

The most significant styling challenge for these is the gray background styling
of certain columns where the gray background color extends all the way to the edge
of the screen.

1. `.ranking` 4 main columns, left badge column is gray
2. `.profile` 2 main columns, right side is gray
3. `.advice` 2 main columns, left side is gray

Columns that are gray are created with the `.mega-menu-content-featured` class.

Below are some examples of the content styling of mega menus. Please see our

*/
.header-logo,
.header-title,
.header-links {
  line-height: 42px;
  margin-bottom: 0;
  overflow: visible; }
  @media (min-width: 40.0625em) {
    .header-logo,
    .header-title,
    .header-links {
      line-height: 32px; } }
  .header-logo li,
  .header-title li,
  .header-links li {
    position: relative; }
    .header-logo li > .header-link:hover ~ .nav-dropdown .nav-dropdown-inner,
    .header-title li > .header-link:hover ~ .nav-dropdown .nav-dropdown-inner,
    .header-links li > .header-link:hover ~ .nav-dropdown .nav-dropdown-inner {
      display: block !important; }
    .header-logo li .nav-dropdown-inner:hover,
    .header-title li .nav-dropdown-inner:hover,
    .header-links li .nav-dropdown-inner:hover {
      display: block !important; }
  .header-logo .nav-dropdown,
  .header-title .nav-dropdown,
  .header-links .nav-dropdown {
    position: absolute;
    left: 50%;
    top: 100%;
    width: 260px;
    z-index: 999; }
    .header-logo .nav-dropdown .nav-dropdown-inner,
    .header-title .nav-dropdown .nav-dropdown-inner,
    .header-links .nav-dropdown .nav-dropdown-inner {
      background: white;
      display: none;
      color: #333;
      box-shadow: 0px 3px 10px rgba(0, 0, 0, 0.75);
      padding: 1.25rem;
      margin: 0;
      position: relative;
      left: -50%; }
      .header-logo .nav-dropdown .nav-dropdown-inner .nav-dropdown-group,
      .header-title .nav-dropdown .nav-dropdown-inner .nav-dropdown-group,
      .header-links .nav-dropdown .nav-dropdown-inner .nav-dropdown-group {
        display: block;
        margin-bottom: 1.5rem; }
      .header-logo .nav-dropdown .nav-dropdown-inner ul,
      .header-title .nav-dropdown .nav-dropdown-inner ul,
      .header-links .nav-dropdown .nav-dropdown-inner ul {
        margin: 0; }
      .header-logo .nav-dropdown .nav-dropdown-inner .dropdown-header,
      .header-title .nav-dropdown .nav-dropdown-inner .dropdown-header,
      .header-links .nav-dropdown .nav-dropdown-inner .dropdown-header {
        color: #333;
        line-height: 1rem;
        margin-bottom: 1.25rem; }
      .header-logo .nav-dropdown .nav-dropdown-inner .dropdown-link,
      .header-title .nav-dropdown .nav-dropdown-inner .dropdown-link,
      .header-links .nav-dropdown .nav-dropdown-inner .dropdown-link {
        margin-bottom: 0.75rem; }
      .header-logo .nav-dropdown .nav-dropdown-inner .nav-dropdown-group:last-child,
      .header-logo .nav-dropdown .nav-dropdown-inner .dropdown-link:last-child,
      .header-title .nav-dropdown .nav-dropdown-inner .nav-dropdown-group:last-child,
      .header-title .nav-dropdown .nav-dropdown-inner .dropdown-link:last-child,
      .header-links .nav-dropdown .nav-dropdown-inner .nav-dropdown-group:last-child,
      .header-links .nav-dropdown .nav-dropdown-inner .dropdown-link:last-child {
        margin-bottom: 0; }
      .header-logo .nav-dropdown .nav-dropdown-inner a,
      .header-title .nav-dropdown .nav-dropdown-inner a,
      .header-links .nav-dropdown .nav-dropdown-inner a {
        color: #333;
        display: inline;
        padding: 0; }
        .header-logo .nav-dropdown .nav-dropdown-inner a:hover,
        .header-title .nav-dropdown .nav-dropdown-inner a:hover,
        .header-links .nav-dropdown .nav-dropdown-inner a:hover {
          color: #888888; }

.header .tab-bar {
  height: initial; }

.header-links li .header-link {
  color: #c0cadd;
  font-weight: 400; }
  .header-links li .header-link:hover {
    font-weight: 400;
    color: #FFFFFF; }

.header-links li.active .header-link {
  color: #FFFFFF; }

.header-title {
  margin-right: 0 !important; }

.header-icon:hover {
  fill: #c0cadd; }

.header-search input {
  margin-bottom: 0; }

.header-outer {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  -webkit-justify-content: space-between;
  -moz-justify-content: space-between;
  justify-content: space-between;
  -webkit-box-direction: normal;
  -webkit-box-orient: horizontal;
  -webkit-flex-direction: row;
  -moz-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row; }

.header-inner {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 1;
  -webkit-flex: 1;
  -moz-box-flex: 1;
  -moz-flex: 1;
  -ms-flex: 1;
  flex: 1; }

.header-brand {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-align-self: center;
  -moz-align-self: center;
  -ms-flex-item-align: center;
  align-self: center; }

.header-nav {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 1;
  -webkit-flex: 1;
  -moz-box-flex: 1;
  -moz-flex: 1;
  -ms-flex: 1;
  flex: 1;
  -webkit-box-direction: normal;
  -webkit-box-orient: vertical;
  -webkit-flex-direction: column;
  -moz-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column; }
  .header-nav .header-links, .header-nav .header-title {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex; }
    .header-nav .header-links li, .header-nav .header-title li {
      display: -webkit-box;
      display: -webkit-flex;
      display: -moz-flex;
      display: -ms-flexbox;
      display: flex; }
    .header-nav .header-links .header-link, .header-nav .header-title .header-link {
      display: -webkit-box;
      display: -webkit-flex;
      display: -moz-flex;
      display: -ms-flexbox;
      display: flex; }
      .header-nav .header-links .header-link > span, .header-nav .header-title .header-link > span {
        display: -webkit-box;
        display: -webkit-flex;
        display: -moz-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -ms-flex-align: center;
        -webkit-align-items: center;
        -moz-align-items: center;
        align-items: center; }
  .header-nav .header-links {
    margin-left: 0; }
    @media (max-width: 63.875em) {
      .header-nav .header-links {
        display: none; } }
    .header-nav .header-links li {
      margin-left: 0; }
      .header-nav .header-links li .header-link {
        padding: 0 0.875rem; }
        .header-nav .header-links li .header-link:hover > span {
          box-shadow: inset 0 -4px 0 0 #2c7ef0; }
        @media (max-width: 1205px) {
          .header-nav .header-links li .header-link.long-nav {
            display: none; } }

.header-nav-items {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-shrink: 0;
  -moz-flex-shrink: 0;
  -ms-flex-negative: 0;
  flex-shrink: 0;
  -webkit-box-flex: 1;
  -webkit-flex-grow: 1;
  -moz-flex-grow: 1;
  -ms-flex-positive: 1;
  flex-grow: 1; }

.header-nav-content {
  width: 100%; }

.logo {
  height: 32px;
  width: 120px; }
  .logo img {
    height: 100%; }

.logo-square {
  height: 45px; }
  .logo-square img {
    height: 100%; }

.header-search {
  height: 3.5rem; }

.header-search input[type="text"] {
  background-color: #183c6f;
  border: 0;
  height: 3.5rem;
  color: #fff;
  padding: 0 1rem 0 3rem;
  font-size: 1.125rem; }
  .header-search input[type="text"]::-webkit-input-placeholder {
    color: #c0cadd; }
  .header-search input[type="text"]:-moz-placeholder {
    /* Firefox 18- */
    color: #c0cadd; }
  .header-search input[type="text"]::-moz-placeholder {
    /* Firefox 19+ */
    color: #c0cadd; }
  .header-search input[type="text"]:-ms-input-placeholder {
    color: #c0cadd; }

.header-search .input-search .icon-search-box {
  fill: #c0cadd;
  height: 1.375rem;
  width: 1.375rem;
  margin-top: -0.6875rem;
  left: 0.7rem; }

.js-header-search-button-show,
.js-header-search-button-kill {
  cursor: pointer;
  display: inline-block;
  height: 3.5rem;
  width: 1.8rem; }
  .js-header-search-button-show svg,
  .js-header-search-button-kill svg {
    height: 1.375rem;
    width: 1.375rem; }

.js-header-search-button-kill {
  display: none;
  background-color: #183c6f; }
  .js-header-search-button-kill svg {
    margin-top: 2px; }

.header-search {
  -webkit-box-flex: 1;
  -webkit-flex: 1;
  -moz-box-flex: 1;
  -moz-flex: 1;
  -ms-flex: 1;
  flex: 1;
  display: none; }
  @media (max-width: 40em) {
    .header-search {
      display: none !important; } }

.tab-bar.has-search-box .header-search {
  display: inline-block; }

.tab-bar.has-search-box .header-links {
  display: none; }

.tab-bar.has-search-box .js-header-search-button-show {
  display: none; }

.tab-bar.has-search-box .js-header-search-button-kill {
  display: inline-block; }

.tab-bar.has-search-box .nav-home {
  display: none; }

.right-off-canvas-toggle {
  padding: 0 0.9375rem 0 0.625rem; }

.right-off-canvas-menu .right-off-canvas-toggle {
  padding: 1.0625rem 0.9375rem;
  position: relative;
  z-index: 1002; }

.right-off-canvas-menu input[type="text"] {
  width: 220px; }

ul.off-canvas-list li a:hover {
  color: #fff; }

ul.off-canvas-list li label {
  border: 0; }

ul.off-canvas-list li label.off-canvas-heading {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  -moz-align-items: center;
  align-items: center;
  height: 3.5rem; }

ul.off-canvas-list .input-search .icon-search-box {
  left: 1.5rem; }

.off-canvas-generic > li:first-child {
  margin: 0.9375rem 0 0.625rem 0; }

.right-off-canvas-menu ul.off-canvas-list li.has-submenu > a:before {
  display: none; }

.right-off-canvas-menu ul.off-canvas-list li.has-submenu > a:after {
  content: "»";
  margin-left: 0.3rem; }

.right-submenu:not(.move-left) {
  visibility: hidden;
  transition: transform 0.5s ease-in-out 0s, visibility 0s linear 0.5s;
  -webkit-transition: transform 0.5s ease-in-out 0s, visibility 0s linear 0.5s;
  -moz-transition: transform 0.5s ease-in-out 0s, visibility 0s linear 0.5s;
  -o-transition: transform 0.5s ease-in-out 0s, visibility 0s linear 0.5s; }

.right-submenu.move-left {
  visibility: visible; }

.right-submenu h6 {
  color: #c0cadd;
  padding: 0.3rem 0.9375rem 0 0.9375rem; }

.right-submenu ul {
  list-style: none; }

.right-submenu .back > a {
  padding: 0.75rem 0.9375rem;
  font-weight: normal;
  color: #c0cadd;
  font-size: 13px; }

.right-submenu .back > a:after {
  display: none; }

.right-submenu .back > a:before {
  content: "«";
  margin-right: 0.3rem; }

.nav-home {
  border: 1px solid #c0cadd; }

.nav-home:hover {
  color: #FFFFFF; }

@media (min-width: 64em) and (max-width: 74.9375em) {
  .hide-for-mid-large {
    display: none !important; } }

/*doc
---
title: Sub Nav
name: a-sub-nav
category: Navigation - Sub Nav
selectors:
    - .sub-nav
---

We are not using Foundation's sub-nav, this is our own. We are also running the Responsive
Nav jQuery plugin on it as well to suck any overflowing nav items into a dropdown
menu. (See [Sub Nav][jquery-plugins-responsive-nav]) Note that we are
depending on Foundation for the dropdown functionality itself (http://foundation.zurb.com/docs/components/dropdown.html).

Notice that at the small breakpoint, the active sub-nav item gets automatically re-ordered to
the front of the list (using flexbox) so that the selected item is never hidden
inside the dropdown.  You can disable this behavior by adding the optional 'no-reorder'
class to the '.sub-nav-links' list element.

```html_example?kitchen-sink=true
<div class="row">
    <div class="small-12 columns">
        <div id="sub-nav-example-1" class="sub-nav">
            <ul class="sub-nav-links">
                <li>
                    <a href="/mocks/pages/money/careers/jobs">
                        <span>Overview</span>
                    </a>
                </li>
                <li class="active">
                    <a href="/mocks/pages/money/careers/jobs/salary.html">
                        <span>Salary</span>
                    </a>
                </li>
                <li>
                    <a href="/mocks/pages/money/careers/jobs/q&amp;a.html">
                        <span>Q&amp;A</span>
                    </a>
                </li>
                <li>
                    <a href="/mocks/pages/money/careers/jobs/reviews.html">
                        <span>Reviews</span>
                    </a>
                </li>
                <li>
                    <a href="/mocks/pages/money/careers/jobs/job-listings.html">
                        <span>Job Listings</span>
                    </a>
                </li>
                <li class="more is-hidden" data-dropdown="more-dropdown-1" aria-controls="more-dropdown-1" aria-expanded="false">
                    <a href="#">
                        <span>More &#x25be;</span>
                    </a>
                </li>
            </ul>
        </div>

        <div id="more-dropdown-1" class="sub-nav-dropdown f-dropdown tiny" data-dropdown-content aria-hidden="true">
            <ul>
            </ul>
        </div>
    </div>
</div>
```

```js_example
$('#sub-nav-example-1 .sub-nav-links').responsiveNav();
```
*/
.sub-nav {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  -moz-align-items: center;
  align-items: center;
  -webkit-box-pack: between;
  -ms-flex-pack: between;
  -webkit-justify-content: between;
  -moz-justify-content: between;
  justify-content: between;
  -webkit-flex-wrap: nowrap;
  flex-wrap: nowrap;
  height: 2.375rem;
  border-bottom: 2px solid #DDDDDD; }
  @media only screen and (min-width: 40.0625em) {
    .sub-nav {
      height: 3.9375rem; } }
  .sub-nav.minor {
    height: 2.125rem; }

.sub-nav-links {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
  -webkit-flex: 0 1 auto;
  -moz-box-flex: 0;
  -moz-flex: 0 1 auto;
  -ms-flex: 0 1 auto;
  flex: 0 1 auto;
  -webkit-flex-wrap: nowrap;
  flex-wrap: nowrap;
  overflow-x: hidden;
  white-space: nowrap;
  width: 100%;
  margin: 0;
  list-style: none; }
  .sub-nav-links li {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
    -moz-box-flex: 0;
    -moz-flex: 0 0 auto;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    display: inline-block;
    white-space: nowrap;
    box-sizing: content-box;
    height: 2.375rem;
    line-height: 2.375rem;
    margin-right: 1.875rem; }
    @media only screen and (min-width: 40.0625em) {
      .sub-nav-links li {
        height: 3.9375rem; } }
    @media only screen and (min-width: 40.0625em) {
      .sub-nav-links li {
        line-height: 3.9375rem; } }
    .minor .sub-nav-links li {
      height: 2.125rem;
      line-height: 2.125rem; }
    @media only screen and (min-width: 40.0625em) {
      .sub-nav-links li {
        margin-right: 2.5rem; } }
  .sub-nav-links li:last-child {
    margin-right: 0; }
  .sub-nav-links li.active {
    border-bottom: 2px solid #2c7ef0; }
    .sub-nav-links li.active a {
      color: #999999; }
    @media only screen and (min-width: 40.0625em) {
      .sub-nav-links li.active {
        border-bottom: 2px solid #2c7ef0; } }
  @media only screen and (max-width: 40em) {
    .sub-nav-links:not(.no-reorder) li {
      order: 2; }
    .sub-nav-links:not(.no-reorder) li.active {
      order: 1;
      margin-right: 1.875rem; } }

.sub-nav-dropdown {
  z-index: 551;
  box-shadow: 0 0 0.25rem 0 rgba(0, 0, 0, 0.5);
  margin-top: -2px;
  box-sizing: border-box;
  padding-left: 1.46875rem;
  padding-right: 1.46875rem;
  padding-top: 1.46875rem; }
  @media only screen and (max-width: 40em) {
    .sub-nav-dropdown {
      text-align: center; } }
  .sub-nav-dropdown ul {
    margin-left: 0;
    list-style: none; }
  .sub-nav-dropdown li {
    font-size: 1rem;
    margin-bottom: 1.46875rem; }
    .sub-nav-dropdown li a {
      color: #2c7ef0;
      padding: 0; }
    .sub-nav-dropdown li a:hover {
      color: #1552a8; }
  .sub-nav-dropdown li.active a {
    color: #999999; }
  .sub-nav-dropdown li:hover {
    background: #fff; }

.sub-nav-dropdown--right-aligned {
  left: auto !important;
  right: 10px !important;
  z-index: 999; }
  .sub-nav-dropdown--right-aligned::before {
    left: auto !important;
    right: 8px !important; }
  .sub-nav-dropdown--right-aligned::after {
    left: auto !important;
    right: 7px !important; }

.sub-nav-container {
  z-index: 500;
  background: #FFFFFF;
  box-sizing: border-box;
  padding-top: 2px;
  height: 2.375rem;
  overflow: visible; }
  @media only screen and (min-width: 40.0625em) {
    .sub-nav-container {
      height: 3.9375rem; } }

.sub-nav-container.scroll-to-fixed-fixed {
  margin: 0;
  padding-top: 0;
  border-bottom: 2px solid #DDDDDD; }

.sub-nav-search {
  -webkit-box-flex: 0;
  -webkit-flex: 0 1 auto;
  -moz-box-flex: 0;
  -moz-flex: 0 1 auto;
  -ms-flex: 0 1 auto;
  flex: 0 1 auto;
  min-width: 16.875rem;
  margin-left: 1.875rem; }
  @media only screen and (min-width: 40.0625em) {
    .sub-nav-search {
      margin-left: 2.5rem; } }

.sub-nav-button a {
  min-width: 12.5rem;
  margin-top: 18px; }

.sub-nav-search-mobile {
  z-index: 500;
  position: fixed;
  left: 5%;
  bottom: 10px;
  width: 90%; }
  .sub-nav-search-mobile a {
    display: block;
    width: 100%; }

/*doc
---
title: Sub Nav Editorial
name: b-sub-nav-editorial
category: Navigation - Sub Nav
selectors:
    - .sub-nav.editorial
---

For use inside of an editorial. Add the class `.editorial`

The first item in the list is describes the group and there are borders on top and bottom.

The nav items are spread across centered along the navbar

```html_example?kitchen-sink=true
<div class="row">
    <div class="small-12 columns">
        <div id="sub-nav-example-2" class="sub-nav editorial">
            <ul class="sub-nav-links">
                <li>
                    <span>Overview</span>
                </li>
                <li>
                    <a href="/mocks/pages/money/careers/jobs/salary.html">
                        <span>Salary</span>
                    </a>
                </li>
                <li>
                    <a href="/mocks/pages/money/careers/jobs/q&amp;a.html">
                        <span>Q&amp;A</span>
                    </a>
                </li>
                <li>
                    <a href="/mocks/pages/money/careers/jobs/reviews.html">
                        <span>Reviews</span>
                    </a>
                </li>
                <li>
                    <a href="/mocks/pages/money/careers/jobs/job-listings.html">
                        <span>Job Listings</span>
                    </a>
                </li>
                <li class="more is-hidden" data-dropdown="more-dropdown-2" aria-controls="more-dropdown-2" aria-expanded="false">
                    <a href="#"><span>More &#x25be;</span></a>
                </li>
            </ul>
        </div>

        <div id="more-dropdown-2" class="sub-nav-dropdown f-dropdown tiny" data-dropdown-content aria-hidden="true">
            <ul>
            </ul>
        </div>
    </div>
</div>
```

```js_example
$('#sub-nav-example-2 .sub-nav-links').responsiveNav();
```
*/
.sub-nav.editorial {
  border-top: 1px solid #DDDDDD;
  border-bottom: 1px solid #DDDDDD; }

/*doc
---
title: Sub Nav Minor
name: c-sub-nav-minor
category: Navigation - Sub Nav
selectors:
    - .sub-nav.minor
---

Sometimes you have yet another sub-nav inside the content of your page. It is a bit tighter.

```html_example
<div class="flex-row block-loose">
    <div class="flex-small">
        <div class="sub-nav minor">
            <ul class="sub-nav-links no-reorder">
                <li class="active">
                    <a href="#">
                        <span>Overview</span>
                    </a>
                </li>
                <li>
                    <a href="#">
                        <span>Salary</span>
                    </a>
                </li>
                <li>
                    <a href="#">
                        <span>Q&A</span>
                    </a>
                </li>
                <li>
                    <a href="#">
                        <span>Reviews</span>
                    </a>
                </li>
                <li>
                    <a href="#">
                        <span>Job Listings</span>
                    </a>
                </li>
            </ul>
        </div>
    </div>
</div>
```
*/
/*doc
---
title: Scrolling Sub Nav
name: b-sub-nav-minor
category: Navigation - Sub Nav
selectors:
    - .scrolling-sub-nav
template:
    subnavScrolling:
        items:
        -   active: true
            name: Overview
            url: "#"
        -   active: false
            name: Interactive Chart
            url: "#"
        -   active: false
            name: Performance
            url: "#"
        -   active: false
            name: Holdings
            url: "#"
        -   active: false
            name: Costs and Fees
            url: "#"
        -   active: false
            name: Risk
            url: "#"
---

This subnav is generally the same as the first one, except that it doesn't use JS to soak overflowing
items into a "More" menu.  When there are too many items, the user can scroll horizontally, generally
best for touch devices.

Note that this component has its own data object, `subnavScrolling`, but by default it pulls its items
from the `subnav` variable, for compatibility with the previous subnav.

{% set editor_id = uuid() %}

```nunjucks_tab?editor-id={{editor_id}}
{% include "templates/common/sub-nav/scrolling.nunj" %}
```
*/
.scrolling-sub-nav.sub-nav-container {
  height: auto;
  position: relative; }
  .scrolling-sub-nav.sub-nav-container .sub-nav-scroller {
    overflow-x: auto;
    overflow-y: hidden; }
  .scrolling-sub-nav.sub-nav-container .sub-nav-border {
    border-bottom: 2px solid #DDDDDD;
    position: relative; }
  .scrolling-sub-nav.sub-nav-container .sub-nav {
    border: none;
    display: inline-block;
    height: auto;
    overflow: visible;
    padding-right: 15px;
    vertical-align: top; }
    .scrolling-sub-nav.sub-nav-container .sub-nav .sub-nav-links {
      border-bottom: 2px solid #DDDDDD;
      margin-bottom: -2px;
      overflow: visible; }
      .scrolling-sub-nav.sub-nav-container .sub-nav .sub-nav-links li.active {
        margin-bottom: -2px; }
  .scrolling-sub-nav.sub-nav-container .sub-nav-right {
    position: absolute;
    right: 0;
    top: 15px; }
  .scrolling-sub-nav.sub-nav-container .fade-left {
    position: absolute;
    top: 0;
    width: 25px;
    height: 40px;
    background: linear-gradient(to right, white 0%, rgba(255, 255, 255, 0) 100%);
    left: 0px; }
  .scrolling-sub-nav.sub-nav-container .fade-right {
    position: absolute;
    top: 0;
    width: 25px;
    height: 40px;
    background: linear-gradient(to left, white 0%, rgba(255, 255, 255, 0) 100%);
    right: 0px; }
  .scrolling-sub-nav.sub-nav-container.scroll-beginning .fade-left,
  .scrolling-sub-nav.sub-nav-container.scroll-end .fade-right {
    display: none; }
  .scrolling-sub-nav.sub-nav-container + .id-less-sticky {
    display: none; }

.scroll-to-fixed-fixed .sub-nav-scroller {
  margin-bottom: -2px; }
  .scroll-to-fixed-fixed .sub-nav-scroller .sub-nav-border {
    border: none; }
  .scroll-to-fixed-fixed .sub-nav-scroller .sub-nav {
    border: none; }
    .scroll-to-fixed-fixed .sub-nav-scroller .sub-nav .sub-nav-links {
      margin-bottom: 0; }

.jump-target {
  position: absolute; }
  @media only screen and (min-width: 40.0625em) {
    .jump-target {
      top: -80px; } }
  @media only screen and (max-width: 40em) {
    .jump-target {
      top: -60px; } }

/*doc
---
title: Footer Bar
name: a-footer-bar
category: Headers & Footers - Footers
selectors:
    - .footer-bar
---

This Footer Bar serves as the bottom navigation for USN (at least at the "product
level").

Logo and some links are NOT present in mobile.


```html_example

{% include "templates/common/global-footer.nunj" %}

```
*/
.footer-bar {
  background-color: #10294B;
  padding: 0.9375rem 0; }
  .footer-bar li.margin-15-for-small {
    margin-left: 15px; }
  @media only screen and (min-width: 40.0625em) {
    .footer-bar li.margin-22-for-medium {
      margin-left: 1.375rem; } }
  .footer-bar .padding-0 {
    padding: 0; }
    @media only screen and (min-width: 64em) {
      .footer-bar .padding-0 {
        padding: 0 15px; } }

.footer-bar-section {
  float: left; }

.footer-bar-section ul li > a {
  color: #c0cadd; }
  .footer-bar-section ul li > a:hover {
    color: #FFFFFF; }

.footer-bar-section ul.text-smaller li,
.footer-bar-section ul.text-smaller li > a {
  color: #999999; }

.footer-bar-section ul.text-smaller li > a {
  text-decoration: underline; }
  .footer-bar-section ul.text-smaller li > a:hover {
    color: #FFFFFF; }

/*doc
---
title: Foundation Footer-bar Settings
name: b-footerbar-usn-settings
category: Headers & Footers - Footers
---

These are the default Foundation button variables we can edit from `_.settings.scss`

```sass_example
@ref-doc Footer Bar

```
*/
/*doc
---
title: Mega Footer
name: d-footer-mega
category: Headers & Footers - Mega Footer (deprecated)
selectors:
    - .footer-mega
---

This mega footer is an made up of 1 media-stacked object and 2 Touch (Friendly) List components.
This is just and example from the Jobs Search footer; this can be customized to page needs.

```html_example

{% include "templates/common/mega-footer/jobs.nunj" %}

```
*/
.footer-mega {
  background: #EAF0F1; }
  .footer-mega .logo_rankings {
    margin: 0 auto;
    display: block;
    width: 80%;
    height: auto; }
  .footer-mega h3 {
    padding: 1.5rem 0 0.75rem 0;
    margin: 0;
    font-weight: 500;
    font-size: 1.5rem; }
  .footer-mega hr {
    width: 100%;
    margin: 0; }
  .footer-mega .media-stacked {
    padding: 0; }
    .footer-mega .media-stacked h3 {
      padding-top: 1.5rem;
      padding-left: 0.9375rem;
      border-bottom: 1px solid #DDE1E2; }
    .footer-mega .media-stacked p {
      color: #999999;
      line-height: 1.25rem;
      font-size: 0.875rem; }
    .footer-mega .media-stacked .media {
      display: block;
      border-bottom: 1px solid #DDE1E2;
      padding: 0.9375rem; }
    .footer-mega .media-stacked .media-body,
    .footer-mega .media-stacked * {
      margin: 0; }
  @media only screen and (min-width: 40.0625em) {
    .footer-mega .padding-0-medium-up {
      padding: 0;
      padding-bottom: 0.75rem; }
    .footer-mega hr {
      margin-top: 1.375rem; }
    .footer-mega h5 {
      margin-top: -0.1875rem;
      font-weight: 500; }
    .footer-mega h3 {
      padding: 2.75rem 0 2rem 0.9375rem;
      font-size: 1.875rem; }
    .footer-mega ul {
      line-height: 1.75; }
    .footer-mega .media-stacked p {
      font-size: 1.125rem; }
    .footer-mega .media-stacked h3, .footer-mega .media-stacked .media {
      border-bottom: none; }
    .footer-mega .media-stacked .media {
      padding-bottom: 0.75rem; }
    .footer-mega .media-stacked h3 {
      padding: 2.75rem 0 2rem 0.9375rem; }
    .footer-mega .media-stacked h5 {
      padding: 0.9375rem 0 0.5rem 0; }
      .footer-mega .media-stacked h5 a {
        font-size: 1.5rem;
        font-weight: normal;
        color: #333333; }
    .footer-mega .media-stacked .media-object {
      width: 42%;
      height: auto; }
    .footer-mega .media-stacked .media-body {
      margin: 0 auto; } }

/*doc
---
title: Fat Footer
name: a-fat-footer
category: Headers & Footers - Fat Footer
authors: Will Ferguson, Wes DiMiceli
selectors:
    - .fat-footer
template:
---

Getting Started
===============

The fatFooter macro renders the framework HTML and passes the caller a dictionary of macros that build child components.  Each child component may repeat the same pattern.

Example usage:

{% set editor_id = uuid() %}

```nunjucks_tab?editor-id={{editor_id}}

{% from "templates/common/menu/menu-builder.nunj" import footer as fatFooter %}

{% call(fatFooterComponents) fatFooter() %}
    {% call(searchComponents) fatFooterComponents.search(
        header='Search the Best Jobs',
        blurb='U.S. News has analyzed [[NUMBER]] jobs over [[INDUSTRIES]] and categories.  Use our advanced search tool to find the jobs that are right for you.'
        ) %}

        {{ searchComponents.searchBox(placeholder='Put a job here, you knucklehead!') }}
    {% endcall %}

    {% call(rankingsComponents) fatFooterComponents.rankings(
        header='Career Rankings'
        ) %}

        {{ rankingsComponents.badge(
            imgSrc='http://www.usnews.com/cmsmedia/4c/87/19b6bb794b90b386f35998d3c67b/151228-bestdietsgeneric-design.png',
            methodologyLabel='How We Rank Jobs',
            methodologyUrl='#'
            ) }}

        {{ rankingsComponents.topRankings(
            header='100 Best Jobs',
            rankings=[{"name": "Dentist", "url": "#", "rank": 1}],
            fullListUrl='#'
            ) }}

        {{ rankingsComponents.topLinks(
            header='Best Jobs by Industry',
            links=[{"name": "100 Best Jobs", "url": "#"}],
            moreLabel='All industries',
            moreUrl='#'
            ) }}

        {% call(multiRowComponents) rankingsComponents.linksMultiRow() %}
            {{ multiRowComponents.row(
                header='More Jobs Rankings',
                links=[{"name": "Best Paying Jobs", "url": "#"}]
                ) }}

            {{ multiRowComponents.row(
                header='Most Popular Jobs',
                links=[{"name": "Dietician and Nutritionist", "url": "#"}]
                ) }}
        {% endcall %}
    {% endcall %}

    {{ fatFooterComponents.smallRankings(
        links=[{"name": "100 Best Jobs", "url": "#"}],
        header='Career Rankings',
        moreUrl='#'
        ) }}

{% endcall %}

```

Here is a list of components and parameters:

**fatFooter**

| name               | description                                                                  | sizes       |
|--------------------|------------------------------------------------------------------------------|-------------|
| `search`           | Large box with a magnifying glass icon and search or select fields.          | Medium-up   |
| `rankings`         | Map of links to various ranking pages.  Can also render a large badge image. | Medium-up   |
| `smallRankings`    | Generic list of links which appear on small-only.                            | Small-only  |
| `mediaObject`      | List of media objects.                                                       | Small-only  |

| name               | parameter  | purpose                                                |
|--------------------|------------|--------------------------------------------------------|
| `search`           |            |                                                        |
|                    | `header`   | Large heading text.                                    |
|                    | `blurb`    | Smaller blurb displayed above the search fields.       |
| `rankings`         |            |                                                        |
|                    | `header`   | Large heading text.                                    |
| `smallRankings`    |            |                                                        |
|                    | `links`*   | Array of links, each with a `url` and `name` property. |
|                    | `header`   | Large heading text.                                    |
|                    | `moreUrl`  | URL for the 'see mor'` link.                           |
| `mediaObject`      |            |                                                        |
|                    | `header`   | Large heading text.                                    |
|                    | `blurb`    | Blurb beneath the header.                              |
|                    | `icon`     | Image src to be displayed.                             |
|                    | `url`      | Target URL for this media object.                      |
\* = required

{% set mediaobject_editor_id = uuid() %}

```nunjucks_tab?editor-id={{mediaobject_editor_id}}

    {% from "templates/common/menu/menu-builder.nunj" import footer as fatFooter %}

    {% call(components) fatFooter() %}
        {{ components.mediaObject(header='Header 1', blurb='click this link!', icon='http://health-uat3.usnews.com/static/img/circle-badge-icon.svg', url="http://www.usnews.com") }}
        {{ components.mediaObject(header='Header 2', blurb='click this link!', icon='http://health-uat3.usnews.com/static/img/circle-search-icon.svg', url="http://www.usnews.com") }}
    {% endcall %}

```

**fatFooter.search**

| name               | description                                                                  |
|--------------------|------------------------------------------------------------------------------|
| `searchBox`        | Text search field with red button.                                           |
| `select`           | Dropdown box that navigates the browser to different pages.                  |

| name               | parameter          | purpose                                                                                |
|--------------------|--------------------|----------------------------------------------------------------------------------------|
| `searchBox`        |                    |                                                                                        |
|                    | `action`           | Form action to be submitted.                                                           |
|                    | `autocomplete`     | Automplete type for data-autocomplete attribute.                                       |
|                    | `autocompleteHref` | URL for search page when no autocomplete match exists.  Should contain `__WILDCARD__`. |
|                    | `placeholder`      | Placeholder text for text input box.                                                   |
| `select`           |                    |                                                                                        |
|                    | `links`            | List of maps with name and url properties.                                             |
|                    | `label`            | Label that is displayed before the select box.                                         |
\* = required

{% set search_editor_id = uuid() %}

```nunjucks_tab?editor-id={{search_editor_id}}

    {% from "templates/common/menu/menu-builder.nunj" import footer as fatFooter %}

    {% call(fatFooterComponents) fatFooter() %}
        {% call(components) fatFooterComponents.search(header='A header', blurb='A blurb') %}
            {{ components.searchBox(placeholder='Some placeholder text') }}
        {% endcall %}
    {% endcall %}

```

**fatFooter.rankings**

| name            | description                                                                       |
|-----------------|-----------------------------------------------------------------------------------|
| `badge`         | Large badge image with a methodology link below.                                  |
| `overall`       | List of top rankings each with a small badge icon.                                |
| `links`         | Generic list of links with header and `see more` link.                            |
| `linksMultiRow` | Smaller list of links which can have multiple sections, each with its own header. |

| name               | parameter          | purpose                                                                                |
|--------------------|--------------------|----------------------------------------------------------------------------------------|
| `badge`            |                    |                                                                                        |
|                    | `imgSrc`*          | Image source URL.                                                                      |
|                    | `methodologyLabel` | Text for the methodology link.                                                         |
|                    | `methodologyUrl`   | URL for the methodology link.                                                          |
| `overall`          |                    |                                                                                        |
|                    | `header`*          | Header text for the overall rankings list.                                             |
|                    | `rankings`*        | Array of maps, each with `name`, `url`, and `rank` properties.                         |
|                    | `fullListUrl`      | URL for the 'see the full list' link.                                                  |
| `links`            |                    |                                                                                        |
|                    | `header`*          | Header text displayed above the links.                                                 |
|                    | `links`*           | Array of maps, each with `name` and `url` properties.                                  |
|                    | `moreLabel`        | Text for the 'see more' link.  Will not render if falsy.                               |
|                    | `moreUrl`          | URL for the 'see more' link.  Will not render if falsy.                                |
| `linksMultiRow`    |                    |                                                                                        |
|                    | (none)             |                                                                                        |
\* = required

{% set rankings_editor_id = uuid() %}

```nunjucks_tab?editor-id={{rankings_editor_id}}

    {% from "templates/common/menu/menu-builder.nunj" import footer as fatFooter %}

    {% call(fatFooterComponents) fatFooter() %}
        {% call(components) fatFooterComponents.rankings() %}
            {{ components.badge(
                imgSrc='http://www.usnews.com/cmsmedia/4c/87/19b6bb794b90b386f35998d3c67b/151228-bestdietsgeneric-design.png',
                methodologyLabel='How We Rank Jobs',
                methodologyUrl='#'
                ) }}

            {{ components.topRankings(
                header='100 Best Jobs',
                rankings=[{"name": "Dentist", "url": "#", "rank": 1}],
                fullListUrl='#'
                ) }}

            {{ components.topLinks(
                header='Best Jobs by Industry',
                links=[{"name": "100 Best Jobs", "url": "#"}],
                moreLabel='All industries',
                moreUrl='#'
                ) }}
        {% endcall %}
    {% endcall %}

```

**fatFooter.rankings.linksMultiRow**

| name            | description                                                                       |
|-----------------|-----------------------------------------------------------------------------------|
| `row`           | Individual list of links with a header.                                           |

| name               | parameter          | purpose                                                                                |
|--------------------|--------------------|----------------------------------------------------------------------------------------|
| `row`              |                    |                                                                                        |
|                    | `header`*          | Text for header.                                                                       |
|                    | `links`*           | Array of maps, each with `name` and `url` properties.                                  |
\* = required

{% set row_editor_id = uuid() %}

```nunjucks_tab?editor-id={{row_editor_id}}

    {% from "templates/common/menu/menu-builder.nunj" import footer as fatFooter %}

    {% call(fatFooterComponents) fatFooter() %}
        {% call(rankingsComponents) fatFooterComponents.rankings() %}
            {% call(components) rankingsComponents.linksMultiRow() %}
                {{ components.row(
                    header='More Jobs Rankings',
                    links=[{"name": "Best Paying Jobs", "url": "#"}]
                    ) }}
            {% endcall %}
        {% endcall %}
    {% endcall %}

```

*/
.fat-footer {
  background: #EAF0F1;
  padding: 40px 0 20px; }
  @media (min-width: 40.0625em) {
    .fat-footer {
      padding: 70px 0; } }
  .fat-footer .component-search .category-select {
    height: 38px;
    width: 210px; }

.fat-footer.blue-light {
  background-color: #13325D; }

/*doc
---
title: Higher Education Fat Footer
name: b-higher-education-fat-footer
category: Headers & Footers - Fat Footer
---

{% include "templates/pages/education/higher-education/colleges/_fat-footer.nunj" %}

*/
/*doc
---
title: Button
name: b-buttons
category: Buttons - Buttons
selectors:
    - .button
selector_type: component
---

```html_example
<a href="#" aria-label="submit form" class="button">Default Button</a>
```
*/
/*doc
---
title: Button Modifiers
name: c-button-styling
category: Buttons - Buttons
selectors:
    - .button.tiny
    - .button.small
    - .button.secondary
    - .button.action
    - .button.select
    - .button.bordered
    - .button.bordered.darken-hover
    - .button.small.bordered
    - .button.tiny.bordered
    - .button.radius
    - .button.block
---
Additional classes can be added to your component to change its color or styling.

Size: `.tiny`, `.small`, no modifier sets is the default size, `.full` (for small width only), (Foundation's currently unused: `.large` `.expand` )

Style: `.bordered`, `.radius`, `.shadow`, `.divided`, `.img`, `.select`

Color/Function: `.action`, `.disabled`, `.secondary`, no modifiers sets default color

Javascript: There are state classes like `is-disabled` that can be applied.  A list of these can be found in _states.scss in the Visibility(js) section

```html_example?kitchen-sink=true
  <!-- Color Classes -->
  <button href="#" aria-label="submit form" class="button">Default</button>
  <button href="#" aria-label="submit form" class="button secondary">Secondary</button>
  <button href="#" aria-label="submit form" class="button action">Action</button>

  <!-- Styling Classes -->
  <a href="#" aria-label="submit form" class="button bordered">Bordered</a>
  <a href="#" aria-label="submit form" class="button bordered darken-hover">Bordered with Darken Hover</a>
  <a href="#" aria-label="submit form" class="button small bordered">Small Bordered</a>
  <a href="#" aria-label="submit form" class="button tiny bordered">Tiny Bordered</a>
  <a href="#" aria-label="submit form" class="button radius">Radius Button</a>
  <a href="#" aria-label="submit form" class="button radius shadow">Shadow</a>
  <a href="#" aria-label="submit form" class="button radius secondary shadow">Secondary Shadow</a>
  <a href="#" aria-label="submit form" class="button radius action shadow">Action Shadow</a>
  <a href="#" aria-label="submit form" class="button small radius action shadow">Small Shadow</a>
  <a href="#" aria-label="submit form" class="button tiny radius action shadow">Tiny Shadow</a>
  <a href="#" aria-label="submit form" class="button secondary select">Select</a>
  <a href="#" aria-label="submit form" class="button block">Block Level Button</a>

  <!-- Icons Classes-->
  <a href="#" aria-label="submit form" class="button img">
    <svg class="icon"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#twitter" /></svg>
  </a>

  <!-- Disabled Buttons -->
  <button href="#" aria-label="submit form" class="button disabled">Default</button>
  <button href="#" aria-label="submit form" class="button secondary disabled">Secondary</button>
  <button href="#" aria-label="submit form" class="button action disabled">Action</button>
  <a href="#" aria-label="submit form" class="button radius shadow disabled">Shadow</a>
  <a href="#" aria-label="submit form" class="button radius secondary shadow disabled">Secondary Shadow</a>
  <a href="#" aria-label="submit form" class="button radius action shadow disabled">Action Shadow</a>
  <a href="#" aria-label="submit form" class="button img disabled">
    <svg class="icon"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#twitter" /></svg>
  </a>

<!-- Foundation default, currently unused
<button href="#" aria-label="submit form" class="button tertiary">Tertiary</button>
<button href="#" aria-label="submit form" class="button success">Success</button>
<button href="#" aria-label="submit form" class="button alert">Alert</button>
<button href="#" aria-label="submit form" class="button info">Info</button>
<a href="#" aria-label="submit form" class="button round">Round Button</a>
-->
```

You can make divided buttons by adding the `.divided` class. They're expected to have either one or two
children, each a `<span>` element, marking the content division. When there are two spans, the first
will take only the space it needs, and the second will fill the remaining space. When there is only one
span, the button will behave like a normal undivided button, so that adding or removing divided content
dynamically will work in a friendly way.

```html_example
<div>
    <span class="display-inline-block block-normal">
        <button class="button shadow radius divided"><span>(1)</span><span>Divided Shadow</span></button>
    </span>

    <span class="display-inline-block block-normal">
        <button class="button bordered radius divided"><span>(2)</span><span>Divided Bordered</span></button>
    </span>

    <span class="display-inline-block block-normal">
        <button class="button secondary radius divided"><span>(3)</span><span>Divided Secondary</span></button>
    </span>

    <span class="display-inline-block block-normal">
        <button class="button action radius divided"><span>(3435)</span><span>Divided Action</span></button>
    </span>
</div>

<button class="button shadow full-width radius divided"><span>(3435)</span><span>Divided Full Width</span></button>
```

When in a ul, set the role (`li[role=button]`)to expand button to full width

```html_example
<ul class="no-bullet">
    <li role="button" aria-label="ask a question" ><a class="button bordered" href="#"><svg class="icon link"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#question" /></svg>Ask a Question</a></li>
</ul>
```

```sass_example
// When button is in ul, use full width
ul > li[role=button],
li[role=button] > .button {
    display: block;
}
```
*/
[role=button] {
  cursor: pointer; }

.search-button > .button {
  text-decoration: none; }

.button.secondary {
  text-decoration: none; }

.button.select {
  border: 1px solid #cccccc;
  padding-left: 0.5625rem;
  padding-right: 1.5rem; }

.button.action {
  background-color: #d1453d;
  border-color: #a33630; }
  .button.action:hover {
    background-color: #a33630; }
  .button.action.disabled:hover, .button.action[disabled]:hover {
    background-color: #d1453d; }

.button.green-pro {
  background-color: #0ABBA4; }
  .button.green-pro:hover {
    background-color: #037b6b; }

.button.green-caribbean {
  background-color: #5dd5c5; }
  .button.green-caribbean:hover {
    background-color: #0ABBA4; }

.button.gainsboro {
  background-color: #DDDDDD; }
  .button.gainsboro:hover {
    background-color: #ebebeb; }

.button.sallie-mae-blue {
  background-color: #168ECD; }
  .button.sallie-mae-blue:hover {
    background-color: #0880BF; }

.button.shadow {
  border-color: #1552a8;
  border-width: 0.0625rem;
  border-top-width: 0;
  border-bottom-width: 0.1875rem;
  padding: 0.96875rem 1.75rem 0.71875rem 1.75rem; }
  .button.shadow.small {
    padding: 0.675rem 1.15625rem 0.425rem 1.15625rem; }
    .button.shadow.small.postfix {
      padding-bottom: 1.75rem; }
  @media only screen {
    .button.shadow.small-for-small {
      padding: 0.675rem 1.15625rem 0.425rem 1.15625rem; } }
  @media only screen and (max-width: 40em) {
    .button.shadow.small-for-small-only {
      padding: 0.675rem 1.15625rem 0.425rem 1.15625rem; } }
  @media only screen and (min-width: 40.0625em) {
    .button.shadow.small-for-medium {
      padding: 0.675rem 1.15625rem 0.425rem 1.15625rem; } }
  @media only screen and (min-width: 40.0625em) {
    .button.shadow.small-for-medium-up {
      padding: 0.675rem 1.15625rem 0.425rem 1.15625rem; } }
  @media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
    .button.shadow.small-for-medium-only {
      padding: 0.675rem 1.15625rem 0.425rem 1.15625rem; } }
  @media only screen and (min-width: 64em) {
    .button.shadow.small-for-large {
      padding: 0.675rem 1.15625rem 0.425rem 1.15625rem; } }
  @media only screen and (min-width: 64em) {
    .button.shadow.small-for-large-up {
      padding: 0.675rem 1.15625rem 0.425rem 1.15625rem; } }
  .button.shadow.tiny {
    padding: 0.51875rem 0.825rem 0.26875rem 0.825rem; }
  .button.shadow.secondary {
    border-color: #dcdfe8; }
  .button.shadow.action {
    border-color: #a33630; }

.button.bordered {
  background-color: transparent;
  color: #2c7ef0;
  border: 1px solid #2c7ef0;
  border-radius: 0.1875rem;
  text-align: center;
  padding: 0.90625rem 0.4375rem; }
  .button.bordered.small {
    padding: 0.6125rem 0.4375rem; }
  .button.bordered.tiny {
    padding: 0.42188rem 0.4375rem; }
  .button.bordered > .icon {
    margin-right: 0.3125rem; }
  .button.bordered:hover {
    color: #1552a8;
    border: 1px solid #1552a8; }
    .button.bordered:hover > .icon {
      fill: #1552a8; }
  .button.bordered.darken-hover:hover {
    background-color: rgba(0, 0, 0, 0.3); }

.button.img {
  background-color: #d9e4e6;
  padding: 0.5625rem 1.125rem;
  margin: 0;
  color: #a8b2b6; }
  .button.img > .icon {
    fill: #a8b2b6; }
  .button.img:hover {
    background-color: #a8b2b6;
    color: #d9e4e6; }
    .button.img:hover > .icon {
      fill: #d9e4e6; }
  .button.img.disabled:hover {
    background-color: #d9e4e6;
    color: #a8b2b6; }
    .button.img.disabled:hover > .icon {
      fill: #a8b2b6; }

.button.divided {
  padding-left: 0 !important;
  padding-right: 0 !important;
  overflow: hidden;
  position: relative; }
  .button.divided > span {
    text-align: center;
    padding-left: 1.875rem;
    padding-right: 1.875rem; }
  .button.divided.small > span {
    padding-left: 1.28125rem;
    padding-right: 1.28125rem; }
  .button.divided.tiny > span {
    padding-left: 0.95rem;
    padding-right: 0.95rem; }
  .button.divided > span:first-child:not(:last-child) {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    border-color: inherit; }
    .button.divided > span:first-child:not(:last-child):after {
      content: "";
      position: absolute;
      height: 200%;
      border-width: 0;
      border-right-width: 2px;
      border-style: solid;
      border-color: inherit;
      margin-left: 0.9375rem;
      margin-top: -0.9375rem; }
  .button.divided.small > span:first-child:not(:last-child) {
    padding-left: 0.64062rem;
    padding-right: 0.64062rem; }
    .button.divided.small > span:first-child:not(:last-child):after {
      margin-left: 0.64062rem; }
  .button.divided.tiny > span:first-child:not(:last-child) {
    padding-left: 0.475rem;
    padding-right: 0.475rem; }
    .button.divided.tiny > span:first-child:not(:last-child):after {
      margin-left: 0.475rem; }
  .button.divided.bordered > span:first-child:after {
    border-right-width: 1px; }
  .button.divided > span:not(:first-child), .button.divided > span:last-child {
    width: 100%; }

.button.block {
  display: block; }
  input.button.block {
    width: 100%; }

@media only screen and (max-width: 40em) {
  .button.full {
    width: 100%; } }

ul > li[role=button],
li[role=button] > .button {
  display: block; }

/*doc
---
title: Accessibility
name: w-accessibility
category: Buttons - Buttons
---


Use the snippet below to make buttons more accessible. You can use an
`aria-label="submit form"` attribute to give a screen reader the literal
purpose of the button if there is no text in it. If there is no
`<a href="">` then simply add the `tabindex="0"` to the div or span to make
it focusable.

```html_example
<a role="button" href="#" class="button">Default Button</a>
<a role="button" aria-label="submit form" href="#" class="button">Submit</a>
<div role="button" tabindex="0" class="button">Default Button</div>
```
*/
/*doc
---
title: Foundation Settings
name: z-foundation-settings
category: Buttons - Buttons
---

These are the default Foundation button variables we can edit from `_.settings.scss`.
They are overridden by colors set in `_variables.scss`

```sass_example
@ref-doc Buttons

```
*/
/*doc
---
title: Mixin
name: x-mixin
category: Buttons - Buttons
---

You can create your own buttons using a mixin.

```sass_example
// Using the available options
.custom-button-class {
    @include button(
        $padding,
        // $padding
        // Default: $button-med or rem-calc(12)

        $bg,
        // Background color.
        // We can set $bg:false for a transparent background.
        // Default: $primary-color.

        $radius,
        // If true, set to button radius which is $global-radius
        // or explicitly set radius amount in px (ex. $radius:10px).
        // Default:false.

        $full-width,
        // We can set $full-width:true to remove side padding extend width.
        // Default:false

        $disabled,
        // We can set $disabled:true to create a disabled transparent button.
        // Default:false

        $is-input
        // $is-input - <input>s and <button>s take on strange padding.
        // We added this to help fix that.
        // Default:false
    );
}
```
Here is a button we would never use, but you can see how to build it with the `button()` mixin:

``` html_example
<button class="custom-button-class">Custom Button Class Example</button>
```

``` sass_example
.custom-button-class {
    @include button($padding:rem-calc(5), $bg:#BADA55, $radius:3px);
    font-size: rem-calc(10);
}
```
*/
.custom-button-class {
  -webkit-appearance: none;
  -moz-appearance: none;
  border-radius: 0;
  border-style: solid;
  border-width: 0;
  cursor: pointer;
  font-family: Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 400;
  line-height: normal;
  margin: 0 0 1.25rem;
  position: relative;
  text-align: center;
  text-decoration: none;
  display: inline-block;
  padding: 0.3125rem 0.625rem 0.375rem 0.625rem;
  background-color: #BADA55;
  border-color: #a2c72b;
  color: #FFFFFF;
  border-radius: 3px;
  transition: background-color 300ms ease-out;
  font-size: 0.625rem; }
  .custom-button-class:hover, .custom-button-class:focus {
    background-color: #a2c72b; }
  .custom-button-class:hover, .custom-button-class:focus {
    color: #FFFFFF; }

/*doc
---
title: Linkify Buttons
name: d-buttons
category: Buttons - Buttons
selectors:
    - .button.linkify
selector_type: component
---

Sometimes we want to turn a button into a link for `large-up`. Do this by adding
`.linkify` and for `large-up` it kills the button styles making it look
like a regular link.

```html_example
<a class="button bordered linkify" href="javascript: alert('Provide temp or permanent url')">
    See all Stocks Rankings &amp; Lists
    <span class="show-for-large-up display-inline-for-large-up">&raquo;</span>
</a>
```
*/
@media (min-width: 63.9375em) {
  .button.linkify {
    border: 0;
    color: #2c7ef0;
    padding: 0;
    background: transparent;
    text-align: left; }
    .button.linkify:hover {
      border: 0; } }

/*doc
---
title: Forms
name: a-forms
category: Forms - Forms
---

### Building Forms With HTML

Forms are built with a combination of standard form elements, as well as the Grid (rows and columns).

Form elements are styled based on their type attribute rather than a class, and can be sized in a couple of ways:

- You can size inputs using column sizes, like `.large-6`, `.small-6`.
- You can create row elements inside your form and use columns for the form, including inputs, labels and more.
Rows inside a form inherit some special padding to even up input spacing.

This is an example form we've created that is laid out using the grid:

```html_example
  <form>
    <div class="row">
      <div class="large-12 columns">
        <label>Input Label
          <input type="text" placeholder="large-12.columns" />
        </label>
      </div>
    </div>
    <div class="row">
      <div class="large-4 columns">
        <label>Input Label
          <input type="text" placeholder="large-4.columns" />
        </label>
      </div>
      <div class="large-4 columns">
        <label>Input Label
          <input type="text" placeholder="large-4.columns" />
        </label>
      </div>
      <div class="large-4 columns">
        <div class="row collapse">
          <label>Input Label</label>
          <div class="small-9 columns">
            <input type="text" placeholder="small-9.columns" />
          </div>
          <div class="small-3 columns">
            <span class="postfix">.com</span>
          </div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="large-12 columns">
        <label>Select Box
          <select>
            <option value="husker">Husker</option>
            <option value="starbuck">Starbuck</option>
            <option value="hotdog">Hot Dog</option>
            <option value="apollo">Apollo</option>
          </select>
        </label>
      </div>
    </div>
    <div class="row">
      <div class="large-6 columns">
        <label>Choose Your Favorite</label>
        <label class="form-control radio">
          <input id="rad1" name="radio" type="radio">
          <span class="form-control-indicator"></span>
          Radio 1
        </label>
        <label class="form-control radio">
          <input id="rad2" name="radio" type="radio">
          <span class="form-control-indicator"></span>
          Radio 2
        </label>
      </div>
      <div class="large-6 columns">
        <label>Check these out</label>
        <label class="form-control checkbox">
            <input type="checkbox">
            <span class="form-control-indicator"></span>
            Checkbox 1
        </label>
        <label class="form-control checkbox">
            <input type="checkbox">
            <span class="form-control-indicator"></span>
            Checkbox 2
        </label>
      </div>
    </div>
    <div class="row">
      <div class="large-12 columns">
        <label>Textarea Label
          <textarea placeholder="small-12.columns"></textarea>
        </label>
      </div>
    </div>
  </form>
```
*/
/*doc
---
title: Form element sizes
name: b-form-element-sizing
category: Forms - Forms
---
We have inputs to match the size of button. Just add the `.tiny`, `.small` or `.medium` modifier to the form element.

Default sizes of elements are 30px for tiny, 40px for small and 50px for Medium

Note that the `.medium` class is required to override Foundation's default size.

```html_example?kitchen-sink=true
<div class="row">
    <div class="large-4 columns">
        <label>Tiny Input
            <input class="tiny" type="text" placeholder="tiny input" />
        </label>
    </div>
    <div class="large-4 columns">
        <label>Tiny Select Box
          <select class="tiny">
            <option value="husker">Husker</option>
            <option value="starbuck">Starbuck</option>
            <option value="hotdog">Hot Dog</option>
            <option value="apollo">Apollo</option>
          </select>
        </label>
    </div>
    <div class="large-4 columns">
        <div class="row collapse">
            <label>Tiny Input with Postfix</label>
            <div class="small-9 columns">
                <input class="tiny" type="text" placeholder="tiny postfix" />
            </div>
            <div class="small-3 columns">
                <span class="tiny postfix">.com</span>
            </div>
        </div>
    </div>
</div>

<div class="row">
    <div class="large-4 columns">
        <label>Small Input
            <input class="small" type="text" placeholder="small input" />
        </label>
    </div>
    <div class="large-4 columns">
        <label>Small Select Box
          <select class="small">
            <option value="husker">Husker</option>
            <option value="starbuck">Starbuck</option>
            <option value="hotdog">Hot Dog</option>
            <option value="apollo">Apollo</option>
          </select>
        </label>
    </div>
    <div class="large-4 columns">
        <div class="row collapse">
            <label>Small Input with Postfix</label>
            <div class="small-9 columns">
                <input class="small" type="text" placeholder="small postfix" />
            </div>
            <div class="small-3 columns">
                <span class="small postfix">.com</span>
            </div>
        </div>
    </div>
</div>

<div class="row">
    <div class="large-4 columns">
        <label>Medium Input
            <input class="medium" type="text" placeholder="default input" />
        </label>
    </div>
    <div class="large-4 columns">
        <label>Medium Select Box
          <select class="medium" >
            <option value="husker">Husker</option>
            <option value="starbuck">Starbuck</option>
            <option value="hotdog">Hot Dog</option>
            <option value="apollo">Apollo</option>
          </select>
        </label>
    </div>
    <div class="large-4 columns">
        <div class="row collapse">
            <label>Medium Input with Postfix</label>
            <div class="small-9 columns">
                <input class="medium" type="text" placeholder="postfix" />
            </div>
            <div class="small-3 columns">
                <span class="medium postfix">.com</span>
            </div>
        </div>
    </div>
</div>
```
*/
select, .select {
  padding-right: 1.5rem; }

input.tiny,
select.tiny {
  height: 1.875rem;
  margin: 0 0 1.125rem 0;
  padding: 0.375rem;
  padding-right: 1.5rem;
  font-size: 0.75rem; }

input.small,
select.small {
  height: 2.5rem;
  margin: 0 0 1.125rem 0;
  padding: 0.5625rem;
  padding-right: 1.5rem; }

div.small-form-spacing {
  height: 2.5rem;
  margin: 0 0 1.125rem 0;
  padding: 0.5625rem; }

input.medium,
select.medium {
  height: 3.125rem;
  margin: 0 0 1.125rem 0;
  padding: 0.5625rem;
  padding-right: 1.5rem; }

.prefix.shadow {
  border-style: solid; }

.postfix.tiny,
.prefix.tiny {
  height: 1.875rem;
  font-size: 0.75rem;
  line-height: 1.875rem; }
  .postfix.tiny.button,
  .prefix.tiny.button {
    line-height: normal; }

.postfix.small,
.prefix.small {
  height: 2.5rem;
  line-height: 2.5rem; }
  .postfix.small.button,
  .prefix.small.button {
    line-height: normal; }

.postfix.medium,
.prefix.medium {
  height: 3.125rem;
  line-height: 3.125rem; }
  .postfix.medium.button,
  .prefix.medium.button {
    line-height: normal; }

/*doc
---
title: Search Input
name: b-search-input-search-input
category: Forms - Forms
---

```html_example?kitchen-sink=true
<label for="" class="input-search">
    <svg class="icon-search-box"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/static/sprites/svg/sprite.symbol.svg#search"></use></svg>
    <input type="text" placeholder="Search">
</label>
```
*/
.input-search {
  position: relative; }
  .input-search .icon-search-box {
    z-index: 1;
    fill: rgba(0, 0, 0, 0.25);
    height: 1.125rem;
    width: 1.125rem;
    margin-top: -0.5625rem;
    position: absolute;
    top: 50%;
    left: 0.5rem; }
  .input-search input {
    font-size: 0.875rem;
    padding: 0 1rem 0 2rem;
    height: 2.125rem; }

select, .select {
  background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMTJweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzcHgiIHZpZXdCb3g9IjAgMCA2IDMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYgMyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBvbHlnb24gcG9pbnRzPSI1Ljk5MiwwIDIuOTkyLDMgLTAuMDA4LDAgIi8+PC9zdmc+), -webkit-linear-gradient(90deg, #ececec 0%, white 100%);
  background-position: 100% center;
  background-repeat: no-repeat; }

.select-white {
  background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMTJweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzcHgiIHZpZXdCb3g9IjAgMCA2IDMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYgMyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBvbHlnb24gcG9pbnRzPSI1Ljk5MiwwIDIuOTkyLDMgLTAuMDA4LDAgIi8+PC9zdmc+);
  background-color: white;
  background-position: 100% center;
  background-repeat: no-repeat; }

/*doc
---
title: Stacked Radio List
name: b-stacked-radios
category: Forms - Forms
---

Why is it so hard to do a stacked radio list? Add a class of `.radio-list` to a
`ul`.

You can also put a `.small` on the labels to change the font-size to 14px, tighten the padding (and nudge the input box into place)
which seems to be the common size for radio and checkbox lists.

```html_example
<ul class="radio-list">
  <li>
    <label class="form-control radio">
      <input id="radio-itemA" name="radio-item" type="radio">
      <span class="form-control-indicator"></span>
      Ridiculously long label that wraps lorem ipsum dolor sit amet, consectetur adipisicing elit. Facere veniam molestias necessitatibus veritatis perferendis illum obcaecati pariatur, iusto, consequuntur perspiciatis animi quis at sit, quidem quasi dolores, possimus distinctio corporis.
    </label>
  </li>
  <li>
    <label class="form-control radio">
      <input id="radio-itemB" name="radio-item" type="radio">
      <span class="form-control-indicator"></span>
      Short label written by a grownup
    </label>
  </li>
  <li>
    <label class="form-control radio">
      <input id="radio-itemC" name="radio-item" type="radio">
      <span class="form-control-indicator"></span>
      Ridiculously long label that wraps lorem ipsum dolor sit amet, consectetur adipisicing elit. Facere veniam molestias necessitatibus veritatis perferendis illum obcaecati pariatur, iusto, consequuntur perspiciatis animi quis at sit, quidem quasi dolores, possimus distinctio corporis.
    </label>
  </li>
</ul>

<h5>A list with smaller text</h5>

<ul class="radio-list">
  <li>
    <label class="form-control radio small">
      <input id="radio-itemD" name="radio-item2" type="radio">
      <span class="form-control-indicator"></span>
      Small text
    </label>
  </li>
  <li>
    <label class="form-control radio small">
      <input id="radio-itemE" name="radio-item2" type="radio">
      <span class="form-control-indicator"></span>
      Small text text
    </label>
  </li>
  <li>
    <label class="form-control radio small">
      <input id="radio-itemF" name="radio-item2" type="radio">
      <span class="form-control-indicator"></span>
      Small text text text
    </label>
  </li>
</ul>
```
*/
/*doc
---
title: Stacked Checkbox List
name: c-stacked-checkboxes
category: Forms - Forms
---

Add a class of `.checkbox-list` to a `ul`.

```html_example
<ul class="checkbox-list">
  <li>
    <label class="form-control checkbox">
      <input type="checkbox">
      <span class="form-control-indicator"></span>
      Ridiculously long label that wraps lorem ipsum dolor sit amet, consectetur adipisicing elit. Facere veniam molestias necessitatibus veritatis perferendis illum obcaecati pariatur, iusto, consequuntur perspiciatis animi quis at sit, quidem quasi dolores, possimus distinctio corporis.
    </label>
  </li>
  <li>
    <label class="form-control checkbox">
      <input type="checkbox">
      <span class="form-control-indicator"></span>
      Short label written by a grownup
    </label>
  </li>
  <li>
    <label class="form-control checkbox">
      <input type="checkbox">
      <span class="form-control-indicator"></span>
      Ridiculously long label that wraps lorem ipsum dolor sit amet, consectetur adipisicing elit. Facere veniam molestias necessitatibus veritatis perferendis illum obcaecati pariatur, iusto, consequuntur perspiciatis animi quis at sit, quidem quasi dolores, possimus distinctio corporis.
    </label>
  </li>
</ul>

<h5>A list with smaller text</h5>

<ul class="checkbox-list">
  <li>
    <label class="form-control checkbox small">
      <input type="checkbox">
      <span class="form-control-indicator"></span>
      Smaller text
    </label>
  </li>
  <li>
    <label class="form-control checkbox small">
      <input type="checkbox">
      <span class="form-control-indicator"></span>
      Smaller text text text text
    </label>
  </li>
  <li>
    <label class="form-control checkbox small">
      <input type="checkbox">
      <span class="form-control-indicator"></span>
      Small text text text text
    </label>
  </li>
</ul>

```
*/
.checkbox-list,
.radio-list {
  margin: 0;
  padding: 0; }
  .checkbox-list li,
  .radio-list li {
    position: relative;
    display: block; }
  .checkbox-list input + label,
  .radio-list input + label {
    margin: 0;
    padding: 0;
    min-height: 20px;
    margin-bottom: 0;
    font-weight: 400;
    cursor: pointer; }
  .checkbox-list input,
  .radio-list input {
    position: absolute;
    top: 3px;
    margin-top: 4px \9;
    margin-left: -20px; }

/*doc
---
title: Select Fields
name: c-select-fields
category: Forms - Forms
---

Sometimes you might want to make a select field look like link text, especially on
mobile devices so that you can take advantage of the native select control. Use
the `.linkify` class on the select field element for this purpose.

```html_example?kitchen-sink=true
<form>
    <div class="row">
        <div class="large-3 columns">
            <select class="normal linkify">
                <option value="less-traveled">The road less traveled</option>
                <option value="more-traveled">The road more traveled</option>
            </select>
        </div>
    </div>

    <div class="row">
        <div class="large-3 columns">
            <label>A disabled select field
                <select class="normal" disabled>
                    <option value="">Select a road</option>
                    <option value="less-traveled">The road less traveled</option>
                    <option value="more-traveled">The road more traveled</option>
                </select>
            </label>
        </div>
    </div>
</form>
```

Select field options could have lengthy content.

```html_example
<form>
    <div class="row">
        <div class="large-3 columns">
            <select class="normal">
                <option value="">It was grassy and wanted wear; though as for that the passing there had worn them really about the same</option>
            </select>
        </div>
    </div>
</form>
```

Color variations.

```html_example
<form>
    <div class="row">
        <div class="large-3 columns">
            <select class="select-white">
                <option value="">Characters</option>
                <option value="Leia">Leia</option>
                <option value="Han">Han</option>
                <option value="Luke">Luke</option>
            </select>
        </div>
    </div>
</form>
```
*/
select.linkify {
  background: none;
  border: none;
  color: #2c7ef0;
  padding-left: 0;
  padding-top: 0;
  padding-bottom: 0;
  height: unset;
  cursor: pointer; }

select[disabled] {
  opacity: 0.5; }

/*doc
---
title: Inline Labels
name: d-inline-labels
category: Forms - Forms
---

Sometimes you want a form with labels to the left of your inputs.
You can put the label inside a different column to the left of the input.

Then add a class of `.right` to the label to have it align to the right.
Adding a class of `.inline` will have it vertically center against an input.


```html_example?kitchen-sink=true
<form>
  <div class="row">
    <div class="small-8 columns">
      <div class="row">
        <div class="small-3 columns">
          <label for="right-label" class="right inline">Label</label>
        </div>
        <div class="small-9 columns">
          <input type="text" id="right-label" placeholder="Inline Text Input">
        </div>
      </div>
    </div>
  </div>
</form>
```
*/
/*doc
---
title: Fieldset
name: e-fieldset
category: Forms - Forms
---

We don't see them too much, but one of the useful form elements included with Foundation is `<fieldset>`.
This is used as a wrapper right inside the form element. Right after you define a fieldset, you can include
a legend title by using `<legend>`. Here's some HTML to help make copy paste.

```html_example?kitchen-sink=true
<form>
  <fieldset>
    <legend>Fieldset Legend</legend>

    <label>Input Label
      <input type="text" placeholder="Inputs and other form elements go inside...">
    </label>
  </fieldset>
</form>
```
*/
/*doc
---
title: Pre and Postfix Labels and Actions
name: f-pre-and-postfix-labels-and-actions
category: Forms - Forms
---

You can use `<div class="row collapse">` to create label / action / input combinations.
You use the Foundation columns to define the size of the pre/postfix
`<span class="postfix">` or `<span class="prefix">`.

You can also give a button / input pair a radius or a rounded edge by adding the
classes `prefix-radius, postfix-radius, prefix-round or postfix-round` to the row
that contains the elements. For example, `<div class="row collapse postfix-round">`
will add a rounded edge to the left side of the input field, and to the right side
of the button, creating a cohesive rounded input.

You'll notice that on the last postfix element, we've included the class of `.radius`.
This adds the border radius on the appropriate edge depending on whether it's a prefix or a postfix element.
You can even include buttons with these styles, just apply the `.button` as well as the pre/postfix class.

You can also have tiny pre and postfix labels and actions by adding the `.tiny` class to the button or input.

```html_example
  <form>
    <div class="row">
      <div class="small-3 large-2 columns">
        <span class="prefix">http://</span>
      </div>
      <div class="small-9 large-10 columns">
        <input type="text" placeholder="Enter your URL...">
      </div>
    </div>
    <div class="row">
      <div class="large-12 columns">
        <div class="row collapse">
          <div class="small-10 columns">
            <input type="text" placeholder="Hex Value">
          </div>
          <div class="small-2 columns">
            <a href="#" class="button postfix">Go</a>
          </div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="large-6 columns">
        <div class="row collapse prefix-radius">
          <div class="small-3 columns">
            <span class="prefix">Label</span>
          </div>
          <div class="small-9 columns">
            <input type="text" placeholder="Value">
          </div>
        </div>
      </div>
      <div class="large-6 columns">
        <div class="row collapse postfix-radius">
          <div class="small-9 columns">
            <input type="text" placeholder="Value">
          </div>
          <div class="small-3 columns">
            <span class="postfix">Label</span>
          </div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="large-6 columns">
        <div class="row collapse prefix-round">
          <div class="small-3 columns">
            <a href="#" class="button prefix">Go</a>
          </div>
          <div class="small-9 columns">
            <input type="text" placeholder="Value">
          </div>
        </div>
      </div>
      <div class="large-6 columns">
        <div class="row collapse postfix-round">
          <div class="small-9 columns">
            <input type="text" placeholder="Value">
          </div>
          <div class="small-3 columns">
            <a href="#" class="button postfix">Go</a>
          </div>
        </div>
      </div>
    </div>
  </form>

<!-- tiny pre and postfixes -->
  <form>
    <div class="row">
      <div class="large-6 columns">
        <div class="row collapse">
          <div class="small-3 columns">
            <a href="#" class="button tiny shadow action radius prefix">Go</a>
          </div>
          <div class="small-9 columns">
            <input class="tiny" type="text" placeholder="Value">
          </div>
        </div>
      </div>
      <div class="large-6 columns">
        <div class="row collapse">
          <div class="small-9 columns">
            <input class="tiny" type="text" placeholder="Value">
          </div>
          <div class="small-3 columns">
            <a href="#" class="button tiny shadow action radius postfix">Go</a>
          </div>
        </div>
      </div>
    </div>
  </form>
```
*/
/*doc
---
title: Notice
name: f-notice
category: Forms - Forms
---

Add a class of `.notice` to give a text field a noticeable light yellow background.

```html_example
<form>
    <div>
        <label>A Noticeable Field
            <input type="text" class="notice"/>
        </label>
    </div>

    <div>
        <textarea class="notice" placeholder="Special info..."></textarea>
    </div>
</form>
```
*/
input[type=text].notice, textarea.notice {
  background-color: #FFF5E5; }

/*doc
---
title: Error States
name: g-error-states
category: Forms - Forms
---

```html_example
  <form>
    <div class="row">
      <div class="large-6 columns">
        <label class="error">Error
          <input type="text" class="error" />
        </label>
        <small class="error">Invalid entry</small>
      </div>
      <div class="large-6 columns error">
        <label>Another Error
          <input type="text" class="error"/>
        </label>
        <small class="error">Invalid entry</small>
      </div>
    </div>
    <textarea class="error" placeholder="Message..."></textarea>
    <small class="error">Invalid entry</small>
  </form>
```
*/
input.error {
  border-color: #F06E65 !important; }

input[type=text].error,
input[type=email].error,
input[type=password].error {
  background-color: #fdeeec; }

small.error, .error small.error {
  color: #F06E65; }

/*doc
---
title: Foundation Settings
name: h-usn-settings
category: Forms - Forms
---

These are the default Foundation form related variables we can edit from `_.settings.scss`
Any that are commented in have been altered for USN.  Add new things to `_.variables.scss`

```sass_example
@ref-doc Forms

```
*/
/*doc
---
title: Mixins
name: i-mixins
category: Forms - Forms
---

You can create your own forms using our Sass mixins.
You can use the `prefix-postfix-base()` and `prefix()` mixin to create your own form, like so:

Here is a form control we would never use, but you can see how to build it with the `prefix-postfix-base()`
and the `grid-column()` mixin:

``` html_example
  <form>
    <div class="row">
      <span class="custom-prefix-class">Label</span>
      <input type="text" class="custom-input-class" placeholder="Value">
    </div>
  </form>
```


```sass_example
.custom-prefix-class {
  @include prefix-postfix-base();
  @include grid-column(
    $columns:3,
    $float:left
  );
}

input[type="text"].custom-input-class {
  @include grid-column($columns:9);
}
```
*/
.custom-prefix-class {
  border-style: solid;
  border-width: 1px;
  display: block;
  font-size: 1rem;
  height: 2.625rem;
  line-height: 2.625rem;
  overflow: visible;
  padding-bottom: 0;
  padding-top: 0;
  position: relative;
  text-align: center;
  width: 100%;
  z-index: 2;
  padding-left: 0.9375rem;
  padding-right: 0.9375rem;
  width: 25%;
  float: left;
  background: #BADA55;
  border: 1px solid #BADA55; }

input[type="text"].custom-input-class {
  padding-left: 0.9375rem;
  padding-right: 0.9375rem;
  width: 75%;
  float: left; }

/*doc
---
title: Checkboxes and Radios
name: b-custom-checkboxes-and-radios
category: Forms - Forms
---

These are css only custom checkbox and radio buttons.
You have the choice of modifying the svg image inside the control with `.form-control-x` or `.form-control-dash`.

To create a disabled checkbox or radio button, simply add the 'disabled' attribute to the
input element like usual.

```html_example?kitchen-sink=true

    <h5>Checkboxes</h5>
    <label class="form-control checkbox">
        <input type="checkbox" checked="checked">
        <span class="form-control-indicator"></span>
        regular checkbox
    </label>
    <label class="form-control form-control-x checkbox">
        <input type="checkbox" checked="checked">
        <span class="form-control-indicator"></span>
        checkbox with ×
    </label>
    <label class="form-control form-control-dash checkbox">
        <input type="checkbox" checked="checked">
        <span class="form-control-indicator"></span>
        Check this custom checkbox with -
    </label>
    <label class="form-control checkbox">
        <input type="checkbox" disabled/>
        <span class="form-control-indicator"></span>
        Disabled checkbox
    </label>

    <br>

    <h5>Radios</h5>
    <label class="form-control radio">
        <input id="radio1" name="radioA" type="radio" checked="checked">
        <span class="form-control-indicator"></span>
        radio
    </label>
    <label class="form-control radio">
        <input id="radio2" name="radioA" type="radio">
        <span class="form-control-indicator"></span>
        radio
    </label>
    <label class="form-control radio">
        <input id="radio3" name="radioA" type="radio" disabled>
        <span class="form-control-indicator"></span>
        disabled radio
    </label>

    <br>

    <label class="form-control form-control-x radio">
      <input id="radio3" name="radioB" type="radio" checked="checked">
      <span class="form-control-indicator"></span>
      radio with ×
    </label>
    <label class="form-control form-control-x  radio">
      <input id="radio4" name="radioB" type="radio">
      <span class="form-control-indicator"></span>
      radio with ×
    </label>

    <br>

    <label class="form-control form-control-dash radio">
      <input id="radio5" name="radioC" type="radio" checked="checked">
      <span class="form-control-indicator"></span>
      radio with -
    </label>
    <label class="form-control form-control-dash radio">
      <input id="radio6" name="radioC" type="radio">
      <span class="form-control-indicator"></span>
      radio with -
    </label>

```

### Radio tiles

These are css only tiles built on top of radio inputs.

```html_example?kitchen-sink=true
    <div class="radio-tile-group">
        <div class="input-container">
          <input id="radio-tile-1" class="radio-button" type="radio" name="radio-tile" value="buy" />
          <div class="radio-tile">
              <svg class="icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"><title>Key</title><path d="M51.76,39.44q0,.43-1.23,1.66t-1.66,1.23a1.45,1.45,0,0,1-.72-.4q-.49-.4-.92-.83t-1-1l-.62-.65-2.41,2.41,5.52,5.52a2.32,2.32,0,0,1,.7,1.71,3.42,3.42,0,0,1-3,3,2.33,2.33,0,0,1-1.71-.7L27.91,34.54a15.16,15.16,0,0,1-9.17,3.29A8.82,8.82,0,0,1,9.5,28.59a14.73,14.73,0,0,1,2.39-7.86,19.09,19.09,0,0,1,6.23-6.23A14.73,14.73,0,0,1,26,12.12a8.82,8.82,0,0,1,9.24,9.24,15.17,15.17,0,0,1-3.29,9.17l8.91,8.91L43.25,37l-.65-.62q-.58-.54-1-1t-.83-.92a1.45,1.45,0,0,1-.4-.72q0-.43,1.23-1.66t1.66-1.23a.8.8,0,0,1,.58.25L45,32.29l2.06,2q1.05,1,2.17,2.16t1.83,2Q51.76,39.24,51.76,39.44ZM29,25.18a4.85,4.85,0,0,0,0-6.83,4.85,4.85,0,0,0-6.83,0,4.65,4.65,0,0,0-1.41,3.42,4.91,4.91,0,0,0,.48,2.08,4.92,4.92,0,0,0-2.08-.48,4.83,4.83,0,0,0-3.42,8.24,4.85,4.85,0,0,0,6.83,0A4.65,4.65,0,0,0,24,28.19a4.92,4.92,0,0,0-.48-2.08,4.91,4.91,0,0,0,2.08.48A4.65,4.65,0,0,0,29,25.18Z"/></svg>
            <label for="radio-tile-1" class="radio-tile-label">I'm Buying</label>
          </div><!-- /.radio-tile -->
        </div><!-- /.input-container -->
        <div class="input-container">
          <input id="radio-tile-2" class="radio-button" type="radio" name="radio-tile" value="sell" />
          <div class="radio-tile">
              <svg class="icon" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xml:space="preserve"><g><path d="M52.9,15.3l-29.1,0V10l-4-2.6l-4,2.6v5.3h-5.3v7.9h5.3v27.8h7.9V23.3h6.6v5.3h-4v15.9h25.1V28.6h-4v-5.3
    h5.3l2.6-4L52.9,15.3z M33,28.6v-5.3h11.9v5.3H33z"/></g></svg>
            <label for="radio-tile-2" class="radio-tile-label">I'm Selling</label>
          </div><!-- /.radio-tile -->
        </div><!-- /.input-container -->
    </div><!-- /.radio-tile-group -->
```

*/
/*
 * Checkboxes and radios
 */
.form-control {
  position: relative;
  display: inline-block;
  padding-left: 27px;
  color: #555;
  cursor: pointer;
  margin-bottom: 1rem; }

.form-control.small {
  font-size: 0.875rem;
  margin-bottom: 0.5rem; }

.form-control + .form-control {
  margin-left: 1rem; }

.form-control input {
  z-index: -1;
  /* Put the input behind the label so it doesn't overlay text */
  position: absolute;
  opacity: 0; }

.form-control-indicator, .zocdoc-inner .zocdoc-head .Radio__RadioButton-gayEfS input[type='radio']:before {
  position: absolute;
  top: 3px;
  left: 0;
  display: block;
  width: 17px;
  height: 17px;
  -webkit-box-shadow: 0px 1px 1px -1px black;
  -moz-box-shadow: 0px 1px 1px -1px black;
  box-shadow: 0px 1px 1px -1px black;
  line-height: 1.2rem;
  font-size: 100%;
  border: 1px solid #B5B5B5;
  color: #eee;
  text-align: center;
  background-color: #fff;
  background-size: 50% 50%;
  background-position: center center;
  background-repeat: no-repeat;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none; }

.admissions-signup-form {
  padding: 0 !important;
  overflow-y: auto;
  border: none;
  border-radius: 0; }
  @media (min-width: 0em) {
    .admissions-signup-form {
      top: 0 !important;
      bottom: 0 !important; }
      .admissions-signup-form .admissions-signup-form-bar {
        padding: 1.25rem 0.9375rem;
        margin-left: -15px;
        margin-right: -15px; } }
  @media (min-width: 40.0625em) {
    .admissions-signup-form {
      bottom: initial !important;
      top: 50% !important;
      max-width: 700px;
      max-height: 80%; }
      .admissions-signup-form .admissions-signup-form-bar {
        position: initial;
        left: initial;
        right: initial;
        bottom: initial;
        padding: 1.875rem;
        margin-left: -15px;
        margin-right: -15px; } }
  .admissions-signup-form > div:first-child {
    position: absolute;
    top: -1px;
    left: 0;
    right: 0;
    height: 50px;
    background: #3163AF;
    z-index: 1001;
    text-align: center; }
    .admissions-signup-form > div:first-child > h2 {
      line-height: 50px;
      font-size: 1.25rem;
      vertical-align: middle;
      color: #fff; }
  .admissions-signup-form .form-content {
    overflow-y: auto;
    height: 100%;
    padding-left: 0.9375rem;
    padding-right: 0.9375rem; }
  .admissions-signup-form .admissions-signup-form-bar {
    background: #f4f4f4;
    border-color: #ddd;
    margin-bottom: 0px; }
  .admissions-signup-form .panel, .admissions-signup-form .panel-borderless, .admissions-signup-form .panel-tight, .admissions-signup-form .error-panel {
    border-width: 1px 0 0 0; }

/*
 * Radio tiles
 */
.radio-tile-group {
  display: flex;
  flex-wrap: wrap;
  justify-content: center; }
  .radio-tile-group .input-container {
    position: relative;
    height: 3.5rem;
    width: 100%;
    margin: 1rem; }
    @media only screen and (min-width: 40.0625em) {
      .radio-tile-group .input-container {
        height: 8.74rem;
        width: 10rem; } }
    .radio-tile-group .input-container .radio-button {
      opacity: 0;
      position: absolute;
      top: 0;
      left: 0;
      height: 100%;
      width: 100%;
      margin: 0;
      cursor: pointer; }
    .radio-tile-group .input-container .radio-tile {
      display: flex;
      flex-direction: row;
      align-items: center;
      justify-content: center;
      width: 100%;
      height: 100%;
      border: 1px solid #2262bb;
      border-radius: 2px;
      padding: 1rem;
      transition: transform 300ms ease; }
      @media only screen and (min-width: 40.0625em) {
        .radio-tile-group .input-container .radio-tile {
          flex-direction: column; } }
    .radio-tile-group .input-container svg.icon {
      fill: #2262bb;
      margin-top: 3px;
      margin-right: 3px;
      height: 1.5rem;
      width: 1.5rem;
      /* .icon.medium */
      /* .icon.larger */ }
      @media only screen and (min-width: 40.0625em) {
        .radio-tile-group .input-container svg.icon {
          margin-top: 0;
          margin-right: 0;
          height: 3rem;
          width: 3rem; } }
    .radio-tile-group .input-container .radio-tile-label {
      text-align: center;
      font-size: 0.75rem;
      color: #2262bb; }
    .radio-tile-group .input-container svg.icon + .radio-tile-label {
      font-size: 1rem;
      margin-top: 0.25rem; }
    .radio-tile-group .input-container .radio-button:checked + .radio-tile, .radio-tile-group .input-container .radio-button:hover + .radio-tile {
      background-color: #2262bb;
      border: 2px solid #2262bb;
      color: white; }
      .radio-tile-group .input-container .radio-button:checked + .radio-tile svg.icon, .radio-tile-group .input-container .radio-button:hover + .radio-tile svg.icon {
        fill: white;
        background-color: #2262bb; }
      .radio-tile-group .input-container .radio-button:checked + .radio-tile .radio-tile-label, .radio-tile-group .input-container .radio-button:hover + .radio-tile .radio-tile-label {
        color: white;
        background-color: #2262bb; }

.form-control.small .form-control-indicator, .form-control.small .zocdoc-inner .zocdoc-head .Radio__RadioButton-gayEfS input[type='radio']:before, .zocdoc-inner .zocdoc-head .Radio__RadioButton-gayEfS .form-control.small input[type='radio']:before {
  top: .05rem; }

/* Hover state */
/* Uncomment if you need it, but be aware of the sticky iOS states.
.form-control:hover .form-control-indicator {
  color: #fff;
  background-color: #ccc;
}
*/
/* Focus */
/* Checked state */
.form-control input:checked ~ .form-control-indicator, .form-control .zocdoc-inner .zocdoc-head .Radio__RadioButton-gayEfS input:checked ~ input[type='radio']:before, .zocdoc-inner .zocdoc-head .Radio__RadioButton-gayEfS .form-control input:checked ~ input[type='radio']:before {
  color: #fff;
  background-color: #2262bb;
  border: 1px solid #2262bb; }

/* Active */
.form-control input:not([disabled]):active ~ .form-control-indicator, .form-control .zocdoc-inner .zocdoc-head .Radio__RadioButton-gayEfS input:not([disabled]):active ~ input[type='radio']:before, .zocdoc-inner .zocdoc-head .Radio__RadioButton-gayEfS .form-control input:not([disabled]):active ~ input[type='radio']:before {
  color: #fff;
  background-color: #2262bb; }

/* Disabled */
.form-control input[disabled] ~ .form-control-indicator, .form-control .zocdoc-inner .zocdoc-head .Radio__RadioButton-gayEfS input[disabled] ~ input[type='radio']:before, .zocdoc-inner .zocdoc-head .Radio__RadioButton-gayEfS .form-control input[disabled] ~ input[type='radio']:before, .hs-form select[disabled] {
  opacity: 0.5;
  cursor: default; }

/* Checkbox modifiers */
.checkbox .form-control-indicator, .checkbox .zocdoc-inner .zocdoc-head .Radio__RadioButton-gayEfS input[type='radio']:before, .zocdoc-inner .zocdoc-head .Radio__RadioButton-gayEfS .checkbox input[type='radio']:before {
  border-radius: .2rem;
  pointer-events: none;
  background-size: 9px 9px; }

.checkbox input:checked ~ .form-control-indicator, .checkbox .zocdoc-inner .zocdoc-head .Radio__RadioButton-gayEfS input:checked ~ input[type='radio']:before, .zocdoc-inner .zocdoc-head .Radio__RadioButton-gayEfS .checkbox input:checked ~ input[type='radio']:before {
  background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNy4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgOCA4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA4IDgiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTYuNCwxTDUuNywxLjdMMi45LDQuNUwyLjEsMy43TDEuNCwzTDAsNC40bDAuNywwLjdsMS41LDEuNWwwLjcsMC43bDAuNy0wLjdsMy41LTMuNWwwLjctMC43TDYuNCwxTDYuNCwxeiINCgkvPg0KPC9zdmc+DQo=); }

.checkbox.hover * {
  transition: color 300ms; }

.checkbox.hover:hover * {
  color: #2c7ef0 !important; }

/* Radio modifiers */
.radio .form-control-indicator, .radio .zocdoc-inner .zocdoc-head .Radio__RadioButton-gayEfS input[type='radio']:before, .zocdoc-inner .zocdoc-head .Radio__RadioButton-gayEfS .radio input[type='radio']:before {
  border-radius: 50%;
  pointer-events: none; }

.radio input:checked ~ .form-control-indicator, .radio .zocdoc-inner .zocdoc-head .Radio__RadioButton-gayEfS input:checked ~ input[type='radio']:before, .zocdoc-inner .zocdoc-head .Radio__RadioButton-gayEfS .radio input:checked ~ input[type='radio']:before {
  background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNy4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgOCA4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA4IDgiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTQsMUMyLjMsMSwxLDIuMywxLDRzMS4zLDMsMywzczMtMS4zLDMtM1M1LjcsMSw0LDF6Ii8+DQo8L3N2Zz4NCg==); }

/* Alternately, use another character */
.form-control-x input:checked ~ .form-control-indicator, .form-control-x .zocdoc-inner .zocdoc-head .Radio__RadioButton-gayEfS input:checked ~ input[type='radio']:before, .zocdoc-inner .zocdoc-head .Radio__RadioButton-gayEfS .form-control-x input:checked ~ input[type='radio']:before {
  background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNy4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iOHB4IiBoZWlnaHQ9IjhweCIgdmlld0JveD0iMCAwIDggOCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgOCA4IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0xLjQsMEwwLDEuNGwwLjcsMC43bDEuOCwxLjhMMC43LDUuN0wwLDYuNGwxLjQsMS40bDAuNy0wLjdsMS44LTEuOGwxLjgsMS44bDAuNywwLjdsMS40LTEuNEw3LjEsNS43DQoJTDUuMywzLjlsMS44LTEuOGwwLjctMC43TDYuNCwwTDUuNywwLjdMMy45LDIuNUwyLjEsMC43QzIuMSwwLjcsMS40LDAsMS40LDB6Ii8+DQo8L3N2Zz4NCg==); }

.form-control-dash input:checked ~ .form-control-indicator, .form-control-dash .zocdoc-inner .zocdoc-head .Radio__RadioButton-gayEfS input:checked ~ input[type='radio']:before, .zocdoc-inner .zocdoc-head .Radio__RadioButton-gayEfS .form-control-dash input:checked ~ input[type='radio']:before {
  background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNy4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iOHB4IiBoZWlnaHQ9IjhweCIgdmlld0JveD0iMCAwIDggOCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgOCA4IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0wLDN2Mmg4VjNIMHoiLz4NCjwvc3ZnPg0K); }

/*doc
---
title: Basic Accordion
name: a-basic
category: Slideshows & Accordions - Accordion
selectors:
    - .accordion
---

You can create an accordion using minimal markup. It requires the use of a `ul` or `dl` to work.

If you add a class of `.nopad` to the accordion it will remove padding so that you can put
panels inside or have edge to edge dividing borders.  If you add a class of `.fullwidth-accordion` then the accordion will appear full-width on mobile using negative margins.

```html_example?kitchen-sink=true
<ul class="no-bullet accordion block-looser" data-accordion>
  <li class="accordion-navigation">
    <a href="#panel1a">Accordion 1</a>
    <div id="panel1a" class="content active">
      Panel 1. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
    </div>
  </li>
  <li class="accordion-navigation">
    <a href="#panel2a">Accordion 2</a>
    <div id="panel2a" class="content">
      Panel 2. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
    </div>
  </li>
  <li class="accordion-navigation">
    <a href="#panel3a">Accordion 3</a>
    <div id="panel3a" class="content">
      Panel 3. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
    </div>
  </li>
</ul>

<p>`.accordion.bordered`</p>
<ul class="no-bullet accordion bordered" data-accordion>
  <li class="accordion-navigation border-bottom">
    <a href="#panelbrda">Accordion 1</a>
    <div id="panelbrda" class="content active">
      Panel 1. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
    </div>
  </li>
  <li class="accordion-navigation border-bottom">
    <a href="#panelbrdb">Accordion 2</a>
    <div id="panelbrdb" class="content">
      Panel 2. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
    </div>
  </li>

</ul>
```
*/
.accordion.nopad .content {
  padding: 0; }

@media only screen and (max-width: 40em) {
  .accordion.fullwidth-accordion {
    margin-left: -1rem !important;
    margin-right: -1rem !important; } }

/*doc
---
title: Search Accordion
name: b-search-accordion
category: Slideshows & Accordions - Accordion
---

Here is an example of the accordion component being used in search. This is not
an extension of the accordion. It is just an example of this component being
used within another component.

*Two things to keep in mind:* The accordion html needs to be inside a div with
class of `.searchControl` and a class of `.searchControl_accordion` needs to be
added to the `ul`.

Again, this is not an extension of the the accordion component, please refer to
the search component for more information. I shouldn't even put this here.

```html_example
<div class="searchControl">
  <!-- Usually there is other crap in the searchControl -->
  <ul class="accordion searchControl_accordion" data-accordion data-options="multi_expand: true">
    <li class="accordion-navigation searchControl_facet">
      <a href="#education" class="searchControl_facet_heading">Education <svg class="icon right searchControl_facet_heading_icon-toggle"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#chevron" /></svg></a>
      <div id="education" class="content searchControl_facet_content">
        <p class="block-flush"><input id="checkbox1" type="checkbox"><label for="checkbox1">Checkbox 1</label></p>
        <p class="block-flush"><input id="checkbox2" type="checkbox"><label for="checkbox2">Checkbox 2</label></p>
        <p class="block-flush"><input id="checkbox1" type="checkbox"><label for="checkbox1">Checkbox 1</label></p>
        <p class="block-flush"><input id="checkbox1" type="checkbox"><label for="checkbox1">Checkbox 1</label></p>
        <p class="block-flush"><input id="checkbox1" type="checkbox"><label for="checkbox1">Checkbox 1</label></p>
        <p class="block-flush"><input id="checkbox1" type="checkbox"><label for="checkbox1">Checkbox 1</label></p>
        <p class="block-flush"><input id="checkbox1" type="checkbox"><label for="checkbox1">Checkbox 1</label></p>
      </div>
    </li>
    <li class="accordion-navigation searchControl_facet">
      <a href="#experience" class="searchControl_facet_heading">Experience <svg class="icon right searchControl_facet_heading_icon-toggle"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#chevron" /></svg></a>
      <div id="experience" class="content searchControl_facet_content">
          <p>Future home of experience</p>
      </div>
    </li>
    <li class="accordion-navigation searchControl_facet">
      <a href="#salary" class="searchControl_facet_heading">Salary <svg class="icon right searchControl_facet_heading_icon-toggle"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#chevron" /></svg></a>
      <div id="salary" class="content searchControl_facet_content">
          <p>Future home of Salary</p>
      </div>
    </li>
    <li class="accordion-navigation searchControl_facet">
      <a href="#skills" class="searchControl_facet_heading">Skills <svg class="icon right searchControl_facet_heading_icon-toggle"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#chevron" /></svg></a>
      <div id="skills" class="content searchControl_facet_content">
        Future home of Skills
      </div>
    </li>
    <li class="accordion-navigation searchControl_facet">
      <a href="#rankings" class="searchControl_facet_heading">Rankings <svg class="icon right searchControl_facet_heading_icon-toggle"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#chevron" /></svg></a>
      <div id="rankings" class="content searchControl_facet_content">
        Future home of Rankings
      </div>
    </li>
  </ul>
</div>
```
*/
html.no-js .accordion .accordion-navigation > .content {
  display: block; }

/*doc
---
title: Chevron Accordion
name: c-chevron-accordion
category: Slideshows & Accordions - Accordion
template:
    accordions:
    - name: "[name]"
      items:
        - name: "[item.name]"
          url: "#"
        - name: "[item.name]"
          url: "#"
        - name: "[item.name]"
          url: "#"
        - name: "[item.name]"
          url: "#"
    - name: "[name]"
      items:
        - name: "[item.name]"
          url: "#"
        - name: "[item.name]"
          url: "#"
        - name: "[item.name]"
          url: "#"
        - name: "[item.name]"
          url: "#"
    - name: "[name]"
      items:
        - name: "[item.name]"
          url: "#"
        - name: "[item.name]"
          url: "#"
        - name: "[item.name]"
          url: "#"
        - name: "[item.name]"
          url: "#"
---

Another accordion style, cloning the look of the search apps.  This one is a macro for handy re-use.

{% set editor_id = uuid() %}
```nunjucks_tab?editor-id={{editor_id}}
{% from "templates/common/list/chevron-accordion.nunj" import chevronAccordion %}
{{ chevronAccordion(accordions) }}
```

*/
.chevron-accordion {
  margin-left: 0; }
  .chevron-accordion .accordion-navigation > .chevron-accordion-heading,
  .chevron-accordion .accordion-navigation > .chevron-accordion-heading:hover,
  .chevron-accordion .accordion-navigation.active > .chevron-accordion-heading {
    font-size: 1.125rem;
    font-weight: 500;
    background: none;
    padding-left: 0;
    padding-right: 0; }
  .chevron-accordion .accordion-navigation > .chevron-accordion-content {
    padding: 0;
    margin-bottom: 0.9375rem; }
  .chevron-accordion .accordion-navigation .chevron-accordion-icon-toggle {
    transition-duration: 0.25s;
    fill: #4B4B4C;
    height: 1rem; }
  .chevron-accordion .accordion-navigation.active .chevron-accordion-icon-toggle {
    transform: rotate(180deg); }

/*doc
---
title: Article Table
name: a-table
category: Data Patterns - Tables
template:
  headers:
      - School Name (State)
      - Percent of Undergrads Graduating with Internship Experience
      - U.S. News Rank
  rows:
      -
        - <a href="#">Bennington College (VT)</a>
        - <span class="show-mobile-only text-muted">Percent of Undergrads Graduating with Internship Experience:</span> 100%
        - <strong>#89 (tie)</strong> in <a href="#" class="dotted show-for-medium-up">National Liberal Arts Colleges</a><span class="hide-for-medium-up">National Liberal Arts Colleges</span>
      -
        - <a href="#">Elmira College (NY)</a>
        - <span class="show-mobile-only text-muted">Percent of Undergrads Graduating with Internship Experience:</span> 100%
        - <strong>#9 (tie)</strong> in <a href="#" class="dotted show-for-medium-up">Regional Colleges (North)</a><span class="hide-for-medium-up">Regional Colleges (North)</span>
      - adHere
      -
        - <a href="#">Harrisburg University of Science and Technology (PA)</a>
        - <span class="show-mobile-only text-muted">Percent of Undergrads Graduating with Internship Experience:</span> 100%
        - <strong>RNP</strong> in <a href="#" class="dotted show-for-medium-up">National Liberal Arts Colleges</a><span class="hide-for-medium-up">National Liberal Arts Colleges</span>
---

You can create a table using minimal markup.  At mobile size, ads are sometimes inserted between rows.

```html_example?kitchen-sink=true

{% include "templates/common/table.nunj" %}

```

*/
/*doc
---
title: Alternate Displays
name: a-table-data
category: Data Patterns - Tables
template:
  extraClass: full-row
  headers:
      - Company
      - <div class="block-tighter">Price</div> <span class="left text-muted text-smaller">USD</span>
      - <div class="block-tighter">Returns</div> <span class="left text-muted text-smaller">1-year</span>
      - <div class="block-tighter">Returns</div> <span class="left text-muted text-smaller">5-year</span>
  rows:
      -
        - <div class="block-tighter"><a href="#">Microsoft Corp.</a></div> <span class="left text-muted text-smaller">MFST</span>
        - 102.32
        - <span class="stock-trend text-normal up">2.12</span>
        - <span class="stock-trend text-normal up">12.34</span>
      -
        - <div class="block-tighter"><a href="#">EMC Corp.</a></div> <span class="left text-muted text-smaller">EMC</span>
        - 23.45
        - <span class="stock-trend text-normal down">2.12</span>
        - <span class="stock-trend text-normal down">12.34</span>
      -
        - <div class="block-tighter"><a href="#">Lenovo Group</a></div> <span class="left text-muted text-smaller">LNVGP</span>
        - 62.12
        - <span class="stock-trend text-normal up">2.12</span>
        - <span class="stock-trend text-normal up">12.34</span>
      -
        - <div class="block-tighter"><a href="#">Quantum Corp.</a></div> <span class="left text-muted text-smaller">QTC</span>
        - 31.47
        - <span class="stock-trend text-normal up">2.12</span>
        - <span class="stock-trend text-normal up">12.34</span>
---

Sometimes we have tables without internal borders for a row.

```html_example

{% include "templates/common/table.nunj" %}

```

*/
/*doc
---
title: Unstyled Table
name: b-unstyled-table
category: Data Patterns - Tables
template:
  stock:
    Ask: 115.74
    AskDate: "11/12/2015"
    AskSize: 1100
    AskTime: "4:02:00 PM"
    Bid: 115.73
    BidDate: "11/12/2015"
    BidSize: 1100
    BidTime: "4:02:00 PM"
    ChangeFromPreviousClose: -0.39
    Close: 115.72
    Currency: "USD"
    Date: "11/12/2015"
    Delay: 0.0312257
    High: 116.82
    High52Weeks: 134.54
    Identity: "Request"
    Last: 115.72
    LastSize: 973885
    Low: 115.65
    Low52Weeks: 92
    Message: "Delay times are 15 mins for NASDAQ."
    Open: 116.26
    Outcome: "Success"
    PercentChangeFromPreviousClose: -0.336
    PreviousClose: 116.11
    PreviousCloseDate: "11/11/2015"
    Security: {CIK: "0000320193", CUSIP: null, Symbol: "AAPL", ISIN: null, Valoren: "908440", Name: "Apple Inc",…}
    Time: "4:00:00 PM"
    TradingHalted: false
    UTCOffset: -5
    Volume: 32525579
---

Here is a use case for a completely unstyled table

```html_example
{%include 'templates/pages/money/investing/common/_stock-overview-header.nunj' %}
```

*/
.table.unstyled {
  border-collapse: collapse;
  border: 0; }
  .table.unstyled td {
    border: 0;
    background: #fff;
    padding: 0; }

/*doc
---
title: Foundation Settings
name: b-usn-table-settings
category: Data Patterns - Tables
---

These are the default Foundation table variables we can edit from
`_.settings.scss`.

```sass_example

@ref-doc Tables

```
*/
@media only screen and (min-width: 40.0625em) {
  .show-mobile-only {
    display: none; } }

.table {
  border-collapse: collapse;
  width: 100vw;
  margin-left: -0.9375rem;
  margin-right: -0.9375rem; }
  @media only screen and (min-width: 40.0625em) {
    .table {
      width: 100%;
      margin-left: auto;
      margin-right: auto; }
      .table .hide-row-for-medium-up {
        display: none; }
      .table tr th {
        box-shadow: 1px 4px 5px 0 rgba(221, 221, 221, 0.7);
        border: 1px solid #DDDDDD; }
      .table td {
        border: 1px solid #DDDDDD; } }
  @media only screen and (min-width: 40.0625em) {
    .table td, .table th {
      padding: 1.25rem 1.25rem; } }
  @media only screen and (max-width: 40em) {
    .table:not(.no-collapse) {
      border: none; }
      .table:not(.no-collapse) thead {
        display: none; }
      .table:not(.no-collapse) td {
        background: #FFF; }
        .table:not(.no-collapse) td:last-child {
          padding-bottom: 1.1875rem; }
      .table:not(.no-collapse) tr {
        border-bottom: solid 1px #ebebeb;
        margin-top: 0.625rem; }
        .table:not(.no-collapse) tr:last-child {
          border-bottom: none; }
      .table:not(.no-collapse):not(.no-collapse-cols) td {
        display: block; }
      .table:not(.no-collapse):not(.no-collapse-cols) tr {
        display: block; }
      .table:not(.no-collapse) td.align-right {
        text-align: inherit; } }
  .table.no-collapse-margins {
    margin-left: auto;
    margin-right: auto;
    width: 100%; }
  .table.full-row tr {
    border: 1px solid #DDDDDD; }
  .table.full-row th, .table.full-row td {
    border: none; }
  .table.simple {
    border: none; }
    .table.simple tr {
      background: none;
      border-top: none;
      border-bottom: 1px solid #DDDDDD;
      border-left: none;
      border-right: none; }
    .table.simple th, .table.simple td {
      border: none;
      padding: 20px 0; }
    @media only screen and (max-width: 40em) {
      .table.simple th.header-col, .table.simple td.header-col {
        padding-bottom: 0; } }
  @media only screen and (max-width: 40em) {
    .table.simple-small {
      border-left: none;
      border-right: none; }
      .table.simple-small tr {
        border-left: none;
        border-right: none; } }
  @media only screen {
    .table.hide-borders-for-small tr, .table.hide-borders-for-small th, .table.hide-borders-for-small td {
      border: none !important; } }
  @media only screen and (max-width: 40em) {
    .table.hide-borders-for-small-only tr, .table.hide-borders-for-small-only th, .table.hide-borders-for-small-only td {
      border: none !important; } }
  @media only screen and (min-width: 40.0625em) {
    .table.hide-borders-for-medium tr, .table.hide-borders-for-medium th, .table.hide-borders-for-medium td {
      border: none !important; } }
  @media only screen and (min-width: 40.0625em) {
    .table.hide-borders-for-medium-up tr, .table.hide-borders-for-medium-up th, .table.hide-borders-for-medium-up td {
      border: none !important; } }
  @media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
    .table.hide-borders-for-medium-only tr, .table.hide-borders-for-medium-only th, .table.hide-borders-for-medium-only td {
      border: none !important; } }
  @media only screen and (min-width: 64em) {
    .table.hide-borders-for-large tr, .table.hide-borders-for-large th, .table.hide-borders-for-large td {
      border: none !important; } }
  @media only screen and (min-width: 64em) {
    .table.hide-borders-for-large-up tr, .table.hide-borders-for-large-up th, .table.hide-borders-for-large-up td {
      border: none !important; } }
  .table.row-pad-medium td {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem; }
  .table.not-intercalated tr:nth-of-type(even) {
    background: #fff; }
  .table td.align-right {
    text-align: right; }
  .table.width-auto {
    margin: 0;
    width: auto; }
  @media only screen and (min-width: 40.0625em) {
    .table.embedded tr {
      border: 1px solid #DDDDDD; }
    .table.embedded th, .table.embedded td {
      border: none; } }
  @media only screen and (max-width: 40em) {
    .table.embedded tr td:not(.item-rank) {
      padding-top: 0; }
    .table.embedded tr td:not(:last-child) {
      padding-bottom: 0; } }
  .table td.silver-gray {
    background: #e1e1e1; }

/*doc
---
title: Flex Table
name: c-flex-table
category: Data Patterns - Tables
---

This table is for one of our common table patterns, where a table behaves normally
for medium-up, but cells need to stack and/or share space nicely at the small breakpoint. Flexbox styling
gets applied at the small breakpoint to accomplish this. Apply `.flex-table` instead
of `.table` to the `table` element to use this style.

By default cells will share space evenly at the small breakpoint, but if you'd like
one or more cells to take the entire width, simply add `.full-width` to those `td` elements.

Try viewing the table below at the small breakpoint for an example.

```html_example?kitchen-sink=true
<table class="flex-table">
    <thead>
        <tr>
            <th>District</th>
            <th class="medium-text-right">College Readiness</th>
            <th class="medium-text-right">Mathematics Proficiency</th>
            <th class="medium-text-right">English Proficiency</th>
        </tr>
    </thead>

    <tbody>
        <tr>
            <td class="table-header-small text-large-for-small-only full-width">
                <div class="block-tight block-loose-for-small-only">
                    <a href="/education/best-high-schools/new-york/districts/addison-central-school-district-110778" class="text-large">
                        Addison Central School District
                    </a>
                </div>
                <div class="text-small text-muted hide-for-small-only">
                    1 school in district
                </div>
            </td>
            <td class="table-data-small left-for-small-only medium-text-right">
                <div class="text-smallest text-strong text-muted text-uppercase show-for-small-only" style="margin-top: 6px">College Readiness</div>
            </td>
            <td class="table-data-small left-for-small-only medium-text-right">
                67%
                <div class="text-smallest text-strong text-muted text-uppercase show-for-small-only" style="margin-top: 6px">Mathematics Proficiency</div>
            </td>
            <td class="table-data-small left-for-small-only medium-text-right">
                64%
                <div class="text-smallest text-strong text-muted text-uppercase show-for-small-only" style="margin-top: 6px">English Proficiency</div>
            </td>
        </tr>
        <tr>
            <td class="table-header-small text-large-for-small-only full-width">
                <div class="block-tight block-loose-for-small-only">
                    <a href="/education/best-high-schools/new-york/districts/adirondack-central-school-district-108767" class="text-large">
                        Adirondack Central School District
                    </a>
                </div>
                <div class="text-small text-muted hide-for-small-only">
                    1 school in district
                </div>
            </td>
            <td class="table-data-small left-for-small-only medium-text-right">
                    14.0
                <div class="text-smallest text-strong text-muted text-uppercase show-for-small-only" style="margin-top: 6px">College Readiness</div>
            </td>
            <td class="table-data-small left-for-small-only medium-text-right">
                78%
                <div class="text-smallest text-strong text-muted text-uppercase show-for-small-only" style="margin-top: 6px">Mathematics Proficiency</div>
            </td>
            <td class="table-data-small left-for-small-only medium-text-right">
                88%
                <div class="text-smallest text-strong text-muted text-uppercase show-for-small-only" style="margin-top: 6px">English Proficiency</div>
            </td>
        </tr>
        <tr>
            <td class="table-header-small text-large-for-small-only full-width">
                <div class="block-tight block-loose-for-small-only">
                    <a href="/education/best-high-schools/new-york/districts/afton-central-school-district-102888" class="text-large">
                        Afton Central School District
                    </a>
                </div>
                <div class="text-small text-muted hide-for-small-only">
                    1 school in district
                </div>
            </td>
            <td class="table-data-small left-for-small-only medium-text-right">

                <div class="text-smallest text-strong text-muted text-uppercase show-for-small-only" style="margin-top: 6px">College Readiness</div>
            </td>
            <td class="table-data-small left-for-small-only medium-text-right">
                76%
                <div class="text-smallest text-strong text-muted text-uppercase show-for-small-only" style="margin-top: 6px">Mathematics Proficiency</div>
            </td>
            <td class="table-data-small left-for-small-only medium-text-right">
                85%
                <div class="text-smallest text-strong text-muted text-uppercase show-for-small-only" style="margin-top: 6px">English Proficiency</div>
            </td>
        </tr>
    </tbody>
</table>
```
*/
table.jobs {
  border: none;
  border-collapse: collapse;
  width: 100%;
  table-layout: fixed; }
  table.jobs th, table.jobs td {
    padding: 0.5rem; }
  table.jobs td {
    font-size: 1rem;
    font-weight: 500; }
  table.jobs tr {
    border: none !important; }
    table.jobs tr:nth-of-type(even) {
      background: #fff; }
    table.jobs tr:nth-of-type(odd) {
      background: #f4f4f4; }

.flex-table {
  border-collapse: collapse;
  width: 100%;
  table-layout: fixed; }
  .flex-table th, .flex-table td {
    padding: 1.25rem 0.875rem; }
  @media only screen and (max-width: 40em) {
    .flex-table {
      border: none;
      margin-bottom: 0; } }
  @media only screen and (max-width: 40em) {
    .flex-table thead {
      display: none; } }
  .flex-table thead th {
    box-shadow: 1px 4px 5px 0 rgba(221, 221, 221, 0.7); }
  .flex-table tr {
    border-bottom: 1px solid #DDDDDD; }
    @media only screen and (max-width: 40em) {
      .flex-table tr {
        display: -webkit-box;
        display: -webkit-flex;
        display: -moz-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-flex-wrap: wrap;
        -moz-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        background: none !important;
        margin-bottom: 1.5rem;
        padding-bottom: 1.5rem; } }
    @media only screen and (min-width: 40.0625em) {
      .flex-table tr.odd, .flex-table tr:nth-of-type(even).odd {
        background: #fff; } }
    @media only screen and (min-width: 64em) {
      .flex-table tr.hide-row-for-large-up {
        display: none; } }
  @media only screen and (max-width: 40em) {
    .flex-table td {
      -webkit-box-flex: 1;
      -webkit-flex: 1;
      -moz-box-flex: 1;
      -moz-flex: 1;
      -ms-flex: 1;
      flex: 1;
      padding: 0;
      padding-right: 0.5rem; }
      .flex-table td.flex-table-cell-full-width {
        -webkit-box-flex: 1;
        -webkit-flex: 1 1 100%;
        -moz-box-flex: 1;
        -moz-flex: 1 1 100%;
        -ms-flex: 1 1 100%;
        flex: 1 1 100%;
        padding-right: 0; } }

/*doc
---
title: Panel Table
name: c-panel-table
category: Data Patterns - Tables
---

This makes the table in small look like stacked panels of alternating colors

```html_example?kitchen-sink=true
<table class="panel-table">
    <thead>
        <tr>
            <th>District</th>
            <th class="medium-text-right">College Readiness</th>
            <th class="medium-text-right">Mathematics Proficiency</th>
            <th class="medium-text-right">English Proficiency</th>
        </tr>
    </thead>

    <tbody>
        <tr>
            <td class="table-header-small text-large-for-small-only full-width">
                <div class="block-tight block-loose-for-small-only">
                    <a href="/education/best-high-schools/new-york/districts/addison-central-school-district-110778" class="text-large">
                        Addison Central School District
                    </a>
                </div>
                <div class="text-small text-muted hide-for-small-only">
                    1 school in district
                </div>
            </td>
            <td class="table-data-small left-for-small-only medium-text-right">
                <div class="text-smallest text-strong text-muted text-uppercase show-for-small-only" style="margin-top: 6px">College Readiness</div>
            </td>
            <td class="table-data-small left-for-small-only medium-text-right">
                67%
                <div class="text-smallest text-strong text-muted text-uppercase show-for-small-only" style="margin-top: 6px">Mathematics Proficiency</div>
            </td>
            <td class="table-data-small left-for-small-only medium-text-right">
                64%
                <div class="text-smallest text-strong text-muted text-uppercase show-for-small-only" style="margin-top: 6px">English Proficiency</div>
            </td>
        </tr>
        <tr>
            <td class="table-header-small text-large-for-small-only full-width">
                <div class="block-tight block-loose-for-small-only">
                    <a href="/education/best-high-schools/new-york/districts/adirondack-central-school-district-108767" class="text-large">
                        Adirondack Central School District
                    </a>
                </div>
                <div class="text-small text-muted hide-for-small-only">
                    1 school in district
                </div>
            </td>
            <td class="table-data-small left-for-small-only medium-text-right">
                    14.0
                <div class="text-smallest text-strong text-muted text-uppercase show-for-small-only" style="margin-top: 6px">College Readiness</div>
            </td>
            <td class="table-data-small left-for-small-only medium-text-right">
                78%
                <div class="text-smallest text-strong text-muted text-uppercase show-for-small-only" style="margin-top: 6px">Mathematics Proficiency</div>
            </td>
            <td class="table-data-small left-for-small-only medium-text-right">
                88%
                <div class="text-smallest text-strong text-muted text-uppercase show-for-small-only" style="margin-top: 6px">English Proficiency</div>
            </td>
        </tr>
        <tr>
            <td class="table-header-small text-large-for-small-only full-width">
                <div class="block-tight block-loose-for-small-only">
                    <a href="/education/best-high-schools/new-york/districts/afton-central-school-district-102888" class="text-large">
                        Afton Central School District
                    </a>
                </div>
                <div class="text-small text-muted hide-for-small-only">
                    1 school in district
                </div>
            </td>
            <td class="table-data-small left-for-small-only medium-text-right">

                <div class="text-smallest text-strong text-muted text-uppercase show-for-small-only" style="margin-top: 6px">College Readiness</div>
            </td>
            <td class="table-data-small left-for-small-only medium-text-right">
                76%
                <div class="text-smallest text-strong text-muted text-uppercase show-for-small-only" style="margin-top: 6px">Mathematics Proficiency</div>
            </td>
            <td class="table-data-small left-for-small-only medium-text-right">
                85%
                <div class="text-smallest text-strong text-muted text-uppercase show-for-small-only" style="margin-top: 6px">English Proficiency</div>
            </td>
        </tr>
    </tbody>
</table>
```
*/
.table.panel-table {
  border-collapse: collapse; }
  @media (max-width: 40em) {
    .table.panel-table {
      margin: 0;
      width: 100%;
      border: 0.0625rem solid #DDDDDD; } }
  .table.panel-table:not(.no-collapse) tr.even, .table.panel-table:not(.no-collapse) .even td {
    background-color: #F9F9F9; }
  .table.panel-table th, .table.panel-table td {
    border: none;
    font-size: 1rem;
    color: #333333; }
  @media only screen and (max-width: 40em) {
    .table.panel-table:not(.no-collapse) td {
      background: none; }
    .table.panel-table:not(.no-collapse) tr {
      margin-top: 0; }
    .table.panel-table {
      border: none; } }
  @media only screen and (min-width: 40.0625em) {
    .table.panel-table .table-column-width-md {
      width: 10%;
      max-width: 10%; }
    .table.panel-table .table-column-width-lg {
      width: 15%;
      max-width: 15%; } }

@media (max-width: 40em) {
  .table[data-js-id="procedure-volume"] tfoot {
    background-color: #fff; } }

.table[data-js-id="procedure-volume"] tfoot tr {
  border-top: 1px solid #ebebeb; }
  .table[data-js-id="procedure-volume"] tfoot tr:last-child {
    border-bottom: 1px solid #ebebeb !important; }
  .table[data-js-id="procedure-volume"] tfoot tr td {
    padding: 1rem !important; }

.table.stock.chart-page.holdings .column-2, .table.stock.chart-page.holdings .column-4 {
  display: none; }

.table.stock td {
  padding: 1rem 0.875rem 1rem;
  line-height: normal; }

@media (max-width: 40em) {
  .table.stock tbody tr {
    clear: left;
    border: 0; }
    .table.stock tbody tr + tr {
      border-top: 1px solid #DDDDDD; }
    .table.stock tbody tr .table-header-small {
      padding: 24px 0 0 12px; }
    .table.stock tbody tr td.table-data-small {
      width: 33.3333333%;
      padding: 12px 12px 24px; }
    .table.stock tbody tr td.table-data-small.first {
      padding-left: 0; }
    .table.stock tbody tr td.table-data-small.last {
      padding-right: 0; } }

.table.data td {
  padding: 1rem 0.875rem 1rem;
  line-height: normal; }

.table.data th:not(:first-child),
.table.data td:not(:first-child) {
  text-align: right; }

@media (max-width: 40em) {
  .table.data.collapsible tbody tr {
    clear: left;
    border: 0; }
    .table.data.collapsible tbody tr + tr {
      border-top: 1px solid #DDDDDD; }
    .table.data.collapsible tbody tr th,
    .table.data.collapsible tbody tr td {
      text-align: left; }
    .table.data.collapsible tbody tr td {
      padding: 12px 12px 24px; }
    .table.data.collapsible tbody tr td:nth-child(2):nth-last-child(3),
    .table.data.collapsible tbody tr td:nth-child(2):nth-last-child(3) + td,
    .table.data.collapsible tbody tr td:nth-child(2):nth-last-child(3) + td + td {
      float: left;
      width: 33.3333%; }
    .table.data.collapsible tbody tr td:first-child {
      padding: 24px 0 0 0; }
    .table.data.collapsible tbody tr:first-child td:first-child {
      padding-top: 0; }
    .table.data.collapsible tbody tr td:nth-child(2) {
      padding-left: 0; }
    .table.data.collapsible tbody tr td:last-child {
      padding-right: 0; } }

.bar-chart-table .table tr {
  border-bottom: 1px solid #ddd; }

.bar-chart-table .table thead {
  background: none; }
  .bar-chart-table .table thead tr, .bar-chart-table .table thead th {
    box-shadow: none;
    padding: 0; }
  .bar-chart-table .table thead th {
    border: none;
    padding-bottom: 15px;
    font-weight: 400; }

.bar-chart-table .table tfoot tr {
  border-bottom: none; }

.bar-chart-table .table tfoot td {
  padding-top: 5px; }

.bar-chart-table .table .bar-chart-table-label {
  width: 180px; }

.bar-chart-table .table .bar-chart-table-pct > div,
.bar-chart-table .table .bar-chart-table-label > div {
  padding: 11px 0; }

.bar-chart-table .table .bar-chart-table-pct {
  width: 100px;
  padding-right: 30px;
  text-align: right; }
  .bar-chart-table .table .bar-chart-table-pct > div {
    justify-content: flex-end; }

.bar-chart-table .table .bar-chart-table-chart-area {
  overflow: hidden;
  position: relative;
  user-select: none;
  width: 100%; }

.bar-chart-table .table .bar-chart-table-arrow {
  height: 10px;
  position: absolute;
  top: 0;
  width: 20px; }

.bar-chart-table .table .bar-chart-table-bar {
  background: #2c7ef0;
  height: 58px; }

.bar-chart-table .table .bar-chart-table-overlay-pct {
  left: 10px;
  margin-top: -10px;
  position: absolute;
  top: 50%; }

.bar-chart-table .table .bar-chart-table-row {
  border-right: 1px solid #ddd; }

.bar-chart-table .legend-square {
  background: #2c7ef0; }

.bar-chart-table .legend-group .legend-triangle {
  top: 8px;
  width: 16px; }

.bar-chart-table .legend-triangle,
.bar-chart-table .bar-chart-table-arrow svg {
  fill: #ffc14e;
  height: 100%;
  position: absolute;
  top: 0;
  width: 100%; }

table.table.hospitals > thead {
  background: none; }
  table.table.hospitals > thead > tr {
    border-color: #999999; }

table.table.hospitals > tbody .scorecard-link {
  opacity: 0; }
  @media (max-width: 40em) {
    table.table.hospitals > tbody .scorecard-link {
      display: none; } }

table.table.hospitals > tbody > tr {
  cursor: pointer; }
  table.table.hospitals > tbody > tr td:first-child {
    padding-right: 2rem;
    width: 40%; }
  table.table.hospitals > tbody > tr td:last-child {
    text-align: right; }
  table.table.hospitals > tbody > tr:last-child {
    border-bottom: none; }
  table.table.hospitals > tbody > tr:hover .scorecard-link {
    color: #2c7ef0;
    opacity: 1;
    transition: opacity .25s ease-in;
    -moz-transition: opacity .25s ease-in;
    -webkit-transition: opacity .25s ease-in; }
  table.table.hospitals > tbody > tr:hover span {
    color: #999; }

@media (max-width: 25.8125em) {
  table.table.hospitals > tbody > tr td {
    max-width: 75px; }
    table.table.hospitals > tbody > tr td .text-large, table.table.hospitals > tbody > tr td div.stock-change .stock-change-list li, div.stock-change .stock-change-list table.table.hospitals > tbody > tr td li {
      font-size: 1rem !important; }
    table.table.hospitals > tbody > tr td:first-child {
      max-width: 130px;
      padding-right: 1rem; } }

/*doc
---
title: Sticky-column Table
name: d-sticky-column-table
category: Data Patterns - Tables
---

This will set the first column of a table and make it stick.

Rows beyond the first three will collapse unless there are exactly four.

{% set editor_id = uuid() %}

```nunjucks_tab?editor-id={{editor_id}}
{% set tableBody %}
    <table class="table unstyled legend-table full-width no-collapse-cols collapse-rows">
        <tbody>
            <tr>
                {% for i in range(10) %}
                <td>Header</td>
                {% endfor %}
            </tr>
            {% for i in range(10) %}
            <tr>
                {% for i in range(10) %}
                <td>Row Data</td>
                {% endfor %}
            </tr>
            {% endfor %}
            <tr data-sticky-table="show-more">
                <td class="silver-gray">
                    <a data-sticky-table="when-collapsed">Show More</a>
                    <a data-sticky-table="when-expanded">Show Fewer</a>
                </td>
                {% for i in range(9) %}
                <td class="silver-gray"></td>
                {% endfor %}
            </tr>
        </tbody>
    </table>
{% endset %}

{% macro stickyTable(tableHtml, collapseRows) %}
    {% include "templates/common/utils/sticky-table.nunj"  %}
{% endmacro %}
{{ stickyTable(tableBody, true) }}
```
*/
.sticky-table {
  position: relative; }
  .sticky-table.active > *:first-child th:first-child::after,
  .sticky-table.active > *:first-child td:first-child::after {
    background: linear-gradient(to right, rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0.25) 20%, transparent);
    content: "";
    display: block;
    height: 100%;
    left: 100%;
    position: absolute;
    top: 0;
    width: 6px; }
  .sticky-table.active > *:last-child {
    overflow-x: scroll;
    -webkit-overflow-scrolling: touch; }
  .sticky-table.active th:first-child,
  .sticky-table.active td:first-child {
    max-width: 150px; }
  .sticky-table.active th:nth-child(2),
  .sticky-table.active td:nth-child(2) {
    padding-left: 10px; }
  .sticky-table table {
    border-collapse: collapse;
    margin: 0; }
    .sticky-table table tr, .sticky-table table td {
      background: none; }
  .sticky-table > *:first-child {
    position: absolute;
    width: 100%;
    z-index: 1; }
    .sticky-table > *:first-child table {
      background: none; }
    .sticky-table > *:first-child th:first-child,
    .sticky-table > *:first-child td:first-child {
      background-clip: padding-box;
      position: relative; }
    .sticky-table > *:first-child th:not(:first-child),
    .sticky-table > *:first-child td:not(:first-child) {
      visibility: hidden; }
  .sticky-table > *:last-child th:first-child,
  .sticky-table > *:last-child td:first-child {
    visibility: hidden; }
  @media only screen and (min-width: 40.0625em) {
    .sticky-table.collapse-rows [data-sticky-table="show-more"] {
      display: none; } }
  @media only screen and (max-width: 40em) {
    .sticky-table.collapse-rows:not(.expanded) thead + tbody tr:nth-child(3) ~ tr:not([data-sticky-table="show-more"]),
    .sticky-table.collapse-rows:not(.expanded) tbody tr:nth-child(4) ~ tr:not([data-sticky-table="show-more"]) {
      display: none; }
    .sticky-table.collapse-rows:not(.expanded) thead + tbody tr:nth-child(1):nth-last-child(5) + tr + tr + tr,
    .sticky-table.collapse-rows:not(.expanded) tbody tr:nth-child(1):nth-last-child(6) + tr + tr + tr + tr {
      display: table-row; }
    .sticky-table.collapse-rows:not(.expanded) thead + tbody tr:nth-child(-1n+4) + [data-sticky-table="show-more"],
    .sticky-table.collapse-rows:not(.expanded) tbody tr:nth-child(-1n+5) + [data-sticky-table="show-more"] {
      display: none; }
    .sticky-table.collapse-rows:not(.expanded) [data-sticky-table="when-expanded"] {
      display: none; }
    .sticky-table.collapse-rows.expanded [data-sticky-table="when-collapsed"] {
      display: none; } }

.table-529s .mobile-controls *[data-sort-column] {
  color: #2c7ef0; }
  .table-529s .mobile-controls *[data-sort-column].active {
    color: #000000; }

.table-529s .table *[data-sort-column] {
  position: relative; }
  .table-529s .table *[data-sort-column]:before {
    content: ' ';
    width: 0;
    height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-bottom: 5px solid #ccc;
    position: absolute;
    bottom: 6px;
    right: 35px; }
  .table-529s .table *[data-sort-column].active:before {
    border-bottom: 5px solid black; }
  .table-529s .table *[data-sort-column][data-sortable="desc"]:before {
    border-bottom: none;
    border-top: 5px solid #ccc; }
  .table-529s .table *[data-sort-column][data-sortable="desc"].active:before {
    border-bottom: none;
    border-top: 5px solid black; }

.table-529s .table {
  width: 100%; }
  @media only screen and (min-width: 40.0625em) {
    .table-529s .table tr td.align-right,
    .table-529s .table th td.align-right {
      text-align: right; }
    .table-529s .table th {
      position: relative; } }
  @media only screen and (max-width: 40em) {
    .table-529s .table tbody {
      display: block; }
      .table-529s .table tbody tr {
        margin: 0; }
        .table-529s .table tbody tr td {
          display: block;
          background: inherit; }
          .table-529s .table tbody tr td .table-value {
            display: table-cell; } }
        @media only screen and (max-width: 40em) and (max-width: 40em) {
          .table-529s .table tbody tr td .table-value {
            padding-left: 10px; } }

.hide-after-1:not(.show-all) > *:nth-child(1) ~ * {
  display: none; }

.hide-after-2:not(.show-all) > *:nth-child(2) ~ * {
  display: none; }

.hide-after-3:not(.show-all) > *:nth-child(3) ~ * {
  display: none; }

.hide-after-4:not(.show-all) > *:nth-child(4) ~ * {
  display: none; }

.hide-after-5:not(.show-all) > *:nth-child(5) ~ * {
  display: none; }

.hide-after-6:not(.show-all) > *:nth-child(6) ~ * {
  display: none; }

.hide-after-7:not(.show-all) > *:nth-child(7) ~ * {
  display: none; }

.hide-after-8:not(.show-all) > *:nth-child(8) ~ * {
  display: none; }

.hide-after-9:not(.show-all) > *:nth-child(9) ~ * {
  display: none; }

.hide-after-10:not(.show-all) > *:nth-child(10) ~ * {
  display: none; }

/*doc
---
title: Media Object
name: a-media-object
category: Media Objects - Generic Media Object
selectors:
    - .media
---

Abstract object styles for building various types of components (like blog
comments, Tweets, etc)  that feature a left- or right-aligned image alongside
textual content. *This component is not part of Foundation.*

You can put a `.loose` modifier on the `.left` or `.right` classes to double the 
default padding

```html_example?kitchen-sink=true
<ul class="media-list">
  <li class="media">
    <a class="left" href="#">
      <img class="media-object" src="http://placehold.it/64x64" alt="...">
    </a>
    <div class="media-body">
      <h4 class="media-heading">Media heading</h4>
      Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quis sint.
    </div>
  </li>
  <!--Nested Media element-->
  <li class="media">
    <a class="left" href="#">
      <img class="media-object" src="http://placehold.it/64x64" alt="...">
    </a>
    <div class="media-body">
      <h4 class="media-heading">Media heading</h4>
      Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quis sint.
      <div class="media">
        <a class="left" href="#">
          <img class="media-object" src="http://placehold.it/64x64" alt="...">
        </a>
        <div class="media-body">
          <h4 class="media-heading">Media heading</h4>
          Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quis sint.
          <div class="media">
            <a class="left" href="#">
              <img class="media-object" src="http://placehold.it/64x64" alt="...">
            </a>
            <div class="media-body">
              <h4 class="media-heading">Media heading</h4>
              Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quis sint.
            </div>
          </div>
        </div>
      </div>
    </div>  
  </li>        
</ul> 
```
*/
.media,
.media-body {
  overflow: hidden;
  zoom: 1; }

.media,
.media .media {
  margin-top: 0.9375rem; }

.media:first-child {
  margin-top: 0; }

.media-object {
  display: block; }

.media-heading {
  margin-bottom: 0.3125rem; }

.media > .left {
  margin-right: 0.75rem; }

.media > .left.loose {
  margin-right: 1.5rem; }

.media > .right {
  margin-left: 0.75rem; }

.media > .right.loose {
  margin-left: 1.5rem; }

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

/*doc
---
title: Media Object Stacked
name: b-media-object-stacked
category: Media Objects - Media Object Stacked
selectors:
    - .media-stacked
---

Extended by USN for stacking, with centering in medium context

```html_example?kitchen-sink=true
<ul class="media-stacked no-bullet">
  <li class="media">
    <a class="left" href="#">
      <img class="media-object" src="http://placehold.it/250x250" alt="...">
    </a>
    <div class="media-body">
      <h4 class="media-heading">Media heading</h4>
      Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quis sint.
    </div>
  </li>       
</ul>
```
*/
@media only screen and (max-width: 40em) {
  .media-stacked .media-object {
    width: 3.125rem;
    height: 3.125rem; } }

@media only screen and (min-width: 40.0625em) {
  .media-stacked .media-object {
    margin: 0 auto; }
  .media-stacked .left {
    float: none !important;
    margin: 0; }
  .media-stacked .right {
    float: none !important;
    margin: 0; } }

/*doc
---
title: Basic Media Object
name: a-basic-media-object
category: Media Objects - Flex Media Object
template:
    data:
        -
            heading: Basic Media Object
            url: http://www.usnews.com
            figure: http://placehold.it/90x90
            blurb: Very basic media object text here
        -
            heading: Basic Media Object 2
            url: http://www.usnews.com
            figure: http://placehold.it/90x90
            blurb: Second very basic media object text here
---

We broadly define a *media object* as a component with an image and some
associated text. We have a flexible nunjucks macro call to create pretty much
any media object layout we'd want. 

```html_example
<div class="flex-row">
    <div class="flex-small-12 flex-large-8">

        <!-- START, ignore above -->
        {% import "templates/common/media-object/builder.nunj" as example %}

        {% for item in data %}
            {% call example.mediaObjectBuilder
                (
                    heading=item.heading,
                    url=item.url, 
                    figure=item.figure, 
                    blurb=item.blurb
                )
            %}
            {% endcall %}
        {% endfor %}
        <!-- END -->

    </div>
</div>
```

## How To

***ALL*** of the media queries on this page are built by: 

1. importing **templates/common/media-object/builder.nunj**
2. looping through an array of data
3. [calling](https://mozilla.github.io/nunjucks/templating.html#call)
the `mediaObjectBuilder` macro.

The macro can recieve optional data parameters optional styling or layout
parameters. 

### Example Data

<pre>
data:
    -
        heading: Basic Media Object
        url: http://www.usnews.com
        figure: http://placehold.it/90x90
        blurb: Very basic media object text here
    -
        heading: Basic Media Object 2
        url: http://www.usnews.com
        figure: http://placehold.it/90x90
        blurb: Second very basic media object text here
</pre>

### Code for simple media object (simple blurb)

{% raw %}
```html_render?show-code=true
{% import "templates/common/media-object/builder.nunj" as example %}

{% for item in data %}
    {% call example.mediaObjectBuilder
        (
            heading=item.heading,
            url=item.url, 
            figure=item.figure, 
            blurb=item.blurb
        )
    %}
    {% endcall %}
{% endfor %}
```
{% endraw %}

By passing in the following variables you can create the
simple media object above.


| parameter         | purpose                                        |
|-------------------|------------------------------------------------|
| `item.heading`    | Heading text                                   |
| `item.url`        | url for heading                                |
| `item.figure`     | src url for image                              |
| `item.blurb`      | url for blurb (simple paragraph)               |


The advantage of the `call` block is that any content inside the
block can be rendered by the macro using the `caller()` method.

*This is very handy to for rendering custom text content instead of the default
blurb.* Check out this next example:

### Code for custom media object

This media object is a bit more complex. Instead of a simple blurb
of unstyled paragraph text, it can be anything you want. It also receives
a bunch of optional parameters to make the thing look exactly like you 
want.

{% raw %}
```html_render?show-code=true
{% import "templates/common/media-object/builder.nunj" as example %}

{% for item in basic %}
    {% call example.mediaObjectBuilder
        (
            heading=item.heading,
            url=item.url, 
            figure=item.figure,
            spacingBetween='block-normal block-loose-for-medium-up',
            borderBetween=true,
            containerClasses='small-middle medium-top',
            headingClasses='block-flush block-normal-for-medium-up heading-normal heading-large-for-medium-up'
        )
    %}
        <div class="show-for-medium-up">
            <p>
                <a class="text-muted" href="" alt="Paige O. Author">Paige O. Author</a>
                |
                April 23, 2015
            </p>
            <p class="block-flush">{{item.blurb}}</p>
        </div>
    {% endcall %}
{% endfor %}
```
{% endraw %}

Speaking of optional [keyword parameters](https://mozilla.github.io/nunjucks/templating.html#keyword-arguments), here they are:

| parameter           | default            | purpose                                                                                                                                  |
|---------------------|--------------------|------------------------------------------------------------------------------------------------------------------------------------------|
| heading             | `''`               | Content for the media object heading *(has safe filter to accept html as data)*                                                          |
| subheading          | `''`               | Content for a subheading to go along with heading                                                                                        |
| mediaLabel          | `''`               | Content for label above a media object                                                                                                   |
| url                 | `''`               | Url for image and heading                                                                                                                |
| figure              | `''`               | String or Object - pathtoimage (if single img) or {default: pathtoimage, medium: pathtoimage, large: pathtoimage} (if using Interchange) |
| blurb               | `''`               | Content for single paragraph of text *(has safe filter to accept html as data)*                                                          |
| containerClasses    | `''`               | Populates class attribute on `.flex-media` parent div                                                                                    |
| figureWidth         | `'auto'`           | Populates `style="width: {{figureWidth}}                                                                                                 |
| figureHeight        | `'auto'`           | Populates `style="width: {{figureHeight}}                                                                                                |
| figureOffset        | `'normal'`         | `tight, normal, loose, looser or loosest` class applied for spacing between image and content                                            |
| figureClasses       | `''`               | Populates class attribute on `.flex-media-figure`                                                                                        |
| imgClasses          | `''`               | Populates class attribute on img tag `.flex-media-figure a img`                                                                          |
| headingClasses      | `''`               | Populates class attribute on `.flex-media-heading`                                                                                       |
| subheadingClasses   | `''`               | Populates class attribute on `.flex-media-heading small`                                                                                 |
| mediaLabelClasses   | `'text-uppercase'` | Populates class attribute on mediaLable or flushLabel if present                                                                         |
| blurbClasses        | `'text-normal'`    | Populates class attribute on `.flex-media-blurb`                                                                                         |
| spacingBetween      | `'block-normal'`   | Adds `block-*` class on `.flex-media` for controlling space between media object lists                                                   |
| borderBetween       | `false`            | If `true`, it will add a border AND it will also automatically add necessary `pad-*` class                                               |
| reverse             | `false`            | If `true`, it will put the media object image on the right instead                                                                       |
| flushLabel          | `false`            | If `true`, it will put the media object image on the right instead                                                                       |

<br>

*/
/*doc
---
title: Responsive Media Object
name: b-flex-media-object-responsive
category: Media Objects - Flex Media Object
template:
    basic:
        -
            heading: How to Make New Friends in Retirement
            url: http://www.usnews.com
            figure: 
                default: http://placehold.it/84x84
                medium: http://placehold.it/298x198
            blurb: Try these strategies to meet retirees with similar interests or you might end up killing yourself.
        -
            heading: How to Lose Your Job
            url: http://www.usnews.com
            figure: 
                default: http://placehold.it/84x84
                medium: http://placehold.it/298x198
            blurb: Try these strategies to get fired immediately.
---

Basic responsive media object that uses interchange for the image.
It has a smaller heading and no blurb in `small` ➟ larger heading *with* custom content
for `medium-up`.

This introduces a good use case for Nunjucks `call` block that enables you to call
a macro with all the text inside the tag. It is helpful if you want to pass in
a lot of content into a macro.

```html_example
<div class="flex-row">
    <div class="flex-small-12 flex-large-8">

        <!-- START, ignore above -->
        {% import "templates/common/media-object/builder.nunj" as example %}

        {% for item in basic %}
            {% call example.mediaObjectBuilder
                (
                    heading=item.heading,
                    url=item.url, 
                    figure=item.figure,
                    spacingBetween='block-normal block-loose-for-medium-up',
                    borderBetween=true,
                    containerClasses='small-middle medium-top',
                    headingClasses='block-flush block-normal-for-medium-up heading-normal heading-large-for-medium-up'
                )
            %}
                <div class="show-for-medium-up">
                    <p>
                        <a class="text-muted" href="" alt="Paige O. Author">Paige O. Author</a>
                        |
                        April 23, 2015
                    </p>
                    <p class="block-flush">{{item.blurb}}</p>
                </div>
            {% endcall %}
        {% endfor %}
        <!-- END -->

    </div>
</div>
```
*/
/*doc
---
title: Simple Media Object Examples
name: d-flex-media-object-simple-examples
category: Media Objects - Flex Media Object
template:
    headlines:
        -
            heading: Essential Branding and Networking Tips for College Seniors
            url: http://www.usnews.com
            figure: http://placehold.it/84x84
        -
            heading: What Recruiters Think When They See Your LinkedIn Profile
            url: http://www.usnews.com
            figure: http://placehold.it/84x84
    square:
        -
            heading: Application Process
            url: http://www.usnews.com
            figure: http://placehold.it/84x84
            blurb: Map out deadlines early to help stay on track.
        -
            heading: Test Prep
            url: http://www.usnews.com
            figure: http://placehold.it/84x84
            blurb: Study tips for AP exams, SATs and ACTs.
    round:
        -
            heading: Undergraduate
            url: http://www.usnews.com
            figure: /static/img/circle-undergrad-icon.svg
            blurb: Rankings for national, liberal, and regional universities
        -
            heading: Graduate School
            url: http://www.usnews.com
            figure: /static/img/circle-grad-icon.svg
            blurb: Broken down by rankings for 6 popular programs.
---

Simple media objects

``` html_example
<div class="flex-row">
    
    <div class="flex-small-12 flex-medium-6 flex-large-4 block-looser block-flush-for-large-up">
        
        <!-- START, ignore above -->
        <h3 class="heading-large block-loose">Most Popular</h3>
        {% import "templates/common/media-object/builder.nunj" as example %}

        {% for item in headlines %}
            {% call example.mediaObjectBuilder
                (
                    heading=item.heading,
                    url=item.url, 
                    figure=item.figure, 
                    headingClasses='heading-small heading-normal block-flush',
                    containerClasses='small-middle'
                )
            %}
            {% endcall %}
        {% endfor %}
        <!-- END -->

    </div>

    <div class="flex-small-12 flex-medium-6 flex-large-4 block-looser block-flush-for-large-up">
        
        <!-- START, ignore above -->
        <h3 class="heading-large block-loose">Best Colleges Rankings</h3>
        {% import "templates/common/media-object/builder.nunj" as example %}

        {% for item in square %}
            {% call example.mediaObjectBuilder
                (
                    heading=item.heading,
                    url=item.url, 
                    figure=item.figure, 
                    blurb=item.blurb,
                    blurbClasses='block-flush',
                    borderBetween=true,
                    figureWidth='84px',
                    headingClasses='heading-normal block-tight'
                )
            %}
            {% endcall %}
        {% endfor %}
        <!-- END -->

    </div>
    <div class="flex-small-12 flex-large-4 block-looser block-flush-for-medium-up">
        
        <!-- START, ignore above -->
        <h3 class="heading-large block-loose">Applying to College</h3>
        {% import "templates/common/media-object/builder.nunj" as example %}

        {% for item in round %}
            {% call example.mediaObjectBuilder
                (
                    heading=item.heading,
                    url=item.url, 
                    figure=item.figure, 
                    blurb=item.blurb,
                    figureWidth='55px',
                    figureOffset='looser',
                    headingClasses='heading-normal',
                    spacingBetween='block-tight'
                )
            %}
            {% endcall %}
        {% endfor %}
        <!-- END -->

    </div>
</div>

```

*/
/*doc
---
title: Nested Responsive Media Object
name: c-flex-media-object-nested
category: Media Objects - Flex Media Object
template:
    outer:
        -
            heading: Application Process
            url: http://www.usnews.com
            figure: http://placehold.it/314x209
            blurb: Rising seniors should map out deadlines early to help them stay on track.
            inner:
                - 
                    heading: "College Quiz: Do You Understand the Application Process?"
                    url: http://www.usnews.com
                    figure: http://placehold.it/90x90/
                - 
                    heading: "College Quiz: Do You Understand the Application Process?"
                    url: http://www.usnews.com
                    figure: http://placehold.it/90x90/
        -
            heading: Test Prep
            url: http://www.usnews.com
            figure: http://placehold.it/314x209
            blurb: Rising seniors should map out deadlines early to help them stay on track.
            inner:
                - 
                    heading: "College Quiz: Do You Understand the Application Process?"
                    url: http://www.usnews.com
                    figure: http://placehold.it/90x90/
                - 
                    heading: "College Quiz: Do You Understand the Application Process?"
                    url: http://www.usnews.com
                    figure: http://placehold.it/90x90/
---

A nested responsive example.

```html_example
<div class="flex-row">
    <div class="flex-small-12 flex-large-8">

        <!-- START, ignore above -->
        {% import "templates/common/media-object/builder.nunj" as example %}

        {% for item in outer %}
            {% call example.mediaObjectBuilder
                (
                    heading=item.heading,
                    url=item.url, 
                    figure=item.figure, 
                    blurb=item.blurb,
                    borderBetween=true,
                    spacingBetween='block-loose',
                    figureClasses='looser hide-for-small-only',
                    headingClasses='heading-large block-tight'

                )
            %}
                {% for item in item.inner %}
                    {% call example.mediaObjectBuilder
                        (
                            heading=item.heading,
                            url=item.url, 
                            figure=item.figure,
                            containerClasses='small-middle',
                            spacingBetween='block-normal',
                            headingClasses='heading-small-for-medium-up block-flush',
                            figureClasses='hide-for-medium-up'
                        )
                    %}
                   
                    {% endcall %}
                {% endfor %}
            {% endcall %}
        {% endfor %}
        <!-- END -->

    </div>
</div>
```
*/
/*doc
---
title: Custom Content Examples
name: e-flex-media-object-custom-examples
category: Media Objects - Flex Media Object
template:
    salary:
        -
            heading: Holland, Michigan
            figure: /static/img/temp-images/profile-salary-holland.png
            avgSalary: Greater than $250,000
        -
            heading: Jacksonville, North Carolina
            figure: /static/img/temp-images/profile-salary-jacksonville.png
            avgSalary: Greater than $250,000
    jobs:
        -
            heading: Dental Hygienist
            url: http://www.usnews.com
            figure: http://placehold.it/90x90
            salary: $35,640
            rank: "#4"
            field: Best Health Care Jobs
        -
            heading: Dental Assistant
            url: http://www.usnews.com
            figure: http://placehold.it/90x90
            salary: $35,640
            rank: "#30"
            field: Best Health Care Jobs
    hospitals:
        -
            heading: Rockefeller University Hospital
            url: http://www.usnews.com
            figure: http://placehold.it/90x90
            distance: 0 mi away
            address: 1230 York Avenue
        -
            heading: New York-Presbyterian University Hospital of Columbia and Cornell
            url: http://www.usnews.com
            figure: http://placehold.it/90x90
            distance: 0.4 mi away
            address: 525 East 68th Street
    doctors:
        -
            heading: Dr. Evelyn Horn
            subheading: MD
            url: http://www.usnews.com
            figure: http://placehold.it/90x90
            specialty: Cardiovascular Disease
            subSpecialty: Heart Failure & Transplantation
        -
            heading: Dr. Jose Aleman
            subheading: MD
            url: http://www.usnews.com
            figure: http://placehold.it/90x90
            specialty: Endocrinology, Diabetes & Metabolism
            subSpecialty: Obesity, Diabetes
    colleges:
        -
            heading: Williams College (MA)
            url: http://www.usnews.com
            figure: 
                medium: http://www.usnews.com/img/college-photo_13333.jpg
            internshipExperience: 100%
            rank: "#1"
        -
            heading: Amherst College (MA)
            url: http://www.usnews.com
            figure: 
                medium: http://www.usnews.com/img/college-photo_16085.jpg
            internshipExperience: 99%
            rank: "#2"
    recommended:
        -
            mediaLabel: Recommended Articles
            headline: Why Getting a Second Opinion Matters
            permalink: http://health-sand18.usnews.com/health-news/patient-advice/articles/2015/11/04/why-getting-a-second-opinion-matters
            image: 
                default: http://www.usnews.com/cmsmedia/24/99/39d0766a48608045c7e89244b31c/140515-teendoctor-stock.jpg
            deck: Patients can be their own advocate and find the most appropriate physician for their suspected disease.
---

Simple media objects

``` html_example
<div class="flex-row">
    
    <div class="flex-small-12 flex-large-4 block-looser block-flush-for-large-up">
        
        <!-- START, ignore above -->
        <h3 class="heading-large block-loose">Doctors at this Hospital</h3>
        {% import "templates/common/media-object/builder.nunj" as example %}
        
        {% for item in doctors %}
            {% call example.mediaObjectBuilder
                (
                    heading=item.heading,
                    subheading=item.subheading,
                    url=item.url, 
                    figure=item.figure, 
                    headingClasses='heading-normal',
                    figureClasses='round'
                )
            %}
            <p class="block-flush">
                <strong>{{item.specialty}}</strong>
            </p>
            <p class="text-small">{{item.subSpecialty}}</p>
            {% endcall %}
        {% endfor %}
        <!-- END -->

    </div>

    <div class="flex-small-12 flex-large-4 block-looser block-flush-for-large-up">
        
        <!-- START, ignore above -->
        <h3 class="heading-large block-loose">Nearby Hospitals</h3>
        {% import "templates/common/media-object/builder.nunj" as example %}

        {% for item in hospitals %}
            {% call example.mediaObjectBuilder
                (
                    heading=item.heading,
                    url=item.url, 
                    figure=item.figure, 
                    headingClasses='heading-normal',
                    figureClasses='round'
                )
            %}
            <p class="">
                <span class="text-muted">({{item.distance}})</span>
                {{item.address}}
            </p>
            {% endcall %}
        {% endfor %}
        <!-- END -->

    </div>

    <div class="flex-small-12 flex-large-4 block-looser block-flush-for-large-up">
        
        <!-- START, ignore above -->
        <h3 class="heading-large block-loose">Similar Jobs</h3>
        {% import "templates/common/media-object/builder.nunj" as example %}

        {% for item in jobs %}
            {% call example.mediaObjectBuilder
                (
                    heading=item.heading,
                    url=item.url, 
                    figure=item.figure, 
                    spacingBetween='block-loose',
                    headingClasses='heading-normal',
                    figureClasses='round'
                )
            %}
            <p class="block-flush">
                <span class="text-muted">Median Salary</span>
                {{item.salary}}
            </p>
            <div class="flex-media block-normal">
                <div class="flex-media-figure tight">
                    <strong>{{item.rank}}</strong> in
                </div>
                <div class="flex-media-content">
                    <a class="dotted" href="">{{item.field}}</a>    
                </div>
            </div>
            {% endcall %}
        {% endfor %}
        <!-- END -->

    </div>

</div>
<div class="flex-row">
    <div class="flex-small-12 flex-large-8 block-looser block-flush-for-medium-up">
        
        <!-- START, ignore above -->
        <h2 class="heading-larger">Best Paying Cities for Dentists</h2>
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut similique consectetur neque, hic laborum aut labore, sed rerum, consequatur eligendi cumque, reiciendis tempore. Nam nobis magnam expedita libero, quidem quam.</p>
        {% import "templates/common/media-object/builder.nunj" as example %}

        {% for item in salary %}
            {% call example.mediaObjectBuilder
                (
                    heading=item.heading,
                    figure=item.figure,
                    headingClasses='heading-large-for-medium-up block-tighter',
                    figureClasses='round loose'
                )
            %}
            <p class="text-small text-normal-for-medium-up block-tightest block-tight-for-medium-up">
                Average Salary: {{item.avgSalary}}
            </p>
            <p class="text-small text-normal-for-medium-up">
                <a href="#">See Job Openings</a>
            </p>
            {% endcall %}
        {% endfor %}
        <!-- END -->

    </div>
</div>
<div class="flex-row">
    <div class="flex-small-12 flex-large-8 block-looser">
        <hr>
        {% import "templates/common/media-object/builder.nunj" as rec%}

        {% for item in recommended %}
            {% call rec.mediaObjectBuilder
                (
                    mediaLabel=item.mediaLabel,
                    heading=item.headline,
                    url=item.permalink,
                    figure=item.image,
                    figureWidth='230px',
                    blurb=item.deck,
                    headingClasses='heading-normal heading-light',
                    reverse=true
                )
            %}
            {% endcall %}
        {% endfor %}
        <hr>
    </div>
</div>
```

Simple media object that just doesn't have an image for `small`.

``` html_example
<div class="flex-row">
    <div class="flex-small-12 flex-large-8">

        <!-- START, ignore above -->
        {% import "templates/common/media-object/builder.nunj" as example %}

        {% for item in colleges %}
            {% call example.mediaObjectBuilder
                (
                    heading=item.heading,
                    subheading=item.subheading, 
                    url=item.url, 
                    figure=item.figure,
                    spacingBetween='block-loose',
                    headingClasses='block-tighter',
                    figureWidth='235px',
                    figureOffset='loose', 
                    figureClasses='show-for-medium-up display-block-for-medium-up',
                    borderBetween=true
                )
            %}
                <p>
                    <span class="text-muted">Percent of undergrads graduating with internship experience:</span> 
                    {{item.internshipExperience}}
                </p>

                <p><strong>{{item.rank}}</strong> in National Liberal Arts Colleges</p>
            {%- endcall %}
        {% endfor %}
        <!-- END -->

    </div>
</div>
```

*/
/*doc
---
title: Media Object with Media Label
name: f-basic-media-object
category: Media Objects - Flex Media Object
template:
    data:
        -
            mediaLabel: Media Label
            heading: The Complete Guide to Learnings Stockssss
            url: http://www.usnews.com
            figure: 
                default: http://placehold.it/90x90
                medium: http://placehold.it/314x208
            blurb: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
            author: Mosaka Williamson
            pubdate: August 21, 2015
        -
            mediaLabel: Investing Tips
            heading: How to Analyze Stock Fundamentals
            url: http://www.usnews.com
            figure: 
                default: http://placehold.it/90x90
                medium: http://placehold.it/314x208
            blurb: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
            author: Emily Brachter
            pubdate: March 12, 2015
---

This has a small uppercase *media label* at the top of each media object. For
`small` the media label is inside the media object content, but above the
heading. It is actually outside and above the media object for medium up. 

```html_example
<div class="flex-row">
    <div class="flex-small-12 flex-large-8">

        <!-- START, ignore above -->
        {% import "templates/common/media-object/builder.nunj" as example %}

        {% for item in data %}
            {% call example.mediaObjectBuilder
                (
                    mediaLabel=item.mediaLabel,
                    heading=item.heading,
                    url=item.url, 
                    figure=item.figure, 
                    borderBetween=true,
                    spacingBetween='block-loose'
                )
            %}
            <div class="show-for-medium-up">
                <p>
                    <a class="text-muted" href="" alt="{{item.author}}">{{item.author}}</a>
                    |
                    {{item.pubdate}}
                </p>
                <p class="block-flush">{{item.blurb}}</p>
            </div>
            {% endcall %}
        {% endfor %}
        <!-- END -->

    </div>
</div>
```
*/
.flex-media {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex; }
  .flex-media:last-child {
    border-bottom: 0 !important;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important; }
  .flex-media:first-child {
    border-top: 0 !important;
    padding-top: 0 !important;
    margin-top: 0 !important; }

.flex-media-figure.tight {
  margin-right: 0.25rem; }

.flex-media-figure.normal {
  margin-right: 0.75rem; }

.flex-media-figure.loose {
  margin-right: 1.5rem; }

.flex-media-figure.looser {
  margin-right: 1.875rem; }

.flex-media-figure.loosest {
  margin-right: 2.25rem; }

.flex-media-figure.round, .flex-media-figure.icon-maps-markerMap.blue, .flex-media-figure.icon-maps-markerMap.orange {
  overflow: hidden; }

.flex-media-figure img {
  width: 100%; }

.flex-media-figure img.full-height {
  height: 100%;
  width: auto; }

.flex-media-figure img.bordered {
  border: 1px solid #DDD; }

.flex-media-figure.auto-width img {
  width: auto;
  max-width: none; }

.flex-media-heading {
  margin-bottom: 0.9375rem;
  font-size: 1.125rem;
  font-weight: 500;
  font-weight: 400; }
  @media only screen and (min-width: 40.0625em) {
    .flex-media-heading {
      font-size: 1.5rem;
      font-weight: 500; } }

.flex-media-content {
  -webkit-box-flex: 1;
  -webkit-flex: 1;
  -moz-box-flex: 1;
  -moz-flex: 1;
  -ms-flex: 1;
  flex: 1; }

.flex-media.reverse > .flex-media-figure {
  -webkit-box-ordinal-group: 2;
  -webkit-order: 1;
  -moz-order: 1;
  -ms-flex-order: 1;
  order: 1;
  margin-left: 0.75rem;
  margin-right: 0; }

/*doc
---
title: Overlay Feature
name: overlay-feature
category: Media Objects - Overlay Features
authors: Wes DiMiceli, Will Ferguson
selectors:
    - .feature-overlay
template:
    lead_story:
        image:
          responsive640: http://www-sand4.usnews.com/dims4/USNEWS/b2adcf2/2147483647/crop/825x541%2B0%2B0/resize/640x420/quality/85/?url=http%3A%2F%2Fwww.usnews.com%2Fcmsmedia%2F49%2Fbd%2F57bb06d04c428b8f39ec5dbbd682%2F150202-advisorhelp-stock.jpg
          responsive970: http://www-sand4.usnews.com/dims4/USNEWS/fdd7283/2147483647/crop/825x550%2B0%2B0/resize/970x647/quality/85/?url=http%3A%2F%2Fwww.usnews.com%2Fcmsmedia%2F49%2Fbd%2F57bb06d04c428b8f39ec5dbbd682%2F150202-advisorhelp-stock.jpg
        url: http://money-sand4.usnews.com/money/blogs/On-Retirement/articles/2016-02-26/5-things-your-financial-advisor-is-not-telling-you
        heading: 5 Things Your Financial Advisor is Not Telling You
        author: Brian Preston
        blurb: Here’s how to find out if your investment advisor is ripping you off.
        pubdate: Feb. 26, 2016
---

Much like feature media objects, this object overlays the image and the headline on large breakpoints, with
a bottom-to-top gradient to make the white text more readable.  Scoured from countries.

```nunjucks_tab?editor-id={{uuid()}}
{% macro featureOverlay(url, image, heading, author, pubdate, blurb) %}
    {% include "templates/common/media-object/feature-overlay.nunj" %}
{% endmacro %}

{{ featureOverlay(lead_story.url, lead_story.image, lead_story.heading, lead_story.author, lead_story.pubdate, lead_story.blurb) }}
```

*/
.feature-overlay {
  display: block;
  position: relative; }
  .feature-overlay .feature-overlay-image {
    border: 1px solid #ddd; }
  @media only screen and (min-width: 64em) {
    .feature-overlay:after {
      position: absolute;
      height: 100%;
      width: 100%;
      left: 0px;
      top: 0px;
      background-image: linear-gradient(to bottom, transparent 0%, black 100%);
      content: "";
      display: block;
      z-index: 1; } }
  .feature-overlay .feature-overlay-content {
    bottom: 0;
    padding: 10px;
    position: absolute;
    width: 100%;
    z-index: 2; }

/*doc
---
title: Stacked Media Object
name: stacked-media-object
category: Media Objects - Flex Media Object
template:
    data:
        -
            heading: Basic Media Object
            url: http://www.usnews.com
            figure: http://placehold.it/90x90
            blurb: Very basic media object text here
        -
            heading: Basic Media Object 2
            url: http://www.usnews.com
            figure: http://placehold.it/90x90
            blurb: Second very basic media object text here
        -
            heading: Basic Media Object 3
            url: http://www.usnews.com
            figure: http://placehold.it/90x90
            blurb: Very basic media object text here
        -
            heading: Basic Media Object 4
            url: http://www.usnews.com
            figure: http://placehold.it/90x90
            blurb: Second very basic media object text here
        -
            heading: Basic Media Object 5
            url: http://www.usnews.com
            figure: http://placehold.it/90x90
            blurb: Very basic media object text here
        -
            heading: Basic Media Object 6
            url: http://www.usnews.com
            figure: http://placehold.it/90x90
            blurb: Second very basic media object text here
---

We can use these to stack rows of media objects, eg. Real Estate Landing page with 3 across on large, 2 on medium, and one on small or News Special Topics page 2 across on medium-up and stacked on mobile view.

```html_example
<div class="flex-row">
    <div class="flex-small-12">
        <h3 class="heading-large">Popular Topics</h3>
        <ul class="small-block-grid-1 medium-block-grid-2 large-block-grid-3">
        {% import "templates/common/media-object/column-builder.nunj" as example %}

        {% for item in data %}
            {% call example.mediaObjectBuilder
                (
                    heading=item.heading,
                    url=item.url, 
                    figure=item.figure, 
                    headingClasses='heading-small heading-normal block-flush',
                    containerClasses='small-middle'
                )
            %}
            {% endcall %}
        {% endfor %}
        </ul>
    </div>
</div>
```

```html_example
<div class="flex-row">
    <div class="flex-small-12 flex-medium-8">
        <h3 class="heading-large">More from STEM</h3>
        <ul class="small-block-grid-1 medium-block-grid-2">
        {% import "templates/common/media-object/column-builder.nunj" as example %}

        {% for item in data %}
            {% call example.mediaObjectBuilder
                (
                    heading=item.heading,
                    url=item.url, 
                    figure=item.figure, 
                    headingClasses='heading-small heading-normal block-flush',
                    containerClasses='small-middle'
                )
            %}
            {% endcall %}
        {% endfor %}
        </ul>
    </div>
</div>
```
*/
/*doc
---
title: Panel
name: a-panel
category: Visual Treatments - Panel
selectors:
  - .panel
  - .panel-tight
  - .panel-borderless
  - .panel.borderless
  - .panel.naked
  - .panel.light
  - .panel.light-blue
---

```html_example?kitchen-sink=true
<div class="panel">
  <h5>This is a <em>regular</em> panel.</h5>
  <p>It has an easy to override visual style, and is appropriately subdued.</p>
</div>

<div class="panel callout radius">
  <h5>This is a <em>callout</em> panel.</h5>
  <p>It's a little ostentatious, but useful for important content.</p>
</div>

<div class="panel-borderless">
  <h5>This is a <em>borderless</em> panel.</h5>
  <p>This was built using @extend.</p>
</div>

<div class="panel naked">
  <h5>This is a `.naked` panel.</h5>
  <p>Has transparent background and lighter border </p>
</div>

<div class="panel light">
  <h5>This is a `.light` panel.</h5>
  <p>Has $smoke-gray background and lighter border </p>
</div>

<div class="panel light-blue">
  <h5>This is a `.light-blue` panel.</h5>
  <p>Has $lightest-blue background and $light-blue border </p>
</div>

<div class="panel yellow">
  <h5>This is a `.yellow` panel.</h5>
  <p>Has $background-yellow background and $orange-light border</p>
</div>

<div class="error-panel">
   <h5>This is an `.error-panel` panel.</h5>
   <p>It's good for showing that something went wrong.</p>
</div>

```
*/
.panel-borderless, .borderless.panel-borderless, .borderless.panel, .borderless.panel-tight, .borderless.error-panel {
  border: 0 !important; }

.panel-tight {
  padding: 0.625rem 1rem; }

.panel.tight, .tight.panel-borderless, .tight.panel-tight, .tight.error-panel {
  padding: 0.625rem 1rem; }

.panel.naked, .naked.panel-borderless, .naked.panel-tight, .naked.error-panel {
  background: transparent;
  border: 1px solid #DDDDDD; }

.panel.light, .light.panel-borderless, .light.panel-tight, .light.error-panel {
  background: #f4f4f4;
  border: 1px solid #DDDDDD; }

.panel.light-blue, .light-blue.panel-borderless, .light-blue.panel-tight, .light-blue.error-panel {
  background: #def0fe;
  border: 1px solid #c0ddf2; }

.panel.white, .white.panel-borderless, .white.panel-tight, .white.error-panel {
  background: #fff;
  border: 1px solid #DDDDDD; }

.panel.border-light, .border-light.panel-borderless, .border-light.panel-tight, .border-light.error-panel {
  border: 1px solid #DDDDDD !important; }

.panel.yellow, .yellow.panel-borderless, .yellow.panel-tight, .yellow.error-panel {
  background: #FFF5E5;
  border: 1px solid #ffc14e; }

.error-panel {
  background: rgba(240, 110, 101, 0.2);
  color: #F06E65;
  border-color: #F06E65; }

/*doc
---
title: Cards
name: a-cards
category: Visual Treatments - Card
selectors:
  - .panel.card
  - .card-content
---

These look like media objects by default and cards on `.medium-up`. They happen
to modify panel but I am not sure they should.
>**TODO:** We need to abstract the card styling into its own pattern and
come up with a modifier to implement the responsive behavior.

```html_example
{% include "templates/pages/money/investing/common/_cards.nunj" %}
```

*/
.panel.card, .card.panel-borderless, .card.panel-tight, .card.error-panel {
  background-color: transparent;
  border-color: #DDDDDD; }
  @media (max-width: 40em) {
    .panel.card, .card.panel-borderless, .card.panel-tight, .card.error-panel {
      background-image: none !important;
      border-left: 0;
      border-right: 0;
      border-top: 0; } }
  @media (min-width: 40.0625em) {
    .panel.card, .card.panel-borderless, .card.panel-tight, .card.error-panel {
      background-size: 100%, cover;
      background-repeat: no-repeat;
      padding-top: 60px;
      -webkit-box-shadow: 0 0 5px 0 #aaa;
      -moz-box-shadow: 0 0 5px 0 #aaa;
      box-shadow: 0 0 5px 0 #aaa;
      border-radius: 5px; }
      .panel.card.card-blue, .card.card-blue.panel-borderless, .card.card-blue.panel-tight, .card.card-blue.error-panel {
        border-top: 5px solid #2c7ef0; }
      .panel.card.card-green, .card.card-green.panel-borderless, .card.card-green.panel-tight, .card.card-green.error-panel {
        border-top: 5px solid #0ABBA4; }
      .panel.card.card-red, .card.card-red.panel-borderless, .card.card-red.panel-tight, .card.card-red.error-panel {
        border-top: 5px solid #D1453D; }
      .panel.card.card-dark, .card.card-dark.panel-borderless, .card.card-dark.panel-tight, .card.card-dark.error-panel {
        border-top: 5px solid #10294B; } }
  @media (min-width: 40.0625em) {
    .panel.card .card-content, .card.panel-borderless .card-content, .card.panel-tight .card-content, .card.error-panel .card-content {
      padding: 0; } }

/*doc
---
title: New Cards
name: a-new-cards
category: Visual Treatments - New Cards
selectors:
  - .new-card
---

Reworked to work at bigger sizes.

```html_example
{% include "templates/pages/health/health-care/advice/_cards.nunj" %}
```

*/
.new-card {
  background-color: transparent;
  border: 1px solid #DDDDDD;
  padding: 0; }
  @media (max-width: 40em) {
    .new-card {
      border-left: 0;
      border-right: 0;
      border-top: 0; } }
  @media (min-width: 40.0625em) {
    .new-card {
      -webkit-box-shadow: 0 0 5px 0 #aaa;
      -moz-box-shadow: 0 0 5px 0 #aaa;
      box-shadow: 0 0 5px 0 #aaa;
      border-radius: 5px;
      border-top: 5px solid; }
      .new-card.blue {
        border-top: 5px solid #2c7ef0; }
      .new-card.green {
        border-top: 5px solid #0ABBA4; }
      .new-card.red {
        border-top: 5px solid #D1453D; }
      .new-card.dark {
        border-top: 5px solid #10294B; } }
  @media (max-width: 40em) {
    .new-card > a {
      width: 100%; } }
  .new-card .new-card-img {
    overflow: hidden; }
    @media (max-width: 40em) {
      .new-card .new-card-img {
        display: none; } }
    .new-card .new-card-img img {
      width: 100%; }
    @media (min-width: 40.0625em) {
      .new-card .new-card-img {
        max-height: 100px; } }
    @media (min-width: 63.9375em) {
      .new-card .new-card-img {
        max-height: 140px; } }
  @media (min-width: 40.0625em) {
    .new-card .new-card-icon > svg {
      margin-top: -34px; } }

@media (min-width: 40.0625em) {
  .flex-medium-6 .new-card .new-card-img {
    max-height: 200px; } }

@media (min-width: 63.9375em) {
  .flex-medium-6 .new-card .new-card-img {
    max-height: 240px; } }

@media (min-width: 40.0625em) {
  .flex-medium-5 .new-card .new-card-img {
    max-height: 150px; } }

@media (min-width: 63.9375em) {
  .flex-medium-5 .new-card .new-card-img {
    max-height: 190px; } }

/*doc
---
title: Panel Mixin
name: e-panel-mixin
category: Visual Treatments - Panel
---

You can create your own panels using a mixin.

```sass_example
// Using the available options
.custom-panel {
  @include panel(
    // Sets the panel background color. Default: $panel-pg
    $bg:orange,
    // Sets the panel padding amount. Default: $panel-padding
    $padding:20px,
    // Sets the font color based on the darkness of the bg & resets header line-heights for panels. Default: $panel-header-adjust
    $adjust:true
  );
}
```
Here is a panel we would never use, but you can see how to build it with the `panel()` mixin:

``` html_example
<div class="custom-panel">Custom Panel using a mixin</div>
```

``` sass_example
.custom-panel {
  @include panel(
    // Sets the panel background color. Default: $panel-pg
    $bg:orange,
    // Sets the panel padding amount. Default: $panel-padding
    $padding:20px,
    // Sets the font color based on the darkness of the bg & resets header line-heights for panels. Default: $panel-header-adjust
    $adjust:true
  );
}
```
*/
.custom-panel {
  border-style: solid;
  border-width: 1px;
  border-color: #b6b6b6;
  margin-bottom: 1.25rem;
  padding: 20px;
  background: #BADA55;
  color: #333333; }
  .custom-panel > :first-child {
    margin-top: 0; }
  .custom-panel > :last-child {
    margin-bottom: 0; }
  .custom-panel h1, .custom-panel h2, .custom-panel h3, .custom-panel h4, .custom-panel h5, .custom-panel h6, .custom-panel p, .custom-panel li, .custom-panel dl {
    color: #333333; }
  .custom-panel h1, .custom-panel h2, .custom-panel h3, .custom-panel h4, .custom-panel h5, .custom-panel h6 {
    line-height: 1;
    margin-bottom: 0.625rem; }
    .custom-panel h1.subheader, .custom-panel h2.subheader, .custom-panel h3.subheader, .custom-panel h4.subheader, .custom-panel h5.subheader, .custom-panel h6.subheader {
      line-height: 1.4; }

.doximity-panel {
  position: relative;
  padding: 1rem !important;
  border-color: #ddd !important; }
  .doximity-panel a {
    color: #2c7ef0 !important; }
  @media (min-width: 0em) {
    .doximity-panel > .logo {
      position: absolute;
      bottom: 1rem;
      right: .5rem; } }
  @media (min-width: 40.0625em) {
    .doximity-panel > .logo {
      position: initial; } }

.basic-card {
  box-shadow: 0px 0px 5px #ccc; }
  .basic-card .basic-card-upper {
    padding: 15px; }
    .basic-card .basic-card-upper .card-link {
      line-height: 18px; }
  .basic-card .basic-card-lower {
    background: #f7f7f7;
    box-shadow: 0px 0px 5px #ccc;
    padding: 15px; }
  .basic-card .basic-card-value {
    line-height: 30px;
    position: relative; }
    .basic-card .basic-card-value.up {
      color: #0ABBA4; }
    .basic-card .basic-card-value.down {
      color: #F06E65; }
    .basic-card .basic-card-value .stock-trend {
      position: absolute;
      right: 100%; }

.segmented-card {
  box-shadow: 0px 2px 8px #888; }
  .segmented-card:before {
    content: "";
    display: block;
    height: 5px; }
  .segmented-card.flush-top:before {
    height: 0; }
  .segmented-card.blue-stripe:before {
    background: #217cec; }
  .segmented-card.above-average:before {
    background: #0ABBA4; }
  .segmented-card.below-average:before {
    background: #F06E65; }
  .segmented-card .segment:first-of-type {
    padding-top: 15px; }
  .segmented-card .segment {
    padding: 0 20px; }
  .segmented-card .segment:last-of-type {
    padding-bottom: 20px; }
  .segmented-card.tight .segment:first-of-type {
    padding-top: 5px; }
  .segmented-card.tight .segment {
    padding: 0 10px; }
  .segmented-card.tight .segment:last-of-type {
    padding-bottom: 10px; }
  .segmented-card div.cover-image {
    height: 130px;
    width: 100%;
    background-size: cover; }

.warning-panel {
  border-style: solid;
  border-width: 1px;
  border-color: #b6b6b6;
  margin-bottom: 1.25rem;
  padding: 10px 15px;
  background: #FFF5E5;
  color: #333333;
  border-color: #FFC14E; }
  .warning-panel > :first-child {
    margin-top: 0; }
  .warning-panel > :last-child {
    margin-bottom: 0; }
  .warning-panel h1, .warning-panel h2, .warning-panel h3, .warning-panel h4, .warning-panel h5, .warning-panel h6, .warning-panel p, .warning-panel li, .warning-panel dl {
    color: #333333; }
  .warning-panel h1, .warning-panel h2, .warning-panel h3, .warning-panel h4, .warning-panel h5, .warning-panel h6 {
    line-height: 1;
    margin-bottom: 0.625rem; }
    .warning-panel h1.subheader, .warning-panel h2.subheader, .warning-panel h3.subheader, .warning-panel h4.subheader, .warning-panel h5.subheader, .warning-panel h6.subheader {
      line-height: 1.4; }

.panel-thin {
  border-style: solid;
  border-width: 1px;
  border-color: #b6b6b6;
  margin-bottom: 1.25rem;
  padding: 10px;
  background: #cccccc;
  color: #333333; }
  .panel-thin > :first-child {
    margin-top: 0; }
  .panel-thin > :last-child {
    margin-bottom: 0; }
  .panel-thin h1, .panel-thin h2, .panel-thin h3, .panel-thin h4, .panel-thin h5, .panel-thin h6, .panel-thin p, .panel-thin li, .panel-thin dl {
    color: #333333; }
  .panel-thin h1, .panel-thin h2, .panel-thin h3, .panel-thin h4, .panel-thin h5, .panel-thin h6 {
    line-height: 1;
    margin-bottom: 0.625rem; }
    .panel-thin h1.subheader, .panel-thin h2.subheader, .panel-thin h3.subheader, .panel-thin h4.subheader, .panel-thin h5.subheader, .panel-thin h6.subheader {
      line-height: 1.4; }

.panel > .sponsored-bug, .panel-borderless > .sponsored-bug, .panel-tight > .sponsored-bug, .error-panel > .sponsored-bug {
  position: absolute;
  top: -1px;
  right: -1px;
  width: 30px; }

.panel > .inline-border-image, .panel-borderless > .inline-border-image, .panel-tight > .inline-border-image, .error-panel > .inline-border-image {
  position: absolute;
  bottom: -10px;
  right: 15px; }

@media only screen and (min-width: 64em) {
  .search-main-column {
    border-left: 2px solid #e1e2e6; } }

@media only screen and (min-width: 64em) {
  .search-left-column {
    padding-right: 1.5rem; } }

@media not screen and (min-width: 64em) {
  html.js .search-left-column {
    z-index: 576;
    background: #fff;
    position: fixed;
    top: 100%;
    height: 100%;
    width: 100%;
    overflow-y: auto;
    transition: top 0.5s; } }

@media not screen and (min-width: 64em) {
  html.js .search-left-column.is-fixed {
    top: 0%; } }

@media only screen and (min-width: 64em) {
  .search-main-column {
    padding-left: 25px;
    padding-top: 10px; } }

.search-form-header {
  -webkit-box-shadow: 0 0 0.3125rem 0 rgba(0, 0, 0, 0.5);
  -moz-box-shadow: 0 0 0.3125rem 0 rgba(0, 0, 0, 0.5);
  box-shadow: 0 0 0.3125rem 0 rgba(0, 0, 0, 0.5);
  padding-top: 1.25rem;
  background: #EAF0F1;
  border-top: 8px solid #10294B; }

.search-form-header-close-button {
  position: absolute;
  top: 0px;
  right: 0.9375rem;
  cursor: pointer;
  transition: fill 300ms; }

.search-form-header-sort-options {
  display: block;
  width: unset;
  max-width: 100%; }

.search-form-header-busy-indicator {
  display: none;
  width: 24px;
  height: 24px;
  vertical-align: middle; }

.is-busy .search-form-header-busy-indicator {
  display: inline-block; }

.search-form-header-sticky-row {
  line-height: 4; }

html.js .search-left-column.is-fixed .search-form-header-sticky-row.is-stuck {
  z-index: 577;
  -webkit-box-shadow: 0 0 0.3125rem 0 rgba(0, 0, 0, 0.5);
  -moz-box-shadow: 0 0 0.3125rem 0 rgba(0, 0, 0, 0.5);
  box-shadow: 0 0 0.3125rem 0 rgba(0, 0, 0, 0.5);
  position: fixed;
  top: 0px;
  width: 100%;
  background: #EAF0F1; }

.search-control-facet {
  padding-top: 1rem;
  border-top: 1px solid #e1e2e6; }
  .search-control-facet:last-child {
    border-bottom: 1px solid #e1e2e6;
    margin-bottom: 1.5rem; }

.search-control-facet:first-child {
  border-top: none; }
  @media (min-width: 63.9375em) {
    .search-control-facet:first-child {
      padding-top: 2rem; } }

.search-control-facet-heading {
  font-size: 1.125rem;
  font-weight: 500; }

.search-control-accordion {
  margin-left: 0; }
  .search-control-accordion .accordion-navigation > .search-control-facet-heading,
  .search-control-accordion .accordion-navigation > .search-control-facet-heading:hover,
  .search-control-accordion .accordion-navigation.active > .search-control-facet-heading {
    font-size: 1.125rem;
    font-weight: 500;
    background: none;
    padding-left: 0;
    padding-right: 0;
    padding-top: 0; }
  .search-control-accordion .accordion-navigation > .search-control-facet-content {
    padding: 0;
    margin-bottom: 0.9375rem; }
  .search-control-accordion .accordion-navigation .search-control-facet-heading-icon-toggle {
    transition-duration: 0.25s;
    fill: #4B4B4C;
    height: 1rem; }
  .search-control-accordion .accordion-navigation.active .search-control-facet-heading-icon-toggle {
    transform: rotate(180deg); }

.search-app-matches-layout-view {
  position: relative; }

.search-content-busy-indicator {
  position: absolute;
  width: 100%;
  text-align: center;
  top: 0px;
  left: 0px; }
  .search-content-busy-indicator .usn-spinner {
    width: 100px;
    height: 100px;
    margin-top: 100px; }
  .search-content-busy-indicator.stuck {
    position: fixed;
    left: 125px; }

.search-content {
  margin: 0;
  opacity: 1;
  transition: opacity 0.25s; }
  .search-content > * {
    list-style: none; }

.is-busy .search-content {
  opacity: 0.5;
  transition: opacity 0.25s; }

tr.search-ad-wrapper {
  background: #DDDDDD; }

.search-hud-facets button {
  padding: .475rem .675rem; }

.search-form-header .search-form-header-sort-wrapper {
  display: inline-block;
  white-space: nowrap; }
  .search-form-header .search-form-header-sort-wrapper:after {
    content: "▾";
    pointer-events: none;
    margin-left: -23px;
    display: inline-block;
    color: #555555; }
  .search-form-header .search-form-header-sort-wrapper select {
    display: inline-block;
    padding-right: 25px; }

.search-form-header .width-calculating-select {
  display: none; }

.search-form-panel {
  padding: 1rem 1rem 0 1rem;
  background: #F7F7F7;
  box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.45);
  margin-bottom: 1.5rem; }

/*doc
---
title: Application
name: _application
category: Search Application - Application
authors: Jon Lewis

template:
    application:
        meta:
            canonical_url: /search_application_-_application.html
            rel_prev_page_url:
            rel_next_page_url: ?page=2
            title: Search Application Demo
            description: meta description
            keywords: ["search", "ranking"]
            robots: "no-index"
        data:
            results:
                data:
                    self_link: /search_application_-_application.html

                    items:
                    -   name: Item 1
                    -   name: Item 2
                    -   name: Item 3
                    -   name: Item 4
                    -   name: Item 5
                    -   name: Item 6
                    -   name: Item 7
                    -   name: Item 8
                    -   name: Item 9
                    -   name: Item 10

                    total_items: 9634
                    items_per_page: 3
                    page_index: 1
                    total_pages: 2
                    next_link: /sample-data?page=2

                    title: Title
                    subtitle: Subtitle
                    description: The ranking description
                    image_link: /static/img/circle-badge-icon.svg

                    sort_options:
                    -   value: option-a
                        label: Option A
                    -   value: option-b
                        label: Option B
                    sort_by: option-d
                    sort_direction: asc
selectors:
    - .button.search-filter
    - .mist-for-small-only
---

** Note: these are still in development, so don't use them in live apps yet. **

```nunjucks_tab
<div>
    {%
        view "search-application", application, id="application", model_options={
            formData: {
                filters: [
                    {
                        type: 'text',
                        id: 'first-name',
                        placeholder: 'First name'
                    },
                    {
                        type: 'text',
                        id: 'last-name',
                        placeholder: 'Last name'
                    }
                ],
                groups: [
                    {
                        id: 'name',
                        label: "Name",
                        filter_ids: ['first-name', 'last-name'],
                        tooltip: '<span class="text-small text-muted">Your name</span>',
                        is_collapsible: true
                    },
                    {
                        id: 'gpa',
                        label: 'High School GPA',
                        is_lockable: true,
                        is_locked: true,
                        lock_link: 'http://www.usnews.com/usnews/store/college_compass.htm'
                    },
                    {
                        id: 'type',
                        label: 'Public/Private',
                        is_lockable: true,
                        is_locked: true,
                        lock_link: 'http://www.usnews.com/usnews/store/college_compass.htm'
                    }
                ]
            },
            sortOptions: [
                {
                    value: 'option-c',
                    label: "Option C"
                },
                {
                    value: 'option-d',
                    label: "Option D"
                }
            ]
        },
        view_options={
            units: ['school', 'schools']
        }
    %}{% endview %}
</div>
```

```es6_tab

USN.dispatcher.trigger('summon:search:application-view', function() {
    USN._applicationView = $('#application').reviveView({
        after: function(view) {
            view.setEventDispatcher(USN.dispatcher);
        }
    })[0].view;
});

```

*/
.search-application {
  position: relative; }

.search-application-content {
  position: relative; }

@media not screen and (min-width: 64em) {
  html.js .search-application-left-column {
    z-index: 720;
    position: fixed;
    background: white;
    height: 100vh;
    transition: top 500ms;
    top: 100%;
    overflow-y: scroll; }
    html.js .search-application-left-column.is-form-overlay-visible {
      top: 0%; } }

@media only screen and (min-width: 64em) {
  html.js .search-application-left-column {
    min-height: 0;
    padding-top: 1.5rem;
    padding-right: 1.5rem; }
    html.js .search-application-left-column.is-fixed-top {
      position: fixed;
      width: 15.625rem;
      top: 0; }
    html.js .search-application-left-column.is-fixed-bottom {
      position: fixed;
      width: 15.625rem;
      bottom: 0; }
    html.js .search-application-left-column.is-absolute-bottom {
      position: absolute;
      width: 15.625rem;
      bottom: 0; }
    html.js .search-application-left-column.is-absolute {
      position: absolute;
      width: 15.625rem; } }

@media only screen and (min-width: 64em) {
  .search-application-main-column {
    padding-left: 1.5rem;
    border-left: 2px solid #DDDDDD; } }

.search-application-busy-indicator {
  transition: opacity 0.5s; }

.is-busy:not(.is-paging) .search-application-busy-indicator {
  opacity: 0.5; }

.search-application-results-header {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -moz-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  -webkit-justify-content: space-between;
  -moz-justify-content: space-between;
  justify-content: space-between;
  -webkit-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  -moz-align-items: center;
  align-items: center;
  height: 4rem; }
  @media not screen and (min-width: 64em) {
    .search-application-results-header.is-fixed {
      z-index: 575;
      -webkit-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5);
      -moz-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5);
      box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5);
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      background: white; } }

.search-application-results-header-options {
  display: none; }
  @media only screen and (min-width: 64em) {
    .search-application-results-header-options {
      display: -webkit-box;
      display: -webkit-flex;
      display: -moz-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: baseline;
      -ms-flex-align: baseline;
      -webkit-align-items: baseline;
      -moz-align-items: baseline;
      align-items: baseline; } }

.search-count-view {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  -webkit-justify-content: space-between;
  -moz-justify-content: space-between;
  justify-content: space-between;
  -webkit-box-align: baseline;
  -ms-flex-align: baseline;
  -webkit-align-items: baseline;
  -moz-align-items: baseline;
  align-items: baseline;
  -webkit-flex-basis: 100%;
  -moz-flex-basis: 100%;
  -ms-flex-preferred-size: 100%;
  flex-basis: 100%; }
  @media only screen and (min-width: 64em) {
    .search-count-view {
      -webkit-flex-basis: auto;
      -moz-flex-basis: auto;
      -ms-flex-preferred-size: auto;
      flex-basis: auto; } }
  .search-count-view button {
    padding-left: 2rem !important;
    padding-right: 2rem !important; }
    @media only screen and (min-width: 64em) {
      .search-count-view button {
        display: none; } }

.search-sort-view {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: baseline;
  -ms-flex-align: baseline;
  -webkit-align-items: baseline;
  -moz-align-items: baseline;
  align-items: baseline; }

.search-mode-options {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: distribute;
  -webkit-justify-content: space-around;
  -moz-justify-content: space-around;
  justify-content: space-around;
  border-bottom: 1px solid #DDDDDD;
  border-top: 1px solid #DDDDDD;
  margin-bottom: 1rem; }
  @media only screen and (min-width: 64em) {
    .search-mode-options {
      border-bottom: none;
      border-top: none;
      margin-bottom: 0; } }

.search-mode-option {
  -webkit-box-flex: 1;
  -webkit-flex-grow: 1;
  -moz-flex-grow: 1;
  -ms-flex-positive: 1;
  flex-grow: 1;
  padding-top: 1rem;
  padding-bottom: 1rem;
  border-left: 1px solid #DDDDDD; }
  .search-mode-option:first-child {
    border-left: none;
    padding-left: 0; }
  @media only screen and (min-width: 64em) {
    .search-mode-option {
      padding-top: 0;
      padding-bottom: 0;
      margin-left: 1rem;
      padding-left: 1rem; } }

.search-small-form-header-content {
  -webkit-box-shadow: 0 0 0.3125rem 0 rgba(0, 0, 0, 0.5);
  -moz-box-shadow: 0 0 0.3125rem 0 rgba(0, 0, 0, 0.5);
  box-shadow: 0 0 0.3125rem 0 rgba(0, 0, 0, 0.5);
  background: #EAF0F1;
  padding-top: 1rem; }

.search-small-form-header-sort {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex; }

.search-small-form-header-buttons {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  -webkit-justify-content: space-between;
  -moz-justify-content: space-between;
  justify-content: space-between;
  -webkit-box-align: baseline;
  -ms-flex-align: baseline;
  -webkit-align-items: baseline;
  -moz-align-items: baseline;
  align-items: baseline;
  background: #EAF0F1;
  padding-top: 1rem;
  padding-bottom: 1rem; }
  .search-small-form-header-buttons.is-fixed {
    z-index: 721;
    -webkit-box-shadow: 0 0 0.3125rem 0 rgba(0, 0, 0, 0.5);
    -moz-box-shadow: 0 0 0.3125rem 0 rgba(0, 0, 0, 0.5);
    box-shadow: 0 0 0.3125rem 0 rgba(0, 0, 0, 0.5);
    position: fixed;
    top: 0;
    left: 0;
    width: 100%; }

@media only screen and (max-width: 40em) {
  .search-filter-no-results {
    display: none; } }

@media only screen and (max-width: 40em) {
  .search-filter-buttons-view .mist-for-small-only {
    background-color: #ecedf1; } }

.button.search-filter {
  padding: 0.475rem 0.675rem;
  font-size: 0.75rem; }

@media not screen and (min-width: 64em) {
  .touch .search-filter-buttons-container {
    padding-left: 0;
    padding-right: 0; } }

.touch .search-filter-buttons-view {
  position: relative; }
  @media not screen and (min-width: 64em) {
    .touch .search-filter-buttons-view:before, .touch .search-filter-buttons-view:after {
      content: '';
      position: absolute;
      top: 0;
      width: 15px;
      height: 100%;
      z-index: 1; } }

@media not screen and (min-width: 64em) {
  .touch .search-filter-buttons-content {
    overflow-x: scroll;
    white-space: nowrap; } }

@media not screen and (min-width: 64em) {
  .touch .search-filter-buttons-content button:first-child {
    margin-left: 15px; } }

@media not screen and (min-width: 64em) {
  .touch .search-filter-buttons-content a:last-child {
    margin-right: 15px; } }

.search-hud-busy-spinner {
  display: none; }

.is-busy .search-hud-busy-spinner {
  display: initial;
  width: 2rem;
  height: 2rem;
  -webkit-align-self: center;
  -moz-align-self: center;
  -ms-flex-item-align: center;
  align-self: center; }
  @media (min-width: 63.9375em) {
    .is-busy .search-hud-busy-spinner {
      display: none; } }

.search-results-busy-spinner {
  display: none; }

@media (min-width: 63.9375em) {
  .is-busy .search-results-busy-spinner {
    display: initial;
    position: absolute;
    width: 100%;
    text-align: center;
    top: 50px;
    left: 0px; }
    .is-busy .search-results-busy-spinner .usn-spinner {
      width: 100px;
      height: 100px;
      margin-top: 40vh; }
    .is-busy .search-results-busy-spinner.stuck {
      position: fixed;
      left: 125px; } }

@media only screen and (max-width: 40em) {
  .table-view-row-pad {
    padding: 1rem 1rem 0rem; } }

/*doc
---
title: Results
name: _results
category: Search Application - Results
authors: Jon Lewis

template:
    results:
        data:
            items:
            -   name: Item 1
            -   name: Item 2
            -   name: Item 3
            -   name: Item 4
            -   name: Item 5
            -   name: Item 6
            -   name: Item 7
            -   name: Item 8
            -   name: Item 9
            -   name: Item 10
            total_items: 10
            items_per_page: 3
            page_index: 1
            total_pages: 2
            next_link: /sample-data?page=2
---

```html_example
<div style="margin-top: 1rem;">
    <ul class="button-group radius block-looser border-bottom bar-loose" style="display: inline-block;">
        <li><button data-js-id="cards-mode" class="button secondary">Cards</button></li>
        <li><button data-js-id="table-mode" class="button secondary">Table</button></li>
    </ul>

    <ul class="button-group radius block-looser border-bottom bar-loose" style="display: inline-block;">
        <li><button data-js-id="busy" class="button secondary">Busy</button></li>
        <li><button data-js-id="not-busy" class="button secondary">Not Busy</button></li>
    </ul>

    {% view "search-results", results, id="results", view_options={ debug: true, mode: 'list' } %}{% endview %}

    <button data-js-id="more" class="button secondary radius">More Results</button>
</div>

<script>
    USN.ready().then(function() {
        USN.dispatcher.trigger('summon:search:application-view', function() {
            var $results = $('#results');

            $results.reviveView({
                after: function(view) {
                    view.eventDispatcher = USN.dispatcher;
                }
            });
            var resultsView = USN._resultsView = $results[0].view;

            $('[data-js-id=cards-mode]').on('click', function() {
                resultsView.setMode('list');
            });

            $('[data-js-id=table-mode]').on('click', function() {
                resultsView.setMode('table');    
            });

            $('[data-js-id=busy]').on('click', function() {
                resultsView.setIsBusy(true);
            });

            $('[data-js-id=not-busy]').on('click', function() {
                resultsView.setIsBusy(false);
            });

            $('[data-js-id=more]').on('click', function() {
                var items = [];
                var i = USN._resultsView.model.items.length;

                for (var j = 0; j < 10; j++) {
                    i++;
                    items.push({ name: "Item " + i })
                }

                resultsView.model.items.add(items);
            });
        });
    });
</script>
```
*/
.search-results-view {
  transition: opacity 0.5s; }
  .search-results-view.is-busy {
    opacity: 0.25; }

/*doc
---
title: Overview
name: _filter-overview
category: Search Application - Filters
authors: Jon Lewis
---

These are live demos of the search filters available to our search application
pages and the corresponding JSON filter models that drive them. Feel free to 
play with the JSON data in the "Model" windows to get familiar with the various
filters.

The "Query" windows show what URL query parameters will be submitted when
someone uses a given filter.

The "Tags" area shows what active filter buttons (tags) will show up above search results
when someone sets a filter, based on that filter's tag settings.

JSON blobs for various filter types share these common attributes (optional unless otherwise indicated):

<pre>
{
    "id": (required) unique ID for the filter. Used when generating query parameters.
    "type": (required) i.e. 'text', 'checkbox', etc.
    "value": (required) the value set in the filter. Initial values are required.
    "label": label text for the filter.
    "help": help text shown below the filter.
    "hidden": true if the filter should be hidden.
    "disabled": true if a user should not be able to interact with this filter.
    "tag_hidden": true if this filter should not trigger a tag button when active.
    "tag_text": override text for the tag button when active.
}
</pre>

Individual filter types add their own other JSON attributes.

*/
/*doc
---
title: Weights
name: weights
category: Search Application - Filters
authors: Rob Miller, Jon Lewis
template:
    model:
        id: enrollment-weights
        type: weights
        value: 3
---

```html_example
{% view "search-filter-demo", model, id="weights-filter" %}{% endview %}

<script>
    USN.ready().then(function() {
        USN.dispatcher.trigger('summon:search:filter-demo-view', function() {
            $('#weights-filter').reviveView();
        });
    });
</script>
```
*/
.search-filter-weights {
  border: 1px #DDDDDD solid;
  padding: 0.375rem 0.625rem 1.875rem 0.625rem; }
  .search-filter-weights label {
    display: inline; }
  .search-filter-weights input + svg {
    fill: #999999; }
    @media only screen and (min-width: 40.0625em) {
      .search-filter-weights input + svg {
        width: 1rem; } }
  .search-filter-weights input.weight-highlight + svg {
    fill: #ffc14e; }
  .search-filter-weights input[type="radio"] {
    display: none; }

/*doc
---
title: Checkbox
name: checkbox
category: Search Application - Filters
authors: Pablo Lazo, Jon Lewis
template:
    model:
        id: blue
        type: checkbox-group
        options:
        -   label: Blue
            value: true
            help: Here is some help text
            count: 3
---

(This is really just a checkbox-group with only one option.)

```html_example
{% view "search-filter-demo", model, id="checkbox-filter" %}{% endview %}

<script>
    USN.ready().then(function() {
        USN.dispatcher.trigger('summon:search:filter-demo-view', function() {
            $('#checkbox-filter').reviveView();
        });
    });
</script>
```
*/
/*doc
---
title: Checkbox Group
name: checkbox-group
category: Search Application - Filters
authors: Jon Lewis
template:
    demo_type: filter
    model:
        id: badge
        type: checkbox-group
        value: ['gold', 'silver']
        label: Badges
        options:
        -   label: Gold
            value: gold
            count: 3
        -   label: Silver
            value: silver
            count: 9
        -   label: Bronze
            value: bronze
            count: 4
            help: The strongest of these metals
---

```html_example
{% view "search-filter-demo", model, id="checkbox-group-filter" %}{% endview %}

<script>
    USN.ready().then(function() {
        USN.dispatcher.trigger('summon:search:filter-demo-view', function() {
            $('#checkbox-group-filter').reviveView();
        });
    });
</script>
```
*/
/*doc
---
title: Radio List
name: radio-list
category: Search Application - Filters
authors: Jon Lewis
template:
    demo_type: filter
    model:
        id: badge
        type: radio-list
        value: gold
        label: Badge
        options:
        -   label: Gold
            value: gold
            count: 3
        -   label: Silver
            value: silver
            count: 9
        -   label: Bronze
            value: bronze
            count: 4
            help: The strongest of these metals
---

You can add the ```"grid": true``` option to display the radio list as a two-column grid.

*/
/*doc
---
title: Select
name: select
category: Search Application - Filters
authors: Pablo Lazo, Jon Lewis
template:
    demo_type: filter
    model:
        id: badge
        type: select
        value: gold
        label: Badge
        empty_option: "All Badges"
        options:
        -   label: Gold
            value: gold
        -   label: Silver
            value: silver
        -   label: Bronze
            value: bronze
---

*/
/*doc
---
title: Text
name: text
category: Search Application - Filters
authors: Pablo Lazo, Jon Lewis
template:
    model:
        id: name
        type: text
        value: ""
        label: Name
        placeholder: Type a name
        help: Help text
---

```html_example
{% view "search-filter-demo", model, id="text-filter" %}{% endview %}

<script>
    USN.ready().then(function() {
        USN.dispatcher.trigger('summon:search:filter-demo-view', function() {
            $('#text-filter').reviveView();
        });
    });
</script>
```
*/
/*doc
---
title: Location
name: location
category: Search Application - Filters
authors: Jon Lewis
template:
    model:
        id: location
        type: location
        label: Location
        placeholder: City, State or ZIP
        help: Help text
        empty_option: "All Distances"
        options: [{ value: '5', label: "Within 5 Miles" }, { value: '50', label: "Within 50 Miles" }]
        value:
            location: 22201
            distance: 5
---

```html_example
{% view "search-filter-demo", model, id="location-filter" %}{% endview %}

<script>
    USN.ready().then(function() {
        USN.dispatcher.trigger('summon:search:filter-demo-view', function() {
            $('#location-filter').reviveView();
        });
    });
</script>
```
*/
/*doc
---
title: Category
name: category
category: Search Application - Filters
authors: Jon Lewis
template:
    demo_type: filter
    model:
        id: industry
        type: category
        value: ""
        label: Industry
        levels: 3
        empty_options:
        -   Select Industry
        -   Select Sector
        -   Select Specialty
        options:
        -   label: Energy Minerals
            value: energy-minerals
            options:
            -   label: Coal
                value: coal
                options:
                -   label: Coal Mining
                    value: coal-mining
                -   label: Coal Storage
                    value: coal-storage
            -   label: Oil and Gas Production
                value: oil-and-gas-production
                options:
                -   label: Oil Transportation
                    value: oil-transportation
                -   label: Oil Drilling
                    value: oil-drilling
        -   label: Retail Trade
            value: retail-trade
            options:
            -   label: Food Retail
                value: food-retail
            -   label: Discount Stores
                value: discount-stores
---

*/
/*doc
---
title: Range Slider
name: range_slider
category: Search Application - Filters
authors: Jon Lewis
template:
    demo_type: filter
    model:
        id: moons
        type: range-slider
        range: [0, 10]
        value: [2, 7]
        step: 1
        label: Moons
        histogram_data: [2, 4, 5, 6, 7, 8, 5, 3, 3, 2]
---

*/
/*doc
---
title: Anchor
name: anchor
category: Search Application - Filters
authors: Jon Lewis
template:
    demo_type: filter
    model:
        id: top-50
        type: anchor
        value: /school-search/top-50
        label: Top 50 Schools
---

Sometimes we want to link to a preset (canned) search. We can include an anchor
filter to show a link to a route URL in the form, and allow the app to capture it.

*/
.search-filter-help {
  margin-left: 27px; }

.search-filter .tt-menu {
  -webkit-box-shadow: 0px 2px 6px 0px rgba(0, 0, 0, 0.25);
  -moz-box-shadow: 0px 2px 6px 0px rgba(0, 0, 0, 0.25);
  box-shadow: 0px 2px 6px 0px rgba(0, 0, 0, 0.25);
  border-color: #DDDDDD !important;
  max-height: 308px;
  overflow: auto; }

.search-filter .tt-suggestion {
  border-bottom: 1px solid #DDDDDD; }

/*doc
---
title: Form
name: _form
category: Search Application - Form
authors: Jon Lewis
---
*/
@media not screen and (min-width: 64em) {
  .search-form-view {
    padding-bottom: 4rem; } }

.search-filter-group-lock-icon {
  position: relative;
  top: -1px; }

.search-filter-group-toggle {
  transition-duration: 300ms;
  transform: rotate(180deg); }

html.js .search-filter-group.is-collapsed .search-filter-container {
  overflow: hidden; }

html.js .search-filter-group.is-collapsed:not(.is-animating) .search-filter-container {
  height: 0; }

html.js .search-filter-group.is-collapsed .search-filter-group-toggle {
  transform: rotate(0deg); }

.search-filter-group:not(.is-collapsible) .search-form-tag,
.search-filter-group.is-collapsible:not(.is-collapsed) .search-form-tag {
  display: none; }

.search-filter-group-heading {
  color: #333333; }

.search-filter-group:not(.is-collapsible) .search-filter-group-heading {
  cursor: default; }

.sponsored-bg {
  background: #f1f1f1; }

.search-result {
  margin-bottom: 2rem;
  box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5);
  overflow: hidden; }
  .search-result.sponsored {
    background: #f1f1f1; }
    .search-result.sponsored .table td {
      background: #f1f1f1; }

.sponsored-indicator {
  background: #ddd;
  display: inline-block;
  letter-spacing: 1px;
  padding: 2px 10px;
  color: blue; }

.ad-indicator {
  background: #c0ddf2;
  display: inline-block;
  letter-spacing: 1px;
  padding: 2px 6px;
  margin-top: -4px;
  line-height: 15px;
  vertical-align: middle; }
  .ad-indicator.ad-indicator--corner {
    margin-top: initial;
    top: 0;
    right: 0;
    position: absolute; }
  .ad-indicator.ad-indicator--corner-bottom {
    position: absolute;
    right: 0;
    bottom: 0; }

.search-result-content {
  margin-bottom: 0.5rem;
  overflow: hidden;
  padding-left: 0.9375rem;
  padding-right: 0.9375rem;
  padding-top: 0.9375rem;
  position: relative; }

.ellipsis {
  max-height: 40px;
  overflow-y: hidden;
  text-align: justify;
  white-space: normal !important;
  position: relative; }
  .ellipsis .ellipsis-show {
    padding-left: 5px;
    color: #2c7ef0;
    background-color: white;
    position: absolute;
    bottom: -2px;
    right: 0; }
    .ellipsis .ellipsis-show:before {
      content: '... ';
      padding-left: 40px;
      color: black;
      position: absolute;
      bottom: 0;
      font-size: inherit;
      left: -48px;
      background: -moz-linear-gradient(left, rgba(255, 255, 255, 0) 0%, white 70%);
      /* FF3.6-15 */
      background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, white 70%);
      /* Chrome10-25,Safari5.1-6 */
      background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, white 70%);
      /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */ }
  .ellipsis.sponsored-bg .ellipsis-show {
    background-color: #f1f1f1; }
    .ellipsis.sponsored-bg .ellipsis-show:before {
      background: -moz-linear-gradient(left, rgba(241, 241, 241, 0) 0%, #f1f1f1 70%);
      /* FF3.6-15 */
      background: -webkit-linear-gradient(left, rgba(241, 241, 241, 0) 0%, #f1f1f1 70%);
      /* Chrome10-25,Safari5.1-6 */
      background: linear-gradient(to right, rgba(241, 241, 241, 0) 0%, #f1f1f1 70%);
      /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */ }
  .ellipsis p {
    font-size: 0.875rem; }
  @media only screen and (min-width: 321px) and (max-device-width: 768px) and (orientation: landscape) {
    .ellipsis {
      text-align: left; } }

.sponsored-bug {
  position: relative;
  top: -3px;
  width: 30px; }

.search-result-panel {
  padding-top: 0.9375rem;
  background: #ecedf1; }
  .search-result-panel p {
    line-height: 1; }

.doctors-hospitals .search-result a.heading-larger {
  line-height: 1.3; }

.doctors-hospitals .search-result .flex-small {
  padding-left: 0.5rem; }

.search-result-animation-standby {
  display: none; }

.has-overlay {
  position: relative; }

.is-overlay {
  position: absolute; }
  .is-overlay.bottom-left {
    left: 6%;
    bottom: 6%; }

.dos-and-donts-overlay {
  background: rgba(0, 0, 0, 0.5);
  color: white;
  padding: 0.2rem 0.5rem;
  border-radius: 4px;
  font-size: 0.8rem; }

.search-hud hr {
  margin-top: 0;
  margin-bottom: 0; }

.search-hud-sticky-row.is-stuck {
  z-index: 575;
  -webkit-box-shadow: 0 0 0.3125rem 0 rgba(0, 0, 0, 0.5);
  -moz-box-shadow: 0 0 0.3125rem 0 rgba(0, 0, 0, 0.5);
  box-shadow: 0 0 0.3125rem 0 rgba(0, 0, 0, 0.5);
  position: fixed;
  top: 0px;
  width: 100%;
  background: #fff; }

.search-hud-details {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  -webkit-justify-content: space-between;
  -moz-justify-content: space-between;
  justify-content: space-between;
  -webkit-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  -moz-align-items: center;
  align-items: center;
  line-height: 4;
  white-space: nowrap; }

@media not screen and (min-width: 64em) {
  .search-hud-details-large-only {
    display: none; } }

@media only screen and (min-width: 64em) {
  .search-hud-details-small-medium {
    display: none; } }

.search-hud-options {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  -moz-align-items: center;
  align-items: center; }

select.search-hud-sort-options {
  padding-top: 0;
  padding-bottom: 0; }

.search-hud-match-display-options {
  margin-left: 1.25rem; }

.search-hud-match-display-option {
  display: inline-block;
  margin-left: 0.625rem;
  padding-left: 0.625rem;
  border-left: 1px solid #DDDDDD; }

.search-hud-match-display-option:first-child {
  margin-left: 0;
  padding-left: 0;
  border-left: none; }

.search-hud-match-display-option-small-medium {
  line-height: 2.5;
  border-top: 1px solid #DDDDDD;
  border-bottom: 1px solid #DDDDDD;
  border-left: 1px solid #DDDDDD; }

.search-hud-match-display-option-small-medium:first-child {
  border-left: none; }

.search-hud-busy-indicator {
  display: none; }

.is-busy .search-hud-busy-indicator {
  display: inline-block;
  width: 32px;
  height: 32px; }

.search-hud-refine-button button {
  padding-left: 1.875rem !important;
  padding-right: 1.875rem !important; }

@media only screen and (min-width: 64em) {
  .search-hud-refine-button {
    display: none; } }

@media not screen and (min-width: 64em) {
  .search-hud-facets {
    background: #e1e2e6;
    padding-top: 1.25rem;
    padding-bottom: 0.6875rem;
    white-space: nowrap;
    overflow-y: auto; } }

.search-hud-facets-list {
  margin-left: 0;
  display: inline; }
  .search-hud-facets-list li {
    display: inline-block;
    margin-left: 0;
    position: relative;
    top: -1px; }
  @media only screen and (min-width: 64em) {
    .search-hud-facets-list {
      display: block; }
      .search-hud-facets-list li {
        float: left;
        top: 0px; } }

/*doc
---
title: Stickable
name: stickable
category: Stickies - Stickable
authors: Paul Pechin
---
*/
.stickable {
  background-color: #c6c7ca;
  bottom: 0;
  margin-top: -10px;
  padding: 5px 0.9375rem;
  position: relative;
  width: 100%; }
  .stickable:before, .stickable:after {
    content: "";
    display: table; }
  .stickable:after {
    clear: both; }
  .stickable.is-stuck {
    z-index: 300;
    bottom: auto;
    box-shadow: 0 0 0.3125rem 0 rgba(0, 0, 0, 0.5);
    margin-top: -10px;
    padding-top: 10px;
    position: fixed;
    top: 0; }
  @media not screen and (min-width: 64em) {
    .stickable.is-fixed {
      z-index: 300;
      bottom: auto;
      margin-top: -10px;
      padding-top: 10px;
      position: fixed;
      top: 0; } }
  .stickable .stateful {
    display: none; }
  .stickable[data-state=default] .stateful[data-active-state=default] {
    display: inline-block; }
  .stickable[data-state=sorting] .stateful[data-active-state=sorting] {
    display: inline-block; }

.stickable-content-primary {
  height: 45px;
  float: left; }
  .stickable-content-primary:before, .stickable-content-primary:after {
    content: "";
    display: table; }
  .stickable-content-primary:after {
    clear: both; }
  .stickable-content-primary > * {
    display: inline-block;
    vertical-align: middle; }
  .stickable-content-primary:before {
    content: '';
    display: inline-block;
    height: 100%;
    vertical-align: middle; }
  @media only screen and (min-width: 64em) {
    .stickable-content-primary {
      display: none; } }
  .stickable-content-primary > .button {
    margin-bottom: 0; }

.stickable-content-secondary {
  height: 45px;
  float: right;
  text-align: right; }
  .stickable-content-secondary:before, .stickable-content-secondary:after {
    content: "";
    display: table; }
  .stickable-content-secondary:after {
    clear: both; }
  .stickable-content-secondary > * {
    display: inline-block;
    vertical-align: middle; }
  .stickable-content-secondary:before {
    content: '';
    display: inline-block;
    height: 100%;
    vertical-align: middle; }

/*doc
---
title: Basic Hero
name: a-hero
category: Hero Units - Hero Units
selectors:
    - .hero
selector_type: component
---
{% set editor_id = uuid() %}

```nunjucks_tab?editor-id={{editor_id}}
    {% set hero = {
            'heading': 'Cartoons',
            'hType': 'h2',
            'social': true,
            'noHeroContent': true,
            'breadcrumbs': [
                {
                  "url": "/news",
                  "name": "News"
                },
                {
                  "url": "/news/cartoons",
                  "name": "Cartoons"
                }
            ]
        }
    %}

    {% include "templates/common/hero/hero-basic.nunj" %}
```

*/
/*doc
---
title: Hero Large Badge
name: c-hero
category: Hero Units - Hero Units
selectors:
    - .hero
selector_type: component
template:
    hero:
        containerClasses: 'block-looser'
        hType: h2
        breadcrumbs:
          - name: News
            url: "//www.usnews.com/news"
          - name: Opinion
            url: "//www.usnews.com/opinion"
          - name: Op-Ed
            url: "//www.usnews.com/news/opinion/op-ed"
          - name: Moving Beyond Bubble Tea in 2016
            url: "//www.usnews.com/opinion/articles/2016-05-13/asian-american-voters-are-left-behind-in-the-2016-presidential-election"
        heading: Best Colleges Rankings and Lists
        text: 'U.S. News provides nearly 50 different types of numerical rankings and lists to help students narrow their college search. From <a href="/best-colleges/rankings/national-universities">National Universities</a> and <a href="/best-colleges/rankings/national-liberal-arts-colleges">Liberal Arts Colleges</a> to <a href="/best-colleges/rankings/national-universities/a-plus">A-Plus Schools for B Students</a>, find the right one for you.'
        social: true
        artUrl: /static/img/badge-generic-best-gold.svg
---

{% set editor_id = uuid() %}

```nunjucks_tab?editor-id={{editor_id}}
    {% set heroMeta %}
        <p class="text-muted">{{hero.text | safe}}</p>
        <p class="block-flush">
            <svg class="icon">
                <use xlink:href="/static/sprites/svg/sprite.symbol.svg#methodology"/>
            </svg>
            <a href="http://www.usnews.com/education/best-colleges/articles/rankings-methodologies">Read the Best Colleges methodology</a>
        </p>
    {% endset %}

    {% include "templates/common/hero/hero-badge-large.nunj" %}
```

*/
/*doc
---
title: Hero Small Badge
name: d-hero
category: Hero Units - Hero Units
selectors:
    - .hero
selector_type: component
template:
  hero:
    hType: h2
    social: true
    art:
      src: "/static/img/jobs/badge-generic-best-jobs.svg"
      shape: square
    heading: Web Developer
    subheading: Overview
    ranking_info:
      score: Overall Score 7.4 / 10
      link: https://money.usnews.com/careers/best-jobs/rankings/best-technology-jobs
      name: Best Technology Jobs
      rank: 3
---

{% set editor_id = uuid() %}

```nunjucks_tab?editor-id={{editor_id}}
  {% set hero = hero | setObjDefaults(
          {
              'artUrl': hero.art.src
          }
      )
  %}

  {% set heroMeta %}
      {{ hero.info | safe }}
      {% if hero.ranking_info %}
          <div class="hero-meta hero-ranking-data">
              <p class="block-flush">
                  <img src="{{ static_img_path }}/mini-badge-color.svg" alt="badge" height="22" width="22" class="hide-for-medium-up">
                  <strong>} in</strong>
                  <a href="{{ hero.ranking_info.link }}">{{ hero.ranking_info.name }}</a><span class="hide-for-small-only"> | <strong>{{ hero.ranking_info.score }}</strong></span>
              </p>
          </div>
      {% endif %}
      {% if hero.text %}
         <p class="block-flush text-strong text-muted">{{ hero.text | safe }}</p>
      {% endif %}
  {% endset %}

  {% include "templates/common/hero/hero-badge-small.nunj" %}
```

*/
/*doc
---
title: Hero for Articles
name: b-hero
category: Hero Units - Hero Units
selectors:
    - .hero
selector_type: component
template:
    hero:
        hType: h2
        breadcrumbs:
          - name: News
            url: "//www.usnews.com/news"
          - name: Opinion
            url: "//www.usnews.com/opinion"
          - name: Op-Ed
            url: "//www.usnews.com/news/opinion/op-ed"
          - name: Moving Beyond Bubble Tea in 2016
            url: "//www.usnews.com/opinion/articles/2016-05-13/asian-american-voters-are-left-behind-in-the-2016-presidential-election"
        heading: Moving Beyond Bubble Tea
        social: true
        authors:
          - role: Contributor
            name: Lynda Tran
            permalink: "/topics/author/lynda_tran"
        subheading: U.S. News evaluated 38 of the most popular diets and identified the best. Find which top-rated diet is best for your health and fitness goals.
---

Just include `templates/common/hero/hero-article.nunj`.

{% set editor_id = uuid() %}


```nunjucks_tab?editor-id={{editor_id}}

{% include "templates/common/hero/hero-article.nunj" %}

```

*/
.hero {
  padding-top: 27px;
  position: relative;
  background-color: #EAF0F1;
  box-shadow: 0 0 0.3125rem 0 rgba(0, 0, 0, 0.5); }

.hero-content-container {
  margin-bottom: 26px; }

.hero-social {
  margin-bottom: 20px;
  display: block; }
  @media (min-width: 48em) {
    .hero-social {
      position: absolute;
      right: 15px;
      top: -40px; } }

.hero-breadcrumbs {
  margin-top: -7px;
  margin-bottom: 16px; }

.hero-heading {
  font-size: 1.875rem !important;
  font-weight: 500; }
  @media (min-width: 40.0625em) {
    .hero-heading {
      font-size: 2.25rem !important; } }

.hero {
  position: relative;
  background-color: #EAF0F1;
  box-shadow: 0 0 0.3125rem 0 rgba(0, 0, 0, 0.5); }

.hero.tight {
  padding-top: 30px;
  padding-bottom: 30px; }

.hero.loose {
  padding-top: 50px;
  padding-bottom: 50px; }

@media only screen and (max-width: 40em) {
  .hero.tight-for-small {
    padding: 30px 0; } }

.hero-ranking-data img {
  vertical-align: sub; }

@media only screen and (min-width: 64em) {
  .hero-ranking-data {
    float: left; } }

.hero-ranking-data-rank {
  display: inline-block; }
  .hero-ranking-data-rank > span {
    display: inline;
    margin-left: 10px; }
    .hero-ranking-data-rank > span strong {
      padding-left: 10px; }

.hero-pubdate {
  display: block; }
  @media (min-width: 48em) {
    .hero-pubdate {
      display: inline;
      margin-left: 1.25rem; } }

.hero-sticky-bar {
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: center;
  justify-content: center;
  box-shadow: 0px 0px 0.375rem 0px rgba(0, 0, 0, 0.5);
  background-color: #fff;
  min-width: 100%; }
  @media only screen and (min-width: 40.0625em) {
    .hero-sticky-bar {
      width: 100%;
      padding: 10px 0px; } }
  @media only screen and (max-width: 40em) {
    .hero-sticky-bar {
      width: 100%;
      padding-right: 0.9375rem;
      padding-left: 0.9375rem;
      max-height: 52px; } }
  .hero-sticky-bar .hero-sticky-bar-inner {
    display: flex;
    display: -webkit-flex;
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-align-items: center;
    align-items: center;
    width: 100%; }
    @media only screen and (max-width: 40em) {
      .hero-sticky-bar .hero-sticky-bar-inner {
        max-width: 40.5rem; } }
    @media only screen and (min-width: 40.0625em) {
      .hero-sticky-bar .hero-sticky-bar-inner {
        max-width: 90.5rem; } }
    @media only screen and (min-width: 64em) {
      .hero-sticky-bar .hero-sticky-bar-inner {
        max-width: 120.5rem; } }

.hero-sticky-bar-container {
  z-index: 710;
  top: -200px;
  transition: all 300ms ease-in;
  position: fixed;
  width: 100%; }

.hero-sticky-bar-container.fixed {
  z-index: 710;
  transition: all 300ms ease-out;
  position: fixed;
  top: 0; }

.heroheading {
  white-space: nowrap;
  width: 40%; }

@media only screen and (max-width: 40em) {
  .nav-follow-mobile li {
    display: inline-block; } }

/* This is an override for Countries sticky bar
 * TODO: find a more optimal solution
 * Override breakpoints used by the generic new sticky */
.countries-sticky-bar .hero-sticky-bar {
  padding: 10px 15px; }
  @media only screen and (min-width: 40.0625em) {
    .countries-sticky-bar .hero-sticky-bar {
      max-width: 60.5rem;
      width: 100%; } }
  @media only screen and (min-width: 64em) {
    .countries-sticky-bar .hero-sticky-bar {
      padding-left: 0;
      padding-right: 0; } }
  @media only screen and (max-width: 40em) {
    .countries-sticky-bar .hero-sticky-bar {
      max-width: 60.5rem;
      width: 100%; } }

@media only screen and (min-width: 40.0625em) {
  .countries-sticky-bar .hero-sticky-bar-inner {
    -webkit-justify-content: space-between;
    justify-content: space-between;
    max-width: 60.5rem; } }

.hero-bg-image-container {
  position: absolute;
  top: 0px;
  bottom: 0px;
  left: 0px;
  right: 0px;
  overflow: hidden;
  z-index: 1; }

.hero-bg-image {
  display: none; }
  @media (min-width: 63.9375em) {
    .hero-bg-image {
      background-position: 50% 50%;
      background-repeat: no-repeat;
      background-size: cover;
      display: block;
      position: absolute;
      top: -8px;
      bottom: -8px;
      left: -8px;
      right: -8px;
      z-index: 1;
      -o-filter: blur(4px);
      -ms-filter: blur(4px);
      -moz-filter: blur(4px);
      -webkit-filter: blur(4px);
      filter: blur(4px); }
      .no-blur .hero-bg-image {
        -o-filter: none;
        -ms-filter: none;
        -moz-filter: none;
        -webkit-filter: none;
        filter: none; }
      .hero-bg-image:before {
        background: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.3));
        bottom: 0;
        content: "";
        left: 0;
        position: absolute;
        right: 0;
        top: 0;
        z-index: 2; } }

.hero.has-floating-widget {
  position: relative; }
  .hero.has-floating-widget > .flex-row {
    position: relative;
    z-index: 3; }
  .hero.has-floating-widget .social-media {
    position: absolute;
    min-width: initial;
    top: -25px;
    right: 10px; }
    @media (min-width: 40.0625em) {
      .hero.has-floating-widget .social-media {
        right: 20px;
        top: -10px; } }
    .hero.has-floating-widget .social-media .button.img {
      background: transparent;
      font-weight: bold;
      padding: 0.3125rem; }
      .hero.has-floating-widget .social-media .button.img > .icon {
        fill: #999; }

@media (min-width: 63.9375em) {
  .hero.has-photo-cover {
    color: #fff; }
    .hero.has-photo-cover .hero-heading {
      color: #fff; }
    .hero.has-photo-cover .hero-ranking-data-contact a,
    .hero.has-photo-cover .hero-ranking-data-rank a,
    .hero.has-photo-cover .ranked-in-category,
    .hero.has-photo-cover .breadcrumbs > * a,
    .hero.has-photo-cover .footnote-link a,
    .hero.has-photo-cover .hero-social .social,
    .hero.has-photo-cover .block-flush a {
      color: #c0ddf2; }
    .hero.has-photo-cover .hero-ranking-data-contact {
      color: #DDE1E2; }
    .hero.has-photo-cover .hero-social .social > .icon {
      fill: #c0ddf2;
      -webkit-filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.5));
      -moz-filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.5));
      filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.5)); }
    .hero.has-photo-cover .breadcrumbs li,
    .hero.has-photo-cover .breadcrumbs li > a,
    .hero.has-photo-cover .hero-heading,
    .hero.has-photo-cover .hero-ranking-data,
    .hero.has-photo-cover .hero-photos a,
    .hero.has-photo-cover .hero-social > .flex > a,
    .hero.has-photo-cover .hero-social > .flex-full-width > a,
    .hero.has-photo-cover .hero-social > .button.divided > a,
    .hero.has-photo-cover .hero-social > .diet-tooltip-matches > a {
      text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5); } }

.hero-photos {
  margin-bottom: 20px;
  width: 100%; }
  @media (min-width: 63.9375em) {
    .hero-photos {
      margin-top: 20px; } }

@media (min-width: 63.9375em) {
  .hero-photos-listing {
    align-items: center;
    display: flex; } }

.hero-photos-listing-item {
  border: 1px solid #ccc;
  float: left;
  margin-bottom: 10px;
  margin-right: 0.5%;
  max-width: 33%;
  -ms-flex: 0 0 auto; }
  .hero-photos-listing-item:nth-child(3) {
    margin-right: 0; }
  .hero-photos-listing-item:nth-child(n + 4) {
    display: none; }
    @media (min-width: 63.9375em) {
      .hero-photos-listing-item:nth-child(n + 4) {
        display: block; } }
  @media (min-width: 63.9375em) {
    .hero-photos-listing-item {
      float: none;
      margin-right: 12px;
      margin-bottom: 0;
      max-width: 114px; }
      .hero-photos-listing-item:nth-child(3) {
        margin-right: 12px; } }
  .hero-photos-listing-item img {
    display: block; }

.hero-photos-listing-link {
  color: #2c7ef0;
  display: block;
  float: left;
  font-size: 14px;
  font-weight: bold;
  width: 100%; }
  .hero-photos-listing-link:hover {
    color: #2262bb; }
  @media (min-width: 63.9375em) {
    .hero-photos-listing-link {
      float: none;
      font-weight: normal;
      width: 100px; }
      .hero-photos-listing-link:hover {
        color: #fff; }
      .has-photo-cover .hero-photos-listing-link {
        color: #fff; }
        .has-photo-cover .hero-photos-listing-link:hover {
          color: #999; } }

.hero-stats-widget {
  color: #333;
  margin-bottom: 20px;
  width: 100%; }
  @media (min-width: 63.9375em) {
    .hero-stats-widget {
      -webkit-box-shadow: 0 0 5px 0 #aaa;
      -moz-box-shadow: 0 0 5px 0 #aaa;
      box-shadow: 0 0 5px 0 #aaa;
      background: #fff;
      color: #333; }
      .-shift-up .hero-stats-widget {
        margin-top: -190px; }
      .-shift-up-center .hero-stats-widget {
        margin-top: -222px; }
      .-shift-up-higher .hero-stats-widget {
        margin-top: -315px; } }
  .hero-stats-widget h4 {
    font-weight: bold;
    font-size: 16px; }

.hero-stats-widget-header {
  background: #10294B;
  padding: 8px; }
  .hero-stats-widget-header h3 {
    color: #fff;
    font-size: 20px;
    font-weight: 500;
    margin: 0;
    text-align: center; }

.hero-stats-widget-links,
.hero-stats-widget-stats,
.hero-stats-widget-stats-2,
.hero-stats-widget-compass,
.hero-stats-widget-footer {
  border-bottom: 1px solid #ddd;
  padding: 12px; }

.hero-stats-widget-stats ul {
  list-style: none;
  margin: 0;
  padding: 0; }
  .hero-stats-widget-stats ul li {
    margin: 0; }
    .hero-stats-widget-stats ul li:before, .hero-stats-widget-stats ul li:after {
      content: "";
      display: table; }
    .hero-stats-widget-stats ul li:after {
      clear: both; }
    .hero-stats-widget-stats ul li > span {
      float: left;
      margin-top: 3px;
      text-transform: uppercase;
      font-size: 10px;
      color: #aaa;
      font-weight: bold; }
    .hero-stats-widget-stats ul li strong {
      float: right;
      max-width: 70%;
      text-align: right; }

.hero-stats-widget-stats-2 ul {
  margin: 0;
  padding: 0; }
  .hero-stats-widget-stats-2 ul li {
    display: table; }
  .hero-stats-widget-stats-2 ul .icon.pro, .hero-stats-widget-stats-2 ul .icon.con {
    display: table-cell;
    margin-top: 3px;
    margin-right: 5px; }
  .hero-stats-widget-stats-2 ul .list-text {
    display: table-cell;
    vertical-align: top; }

.hero-stats-widget-links,
.hero-stats-widget-compass {
  display: flex;
  flex-wrap: wrap; }
  .hero-stats-widget-links ul > li,
  .hero-stats-widget-compass ul > li {
    margin-left: 0;
    width: 50%; }
  .hero-stats-widget-links a,
  .hero-stats-widget-compass a {
    display: block;
    font-weight: bold; }

.hero-stats-compass-rail {
  z-index: 500;
  position: fixed;
  left: 5%;
  bottom: 10px;
  width: 90%; }
  .hero-stats-compass-rail a:first-of-type {
    border-radius: 3px 0 0 3px;
    -webkit-border-bottom-left-radius: 3px;
    -webkit-border-top-left-radius: 3px; }
  .hero-stats-compass-rail a:last-of-type {
    border-radius: 0 3px 3px 0;
    -webkit-border-bottom-right-radius: 3px;
    -webkit-border-top-right-radius: 3px; }

.hero-stats-widget-footer {
  background: #eee;
  border-bottom: none; }

.hero-commentary-banner {
  text-transform: uppercase;
  border: 1px solid #c4212a;
  color: #c4212a;
  padding: 5px 8px 4px 8px;
  margin-bottom: 1rem;
  display: inline-block;
  font-size: 0.75rem; }

/*doc
---
title: Error Pages
name: a-error-pages
category: Error Patterns - Error Pages
selectors:
    - .error
    - .error-heading
template:
    status_code: 404
---

Patterns for 404, 410 and 500 error page content

```html_example
<div class="flex-row">
    <div class="flex-small small-middle small-center">
        {% set status_code = 404 %} 
        {% include "templates/common/error.nunj" %}
    </div>
</div>
<div class="flex-row">
    <div class="flex-small small-middle small-center">
        {% set status_code = 410 %} 
        {% include "templates/common/error.nunj" %}
    </div>
</div>
<div class="flex-row">
    <div class="flex-small small-middle small-center">
        {% set status_code = 500 %} 
        {% include "templates/common/error.nunj" %}
    </div>
</div>
```

*/
.page-error {
  margin: 2.875rem auto; }
  @media (min-width: 63.9375em) {
    .page-error {
      margin: 5.125rem auto; } }

.page-error-heading {
  font-size: 6.5625rem; }
  @media (min-width: 63.9375em) {
    .page-error-heading {
      font-size: 10.9375rem; } }

/*doc
---
title: Rectangle Ad
name: a-ad-rectangle
category: Ads - Ads
selectors:
    - .ad
---

Example of a rectangle ad that is in the main body (shows only in small-medium)

You'll want a surrounding div that sets padding after ad before next element, for example `.block-looser` or `.bordered-bottom`

```html_example?kitchen-sink=true
<main><!-- example of where it would be in the layout -->

    <div class="block-looser">
        {% include "templates/common/ads/rectangle-a.nunj" %}
    </div>

</main>

```

Example of an ad that is in the rail (which only appear in large-up)

The rail ad has no padding outside of the ad

To each component in the rail, add the class `.border-bottom` to add the standard 25px + line + 25px spacing between components in the rail

```html_example?kitchen-sink=true
<aside id="rail"><!-- example of where it would be in the layout -->

    <div class="bordered-bottom show-for-large-up">
        {% include "templates/common/ads/rectangle-a-mobile.nunj" %}
    </div>

</aside>
```
*/
.ad {
  opacity: 0;
  -webkit-transition: opacity 0.75s ease-in;
  -moz-transition: opacity 0.75s ease-in;
  -ms-transition: opacity 0.75s ease-in;
  -o-transition: opacity 0.75s ease-in;
  transition: opacity 0.75s ease-in;
  transform: translateZ(0); }

.ad.displayAd-block {
  opacity: 1; }

/*doc
---
title: Brandfuse Ad
name: b-ad-brandfuse
category: Ads - Ads
selectors:
    - .ad-brandfuse
---


```html_example?kitchen-sink=true

{% include "templates/common/ads/brandfuse.nunj" %}

```
*/
.ad-brandfuse {
  padding: 0 15px; }

.brandfuse-box {
  border: 1px solid #ffc14e; }
  .brandfuse-box .brandfuse-label-wrapper {
    margin: 0 auto; }
  .brandfuse-box .label.brandfuse {
    width: 100%; }
    @media (min-width: 40.0625em) {
      .brandfuse-box .label.brandfuse {
        width: auto; } }

.brandfuse-ad {
  padding: 0.75rem;
  height: auto;
  margin-top: 0; }
  .brandfuse-ad .media-object {
    width: 75px;
    height: 75px; }
    @media only screen and (min-width: 40.0625em) {
      .brandfuse-ad .media-object {
        width: 298px;
        height: 198px; } }
  .brandfuse-ad .media-heading {
    margin-top: -3px;
    line-height: 1.25; }
    @media only screen and (min-width: 40.0625em) {
      .brandfuse-ad .media-heading {
        font-size: 1.5rem !important; } }

@media only screen and (min-width: 40.0625em) {
  .brandfuse-sponsor {
    display: inline-block; }
  .brandfuse-tagline {
    margin-top: 5px; } }

/*doc
---
title: House Ad
name: c-ad-house
category: Ads - Ads
selectors:
    - .ad-house
---

These are different version of internally promoted ads, ie. House Ads

```html_example?kitchen-sink=true
<div class="small-12 medium-4"><!-- styling to emulate the rail -->

<div class="ad-house clearfix">
    <h3>More from Laura</h3>
    <div class="left small-8">
        <p>Laura can use this widget to promote the book she wrote last year.</p>
        <p class="ad-house-link"><a href="#">Link to purchase &raquo;</a></p>
        <p class="ad-house-link"><a href="#">Link to Laura's blog &raquo;</a></p>
    </div>
    <div class="right small-4">
        <img src="http://lorempixel.com/88/115/people/" alt="">
    </div>
</div>

</div>
```

This example has an show more link and uses secondary link colors, referenced by `a.dotted`

```html_example
<div class="small-12 medium-4"><!-- styling to emulate the rail -->

<div class="ad-house clearfix">
    <h3>Now Hiring</h3>
    <div>
        <p><a href="#">RN, LPN, CNA</a></p>
        <p><a href="#" class="dotted">Lourdes Health Care</a> - Wilton, CT</p>
        <p>RN, LPN &amp; CNA Lourdes Health Care, Wilton has part-time opportunities for RN, LPN and CPA on all shifts, includes every other weekend... <a href="#">more</a></p>
        <p class="ad-house-link"><a href="#">More jobs &raquo;</a></p>
    </div>
</div>

</div>
```

In this example you have a right aligned image with text wrapping around it.

```html_example
<div class="small-12 medium-4"><!-- styling to emulate the rail -->

    <div class="ad-house">
        <h3>The Run 2016</h3>
        <p class="block-flush"><img src="/static/img/circle-therun-icon.svg" alt="" align="top" class="ad-house-inline-image">The Run 2016 covers the machinations of the race for the White House, with news, analysis and pithy. David Catanese is the founder of The Run 2016.  You can follow him on <a href="#" alt="">Twitter</a> or reach him at <a href="#" alt="">dcatanese@usnews.com</a></p>
    </div>

</div>
```
*/
.ad-house {
  list-style-type: none; }
  .ad-house:before, .ad-house:after {
    content: "";
    display: table; }
  .ad-house:after {
    clear: both; }
  .ad-house > h3 {
    font-size: 1.5rem;
    font-weight: 500;
    line-height: 1; }
  .ad-house > .left > img,
  .ad-house > .left > picture > img {
    padding-right: 0.9375rem; }
  .ad-house > .right > img,
  .ad-house > .right > picture > img {
    padding-left: 0.9375rem; }
  .ad-house p.ad-house-link {
    margin-bottom: 0.625rem; }

.ad-house-inline-image {
  float: right;
  margin-left: 0.9375rem;
  max-width: 6.25rem; }
  @media only screen and (min-width: 40.0625em) {
    .ad-house-inline-image {
      max-width: 9.375rem; } }
  @media only screen and (min-width: 64em) {
    .ad-house-inline-image {
      max-width: 6.25rem; } }

/*doc
---
title: Leaderboard Ad
name: d-ad-leaderboard
category: Ads - Ads
---

Quick and dirty sticky leaderboard

```html_example?kitchen-sink=true

{% include "templates/common/ads/leaderboard-a.nunj" %}

```

*/
.ad-leaderboard {
  text-align: center; }

.ad-rectangle {
  min-height: 250px; }

.leaderboard-a-container {
  background-color: #10294B; }

.ad-leaderboard-a {
  z-index: 700;
  position: relative;
  width: 100%;
  min-height: 120px;
  padding-top: 15px;
  padding-bottom: 15px;
  z-index: 700 !important; }

@media (max-width: 63.875em) {
  .ad-leaderboard-a.show-for-large-up {
    display: none !important; } }

@media only screen and (min-width: 64em) {
  .ad-leaderboard-a:not('is-hidden') + .leaderboardA-sticky {
    height: 120px; } }

#rect_h {
  min-height: 250px; }

#hlb,
#hlbSS {
  min-height: 50px; }

/*doc
---
title: Sticky Ad
name: d-ad-sticky
category: Ads - Ads
selectors:
    - .rail-sticky
---

Make rail content sticky using `.rail-sticky` with data attributes

The purpose to keep a second ad showing to increase ad revenue when the user scrolls

See `_stickable.scss` file for more on styling sticky objects

```html_example

<div class="rail-sticky">
    <div class="bordered-bottom">
        {% include "templates/common/ads/rectangle-b.nunj" %}
    </div>

    <div class="js-sleeper-agent" data-agent-id="house-ad" data-agent-trigger="BREAKPOINT-LARGE">
    </div>

</div>

```

*/
.rail-sticky {
  z-index: 1;
  padding-bottom: 30px;
  left: auto !important; }
  @media (max-width: 63.875em) {
    .rail-sticky {
      position: static !important; } }

.offcanvas-open .rail-sticky {
  position: static !important; }

.skin {
  display: none;
  background-repeat: repeat-x;
  cursor: pointer;
  width: 0;
  height: 100vh;
  margin: 0;
  padding: 0;
  position: fixed;
  top: 0; }

.skin#skin-left {
  left: 0;
  background-position: right top; }

.skin#skin-right {
  right: 0;
  background-position: left top; }

.skin-img {
  position: relative;
  top: 25%;
  width: 100%; }

#ad-bg {
  -webkit-transition: -webkit-transform 500ms ease;
  -moz-transition: -moz-transform 500ms ease;
  -ms-transition: -ms-transform 500ms ease;
  -o-transition: -o-transform 500ms ease;
  transition: transform 500ms ease; }

.offcanvas-open #ad-bg {
  -webkit-transform: translate3d(-15.625rem, 0, 0);
  -moz-transform: translate3d(-15.625rem, 0, 0);
  -ms-transform: translate(-15.625rem, 0);
  -ms-transform: translate3d(-15.625rem, 0, 0);
  -o-transform: translate3d(-15.625rem, 0, 0);
  transform: translate3d(-15.625rem, 0, 0); }

.rankdesc > div {
  display: inline; }

.rankdesc:before {
  content: 'Sponsored by:';
  display: inline;
  color: #999999;
  font-size: 0.875rem;
  margin-right: 5px;
  position: relative;
  top: -2px; }

#stitial > div {
  overflow: hidden;
  height: 0; }

/*doc
---
title: Adhesion
name: d-ad-adhesion
category: Ads - Ads
---

An ad position to be fixed at the bottom of the page.

```html_example

{% include "templates/common/ads/adhesion.nunj" %}

```
*/
.adhesion-wrapper {
  z-index: 800;
  position: fixed;
  bottom: 0;
  height: auto;
  width: 100%; }

.ad-adhesion {
  position: relative;
  height: 50px;
  width: 100%;
  overflow-y: visible; }

.adhesion-close {
  display: inline-block;
  height: 32px;
  width: 38px;
  background: transparent url(/static/img/close-icon-2x.svg) 100% 0 no-repeat;
  border-radius: 50%;
  position: absolute;
  top: -11px;
  left: 47%;
  transform: translateX(135px);
  visibility: hidden;
  opacity: 0;
  -webkit-transition: opacity 0.75s ease-in;
  -moz-transition: opacity 0.75s ease-in;
  -ms-transition: opacity 0.75s ease-in;
  -o-transition: opacity 0.75s ease-in;
  transition: opacity 0.75s ease-in; }

.adhesion-spacer {
  background-color: #10294B;
  position: static;
  bottom: 0;
  height: 50px; }

.stitial {
  background-image: url(/static/images/ah/crsl-title-bg.png);
  text-align: center;
  /* put this in the js for safety */
  height: 100%;
  width: 100%;
  position: fixed;
  top: 0px;
  z-index: 99999;
  opacity: 0;
  transition: opacity 1s ease-in-out;
  -moz-transition: opacity 1s ease-in-out;
  -webkit-transition: opacity 1s ease-in-out; }

.stitial_box {
  border: 1px solid #000;
  -moz-box-shadow: 0px 0px 3px 3px #000;
  -webkit-box-shadow: 0px 0px 3px 3px #000;
  box-shadow: 0px 0px 3px 3px #000;
  margin-top: 80px;
  display: inline-block;
  line-height: 1;
  padding: 0;
  background: #000;
  position: relative; }

.stitial_header {
  text-transform: uppercase;
  font-size: 13px;
  color: #666;
  line-height: 24px; }

.stitial_close {
  background-color: #000;
  color: #fff;
  text-decoration: none;
  background: transparent url(https://www.usnews.com/dbimages/master/44614/stitial-x.png) 100% 0 no-repeat;
  padding-right: 24px;
  display: block;
  position: absolute;
  top: 0px;
  right: 0px; }

.teads-ad {
  margin-bottom: 1.25rem; }

.slide-with-ad .ad-slide {
  position: relative; }
  .slide-with-ad .ad-slide > div {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateY(-50%);
    margin-left: -150px; }

.ad-placeholder-rectangle {
  position: absolute;
  left: 50%;
  top: 50%;
  margin-left: -150px;
  margin-top: -125px;
  height: 250px;
  width: 300px;
  display: inline-block;
  background: #f4f4f4;
  padding-top: 5px; }
  .ad-placeholder-rectangle:before {
    content: 'Advertisement';
    font-size: 0.75rem;
    color: #999999; }
  .ad-placeholder-rectangle .ad-waiting-spinner {
    position: absolute;
    width: 32px;
    height: 32px;
    left: 50%;
    margin-left: -16px;
    top: 50%;
    margin-top: -16px;
    fill: #333; }

@media only screen and (min-width: 64em) {
  .large-offset-2 .ad-in-text {
    float: right;
    margin-right: -6rem;
    margin-left: 2rem; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .ad-in-text {
    clear: both; } }

.ndn_responsiveContainer.ndn_sliderTopContainer {
  z-index: 1; }

.tracking-pixel {
  opacity: 0.0001;
  position: absolute;
  height: 1px;
  width: 1px; }

/*doc
---
title: Definition List
name: a-definition-list
category: Data Patterns - Definition List
---

Here is a basic definition list.

The HTML <dl> Element (or HTML Description List Element) encloses a list of pairs of terms and descriptions. 
Common uses for this element are to implement a glossary or to display metadata (a list of key-value pairs).

By default, the key and value of each item are on the same line but each list item is on a separate line. 
Once we hit the `medium` breakpoint the *whole list* ends up on the same line with each item separated with a pipe.

You can use any combination text size you want and the text will still "baseline".

```html_example?kitchen-sink=true
<dl class="inline-dl">
    <dt><strong class="text-large">23,300</strong></dt> <dd class="text-muted text-small">Projected Jobs</dd>
    <dt><strong class="text-large">$146,340</strong></dt> <dd class="text-muted text-small">Median Salary</dd>
    <dt><strong class="text-large">0.9%</strong></dt> <dd class="text-muted text-small">Unemployment Rate</dd>
</dl>
```
*/
.inline-dl:before, .inline-dl:after {
  content: "";
  display: table; }

.inline-dl:after {
  clear: both; }

.inline-dl dt, .inline-dl dd {
  display: inline;
  margin: 0; }

.inline-dl dd:after {
  content: '\A';
  white-space: pre; }

@media only screen and (min-width: 40.0625em) {
  .inline-dl dt:not(:first-child) {
    padding-left: 0.3125rem; }
  .inline-dl dd:not(:last-child):after {
    content: '';
    border-right: 1px solid #CCCCCC;
    padding-right: 0.625rem; } }

/*doc
---
title: Feature
name: a-feature
category: Media Objects - Feature
template:
    feature:
        image:
            small: http://lorempixel.com/290/161/people/
            medium: http://lorempixel.com/685/369/people/
            alt: Feature
        url: #
        heading: How to work a Room When the Room is Gigantic
        lead: Five tips for networking at large, intimidating events.
selectors:
    - .feature
---

Consistent with firefly naming convention. A feature is used describes a headline image with the headline and additional text below the image.

The default feature showcases the full image with the text below the image.

```html_example?kitchen-sink=true
<div class="row">
{% include "templates/common/feature.nunj" %}
</div>

```
*/
.feature {
  margin-bottom: 1.5625rem; }
  .feature > h2 {
    font-size: 1.5rem;
    margin-bottom: 0.25rem; }
    @media only screen and (min-width: 40.0625em) {
      .feature > h2 {
        font-size: 1.875rem; } }
  .feature img {
    width: 100%;
    margin-bottom: 0.9375rem; }
  .feature > p {
    margin-bottom: 0;
    padding-bottom: 1.5625rem; }
    @media only screen and (min-width: 40.0625em) {
      .feature > p {
        font-size: 1.125rem; } }
    .feature > p.caption {
      color: #999999;
      font-size: 0.875rem;
      border-bottom: 1px solid #dcdfe8; }

/* Firefly feature for wide layout */
@media only screen and (min-width: 64em) {
  hr.large-8.large-offset-2 + img + p.text-muted.text-small {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem;
    width: 66.66667%;
    float: left;
    margin-left: 16.66667% !important;
    padding: 0; } }

/*doc
---
title: Breadcrumbs
name: a-breadcrumbs
category: Navigation - Breadcrumbs
---

Breadcrumbs come in handy to show a navigation trail for users clicking through a site or app.. They'll fill out 100% of the width of their parent container.

Add a class of `.breadcrumbs` to a `ul` element. List items will automatically be styled, and you can add `.current` or `.unavailable` classes to the list items to denote their state.

```html_example?kitchen-sink=true
<ul class="breadcrumbs" role="menubar" aria-label="breadcrumbs">
    <li role="menuitem"><a href="#">Home</a></li>
    <li role="menuitem"><a href="#">Features</a></li>
    <li role="menuitem" class="unavailable"><a href="#">Gene Splicing</a></li>
    <li role="menuitem" class="current"><a href="#">Cloning</a></li>
</ul>
```

You can also add a `.breadcrumbs` class to a `.nav` element containing anchor links to get the same result.

```html_example
<nav class="breadcrumbs" role="menubar" aria-label="breadcrumbs">
    <a role="menuitem" href="#">Home</a>
    <a role="menuitem" href="#">Features</a>
    <a role="menuitem" class="unavailable" href="#">Gene Splicing</a>
    <a role="menuitem" class="current" href="#">Cloning</a>
</nav>
```
*/
/*doc
---
title: Accessibility
name: b-accessibility
category: Navigation - Breadcrumbs
---

Use this snippet to make breadcrumbs more accessible.  Adding the role attribute gives the context to a screen reader.  The `aria-label` attribute will allow a screen reader to call out what the compenent is to the user.  We added some Scss so the screen reader skips the `/`. Using the Tab button, a user can navigate until they've reached the link below. (Use Shift+Tab to navigate back one step.)

If you are using `unavailable` link, five it an `aria-disabled` attribute as in this example.

```html_example
<nav class="breadcrumbs" role="menubar" aria-label="breadcrumbs">
    <li role="menuitem"><a href="#">Home</a></li>
    <li role="menuitem"><a href="#">Features</a></li>
    <li role="menuitem" class="unavailable" role="button" aria-disabled="true"><a href="#">Gene Splicing</a></li>
    <li role="menuitem" class="current"><a href="#">Cloning</a></li>
</nav>
```
*/
.breadcrumbs-item.in-hero {
  white-space: nowrap;
  color: #a8b2b6;
  max-width: 330px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap; }
  @media (min-width: 63.9375em) {
    .has-photo-cover .breadcrumbs-item.in-hero {
      color: #c0ddf2; } }

.breadcrumbs-item.in-hero a {
  color: #AAAAAA;
  text-decoration: underline; }
  .breadcrumbs-item.in-hero a:hover {
    color: #888888 !important; }
    @media (min-width: 63.9375em) {
      .has-photo-cover .breadcrumbs-item.in-hero a:hover {
        color: #fff !important; } }

/*

This defines styling for use with the jquery.rangeSlider() plugin.

*/
.range-slider {
  padding-top: 0.9375rem;
  padding-left: 0.9375rem;
  padding-right: 0.9375rem; }
  @media only screen and (min-width: 64em) {
    .range-slider {
      padding-top: 0.625rem;
      padding-left: 0.625rem;
      padding-right: 0.625rem; } }
  .range-slider.has-histogram {
    padding-top: 0; }
  .range-slider[disabled], .range-slider.disabled {
    opacity: 0.5; }
  .range-slider .noUi-background {
    background: #AAAAAA;
    border: none;
    border-radius: 0px;
    box-shadow: none; }
  .range-slider .noUi-connect {
    background: #2c7ef0;
    border-radius: 0px;
    box-shadow: none; }
  .range-slider .noUi-horizontal {
    height: 0.25rem;
    margin-bottom: 1.4375rem; }
    @media only screen and (min-width: 64em) {
      .range-slider .noUi-horizontal {
        margin-bottom: 1.125rem; } }
  .range-slider .noUi-handle {
    border: 1px solid #AAAAAA;
    opacity: 0.8;
    width: 1.875rem;
    height: 1.875rem;
    border-radius: 0.9375rem;
    left: -0.9375rem;
    top: -0.8125rem; }
    @media only screen and (min-width: 64em) {
      .range-slider .noUi-handle {
        opacity: 1;
        width: 1.25rem;
        height: 1.25rem;
        border-radius: 0.625rem;
        left: -0.625rem;
        top: -0.5rem; } }
  .range-slider .noUi-handle:before {
    display: none; }
  .range-slider .noUi-handle:after {
    display: none; }
  .range-slider .svg-container {
    display: inline-block;
    position: relative;
    width: 100%;
    padding-bottom: 3.125rem;
    vertical-align: middle;
    overflow: hidden; }
  .range-slider .svg-content {
    display: inline-block;
    position: absolute;
    top: 0;
    left: 0;
    height: 3.125rem;
    width: 100%; }
  .range-slider .histogram {
    shape-rendering: crispEdges; }
  .range-slider rect {
    fill: #eeeeee; }
  .range-slider rect.selected {
    fill: #DDDDDD; }

/*doc
---
title: Drilldown Menu
name: drilldown-menu
category: Search Patterns - Drilldown Menu
authors: Pablo Lazo
---

```html_example?kitchen-sink=true
need an example
```

Options:

*/
/*doc
---
title: Drilldown Menu Javascript
name: drilldown-menu-javascript

category: Search Patterns - Drilldown Menu
authors: Pablo Lazo
---

```js_example
$('.drilldown-menu').drilldown();
```
*/
.drilldown-menu > ul {
  margin: 0;
  list-style: none; }
  .drilldown-menu > ul ul {
    margin: 0;
    list-style: inherit; }
  .drilldown-menu > ul a {
    display: none; }
    .drilldown-menu > ul a.secondary {
      border: #CCCCCC 1px solid;
      color: #575757;
      background: -webkit-linear-gradient(90deg, #ececec 0%, white 100%); }
  .drilldown-menu > ul li.active > ul > li > a {
    display: block; }
  .drilldown-menu > ul li.active.end a {
    display: block; }
  .drilldown-menu > ul .active > ul > .drilldown-back {
    display: block; }
    .drilldown-menu > ul .active > ul > .drilldown-back:before {
      content: '';
      display: block;
      width: 0;
      height: 0;
      border: inset 6px;
      border-color: transparent #1D529C transparent transparent;
      border-right-style: solid;
      float: left;
      margin-top: 5px;
      margin-right: 5px; }
  .drilldown-menu > ul > li.active > ul > .drilldown-back {
    display: none !important; }

/*doc
---
title: Circle Icons
name: d-circle-icons
category: Icons & Images - SVG Images
---

Here are the icons we have so far...

```html_example?kitchen-sink=true

<!------ GLOBAL ICON SET ------->
<h4 class="heading-normal text-coal" id="global-circles">Global</h4>
<ul class="small-block-grid-3 medium-block-grid-4 large-block-grid-6 block-loose">
  <li>
    <img src="/static/img/circle-compare-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Compare<br><span class="text-semistrong text-small">circle-compare-icon</span></p>
  </li>
  <li>
    <img src="/static/img/circle-bestforme-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Best for Me<br><span class="text-semistrong text-small">circle-bestforme-icon</span></p>
  </li>
  <li>
   <img src="/static/img/circle-search-icon.svg" alt="" class="block-normal">
   <p class="text-strong text-center">Search<br><span class="text-semistrong text-small">circle-search-icon</span></p>
  </li>
  <li>
    <img src="/static/img/circle-badge-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Badge<br><span class="text-semistrong text-small">circle-badge-icon</span></p>
  </li>
  <li>
    <img src="/static/img/contact-us.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Contact Us<br><span class="text-semistrong text-small">contact-us</span></p>
  </li>
  <li>
    <img src="/static/img/jobs.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Jobs<br><span class="text-semistrong text-small">jobs</span></p>
  </li>
  <li>
    <img src="/static/img/media-kit.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Media Kit<br><span class="text-semistrong text-small">media-kit</span></p>
  </li>
</ul>
<hr>
<!------ NEWS & OPINION ICON SET ------->
<h4 class="heading-normal text-coal" id="news-circles">News & Opinion</h4>
<ul class="small-block-grid-3 medium-block-grid-4 large-block-grid-6 block-loose">
  <li>
    <img src="/static/img/circle-tjspolitics-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Thomas Jefferson Street <br><span class="text-semistrong text-small">circle-tjspolitics-icon</span></p>
  </li>
  <li>
    <img src="/static/img/circle-debateclub-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Debate Club<br><span class="text-semistrong text-small">circle-debateclub-icon</span></p>
  </li>
  <li>
   <img src="/static/img/circle-economicintelligence-icon.svg" alt="" class="block-normal">
   <p class="text-strong text-center">Economic Intelligence<br><span class="text-semistrong text-small">circle-economicintelligence-icon</span></p>
  </li>
  <li>
    <img src="/static/img/policy-dose.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Policy Dose<br><span class="text-semistrong text-small">policy-dose</span></p>
  </li>
  <li>
    <img src="/static/img/circle-knowledgebank-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Knowledge Bank<br><span class="text-semistrong text-small">circle-knowledgebank-icon</span></p>
  </li>
  <li>
    <img src="/static/img/circle-decision2016-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Decision 2016<br><span class="text-semistrong text-small">circle-decision2016-icon</span></p>
  </li>
  <li>
    <img src="/static/img/circle-dividendgrowers-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Data Mine<br><span class="text-semistrong text-small">circle-dividendgrowers-icon</span></p>
  </li>
  <li>
    <img src="/static/img/circle-washingtonwhispers-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Washington Whispers<br><span class="text-semistrong text-small">circle-washingtonwhispers-icon</span></p>
  </li>
  <li>
    <img src="/static/img/views-you-can-use.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Views You Can Use<br><span class="text-semistrong text-small">views-you-can-use</span></p>
  </li>
  <li>
    <img src="/static/img/tech-blog.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Tech Blog<br><span class="text-semistrong text-small">tech-blog</span></p>
  </li>
  <li>
    <img src="/static/img/circle-megaphones.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Civil Wars<br><span class="text-semistrong text-small">circle-megaphones</span></p>
  </li>
  <li>
    <img src="/static/img/circle-email-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Email<br><span class="text-semistrong text-small">circle-email-icon</span></p>
  </li>
  <li>
    <img src="/static/img/circle-attheedge-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">At the Edge<br><span class="text-semistrong text-small">circle-attheedge-icon</span></p>
  </li>
  <li>
    <img src="/static/img/circle-international-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">World Report<br><span class="text-semistrong text-small">circle-international-icon</span></p>
  </li>
  <li>
    <img src="/static/img/circle-kenwalshswashington-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Ken Walsh's Washington<br><span class="text-semistrong text-small">circle-kenwalshswashington-icon</span></p>
  </li>
  <li>
    <img src="/static/img/op-ed.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Op Ed<br><span class="text-semistrong text-small">op-ed</span></p>
  </li>
  <li>
    <img src="/static/img/circle-therun-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">The Run<br><span class="text-semistrong text-small">circle-therun-icon</span></p>
  </li>
  <li>
    <img src="/static/img/circle-thechase-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">The Chase<br><span class="text-semistrong text-small">circle-thechase-icon</span></p>
  </li>
</ul>
<hr>
<!------ EDUCATION ICON SET ------->
<h4 class="heading-normal text-coal" id="education-circles">Education</h4>
<ul class="small-block-grid-3 medium-block-grid-4 large-block-grid-6 block-loose">
  <li>
    <img src="/static/img/making-the-online-grade.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Making the Online Grade<br><span class="text-semistrong text-small">making-the-online-grade</span></p>
  </li>
  <li>
    <img src="/static/img/mba-admissions-strictly-business.svg" alt="" class="block-normal">
    <p class="text-strong text-center">MBA Admissions: Strictly Business<br><span class="text-semistrong text-small">mba-admissions-strictly-business</span></p>
  </li>
  <li>
    <img src="/static/img/medical-school-admissions-doctor.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Medical School Admissions Doctor<br><span class="text-semistrong text-small">medical-school-admissions-doctor</span></p>
  </li>
  <li>
   <img src="/static/img/circle-shortlist.svg" alt="" class="block-normal">
   <p class="text-strong text-center">The Short List<br><span class="text-semistrong text-small">circle-shortlist</span></p>
  </li>
  <li>
    <img src="/static/img/circle-undergrad-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">College Admissions Playbook<br><span class="text-semistrong text-small">circle-undergrad-icon</span></p>
  </li>
  <li>
    <img src="/static/img/i-am-the-law.svg" alt="" class="block-normal">
    <p class="text-strong text-center">I am the Law: Where Law School Leads<br><span class="text-semistrong text-small">i-am-the-law</span></p>
  </li>
  <li>
    <img src="/static/img/circle-hsnotes-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">High School Notes<br><span class="text-semistrong text-small">circle-hsnotes-icon</span></p>
  </li>
  <li>
    <img src="/static/img/online-learning-lessons.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Online Learning Lessons<br><span class="text-semistrong text-small">online-learning-lessons</span></p>
  </li>
  <li>
    <img src="/static/img/scholarship-search-insider.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Scholarship Search Insider<br><span class="text-semistrong text-small">scholarship-search-insider</span></p>
  </li>
  <li>
    <img src="/static/img/international-student-counsel.svg" alt="" class="block-normal">
    <p class="text-strong text-center">International Student Counsel<br><span class="text-semistrong text-small">international-student-counsel</span></p>
  </li>
  <li>
    <img src="/static/img/law-admissions-lowdown.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Law Admissions Lowdown<br><span class="text-semistrong text-small">law-admissions-lowdown</span></p>
  </li>
  <li>
    <img src="/static/img/student-loan-ranger.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Student Loan Ranger<br><span class="text-semistrong text-small">student-loan-ranger</span></p>
  </li>
</ul>
<hr>
<!------ MONEY ICON SET ------->
<h4 class="heading-normal text-coal" id="money-circles">Money</h4>
<h5 class="heading-small text-muted" id="investing-circles">Investing</h5>
<ul class="small-block-grid-3 medium-block-grid-4 large-block-grid-6" block-loose">
  <li>
    <img src="/static/img/circle-construction-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Construction<br><span class="text-semistrong text-small">circle-construction-icon</span></p>
  </li>
  <li>
    <img src="/static/img/circle-online-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Telecommunications<br><span class="text-semistrong text-small">circle-online-icon</span></p>
  </li>
  <li>
   <img src="/static/img/circle-topperformers-icon.svg" alt="" class="block-normal">
   <p class="text-strong text-center">Top Performers<br><span class="text-semistrong text-small">circle-topperformers-icon</span></p>
  </li>
  <li>
    <img src="/static/img/circle-oil-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Oil<br><span class="text-semistrong text-small">circle-oil-icon</span></p>
  </li>
  <li>
    <img src="/static/img/circle-energy-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Energy<br><span class="text-semistrong text-small">circle-energy-icon</span></p>
  </li>
  <li>
    <img src="/static/img/circle-business-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Business<br><span class="text-semistrong text-small">circle-business-icon</span></p>
  </li>
  <li>
    <img src="/static/img/circle-medical-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Medicine<br><span class="text-semistrong text-small">circle-medical-icon</span></p>
  </li>
  <li>
    <img src="/static/img/defensive-picks.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Defensive Picks<br><span class="text-semistrong text-small">defensive-picks</span></p>
  </li>
  <li>
    <img src="/static/img/circle-bank-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Bank<br><span class="text-semistrong text-small">circle-bank-icon</span></p>
  </li>
  <li>
    <img src="/static/img/circle-tag-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Household/Personal Care<br><span class="text-semistrong text-small">circle-tag-icon</span></p>
  </li>
  <li>
    <img src="/static/img/circle-science-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Science<br><span class="text-semistrong text-small">circle-science-icon</span></p>
  </li>
  <li>
    <img src="/static/img/circle-stalwarts-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Earnings Stalwarts<br><span class="text-semistrong text-small">circle-stalwarts-icon</span></p>
  </li>
  <li>
    <img src="/static/img/circle-under10-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Stocks Under $10<br><span class="text-semistrong text-small">circle-under10-icon</span></p>
  </li>
  <li>
    <img src="/static/img/circle-earningsgainers-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Earnings Gainers<br><span class="text-semistrong text-small">circle-earningsgainers-icon</span></p>
  </li>
  <li>
    <img src="/static/img/circle-house-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">House<br><span class="text-semistrong text-small">circle-house-icon</span></p>
  </li>
  <li>
    <img src="/static/img/circle-transportation-other-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Gauge<br><span class="text-semistrong text-small">circle-transportation-other-icon</span></p>
  </li>
  <li>
    <img src="/static/img/529-plans.svg" alt="" class="block-normal">
    <p class="text-strong text-center">529 Plans<br><span class="text-semistrong text-small">529-plans</span></p>
  </li>
  <li>
    <img src="/static/img/smarter-investor.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Smarter Investor<br><span class="text-semistrong text-small">smarter-investor</span></p>
  </li>
  <li>
    <img src="/static/img/insider-buying.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Insider Buying<br><span class="text-semistrong text-small">insider-buying</span></p>
  </li>
  <li>
    <img src="/static/img/circle-agriculture-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Agriculture<br><span class="text-semistrong text-small">circle-agriculture-icon</span></p>
  </li>
  <li>
    <img src="/static/img/circle-dividendgrowers-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Dividend Growers<br><span class="text-semistrong text-small">circle-dividendgrowers-icon</span></p>
  </li>
  <li>
    <img src="/static/img/sustainable-dividends.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Sustainable Dividends<br><span class="text-semistrong text-small">sustainable-dividends</span></p>
  </li>
  <li>
    <img src="/static/img/circle-food-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Food<br><span class="text-semistrong text-small">circle-food-icon</span></p>
  </li>
  <li>
    <img src="/static/img/circle-hospital-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Hospital<br><span class="text-semistrong text-small">circle-hospital-icon</span></p>
  </li>
  <li>
    <img src="/static/img/circle-top50-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Top 50<br><span class="text-semistrong text-small">circle-top50-icon</span></p>
  </li>
  <li>
    <img src="/static/img/my-money.svg" alt="" class="block-normal">
    <p class="text-strong text-center">My Money<br><span class="text-semistrong text-small">my-money</span></p>
  </li>
  <li>
    <img src="/static/img/best-companies.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Best Companies<br><span class="text-semistrong text-small">best-companies</span></p>
  </li>
  <li>
    <img src="/static/img/nearly-profitable.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Nearly Profitable<br><span class="text-semistrong text-small">nearly-profitable</span></p>
  </li>
  <li>
    <img src="/static/img/circle-mining-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Mining<br><span class="text-semistrong text-small">circle-mining-icon</span></p>
  </li>
  <li>
    <img src="/static/img/circle-industrial-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Industrial<br><span class="text-semistrong text-small">circle-industrial-icon</span></p>
  </li>
  <li>
    <img src="/static/img/circle-safestocks-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Safe(er) Stocks<br><span class="text-semistrong text-small">circle-safestocks-icon</span></p>
  </li>
  <li>
    <img src="/static/img/circle-transportation-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Transportation<br><span class="text-semistrong text-small">circle-transportation-icon</span></p>
  </li>
  <li>
    <img src="/static/img/greatest-upside.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Greatest Upside<br><span class="text-semistrong text-small">greatest-upside</span></p>
  </li>
</ul>
<hr>
<h5 class="heading-small text-muted" id="careers-circles">Careers</h5>
<ul class="small-block-grid-3 medium-block-grid-4 large-block-grid-6 block-loose">
  <li>
    <img src="/static/img/circle-oncareers-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">On Careers<br><span class="text-semistrong text-small">circle-oncareers-icon</span></p>
  </li>
</ul>
<hr>
<h5 class="heading-small text-muted" id="retirement-circles">Retirement</h5>
<ul class="small-block-grid-3 medium-block-grid-4 large-block-grid-6 block-loose">
  <li>
    <img src="/static/img/on-retirement.svg" alt="" class="block-normal">
    <p class="text-strong text-center">On Retirement<br><span class="text-semistrong text-small">on-retirement</span></p>
  </li>
  <li>
    <img src="/static/img/planning-to-retire.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Planning to Retire<br><span class="text-semistrong text-small">planning-to-retire</span></p>
  </li>
</ul>
<hr>
<h5 class="heading-small text-muted" id="real-estate-circles">Real Estate</h5>
<ul class="small-block-grid-3 medium-block-grid-4 large-block-grid-6 block-loose">
  <li>
    <img src="/static/img/circle-industry-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Mortgages & Financing<br><span class="text-semistrong text-small">circle-industry-icon</span></p>
  </li>
  <li>
    <img src="/static/img/circle-networking-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Choosing an Agent<br><span class="text-semistrong text-small">circle-networking-icon</span></p>
  </li>
  <li>
    <img src="/static/img/for-sale-sign.svg" alt="" class="block-normal">
    <p class="text-strong text-center">For Sale Sign<br><span class="text-semistrong text-small">for-sale-sign</span></p>
  </li>
  <li>
    <img src="/static/img/circle-tag-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Selling a Home<br><span class="text-semistrong text-small">circle-tag-icon</span></p>
  </li>
  <li>
    <img src="/static/img/circle-calendar-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Renting a Home<br><span class="text-semistrong text-small">circle-calendar-icon</span></p>
  </li>
  <li>
    <img src="/static/img/pocket-listing.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Pocket Listing<br><span class="text-semistrong text-small">pocket-listing</span></p>
  </li>
  <li>
    <img src="/static/img/circle-stem-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Home Improvements<br><span class="text-semistrong text-small">circle-stem-icon</span></p>
  </li>
  <li>
    <img src="/static/img/circle-thumbsup-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Buying a Home<br><span class="text-semistrong text-small">circle-thumbsup-icon</span></p>
  </li>
</ul>
<hr>
<!------ HEALTH ICON SET ------->
<h4 class="heading-normal text-coal" id="health-circles">Health</h4>
<ul class="small-block-grid-3 medium-block-grid-4 large-block-grid-6 block-loose">
  <li>
    <img src="/static/img/second-opinion.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Second Opinion<br><span class="text-semistrong text-small">second-opinion</span></p>
  </li>
  <li>
    <img src="/static/img/circle-eatrun-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Eat + Run<br><span class="text-semistrong text-small">circle-eatrun-icon</span></p>
  </li>
  <li>
    <img src="/static/img/for-better.svg" alt="" class="block-normal">
    <p class="text-strong text-center">For Better<br><span class="text-semistrong text-small">for-better</span></p>
  </li>
</ul>
<hr>
<!------ TRAVEL ICON SET ------->
<h4 class="heading-normal text-coal" id="travel-circles">Travel</h4>
<ul class="small-block-grid-3 medium-block-grid-4 large-block-grid-6 block-loose">
  <li>
    <img src="/static/img/en-route.svg" alt="" class="block-normal">
    <p class="text-strong text-center">En Route<br><span class="text-semistrong text-small">en-route</span></p>
  </li>
</ul>
<hr>
<!------ JUNK DRAWER ------->
<h4 class="heading-normal text-coal" id="junk-circles">Junk Drawer</h4>
<p class="text-emphasized text-small text-muted">Note: These are icons that were designed and/or uploaded to the styleguide, but do not have a permanent spot on the site. If you decide you'd like to use one of these icons, rename it based on the blog/category it will represent and place it under the vertical above. Then, remove it from this list.</p>
<ul class="small-block-grid-3 medium-block-grid-4 large-block-grid-6 block-loose">
  <li>
    <img src="/static/img/circle-money-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Money<br><span class="text-semistrong text-small">circle-money-icon</span></p>
  </li>
  <li>
    <img src="/static/img/circle-communitycollege-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Graduation Cap<br><span class="text-semistrong text-small">circle-communitycollege-icon</span></p>
  </li>
  <li>
    <img src="/static/img/circle-grad-icon.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Open Book<br><span class="text-semistrong text-small">circle-grad-icon</span></p>
  </li>
  <li>
    <img src="/static/img/money-bag.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Money Bag<br><span class="text-semistrong text-small">money-bag</span></p>
  </li>
  <li>
    <img src="/static/img/money-stack.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Money Stack<br><span class="text-semistrong text-small">money-stack</span></p>
  </li>
</ul>

```
*/
/*doc
---
title: Miscellaneous Icons
name: d1-miscellaneous-icons
category: Icons & Images - SVG Images
---

<ul class="small-block-grid-3 medium-block-grid-4 large-block-grid-6 block-loose">
    <li>
        <img src="/static/img/calendar-icon.svg" alt="" class="block-normal">
        <p class="text-strong text-center">Calendar<br><span class="text-semistrong text-small">calendar-icon</span></p>
    </li>
</ul>
*/
/*doc
---
title: Badges
name: e-badges
category: Icons & Images - SVG Images
---

Here are the badges we have so far...

```html_example
<!------ GLOBAL BADGE SET ------->
<h4 class="heading-normal text-coal" id="global-badges">Global</h4>
<ul class="small-block-grid-3 medium-block-grid-4 large-block-grid-6">
  <li>
    <img src="/static/img/badge-best-gold.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Gold Badge<br><span class="text-semistrong text-small">badge-best-gold</span></p>
  </li>
  <li>
    <img src="/static/img/badge-best-silver.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Silver Badge<br><span class="text-semistrong text-small">badge-best-silver</span></p>
  </li>
</ul>
<ul class="small-block-grid-3 medium-block-grid-4 large-block-grid-6 block-loose">
  <li>
   <img src="/static/img/mini-badge-color.svg" alt="" class="block-normal">
   <p class="text-strong text-center">Gold Badge (Mini)<br><span class="text-semistrong text-small">mini-badge-color</span></p>
  </li>
  <li>
    <img src="/static/img/mini-badge-silver.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Silver Badge (Mini)<br><span class="text-semistrong text-small">mini-badge-silver</span></p>
  </li>
  <li>
    <img src="/static/img/mini-badge-bronze.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Bronze Badge (Mini)<br><span class="text-semistrong text-small">mini-badge-bronze</span></p>
  </li>
  <li>
    <img src="/static/img/mini-badge-common-care.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Laurel (Mini)<br><span class="text-semistrong text-small">mini-badge-common-care</span></p>
  </li>
  <li>
    <img src="/static/img/mini-lock-color.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Lock (Mini)<br><span class="text-semistrong text-small">mini-lock-color</span></p>
  </li>
</ul>
<hr>
<!------ CARS BADGE SET ------->
<h4 class="heading-normal text-coal" id="cars-badges">Cars</h4>
<ul class="small-block-grid-3 medium-block-grid-4 large-block-grid-6 block-loose">
  <li>
    <img src="/static/img/badge-best-cars.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Cars<br><span class="text-semistrong text-small">badge-best-cars</span></p>
  </li>
</ul>
<hr>

<!------ EDUCATION BADGE SET ------->
<h4 class="heading-normal text-coal" id="education-badges">Education</h4>
<h5 class="heading-small text-muted" id="higher-education-badges">Higher Education</h5>
<h6 class="heading-smaller" id="colleges-badges">Colleges</h6>
<ul class="small-block-grid-3 medium-block-grid-4 large-block-grid-6 block-loose">
  <li>
    <img src="/static/img/best-colleges-badge.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Colleges<br><span class="text-semistrong text-small">best-colleges-badge</span></p>
  </li>
  <li>
    <img src="/static/img/best-colleges-national-universities-badge.svg" alt="" class="block-normal">
    <p class="text-strong text-center">National Universities<br><span class="text-semistrong text-small">best-colleges-national-universities-badge</span></p>
  </li>
  <li>
    <img src="/static/img/best-colleges-liberal-arts-badge.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Liberal Arts<br><span class="text-semistrong text-small">best-colleges-liberal-arts-badge</span></p>
  </li>
  <li>
    <img src="/static/img/best-colleges-regional-universities-badge.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Regional Universities<br><span class="text-semistrong text-small">best-colleges-regional-universities-badge</span></p>
  </li>
  <li>
    <img src="/static/img/best-colleges-regional-colleges-badge.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Regional Colleges<br><span class="text-semistrong text-small">best-regional-colleges-badge</span></p>
  </li>
  <li>
    <img src="/static/img/best-colleges-business-badge.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Business Programs<br><span class="text-semistrong text-small">best-colleges-business-badge</span></p>
  </li>
  <li>
    <img src="/static/img/best-colleges-veterans-badge.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Veterans<br><span class="text-semistrong text-small">best-colleges-veterans-badge</span></p>
  </li>
</ul>

<h6 class="heading-smaller" id="grad-schools-badges">Grad Schools</h6>
<ul class="small-block-grid-3 medium-block-grid-4 large-block-grid-6 block-loose">
    <li>
    <img src="/static/img/badge-best-grad-schools.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Grad Schools<br><span class="text-semistrong text-small">badge-best-grad-schools</span></p>
  </li>
  <li>
    <img src="/static/img/grad-schools-business.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Business Schools<br><span class="text-semistrong text-small">grad-schools-business</span></p>
  </li>
  <li>
    <img src="/static/img/grad-schools-education.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Education Schools<br><span class="text-semistrong text-small">grad-schools-education</span></p>
  </li>
  <li>
    <img src="/static/img/grad-schools-engineering.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Engineering Schools<br><span class="text-semistrong text-small">grad-schools-engineering</span></p>
  </li>
  <li>
    <img src="/static/img/grad-schools-law.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Law Schools<br><span class="text-semistrong text-small">grad-schools-law</span></p>
  </li>
  <li>
    <img src="/static/img/grad-schools-medical.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Medical Schools<br><span class="text-semistrong text-small">grad-schools-medical</span></p>
  </li>
</ul>
<h6 class="heading-smaller" id="online-programs-badges">Online Programs</h6>
<ul class="small-block-grid-3 medium-block-grid-4 large-block-grid-6 block-loose">
    <li>
    <img src="/static/img/badge-best-online-programs.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Online Programs<br><span class="text-semistrong text-small">badge-best-online-programs</span></p>
  </li>
  <li>
    <img src="/static/img/online-programs-bachelors.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Bachelor's Programs<br><span class="text-semistrong text-small">online-programs-bachelors</span></p>
  </li>
  <li>
    <img src="/static/img/online-programs-mba-programs.svg" alt="" class="block-normal">
    <p class="text-strong text-center">MBA Programs<br><span class="text-semistrong text-small">grad-schools-education</span></p>
  </li>
  <li>
    <img src="/static/img/online-programs-grad-business.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Grad Business Programs<br><span class="text-semistrong text-small">online-programs-grad-business</span></p>
  </li>
  <li>
    <img src="/static/img/online-programs-criminal-justice.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Grad Criminal Justice Programs<br><span class="text-semistrong text-small">online-programs-criminal-justice</span></p>
  </li>
  <li>
    <img src="/static/img/online-programs-grad-education.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Grad Education Programs<br><span class="text-semistrong text-small">online-programs-grad-education</span></p>
  </li>
  <li>
    <img src="/static/img/online-programs-grad-engineering.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Grad Engineering Programs<br><span class="text-semistrong text-small">online-programs-grad-engineering</span></p>
  </li>
  <li>
    <img src="/static/img/online-programs-grad-cit.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Grad CIT Programs<br><span class="text-semistrong text-small">online-programs-grad-cit</span></p>
  </li>
  <li>
    <img src="/static/img/online-programs-grad-nursing.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Grad Nursing Programs<br><span class="text-semistrong text-small">online-programs-grad-nursing</span></p>
  </li>
  <li>
    <img src="/static/img/online-programs-for-veterans.svg" alt="" class="block-normal">
    <p class="text-strong text-center">For Veterans<br><span class="text-semistrong text-small">online-programs-for-veterans</span></p>
  </li>
</ul>
<h6 class="heading-smaller" id="international-badges">International</h6>
<ul class="small-block-grid-3 medium-block-grid-4 large-block-grid-6 block-loose">
    <li>
    <img src="/static/img/badge-best-global-universities.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Global Universities<br><span class="text-semistrong text-small">badge-best-global-universities</span></p>
  </li>
  <li>
    <img src="/static/img/badge-best-arab-universities.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Arab Universities<br><span class="text-semistrong text-small">badge-best-arab-universities</span></p>
  </li>
</ul>
<hr>
<h5 class="heading-small text-muted" id="k12-badges">K-12</h5>
<ul class="small-block-grid-3 medium-block-grid-4 large-block-grid-6 block-loose">
    <li>
    <img src="/static/img/badge-best-hs.svg" alt="" class="block-normal">
    <p class="text-strong text-center">High Schools<br><span class="text-semistrong text-small">badge-best-hs</span></p>
  </li>
  <li>
    <img src="/static/img/badge-best-hs-gold.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Gold High Schools<br><span class="text-semistrong text-small">badge-best-hs-gold</span></p>
  </li>
  <li>
    <img src="/static/img/badge-best-hs-silver.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Silver High Schools<br><span class="text-semistrong text-small">badge-best-hs-silver</span></p>
  </li>
  <li>
    <img src="/static/img/badge-best-hs-bronze.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Bronze High Schools<br><span class="text-semistrong text-small">badge-best-hs-bronze</span></p>
  </li>
</ul>
<hr>
<!------ HEALTH BADGE SET ------->
<h4 class="heading-normal text-coal" id="health-badges">Health</h4>
<ul class="small-block-grid-3 medium-block-grid-4 large-block-grid-6 block-loose">
  <li>
    <img src="/static/img/badge-best-hospitals.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Hospitals<br><span class="text-semistrong text-small">badge-best-hospitals</span></p>
  </li>
  <li>
    <img src="/static/img/hospitals-year-2016.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Hospitals 2016<br><span class="text-semistrong text-small">hospitals-year-2016</span></p>
  </li>
  <li>
    <img src="/static/img/hospitals-year-2017.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Hospitals 2017<br><span class="text-semistrong text-small">hospitals-year-2017</span></p>
  </li>
  <li>
    <img src="/static/img/regional-hospitals-2016.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Regional Hospitals 2016<br><span class="text-semistrong text-small">regional-hospitals-2016</span></p>
  </li>
  <li>
    <img src="/static/img/regional-hospitals-2017.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Regional Hospitals 2017<br><span class="text-semistrong text-small">regional-hospitals-2017</span></p>
  </li>
  <li>
    <img src="/static/img/badge-best-regional-hospitals.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Regional Hospitals<br><span class="text-semistrong text-small">badge-best-regional-hospitals</span></p>
  </li>
  <li>
    <img src="/static/img/badge-best-childrens-hospitals.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Children's Hospitals<br><span class="text-semistrong text-small">badge-best-childrens-hospitals</span></p>
  </li>
  <li>
    <img src="/static/img/childrens-hospitals-2016.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Children's Hospitals 2016<br><span class="text-semistrong text-small">childrens-hospitals-2016.svg</span></p>
  </li>
  <li>
    <img src="/static/img/childrens-hospitals-2017.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Children's Hospitals 2017<br><span class="text-semistrong text-small">childrens-hospitals-2017.svg</span></p>
  </li>
  <li>
    <img src="/static/img/badge-high-performing-hospitals.svg" alt="" class="block-normal">
    <p class="text-strong text-center">High Performing Hospitals<br><span class="text-semistrong text-small">badge-high-performing-hospitals</span></p>
  </li>
  <li>
    <img src="/static/img/badge-best-diets.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Diets<br><span class="text-semistrong text-small">badge-best-diets</span></p>
  </li>
  <li>
    <img src="/static/img/badge-best-nursing-homes.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Nursing Homes<br><span class="text-semistrong text-small">badge-best-nursing-homes</span></p>
  </li>
  <li>
    <img src="/static/img/badge-best-medicare.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Medicare Plans<br><span class="text-semistrong text-small">badge-best-medicare</span></p>
  </li>
  <li>
    <img src="/static/img/badge-best-health-products.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Health Products<br><span class="text-semistrong text-small">badge-best-health-products</span></p>
  </li>
</ul>
<hr>
<!------ MONEY BADGE SET ------->
<h4 class="heading-normal text-coal" id="money-badges">Money</h4>
<ul class="small-block-grid-3 medium-block-grid-4 large-block-grid-6 block-loose">
  <li>
    <img src="/static/img/badge-best-jobs.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Best Jobs<br><span class="text-semistrong text-small">badge-best-jobs</span></p>
  </li>
  <li>
    <img src="/static/img/badge-best-etfs.svg" alt="" class="block-normal">
    <p class="text-strong text-center">ETFs<br><span class="text-semistrong text-small">badge-best-etfs</span></p>
  </li>
  <li>
    <img src="/static/img/badge-best-funds.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Mutual Funds<br><span class="text-semistrong text-small">badge-best-funds</span></p>
  </li>
  <li>
    <img src="/static/img/badge-best-credit-cards.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Credit Cards<br><span class="text-semistrong text-small">badge-best-credit-cards</span></p>
  </li>
</ul>
<hr>
<!------ NEWS PRODUCTS BADGE SET ------->
<h4 class="heading-normal text-coal" id="news-badges">News Products</h4>
<ul class="small-block-grid-3 medium-block-grid-4 large-block-grid-6 block-loose">
  <li>
    <img src="/static/img/badge-best-law-firms.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Law Firms<br><span class="text-semistrong text-small">badge-best-law-firms</span></p>
  </li>
  <li>
    <img src="/static/img/badge-best-law-firm-oty.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Law Firms of the Year<br><span class="text-semistrong text-small">badge-best-law-firm-oty</span></p>
  </li>
  <li>
    <img src="/static/img/best-countries.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Countries<br><span class="text-semistrong text-small">best-countries</span></p>
  </li>
</ul>
<hr>
<!------ REAL ESTATE BADGE SET ------->
<h4 class="heading-normal text-coal" id="real-estate-badges">Real Estate</h4>
<ul class="small-block-grid-3 medium-block-grid-4 large-block-grid-6 block-loose">
  <li>
    <img src="/static/img/badge-best-places.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Places<br><span class="text-semistrong text-small">badge-best-places</span></p>
  </li>
</ul>
<hr>
<!------ TRAVEL BADGE SET ------->
<h4 class="heading-normal text-coal" id="travel-badges">Travel</h4>
<ul class="small-block-grid-3 medium-block-grid-4 large-block-grid-6 block-loose">
  <li>
    <img src="/static/img/badge-best-hotels.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Hotels<br><span class="text-semistrong text-small">badge-best-hotels</span></p>
  </li>
  <li>
    <img src="/static/img/badge-best-vacations.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Vacations<br><span class="text-semistrong text-small">badge-best-vacations</span></p>
  </li>
  <li>
    <img src="/static/img/badge-best-travel-rewards.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Travel Rewards<br><span class="text-semistrong text-small">badge-best-travel-rewards</span></p>
  </li>
  <li>
    <img src="/static/img/badge-best-cruise-lines.svg" alt="" class="block-normal">
    <p class="text-strong text-center">Cruise Lines<br><span class="text-semistrong text-small">badge-best-cruise-lines</span></p>
  </li>
</ul>

```
*/
/*doc
---
title: Logos
name: f-badges
category: Icons & Images - SVG Images
---

Here are the logos we have so far...

```html_example
<ul class="small-block-grid-3">
  <li><img src="/static/img/usn-logo-large.svg" alt="">usn-logo-large</li>
  <li><img src="/static/img/usn-logo-small.svg" alt="">usn-logo-small</li>
  <li><img src="/static/img/the-report.svg" alt="">the-report</li>
  <li><img src="/static/img/compass.svg" alt="">compass</li>
  <li><img src="/static/img/compass-glow.svg" alt="">compass-glow</li>
  <li><img src="/static/img/bpp-logo.svg" alt="">bpp-logo</li>
  <li><img src="/static/img/bpp-logo-white.svg" alt="">bpp-logo-white</li>
</ul>
```
*/
/*doc
---
title: Image Modifiers
name: c-image-helper
category: Icons & Images - SVG Images
selectors:
    - img.centered
    - .image-responsive
---

Add .image-responsive to an image to force width to be 100% with height auto.

```html_example
<div class="flex-row">
  <div class="flex-small-3"><img class="image-responsive" src="http://placehold.it/500x500" alt="..."></div>
</div>
```

```sass_example
img.round {
    border-radius: 50%;
}
```
*/
/*doc
---
title: Profile Images
name: i-profile-images
category: Icons & Images - SVG Images
---

Here are the profile images we have so far...

```html_example
<ul class="small-block-grid-6">
  <li><img src="/static/img/doctor-icon-male.svg" alt="">doctor-icon-male</li>
  <li><img src="/static/img/doctor-icon-female.svg" alt="">doctor-icon-female</li>
  <li><img src="/static/img/author-icon.svg" alt="">author-icon</li>
  <li><img src="/static/img/male.svg" alt="">male</li>
  <li><img src="/static/img/female.svg">female</li>
  <li><img src="/static/img/education.svg">education</li>
  <li><img src="/static/img/hospital.svg" alt="">hospital</li>
  <li><img src="/static/img/home.svg" alt="">home</li>
  <li><img src="/static/img/restaurant.svg">restaurant</li>
</ul>
```
*/
/*doc
---
title: Map Assets
name: j-map-assets
category: Icons & Images - SVG Images
---

Here are the map assets we have so far...

```html_example
<ul class="small-block-grid-6">
  <li><img src="/static/img/pin.svg" alt="">pin</li>
  <li><img src="/static/img/gold-dot.svg" alt="">gold-dot</li>
  <li><img src="/static/img/silver-dot.svg" alt="">silver-dot</li>
  <li><img src="/static/img/bronze-dot.svg" alt="">bronze-dot</li>
  <li><img src="/static/img/blue-dot.svg" alt="">blue-dot</li>
  <li><img src="/static/img/gold-dot-nowhitespace.svg" alt="">gold-dot-nowhitespace</li>
  <li><img src="/static/img/silver-dot-nowhitespace.svg" alt="">silver-dot-nowhitespace</li>
  <li><img src="/static/img/bronze-dot-nowhitespace.svg" alt="">bronze-dot-nowhitespace</li>
  <li><img src="/static/img/blue-dot-nowhitespace.svg" alt="">blue-dot-nowhitespace</li>
  <li><img src="/static/img/dropshadow-for-dots.svg" alt="">dropshadow-for-dots</li>
</ul>
```
*/
img.centered {
  margin-left: auto;
  margin-right: auto;
  display: block; }

img.nudge-up {
  position: relative;
  top: -1px; }

.image-responsive {
  width: 100%;
  height: auto; }

.image-author {
  max-width: 5.25rem;
  height: auto; }
  @media only screen and (min-width: 40.0625em) {
    .image-author {
      max-width: 9.375rem; } }

/*doc
---
title: Overlay Images
name: i-overlay-images
category: Icons & Images - SVG Images
selectors:
    - .image-overlay-content
    - .image-overlay-content.bottom-for-medium-up
    - .image-overlay-content.bottom-for-large-up
    - .image-overlay
    - .image-overlay.light
---

Here is an example of overlay images ...

```html_example
<div class="flex-small-12 border-bottom block-normal">
    <a class="image-overlay text-center" href="/best-colleges">
        <img class="image-responsive" src="/static/img/brightspot/homepage-bestcolleges.png">
        <div class="image-overlay-content">
            <img width="92" src="/static/img/best-colleges-badge.svg" alt="USNews Best Colleges rankings badge"/>
            <h3 class="heading-large text-white text-shadow">
                2016 Best Colleges
            </h3>
        </div>
    </a>
    <p class="text-muted">Prospective students and parents looking for the school that&apos;s best for them can check out the 2016 edition of the Best Colleges rankings today.</p>
    <a class="" href="/best-colleges/rankings">See the Best Colleges rankings &raquo;</a>
</div>
```

Here is an example where the image overlay text is positioned at the bottom

```html_example
<div class="flex-small-12 border-bottom block-normal">
    <a class="image-overlay text-center" href="/best-colleges">
        <img class="image-responsive" src="/static/img/brightspot/homepage-bestcolleges.png">
        <div class="image-overlay-content bottom-for-medium-up">
            <img width="92" src="/static/img/best-colleges-badge.svg" alt="USNews Best Colleges rankings badge"/>
            <h3 class="heading-large text-white text-shadow">
                2016 Best Colleges
            </h3>
        </div>
    </a>
    <p class="text-muted">Prospective students and parents looking for the school that&apos;s best for them can check out the 2016 edition of the Best Colleges rankings today.</p>
    <a class="" href="/best-colleges/rankings">See the Best Colleges rankings &raquo;</a>
</div>
```
*/
.image-overlay {
  position: relative;
  display: block;
  -webkit-transform-style: preserve-3d;
  -moz-transform-style: preserve-3d;
  transform-style: preserve-3d; }
  .image-overlay:after {
    width: 100%;
    height: 100%;
    position: absolute;
    content: "";
    top: 0px;
    left: 0px;
    content: "";
    z-index: 1;
    display: block;
    background: rgba(26, 26, 26, 0.5);
    transition: all 0.2s ease-in-out 0.2s;
    -webkit-transition: all 0.2s ease-in-out;
    -moz-transition: all 0.2s ease-in-out;
    -o-transition: all 0.2s ease-in-out; }
  .image-overlay:hover:after {
    background: rgba(26, 26, 26, 0.2); }
  .image-overlay.light:after, .image-overlay.light:hover:after {
    background: transparent; }

.image-overlay-content {
  position: absolute;
  z-index: 2;
  top: 50%;
  transform: translateY(-50%);
  width: 100%; }
  @media (min-width: 40.0625em) {
    .image-overlay-content.bottom-for-medium-up {
      top: 75%;
      transform: translateY(-25%); } }
  @media (min-width: 63.9375em) {
    .image-overlay-content.bottom-for-large-up {
      top: 75%;
      transform: translateY(-25%); }
    .image-overlay-content.align-bottom-for-large-up {
      top: inherit;
      transform: inherit;
      bottom: 0;
      left: 0;
      padding: 1rem 2rem; } }

/*doc
---
title: Promo
name: a-promo
category: Media Objects - Promo
template:
    promo:
      float: right
      url: #
      image:
        medium: http://placehold.it/230x152/
        alt: 
      overline: Recommended Articles
      heading: What to Cut and What to Keep on Your Resume
      lead: Five steps to writing a resume that's both stellar and succinct.
---

This module is for a single promo, for example a promo embedded in an article

The difference between this and a promolist is that it's always in the main content section and it disappears in mobile view.

```html_example?kitchen-sink=true
<div class="hide-for-small block-loose small-12 large-8"> <!-- emulating main section -->

{% include "templates/common/promo.nunj" %}

</div>
```
*/
.promo {
  padding: 1.5625rem 0;
  border-bottom: 1px solid #CCCCCC;
  border-top: 1px solid #CCCCCC;
  overflow: auto; }
  .promo > .right {
    margin-left: 1.875rem; }
  .promo > .left {
    margin-right: 1.875rem; }
  .promo.aside {
    max-width: 230px;
    padding: 0.9375rem 0; }
    .promo.aside.right {
      margin-left: 0.9375rem; }
    .promo.aside.left {
      margin-right: 0.9375rem; }

.promo-overline {
  text-transform: uppercase;
  font-weight: 500;
  font-size: 0.875rem; }

/*doc
---
title: Promolist
name: a-promolist
category: Media Objects - Promolist
selectors:
    - .promolist
selector_type: component
template:
    promolist:
        heading: Most Popular
        itemlist:
            - item:
              link: #
              image:
                float: left
                src: http://lorempixel.com/84/84/city/
                height: 84
                alt:
              text: Essential Branding and Networking Tips for College Seniors
            - item:
              link: #
              image:
                float: left
                src: http://lorempixel.com/84/84/city/
                height: 84
                alt:
              text: What Recruiters Think When They See Your LinkedIn Profile
            - item:
              link: #
              image:
                float: left
                src: http://lorempixel.com/84/84/city/
                height: 84
                alt:
              text: 6 Lessons Job Seekers Can Learn From The Great Recession
---

Consistent with firefly naming convention, a promo list is an image with text beside it (to the left or right)

General format with square images

```html_example?kitchen-sink=true
{% include "templates/common/promolist.nunj" %}
```

*/
.promolist {
  list-style-type: none;
  overflow: hidden; }
  .promolist > li {
    display: -webkit-flex;
    display: flex;
    clear: both;
    display: block;
    position: relative;
    padding: 0.9375rem 0.4375rem 0.9375rem 0;
    border-bottom: solid 1px #dcdfe8; }
    .promolist > li:before, .promolist > li:after {
      content: "";
      display: table; }
    .promolist > li:after {
      clear: both; }
    @media only screen and (min-width: 64em) {
      .promolist > li {
        padding: 0.78125rem 0.4375rem 0.78125rem 0;
        border-bottom: none;
        font-size: 1.125rem; } }
    @media only screen and (min-width: 40.0625em) {
      .promolist > li > a {
        display: -webkit-flex;
        display: flex; } }
    .promolist > li > a > img,
    .promolist > li > a > picture > img {
      min-width: 5.25rem;
      max-width: 5.25rem;
      min-height: 5.25rem;
      max-height: 5.25rem; }
      .promolist > li > a > img.left,
      .promolist > li > a > picture > img.left {
        margin-right: 0.9375rem; }
      .promolist > li > a > img.right,
      .promolist > li > a > picture > img.right {
        margin-left: 0.9375rem; }
    .promolist > li:first-child {
      padding-top: 0; }
    .promolist > li:last-child {
      border-bottom: none;
      padding-bottom: 0; }
      @media only screen and (min-width: 64em) {
        .promolist > li:last-child > a.button {
          margin-bottom: 0; } }
      .promolist > li:last-child .promotext {
        margin-top: 0.3125rem; }
  .promolist > li > h3 {
    font-size: 1.5rem;
    font-weight: 500;
    margin-bottom: 0; }
  .promolist li[role=button] > .button {
    margin: 0.375rem 0; }
  .promolist .promotext {
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    display: inline-block; }

ul.promolist {
  margin: 0; }

/*doc
---
title: Extra text
name: b-promolist
category: Media Objects - Promolist
selectors:
    - .promolist.extra-text
template:
    promolist:
        heading: Most Popular
        class: extra-text
        itemlist:
            - item:
              link: #
              image:
                float: left
                src: http://lorempixel.com/84/84/city/
                height: 84
                alt:
              title: Essential Branding and Networking Tips for College Seniors
              text: Lorem ipsum dolor sit amet, consectetur adipisicing elit.
            - item:
              link: #
              image:
                float: left
                src: http://lorempixel.com/84/84/city/
                height: 84
                alt:
              title: What Recruiters Think When They See Your LinkedIn Profile
              text: Lorem ipsum dolor sit amet, consectetur adipisicing elit.
            - item:
              link: #
              image:
                float: left
                src: http://lorempixel.com/84/84/city/
                height: 84
                alt:
              title: 6 Lessons Job Seekers Can Learn From The Great Recession
              text: Lorem ipsum dolor sit amet, consectetur adipisicing elit.
---

Images with extra text

Set `title` for the blue text and `text` for the black text in the YAML file.

Use class `.extra-text` to make sure alignment is to the top of the image, not vertically centered.

Remember that if your thumbnail image is a circle svg, you need to add the class `.circle` to enforce consistent circle icon sizing.

```html_example
{% include "templates/common/promolist.nunj" %}
```
```sass_example
.promolist-text {
    color: $jet;
    font-size: $text-normal;
    margin-top: rem-calc(12);
    display: block;
}
```

*/
.promolist-text {
  color: #222222;
  font-size: 1rem;
  margin-top: 0.75rem;
  display: block; }

.promolist.extra-text .promotext {
  position: relative;
  top: auto;
  -webkit-transform: none;
  -ms-transform: none;
  transform: none;
  display: block;
  margin-top: -0.375rem; }

@media only screen and (max-width: 40em) {
  .promolist.extra-text > li > a > img.left + .promotext {
    margin-left: 6.1875rem; }
  .promolist.extra-text > li > a > img.right + .promotext {
    margin-right: 6.1875rem; } }

.promolist.extra-text > li:last-child .promotext {
  margin-top: -0.3125rem; }

/*doc
---
title: Svgs
name: c-promolist
category: Media Objects - Promolist
selectors:
    - .promolist.circle
template:
  promolist:
    class: circle extra-text
    heading: Best Jobs Rankings
    itemlist:
      - item:
        link: #
        image:
          float: left
          src: /static/img/circle-badge-icon.svg
          height: 84
          alt:
        title: 100 Best Jobs
        text: Lorem ipsum dolor sit amet, qui eu possim.
      - item:
        link: #
        image:
          float: left
          src: /static/img/circle-industry-icon.svg
          height: 84
          alt:
        title: Best Jobs by Industry
        text: Lorem ipsum dolor sit amet, qui eu possim.
      - item:
        link: #
        image:
          float: left
          src: /static/img/circle-stem-icon.svg
          height: 84
          alt:
        title: Best STEM Jobs
        text: Lorem ipsum dolor sit amet, qui eu possim.

---

When you use circle images in the promolist, the size of the image is smaller and the padding larger. Use class `.circle` to set proper image size.

Styling relies on the link lead to be an h4

```html_example
{% include "templates/common/promolist.nunj" %}
```

The width of the svg icons is set here:

```sass_example
.promolist.circle > li > a > img {
    min-width: rem-calc(56);
    max-width: rem-calc(56);
    min-height: rem-calc(56);
    max-height: rem-calc(56);
    margin: rem-calc(14) 0;

    &.left {
        margin-right: $img-margin * 2;
    }

    &.right {
        margin-left: $img-margin * 2;
    }
}

.promolist.circle h4 {
    color: $anchor-font-color;
}
```
*/
.promolist.circle > li > a > img,
.promolist.circle > li > a > picture > img {
  min-width: 3.5rem;
  max-width: 3.5rem;
  min-height: 3.5rem;
  max-height: 3.5rem; }
  .promolist.circle > li > a > img.left,
  .promolist.circle > li > a > picture > img.left {
    margin-right: 1.875rem; }
  .promolist.circle > li > a > img.right,
  .promolist.circle > li > a > picture > img.right {
    margin-left: 1.875rem; }

/*doc
---
title: Round Images
name: d-promolist
category: Media Objects - Promolist
selectors:
    - .promolist.round
template:
    promolist:
        class: round
        heading: Most Popular
        itemlist:
            - item:
              link: #
              image:
                float: left
                src: http://lorempixel.com/84/84/city/
                height: 84
                alt:
              text: Essential Branding and Networking Tips for College Seniors
            - item:
              link: #
              image:
                float: left
                src: http://lorempixel.com/84/84/city/
                height: 84
                alt:
              text: What Recruiters Think When They See Your LinkedIn Profile
            - item:
              link: #
              image:
                float: left
                src: http://lorempixel.com/84/84/city/
                height: 84
                alt:
              text: 6 Lessons Job Seekers Can Learn From The Great Recession
---

Consistent with firefly naming convention, a promo list is an image with text beside it (to the left or right)

Overrides square images and make it look like circles using class `.round`.  Make sure image itself has equal height, width

```html_example
{% include "templates/common/promolist.nunj" %}
```

```sass_example
.promolist.round img {
    border-radius: rem-calc(52);
}
```
*/
.promolist.round img, .promolist.icon-maps-markerMap.blue img, .promolist.icon-maps-markerMap.orange img {
  border-radius: 3.25rem; }

/*doc
---
title: Links Only
name: e-promolist
category: Media Objects - Promolist
selectors:
    - .promolist.text
template:
    promolist:
        class: text
        heading: Questions &amp; Answers
        itemlist:
            - item:
              link: #
              text: How do I get better at networking?
            - item:
              link: #
              text: Should I have personal business cards made?
            - item:
              link: #
              text: How can I set up a meeting with someone who doesn't know me?
            - item:
              link: #
              text: Shoud I make a scene to get the CEO to notice me?
            - item:
              link: #
              text: Can I really get a job from networking?
            - item:
              link: #
              text: See all 32 questions
              strong: true
            - item:
              button:
                label: ask a question
                class: icon link
                svg: /static/sprites/svg/sprite.symbol.svg#question
              link: #
              text: Ask a Question
---
In the case that there is no image, there is only linked text. Use class `.text`

```html_example
{% include "templates/common/promolist.nunj" %}
```
*/
.promolist.text > li {
  border-bottom: none;
  font-size: 1rem; }

.promolist.text > li:last-child {
  border-bottom: 1px solid #dcdfe8; }

/*doc
---
title: Bottom List
name: f-promolist
category: Media Objects - Promolist
selectors:
    - .promolist.end
template:
    promolist:
        class: text end
        heading: Questions &amp; Answers
        itemlist:
            - item:
              link: #
              text: How do I get better at networking?
            - item:
              link: #
              text: Should I have personal business cards made?
            - item:
              link: #
              text: How can I set up a meeting with someone who doesn't know me?
            - item:
              link: #
              text: Shoud I make a scene to get the CEO to notice me?
            - item:
              link: #
              text: Can I really get a job from networking?
            - item:
              link: #
              text: See all 32 questions
              strong: true
            - item:
              button:
                label: ask a question
                class: icon link
                svg: /static/sprites/svg/sprite.symbol.svg#question
              link: #
              text: Ask a Question
---

Lists can be stacked in any order. To indicate which one is at the bottom of the column, when you don't want to see the border underline, add class `.end`

```html_example
{% include "templates/common/promolist.nunj" %}
```

```sass_example
.promolist.end > li:last-child,
.promolist.text.end > li:last-child {
        border-bottom: none;
}
```
*/
.promolist.end > li:last-child,
.promolist.text.end > li:last-child {
  border-bottom: none; }

/*doc
---
title: Stacked
name: g-promolist-stacked
category: Media Objects - Promolist
selectors:
    - .promolist.stacked
---
When the promolist stacks in medium-up and you don't want a gray bottom-border use class `.stacked`

This is currently being used on the Real Estate landing page, so the HTML is currently terrible

```html_example
<div style="background-color: #EAF0F1;" class="brea-hp-pop">

    <h3 class="heading-large bordered-bottom small-only" style="margin-left: auto; margin-right: auto; margin-bottom: 0; max-width: 62.5rem; padding: 15px">Popular Topics</h3>

    <ul class="promolist circle stacked small-block-grid-1 medium-block-grid-2 large-block-grid-3" style=" margin: 0 auto; max-width: 62.5rem; padding-bottom: 15px;">
        <div style="display:none;"></div>
        <li style="padding-left: 15px; padding-right: 15px;">
            <a href="#">
                <img src="/static/img/circle-thumbsup-icon.svg" width="56" height="56" alt="" style="margin-right: 30px;">
                <div class="promotext text-largest">Buying a Home</div>
            </a>
        </li>
        <li style="padding-left: 15px; padding-right: 15px;">
            <a href="#">
                <img src="/static/img/circle-tag-icon.svg" width="56" height="56" alt="" style="margin-right: 30px;">
                <div class="promotext text-largest">Selling a Home</div>
            </a>
        </li>
        <li class="text-largest" style="padding-left: 15px; padding-right: 15px;">
            <a href="#">
                <img src="/static/img/circle-calendar-icon.svg" width="56" height="56" alt="" style="margin-right: 30px;">
                <div class="promotext text-largest">Renting a Home</div>
            </a>
        </li>
        <li class="text-largest" style="padding-left: 15px; padding-right: 15px;">
            <a href="#">
                <img class="left-for-small-only" src="/static/img/circle-stem-icon.svg" width="56" height="56" alt="" style="margin-right: 30px; height: 56px;">
                <div class="promotext text-largest">Home Improvements</div>
            </a>
        </li>
        <li class="text-largest" style="padding-left: 15px; padding-right: 15px;">
            <a href="#">
                <img class="left" src="/static/img/circle-industry-icon.svg" width="56" height="56" alt="" style="margin-right: 30px; height: 56px;">
                <div class="promotext text-largest" style="    max-width: 65%;">Mortgages &amp; Financing</div>
              </a>
        </li>
        <li class="text-largest" style="padding-left: 15px; padding-right: 15px;">
            <a href="#">
                <img src="/static/img/circle-networking-icon.svg" width="56" height="56" alt="" style="margin-right: 30px;">
                <div class="promotext text-largest">Choosing an Agent</div>
            </a>
        </li>
    </ul>

    <style>
        @media only screen and (min-width: 64em) {
            .brea-hp-pop {
                padding-top: 10px;
                padding-bottom: 10px;
            }
        }
    </style>
</div>
```
*/
@media only screen and (min-width: 40.0625em) {
  .promolist.stacked > li {
    padding: 0.78125rem 0.4375rem 0.78125rem 0;
    border-bottom: none;
    font-size: 1.125rem; } }

/*doc
---
title: Promolist Featured
name: h-promolist-featured
category: Media Objects - Promolist
selectors:
    - .promolist.featured
template:
    promolist_featured:
        end: true
        temp_hide: true
        heading: Most Recent
        float: left
        more_link: #
        itemlist:
            - link: #
              small_img: http://placehold.it/84x84/
              medium_img: http://placehold.it/314x209/
              alt:
              heading: Avoid These 5 Pitfalls of Job Hunting
              author:
                link: #
                name: Paige O. Author
                date: April 23, 2015
              lead: The common - but preventable - mistakes will derail your search.
            - link: #
              small_img: http://placehold.it/84x84/
              medium_img: http://placehold.it/314x209/
              alt:
              heading: What not to tweet on a job
              author:
                link: #
                name: Paige O. Author
                date: April 23, 2015
              lead: The common - but preventable - mistakes will derail your search.
---

This is a featured promolist, with larger images on medium-up screens

```html_example?kitchen-sink=true
{% include "templates/common/promolist-featured.nunj" %}
```
*/
.promolist.featured {
  max-width: none;
  min-width: 5.25rem; }
  .promolist.featured > li {
    width: 100%;
    padding: 0;
    border-bottom: none;
    margin-bottom: -0.3125rem; }
    .promolist.featured > li > h3 {
      padding: 0.75rem 0 0 0; }
      @media only screen and (min-width: 40.0625em) {
        .promolist.featured > li > h3 {
          padding: 0; } }

.promolist.featured > li > div {
  width: 100%;
  display: -webkit-flex;
  display: flex;
  padding-top: 0.9375rem;
  padding-bottom: 0.9375rem;
  border-bottom: 1px solid #dcdfe8; }
  .promolist.featured > li > div h3 {
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    display: inline-block; }
    @media only screen and (min-width: 40.0625em) {
      .promolist.featured > li > div h3 {
        position: relative;
        top: auto;
        -webkit-transform: none;
        -ms-transform: none;
        transform: none;
        display: block; } }
  .promolist.featured > li > div > a {
    padding-left: 0; }
    @media only screen and (min-width: 64em) {
      .promolist.featured > li > div > a {
        padding-left: 0.9375rem;
        padding-right: 0.9375rem;
        width: 50%;
        float: left; }
        .promolist.featured > li > div > a.left {
          padding-left: 0; }
          .promolist.featured > li > div > a.left ~ .featured-content {
            padding-right: 0; } }
      @media only screen and (min-width: 64em) and (min-width: 40.0625em) {
        .promolist.featured > li > div > a.left ~ .featured-content {
          padding-left: 0.9375rem;
          padding-right: 0.9375rem;
          width: 50%;
          float: left;
          padding-right: 0; } }
    @media only screen and (min-width: 64em) {
        .promolist.featured > li > div > a.right {
          padding-right: 0; }
          .promolist.featured > li > div > a.right ~ .featured-content {
            padding-left: 0; } }
      @media only screen and (min-width: 64em) and (min-width: 40.0625em) {
        .promolist.featured > li > div > a.right ~ .featured-content {
          padding-left: 0.9375rem;
          padding-right: 0.9375rem;
          width: 50%;
          float: left;
          padding-left: 0; } }
    @media only screen and (min-width: 40.0625em) {
      .promolist.featured > li > div > a > img, .promolist.featured > li > div > a > picture > img {
        min-width: 18.625rem;
        max-width: 18.625rem; } }
  @media only screen and (min-width: 64em) {
    .promolist.featured > li > div {
      padding-top: 1.5625rem;
      padding-bottom: 1.5625rem;
      border-bottom: none;
      border-top: 1px solid #dcdfe8; } }
  .promolist.featured > li > div > .left > img,
  .promolist.featured > li > div > .left > picture > img {
    padding-right: 0.9375rem; }
    @media only screen and (min-width: 64em) {
      .promolist.featured > li > div > .left > img,
      .promolist.featured > li > div > .left > picture > img {
        padding-right: 0; } }
  .promolist.featured > li > div > .right > img,
  .promolist.featured > li > div > .right > picture > img {
    padding-left: 0.9375rem; }
    @media large-up {
      .promolist.featured > li > div > .right > img,
      .promolist.featured > li > div > .right > picture > img {
        padding-left: 0; } }
  .promolist.featured > li > div p {
    margin-top: 0.9375rem;
    margin-bottom: 0;
    display: none;
    color: #222222; }
    @media only screen and (min-width: 40.0625em) {
      .promolist.featured > li > div p {
        display: block; } }
  .promolist.featured > li > div .featured-content h3 {
    margin-bottom: 0;
    font-size: 1rem; }
    @media only screen and (min-width: 40.0625em) {
      .promolist.featured > li > div .featured-content h3 {
        font-size: 1.5rem; } }
  .promolist.featured > li > div .featured-author {
    font-size: 0.875rem; }
    .promolist.featured > li > div .featured-author a {
      color: #888888; }
      .promolist.featured > li > div .featured-author a::after {
        content: " | ";
        color: #555555;
        margin-left: 0.625rem;
        margin-right: 0.625rem; }
      .promolist.featured > li > div .featured-author a:hover, .promolist.featured > li > div .featured-author a:focus {
        color: #2c7ef0; }

.promolist.featured > li[role=button] > a {
  margin-top: 1.25rem;
  margin-bottom: 2.1875rem; }
  @media only screen and (min-width: 64em) {
    .promolist.featured > li[role=button] > a {
      margin-top: 0.6875rem;
      margin-bottom: 1.5625rem; } }

/*doc
---
title: Profile Section with Image
name: a-profile-section
category: Media Objects - Profile Section
selectors:
    - .profile-section
---

- `.profile-section` has 60px of white space below it.
- `.profile-section-footer` consists with a link and a border above it. They go inside sections.

### w/ Image (flush with text)

```html_example_kitchen-sink
<div class="profile-section block-loose">
  <h2 class="heading-larger block-normal">Overview</h2>
  <div class="block-normal">
    <img class="profile-section-img" src="http://placehold.it/312x215" alt=""/>
  </div>
  Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ab atque dignissimos ipsa odit omnis quam quos rem vel. Amet
  asperiores debitis ex laborum, minima molestiae necessitatibus neque pariatur sed sequi? Lorem ipsum dolor sit amet,
  consectetur adipisicing elit. A blanditiis deserunt ea eligendi eos error et incidunt iste laudantium, magni porro,
  quia, quidem ratione reiciendis rem rerum saepe sapiente sequi.
  Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ab atque dignissimos ipsa odit omnis quam quos rem vel. Amet
  asperiores debitis ex laborum, minima molestiae necessitatibus neque pariatur sed sequi.
  Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ab atque dignissimos ipsa odit omnis quam quos rem vel. Amet
  asperiores debitis ex laborum, minima molestiae necessitatibus neque pariatur sed sequi? Lorem ipsum dolor sit amet,
  consectetur adipisicing elit. A blanditiis deserunt ea eligendi eos error et incidunt iste laudantium, magni porro,
  quia, quidem ratione reiciendis rem rerum saepe sapiente sequi.
  Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ab atque dignissimos ipsa odit omnis quam quos rem vel. Amet
  asperiores debitis ex laborum, minima molestiae necessitatibus neque pariatur sed sequi.
  <div class="profile-section-footer">Lorem ipsum dolor sit amet.</div>
</div><!-- /.profile-section -->
```

### w/ "Overview" Image (flush with header)

```html_example?kitchen-sink=true
<div class="profile-overview block-loose">
  <h2 class="heading-larger block-normal">Overview</h2>
  <div class="block-normal">
    <img class="profile-section-img-header" src="http://placehold.it/312x215" alt=""/>
  </div>
  Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ab atque dignissimos ipsa odit omnis quam quos rem vel. Amet
  asperiores debitis ex laborum, minima molestiae necessitatibus neque pariatur sed sequi? Lorem ipsum dolor sit amet,
  consectetur adipisicing elit. A blanditiis deserunt ea eligendi eos error et incidunt iste laudantium, magni porro,
  quia, quidem ratione reiciendis rem rerum saepe sapiente sequi.
  Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ab atque dignissimos ipsa odit omnis quam quos rem vel. Amet
  asperiores debitis ex laborum, minima molestiae necessitatibus neque pariatur sed sequi.
  Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ab atque dignissimos ipsa odit omnis quam quos rem vel. Amet
  asperiores debitis ex laborum, minima molestiae necessitatibus neque pariatur sed sequi? Lorem ipsum dolor sit amet,
  consectetur adipisicing elit. A blanditiis deserunt ea eligendi eos error et incidunt iste laudantium, magni porro,
  quia, quidem ratione reiciendis rem rerum saepe sapiente sequi.
  Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ab atque dignissimos ipsa odit omnis quam quos rem vel. Amet
  asperiores debitis ex laborum, minima molestiae necessitatibus neque pariatur sed sequi.
  <div class="profile-section-footer">Lorem ipsum dolor sit amet.</div>
</div><!-- /.profile-section -->
```
*/
.profile-section-img-header {
  margin-top: 0;
  margin-left: 0; }
  .profile-section-img-header img {
    width: 100%;
    height: auto; }
  @media only screen and (min-width: 40.0625em) {
    .profile-section-img-header {
      float: right;
      margin-left: 15px;
      margin-bottom: 15px;
      max-width: 300px; } }

.profile-section-callout-img {
  margin-top: 0;
  margin-bottom: 1.5rem;
  height: 115px;
  float: right;
  margin-left: 1.5rem; }
  @media only screen and (min-width: 40.0625em) {
    .profile-section-callout-img {
      height: 150px;
      margin-top: -40px; } }

.profile-section-img {
  margin-top: 0;
  margin-left: 0; }
  .profile-section-img img {
    width: 100%;
    height: auto; }
  @media only screen and (min-width: 40.0625em) {
    .profile-section-img {
      float: right;
      margin-left: 15px;
      margin-bottom: 15px; }
      .profile-section-img img {
        width: auto;
        height: 215px; } }

.profile-section-footer {
  border-top: 1px solid #DDDDDD;
  padding-top: 22px; }

.profile-section {
  position: relative;
  -webkit-text-size-adjust: 100%; }

/*doc
---
title: Profile Data Section
name: b-profile-data-section
category: Data Patterns - Profile Data
selectors:
    - .profile-data-item
template:
    profile_data:
        -
            name: Median
            value: $146,340 per year
            subvalue: national average $56,819
            valueColor: text-above-average
        -
            name: 25th Percentile
            value: $105,520 per year
            subvalue: national average $76,130
            valueColor: text-average

---

This is a typical section of data on profile pages. It becomes oriented as a row on medium up.

valueColor should be any of the following (or left blank):

| param              |
|--------------------|
| text-above-average |
| text-average       |
| text-below-average |

{% set editor_id = uuid() %}

```nunjucks_tab?editor-id={{editor_id}}

{% from "templates/common/data/profile/profile-data.nunj" import profileData %}

{% for item in profile_data %}
    {{ profileData(name=item.name, value=item.value, subvalue=item.subvalue, valueColor=item.valueColor) }}
    {% if not loop.last %}<hr>{% endif %}
{% endfor %}

```

*/
.profile-data-key:after {
  content: ':'; }

@media only screen and (min-width: 40.0625em) {
  .profile-data-key {
    font-size: 1.125rem;
    position: relative;
    top: 10px; }
    .profile-data-key:after {
      content: ''; } }

@media only screen and (min-width: 40.0625em) {
  .profile-data-value {
    font-size: 1.125rem; } }

/*doc
---
title: Scorecard Widget
name: a-scorecard-widget
authors: Pablo Lazo, William Ferguson
category: Data Patterns - Widget
selectors:
  - .scorecard
template:
    scorecard:
        metric:
            name: Overally
        scores:
            -
                name: Salary
                value: 9.3
            -
                name: Job Market
                value: 7.7
            -
                name: Future Growth
                value: 9.2
            -
                name: Stress
                value: 2.0
            -
                name: Work Life Balance
                value: 5.7
                subtitle: subtitle
---

This is a macro that builds a scorecard *widget* that displays a stylized bar graph.
Uses <a href="/data_patterns_-_score_bar.html#a-score-bar">Score Bar</a>

**from 'templates/common/widgets/scorecard.nunj' import scorecardWidget**

###Template Parameters

| parameter          | purpose                                              | default |
|--------------------|------------------------------------------------------|---------|
| `data`*            | [Data](#dataObject) required to build the scoreboard |         |
| `multiplier`       | score multiplier (to calculate score bar percentage) | 10      |
| `nameClasses`      | css classes for the score names                      | ""      |
| `scoreClasses`     | css classes for the score number                     | ""      |
| `subtituteClasses` | css classes for the score subtitle                   | ""      |
\* = required

``` html_example
{% from 'templates/common/widgets/scorecard.nunj' import scorecardWidget %}
{{ scorecardWidget(scorecard) }}
```
<a name="dataObject"/>
###Data Scructure
| property     | purpose                                                   | default          |
|--------------|-----------------------------------------------------------|------------------|
| `scores`*    | array of [Score](#scoreObject)                            |                  |
| `metric`     | [Metric](#metricObject). Set to null for no metric        | {name="Overall"} |
\* = required

<a name="scoreObject"/>
###Score Data
| property   | purpose        | default |
|------------|----------------|---------|
| `name`*    | score name     |         |
| `value`*   | score value    |         |
| `subtitle` | score subtitle | ""      |
\* = required

<a name="metricObject"/>
###Metric Data
| property | purpose     | default                                                                               |
|----------|-------------|---------------------------------------------------------------------------------------|
| `name`   | metric name | ""                                                                                    |
| `value`  | score value | By default this is calculated as the average of all the Scores, rounded to 1 decimal. |


*/
.scorecard {
  border-style: solid;
  border-width: 1px;
  border-color: #b6b6b6;
  margin-bottom: 1.25rem;
  padding: 20px;
  background: #FFFFFF;
  color: #333333;
  border-radius: 5px;
  border-color: transparent;
  -webkit-box-shadow: 0 0 5px 0 #ccc;
  -moz-box-shadow: 0 0 5px 0 #ccc;
  box-shadow: 0 0 5px 0 #ccc;
  margin-bottom: 2rem;
  padding-top: 0; }
  .scorecard > :first-child {
    margin-top: 0; }
  .scorecard > :last-child {
    margin-bottom: 0; }
  .scorecard h1, .scorecard h2, .scorecard h3, .scorecard h4, .scorecard h5, .scorecard h6, .scorecard p, .scorecard li, .scorecard dl {
    color: #333333; }
  .scorecard h1, .scorecard h2, .scorecard h3, .scorecard h4, .scorecard h5, .scorecard h6 {
    line-height: 1;
    margin-bottom: 0.625rem; }
    .scorecard h1.subheader, .scorecard h2.subheader, .scorecard h3.subheader, .scorecard h4.subheader, .scorecard h5.subheader, .scorecard h6.subheader {
      line-height: 1.4; }

.scorecard-heading {
  border-top-left-radius: 5px;
  border-top-right-radius: 5px;
  background-color: #1552a8;
  margin: -22px;
  padding: 0.6375rem 1.25rem 0.4375rem;
  color: #FFFFFF;
  position: relative;
  top: -1px; }

.scorecard-title > * {
  color: #FFFFFF;
  font-size: 0.84rem;
  font-weight:600;
  letter-spacing: 0.0625rem; }

.scorecard-score {
  color: #FFFFFF;
  margin-top: .73rem;
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.2; }
  .scorecard-score p {
    color: #FFFFFF;
    font-weight:600;
    font-size: 0.84rem; }

.scorecard-list {
  margin-top: 40px; }
  .scorecard-list > li + li {
    margin-top: 15px; }
  .scorecard-list .item {
    color: #1552a8;
    font-size: 0.875rem;
    font-weight: 500; }
  .scorecard-list .scorecard-list-bar {
    height: 5px;
    border-radius: 5px;
    background-color: #eeeeee; }
  .scorecard-list .scorecard-list-bar-value {
    height: 5px;
    border-top-left-radius: 7px;
    border-bottom-left-radius: 7px;
    background-color: #1552a8;
    position: relative; }
    .scorecard-list .scorecard-list-bar-value:after {
      content: '';
      height: 7px;
      width: 7px;
      display: inline-block;
      background: #fff;
      border-radius: 7px;
      position: absolute;
      right: -3.5px;
      top: -1px;
      border: 2px solid #1552a8; }

ul.scorecard-funds {
  margin-left: -5px;
  margin-right: -5px; }
  ul.scorecard-funds.scorecard-list > li + li {
    margin-top: 8px; }
  ul.scorecard-funds .mf-scorecard_firm_morningstar,
  ul.scorecard-funds .mf-scorecard_firm_lipper,
  ul.scorecard-funds .mf-scorecard_firm_zacks,
  ul.scorecard-funds .mf-scorecard_firm_standardandpoors,
  ul.scorecard-funds .mf-scorecard_firm_thestreet {
    background-position: 0 0;
    background-repeat: no-repeat;
    float: left;
    position: relative;
    text-indent: -999em; }
  ul.scorecard-funds .mf-scorecard_firm_morningstar {
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAWCAYAAAA2CDmeAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAE3pJREFUeNqMmnl8U2W6x78nafakTRu6t3RHFluWll6QRQdBVgEviwUcBpdhxHVE5DrgNqhwmVFwZtQZEa+4AOIF64JFBSl00BaKlKXFwtCdpksamrZJmj33j5MEuuDc9/Pp55ycPOec931+z/N7fs+bCn6/HwB+/etcPv7YAMCECR2Ulp7hiSfgn/8cQmPjOK5dg4QEGDOmBLvdgdUKKSnw9NNQXg5uN3g8UF0NqangcsH330NYGPh8sH49eL3Q0QFjxsCPP8LYsWC3g04nfpeQAAcO5LFhQxTBsWYNvP32z7S2NnH8+AgKCpJZv97OtGknmDULYAwQw6uvlqJSpbJ2bTyTJ1/m2Wd7WLgwl9mzvSxaVMyqVT5gOGr1UDIzq3j77WZSU2exfPlTlJSEoVL52LLlAg8+uA6z2YfJlMz27W+xZ48agJUrO5g06RnWrBmKz6fhxpGf/y+mTu3i/ffzMJth9WoPGzce5auvpLz33p1UVIh2qakwd24ry5adZ9IkOHhwMp2dLxMefpnCwsdxu11hNzz2ReBOAPz+VmAuSUnVGAzDqKkpvMFuGILQjNMJGg2oVKLDg8PvF6/LZOJfEJCICBGktrY+a8HnE++5Pl4BpgAqQODYMSd795axbNlMNJq5wB9paKjh0KGcgP0fgHnAbcDvgaXARuAcYWGFtLZacbtj0evBYlmNx/M7IiMXo1A088YbOygpSQagtxfeeGM6s2eXExe3l71732TfvrtDs/r8c9DpUvD5JgSu2AEFIMVkeomGhiO43aKfOjt7qKuLA1RIpUHfqamvhxMnLjN79lrM5q/p7NyG1Toek+kO9PrPkEgqbwTEAIjR0NWVzuHDOTz9dDVDh67g++/VN9hJ8fuhpwcWL4b4eHExCgVERoLBkEhr6yJcrhRstuuA1NWBXF5OVlYxBkNbCDy3uy8ofr84j9xc0OlsHDumYfny20lPvxuNxgSoOXIkma1b1eTk2Dl/PiowbxmgD5xrAAVKpZrTp9WUlc2jqekgmzaF43arycnppb4+lddeS2boUAeff76dDz6Yxl/+8h+sWjWDIUP2cuTIfAQBdu9+C5dLx/33r+TTTydw330WjEY9R4+qSUuDceNsZGTYOHnSg9Uq+uniRTUffgijRwv4fOK1GTPcVFR4OXduGK+//jd27bobo7GN8vILyGRe5s2bQnLyrTcCYg2dXbsG27YZATCb7+wT0YLgw2yG7GyYOxcuXoSoKNBq8zh06BlOnlzElSvSG+xFZz/4IEgksGBBLwUFfyc6+mmUSvF7lQqs1mDGiCfjx+/kueceZseOM2zalMPmzQoeeMAJQHe3noyMuURE/G8gUgG8N5w7AQ8Khfju3bsnUlZ2EHDg94NO50UieTBge5z9+zeg081GLi+itLQj9DyNRkpR0WOMHg0q1Uqk0m6eeiqP558PA6pJSjpEfv7dPP64j48+2s3x4+Kd9fUWYmNh3DgBh0O8VlAwlRdfbOL++69SXJxGcXENKSl51NZGoNXG4XafxWS6ImGwYTZDXl4SZ8/CJ590DHBudzcsXSo6OCVFxuXLG9i6tZzdu5dy5YqU6OgeVq++wuLFX+D3r2HVqnImT65BKoXCQhX33ruWL774kYiI2ej1MGQIyOV9qU8ikVJU5KW8/J1A1LlxOgU0GjGrzp1LIzoawMfNhlIpHn/6SUlMTBA0MbtNJgUAjY1uNm+GkhIlCkWf0MNmg9274cABsWZER4dTXR1JUVF96N5Ll7yYzX7q6mbeMHc1mzdPIiKiNwSIyaQiObmZhIRqAGpr95CU9Ar5+TZuvfUYI0Z8RF7edwMBEQSxwI4duwaZDE6ftvXh+64uyM+H+fMBotm37xzbtr3KhQtw++0Wtm3bzIQJw/jNb7JYunQh8A9WrMhn0aJMdu1ayfr1lcjlsH//RB56qAi/fyapqWAwiI4OjthYGfv3w6FD3lCQ+HyEnCaTrUKlAnDdFBBJYHkazSqkUkIZJJGATBa8L4yYGNBqZX0CAkQOlcshKuo6kzgcYQFqBIUiDJ8Pvv0WTp1qQ6mE3Fyw2eQ0NU3A63UjkYg+VSgSmT4dSkouoddDVVUKR49+zqhRI4mJmYlMdhSt1ijpU4wBhg4Vj+++a+JXv0pjxIjRhIWBVisW5e5uUSWFh8P27dv57W9HALBx4yWeeWYUiYkbuXatlfp6aG0Vn3X1qniuUn3E009ns2XLgyQmuikthf/6r2+QSGaSnk7AaeJwuQhkgCwU7YJwPYt27vTS2Cg69GYjuKavv1YyfXo4cnkvNx/BOqnvc9XlArdbEmIHiUQOeADRJ1evwp490NSkRq3uZsiQQ/j9cPSoBadTrKEAYWHuQK3UEBYGJpOfb74BtVoMRK8XPB4GApKcLC7+4sUmKioiaW+PJS0NYmPFVI+NlZCVBcePL2Dt2hUAvPPOZV55ZTINDUZMJkJR0T/zrFZoagKr9X945JHbyclxUF4OTzzxATabpA8gggCdndcj1ensq8bc7mQKCoYBLfy7YTKpiY+/HZ+v9aaZpFJdRRBOA5WAAEhQKuH220GhcGG3n8bnO41G0wloQ4whl4tZ294ehs3Wi93+AzIZfPttN1ar+L1oK6WrC8CBIIjXe3vF1kAqFYNvyBAGUpbBIBbZ+PiZXLkymuZmF8OHi72C2w0SiRW5HLZs2QbA8uV1rF49mYaGDiyWgUD0X7jdLk4gJqaUxx+/B4kE3nwzlsLCVeh0IAjSkO3EiZCY2AVAfLyAVHodlNbWCEpLo5BKO2/6vuBczGZ44w0bYWHuQe06OqCm5ggwHvhrIOt60Olg585HmDfPRlLSeByO8dTWXgBSAVHCT5oEX3wxFb/fgFZrYcYMAy4XZGTcQm6ugp4eL34/eL0dfPwxjB0bi8kEFouYfW++CW+/DWVlcPToIIDExEB6OnR1jUCjWQz4ycoSUwpg6tRrwCS+/Tad8HB4+eVHsFpNeL1w112iI4O2/enD5RIjY+FCsQ7de+83/OEPZQAUFa0nIUGHz9cTcGIXjz2WRV7ewwDMny9Hq/XhcIjv6OgAm20Rfn/sTQFxu0XwnU6AArTarMHCBI0Gzp69rvTuuksgNTUckwlmzXoLj+f3/PCDlEcfFfuRYNYqFKIiLS+/FatVSWpqD4sXqwDIylpJXFwSDof4UL3ezZgxM+noGI9eD/fdJ2PZMlixQlSs589DcfEg/GswmEhO9nDoUDw9PXNCHabIf3amTYuhru6/AVixooz09G+oqRGdlJUlLt7hEI/BohoEyeG43pd4vWKEzZ//Aq+//h1HjtxCSUkiSmUzAO+/v4DDh1dTWyvjnntcvPTS1xw7tgKnE3JyoKYGzOYcEhONNDUNDojNJs7JbIaGhhwiI8vp6OhrExnZRWzs83R1TQ4otq+ZNest9uzZwJw5v+fUqRjWrdtOb+8yFiy4E4PBSlmZuDCVSlzDwYPd+HyQn5+OUrkeWM7Jk2pOn/YTHy/Q0gIbNuxm3bp4rl2DV199jyefPDMgYP3+QQCprDxGc/M1nM7f8eWXoqZPSDACaQiCiy+/jOD771MAyMs7yNGj4oIFIaheYOZMUcpaLNcp47bbYMoU8ZrPJ9YpjweGDy9nxowWvvoqnqqqbIYMEWWU3Z7E5cuBDskqpbk5PaSSRo0S7/V4xnLbbTns2zc4IHY7DBsmnp87N4wpUxL517/62uj1vWRk3ENj41jsdgA3J068yVNPbWH79i3s2nWYd9+dzvr1+bS3n2X58ruBhlBRr62FigofggDNzUV8+GExcrmK6mob589bQgqttTU+9M7GxqGYzTF0d1v77VIMAojPJyMjQ0FFBVRVgULRgUTyIR7Pi2i1Eo4d81Be7kCphDlzqlGpxEgMoiyVwpw54vFPf7rO5U1NohoJ0llQteh0FjSa74DfoNXeh8cjNn8LFxah022lqmozhw9PYv36bFauFOksIaEdna6X999Pob2dX6whLtdFIiMv0ty8mPLyyAE2bW1R3HbbfUyevITDh1/C76/m0UdjMBrzSU42MXfuDCSSl3nnnefYvz+DESNigAshBTZ0KHg8Ym06daqCjAzIzJRQW6tkzJgxHDzYg1yuZsGCNYwb18KePZ+zY8cMbLah2O21/aczEJCMDIHcXAP794ufExMlREWpcThE/heVQgQREXD//QdCWx/9HaHVgskEeXkiOO3tIkdL+pWt8HDQ6cSsqKnpJSFBrMQ5OY00N5fQ2PgPYBKdnTbcbrHgG40/kJ3dg9u9kitXfllEdHS0MG1aG/v2waVLg2WRnOPHLzJuXAkSCfj9tcBEHnjgcxobQaEQmDDheTSa51CpQCJxhqS41ermpZegtPR+Tp2C8eM1ZGRAWlonly4NITJyCQ5HG15vLNnZZ8nKKkOjKQfGU1/vxDWwhRoIiFQKcXGlwN0BQCJISAgPdZzBpsnjgchIKeDF42GQTIORI0XVdvFiUMMP7jS32xdowqQIQhBdLb290NERAYjODDaObreOW2458W/lrscDCsUQZs2q4uWXe+npUQ1i5cNqBY8nOhBMYVy96uTECbDZugJ1Jhyfr2+fJNYQH1evQnX1cAAuXFhDXd182tr0gW7cjkYjxeuF6Oh0nnyyjObmNqKjxQ3YsLD/ByBGo8Bnn+1BEDbj90NUVAWRkRdxucDl8hMdLfDzzza6u+GPf1yOQvFRgHsH75JPnBAVUd9tib4y+7PPxKwYNswfUjpeb1C2CiF6CI6uLiW1tXsxGF7HbL45IGFh0NUVSVXVATIz/xzaBu8/gr3CjUEZEwN1dX7kclAqhZtQokBxMVRWWgJ7WPFAfOgZdXUuZDKxvrjdXiIioLlZOYBRfhEQlwuSksKJjRW767q6bzh7tgS9HurqBJYs8RMd7eDAAfjoozSGDRMd3r//CO7g5uWJEleUngOlcGZmFDt3zg3Qx/s4nUsGnemN0Wk2w6pVOs6cgb17fzlLHA4FmZleMjPLqKi4M/Ren092g82NUt2NRqMNBJQ30KkP7P7F7RuBwkJoaRH9+Ne/fsrUqVb+9rcxvPfeOOx2KXq9MKAv+oUxEJDeXjdz5ig5fFgEZNQoAzKZJjARLQpFI9nZhRw4MJKqqmVs2LCJysr+v2mILxcEMBrF5/RPTzH74Msvp3D8eDhJSZCXV0dhob9P0Q+Ozk4Xvb3ygCNiaG+vQ6f7Epj/iyvUaiMoLzdjsx0M/d6j1UJysjuQyTY0GlCrzYEgisRgOIFUCoKgRqEAtborNB+FQg24A2vwk5sLhw6JVNjQcC9KJcTHPwqMIyLit2g06gG+CbYBTucAkMIG4d1IEhKa0WhqgAxmz3aSlESAliSUl3tZsOBTVKqNfPbZcIqL72Ps2I9pa+v78OAk5s4dvHYEtv0oKPhzwO40I0fWsn9/Yp8sC47p0xWkpwe7eAUdHW6mTm1gx45fDrnOTi+5uTBlioqiInEu9fVQW7sT2MjIkbeya1cMJSUTKSwESGbhwiquXXMTEaHi73/PIDLSQFER9Pb2BIp+VKCWNbNu3TjOn0+htxfq61OoqmogL0/U2nV1+hAFSyRBNSrg8YDf3zGAKvsA0t6uDVBWBi+8YOTIkUogg5KSd8nPTwzJyzNnYlm37jxPPHGerVtzKCjYxfHjDSiV/wzJ3xsz5MABUV3JZP31v4QzZ/7Bvn1ZqNXw0EObMRpdWCwxgWhTExUFI0Yo+PlnSEx8kujonwKaXoPRCG1te4DHAbBYpLhc4gZhS4sCuz0Mux1MJg2XLoFe/y6wGZ8PfvpJxcyZRtLTobLyFl577TInT4ri4dlnncTGwr59PsrKYNeuKpxOGR4P3HFHC7W19cAdgXlIOHBAz8WLMsLDYd48cRPSYjkCPMGPP16nO5NJjl4PoKKzEyZP/k9mzNga2oAdAMjChWYMBjsTJhhJSoKkJA/V1Xays1vQaqN5+GE73d0werSCsDB47LGH6ej4FqNRR03NDqZMGdEnNcWUhytXxB1RTd+foVEoYrl0aTGLFtnJy/uAsWMLsVhg0qR2jEY7kydbGD4cliyxsWOHnehoAZ/PQ0GBnZycdhQKSExsZu1aO1evwqRJbuRyC0uX2hk50kZmppNVq+zExdnR60Ei6WDTJiuVlRJGj9azdKmbmJhNvPbaC3zyiQjGxIk/s2TJNrKzITp6KXV1H/PddzoAUlKMLFv2EEolLFvmAuykptpIS7OxZImd0aNh+XIve/fCjz9+RUFBO0lJWgRBpOzRo3uZOhUuXWqnuNhOTs40IiO39qdyIfRPDvX1ubS1GTAYuomLK6OrayxGYzQpKcfQatXU1OTj9YJaXYIgOIiJgZaWO2ltlRIeriAh4as+hTtIX62tYtHsLxn9fi2CMAuFopv29hJGjnSQmAhmcx719VHExLQQF3cBtXooZ84MByykpXVRU5OCTmcnOvoEUVEaamom0d4OaWmlSCSp1NTEYzBcJja2h7q6XGQyL3Fx32MwSGhqupPmZoGoqJ+xWJo4cQLk8h3U1KSQnAx2+0uMGlXK8OFw7hzs2DGLadOewmp1cubMFh55pJS0NPB6o/D789BoGoA2LJZ8YmMhLa2E6moHlZUSUlJ+hUolDTSnEBNznsTEVnp7x3Hu3BAiI03I5RX9Fdf/DQA8sgu4aHvfrwAAAABJRU5ErkJggg==);
    background-position: 0 center;
    height: 41px;
    width: 100px; }
  ul.scorecard-funds .mf-scorecard_firm_lipper {
    background-image: url(data:image/png;base64,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);
    background-position: 0 center;
    height: 41px;
    width: 100px; }
  ul.scorecard-funds .mf-scorecard_firm_zacks {
    background-image: url(data:image/png;base64,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);
    background-position: 0 center;
    height: 41px;
    width: 100px; }
  ul.scorecard-funds .mf-scorecard_firm_standardandpoors {
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAApCAYAAADDJIzmAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NDkxMSwgMjAxMy8xMC8yOS0xMTo0NzoxNiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjlFODhFNjdEMEQ3QjExRTc4QjVBQUJBRjc0ODc1NTVFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjlFODhFNjdFMEQ3QjExRTc4QjVBQUJBRjc0ODc1NTVFIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OUU4OEU2N0IwRDdCMTFFNzhCNUFBQkFGNzQ4NzU1NUUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6OUU4OEU2N0MwRDdCMTFFNzhCNUFBQkFGNzQ4NzU1NUUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4Vl1E4AAAS+0lEQVR42tRbCZgV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);
    background-position: 0 center;
    height: 41px;
    width: 100px; }
  ul.scorecard-funds .mf-scorecard_firm_thestreet {
    background-image: url(data:image/png;base64,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);
    background-position: 0 center;
    height: 41px;
    width: 100px; }
  ul.scorecard-funds .mf-scorecard_score_zacks,
  ul.scorecard-funds .mf-scorecard_score_thestreet {
    margin-top: 6px;
    font-size: 11px; }
  ul.scorecard-funds .lipper .numbers {
    background-image: url(/static/images/ah/lipper_scores.gif);
    background-repeat: no-repeat;
    background-position: 0 10px;
    height: 15px;
    width: 13px;
    text-indent: 100%;
    overflow: hidden;
    display: inline-block; }
  ul.scorecard-funds .lipper .numbers.numbers-5 {
    background-position: 0 0;
    margin-top: 7px; }
  ul.scorecard-funds .lipper .numbers.numbers-4 {
    background-position: -15px 0;
    margin-top: 7px; }
  ul.scorecard-funds .lipper .numbers.numbers-3 {
    background-position: -30px 0;
    margin-top: 7px; }
  ul.scorecard-funds .lipper .numbers.numbers-2 {
    background-position: -45px 0;
    margin-top: 7px; }
  ul.scorecard-funds .lipper .numbers.numbers-1 {
    background-position: -60px 0;
    margin-top: 7px; }

/*doc
---
title: Stock Change Widget
name: a-stock-change-widget
category: Data Patterns - Widget
authors: Pablo Lazo
selectors:
    - .stock-change
template:
    topMovers:
        -
            name: Apple
            symbol: APPL
            value: 19.2
            trend: up
        -
            name: Google Inc.
            symbol: GOOGL
            value: 16
            trend: up
        -
            name: Facebook
            symbol: FB
            value: 3.2
            trend: up
        -
            name: Bank of America Corp
            symbol: BAC
            value: 2.1
            trend: up
---

Widget that lists the top rising stocks.

``` html_example

{%include 'templates/pages/money/investing/stocks/profile/_top-movers-content.nunj' %}

```

*/
/*doc
---
title: Stock Ticker
name: a-stock-ticker
category: Data Patterns - Widget
authors: Wes DiMiceli
selectors:
    - .stock-ticker
template:
    stocks:
---

Widget that highlights stock changes in horizontal format, with carousel arrows

``` html_example

{%include 'templates/pages/money/common/widgets/stock-ticker.nunj' %}


```

*/
div.stock-ticker {
  padding: 0 0.9375rem; }
  div.stock-ticker h6 {
    line-height: 0.75rem;
    margin-right: 30px; }
  div.stock-ticker .stock-ticker-item {
    padding: 0 20px; }
    div.stock-ticker .stock-ticker-item a {
      padding-right: 10px; }
    div.stock-ticker .stock-ticker-item .stock-trend {
      font-weight: 300; }
  div.stock-ticker .stock-change {
    padding-top: 0;
    flex-grow: 2;
    width: 0; }
  div.stock-ticker .prehero-spacer {
    height: 1.25rem;
    width: 100%; }

/*doc
---
title: Stock Updates
name: a-stock-updates
category: Data Patterns - Widget
authors: Wes DiMiceli
selectors:
    - .stock-updates
template:
    stock:
        symbol: GOOG
---

Widget that lists significant stock updates that should be displayed on an accompanying chart.

``` html_example

{% include 'templates/pages/money/common/widgets/stock-updates.nunj' %}


```

*/
#stock-updates {
  border-style: solid;
  border-width: 1px;
  border-color: #b6b6b6;
  margin-bottom: 1.25rem;
  padding: 0px;
  background: #FFFFFF;
  color: #333333; }
  #stock-updates > :first-child {
    margin-top: 0; }
  #stock-updates > :last-child {
    margin-bottom: 0; }
  #stock-updates h1, #stock-updates h2, #stock-updates h3, #stock-updates h4, #stock-updates h5, #stock-updates h6, #stock-updates p, #stock-updates li, #stock-updates dl {
    color: #333333; }
  #stock-updates h1, #stock-updates h2, #stock-updates h3, #stock-updates h4, #stock-updates h5, #stock-updates h6 {
    line-height: 1;
    margin-bottom: 0.625rem; }
    #stock-updates h1.subheader, #stock-updates h2.subheader, #stock-updates h3.subheader, #stock-updates h4.subheader, #stock-updates h5.subheader, #stock-updates h6.subheader {
      line-height: 1.4; }
  #stock-updates .stock-updates-heading {
    background-color: #2c7ef0;
    box-shadow: 0 3px 3px #ddd;
    padding: 10px 15px; }
    #stock-updates .stock-updates-heading h4 {
      color: #FFFFFF;
      font-weight: 300; }
  #stock-updates ul {
    height: 460px;
    margin-top: 0px;
    margin-right: 1px;
    overflow-y: scroll;
    padding: 0 12px; }
    #stock-updates ul li + li {
      margin-top: 8px; }
  #stock-updates li {
    list-style-type: none;
    padding-top: 5px; }
    #stock-updates li .chart-icon {
      margin-right: 10px; }
    #stock-updates li p {
      padding-left: 36px; }

.chart-icon {
  -webkit-box-shadow: 0 2px 5px 0 #888;
  -moz-box-shadow: 0 2px 5px 0 #888;
  box-shadow: 0 2px 5px 0 #888;
  font-weight: 600;
  height: 26px;
  line-height: 26px;
  text-align: center;
  width: 26px; }
  .chart-icon.earnings {
    background: #FFFFFF; }
    .chart-icon.earnings:before {
      content: "E"; }
  .chart-icon.dividends {
    background: #FFFFFF; }
    .chart-icon.dividends:before {
      content: "D"; }
  .chart-icon.heavyvolume {
    background: #FFFFFF; }
    .chart-icon.heavyvolume:before {
      content: "V"; }
  .chart-icon.split {
    background: #FFFFFF; }
    .chart-icon.split:before {
      content: "S"; }
  .chart-icon.nearhigh52week, .chart-icon.high52week {
    background: #0ABBA4;
    line-height: 0;
    padding-top: 2px; }
    .chart-icon.nearhigh52week:before, .chart-icon.high52week:before {
      content: "";
      height: 0;
      width: 0;
      border-left: 0.29167rem solid transparent;
      border-right: 0.29167rem solid transparent;
      border-bottom: 0.29167rem solid #FFFFFF; }
  .chart-icon.nearlow52week, .chart-icon.low52week {
    background: #F06E65;
    line-height: 0;
    padding-top: 25px; }
    .chart-icon.nearlow52week:before, .chart-icon.low52week:before {
      content: "";
      height: 0;
      width: 0;
      border-left: 0.29167rem solid transparent;
      border-right: 0.29167rem solid transparent;
      border-top: 0.29167rem solid #FFFFFF; }
  .chart-icon.nearhigh52week, .chart-icon.nearlow52week {
    opacity: 0.75; }

/*doc
---
title: Stock Trend Span
name: a-stock-trend
category: Data Patterns - Widget
authors: Pablo Lazo
selectors:
    - .stock-trend
---

To implement this, you just need *3 class names added* to the containing element of the data point:
1. Add `.stock-trend` class
2. Include  a `text-*` or `heading-*` font-size helper class
3. And using conditional logic, an `.up` or `.down` class

``` html_example

<span class='stock-trend heading-largest up'>4%</span>
<span class='stock-trend heading-larger down'>8%</span>
<span class='stock-trend heading-large up'>15%</span>
<span class='stock-trend text-larger down'>16%</span>
<span class='stock-trend text-large up'>23%</span>
<span class='stock-trend text-normal down'>42%</span>

```

If you get a simple value from the backend, you can build this span using the `getTrend()` macro
**TODO:** discuss with paul the best way to document this (willf)

*/
.stock-trend.text-tiny {
  font-size: 0.5rem;
  white-space: nowrap; }
  .stock-trend.text-tiny:before {
    display: inline-block;
    content: '';
    margin-bottom: 0.1rem;
    margin-right: 0.1rem; }
  .stock-trend.text-tiny.up {
    color: #0ABBA4; }
    .stock-trend.text-tiny.up:before {
      height: 0;
      width: 0;
      border-left: 0.29167rem solid transparent;
      border-right: 0.29167rem solid transparent;
      border-bottom: 0.29167rem solid #0ABBA4; }
  .stock-trend.text-tiny.down {
    color: #F06E65; }
    .stock-trend.text-tiny.down:before {
      height: 0;
      width: 0;
      border-left: 0.29167rem solid transparent;
      border-right: 0.29167rem solid transparent;
      border-top: 0.29167rem solid #F06E65; }

.stock-trend.text-smallest {
  font-size: 0.625rem;
  white-space: nowrap; }
  .stock-trend.text-smallest:before {
    display: inline-block;
    content: '';
    margin-bottom: 0.125rem;
    margin-right: 0.125rem; }
  .stock-trend.text-smallest.up {
    color: #0ABBA4; }
    .stock-trend.text-smallest.up:before {
      height: 0;
      width: 0;
      border-left: 0.29167rem solid transparent;
      border-right: 0.29167rem solid transparent;
      border-bottom: 0.29167rem solid #0ABBA4; }
  .stock-trend.text-smallest.down {
    color: #F06E65; }
    .stock-trend.text-smallest.down:before {
      height: 0;
      width: 0;
      border-left: 0.29167rem solid transparent;
      border-right: 0.29167rem solid transparent;
      border-top: 0.29167rem solid #F06E65; }

.stock-trend.text-smaller {
  font-size: 0.75rem;
  white-space: nowrap; }
  .stock-trend.text-smaller:before {
    display: inline-block;
    content: '';
    margin-bottom: 0.15rem;
    margin-right: 0.15rem; }
  .stock-trend.text-smaller.up {
    color: #0ABBA4; }
    .stock-trend.text-smaller.up:before {
      height: 0;
      width: 0;
      border-left: 0.29167rem solid transparent;
      border-right: 0.29167rem solid transparent;
      border-bottom: 0.29167rem solid #0ABBA4; }
  .stock-trend.text-smaller.down {
    color: #F06E65; }
    .stock-trend.text-smaller.down:before {
      height: 0;
      width: 0;
      border-left: 0.29167rem solid transparent;
      border-right: 0.29167rem solid transparent;
      border-top: 0.29167rem solid #F06E65; }

.stock-trend.text-small {
  font-size: 0.875rem;
  white-space: nowrap; }
  .stock-trend.text-small:before {
    display: inline-block;
    content: '';
    margin-bottom: 0.175rem;
    margin-right: 0.175rem; }
  .stock-trend.text-small.up {
    color: #0ABBA4; }
    .stock-trend.text-small.up:before {
      height: 0;
      width: 0;
      border-left: 0.29167rem solid transparent;
      border-right: 0.29167rem solid transparent;
      border-bottom: 0.29167rem solid #0ABBA4; }
  .stock-trend.text-small.down {
    color: #F06E65; }
    .stock-trend.text-small.down:before {
      height: 0;
      width: 0;
      border-left: 0.29167rem solid transparent;
      border-right: 0.29167rem solid transparent;
      border-top: 0.29167rem solid #F06E65; }

.stock-trend.text-normal {
  font-size: 1rem;
  white-space: nowrap; }
  .stock-trend.text-normal:before {
    display: inline-block;
    content: '';
    margin-bottom: 0.2rem;
    margin-right: 0.2rem; }
  .stock-trend.text-normal.up {
    color: #0ABBA4; }
    .stock-trend.text-normal.up:before {
      height: 0;
      width: 0;
      border-left: 0.29167rem solid transparent;
      border-right: 0.29167rem solid transparent;
      border-bottom: 0.29167rem solid #0ABBA4; }
  .stock-trend.text-normal.down {
    color: #F06E65; }
    .stock-trend.text-normal.down:before {
      height: 0;
      width: 0;
      border-left: 0.29167rem solid transparent;
      border-right: 0.29167rem solid transparent;
      border-top: 0.29167rem solid #F06E65; }

.stock-trend.text-large, div.stock-change .stock-change-list li.stock-trend {
  font-size: 1.125rem;
  white-space: nowrap; }
  .stock-trend.text-large:before, div.stock-change .stock-change-list li.stock-trend:before {
    display: inline-block;
    content: '';
    margin-bottom: 0.225rem;
    margin-right: 0.225rem; }
  .stock-trend.text-large.up, div.stock-change .stock-change-list li.stock-trend.up {
    color: #0ABBA4; }
    .stock-trend.text-large.up:before, div.stock-change .stock-change-list li.stock-trend.up:before {
      height: 0;
      width: 0;
      border-left: 0.29167rem solid transparent;
      border-right: 0.29167rem solid transparent;
      border-bottom: 0.29167rem solid #0ABBA4; }
  .stock-trend.text-large.down, div.stock-change .stock-change-list li.stock-trend.down {
    color: #F06E65; }
    .stock-trend.text-large.down:before, div.stock-change .stock-change-list li.stock-trend.down:before {
      height: 0;
      width: 0;
      border-left: 0.29167rem solid transparent;
      border-right: 0.29167rem solid transparent;
      border-top: 0.29167rem solid #F06E65; }

.stock-trend.text-larger {
  font-size: 1.25rem;
  white-space: nowrap; }
  .stock-trend.text-larger:before {
    display: inline-block;
    content: '';
    margin-bottom: 0.25rem;
    margin-right: 0.25rem; }
  .stock-trend.text-larger.up {
    color: #0ABBA4; }
    .stock-trend.text-larger.up:before {
      height: 0;
      width: 0;
      border-left: 0.29167rem solid transparent;
      border-right: 0.29167rem solid transparent;
      border-bottom: 0.29167rem solid #0ABBA4; }
  .stock-trend.text-larger.down {
    color: #F06E65; }
    .stock-trend.text-larger.down:before {
      height: 0;
      width: 0;
      border-left: 0.29167rem solid transparent;
      border-right: 0.29167rem solid transparent;
      border-top: 0.29167rem solid #F06E65; }

.stock-trend.text-largest {
  font-size: 1.375rem;
  white-space: nowrap; }
  .stock-trend.text-largest:before {
    display: inline-block;
    content: '';
    margin-bottom: 0.275rem;
    margin-right: 0.275rem; }
  .stock-trend.text-largest.up {
    color: #0ABBA4; }
    .stock-trend.text-largest.up:before {
      height: 0;
      width: 0;
      border-left: 0.29167rem solid transparent;
      border-right: 0.29167rem solid transparent;
      border-bottom: 0.29167rem solid #0ABBA4; }
  .stock-trend.text-largest.down {
    color: #F06E65; }
    .stock-trend.text-largest.down:before {
      height: 0;
      width: 0;
      border-left: 0.29167rem solid transparent;
      border-right: 0.29167rem solid transparent;
      border-top: 0.29167rem solid #F06E65; }

.stock-trend.heading-tiny {
  font-size: 0.625rem;
  white-space: nowrap; }
  .stock-trend.heading-tiny:before {
    display: inline-block;
    content: '';
    margin-bottom: 0.125rem;
    margin-right: 0.125rem; }
  .stock-trend.heading-tiny.up {
    color: #0ABBA4; }
    .stock-trend.heading-tiny.up:before {
      height: 0;
      width: 0;
      border-left: 0.29167rem solid transparent;
      border-right: 0.29167rem solid transparent;
      border-bottom: 0.29167rem solid #0ABBA4; }
  .stock-trend.heading-tiny.down {
    color: #F06E65; }
    .stock-trend.heading-tiny.down:before {
      height: 0;
      width: 0;
      border-left: 0.29167rem solid transparent;
      border-right: 0.29167rem solid transparent;
      border-top: 0.29167rem solid #F06E65; }

.stock-trend.heading-smallest {
  font-size: 0.75rem;
  white-space: nowrap; }
  .stock-trend.heading-smallest:before {
    display: inline-block;
    content: '';
    margin-bottom: 0.15rem;
    margin-right: 0.15rem; }
  .stock-trend.heading-smallest.up {
    color: #0ABBA4; }
    .stock-trend.heading-smallest.up:before {
      height: 0;
      width: 0;
      border-left: 0.29167rem solid transparent;
      border-right: 0.29167rem solid transparent;
      border-bottom: 0.29167rem solid #0ABBA4; }
  .stock-trend.heading-smallest.down {
    color: #F06E65; }
    .stock-trend.heading-smallest.down:before {
      height: 0;
      width: 0;
      border-left: 0.29167rem solid transparent;
      border-right: 0.29167rem solid transparent;
      border-top: 0.29167rem solid #F06E65; }

.stock-trend.heading-smaller {
  font-size: 0.875rem;
  white-space: nowrap; }
  .stock-trend.heading-smaller:before {
    display: inline-block;
    content: '';
    margin-bottom: 0.175rem;
    margin-right: 0.175rem; }
  .stock-trend.heading-smaller.up {
    color: #0ABBA4; }
    .stock-trend.heading-smaller.up:before {
      height: 0;
      width: 0;
      border-left: 0.29167rem solid transparent;
      border-right: 0.29167rem solid transparent;
      border-bottom: 0.29167rem solid #0ABBA4; }
  .stock-trend.heading-smaller.down {
    color: #F06E65; }
    .stock-trend.heading-smaller.down:before {
      height: 0;
      width: 0;
      border-left: 0.29167rem solid transparent;
      border-right: 0.29167rem solid transparent;
      border-top: 0.29167rem solid #F06E65; }

.stock-trend.heading-small {
  font-size: 1rem;
  white-space: nowrap; }
  .stock-trend.heading-small:before {
    display: inline-block;
    content: '';
    margin-bottom: 0.2rem;
    margin-right: 0.2rem; }
  .stock-trend.heading-small.up {
    color: #0ABBA4; }
    .stock-trend.heading-small.up:before {
      height: 0;
      width: 0;
      border-left: 0.29167rem solid transparent;
      border-right: 0.29167rem solid transparent;
      border-bottom: 0.29167rem solid #0ABBA4; }
  .stock-trend.heading-small.down {
    color: #F06E65; }
    .stock-trend.heading-small.down:before {
      height: 0;
      width: 0;
      border-left: 0.29167rem solid transparent;
      border-right: 0.29167rem solid transparent;
      border-top: 0.29167rem solid #F06E65; }

.stock-trend.heading-normal {
  font-size: 1.125rem;
  white-space: nowrap; }
  .stock-trend.heading-normal:before {
    display: inline-block;
    content: '';
    margin-bottom: 0.225rem;
    margin-right: 0.225rem; }
  .stock-trend.heading-normal.up {
    color: #0ABBA4; }
    .stock-trend.heading-normal.up:before {
      height: 0;
      width: 0;
      border-left: 0.29167rem solid transparent;
      border-right: 0.29167rem solid transparent;
      border-bottom: 0.29167rem solid #0ABBA4; }
  .stock-trend.heading-normal.down {
    color: #F06E65; }
    .stock-trend.heading-normal.down:before {
      height: 0;
      width: 0;
      border-left: 0.29167rem solid transparent;
      border-right: 0.29167rem solid transparent;
      border-top: 0.29167rem solid #F06E65; }

.stock-trend.heading-large {
  font-size: 1.5rem;
  white-space: nowrap; }
  .stock-trend.heading-large:before {
    display: inline-block;
    content: '';
    margin-bottom: 0.3rem;
    margin-right: 0.3rem; }
  .stock-trend.heading-large.up {
    color: #0ABBA4; }
    .stock-trend.heading-large.up:before {
      height: 0;
      width: 0;
      border-left: 0.3rem solid transparent;
      border-right: 0.3rem solid transparent;
      border-bottom: 0.3rem solid #0ABBA4; }
  .stock-trend.heading-large.down {
    color: #F06E65; }
    .stock-trend.heading-large.down:before {
      height: 0;
      width: 0;
      border-left: 0.3rem solid transparent;
      border-right: 0.3rem solid transparent;
      border-top: 0.3rem solid #F06E65; }

.stock-trend.heading-larger {
  font-size: 1.875rem;
  white-space: nowrap; }
  .stock-trend.heading-larger:before {
    display: inline-block;
    content: '';
    margin-bottom: 0.375rem;
    margin-right: 0.375rem; }
  .stock-trend.heading-larger.up {
    color: #0ABBA4; }
    .stock-trend.heading-larger.up:before {
      height: 0;
      width: 0;
      border-left: 0.375rem solid transparent;
      border-right: 0.375rem solid transparent;
      border-bottom: 0.375rem solid #0ABBA4; }
  .stock-trend.heading-larger.down {
    color: #F06E65; }
    .stock-trend.heading-larger.down:before {
      height: 0;
      width: 0;
      border-left: 0.375rem solid transparent;
      border-right: 0.375rem solid transparent;
      border-top: 0.375rem solid #F06E65; }

.stock-trend.heading-largest {
  font-size: 2.8125rem;
  white-space: nowrap; }
  .stock-trend.heading-largest:before {
    display: inline-block;
    content: '';
    margin-bottom: 0.5625rem;
    margin-right: 0.5625rem; }
  .stock-trend.heading-largest.up {
    color: #0ABBA4; }
    .stock-trend.heading-largest.up:before {
      height: 0;
      width: 0;
      border-left: 0.5625rem solid transparent;
      border-right: 0.5625rem solid transparent;
      border-bottom: 0.5625rem solid #0ABBA4; }
  .stock-trend.heading-largest.down {
    color: #F06E65; }
    .stock-trend.heading-largest.down:before {
      height: 0;
      width: 0;
      border-left: 0.5625rem solid transparent;
      border-right: 0.5625rem solid transparent;
      border-top: 0.5625rem solid #F06E65; }

/*doc
---
title: Stock Overview Header
name: a-stock-overview-header
category: Data Patterns - Widget
authors: Pablo Lazo, Wes DiMiceli
selectors:
    - .stock-overview-header
template:
    stockTickerHeaderMarketCap: 123456789
    stockTickerHeaderSymbol: "AAPL"
---

Data widget for the top of the stocks and funds overview sections.

{% set editor_id = uuid() %}

```nunjucks_tab?editor-id={{editor_id}}
{%include 'templates/pages/money/investing/common/_stock-overview-header.nunj' %}
```

*/
.stock-overview-header .flex-row.data-row {
  border-bottom: solid 1px #DDDDDD; }

/*doc
---
title: Pros and Cons List
name: pros-and-cons
category: Lists - Lists
authors: Corey Hutton
template:
    diet:
        cons:
            -
                "Lots of grunt work"
            -
                "Somewhat pricey"
        pros:
            -
                "Heart healthy"
            -
                "Nutritionally sound"
selectors:
    - .pros-and-cons
---

A little list of pros (bulleted by checkmarks) and cons (bulleted by Xs).

```nunjucks_tab?editor-id={{uuid()}}
{% include "templates/common/list/pros-and-cons.nunj" %}
```
*/
.list-pros > li > svg.pro,
.list-cons > li > svg.con {
  margin-top: -1px; }

.list-pros li,
.list-cons li {
  display: table; }

.list-pros .icon.pro,
.list-pros .icon.con,
.list-cons .icon.pro,
.list-cons .icon.con {
  display: table-cell;
  margin-top: 3px;
  margin-right: 5px; }

.list-pros .list-text,
.list-cons .list-text {
  display: table-cell;
  vertical-align: top; }

/*doc
---
title: Social Media Button Bar
name: a-social-media-button-bar
category: Buttons - Button Bar
selectors:
    - .social-media
---

This is the social media bar that is used in many places, such as in the hero
module, as well as in the sticky bar and in the bottom of articles.

The default place for the social media bar to show is in a pages hero unit.
Below is an example of the social media bar in the hero:

The dropdown menu uses the default Foundation dropdown functionality.  In our
case we are sure to us the ` uuid() ` nunjucks javascript function in the
base social bar template so that each instance of the social media bar is unique and will only
interact with the menu clicked.

```html_example?kitchen-sink=true
<div class="row">

{% include "templates/common/social/hero-social-bar.nunj" %}

</div>
```

*/
/*doc
---
title: Social Media with Color
name: b-social-media-color
category: Buttons - Button Bar
template:
    colorful: true
selectors:
    - .social-media.colorful
---

We also have a colorful social button bar that simply contains the `.coloful` class.


```html_example?kitchen-sink=true
<div class="row">

{% include "templates/common/social/colorful-social-bar.nunj" %}

</div>
```

*/
.social-media {
  min-width: 245px; }
  .social-media.gallery {
    min-width: 14.6875rem; }
  .social-media > .button.img {
    margin-right: 0.0625rem;
    padding: 0.5625rem 0.84375rem; }
    @media only screen and (min-width: 40.0625em) {
      .social-media > .button.img {
        margin-left: 0.0625rem;
        padding: 0.3125rem 0.75rem; } }
    .social-media > .button.img > .icon {
      width: 1.5rem;
      height: 1.5rem; }
      @media only screen and (min-width: 40.0625em) {
        .social-media > .button.img > .icon {
          width: 1.25rem;
          height: 1.25rem; } }
  .social-media.colorful > .button.color-facebook {
    background-color: #3b5998; }
    .social-media.colorful > .button.color-facebook:hover {
      background-color: #6990ca; }
  .social-media.colorful > .button.color-twitter {
    background-color: #1da1f2; }
    .social-media.colorful > .button.color-twitter:hover {
      background-color: #8bcbf6; }
  .social-media.colorful > .button.color-google {
    background-color: #d64227; }
    .social-media.colorful > .button.color-google:hover {
      background-color: #f27b65; }
  .social-media.colorful > .button.color-reddit {
    background-color: #f85f35; }
    .social-media.colorful > .button.color-reddit:hover {
      background-color: #89b6df; }
  .social-media.colorful > .button.color-email {
    background-color: #102e5d; }
    .social-media.colorful > .button.color-email:hover {
      background-color: #4d6d9f; }
  .social-media.colorful > .button.color-more {
    background-color: #e4e4e4;
    color: #888888; }
    .social-media.colorful > .button.color-more:hover {
      background-color: #eeeded; }
  .social-media.colorful > .button.color-facebook > svg,
  .social-media.colorful > .button.color-facebook > svg use > svg,
  .social-media.colorful > .button.color-twitter > svg,
  .social-media.colorful > .button.color-twitter > svg use > svg,
  .social-media.colorful > .button.color-google > svg,
  .social-media.colorful > .button.color-google > svg use > svg,
  .social-media.colorful > .button.color-reddit > svg,
  .social-media.colorful > .button.color-reddit > svg use > svg,
  .social-media.colorful > .button.color-email > svg,
  .social-media.colorful > .button.color-email > svg use > svg {
    fill: #FFFFFF; }
  .social-media > .button.img[aria-label="more"] {
    padding: 0.75rem 0.8125rem 0.875rem 0.8125rem;
    font-size: 0.875rem; }
    @media only screen and (min-width: 40.0625em) {
      .social-media > .button.img[aria-label="more"] {
        font-size: 0.75rem;
        font-weight: 300;
        padding: 0.5625rem 0.5rem 0.4375rem 0.5rem;
        line-height: 1rem; } }

.social-media-sticky .icon.color-facebook {
  fill: #3b5998; }

.social-media-sticky .icon.color-twitter {
  fill: #1da1f2; }

.social-media-sticky .icon.color-reddit {
  fill: #f85f35; }

.social-media-sticky .icon.color-mail {
  fill: #10294B; }

.social-media-sticky .icon.color-linkedin {
  fill: #0077b5; }

.social-media-sticky .icon.color-stumbleupon {
  fill: #eb4924; }

.social-media-sticky .icon.color-google-plus {
  fill: #d64227; }

.social {
  background-color: #d9e4e6;
  height: 2.5rem;
  padding: 0 0.9375rem;
  margin: 0 1px 1px 0;
  color: #a8b2b6;
  font-size: 0.8125rem;
  line-height: 1;
  flex-grow: 1;
  align-content: center; }
  .social > * {
    display: flex;
    flex: 0 1 auto;
    margin: 0 auto; }
  .social.tight {
    padding: 0 0.1875rem; }
  .social:last-of-type {
    flex-grow: 2; }
  .header .social {
    background-color: transparent;
    padding: 0 0.4375rem; }
  .social > .icon {
    fill: #a8b2b6; }
    .header .social > .icon {
      fill: #c0cadd !important; }
  .social:hover {
    background-color: #a8b2b6;
    color: #d9e4e6; }
    .header .social:hover {
      background-color: transparent; }
    .social:hover > .icon {
      fill: #d9e4e6; }
      .header .social:hover > .icon {
        fill: #fff !important; }
  @media (min-width: 48em) {
    .social {
      height: auto;
      background-color: transparent;
      padding: 0 0.4375rem; }
      .social:first-child {
        padding-left: 0; }
      .social.last {
        padding-right: 0; }
      .social:hover, .social:focus {
        background-color: transparent;
        color: #6e868f; }
        .social:hover > .icon, .social:focus > .icon {
          fill: #a8b2b6; }
          .social:hover > .icon:hover, .social:focus > .icon:hover {
            fill: #6e868f; } }

@media (min-width: 40.0625em) {
  .social-transparent-bg-for-medium-up .social {
    height: auto;
    background-color: transparent;
    padding: 0 0.4375rem; }
    .social-transparent-bg-for-medium-up .social:first-child {
      padding-left: 0; }
    .social-transparent-bg-for-medium-up .social.last {
      padding-right: 0; }
    .social-transparent-bg-for-medium-up .social:hover, .social-transparent-bg-for-medium-up .social:focus {
      background-color: transparent;
      color: #6e868f; }
      .social-transparent-bg-for-medium-up .social:hover > .icon, .social-transparent-bg-for-medium-up .social:focus > .icon {
        fill: #a8b2b6; }
        .social-transparent-bg-for-medium-up .social:hover > .icon:hover, .social-transparent-bg-for-medium-up .social:focus > .icon:hover {
          fill: #6e868f; } }

ul[id*='social-more'] {
  border: none;
  box-shadow: 0 0.125rem 0.25rem 0 rgba(0, 0, 0, 0.75);
  max-width: 18.75rem !important; }
  @media (min-width: 40.0625em) {
    ul[id*='social-more'] {
      max-width: 12.5rem !important; } }
  ul[id*='social-more']:focus {
    outline: none; }
  ul[id*='social-more'] li {
    border-bottom: 1px solid #CCCCCC;
    white-space: nowrap; }
    @media (min-width: 40.0625em) {
      ul[id*='social-more'] li {
        border-bottom: none; } }
    ul[id*='social-more'] li > a {
      padding-top: 1.5625rem;
      padding-bottom: 1.5625rem;
      display: inline-block;
      padding-left: 30%;
      font-size: 1.125rem; }
      @media only screen and (min-width: 40.0625em) {
        ul[id*='social-more'] li > a {
          font-size: 0.875rem; } }
      @media (min-width: 40.0625em) {
        ul[id*='social-more'] li > a {
          padding-top: 0.75rem;
          padding-bottom: 0.75rem;
          padding-left: 15%; } }
    ul[id*='social-more'] li > span {
      display: inline-block; }
  ul[id*='social-more'] .color-linkedin,
  ul[id*='social-more'] .color-linkedin use > svg {
    fill: #0077b5; }
  ul[id*='social-more'] .color-stumbleupon,
  ul[id*='social-more'] .color-stumbleupon use > svg {
    fill: #eb4924; }
  ul[id*='social-more'] .color-reddit,
  ul[id*='social-more'] .color-reddit use > svg {
    fill: #f85f35; }
  ul[id*='social-more'] .dropdown-close {
    background-color: #EFEFEF;
    font-size: 0.75rem;
    padding: 0.5rem;
    text-align: center; }

.social-more {
  z-index: 600; }

.nav-follow {
  display: inline-block; }
  .nav-follow #social-icon-menu-container, .nav-follow #social-icon-menu-container-byline {
    display: inline-block;
    overflow: hidden;
    position: relative;
    width: 167px;
    height: 24px; }
  .nav-follow #social-icon-menu, .nav-follow #social-icon-menu-byline {
    position: absolute;
    transform: translateX(72px);
    list-style: none;
    display: inline-block;
    margin: 0;
    padding: 0; }
    .nav-follow #social-icon-menu li, .nav-follow #social-icon-menu-byline li {
      display: inline-block; }
  .nav-follow #close-social, .nav-follow #close-social-byline {
    display: none; }
  .nav-follow #ellipsis, .nav-follow #expand-ellipsis {
    display: block; }
  .nav-follow #toggle-social, .nav-follow #toggle-social-byline {
    display: inline-block; }
  .nav-follow #toggle-social.out #ellipsis, .nav-follow #toggle-social-byline.out #expand-ellipsis {
    display: none; }
  .nav-follow #toggle-social.out #close-social, .nav-follow #toggle-social-byline.out #close-social-byline {
    display: block; }
  .nav-follow #toggle-social.in #close-social, .nav-follow #toggle-social-byline.in #close-social-byline {
    display: none; }
  .nav-follow .slide-out {
    animation: slide-out 0.5s forwards;
    -webkit-animation: slide-out 0.5s forwards; }
  .nav-follow .slide-in {
    animation: slide-in 0.5s forwards;
    -webkit-animation: slide-in 0.5s forwards; }
  @media only screen and (max-width: 40em) {
    .nav-follow .nav-follow-mobile li {
      display: inline-block; } }

@keyframes slide-out {
  100% {
    transform: translateX(2px); } }

@keyframes slide-in {
  0% {
    transform: translateX(2px); }
  100% {
    transform: translateX(70px); } }

.heroheading {
  white-space: nowrap;
  overflow: hidden;
  word-break: keep-all; }

/*doc
---
title: Author
name: a-author
category: Media Objects - Author
template:
    author:
      image: http://placehold.it/84/84/
      name: Erin Lowry
      role: Contributor
      blurb: Erin writes about personal finance and manages social media for MagnifyMoney.com, a site dedicated to helping customers save money by finding simple, transparent financial products.
      twitter: 
        handle: erinlowry
        url: #
selectors:
    - .author
---

>**TODO:** Just make this a media object

This module is commonly used at the bottom of articles to give credit and provide links to the author of the article

```html_example?kitchen-sink=true

{% include "templates/common/author.nunj" %}

```
*/
div.display-flex {
  -webkit-flex-flow: row wrap;
  -moz-flex-flow: row wrap;
  -ms-flex-flow: row wrap;
  flex-flow: row wrap;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  -webkit-justify-content: space-between;
  -moz-justify-content: space-between;
  justify-content: space-between; }
  @media only screen and (min-width: 40.0625em) {
    div.display-flex > p {
      -webkit-box-ordinal-group: 3;
      -webkit-order: 2;
      -moz-order: 2;
      -ms-flex-order: 2;
      order: 2; } }

.author {
  overflow: hidden;
  padding-top: 1.5625rem;
  border-top: 1px solid #ddd; }
  .author p {
    margin-bottom: 0; }

.author-image {
  border-radius: 50%;
  display: block;
  margin: 0 auto;
  height: 5rem;
  width: 5rem; }
  @media only screen and (min-width: 40.0625em) {
    .author-image {
      float: left;
      display: inline-block;
      margin: 0 0.9375rem 0 0; } }

.author-details {
  display: inline-block;
  text-align: center;
  margin: 1.25rem auto 0.9375rem auto; }
  @media only screen and (min-width: 40.0625em) {
    .author-details {
      margin: 0 0 0.625rem 0;
      text-align: left;
      height: 1.5rem; } }

.author-social {
  font-size: 0.75rem;
  margin-top: 0.625rem; }
  @media only screen and (min-width: 40.0625em) {
    .author-social {
      margin-top: 0;
      display: inline-block;
      height: 1.25rem;
      align-items: flex-end; } }

.author-name,
.author-role {
  text-transform: uppercase;
  color: #999999;
  font-size: 0.75rem; }
  .author-name::before,
  .author-role::before {
    content: '|';
    color: #999999;
    margin: 0 0.9375rem; }

/*doc
---
title: Slideshow
name: a-slideshow
category: Slideshows & Accordions - Slideshow
selectors:
    - .slideshow
---

A slideshow uses `slick slider jquery plugin` as it's base.

You can have different types of slides in the slideshow, which are [displayed below][c-feature-slide].
The naming of these slides is based on how they look in mobile view. Our slideshow has different
layouts that may be used to change its look. See the following:

**Below uses the base layout. NOTE: the full screen toggle just triggers a `slideshow:full-screen` event.
What actually happens as a result is up to the listener of that event. See the [Slideshow Group][1-slideshow-group] for
an example of it in action.**

{% set editor_id = uuid() %}

```nunjucks_tab?kitchen-sink=true&editor-id={{editor_id}}
{% from 'templates/common/slideshow/builder.nunj' import slideshow_builder %}
<div class="small-12 large-8">
{{ slideshow_builder(title="Slideshow", fullscreen=true) }}
</div>
```

**Below uses the feature layout.**

{% set editor_id = uuid() %}

```nunjucks_tab?kitchen-sink=true&editor-id={{editor_id}}
<div class="small-12 large-8">

{% include "templates/common/slideshow.nunj" %}

</div>
```
*/
.slideshow-type {
  font-weight: 500;
  text-transform: uppercase;
  padding-top: 0.51875rem;
  padding-bottom: 0.26875rem;
  margin-bottom: 0; }

.slide-title {
  font-weight: 500; }

@media only screen and (min-width: 40.0625em) {
  .slideshow-slider {
    clear: both; } }

.slideshow-slider {
  position: relative; }
  .slideshow-slider .slide-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(0, 0, 0, 0.5);
    padding: 1.40625rem 0.375rem; }
    .slideshow-slider .slide-nav.disabled {
      background: rgba(0, 0, 0, 0.2); }
      .slideshow-slider .slide-nav.disabled .icon {
        fill: rgba(255, 255, 255, 0.25) !important; }
    .slideshow-slider .slide-nav.slide-prev {
      left: 0;
      z-index: 200; }
      .reveal-modal .slideshow-slider .slide-nav.slide-prev {
        z-index: 400; }
    .slideshow-slider .slide-nav.slide-next {
      right: 0;
      z-index: 200; }
      .reveal-modal .slideshow-slider .slide-nav.slide-next {
        z-index: 400; }

.slideshow-nav {
  margin-top: 0.9375rem;
  text-align: center;
  display: -webkit-flex;
  display: flex; }
  @media only screen and (min-width: 40.0625em) {
    .slideshow-nav {
      margin-top: 0;
      display: inline-block;
      float: right; }
      .slideshow-nav > .slideshow-pagination {
        float: left; } }
  .slideshow-nav > .slideshow-pagination {
    padding: 0.51875rem 0.825rem 0.26875rem 0.825rem; }
  .slideshow-nav > * {
    display: inline-block; }
  .slideshow-nav > .slide-next, .slideshow-nav > .slide-prev {
    padding: 1.375rem 1.75rem; }

.slideshow-100 {
  cursor: pointer; }

.slideshow-target:focus {
  outline: none; }

.slideshow-image-box {
  background-color: #eee;
  margin-right: 0.0625rem !important; }

.slideshow-image {
  max-width: 100%;
  max-height: 100%; }

.slideshow .city-slideshow-nav {
  position: absolute;
  right: 0;
  z-index: 1; }

.slideshow .slide-with-ad {
  position: relative; }

/*doc
---
title: Feature Slide
name: c-feature-slide
category: Slideshows & Accordions - Slideshow
selectors:
    - .slide-feature
---

Feature Slide - Large Image on top in small view, Text with image beside on large-up view

{% set editor_id = uuid() %}

```nunjucks_tab?editor-id={{editor_id}}
<div class="small-12 large-8">

    <div class="slide-feature">
          <div class="js-sleeper-agent" data-agent-id="slide-title-3" data-agent-trigger="BREAKPOINT-SMALL">
            <h3 class="slide-title">5. Use Your College's Career Services</h3>
          </div>
          <a href="#" alt="" class="slide-image">
            <img src="http://placehold.it/230x152/" alt="">
          </a>
          <div class="js-sleeper-agent" data-agent-id="slide-title-3" data-agent-trigger="BREAKPOINT-MEDIUM"></div>
          <p>Persius volutpat eu per, integre deseruisse expetendis cu nec, tritani sadipscing ne nec. Ei dolore euismod adversarium eum. Sed ut paulo causae explicari. Regione maiestatis cu sit, no nec vitae pertinax quaerendum. Et eius choro persequeris quo.</p>
          <a href="#" alt="" class="slide-next">Give yourself some credit</a>
    </div>

</div>
```
*/
@media only screen and (min-width: 40.0625em) {
  .slide-feature > .slide-image {
    float: right;
    margin-left: 1.875rem;
    max-width: 21.875rem; }
    .slide-feature > .slide-image > p {
      max-width: 21.875rem; } }

.slide-feature > .slide-image > img, .slide-feature > .slide-image > picture > img {
  width: 100%;
  margin-bottom: 0.9375rem; }
  @media only screen and (min-width: 40.0625em) {
    .slide-feature > .slide-image > img, .slide-feature > .slide-image > picture > img {
      width: auto; } }

.slide-feature > .slide-next {
  margin-bottom: 0.9375rem; }
  @media only screen and (min-width: 40.0625em) {
    .slide-feature > .slide-next {
      margin-bottom: 0; } }
  .slide-feature > .slide-next::before {
    content: 'NEXT: ';
    color: #999999;
    font-weight: 500; }

/*doc
---
title: Link Slide
name: d-link-slide
category: Slideshows & Accordions - Slideshow
---

Uses object `.promocard` to show links with their associated images

Currently .promocard code lives here

{% set editor_id = uuid() %}

```nunjucks_tab?kitchen-sink=true&editor-id={{editor_id}}
{% import "templates/common/image/picture.nunj" as picture %}
<div class="small-12 large-8 clearfix">

    <div class="slide-promo slick-slide"> <!-- .slick-slide gets added in by the slick-slider -->
        <h3 class="slide-title hide-for-medium-up">See More Careers Slideshows</h3>
        <div class="promocard">
          <a href="#" alt="" class="promocard-image">
            {{
              picture.create({
                default: "http://lorempixel.com/84/84/cats",
                medium: "http://lorempixel.com/291/182/cats"
              }, { alt: "" })
            }}
          </a>
          <div class="promocard-text"><a href="#">1 Kinds of Annoying Co-Workers and How to Deal With Them</a></div>
        </div>
        <div class="promocard bordered">
          <a href="#" alt="" class="promocard-image">
            {{
              picture.create({
                default: "http://lorempixel.com/84/84/cats",
                medium: "http://lorempixel.com/291/182/cats"
              }, { alt: "" })
            }}
          </a>
          <div class="promocard-text"><a href="#">2 Kinds of Annoying Co-Workers and How to Deal With Them</a></div>
        </div>
        <div class="promocard">
          <a href="#" alt="" class="promocard-image">
            {{
              picture.create({
                default: "http://lorempixel.com/84/84/cats",
                medium: "http://lorempixel.com/291/182/cats"
              }, { alt: "" })
            }}
          </a>
          <div class="promocard-text"><a href="#" alt="">3 Kinds of Annoying Co-Workers and How to Deal With Them</a></div>
        </div>
    </div>

</div>
```
*/
@media only screen and (min-width: 40.0625em) {
  .slide-promo.slick-slide {
    display: -webkit-flex;
    display: flex; } }

.promocard {
  position: relative;
  overflow: hidden;
  padding: 0.9375rem 0; }
  @media only screen and (min-width: 40.0625em) {
    .promocard {
      width: 30%;
      padding: 0;
      margin: 0 0.3125rem;
      display: inline-block;
      box-shadow: 0 0 0.3125em #CCCCCC;
      display: -webkit-flex;
      display: flex;
      -webkit-flex-direction: column;
      flex-direction: column;
      margin-bottom: 0.3125rem; } }
  .promocard .promocard-image > img,
  .promocard .promocard-image > picture > img {
    width: auto;
    margin-right: 0.9375rem;
    float: left; }
    @media only screen and (min-width: 40.0625em) {
      .promocard .promocard-image > img,
      .promocard .promocard-image > picture > img {
        margin-right: 0;
        float: none; } }
  .promocard .promocard-text {
    font-size: 1.125rem;
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    display: inline-block;
    font-weight: 500; }
    @media only screen and (min-width: 40.0625em) {
      .promocard .promocard-text {
        position: relative;
        top: auto;
        -webkit-transform: none;
        -ms-transform: none;
        transform: none;
        display: block;
        padding: 1.25rem;
        font-weight: 400;
        -webkit-flex: 1 0 auto;
        flex: 1 0 auto; } }

@media only screen and (min-width: 40.0625em) {
  .promocard + .promocard {
    margin-left: 3%; } }

.promocard.bordered {
  border-top: 1px solid #CCCCCC;
  border-bottom: 1px solid #CCCCCC; }
  @media only screen and (min-width: 40.0625em) {
    .promocard.bordered {
      border: none; } }

/*doc
---
title: Slideshow List
name: a-slideshow-list
category: Slideshows & Accordions - Slideshow List
selectors:
    - .carousel
    - .slideshow-list
---

A slideshow uses `slick slider jquery plugin` as it's base.

```html_example?kitchen-sink=true
<div class="small-12">
  {% include "templates/common/slideshow-list.nunj" %}
</div>
```
*/
.carousel {
  width: 100%; }
  @media only screen and (min-width: 40.0625em) {
    .carousel {
      width: calc(100% - 100px);
      margin-left: auto;
      margin-right: auto; } }
  @media only screen and (min-width: 64em) {
    .carousel {
      width: 100%; } }
  .carousel .slide-prev, .carousel .slide-next {
    display: none; }
    @media only screen and (min-width: 40.0625em) {
      .carousel .slide-prev, .carousel .slide-next {
        display: block;
        position: absolute;
        top: calc(50% - 16px); } }
  .carousel .slide-prev.disabled > .icon, .carousel .slide-next.disabled > .icon {
    fill: #EBEBEB; }
  @media only screen and (min-width: 40.0625em) {
    .carousel .slide-prev {
      left: -50px; }
    .carousel .slide-next {
      right: -50px; }
    .carousel .middle-card {
      margin-left: 5%;
      margin-right: 5%; }
    .carousel .medium-30p {
      width: 30% !important; } }

.slideshow-list > div {
  display: none; }

.js-slideshow-hook {
  z-index: 200; }
  .js-slideshow-hook * {
    opacity: 0; }
  .js-slideshow-hook ~ * {
    opacity: 0; }

.js-slideshow-hook:not(.slick-initialized) > [data-slide-index] {
  display: none; }

.js-slideshow-hook.slick-initialized {
  background: none;
  z-index: initial; }
  .js-slideshow-hook.slick-initialized * {
    opacity: 1;
    transition: opacity 0.2s ease-in; }
  .js-slideshow-hook.slick-initialized ~ * {
    opacity: 1;
    transition: opacity 0.2s ease-in; }

.widget-carousel {
  width: 100%; }
  .widget-carousel .slick-track {
    display: flex;
    display: -webkit-flex; }
  .widget-carousel .slick-slide {
    padding: 5px 7px;
    display: flex;
    display: -webkit-flex;
    height: auto;
    width: 213px;
    outline: none; }
  .widget-carousel .widgetcard {
    width: 100%;
    display: flex;
    display: -webkit-flex;
    flex-direction: column;
    -webkit-flex-direction: column;
    -webkit-box-shadow: 0 1px 0.4125em 0 #8e8e8e;
    -moz-box-shadow: 0 1px 0.4125em 0 #8e8e8e;
    box-shadow: 0 1px 0.4125em 0 #8e8e8e; }
    .widget-carousel .widgetcard + .promocard {
      margin-left: 1.5%; }
    .widget-carousel .widgetcard.gray {
      background: #f4f4f4; }
    .widget-carousel .widgetcard.radius {
      border-radius: 0.3125rem; }
  .widget-carousel .widgetcard-image {
    display: flex;
    display: -webkit-flex;
    background: white;
    min-height: 132px;
    flex-direction: column;
    -webkit-flex-direction: column;
    align-items: center;
    -webkit-align-items: center;
    justify-content: flex-end;
    -webkit-justify-content: flex-end;
    overflow: hidden; }
    .widget-carousel .widgetcard-image img {
      margin: 0 auto;
      max-height: 132px;
      min-width: 132px; }
    .widget-carousel .widgetcard-image.centered img {
      max-width: 132px; }
    .widget-carousel .widgetcard-image.radius {
      border-top-left-radius: 0.3125rem;
      border-top-right-radius: 0.3125rem; }
  .widget-carousel .widgetcard-text {
    padding: 0.625rem;
    display: flex;
    display: -webkit-flex;
    flex-direction: column;
    -webkit-flex-direction: column;
    justify-content: space-between;
    -webkit-justify-content: space-between;
    flex-grow: 1;
    -webkit-flex-grow: 1; }
    .widget-carousel .widgetcard-text.flex-start {
      -webkit-box-pack: start;
      -ms-flex-pack: start;
      -webkit-justify-content: flex-start;
      -moz-justify-content: flex-start;
      justify-content: flex-start; }
  .widget-carousel .widgetcard-button {
    display: block;
    padding: 0.3125rem 0.625rem;
    border-top: 1px solid #DDDDDD;
    background: #FAFAFA;
    text-align: right; }
    .widget-carousel .widgetcard-button svg {
      fill: #2c7ef0; }
    .widget-carousel .widgetcard-button.hihlighted {
      background: #2c7ef0;
      color: white; }
      .widget-carousel .widgetcard-button.hihlighted * {
        color: white; }
      .widget-carousel .widgetcard-button.hihlighted svg {
        fill: white; }
  .widget-carousel .slide-prev {
    left: -25px; }
    .widget-carousel .slide-prev .icon {
      fill: #2c7ef0; }
  .widget-carousel .slide-next {
    right: -25px; }
    .widget-carousel .slide-next .icon {
      fill: #2c7ef0; }

.card-carousel .js-slideshow-hook:not(.slick-initialized) > * {
  display: inline-block;
  width: 0px; }

/*doc
---
title: Slideshow Group
name: 1-slideshow-group
category: Slideshows & Accordions - Slideshow Group
selectors:
    - .slideshow-group
authors: Paul Pechin
---

A slideshow group is a conglomerate of different slideshows.
It comes with modal support. Scss styles for the modal are in _modal.scss

You're not expected to build a slideshow group manually. Instead, use the
existing templates that leverage the builders:

- [Default]({{static_repo}}/src/templates/common/slideshow-group.nunj)

{% set editor_id = uuid() %}

```nunjucks_tab?editor-id={{editor_id}}
<div class="row">
  <div class="column small-12 large-8">
    {% include "templates/common/slideshow-group.nunj" %}
  </div>
</div>
```
*/
@media only screen and (max-width: 40em) {
  .slideshow-group {
    margin: 0 -0.9375rem; }
    .slideshow-group .slideshow-meta {
      margin: 0 0.9375rem; }
    .slideshow-group .slideshow-right-nav {
      margin-right: 0.9375rem; }
    .slideshow-group .collapsible-handle-wrapper,
    .slideshow-group .collapsible-content-wrapper {
      margin: 0 0.9375rem; } }

.slideshow-group .js-gallery-pagination {
  margin-left: 0.625rem; }

.slideshow-group .collapsible-content-wrapper.collapsed {
  min-height: 0; }

.slideshow-group .ad-placeholder-rectangle {
  margin-bottom: 0; }

.slideshow-group .slideshow .collapsible-handle-wrapper .icon.rotate-180 {
  vertical-align: top; }

.slideshow-group .slideshow .slick-slide {
  transition: max-height 0.5s;
  -moz-transition: max-height 0.5s;
  /* Firefox 4 */
  -webkit-transition: max-height 0.5s;
  /* Safari and Chrome */
  -o-transition: max-height 0.5s;
  /* Opera */
  -ms-transition: max-height 0.5s;
  /* Explorer 10 */
  max-height: 999px; }

.slideshow-group .slideshow .slick-slide[tabindex='-1'] {
  max-height: 0; }

.slideshow-group .slideshow .slick-slide.slick-current {
  max-height: 999px; }

.slideshow-group .slideshow.minimap .slick-slide[tabindex='-1'] {
  max-height: inherit; }

.slideshow-group .slideshow-nav > .slideshow-pagination {
  padding: 1.75rem 0; }
  @media only screen and (min-width: 40.0625em) {
    .slideshow-group .slideshow-nav > .slideshow-pagination {
      padding: 1.75rem 0.825rem; } }

.slideshow-group .slideshow-caption-box p {
  display: none; }
  .slideshow-group .slideshow-caption-box p.js-caption-current {
    display: block; }

/*doc
---
title: Slideshow Minimap
name: b-slideshow
category: Slideshows & Accordions - Slideshow
selectors:
    - .slideshow.minimap
---

The slideshow minimap is something you may find used in a [Slideshow Group][2-slideshow-group],
though it can be used standalone. View the HTML to see the JS used to instantiate this with
the proper options at the bottom. Note that the [slideshow minimap builder]({{static_repo}}/src/templates/common/slideshow/minimap.nunj)
in this example has those options set by default.

{% set editor_id = uuid() %}

```nunjucks_tab?editor-id={{editor_id}}
{% from 'templates/common/slideshow/builder.nunj' import slideshow_minimap_builder %}

<div class="small-12 large-8">
{{ slideshow_minimap_builder(immediateInit=true) }}
</div>
```
*/
.slideshow.minimap .slideshow-target div {
  padding: 0.625rem 0.9375rem 0.625rem 0;
  margin-left: 0.0625rem; }

.slideshow.minimap .slideshow-target .slideshow-image {
  opacity: 0.6; }

.slideshow.minimap .slick-current .slideshow-image {
  border: 1px solid #DDDDDD;
  outline: 1px solid #666666;
  opacity: 1; }

.slideshow.minimap .slideshow-target {
  box-sizing: border-box;
  display: inline-block; }

/*doc
---
title: Promo Compress
name: a-promo-compress
category: Media Objects - Promo Compress
---

This component looks like a mini-promo list in mobile and then expands out to look like a mega promo with one picture, which is picture from the first item, appropriately sized.

```html_example?kitchen-sink=true
{% import "templates/common/image/picture.nunj" as picture %}

<div class="small-12"><!-- This is just for styleguide styling -->

<div class="promo-compress">
    <div class="js-sleeper-agent show-for-medium-up left" data-agent-id="promo-image" data-agent-trigger="BREAKPOINT-MEDIUM" style="min-width: 314px;"></div>
    <section class="left">
        <h3><a href="#">Application Process</a></h3>
        <p>Rising seniors should map out deadlines early to help them stay on track.</p>

        <a class="promo-article" href="#">
           <div class="js-sleeper-agent" data-agent-id="promo-image" data-agent-trigger="BREAKPOINT-SMALL">
            {{
                picture.create({
                    default: "http://placehold.it/84x84/",
                    medium: "http://placehold.it/314x209/"
                }, { class: "left", alt: "" })
            }}
            </div>
            <div class="promotext">College Quiz: Do You Understand the Application Process?</div>
        </a>
        <a class="promo-article" href="#">
           <img class="left hide-for-medium-up" src="http://placehold.it/84x84/" alt="">
            <div class="promotext">5 Time-Saving College Application Tricks for High School Seniors</div>
        </a>
    </section>
</div>

</div>
```
*/
.promo-compress {
  overflow: hidden; }
  @media only screen and (min-width: 40.0625em) {
    .promo-compress {
      display: -webkit-flex;
      display: flex;
      -webkit-flex-wrap: nowrap;
      flex-wrap: nowrap; } }
  .promo-compress .promo-article {
    position: relative;
    display: block;
    overflow: hidden;
    padding: 0.9375rem 0.4375rem 0.9375rem 0; }
    @media only screen and (min-width: 40.0625em) {
      .promo-compress .promo-article {
        padding: 0 0 0.78125rem 0; } }
    .promo-compress .promo-article img.left {
      margin-right: 0.9375rem; }
    .promo-compress .promo-article img.right {
      margin-left: 0.9375rem; }
    .promo-compress .promo-article .promotext {
      position: absolute;
      top: 50%;
      -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
      transform: translateY(-50%);
      display: inline-block; }
      @media only screen and (min-width: 40.0625em) {
        .promo-compress .promo-article .promotext {
          position: relative;
          top: auto;
          -webkit-transform: none;
          -ms-transform: none;
          transform: none;
          display: block; } }
  @media only screen and (min-width: 40.0625em) {
    .promo-compress section {
      -webkit-flex-grow: 2;
      flex-grow: 2; }
      .promo-compress section.left {
        margin-left: 1.875rem; }
      .promo-compress section.right {
        margin-right: 1.875rem; } }

/*doc
---
title: Feature Promo
name: a-feature-promo
category: Media Objects - Feature Promo
template:
  feature:
    image:
      small: http://lorempixel.com/290/161/people/
      medium: http://lorempixel.com/685/369/people/
      alt: Feature
    url: #
    heading: How to work a Room When the Room is Gigantic
    lead: Five tips for networking at large, intimidating events.
selectors:
    - .blah
---

Consistent with firefly naming convention. A feature is used describes a headline image with the headline and additional text below the image.

The default feature-promo showcases the full image with the text below the image.

On large it expands to look like a promo, with the image beside the text

```html_example?kitchen-sink=true
{% import "templates/common/image/picture.nunj" as picture %}
<div class="row">

<div class="feature-promo">
  {{
    picture.create({
      default: "http://placehold.it/290x161/",
      medium: "http://placehold.it/685x369/"
    }, { alt: "Feature" })
  }}
  <div class="promo-text">
    <h2><a href="#">Student's Guide to the Application</a></h2>
    <p>From dealing with admissions, the college wait list, and other milestones, our tips and tools can help you throughout the process of applying to college.</p>
  </div>
</div>

</div>

```
*/
.feature-promo > img, .feature-promo > picture > img {
  width: 100%;
  margin-bottom: 1.25rem; }
  @media only screen and (min-width: 64em) {
    .feature-promo > img, .feature-promo > picture > img {
      padding-left: 0.9375rem;
      padding-right: 0.9375rem;
      width: 66.66667%;
      float: left;
      margin-bottom: 0;
      padding-left: 0;
      padding-right: 1.875rem; } }

.feature-promo > .promo-text > h2 {
  font-size: 1.5rem;
  font-weight: 500; }
  @media only screen and (min-width: 40.0625em) {
    .feature-promo > .promo-text > h2 {
      font-size: 1.875rem; } }

/*doc
---
title: Promo Feature
name: a-promo-feature
category: Media Objects - Promo Feature
---

Consistent with firefly naming convention. A feature is used describes a headline image with the headline and additional text below the image.

```html_example?kitchen-sink=true
{% import "templates/common/image/picture.nunj" as picture %}
<div class="row">

<div class="promo-feature">
  {{
      picture.create({
          default: "http://placehold.it/84x84/",
          medium: "http://placehold.it/685x369/"
      }, { alt: "Feature" })
  }}
  <div class="promo-feature-text">
    <p class="promo-feature-overline"><a href="#">Selling</a></p>
    <p class="promo-feature-lead">9 Factors That Can Torpedo Your Home's Selling Price</p>
  </div>
</div>

</div>

```
*/
.promo-feature > a,
.promo-feature img {
  width: 5.25rem;
  height: 5.25rem;
  float: left;
  margin-right: 0.9375rem; }
  @media only screen and (min-width: 40.0625em) {
    .promo-feature > a,
    .promo-feature img {
      width: 100%;
      height: auto;
      float: none;
      margin-right: 0; } }

.promo-feature > .promo-feature-text > .promo-feature-overline {
  text-transform: uppercase;
  margin-bottom: 0;
  font-weight: 500;
  font-size: 0.75rem; }
  @media only screen and (min-width: 40.0625em) {
    .promo-feature > .promo-feature-text > .promo-feature-overline {
      margin-top: 0.9375rem;
      font-size: 0.875rem; } }
  .promo-feature > .promo-feature-text > .promo-feature-overline > a {
    color: inherit; }

.promo-feature > .promo-feature-text > .promo-feature-lead {
  margin-bottom: 0;
  font-size: 1.125rem; }
  @media only screen and (min-width: 40.0625em) {
    .promo-feature > .promo-feature-text > .promo-feature-lead {
      font-size: 1.5rem; } }

/* Styling for promo-feature overlay */
.soft-black-overlay {
  background: rgba(26, 26, 26, 0.5); }
  .soft-black-overlay:hover {
    background: rgba(26, 26, 26, 0.3); }
  .soft-black-overlay h3 {
    color: #FFFFFF; }

@media only screen and (min-width: 40.0625em) {
  .promo-overlay {
    position: relative; } }

.reveal-modal {
  z-index: 1000002;
  position: fixed; }
  .reveal-modal .slide-nav {
    z-index: 1000003; }
  .reveal-modal.scrollable {
    overflow-y: scroll; }

.reveal-modal.full {
  height: auto;
  top: 0 !important;
  bottom: 0;
  position: fixed; }
  .reveal-modal.full .reveal-modal-content {
    margin-left: auto;
    margin-right: auto; }
    @media (min-width: 0em) {
      .reveal-modal.full .reveal-modal-content {
        width: 100%; } }
    @media (min-width: 40.0625em) {
      .reveal-modal.full .reveal-modal-content {
        width: 80%; } }
    @media (min-width: 63.9375em) {
      .reveal-modal.full .reveal-modal-content {
        width: 60%; } }

.reveal-modal-bg {
  z-index: 1000001 !important; }

body.modal-open {
  overflow: hidden; }

.reveal-modal.js-slideshow-modal {
  background-color: #000000;
  padding: 0;
  margin: 0;
  width: 100%; }
  .reveal-modal.js-slideshow-modal .reveal-modal-content {
    overflow: hidden;
    margin: 0 auto;
    height: 100vh;
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-direction: normal;
    -webkit-box-orient: vertical;
    -webkit-flex-direction: column;
    -moz-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    -webkit-justify-content: center;
    -moz-justify-content: center;
    justify-content: center; }
    @media (min-width: 0em) {
      .reveal-modal.js-slideshow-modal .reveal-modal-content {
        width: auto; } }
    @media (min-width: 40.0625em) {
      .reveal-modal.js-slideshow-modal .reveal-modal-content {
        width: auto; } }
    @media (min-width: 63.9375em) {
      .reveal-modal.js-slideshow-modal .reveal-modal-content {
        width: auto; } }
    .reveal-modal.js-slideshow-modal .reveal-modal-content .slideshow-slider {
      padding-top: 0;
      max-height: 100vh; }
    .reveal-modal.js-slideshow-modal .reveal-modal-content .js-slideshow-hook.flex-row {
      max-width: 100vw; }
  .reveal-modal.js-slideshow-modal .close-reveal-modal {
    color: #FFFFFF;
    border-radius: 50%;
    background-color: rgba(0, 0, 0, 0.5);
    height: 35px;
    width: 35px;
    text-align: center;
    font-size: 30px;
    font-weight: 300;
    top: 1rem;
    right: 1rem; }
  .reveal-modal.js-slideshow-modal .slideshow-image-box {
    background-color: #000000; }
  .reveal-modal.js-slideshow-modal .border {
    border: none; }
  .reveal-modal.js-slideshow-modal .js-slideshow-target {
    height: auto !important; }
    .reveal-modal.js-slideshow-modal .js-slideshow-target .slideshow-image {
      margin: 0 auto;
      width: 100vw;
      height: auto; }
      @media (min-width: 40.0625em) {
        .reveal-modal.js-slideshow-modal .js-slideshow-target .slideshow-image {
          width: auto;
          height: 100vh; } }
  .reveal-modal.js-slideshow-modal .js-gallery-pagination {
    color: #CCCCCC !important; }
    .reveal-modal.js-slideshow-modal .js-gallery-pagination .js-delimiter {
      margin-left: 0.5rem;
      margin-right: 0.5rem; }
  .reveal-modal.js-slideshow-modal .collapsible-handle-wrapper {
    padding: 1rem;
    background: rgba(0, 0, 0, 0.5);
    width: 100%; }
    .reveal-modal.js-slideshow-modal .collapsible-handle-wrapper svg {
      margin-right: 0.3125rem; }
    .reveal-modal.js-slideshow-modal .collapsible-handle-wrapper .text-caption {
      color: #999999 !important; }
    .reveal-modal.js-slideshow-modal .collapsible-handle-wrapper .text-caption + span {
      color: #CCCCCC !important; }
    .reveal-modal.js-slideshow-modal .collapsible-handle-wrapper.expanded {
      padding: 1rem 1rem 0 1rem; }
  .reveal-modal.js-slideshow-modal .collapsible-content-wrapper {
    background: rgba(0, 0, 0, 0.5);
    width: 100%;
    padding: 0 2rem 0 0.9375rem; }
    .reveal-modal.js-slideshow-modal .collapsible-content-wrapper.collapsed {
      min-height: 0; }
  .reveal-modal.js-slideshow-modal .slideshow-caption-box {
    position: fixed;
    bottom: 0;
    width: 100vw; }
    .reveal-modal.js-slideshow-modal .slideshow-caption-box p {
      display: none; }
      .reveal-modal.js-slideshow-modal .slideshow-caption-box p.js-caption-current {
        display: block; }
  .reveal-modal.js-slideshow-modal .slick-slide {
    max-height: 100vh; }

.reveal-modal.doctors-modal, .reveal-modal.advisors-modal, .reveal-modal.usn-modal, .reveal-modal.bc-notes {
  padding: 0 !important;
  position: fixed;
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-direction: normal;
  -webkit-box-orient: vertical;
  -webkit-flex-direction: column;
  -moz-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  border: none;
  border-radius: 0;
  background-color: transparent;
  box-shadow: none;
  height: 100vh;
  top: 0 !important;
  left: 0 !important; }
  @media (min-width: 40.0625em) {
    .reveal-modal.doctors-modal, .reveal-modal.advisors-modal, .reveal-modal.usn-modal, .reveal-modal.bc-notes {
      height: initial;
      display: block;
      bottom: initial !important;
      top: 12vh !important;
      max-width: 700px;
      max-height: 80vh; } }
  .reveal-modal.doctors-modal > div:first-child, .reveal-modal.advisors-modal > div:first-child, .reveal-modal.usn-modal > div:first-child, .reveal-modal.bc-notes > div:first-child {
    background: #3163AF;
    z-index: 1001;
    text-align: center;
    padding: 0.8rem 0;
    margin: 0 !important; }
    .reveal-modal.doctors-modal > div:first-child > h3, .reveal-modal.advisors-modal > div:first-child > h3, .reveal-modal.usn-modal > div:first-child > h3, .reveal-modal.bc-notes > div:first-child > h3, .reveal-modal.doctors-modal > div:first-child .usn-modal-title, .reveal-modal.advisors-modal > div:first-child .usn-modal-title, .reveal-modal.usn-modal > div:first-child .usn-modal-title, .reveal-modal.bc-notes > div:first-child .usn-modal-title {
      line-height: initial;
      font-size: 1.25rem;
      vertical-align: middle;
      color: #fff;
      margin: 0; }
    .reveal-modal.doctors-modal > div:first-child .close-reveal-modal, .reveal-modal.advisors-modal > div:first-child .close-reveal-modal, .reveal-modal.usn-modal > div:first-child .close-reveal-modal, .reveal-modal.bc-notes > div:first-child .close-reveal-modal {
      font-size: 1.5rem;
      top: .9rem; }
  .reveal-modal.doctors-modal .js-modal-content, .reveal-modal.advisors-modal .js-modal-content, .reveal-modal.usn-modal .js-modal-content, .reveal-modal.bc-notes .js-modal-content {
    background-color: white;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.4);
    overflow-y: auto;
    -webkit-box-flex: 1;
    -webkit-flex-grow: 1;
    -moz-flex-grow: 1;
    -ms-flex-positive: 1;
    flex-grow: 1; }
    @media (min-width: 40.0625em) {
      .reveal-modal.doctors-modal .js-modal-content, .reveal-modal.advisors-modal .js-modal-content, .reveal-modal.usn-modal .js-modal-content, .reveal-modal.bc-notes .js-modal-content {
        max-height: 71vh; } }
  @media (min-width: 0em) {
    .reveal-modal.doctors-modal[data-js-id="map-modal"] .leaflet-container, [data-js-id="map-modal"].reveal-modal.advisors-modal .leaflet-container, [data-js-id="map-modal"].reveal-modal.usn-modal .leaflet-container, [data-js-id="map-modal"].reveal-modal.bc-notes .leaflet-container {
      height: 200px; } }
  @media (min-width: 40.0625em) {
    .reveal-modal.doctors-modal[data-js-id="map-modal"] .leaflet-container, [data-js-id="map-modal"].reveal-modal.advisors-modal .leaflet-container, [data-js-id="map-modal"].reveal-modal.usn-modal .leaflet-container, [data-js-id="map-modal"].reveal-modal.bc-notes .leaflet-container {
      height: 300px; } }

#docm_overlay {
  opacity: initial !important;
  background: rgba(0, 0, 0, 0.45) !important; }

.reveal-modal.advisors-modal {
  bottom: auto !important; }
  @media (min-width: 40.0625em) {
    .reveal-modal.advisors-modal {
      max-width: 776px;
      max-height: 730px; } }
  .reveal-modal.advisors-modal .js-modal-content {
    height: auto; }

.reveal-modal[data-js-id="compass-modal"] {
  position: fixed;
  overflow-y: auto; }
  @media (min-width: 0em) {
    .reveal-modal[data-js-id="compass-modal"] {
      top: 0 !important;
      bottom: 0 !important; } }
  @media (min-width: 40.0625em) {
    .reveal-modal[data-js-id="compass-modal"] {
      bottom: initial !important;
      top: 50% !important;
      transform: translateY(-50%);
      max-width: 700px;
      max-height: 80%; } }

.reveal-modal.save-this-school-call-to-action-modal {
  position: fixed;
  overflow-y: auto; }
  @media (min-width: 0em) {
    .reveal-modal.save-this-school-call-to-action-modal {
      top: 0 !important;
      bottom: 0 !important; } }
  @media (min-width: 40.0625em) {
    .reveal-modal.save-this-school-call-to-action-modal {
      bottom: initial !important;
      top: 50% !important;
      transform: translateY(-50%);
      max-width: 600px;
      max-height: 80%; } }

.reveal-modal.promo-modal {
  position: fixed;
  overflow-y: auto; }
  @media (max-width: 40em) {
    .reveal-modal.promo-modal {
      padding: 0.9375rem;
      min-height: inherit;
      width: 90vw !important;
      left: 50%;
      top: 50% !important;
      transform: translate(-50%, -50%); }
      .reveal-modal.promo-modal .modal-header {
        /* Collapse the header so that the background fills the margin,
               then pad the header content. Set a positive bottom block margin
               to separate the header from the main modal content.
            */
        padding: 0.9375rem 0.9375rem 0 0.9375rem;
        margin: -0.9375rem -0.9375rem 0.9375rem -0.9375rem;
        background-color: #f4f4f4;
        border-bottom: 1px solid #CCCCCC; }
      .reveal-modal.promo-modal .close-reveal-modal {
        top: 0.9375rem !important; } }
  @media (min-width: 40.0625em) {
    .reveal-modal.promo-modal {
      padding: 1.875rem;
      max-width: 600px;
      max-height: 80%;
      bottom: initial !important;
      top: 50% !important;
      transform: translateY(-50%); } }

.reveal-modal.signup-modal {
  padding: 0 !important;
  position: fixed;
  overflow-y: auto;
  border: none;
  border-radius: 0; }
  @media (max-width: 40em) {
    .reveal-modal.signup-modal {
      min-height: 15.625rem;
      width: 90% !important;
      margin-left: 5%;
      top: 15%; }
      .reveal-modal.signup-modal .signup-modal-form-bar {
        padding: 1.5625rem 0.9375rem;
        margin-left: 0px;
        margin-right: 0px;
        margin-bottom: 0px; } }
  @media (min-width: 40.0625em) {
    .reveal-modal.signup-modal {
      bottom: initial !important;
      top: 50% !important;
      transform: translateY(-50%);
      max-width: 700px;
      max-height: 80%; }
      .reveal-modal.signup-modal .signup-modal-form-bar {
        position: initial;
        left: initial;
        right: initial;
        bottom: initial;
        padding: 1.875rem;
        margin-left: -15px;
        margin-right: -15px;
        margin-bottom: 0px; } }
  .reveal-modal.signup-modal > div:first-child {
    position: absolute;
    top: -1px;
    left: 0;
    right: 0;
    height: 50px;
    background: #3163AF;
    z-index: 1001;
    text-align: center; }
    .reveal-modal.signup-modal > div:first-child > h2 {
      line-height: 50px;
      font-size: 1.25rem;
      vertical-align: middle;
      color: #fff; }
    .reveal-modal.signup-modal > div:first-child .close-reveal-modal {
      font-size: 1.5rem;
      top: .9rem;
      z-index: 10000; }
  .reveal-modal.signup-modal .js-modal-content {
    overflow-y: auto;
    height: 100%; }
    @media (min-width: 0em) and (max-width: 40em) {
      .reveal-modal.signup-modal .js-modal-content .signup_small_header {
        width: 100%;
        background: #f4f4f4;
        border-color: #DDDDDD;
        margin-left: 0;
        margin-bottom: 0.5rem !important; }
        .reveal-modal.signup-modal .js-modal-content .signup_small_header .signup_small_usnews_icon {
          height: 1.5625rem;
          top: -0.1875rem;
          position: relative; }
      .reveal-modal.signup-modal .js-modal-content .signup_small_circular_email_icon {
        width: 5.625rem;
        height: 5.625rem; } }
    @media (min-width: 40.0625em) {
      .reveal-modal.signup-modal .js-modal-content {
        padding-top: 1.875rem;
        padding-left: 0.9375rem;
        padding-right: 0.9375rem; } }
  .reveal-modal.signup-modal .signup-modal-form-bar {
    background: #f4f4f4;
    border-color: #ddd; }

.reveal-modal.newsletter-signup-modal {
  margin: 0 auto;
  left: 0;
  right: 0;
  padding: 0 !important;
  position: fixed;
  overflow-y: auto;
  border: none;
  border-radius: 0;
  min-height: 0 !important; }
  @media (max-width: 40em) {
    .reveal-modal.newsletter-signup-modal {
      width: 90%;
      bottom: 5% !important;
      top: auto !important; }
      .reveal-modal.newsletter-signup-modal .signup-modal-title-bar {
        background: #f4f4f4;
        padding-top: 0.625rem;
        padding-bottom: 0.625rem;
        border-bottom: 1px solid #DDDDDD; } }
  @media (min-width: 40.0625em) {
    .reveal-modal.newsletter-signup-modal {
      bottom: initial !important;
      top: 50% !important;
      transform: translateY(-50%);
      max-width: 600px; }
      .reveal-modal.newsletter-signup-modal .signup-modal-form-bar {
        padding-top: 1.875rem;
        padding-bottom: 1.875rem;
        background: #f4f4f4; }
      .reveal-modal.newsletter-signup-modal .signup-modal-title-bar {
        background: transparent;
        padding-bottom: 0;
        border-bottom: 0; }
      .reveal-modal.newsletter-signup-modal .close-reveal-modal {
        top: .9rem; } }
  .reveal-modal.newsletter-signup-modal .signup-modal-form-bar {
    position: initial;
    left: initial;
    right: initial;
    bottom: initial; }
  .reveal-modal.newsletter-signup-modal .close-reveal-modal {
    font-size: 1.5rem; }

.reveal-modal.hs-methodology-modal, .reveal-modal.oe-methodology-modal {
  padding: 0 !important;
  position: fixed;
  overflow-y: auto;
  border: none;
  border-radius: 0; }
  @media (min-width: 0em) {
    .reveal-modal.hs-methodology-modal, .reveal-modal.oe-methodology-modal {
      top: 0 !important;
      bottom: 0 !important; } }
  @media (min-width: 40.0625em) {
    .reveal-modal.hs-methodology-modal, .reveal-modal.oe-methodology-modal {
      bottom: initial !important;
      top: 50% !important;
      transform: translateY(-50%);
      max-width: 700px;
      max-height: 80%; } }
  .reveal-modal.hs-methodology-modal > div:first-child, .reveal-modal.oe-methodology-modal > div:first-child {
    background: #3163AF;
    margin: 0 !important;
    text-align: center; }
    .reveal-modal.hs-methodology-modal > div:first-child > h3, .reveal-modal.hs-methodology-modal > div:first-child .usn-modal-title, .reveal-modal.oe-methodology-modal > div:first-child > h3, .reveal-modal.oe-methodology-modal > div:first-child .usn-modal-title {
      line-height: 50px;
      font-size: 1.25rem;
      vertical-align: middle;
      color: #fff;
      margin: 0; }
    .reveal-modal.hs-methodology-modal > div:first-child .close-reveal-modal, .reveal-modal.oe-methodology-modal > div:first-child .close-reveal-modal {
      font-size: 1.5rem;
      top: .9rem; }
  .reveal-modal.hs-methodology-modal .js-modal-content, .reveal-modal.oe-methodology-modal .js-modal-content {
    overflow-y: auto; }

.hs-methodology-modal__about,
.oe-methodology-modal__about {
  background-color: #f7f7f7;
  padding: 20px 10px; }

.oe-methodology-modal__legend {
  padding: 5px 30px; }
  .oe-methodology-modal__legend__label {
    padding: 0; }
  @media (max-width: 40em) {
    .oe-methodology-modal__legend__chart {
      padding-right: 0; } }
  @media (min-width: 40.0625em) {
    .oe-methodology-modal__legend__chart {
      padding-left: 0; } }

.hs-methodology-modal__chart {
  background-color: white;
  border: 1px solid #DDDDDD; }

.hs-methodology-modal__how {
  padding: 20px 10px; }

.hs-methodology-modal__link {
  background-color: #f7f7f7;
  padding: 10px; }

.hs-methodology-modal__line:before, .hs-methodology-modal__line:after, .hs-methodology-modal__line__internal-indicators:before, .hs-methodology-modal__line__internal-indicators:after {
  content: "";
  position: absolute;
  width: 12px;
  height: 12px;
  left: -3px;
  background-color: white;
  border: 3px solid #2262bb;
  border-radius: 6px; }

.hs-methodology-modal__line {
  -ms-flex: 0 0 6px;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 6px;
  flex: 0 0 6px;
  margin-right: 30px;
  background-color: #2262bb;
  position: relative; }
  .hs-methodology-modal__line:before {
    top: 0; }
  .hs-methodology-modal__line:after {
    bottom: 0; }

.hs-methodology-modal__line__internal-indicators:before {
  top: 33%; }

.hs-methodology-modal__line__internal-indicators:after {
  top: 66%; }

.tooltip-nav {
  cursor: pointer;
  display: inline-block;
  line-height: 10px;
  margin-left: 10px;
  vertical-align: middle; }
  .tooltip-nav .dropdown-arrow {
    position: relative; }
    .tooltip-nav .dropdown-arrow:after {
      content: '';
      height: 0;
      width: 0;
      border-left: 4px solid transparent;
      border-right: 4px solid transparent;
      border-top: 4px solid #888;
      position: absolute;
      top: 40%;
      right: -15px; }

@media only screen and (max-width: 40em) {
  .usn-bc-modal.reveal-modal {
    top: auto !important; } }

.usn-bc-modal .js-modal-content {
  overflow-y: hidden; }
  @media only screen and (min-width: 40.0625em) {
    .usn-bc-modal .js-modal-content > div > div {
      padding-right: 1.875rem; } }

@media only screen and (min-width: 40.0625em) {
  .usn-bc-modal .signup-modal-form-bar {
    background: #f4f4f4;
    border: 1px solid #DDDDDD;
    color: #333333;
    margin-top: -1px;
    margin-bottom: 0;
    padding: 20px; } }

@media only screen and (max-width: 40em) {
  .usn-bc-modal .js-newsletter-signup-form {
    padding-left: 0.9375rem;
    padding-right: 0.9375rem; } }

.usn-bc-modal .modal-content {
  padding-top: 1.875rem; }

.usn-bc-modal .close-reveal-modal {
  z-index: 100;
  font-size: 1.875rem;
  font-weight: 300;
  top: 0.785rem;
  right: 1.375rem; }
  @media only screen and (max-width: 40em) {
    .usn-bc-modal .close-reveal-modal {
      top: 0.5rem;
      font-size: 1.5rem;
      right: 0.625rem; } }

.usn-bc-modal .modal-header {
  background-color: #f4f4f4;
  padding-top: 0.9375rem;
  border-bottom: 1px solid #CCCCCC; }

.usn-bc-modal .modal-header + .flex-medium-9 {
  padding-left: 0.9375rem;
  padding-right: 0.9375rem; }
  @media only screen and (min-width: 40.0625em) {
    .usn-bc-modal .modal-header + .flex-medium-9 {
      padding-left: 1.875rem;
      padding-right: 1.875rem; } }

@media only screen and (max-width: 40em) {
  .usn-bc-modal {
    min-height: 30vh;
    height: 28vh;
    max-height: 40vh;
    width: 90vw !important;
    margin: 68vh 5vw 30vh 5vw;
    position: relative;
    bottom: 0px; }
    .usn-bc-modal h1 {
      margin-bottom: 0 !important; } }

@media screen and (max-width: 22.5em) {
  .usn-bc-modal {
    height: 35vh;
    margin-top: 60vh; } }

@media screen and (min-width: 25.75em) and (max-width: 39.9375em) {
  .usn-bc-modal {
    min-height: 20vh;
    height: 26vh;
    margin-top: 72vh; } }

.add-schools-compare-modal {
  display: flex !important;
  flex-direction: column;
  height: 100%; }
  .add-schools-compare-modal .close-reveal-modal {
    z-index: inherit; }
  .add-schools-compare-modal .js-modal-content {
    overflow-y: auto !important; }
    @media (min-width: 0em) {
      .add-schools-compare-modal .js-modal-content {
        height: 100% !important; } }
    @media (min-width: 40.0625em) {
      .add-schools-compare-modal .js-modal-content {
        height: auto !important; } }
  @media (min-width: 0em) and (max-width: 40em) {
    .add-schools-compare-modal #compare-schools-button {
      width: 100%; } }
  @media (min-width: 40.0625em) {
    .add-schools-compare-modal.reveal-modal {
      bottom: 15vh !important;
      overflow-y: auto; } }

.save-schools-modal {
  display: flex !important;
  flex-direction: column;
  height: 100%;
  max-width: 530px !important; }
  .save-schools-modal .close-reveal-modal {
    z-index: inherit; }
  .save-schools-modal .js-modal-content {
    overflow-y: auto !important; }
    @media (min-width: 0em) {
      .save-schools-modal .js-modal-content {
        height: 100% !important; } }
    @media (min-width: 40.0625em) {
      .save-schools-modal .js-modal-content {
        height: auto !important; } }
  @media only screen and (max-width: 40em) {
    .save-schools-modal {
      min-width: 100vw; }
      .save-schools-modal .button-section {
        padding: 0; } }
  @media only screen and (min-width: 40.0625em) {
    .save-schools-modal .modal-bottom-row {
      position: relative; }
    .save-schools-modal .remove-school-text {
      position: absolute;
      bottom: 0;
      right: 0; }
    .save-schools-modal .status-button-row {
      display: flex-row; }
    .save-schools-modal .button-section:not(:first-child), .save-schools-modal .button-section:not(:last-child) {
      padding: 0 2.5px 0 2.5px; } }

@media (min-width: 40.0625em) {
  .compare-majors-modal {
    max-width: 530px !important; } }

/*doc
---
title: Superhero
name: a-superhero
category: Hero Units - Superhero
selectors:
    - .superhero
selector_type: component
template:
    background_image:
        superhero_medium: http://www-uat8.usnews.com/dims4/USNEWS/d67a9fa/2147483647/thumbnail/850x480%5E/quality/85/?url=%2Fcmsmedia%2Fa8%2F5b%2F44ca7b504a01860e1f6554d8c881%2Ffe-da-071217anger-55104etjpg-design.jpg
        superhero_medium_plus: http://www-uat8.usnews.com/dims4/USNEWS/f4ef358/2147483647/thumbnail/1024x480%5E/quality/85/?url=%2Fcmsmedia%2Fa8%2F5b%2F44ca7b504a01860e1f6554d8c881%2Ffe-da-071217anger-55104etjpg-design.jpg
        superhero_large: http://www-uat8.usnews.com/dims4/USNEWS/e430af0/2147483647/thumbnail/1280x480%5E/quality/85/?url=%2Fcmsmedia%2Fa8%2F5b%2F44ca7b504a01860e1f6554d8c881%2Ffe-da-071217anger-55104etjpg-design.jpg
    left_content:
          heading: Investing advice for everyone
          body:
          - "<p>We combine meaningful data with expert advice to help you make confident
            financial decisions.</p>"
          - "<form method=\"get\" action=\"/investing/stocks/search\">\r\n  <div class=\"flex-row
            small-collapse flex-ungrid\">\r\n      <div class=\"flex-small\">\r\n        <input
            class=\"block-flush small\" type=\"text\" placeholder=\"Name or ticker\" name=\"name\"
            data-autocomplete=\"stocks\" data-autocomplete-href=\"/investing/stocks/__WILDCARD__\"
            autocomplete=\"off\">\r\n      </div>\r\n      <div>\r\n        <button type=\"submit\"
            class=\"button shadow action radius small postfix block-flush\">\r\n          <span
            class=\"show-for-medium-up\">Search</span>\r\n          <svg class=\"icon
            white show-for-small-only\"><use xlink:href=\"/static/sprites/svg/sprite.symbol.svg#search\"
            /></svg>\r\n        </button>\r\n      </div>\r\n  </div>\r\n</form>\r\n<script>\r\n
            \ USN.ready().then(function() {\r\n    USN.EventDispatcher.instance.dispatcher.trigger('summon:search:autocomplete',
            'stocks');\r\n  });\r\n</script>"
          - ''
---

>**TODO:** Add nunjucks macro explanation

The default superhero is the one you would find on a portal homepage.
The data comes from Firefly.

Height is auto until `large` where it is 480px.
Padding is set only on the top.

This uses the `superheroBuilder` macro.

```html_example
{% include "templates/common/container/superhero.nunj" %}
```
*/
/*doc
---
title: Superhero with Gradient
name: b-gradient
category: Hero Units - Superhero
template:
    superhero_medium: http://www-uat5.usnews.com/dims4/USNEWS/9364f4c/2147483647/thumbnail/850x480%5E/quality/85/?url=%2Fcmsmedia%2Ffb%2F61%2F06db70b3470c89e34edf5bcdea21%2Fbc16-uruguay-crop-editorial.jpg
    superhero_medium_plus: http://www-uat5.usnews.com/dims4/USNEWS/0d04575/2147483647/thumbnail/1024x480%5E/quality/85/?url=%2Fcmsmedia%2Ffb%2F61%2F06db70b3470c89e34edf5bcdea21%2Fbc16-uruguay-crop-editorial.jpg
    superhero_large: http://www-uat5.usnews.com/dims4/USNEWS/5e1b68c/2147483647/thumbnail/1280x480%5E/quality/85/?url=%2Fcmsmedia%2Ffb%2F61%2F06db70b3470c89e34edf5bcdea21%2Fbc16-uruguay-crop-editorial.jpg
---

Make use of the `gradientOverlay` variable by passing in an array with 2 values.
The *top* color and the *bot* color. Using **rgba** will allow for opacity flexibility.
The example below uses `gradientOverlay=['rgba(0,0,0,0.9)', 'rgba(0,0,0,0)']`.

```html_example
{% import "templates/common/superhero/builder.nunj" as profile %}
    {% call profile.superheroBuilder
        (
            containerClasses='gradient',
            backgroundMediumUrl=superhero_medium,
            backgroundMediumPlusUrl=superhero_medium_plus,
            backgroundLargeUrl=superhero_large,
            gradientOverlay=['rgba(0,0,0,0.9)', 'rgba(0,0,0,0)']
        )
    %}
    {% endcall %}
```

*/
.superhero {
  height: auto;
  min-height: 200px;
  padding: 32px 0 0;
  background-color: #10294B;
  position: relative; }
  @media (min-width: 40.0625em) {
    .superhero {
      min-height: 380px; } }
  @media (min-width: 63.9375em) {
    .superhero {
      height: 480px;
      padding: 58px 0; } }
  .superhero.gradient-bg {
    background-color: #11315e;
    background: linear-gradient(to top, #39568a, #11315e); }
  .superhero.no-min-height {
    min-height: auto !important; }

.sidekick-content .radio-tab-toggle {
  text-align: center;
  margin-bottom: 1rem;
  white-space: nowrap;
  border: 1px solid #C2C3C3; }
  .sidekick-content .radio-tab-toggle > div {
    background: #F9F9F9;
    padding: 5px;
    display: inline-block;
    width: 50%; }
    .sidekick-content .radio-tab-toggle > div:first-child {
      margin-right: -3.5px;
      border-right: 1px solid #C2C3C3; }
    .sidekick-content .radio-tab-toggle > div label {
      margin-bottom: 0;
      font-weight: 500;
      color: #333;
      font-size: 1rem; }
      @media (min-width: 40.0625em) and (max-width: 54.9375em) {
        .sidekick-content .radio-tab-toggle > div label {
          font-size: 0.9rem; } }
      .sidekick-content .radio-tab-toggle > div label .form-control-indicator, .sidekick-content .radio-tab-toggle > div label .zocdoc-inner .zocdoc-head .Radio__RadioButton-gayEfS input[type='radio']:before, .zocdoc-inner .zocdoc-head .Radio__RadioButton-gayEfS .sidekick-content .radio-tab-toggle > div label input[type='radio']:before {
        top: 2px; }
    .sidekick-content .radio-tab-toggle > div.active {
      position: relative; }
      .sidekick-content .radio-tab-toggle > div.active::before {
        height: 0;
        width: 0;
        border-left: 10px solid transparent;
        border-right: 10px solid transparent;
        border-top: 10px solid #C2C3C3;
        content: '';
        position: absolute;
        bottom: -11px;
        left: 50%;
        right: 50%; }
      .sidekick-content .radio-tab-toggle > div.active::after {
        height: 0;
        width: 0;
        border-left: 10px solid transparent;
        border-right: 10px solid transparent;
        border-top: 10px solid #F9F9F9;
        content: '';
        position: absolute;
        bottom: -10px;
        left: 50%;
        right: 50%; }

.sidekick-content .radio-tab {
  display: none; }
  .sidekick-content .radio-tab.active {
    display: block; }

.health-care-superhero-right {
  text-align: left;
  background: rgba(255, 255, 255, 0.75);
  padding: 1rem;
  border: 1px solid #ECECEC;
  -webkit-box-shadow: 0 0 5px 0 #696969;
  -moz-box-shadow: 0 0 5px 0 #696969;
  box-shadow: 0 0 5px 0 #696969; }
  .health-care-superhero-right .search-tab {
    display: none; }
    .health-care-superhero-right .search-tab button {
      width: 30%;
      margin-bottom: 0; }
    .health-care-superhero-right .search-tab.active {
      display: block; }
  .health-care-superhero-right .search-toggle {
    text-align: center;
    margin-bottom: 1rem;
    white-space: nowrap; }
    .health-care-superhero-right .search-toggle > div {
      background: #fff;
      padding: 10px;
      display: inline-block;
      width: 50%; }
      .health-care-superhero-right .search-toggle > div:first-child {
        margin-right: -3.5px;
        border-right: 1px solid #ddd; }
      .health-care-superhero-right .search-toggle > div label {
        margin-bottom: 0;
        font-weight: 500;
        color: #333;
        font-size: 1.124rem; }
        .health-care-superhero-right .search-toggle > div label .form-control-indicator, .health-care-superhero-right .search-toggle > div label .zocdoc-inner .zocdoc-head .Radio__RadioButton-gayEfS input[type='radio']:before, .zocdoc-inner .zocdoc-head .Radio__RadioButton-gayEfS .health-care-superhero-right .search-toggle > div label input[type='radio']:before {
          top: .25rem; }
      .health-care-superhero-right .search-toggle > div.active {
        position: relative; }
        .health-care-superhero-right .search-toggle > div.active::after {
          height: 0;
          width: 0;
          border-left: 10px solid transparent;
          border-right: 10px solid transparent;
          border-top: 10px solid #fff;
          content: '';
          position: absolute;
          bottom: -10px;
          left: 50%;
          right: 50%; }

.superhero-bg-small, .superhero-bg-medium, .superhero-bg-medium-plus, .superhero-bg-large, .superhero-bg-parallax {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  display: none;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center; }

@media (max-width: 40em) {
  .superhero-bg-small {
    display: block; } }

@media (min-width: 40.0625em) {
  .superhero-bg-small {
    display: none; } }

@media (min-width: 40.0625em) and (max-width: 63.875em) {
  .superhero-bg-medium {
    display: block; } }

@media (min-width: 55em) {
  .superhero-bg-medium {
    display: none; } }

@media (min-width: 55em) and (max-width: 63.875em) {
  .superhero-bg-medium-plus {
    display: block; } }

@media (min-width: 63.9375em) {
  .superhero-bg-large {
    display: block; } }

.superhero-bg-parallax {
  display: block; }
  .superhero-bg-parallax.background_position_top_center {
    background-position: top center; }
  .superhero-bg-parallax.background_position_bottom_center {
    background-position: bottom center; }

.superhero-content-container {
  position: relative; }
  @media (min-width: 63.9375em) {
    .superhero-content-container {
      height: 422px; } }

.superhero-contained {
  height: auto;
  min-height: 0;
  padding-bottom: 20px;
  padding-top: 20px; }
  @media only screen and (max-width: 40em) {
    .superhero-contained {
      box-shadow: 0 0 0.3125rem 0 rgba(0, 0, 0, 0.5);
      background: #EAF0F1; } }
  @media (min-width: 40.0625em) {
    .superhero-contained {
      min-height: 320px;
      padding-bottom: 80px;
      padding-top: 80px; }
      .superhero-contained.tight {
        padding-bottom: 40px;
        padding-top: 40px; } }
  @media (min-width: 63.9375em) {
    .superhero-contained {
      height: auto;
      max-width: 60.625rem;
      margin: 30px auto; }
      .superhero-contained .superhero-content-container {
        height: auto;
        min-height: 0px; } }
  .superhero-contained.no-min-height {
    min-height: auto !important; }

@media (min-width: 55em) {
  .superhero-body {
    text-align: left; } }

@media (max-width: 40em) {
  .superhero-body p {
    display: none; } }

@media (min-width: 55em) {
  .superhero-body p {
    display: block;
    font-size: 1.375rem; } }

.superhero-credit {
  position: absolute;
  bottom: 0;
  right: 0.5rem; }

.superhero-caption {
  cursor: pointer;
  position: relative; }
  @media (min-width: 63.9375em) {
    .superhero-caption:hover {
      text-decoration: underline; }
      .superhero-caption:hover::before {
        content: attr(data-caption);
        position: absolute;
        background-color: rgba(0, 0, 0, 0.65);
        padding: 0.625rem;
        min-width: 250px;
        max-width: 250px;
        right: 5px;
        bottom: 100%;
        margin-bottom: 15px;
        font-size: 0.75rem !important;
        font-size: 0.875rem;
        color: #CCCCCC; } }

.superhero-caption-overlay {
  display: none;
  position: absolute;
  background: white;
  padding: 1rem;
  bottom: 100%;
  left: 15px;
  right: 15px;
  margin-bottom: 30px; }
  .superhero-caption-overlay-on .superhero-caption-overlay {
    display: block; }

.superhero-caption-ex {
  float: right;
  cursor: pointer;
  margin-left: 5px;
  margin-bottom: 5px;
  position: relative;
  top: -2px;
  right: -2px; }

.superhero-more-stories {
  position: absolute;
  right: 0;
  bottom: 10px; }

@media (min-width: 63.9375em) {
  .superhero.gradient .text-white-for-large-up,
  .superhero.gradient .text-white-for-large-up h1 {
    color: white; } }

@media (max-width: 63.875em) {
  .superhero.pad-top-flush-medium-down {
    padding-top: 0; } }

@media (max-width: 40em) {
  .superhero.has-subheading .superhero-body p {
    display: block; } }

.superhero-commentary-banner {
  text-transform: uppercase;
  border: 1px solid #ffffff;
  background-color: rgba(17, 17, 17, 0.6);
  color: #ffffff;
  -webkit-box-shadow: 0 0 5px 0 #696969;
  -moz-box-shadow: 0 0 5px 0 #696969;
  box-shadow: 0 0 5px 0 #696969;
  padding: 5px 8px 4px 8px;
  margin-bottom: 1rem;
  display: inline-block; }

/*doc
---
title: Superhero Sidekick
name: c-superhero-sidekick
category: Hero Units - Superhero
---

Basics
======

Similar to the superhero, but with a small image that sits beside the body content.

The template depends on a data object called `sidekick`, which defines every input parameter.  Wrapping the `include` statement in a macro like
the following example forces the template to be isolated from the surrounding context.  You may also choose to simply set the data like the examples further below.

{% set editor_id = uuid() %}
```nunjucks_tab?editor-id={{editor_id}}
{% macro sk(sidekick) %}
    {% include "templates/common/superhero/sidekick-abstract.nunj" %}
{% endmacro %}

{{ sk({
    "bgImg": "http://www.usnews.com/dims4/USNEWS/d67a9fa/2147483647/thumbnail/850x480%5E/quality/85/?url=%2Fcmsmedia%2Fa8%2F5b%2F44ca7b504a01860e1f6554d8c881%2Ffe-da-071217anger-55104etjpg-design.jpg",
    "title": "[title]",
    "subtitle": "[subtitle]",
    "introHeader": "[introHeader]",
    "introText": "[introText]"
}) }}
```

The following is a helpful variant of the sidekick that automatically defines a search box and initializes the autocomplete code for it.  It has a few more input parameters.

{% set editor_id = uuid() %}
```nunjucks_tab?editor-id={{editor_id}}
{% set sidekick = {
    "cssClasses": "stocks-index-sidekick stocks-typeahead",
    "searchPlaceholder": "[search placeholder]",
    "searchAction": "/investing/stocks/search",
    "autocompleteType": "stocks",
    "autocompleteUrlKey": "profile_url"

} %}

{% include "templates/common/superhero/sidekick-basic-search.nunj" %}
```

Extending the Sidekick
======================

If your project has a sidekick that needs some custom html, fret not!  The best way to modify the sidekick is to create a new template and override the `block`s.
The mains ones you probably want are `sidekickBodyMedium` and `sidekickBodySmall`, which define the body content for the different breakpoints.  You may, of course, use
the same HTML for both blocks (which is the default behavior).

If you want to add a few extra parameters to the new design, or override existing defaults, add a `set sidekick = sidekick | setObjDefaults({})` to the top,
between the `extends` and the first `block`, and fill in the object with some default values.  See `sidekick-basic-search.nunj` for a sample implementation.

If you would like a quick 'n dirty solution, throw some HTML in `sidekick.body`, like so:

{% set editor_id = uuid() %}
```nunjucks_tab?editor-id={{editor_id}}
{% set sidekickBody %}
    <p>This is the body content.</p>
{% endset %}

{% macro sk(sidekick) %}
    {% include "templates/common/superhero/sidekick-abstract.nunj" %}
{% endmacro %}

{{ sk({
    "body": sidekickBody
}) }}
```

Project-level Variants
======================

Here are some variations that are in the wild.

If we can share components in future projects, these templates, or parts of them, can be lifted to a common location and documented.

Doctors
-------

{% set editor_id = uuid() %}
```nunjucks_tab?editor-id={{editor_id}}
{% macro sk(sidekick) %}
    {% include "templates/pages/health/health-care/doctors/_sidekick.nunj" %}
{% endmacro %}

{{ sk({
    "bgImg": "/static/img/health/doctors/doctor.png",
    "title": "Doctor Finder",
    "subtitle": "Search & Advice",
    "introHeader": "Find a Doctor",
    "introText": "Our Doctor Finder includes nearly all U.S. physicians. Doctors are not ranked, <a href=\"/top-doctors/articles/2013/07/08/about-us-news-doctor-finder\">read more</a>"
}) }}
```

*/
.sidekick {
  box-shadow: 0 5px 0.3125rem -3px rgba(0, 0, 0, 0.25);
  padding: 0;
  -webkit-flex-wrap: nowrap;
  -moz-flex-wrap: nowrap;
  -ms-flex-wrap: none;
  flex-wrap: nowrap;
  height: auto;
  position: relative; }
  @media (min-width: 40.0625em) {
    .sidekick {
      padding: 0 0.9375rem;
      box-shadow: none; } }

.sidekick-bg {
  background-size: cover;
  display: block;
  flex-shrink: 1;
  max-width: 450px;
  padding: 20px; }
  @media (max-width: 40em) {
    .sidekick-bg {
      display: none; } }

.sidekick-content {
  background-color: #EAF0F1;
  padding: 30px; }
  @media (max-width: 40em) {
    .sidekick-content.show-for-small {
      display: block !important;
      color: #222222;
      text-align: center; }
      .sidekick-content.show-for-small .hero-intro {
        color: #787878; }
        .sidekick-content.show-for-small .hero-intro h3 {
          font-size: 2.25rem;
          font-weight: 500; } }
  @media (min-width: 40.0625em) {
    .sidekick-content.show-for-medium-up {
      display: block !important; } }

.sidekick-content .flex-row * {
  margin-bottom: 0; }

/*doc
---
title: Paper Eagle
name: a-paper-eagle
category: Charts & Graphs - Charts
authors: Wes DiMiceli
selectors:
    - .chart.chart-bar
template:
    chartData:
    -
        - Cat Hugs
        - 5.5
    -
        - Sweater Knitting
        - 7.8
    chartDataMultiSeries:
        Apple:
        -
            - Cat Hugs
            - 5.5
        -
            - Sweater Knitting
            - 7.8
        Google:
        -
            - Cat Hugs
            - 9.9
        -
            - Sweater Knitting
            - 2.1
    chartDataObj:
        Apple:
            Cat Hugs: 5.5
            Sweater Knitting: 7.8
        Google:
            Cat Hugs: 9.9
            Sweater Knitting: 2.1
    numericData:
    -
        - 1
        - 1
    -
        - 2
        - 2
    -
        - 3
        - 3
    -
        - 4
        - 4
    -
        - 5
        - 5
    chartOptions:
        scrollTarget: ".styleguide-wrapper"
---

A simple bar chart can be constructed by calling this macro.  The only required parameter
is the chart data, but a set of options and a height can also be specified.

<pre>
{% raw %}
{% from "templates/common/data/charts/paper-eagle.nunj" import paperEagleBar %}
{% endraw %}
</pre>


```html_example
{% from "templates/common/data/charts/paper-eagle.nunj" import paperEagleBar %}

{# Basic #}
{{ paperEagleBar(chartData, { scrollTarget: '.styleguide-wrapper' }) }}

{# Multi series #}
{{ paperEagleBar(chartDataMultiSeries, { scrollTarget: '.styleguide-wrapper' }) }}

{# Data from JS obj #}
{{ paperEagleBar(chartDataObj, chartOptions) }}

{# Data from JS obj with interleaved data #}
{% set chartOptions = {
    "barGroupBy": "index",
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEagleBar(chartDataObj, chartOptions) }}

{# Fixed extents #}
{% set chartOptions = {
    "axes": {
        "y": {
            "windowExtent": [0, 15]
        }
    },
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEagleBar(chartDataMultiSeries, chartOptions) }}

{# Different colors and bar scaling #}
{% set chartOptions = {
    "barColor": {
        "Cat Hugs": "#00FF00",
        "Sweater Knitting": "#DEDBEF"
    },
    "axes": {
        "y": {
            "chartAreaMargins": [20, 20]
        }
    },
    "barGroupScale": 0.5,
    "barWidthScale": 1.0,
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEagleBar(chartDataMultiSeries, chartOptions) }}

{# Different ticks and grid lines #}
{% set chartOptions = {
    "axes": {
        "y": {
            "ticks": [0.33, 0.66],
            "gridLines": [0.33, 0.66],
            "tickRenderRuler": false,
            "tickOrientation": "right",
            "tickLabelOffset": [-2, -2]
        },
        "x": {
            "tickRenderRuler": false
        }
    },
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEagleBar(chartDataMultiSeries, chartOptions) }}

{# Animation disabled #}
{% set chartOptions = {
    "animateBars": false,
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEagleBar(chartDataMultiSeries, chartOptions) }}

{# Tall bar chart #}
{{ paperEagleBar(chartDataMultiSeries, { scrollTarget: '.styleguide-wrapper' }, 300) }}

{# for purposes of this example only #}
<style>.paper-eagle-container{width:33%;display:inline-block;}</style>

```

Bar chart-specific options are as follows:

| Option                   | Description
|--------------------------|------------------------------------------------------------------------------|
| `enableAnimation`        | Enables or disables the initial bar animation.                               |
| `barGroupScale`          | Scaling parameter for groups in multi-series charts.                         |
| `barWidthScale`          | Scaling parameter for each individual bar.                                   |
| `barColor`               | Sets the fill color for each bar.  Can be a function, object, or array.      |
| `barGroupBy`             | Grouping of multi-series data.  Should be either 'series' or 'index'.        |
| `barEvents`              | Handlers for standard events.                                                |
| `stacked`                | Stack series' bars rather than laying them out horizontally.                 |
| `renderGroupLabels`      | Whether or not to draw the x-axis labels.                                    |
| `barGroupSpacingMode`    | Layout method for each group.  Choose from "between", "around", or "padded". |
| `barSpacingMode`         | Layout method for each bar.  Choose from "between", "around", or "padded".   |

Please note that the x-axis ticks are set automatically and cannot be overridden.


Paper Eagle 2D Chart Basics
===========================

Here are a few typical examples for configuring the 2D grid and axis labels.

```html_example
{% from "templates/common/data/charts/paper-eagle.nunj" import paperEagle %}

{# Basic #}
{% set chartOptions = {
    "axes": {
        "x": {
            "gridLines": [0.0, 0.25, 0.5, 0.75, 1.0],
            "ticks": [0.0, 0.25, 0.5, 0.75, 1.0]
        },
        "y": {
            "gridLines": [0.0, 0.25, 0.5, 0.75, 1.0],
            "ticks": [0.0, 0.25, 0.5, 0.75, 1.0]
        }
    },
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEagle("axis-base", numericData, chartOptions) }}

{# Axis label orientation #}
{% set chartOptions = {
    "axes": {
        "x": {
            "gridLines": [0.0, 0.25, 0.5, 0.75, 1.0],
            "ticks": [0.0, 0.25, 0.5, 0.75, 1.0],
            "tickOrientation": "top"
        },
        "y": {
            "gridLines": [0.0, 0.25, 0.5, 0.75, 1.0],
            "ticks": [0.0, 0.25, 0.5, 0.75, 1.0],
            "tickOrientation": "right",
            "tickLabelOffset": [-2, -2]
        }
    },
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEagle("axis-base", numericData, chartOptions) }}

{# Grid/Tick definition format #}
{% set chartOptions = {
    "axes": {
        "x": {
            "gridLines": [1, 2, 5],
            "ticks": [1, 2, 5],
            "gridLineDefinitionFormat": "fixed",
            "tickDefinitionFormat": "fixed"
        },
        "y": {
            "gridLines": [1, 2, 5],
            "ticks": [1, 2, 5],
            "gridLineDefinitionFormat": "fixed",
            "tickDefinitionFormat": "fixed"
        }
    },
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEagle("axis-base", numericData, chartOptions) }}

{# Sticky y-axis #}
{% set chartOptions = {
    "axes": {
        "x": {
            "gridLines": [0.0, 0.25, 0.5, 0.75, 1.0],
            "ticks": [0.0, 0.25, 0.5, 0.75, 1.0]
        },
        "y": {
            "gridLines": [0.0, 0.25, 0.5, 0.75, 1.0],
            "ticks": [0.0, 0.25, 0.5, 0.75, 1.0]
        }
    },
    "chartWidth": 300,
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEagle("axis-base", numericData, chartOptions) }}

{# Sticky y-axis with full-width grid lines #}
{% set chartOptions = {
    "axes": {
        "x": {
            "gridLines": [0.0, 0.25, 0.5, 0.75, 1.0],
            "ticks": [0.0, 0.25, 0.5, 0.75, 1.0],
            "tickMargins": [20, 10]
        },
        "y": {
            "gridLines": [0.0, 0.25, 0.5, 0.75, 1.0],
            "ticks": [0.0, 0.25, 0.5, 0.75, 1.0],
            "tickConstrainToChartArea": false,
            "tickLabelOffset": [5, -10],
            "tickMargins": [20, 0]
        }
    },
    "chartWidth": 500,
    "fullWidthGrid": true,
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEagle("axis-base", numericData, chartOptions) }}

{# for purposes of this example only #}
<style>.paper-eagle-container{width:30%;display:inline-block;}</style>

```

*/
.paper-eagle-container {
  -webkit-touch-callout: none;
  /* iOS Safari */
  -webkit-user-select: none;
  /* Chrome/Safari/Opera */
  -khtml-user-select: none;
  /* Konqueror */
  -moz-user-select: none;
  /* Firefox */
  -ms-user-select: none;
  /* IE/Edge */
  user-select: none;
  height: 200px;
  position: relative;
  overflow: hidden; }
  .paper-eagle-container .paper-eagle-scroller {
    display: inline-block;
    position: relative; }
    .paper-eagle-container .paper-eagle-scroller.has-sticky-y-axis {
      overflow-x: hidden;
      overflow-y: hidden; }
    .paper-eagle-container .paper-eagle-scroller.paper-eagle-overflowing-x {
      overflow-x: scroll; }
    .paper-eagle-container .paper-eagle-scroller .paper-eagle-scroller-inner {
      height: 100%; }
  .paper-eagle-container .paper-eagle-y-axis {
    left: 0px;
    overflow: visible;
    position: absolute;
    top: 0px;
    z-index: 1; }
    .paper-eagle-container .paper-eagle-y-axis .paper-eagle-y-axis-inner svg {
      position: absolute;
      left: 0;
      top: 0;
      height: 100%; }
  .paper-eagle-container .paper-eagle-y-axis-inner svg,
  .paper-eagle-container .paper-eagle-x-axis svg {
    display: block;
    overflow: visible;
    width: 100%; }
  .paper-eagle-container .paper-eagle-y-axis.paper-eagle-sticky-left,
  .paper-eagle-container .paper-eagle-x-axis.paper-eagle-sticky-left {
    box-shadow: 3px 0 8px #DDD; }
  .paper-eagle-container .paper-eagle-y-axis.paper-eagle-sticky-right,
  .paper-eagle-container .paper-eagle-x-axis.paper-eagle-sticky-right {
    box-shadow: -3px 0 8px #DDD; }
  .paper-eagle-container .paper-eagle-root {
    display: block;
    overflow: visible;
    position: relative;
    z-index: 2; }
  .paper-eagle-container .paper-eagle-ticks text {
    fill: #999999; }
    .paper-eagle-container .paper-eagle-ticks text.text-black {
      fill: #333333; }
    .paper-eagle-container .paper-eagle-ticks text.text-above-average {
      fill: #0ABBA4; }
    .paper-eagle-container .paper-eagle-ticks text.text-below-average {
      fill: #F06E65; }
  .paper-eagle-container .paper-eagle-root-base {
    position: relative; }
  .paper-eagle-container .paper-eagle-doodad-container {
    position: absolute;
    left: 0;
    top: 0;
    height: 0;
    overflow: visible;
    z-index: 3; }
  .paper-eagle-container .paper-eagle-doodad-balloon {
    border-radius: 2px;
    color: #FFFFFF;
    font-size: 12px;
    margin: 0;
    padding: 2px 12px;
    position: absolute;
    white-space: nowrap; }
    .paper-eagle-container .paper-eagle-doodad-balloon .balloon-arrow {
      border: solid;
      border-width: 5px 6px 0 6px;
      left: 10px;
      position: absolute;
      top: 100%; }
  .paper-eagle-container .paper-eagle-doodad-floating-label {
    position: absolute;
    font-weight: bold;
    white-space: nowrap; }
    @media (min-width: 40.0625em) {
      .paper-eagle-container .paper-eagle-doodad-floating-label {
        font-size: 18px; } }
    @media (max-width: 40em) {
      .paper-eagle-container .paper-eagle-doodad-floating-label {
        font-size: 14px; } }

.chart {
  width: 100%; }
  @media (min-width: 40.0625em) {
    .chart {
      height: 150px; } }
  @media (max-width: 40em) {
    .chart {
      height: 100px; } }
  .chart text {
    fill: #999999; }
  .chart .text-black text {
    fill: #000000; }
  .chart.expand-height {
    height: 100%; }

.paper-eagle-text-ruler {
  height: 0;
  width: 0;
  position: absolute; }

.chart-y-axis-label {
  position: absolute;
  transform-origin: left top;
  width: 0;
  white-space: nowrap; }

@media only screen and (min-width: 40.0625em) {
  .chart-y-axis-label + * {
    padding-left: 30px; } }

.bubblecloud-container {
  height: 800px; }
  .bubblecloud-container .bubblecloud-text {
    height: 800px;
    position: absolute; }
  .bubblecloud-container .chart-bubblecloud {
    height: 800px;
    position: absolute; }
    .bubblecloud-container .chart-bubblecloud text {
      fill: #000000; }

.chart-sparkline {
  height: 50px;
  width: 200px; }
  .chart-sparkline .text-sparkline-y-axis {
    fill: #555555;
    font-weight: bold; }

.stock-market-chart {
  height: 250px; }

.chartiq {
  border: none;
  width: 100%; }
  .chartiq.overview-chart {
    height: 360px; }
  .chartiq.interactive-chart {
    height: 510px; }

.chart-tabs {
  display: none; }
  .chart-tabs.active {
    display: block; }

/*doc
---
title: Paper Eagle Pie Chart
name: a-paper-eagle-pie-chart
category: Charts & Graphs - Charts
authors: Wes DiMiceli
selectors:
template:
    chartData:
    - 4
    - 8
    - 15
    - 16
    - 23
    - 42
    chartDataObj:
        apple: 4
        cherry: 8
        shepherds: 15
        pizza: 16
        pumpkin: 23
        quiche: 42
---

A simple pie chart can be constructed by calling this macro.  The only required parameter
is the chart data, but a set of options and a height can also be specified.

<pre>
{% raw %}
{% from "templates/common/data/charts/paper-eagle.nunj" import paperEaglePie %}
{% endraw %}
</pre>


```html_example
{% from "templates/common/data/charts/paper-eagle.nunj" import paperEaglePie %}

{# Basic #}
{{ paperEaglePie(chartData, { scrollTarget: '.styleguide-wrapper' }) }}

{# Mapped data and colors #}
{% set chartOptions = {
    "sliceColor": {
        "apple": "red",
        "cherry": "blue",
        "shepherds": "green",
        "pizza": "pink",
        "pumpkin": "black",
        "quiche": "brown"
    },
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEaglePie(chartDataObj, chartOptions) }}

{# Rotate the pie (note: RADIANS) #}
{% set chartOptions = {
    "initialAngle": 0.8,
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEaglePie(chartDataObj, chartOptions) }}

{# Unfilled pies #}
{% set chartOptions = {
    "sliceColor": {
        "_default": "#dddddd",
        "pizza": "blue"
    },
    "axes": {
        "y": {
            "windowExtent": [0, 150]
        }
    },
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEaglePie(chartDataObj, chartOptions) }}

{# Single-slice unfilled pies / array-indexed slice colors #}
{% set chartOptions = {
    "sliceColor": ['orange', '#dddddd'],
    "axes": {
        "x": {
            "windowExtent": [0, 10]
        }
    },
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEaglePie(1, chartOptions) }}

{# Inner radius demonstration #}
{% set chartOptions = {
    innerRadius: 20.0,
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEaglePie(chartDataObj, chartOptions) }}

{# Slice radius demonstration #}
{% set chartOptions = {
    sliceRadius: 20.0,
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEaglePie(chartDataObj, chartOptions) }}

{# for purposes of this example only #}
<style>.paper-eagle-container{width:16%;display:inline-block;}</style>

```

Pie chart-specific options are as follows:

| Option                   | Description
|--------------------------|--------------------------------------------------------------------------------------|
| `animateSlices`          | Enables or disables the initial rotation animation.                                  |
| `initialAngle`           | Rotates the entire pie to a new orientation.  Defaults to negative PI over 2.        |
| `sliceColor`             | Slice color definition.  Can be an object, array, or function.                       |
| `innerRadius`            | Radius of transparent are in the center.                                             |
| `sliceRadius`            | Radius-width of each slice to create a "donut". This option overrides `innerRadius`. |

*/
/*doc
---
title: Paper Eagle Scatterplot
name: a-paper-eagle-scatterplot
category: Charts & Graphs - Charts
authors: Wes DiMiceli
selectors:
template:
    chartData:
    -
        - 4
        - 8
    -
        - 8
        - 15
    -
        - 15
        - 3
    -
        - 16
        - 23
    -
        - 42
        - 10
    sine:
    - - 0
      - 0
    - - 0.3
      - 0.29552020666133955
    - - 0.6
      - 0.5646424733950354
    - - 0.8999999999999999
      - 0.7833269096274833
    - - 1.2
      - 0.9320390859672263
    - - 1.5
      - 0.9974949866040544
    - - 1.8
      - 0.9738476308781951
    - - 2.1
      - 0.8632093666488737
    - - 2.4
      - 0.675463180551151
    - - 2.6999999999999997
      - 0.42737988023383017
    - - 2.9999999999999996
      - 0.14112000805986766
    - - 3.2999999999999994
      - -0.15774569414324777
    - - 3.599999999999999
      - -0.4425204432948517
    - - 3.899999999999999
      - -0.6877661591839731
    - - 4.199999999999999
      - -0.8715757724135877
    - - 4.499999999999999
      - -0.9775301176650969
    - - 4.799999999999999
      - -0.9961646088358408
    - - 5.099999999999999
      - -0.9258146823277328
    - - 5.399999999999999
      - -0.7727644875559883
    - - 5.699999999999998
      - -0.5506855425976391
    - - 5.999999999999998
      - -0.2794154981989276
    - - 6.283
      - 0
---

A scatterplot can be constructed by calling this macro.  The only required parameter
is the chart data, but a set of options and a height can also be specified.

<pre>
{% raw %}
{% from "templates/common/data/charts/paper-eagle.nunj" import paperEagleScatterplot %}
{% endraw %}
</pre>


```html_example
{% from "templates/common/data/charts/paper-eagle.nunj" import paperEagleScatterplot %}

{# Basic #}
{{ paperEagleScatterplot(chartData, { scrollTarget: '.styleguide-wrapper' }) }}

{# Fixed circle radius #}
{% set chartOptions = {
    "circleRadius": 20.0,
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEagleScatterplot(chartData, chartOptions) }}

{# Circle border radius #}
{% set chartOptions = {
    "circleFillColor": "rgba(0,0,0,0)",
    "circleBorderWidth": 2.0,
    "circleBorderColor": "red",
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEagleScatterplot(chartData, chartOptions) }}

{# Sine! #}
{% set chartOptions = {
    "axes": {
        "y": {
            ticks: [0.25, 0.5, 0.75],
            gridLines: [0.5]
        }
    },
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEagleScatterplot(sine, chartOptions) }}

{# Axis Labels #}
<div class="chart-container">
    <div class="chart__top">
        <div class="chart__axis chart__axis--y hide-for-small-only text-center text-strong">Y Axis</div>
        <div class="chart__figure">
            {{ paperEagleScatterplot(sine, chartOptions, 300) }}
        </div>
    </div>
    <div class="chart__axis chart__axis--x hide-for-small-only text-center text-strong">X Axis</div>
</div>

{# Fixed width #}
{% set chartOptions = {
    "axes": {
        "y": {
            ticks: [0.25, 0.5, 0.75],
            gridLines: [0.5]
        },
        "x": {
            ticks: [0.5],
            gridLines: [0.5],
            windowExtent: "pad:0.5"
        }
    },
    "chartWidth": 300,
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEagleScatterplot(sine, chartOptions) }}

{# Markers #}
{% set chartOptions = {
    "axes": {
        "x": {
            "tickMargins": [30, 0]
        }
    },
    chartWidth: 300,
    "markers": [
        {"key": "x", "value": 4, "label": "Hello, World!"}
    ],
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEagleScatterplot(chartData, chartOptions) }}

{# for purposes of this example only #}
<style>.paper-eagle-container{width:16%;display:inline-block;} .paper-eagle-container:last-of-type {width: 100%;}</style>

```

Scatterplot-specific options are as follows:

| Option                   | Description
|--------------------------|-------------------------------------------------------------------------------------------------------|
| `circleRadius`           | Sets the maximum circle radius for each point.  Can be a fixed number or a string indicating an axis. |
| `circleFillColor`        | Interior color of circles.  Either string value or function taking the datum and circle index.        |
| `circleBorderWidth`      | Width of circle borders.                                                                              |
| `circleBorderColor`      | Color of circle borders.  Either string value or function taking the datum and circle index.          |
| `scatterplotEvents`      | Handlers for standard events.                                                                         |

*/
.panel.stock-sparkline-panel, .stock-sparkline-panel.panel-borderless, .stock-sparkline-panel.panel-tight, .stock-sparkline-panel.error-panel {
  background: #FFFFFF;
  border-bottom-style: none;
  margin-bottom: 0;
  padding: 0.625rem; }
  .panel.stock-sparkline-panel.last, .stock-sparkline-panel.last.panel-borderless, .stock-sparkline-panel.last.panel-tight, .stock-sparkline-panel.last.error-panel {
    margin-bottom: 1.25rem;
    border-bottom-style: solid; }
  .panel.stock-sparkline-panel svg.chart, .stock-sparkline-panel.panel-borderless svg.chart, .stock-sparkline-panel.panel-tight svg.chart, .stock-sparkline-panel.error-panel svg.chart {
    padding: 0; }

.chart__top {
  position: relative; }

@media (min-width: 40.0625em) {
  .chart__figure {
    margin-left: 25px; } }

.chart__axis--y {
  left: 0;
  position: absolute;
  top: 100%;
  -webkit-transform: rotate(-90deg);
  -ms-transform: rotate(-90deg);
  transform: rotate(-90deg);
  -webkit-transform-origin: 0 0;
  -ms-transform-origin: 0 0;
  transform-origin: 0 0;
  width: 300px; }

/*doc
---
title: Chart Legend
name: a-chart-legend
category: Charts & Graphs - Charts
authors: Greg Kohn
selectors:
    - .chart-legend
template:
    chartLegend:
        -
            label: 'School'
            color: '#2365ec'
        -
            label: 'District'
            color: '#19af93'
        -
            label: 'State'
            color: '#e9a907'
    chartLegend2:
        -
            label: 'Advanced'
            color: '#0E1E3A'
            value: '78%'
        -
            label: 'Satisfactory'
            color: '#2365EC'
            value: '15%'
        -
            label: 'Unsatisfactory'
            color: '#B2BDD5'
            value: '7%'
---

A basic legend that can be used with any of the charts.

```html_example
{% from "templates/common/data/charts/chart-legend.nunj" import legendBuilder %}

{# Single line, right-aligned, square icons #}
{{ legendBuilder(chartLegend) }}

{# Separate lines, left-aligned, circle icons, smaller text #}
{{ legendBuilder(
    chartLegend2,
    align='left',
    roundColors=true,
    elementsInline=false,
    legendElClasses='text-smaller')
}}
```
*/
.chart-legend__el.display-inline-block-for-small {
  margin-right: 12px; }
  .text-right .chart-legend__el.display-inline-block-for-small:last-of-type,
  .text-center .chart-legend__el.display-inline-block-for-small:last-of-type {
    margin-right: 0; }

.chart-legend__color:after {
  background-color: currentColor;
  content: '';
  display: block;
  height: 13px;
  width: 13px; }

.chart-legend__color--round:after {
  border-radius: 7px; }

.chart-legend__label {
  margin-left: 2px; }

/*doc
---
title: Distribution Breakdown Chart
name: a-school-distribution-breakdown
category: Charts & Graphs - Data Chart Widgets
authors: Tommy Marshall
selectors:
    - .distribution-breakdown
template:
---

A widget that shows the gender distribution for a school.

``` html_example

{% from "templates/common/gender-distribution.nunj" import gender_distribution_builder %}
<div class="flex-row">
    <div class="flex-small-12 flex-medium-8">
        {{ gender_distribution_builder(62) }}
    </div>
</div>

```

*/
.distribution-breakdown {
  width: 100%; }
  .distribution-breakdown:before, .distribution-breakdown:after {
    content: "";
    display: table; }
  .distribution-breakdown:after {
    clear: both; }

.distribution-breakdown__col--stat {
  float: left;
  width: 100%; }
  @media (min-width: 560px) {
    .distribution-breakdown__col--stat {
      padding-right: 6px;
      width: 20%; } }
  @media (min-width: 560px) {
    .distribution-breakdown__col--stat {
      width: 16%; } }

.distribution-breakdown__col--visual {
  float: left;
  width: 100%; }
  @media (min-width: 560px) {
    .distribution-breakdown__col--visual {
      width: 80%; } }
  @media (min-width: 760px) {
    .distribution-breakdown__col--visual {
      width: 84%; } }

.distribution-breakdown__percentage {
  color: #0ABBA4;
  display: inline-block;
  font-size: 34px;
  font-weight: 300; }
  @media (min-width: 560px) {
    .distribution-breakdown__percentage {
      display: block; } }

.distribution-breakdown__percentage-copy {
  color: #999999;
  display: inline-block;
  font-size: 14px;
  font-style: italic;
  font-weight: 300;
  margin-left: 6px; }
  .distribution-breakdown__percentage-copy br {
    display: none; }
  @media (min-width: 560px) {
    .distribution-breakdown__percentage-copy {
      margin-left: 0; }
      .distribution-breakdown__percentage-copy br {
        display: block !important; } }

.distribution-breakdown__visual {
  width: 100%; }
  .distribution-breakdown__visual .icon {
    margin: 0 -2px;
    height: 18px;
    width: 18px; }
    @media (min-width: 560px) {
      .distribution-breakdown__visual .icon {
        height: 27px;
        width: 27px; } }

/*doc
---
title: Bar Percentage Chart
name: a-bar-percentage-chart
category: Charts & Graphs - Data Chart Widgets
authors: Tommy Marshall
selectors:
    - .bar-percentage-chart
template:
---

A widget that shows percentages of school's diversity breakdown.

``` html_example
{% set races = [
    {
        name  : 'American Indian/Alaskan Native',
        value : '0%'
    },{
        name  : 'Asian',
        value : '18%'
    },{
        name  : 'Black',
        value : '14%'
    },{
        name  : 'Hawaiian Native/Pacific Islander',
        value : '1%'
    },{
        name  : 'Hispanic',
        value : '15%'
    },{
        name  : 'White',
        value : '40%'
    },{
        name  : 'Two or More Races',
        value : '2%'
    }
] %}
<div class="flex-row">
    <div class="flex-small-12 flex-medium-8">
        <div class="bar-percentage-chart">
            {% for race in races %}
                <div class="row">
                    <h3 class="bar-percentage-chart__heading">{{ race.name }}</h3>
                    <span class="bar-percentage-chart__stat">{{ race.value }}</span>
                </div>
                <div class="row pad-normal block-tight {{ "border-bottom" if not loop.last }}">
                    <div class="bar-percentage-chart__visual">
                        <div class="bar-percentage-chart__visual__fill" style="width: {{ race.value }}"></div>
                    </div>
                </div>
            {% endfor %}
        </div>
    </div>
</div>
```

*/
.bar-percentage-chart {
  width: 100%; }

.bar-percentage-chart__heading {
  float: left;
  font-size: 14px;
  font-weight: bold; }

.bar-percentage-chart__stat {
  color: #0ABBA4;
  float: right;
  font-size: 14px; }

.bar-percentage-chart__visual {
  background: #ddd;
  height: 10px;
  width: 100%; }
  .bar-percentage-chart__visual:before, .bar-percentage-chart__visual:after {
    content: "";
    display: table; }
  .bar-percentage-chart__visual:after {
    clear: both; }

.bar-percentage-chart__visual__fill {
  background: #0ABBA4;
  height: 10px; }

/*doc
---
title: Paper Eagle Donuts
name: a-paper-eagle-donut
category: Charts & Graphs - Charts
authors: Wes DiMiceli
selectors:
template:
    chartData:

---

A donut can be constructed by calling this macro.  The only required parameter
is the donut value, but a set of options and a height can also be specified.

<pre>
{% raw %}
{% from "templates/common/data/charts/paper-eagle.nunj" import paperEagleDonut %}
{% endraw %}
</pre>

It is highly recommended to specify the `donutExtent` option, which will mask the normal `axes.[axis].windowExtent` property.

```html_example
{% from "templates/common/data/charts/paper-eagle.nunj" import paperEagleDonut %}

{# Basic #}
{% set chartOptions = {
    "donutExtent": 5,
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEagleDonut(1, chartOptions) }}

{# Different widths #}
{% set chartOptions = {
    "donutExtent": 5,
    "donutWidth": 5.0,
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEagleDonut(4, chartOptions) }}

{# Different colors #}
{% set chartOptions = {
    "donutExtent": 5,
    "donutFillColor": 'orange',
    "donutBGColor": 'black',
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEagleDonut(3, chartOptions) }}

{# Fill clock-wise #}
{% set chartOptions = {
    "donutExtent": 10,
    "donutFillCCW": false,
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEagleDonut(9, chartOptions) }}

{# for purposes of this example only #}
<style>.paper-eagle-container{width:16%;display:inline-block;}</style>

```

Donut-specific options are as follows:

| Option                   | Description
|--------------------------|-------------------------------------------------------------------------------------------------------|
| `donutInitialAngle`      | The zero-point where the donut begins filling.                                                        |
| `donutFillCCW`           | Determines whether the donut should fill counter-clockwise or clockwise.                              |
| `donutWidth`             | Width of the donut.                                                                                   |
| `donutBGColor`           | Color for the unfilled background portion.  Should be a string value.                                 |
| `donutFillColor`         | Color for filled areas.  Can be either a string or function taking a datum.                           |

*/
/*doc
---
title: Paper Eagle Fixed Width
name: z-paper-eagle-fixed-width
category: Charts & Graphs - Charts
authors: Wes DiMiceli
selectors:
template:
    chartData:
    -
        - a
        - 1
    -
        - b
        - 2
    -
        - c
        - 3
    -
        - d
        - 4
    -
        - e
        - 5
    -
        - f
        - 6
---

Fixed width charts with "sticky" y-axis
---------------------------------------

Set the `chartWidth` option to a specific value to force the chart to render with constrained width.
If the parent `.paper-eagle-container` element becomes narrower then the intended width, a horizontal scrollbar
will appear with a fixed y-axis.  Please only set the y-axis orientation to `left` with this feature!

You can also set `chartMinWidth` to keep responsive sizing until the width reaches a certain minimum.

```html_example
{% from "templates/common/data/charts/paper-eagle.nunj" import paperEagleBar %}

{% set chartOptions = {
    "chartMinWidth": 800,
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEagleBar(chartData, chartOptions) }}

{# for purposes of this example only #}
<style>.paper-eagle-container{width:100%;display:inline-block;}</style>

```

*/
.legend-table tr:first-child td {
  padding: 15px 0;
  border-bottom: 1px solid #888; }

.legend-table tr:not(:first-child) td {
  padding: 10px 0;
  border-bottom: 1px solid #ccc; }

.legend-group {
  display: block;
  line-height: 24px;
  vertical-align: middle; }
  .legend-group.legend-inline {
    display: inline-block;
    margin-right: 15px; }
  .legend-group .legend-square {
    display: inline-block;
    float: left;
    position: relative;
    top: 6px;
    height: 12px;
    width: 12px; }
  .legend-group .legend-triangle {
    display: inline-block;
    float: left;
    position: relative;
    top: 3px;
    height: 16px;
    width: 8px; }
  .legend-group .legend-symbol {
    height: 1px;
    width: 1px;
    overflow: visible; }
  .legend-group .legend-vertical-align {
    display: flex;
    align-items: center; }

.responsive-small .legend-square {
  top: 0; }

.paper-eagle-container.bordered {
  border: 1px solid #ddd; }

.paper-eagle-container .paper-eagle-table {
  border-collapse: collapse;
  border: none; }
  .paper-eagle-container .paper-eagle-table thead {
    border: none; }
  .paper-eagle-container .paper-eagle-table tr:not(:last-child) {
    border-bottom: 1px solid #ccc; }
  .paper-eagle-container .paper-eagle-table tr td:first-child {
    text-align: left;
    visibility: hidden; }
  .paper-eagle-container .paper-eagle-table th {
    border: none;
    box-shadow: 1px 2px 1px 0px #ccc; }
  .paper-eagle-container .paper-eagle-table td, .paper-eagle-container .paper-eagle-table th {
    text-align: right;
    padding: 20px 15px; }

.paper-eagle-container .axis-label {
  display: none;
  position: relative;
  height: 0;
  top: -12px;
  left: 3px; }

.paper-eagle-container .paper-eagle-y-axis .axis-label {
  display: block; }

.paper-eagle-container .paper-eagle-y-axis .paper-eagle-table-container {
  overflow-x: hidden;
  position: absolute;
  width: 100%; }

.paper-eagle-container .paper-eagle-y-axis .paper-eagle-table tr td {
  visibility: hidden; }

.paper-eagle-container .paper-eagle-y-axis .paper-eagle-table tr td:first-child {
  visibility: visible; }

.chart-height-175-250 {
  height: 175px; }
  @media only screen and (min-width: 40.0625em) {
    .chart-height-175-250 {
      height: 250px; } }

.chart-height-230-415 {
  height: 230px; }
  @media only screen and (min-width: 40.0625em) {
    .chart-height-230-415 {
      height: 415px; } }

.chart-height-150-210 {
  height: 150px; }
  @media (min-width: 40.0625em) {
    .chart-height-150-210 {
      height: 210px; } }

/*doc
---
title: Paper Eagle Stacked Bar Charts
name: z-paper-eagle-stacked
category: Charts & Graphs - Charts
authors: Wes DiMiceli
selectors:
    - .chart.chart-bar
template:
    chartData:
      "9th Grade":
      - - a
        - 2
      - - b
        - 2
      - - c
        - 1
      - - d
        - 4
      - - e
        - 3
      - - f
        - 3
      - - g
        - 4
      "10th Grade":
      - - a
        - 5
      - - b
        - 3
      - - c
        - 2
      - - d
        - 4
      - - e
        - 6
      - - f
        - 3
      - - g
        - 4
      "11th Grade":
      - - a
        - 3
      - - b
        - 3
      - - c
        - 3
      - - d
        - 2
      - - e
        - 4
      - - f
        - 3
      - - g
        - 4
      "12th Grade":
      - - a
        - 2
      - - b
        - 1
      - - c
        - 3
      - - d
        - 1
      - - e
        - 0
      - - f
        - 0
      - - g
        - 5
---

By passing a truthy `stacked` value in the options, each series will be stacked.

It is highly recommended to specify `axes.y.windowExtent`, which determines the numerical range to display.

```html_example
{% from "templates/common/data/charts/paper-eagle.nunj" import paperEagleBar %}

{% set chartOptions = {
    "stacked": true,
    "axes": {
        "y": {
            "windowExtent": [0, 30],
            "chartAreaMargins": [50, 50]
        }
    },
    "barColor": {
        "a": "#0d294a",
        "b": "#2c62ac",
        "c": "#217cec",
        "d": "#a8e8e0",
        "e": "#4dd5c5",
        "f": "#00bba4",
        "g": "#007b6b"
    },
    "barGroupScale": 0.5,
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEagleBar(chartData, chartOptions, 300) }}

{# for purposes of this example only #}
<style>.paper-eagle-container{width:500px;display:inline-block;}</style>

```

*/
/*doc
---
title: Paper Eagle Horizontal Bar Charts
name: z-paper-eagle-horizontal
category: Charts & Graphs - Charts
authors: Wes DiMiceli
selectors:
    - .chart.chart-bar
template:
    chartData:
      "9th Grade":
      - - a
        - 2
      - - b
        - 2
      - - c
        - 1
      - - d
        - 4
      - - e
        - 3
      - - f
        - 3
      - - g
        - 4
      "10th Grade":
      - - a
        - 5
      - - b
        - 3
      - - c
        - 2
      - - d
        - 4
      - - e
        - 6
      - - f
        - 3
      - - g
        - 4
      "11th Grade":
      - - a
        - 3
      - - b
        - 3
      - - c
        - 3
      - - d
        - 2
      - - e
        - 4
      - - f
        - 3
      - - g
        - 4
      "12th Grade":
      - - a
        - 2
      - - b
        - 1
      - - c
        - 3
      - - d
        - 1
      - - e
        - 0
      - - f
        - 0
      - - g
        - 5
---

By passing a truthy `stacked` value in the options, each series will be stacked.

It is highly recommended to specify `axes.y.windowExtent`, which determines the numerical range to display.

```html_example
{% from "templates/common/data/charts/paper-eagle.nunj" import paperEagleBar %}

{% set chartOptions = {
    "horizontal": false,
    "stacked": true,
    "barColor": {
        "a": "#0d294a",
        "b": "#2c62ac",
        "c": "#217cec",
        "d": "#a8e8e0",
        "e": "#4dd5c5",
        "f": "#00bba4",
        "g": "#007b6b"
    },
    "barGroupScale": 0.75,
    "barGroupSpacing": "padded",
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEagleBar(chartData, chartOptions, 300) }}

{# for purposes of this example only #}
<style>.paper-eagle-container{width:500px;display:inline-block;}</style>

```

*/
/*doc
---
title: Paper Eagle Box and Whisker Plot
name: z-paper-eagle-box-whisker
category: Charts & Graphs - Charts
authors: Wes DiMiceli
selectors:
    - .chart.chart-box-whisker
template:
    chartData:
    - - A
      - 3
      - 11
      - 18
      - 58
      - 61
      - 42
      - 34
      - 29
    - - B
      - 9
      - 20
      - 51
      - 81
      - 89
      - 81
      - 31
      - 42
    - - C
      - 8
      - 30
      - 79
      - 87
      - 90
      - 77
      - 69
      - 83
    - - D
      - 31
      - 50
      - 78
      - 89
      - 91
      - 71
      - 84
      - 81
    - - E
      - 30
      - 33
      - 73
      - 76
      - 80
      - 52
      - 39
      - 73
    - - F
      - 36
      - 39
      - 84
      - 93
      - 94
      - 40
      - 51
      - 46
    - - G
      - 39
      - 51
      - 68
      - 93
      - 93
      - 60
      - 55
      - 76
    - - H
      - 2
      - 7
      - 46
      - 58
      - 65
      - 50
      - 17
      - 34
    - - I
      - 2
      - 10
      - 26
      - 65
      - 74
      - 27
      - 51
      - 13
    - - J
      - 6
      - 25
      - 54
      - 90
      - 91
      - 32
      - 47
      - 69
---

Box and whisker plot.  The Y, Z, W, P, and Q axes indicate the minimum, 1st quartile, median, 3rd quartile, and maximum, respectively.  Every additional axis defines an arrow,
with the first on the left and every subsequent one on the right.

Box and Whisker-specific options are as follows:

| Option                   | Description
|--------------------------|-------------------------------------------------------------------------------------------------------|
| `enableAnimation`        | Enable or disable the initial expanding animation.                                                    |
| `boxWidthScale`          | Overall scaling factor for each box.                                                                  |
| `boxSpacingMode`         | Layout method.  Choose from "between", "around", or "padded".                                         |
| `boxColor`               | Color of each box.  Can be a function, string, array, or object.                                      |
| `arrowColors`            | Color of arrow.  Can be a function, string, or array.                                                 |
| `arrowHeight`            | General size of each arrow.                                                                           |
| `whiskerWidth`           | Width of the whisker lines.                                                                           |
| `whiskerStemWidth`       | Distance that the "T" stems will extend from the ends of the "whiskers"                               |

```html_example
{% from "templates/common/data/charts/paper-eagle.nunj" import paperEagleBoxWhisker %}

{{ paperEagleBoxWhisker(chartData, { scrollTarget: '.styleguide-wrapper' }, 300) }}

{# for purposes of this example only #}
<style>.paper-eagle-container{width:100%;display:inline-block;}</style>

```

*/
/*doc
---
title: Paper Eagle Meter
name: z-paper-eagle-meter
category: Charts & Graphs - Charts
authors: Wes DiMiceli
selectors:
    - .chart.chart-meter
template:
---

Specialization of pie charts that renders half-circles.  There are no additional options at this time.
Note that `initialAngle` and `totalAngle` options are overridden in meters.

<pre>
{% raw %}
{% from "templates/common/data/charts/paper-eagle.nunj" import paperEagleMeter %}
{% endraw %}
</pre>


| Option                   | Description
|--------------------------|-------------------------------------------------------------------------------------------------------|
| `textSize`               | Text size of the number inside the meter.                                                             |
| `textYOffset`            | Y-offset of the text from the bottom of the meter.                                                    |
| `textGenerator`          | Generator function for the text.  Takes the input value and should return a formatted string.         |

```html_example
{% from "templates/common/data/charts/paper-eagle.nunj" import paperEagleMeter %}

{# Typical example #}
{% set chartOptions = {
    "axes": {
        "x": {
            "windowExtent": [0, 10]
        }
    },
    "sliceColor": ["blue", "#dddddd"],
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEagleMeter(6, chartOptions) }}

{# Thick #}
{% set chartOptions = {
    "axes": {
        "x": {
            "windowExtent": [0, 10]
        }
    },
    "sliceColor": ["crimson", "purple"],
    "sliceRadius": 50.0,
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEagleMeter(3, chartOptions) }}

{# for purposes of this example only #}
<style>.paper-eagle-container{width:33%;display:inline-block;}</style>

```

*/
/*doc
---
title: Paper Eagle Line Chart
name: z-paper-eagle-line
category: Charts & Graphs - Charts
authors: Wes DiMiceli
selectors:
    - .chart.chart-line
template:
    chartData:
        Vanguard Total Stock Market:
        - - 12/2004
          - 3000
        - - 6/2008
          - 19000
        - - 10/2013
          - 24000
        - - 7/2015
          - 5000
        S&P 500 TR USD:
        - - 12/2004
          - 9000
        - - 6/2008
          - 19500
        - - 10/2013
          - 23500
        - - 7/2015
          - 7000
    trigFunctions:
        sine:
        - - 0
          - 0
        - - 0.3
          - 0.29552020666133955
        - - 0.6
          - 0.5646424733950354
        - - 0.8999999999999999
          - 0.7833269096274833
        - - 1.2
          - 0.9320390859672263
        - - 1.5
          - 0.9974949866040544
        - - 1.8
          - 0.9738476308781951
        - - 2.1
          - 0.8632093666488737
        - - 2.4
          - 0.675463180551151
        - - 2.6999999999999997
          - 0.42737988023383017
        - - 2.9999999999999996
          - 0.14112000805986766
        - - 3.2999999999999994
          - -0.15774569414324777
        - - 3.599999999999999
          - -0.4425204432948517
        - - 3.899999999999999
          - -0.6877661591839731
        - - 4.199999999999999
          - -0.8715757724135877
        - - 4.499999999999999
          - -0.9775301176650969
        - - 4.799999999999999
          - -0.9961646088358408
        - - 5.099999999999999
          - -0.9258146823277328
        - - 5.399999999999999
          - -0.7727644875559883
        - - 5.699999999999998
          - -0.5506855425976391
        - - 5.999999999999998
          - -0.2794154981989276
        - - 6.283
          - 0
        cosine:
        - - 0
          - 1
        - - 0.3
          - 0.955336489125606
        - - 0.6
          - 0.8253356149096783
        - - 0.8999999999999999
          - 0.6216099682706645
        - - 1.2
          - 0.3623577544766736
        - - 1.5
          - 0.0707372016677029
        - - 1.8
          - -0.2272020946930871
        - - 2.1
          - -0.5048461045998576
        - - 2.4
          - -0.7373937155412454
        - - 2.6999999999999997
          - -0.904072142017061
        - - 2.9999999999999996
          - -0.9899924966004454
        - - 3.2999999999999994
          - -0.987479769908865
        - - 3.599999999999999
          - -0.8967584163341473
        - - 3.899999999999999
          - -0.7259323042001408
        - - 4.199999999999999
          - -0.4902608213407002
        - - 4.499999999999999
          - -0.21079579943078058
        - - 4.799999999999999
          - 0.08749898343944551
        - - 5.099999999999999
          - 0.3779777427129794
        - - 5.399999999999999
          - 0.6346928759426332
        - - 5.699999999999998
          - 0.8347127848391588
        - - 5.999999999999998
          - 0.9601702866503655
        - - 6.283
          - 1
---

<pre>
{% raw %}
{% from "templates/common/data/charts/paper-eagle.nunj" import paperEagleLine %}
{% endraw %}
</pre>

Line-specific options are as follows:

| Option                   | Description
|--------------------------|-------------------------------------------------------------------------------------------------------|
| `lineColor`              | Color of the line.  Can be a string, function, array, or object.                                      |
| `lineWidth`              | Width of the line.                                                                                    |
| `lineDashed`             | Draw dashed lines.  Can be a boolean, function, array, or object.                                     |

```html_example
{% from "templates/common/data/charts/paper-eagle.nunj" import paperEagleLine %}

{# Typical example #}
{% set chartOptions = {
    "lineColor": ['crimson', 'purple'],
    "lineDashed": [true, false],
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEagleLine(trigFunctions, chartOptions) }}

{# Thick #}
{% set chartOptions = {
    "lineColor": ['crimson', 'purple'],
    "lineWidth": 10.0,
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEagleLine(trigFunctions, chartOptions) }}

{# String x-coordinates #}
{% set chartOptions = {
    "lineColor": ['crimson', 'purple'],
    "lineDashed": [true, false],
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEagleLine(chartData, chartOptions) }}

{# Shaded areas #}
{% set chartOptions = {
    "lineRenderFill": true,
    "lineFillColor": ['crimson', 'purple'],
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEagleLine(trigFunctions.sine, chartOptions) }}

{# Sampled functions #}
{% set chartOptions = {
    "axes": {
        "x": {
            "windowExtent": [-3, 3]
        },
        "y": {
            "windowExtent": "fit"
        }
    },
    "lineRenderFill": true,
    "lineFillColor": ['crimson', 'purple'],
    "lineFunctions": ["normalPDF:0,1"],
    "lineSampleCount": 50,
    scrollTarget: '.styleguide-wrapper'
} %}
{{ paperEagleLine([], chartOptions) }}


{# for purposes of this example only #}
<style>.paper-eagle-container{width:33%;display:inline-block;}</style>

```

*/
.sliding-scale {
  display: flex;
  flex-direction: column;
  justify-content: center; }
  .sliding-scale .scale-item-last {
    position: absolute;
    right: 0; }
  .sliding-scale .scale-line {
    height: 2px;
    position: relative;
    background: #c6c7ca;
    width: 100%; }
  .sliding-scale .scale-value {
    background: white; }
    .sliding-scale .scale-value:not(.first):not(.last) {
      position: relative;
      left: -48%; }
  .sliding-scale .balloon {
    position: relative;
    padding: 6px 8px;
    border-radius: 6px; }
    .sliding-scale .balloon.green {
      background: #0abba4; }
      .sliding-scale .balloon.green.over:after {
        border-top-color: #0abba4; }
      .sliding-scale .balloon.green.under:after {
        border-bottom-color: #0abba4; }
    .sliding-scale .balloon.light-green {
      background: #5dd5c5; }
      .sliding-scale .balloon.light-green.over:after {
        border-top-color: #5dd5c5; }
      .sliding-scale .balloon.light-green.under:after {
        border-bottom-color: #5dd5c5; }
    .sliding-scale .balloon.yellow {
      background: #ffc14e; }
      .sliding-scale .balloon.yellow.over:after {
        border-top-color: #ffc14e; }
      .sliding-scale .balloon.yellow.under:after {
        border-bottom-color: #ffc14e; }
    .sliding-scale .balloon.orange {
      background: #e38d13; }
      .sliding-scale .balloon.orange.over:after {
        border-top-color: #e38d13; }
      .sliding-scale .balloon.orange.under:after {
        border-bottom-color: #e38d13; }
    .sliding-scale .balloon.red {
      background: #d1453d; }
      .sliding-scale .balloon.red.over:after {
        border-top-color: #d1453d; }
      .sliding-scale .balloon.red.under:after {
        border-bottom-color: #d1453d; }
    .sliding-scale .balloon.grey {
      background: #dddddd; }
      .sliding-scale .balloon.grey.over:after {
        border-top-color: #dddddd; }
      .sliding-scale .balloon.grey.under:after {
        border-bottom-color: #dddddd; }
    .sliding-scale .balloon.over:after {
      top: 88%; }
    .sliding-scale .balloon.under:after {
      bottom: 88%; }
    .sliding-scale .balloon:after {
      left: 50%;
      border: solid transparent;
      content: " ";
      height: 0;
      width: 0;
      position: absolute;
      pointer-events: none;
      border-color: rgba(10, 187, 164, 0);
      border-width: 9px;
      margin-left: -10px; }
    .sliding-scale .balloon.arrow-left:after {
      left: 12px; }
    .sliding-scale .balloon.arrow-right:after {
      left: initial;
      right: 2px; }
  @media only screen and (min-width: 40.0625em) {
    .sliding-scale .balloon {
      padding: 8px 18px; } }

/* This is the default Tooltipster theme (feel free to modify or duplicate and create multiple themes!): */
.tooltipster-default {
  border-radius: 5px;
  border: 2px solid #000;
  background: #4c4c4c;
  color: #fff; }

/* Use this next selector to style things like font-size and line-height: */
.tooltipster-default .tooltipster-content {
  font-family: Arial, sans-serif;
  font-size: 14px;
  line-height: 16px;
  padding: 8px 10px;
  overflow: hidden; }

/* this is the default shadow style from tooltipster with some extra padding and line height */
.tooltipster-shadow {
  border-radius: 5px;
  background: #fff;
  box-shadow: 0px 0px 14px rgba(0, 0, 0, 0.3);
  color: #2c2c2c; }

.tooltipster-shadow .tooltipster-content {
  font-family: 'Arial', sans-serif;
  font-size: 14px;
  line-height: 18px;
  padding: 16px 10px; }

/* This next selector defines the color of the border on the outside of the arrow. This will automatically match the color and size of the border set on the main tooltip styles. Set display: none; if you would like a border around the tooltip but no border around the arrow */
.tooltipster-default .tooltipster-arrow .tooltipster-arrow-border {
  /* border-color: ... !important; */ }

/* If you're using the icon option, use this next selector to style them */
.tooltipster-icon {
  cursor: help;
  margin-left: 4px; }

/* This is the base styling required to make all Tooltipsters work */
.tooltipster-base {
  padding: 0;
  font-size: 0;
  line-height: 0;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 9999999;
  pointer-events: none;
  width: auto;
  overflow: visible; }

.tooltipster-base .tooltipster-content {
  overflow: hidden; }

/* These next classes handle the styles for the little arrow attached to the tooltip. By default, the arrow will inherit the same colors and border as what is set on the main tooltip itself. */
.tooltipster-arrow {
  display: block;
  text-align: center;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1; }

.tooltipster-arrow span,
.tooltipster-arrow-border {
  display: block;
  width: 0;
  height: 0;
  position: absolute; }

.tooltipster-arrow-top span,
.tooltipster-arrow-top-right span,
.tooltipster-arrow-top-left span {
  border-left: 8px solid transparent !important;
  border-right: 8px solid transparent !important;
  border-top: 8px solid;
  bottom: -7px; }

.tooltipster-arrow-top .tooltipster-arrow-border,
.tooltipster-arrow-top-right .tooltipster-arrow-border,
.tooltipster-arrow-top-left .tooltipster-arrow-border {
  border-left: 9px solid transparent !important;
  border-right: 9px solid transparent !important;
  border-top: 9px solid;
  bottom: -7px; }

.tooltipster-arrow-bottom span,
.tooltipster-arrow-bottom-right span,
.tooltipster-arrow-bottom-left span {
  border-left: 8px solid transparent !important;
  border-right: 8px solid transparent !important;
  border-bottom: 8px solid;
  top: -7px; }

.tooltipster-arrow-bottom .tooltipster-arrow-border,
.tooltipster-arrow-bottom-right .tooltipster-arrow-border,
.tooltipster-arrow-bottom-left .tooltipster-arrow-border {
  border-left: 9px solid transparent !important;
  border-right: 9px solid transparent !important;
  border-bottom: 9px solid;
  top: -7px; }

.tooltipster-arrow-top span,
.tooltipster-arrow-top .tooltipster-arrow-border,
.tooltipster-arrow-bottom span,
.tooltipster-arrow-bottom .tooltipster-arrow-border {
  left: 0;
  right: 0;
  margin: 0 auto; }

.tooltipster-arrow-top-left span,
.tooltipster-arrow-bottom-left span {
  left: 6px; }

.tooltipster-arrow-top-left .tooltipster-arrow-border,
.tooltipster-arrow-bottom-left .tooltipster-arrow-border {
  left: 5px; }

.tooltipster-arrow-top-right span,
.tooltipster-arrow-bottom-right span {
  right: 6px; }

.tooltipster-arrow-top-right .tooltipster-arrow-border,
.tooltipster-arrow-bottom-right .tooltipster-arrow-border {
  right: 5px; }

.tooltipster-arrow-left span,
.tooltipster-arrow-left .tooltipster-arrow-border {
  border-top: 8px solid transparent !important;
  border-bottom: 8px solid transparent !important;
  border-left: 8px solid;
  top: 50%;
  margin-top: -7px;
  right: -7px; }

.tooltipster-arrow-left .tooltipster-arrow-border {
  border-top: 9px solid transparent !important;
  border-bottom: 9px solid transparent !important;
  border-left: 9px solid;
  margin-top: -8px; }

.tooltipster-arrow-right span,
.tooltipster-arrow-right .tooltipster-arrow-border {
  border-top: 8px solid transparent !important;
  border-bottom: 8px solid transparent !important;
  border-right: 8px solid;
  top: 50%;
  margin-top: -7px;
  left: -7px; }

.tooltipster-arrow-right .tooltipster-arrow-border {
  border-top: 9px solid transparent !important;
  border-bottom: 9px solid transparent !important;
  border-right: 9px solid;
  margin-top: -8px; }

/* Some CSS magic for the awesome animations - feel free to make your own custom animations and reference it in your Tooltipster settings! */
.tooltipster-fade {
  opacity: 0;
  -webkit-transition-property: opacity;
  -moz-transition-property: opacity;
  -o-transition-property: opacity;
  -ms-transition-property: opacity;
  transition-property: opacity; }

.tooltipster-fade-show {
  opacity: 1; }

.tooltipster-grow {
  -webkit-transform: scale(0, 0);
  -moz-transform: scale(0, 0);
  -o-transform: scale(0, 0);
  -ms-transform: scale(0, 0);
  transform: scale(0, 0);
  -webkit-transition-property: -webkit-transform;
  -moz-transition-property: -moz-transform;
  -o-transition-property: -o-transform;
  -ms-transition-property: -ms-transform;
  transition-property: transform;
  -webkit-backface-visibility: hidden; }

.tooltipster-grow-show {
  -webkit-transform: scale(1, 1);
  -moz-transform: scale(1, 1);
  -o-transform: scale(1, 1);
  -ms-transform: scale(1, 1);
  transform: scale(1, 1);
  -webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  -webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.15);
  -moz-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.15);
  -ms-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.15);
  -o-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.15);
  transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.15); }

.tooltipster-swing {
  opacity: 0;
  -webkit-transform: rotateZ(4deg);
  -moz-transform: rotateZ(4deg);
  -o-transform: rotateZ(4deg);
  -ms-transform: rotateZ(4deg);
  transform: rotateZ(4deg);
  -webkit-transition-property: -webkit-transform, opacity;
  -moz-transition-property: -moz-transform;
  -o-transition-property: -o-transform;
  -ms-transition-property: -ms-transform;
  transition-property: transform; }

.tooltipster-swing-show {
  opacity: 1;
  -webkit-transform: rotateZ(0deg);
  -moz-transform: rotateZ(0deg);
  -o-transform: rotateZ(0deg);
  -ms-transform: rotateZ(0deg);
  transform: rotateZ(0deg);
  -webkit-transition-timing-function: cubic-bezier(0.23, 0.635, 0.495, 1);
  -webkit-transition-timing-function: cubic-bezier(0.23, 0.635, 0.495, 2.4);
  -moz-transition-timing-function: cubic-bezier(0.23, 0.635, 0.495, 2.4);
  -ms-transition-timing-function: cubic-bezier(0.23, 0.635, 0.495, 2.4);
  -o-transition-timing-function: cubic-bezier(0.23, 0.635, 0.495, 2.4);
  transition-timing-function: cubic-bezier(0.23, 0.635, 0.495, 2.4); }

.tooltipster-fall {
  top: 0;
  -webkit-transition-property: top;
  -moz-transition-property: top;
  -o-transition-property: top;
  -ms-transition-property: top;
  transition-property: top;
  -webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  -webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.15);
  -moz-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.15);
  -ms-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.15);
  -o-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.15);
  transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.15); }

.tooltipster-fall.tooltipster-dying {
  -webkit-transition-property: all;
  -moz-transition-property: all;
  -o-transition-property: all;
  -ms-transition-property: all;
  transition-property: all;
  top: 0px !important;
  opacity: 0; }

.tooltipster-slide {
  left: -40px;
  -webkit-transition-property: left;
  -moz-transition-property: left;
  -o-transition-property: left;
  -ms-transition-property: left;
  transition-property: left;
  -webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  -webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.15);
  -moz-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.15);
  -ms-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.15);
  -o-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.15);
  transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.15); }

.tooltipster-slide.tooltipster-dying {
  -webkit-transition-property: all;
  -moz-transition-property: all;
  -o-transition-property: all;
  -ms-transition-property: all;
  transition-property: all;
  left: 0px !important;
  opacity: 0; }

/* CSS transition for when contenting is changing in a tooltip that is still open. The only properties that will NOT transition are: width, height, top, and left */
.tooltipster-content-changing {
  opacity: 0.5;
  -webkit-transform: scale(1.1, 1.1);
  -moz-transform: scale(1.1, 1.1);
  -o-transform: scale(1.1, 1.1);
  -ms-transform: scale(1.1, 1.1);
  transform: scale(1.1, 1.1); }

.tooltip {
  border-radius: 50%;
  height: 12px;
  line-height: 12px;
  width: 12px;
  font-size: 9px;
  font-weight: 700;
  text-align: center;
  color: #13325D;
  background: #c0ddf2;
  margin-left: 3px;
  display: inline-block;
  vertical-align: middle;
  cursor: help; }

.tooltip-text {
  cursor: help;
  color: #2c7ef0; }

.usn-tooltip, .usn-tooltip-data-explorer, .usn-tooltip-nav {
  background: #fff; }

.usn-tooltip .tooltipster-content, .usn-tooltip-data-explorer .tooltipster-content, .usn-tooltip-nav .tooltipster-content {
  font-family: Arial, sans-serif;
  font-size: 14px;
  line-height: 16px;
  padding: 8px 10px 12px;
  overflow: hidden;
  border-left: 5px solid #2262bb;
  -webkit-box-shadow: 2px 0px 4px 1px rgba(0, 0, 0, 0.33);
  -moz-box-shadow: 2px 0px 4px 1px rgba(0, 0, 0, 0.33);
  box-shadow: 2px 0px 4px 1px rgba(0, 0, 0, 0.33); }

.usn-tooltip .grey-heading, .usn-tooltip-data-explorer .grey-heading, .usn-tooltip-nav .grey-heading {
  margin: -8px -10px -12px;
  padding: 4px 10px;
  background: #ccc; }

.usn-tooltip.noborder .tooltipster-content, .noborder.usn-tooltip-data-explorer .tooltipster-content, .noborder.usn-tooltip-nav .tooltipster-content {
  border-left: none; }

.usn-tooltip.noarrow .tooltipster-arrow, .noarrow.usn-tooltip-data-explorer .tooltipster-arrow, .noarrow.usn-tooltip-nav .tooltipster-arrow {
  display: none !important; }

@media (min-width: 0em) {
  .usn-tooltip:not(.unlimit-width) .tooltipster-content, .usn-tooltip-data-explorer:not(.unlimit-width) .tooltipster-content, .usn-tooltip-nav:not(.unlimit-width) .tooltipster-content {
    max-width: 260px; } }

@media (min-width: 40.0625em) {
  .usn-tooltip:not(.unlimit-width) .tooltipster-content, .usn-tooltip-data-explorer:not(.unlimit-width) .tooltipster-content, .usn-tooltip-nav:not(.unlimit-width) .tooltipster-content {
    max-width: 290px; } }

.usn-tooltip-data-explorer .tooltipster-content {
  border: none;
  padding: 0; }
  .usn-tooltip-data-explorer .tooltipster-content *[class$='border'] {
    border-left-style: solid;
    border-left-width: 5px; }
  .usn-tooltip-data-explorer .tooltipster-content .yellow-border {
    border-color: #E3D713; }
  .usn-tooltip-data-explorer .tooltipster-content .blue-border {
    border-color: #2262bb; }
  .usn-tooltip-data-explorer .tooltipster-content .purple-border {
    border-color: #8761e9; }
  .usn-tooltip-data-explorer .tooltipster-content .cyan-border {
    border-color: #39c2c4; }
  .usn-tooltip-data-explorer .tooltipster-content .panel, .usn-tooltip-data-explorer .tooltipster-content .panel-borderless, .usn-tooltip-data-explorer .tooltipster-content .panel-tight, .usn-tooltip-data-explorer .tooltipster-content .error-panel {
    background-color: #FFFFFF;
    border: none;
    padding: 8px 10px 12px; }
    .usn-tooltip-data-explorer .tooltipster-content .panel.data-values, .usn-tooltip-data-explorer .tooltipster-content .data-values.panel-borderless, .usn-tooltip-data-explorer .tooltipster-content .data-values.panel-tight, .usn-tooltip-data-explorer .tooltipster-content .data-values.error-panel {
      background-color: #ecedf1; }

.datamaps-hoverover .usn-tooltip-data-explorer {
  min-width: 200px;
  position: absolute; }

.datamaps-hoverover.right-half .usn-tooltip-data-explorer {
  right: 10px; }

.datamaps-hoverover.bottom-half .usn-tooltip-data-explorer {
  bottom: 45px; }

.chart-hover {
  background: none;
  height: 0;
  left: 0;
  position: absolute;
  top: 0;
  width: 0; }

.tooltip-anchor {
  position: relative; }

.search-match-tooltip, .diet-match-tooltip {
  background: #ffffff; }
  .search-match-tooltip .tooltipster-content, .diet-match-tooltip .tooltipster-content {
    overflow: hidden;
    -webkit-box-shadow: 2px 0px 4px 1px rgba(0, 0, 0, 0.33);
    -moz-box-shadow: 2px 0px 4px 1px rgba(0, 0, 0, 0.33);
    box-shadow: 2px 0px 4px 1px rgba(0, 0, 0, 0.33); }
    @media (min-width: 0em) {
      .search-match-tooltip .tooltipster-content, .diet-match-tooltip .tooltipster-content {
        max-width: 260px; } }
    @media (min-width: 40.0625em) {
      .search-match-tooltip .tooltipster-content, .diet-match-tooltip .tooltipster-content {
        max-width: 290px; } }
    @media (min-width: 40.0625em) {
      .search-match-tooltip .tooltipster-content ul, .diet-match-tooltip .tooltipster-content ul {
        width: 290px; } }
    @media (min-width: 0em) {
      .search-match-tooltip .tooltipster-content ul, .diet-match-tooltip .tooltipster-content ul {
        width: 260px; } }
    .search-match-tooltip .tooltipster-content ul > li, .diet-match-tooltip .tooltipster-content ul > li {
      border-bottom: solid 1px #ccc;
      padding: 15px 0px;
      margin: 0 15px; }
      .search-match-tooltip .tooltipster-content ul > li:last-of-type, .diet-match-tooltip .tooltipster-content ul > li:last-of-type {
        border-bottom: none; }
    .search-match-tooltip .tooltipster-content .search-match-tooltip-header, .diet-match-tooltip .tooltipster-content .search-match-tooltip-header {
      color: #ffffff;
      padding: 5px;
      padding-left: 25px;
      background: #2c7ef0;
      line-height: normal; }

.diet-match-tooltip {
  width: 100%;
  max-width: 470px; }
  @media (max-width: 40em) {
    .diet-match-tooltip {
      overflow: hidden;
      position: fixed;
      top: 0 !important;
      height: 100vh; } }
  .diet-match-tooltip .tooltipster-content {
    max-width: 100%;
    height: 100%; }
    .diet-match-tooltip .tooltipster-content .search-match-tooltip-header {
      background: #666666; }
    .diet-match-tooltip .tooltipster-content ul {
      width: 100%; }
      .diet-match-tooltip .tooltipster-content ul:nth-child(even) {
        margin-left: 15px; }
      .diet-match-tooltip .tooltipster-content ul li {
        margin: 0; }

.diet-tooltip-matches {
  padding: 0 15px; }

.usn-tooltip-nav .tooltipster-content {
  border: none;
  padding: 0; }

.usn-tooltip-nav ul {
  list-style-type: none;
  margin: 0;
  padding: 15px; }

.usn-tooltip-nav .svg-radio {
  fill: transparent;
  stroke: #888;
  stroke-width: 2;
  height: 18px;
  width: 18px;
  vertical-align: text-bottom; }
  .usn-tooltip-nav .svg-radio circle {
    fill: #1961b8;
    stroke: transparent; }
  .usn-tooltip-nav .svg-radio.selected {
    stroke: #1961b8; }

@media only screen and (max-width: 40em) {
  .usn-tooltip-nav {
    left: 0 !important;
    top: 0 !important;
    height: 100%;
    width: 100%;
    position: fixed; }
    .usn-tooltip-nav .tooltipster-content {
      box-shadow: none;
      max-width: initial;
      width: 100%; }
    .usn-tooltip-nav h4 {
      background: #1961b8;
      padding: 10px; }
      .usn-tooltip-nav h4 .x-button {
        cursor: pointer;
        position: relative;
        top: 3px; } }

.chart-tooltip {
  background: #fff; }

.chart-tooltip .tooltipster-content {
  font-family: Arial, sans-serif;
  font-size: 14px;
  line-height: 16px;
  padding: 0;
  overflow: hidden;
  -webkit-box-shadow: 2px 0px 4px 1px rgba(0, 0, 0, 0.33);
  -moz-box-shadow: 2px 0px 4px 1px rgba(0, 0, 0, 0.33);
  box-shadow: 2px 0px 4px 1px rgba(0, 0, 0, 0.33); }
  @media (min-width: 0em) {
    .chart-tooltip .tooltipster-content {
      max-width: 260px; } }
  @media (min-width: 40.0625em) {
    .chart-tooltip .tooltipster-content {
      max-width: 290px; } }

.chart-tooltip .tooltipster-content .chart-tooltip__label {
  background-color: #ebebeb;
  font-weight: bold;
  padding: 7px 12px; }

.chart-tooltip .tooltipster-content .chart-tooltip__value {
  padding: 7px 12px; }
  .chart-tooltip .tooltipster-content .chart-tooltip__value ul {
    padding: 0px;
    margin: 0px;
    list-style: none; }
  .chart-tooltip .tooltipster-content .chart-tooltip__value li .chart-tooltip__value__number {
    width: 50px; }
  .chart-tooltip .tooltipster-content .chart-tooltip__value li .chart-tooltip__value__description {
    display: inline-block;
    padding: 0px; }

.chart-tooltip__value__number {
  display: inline-block;
  font-weight: 700; }

.chart-tooltip__value__description {
  display: inline-block;
  padding: 0 0 0 9px; }

.twitter-typeahead {
  width: 100%; }
  .twitter-typeahead input.tt-hint, .twitter-typeahead input.tt-input {
    margin: 0;
    top: 0; }
  .twitter-typeahead .tt-menu {
    z-index: 1600 !important;
    border-style: solid;
    border-width: 1px;
    border-color: #b6b6b6;
    margin-bottom: 1.25rem;
    padding: 0;
    background: white;
    color: #333333;
    text-align: left;
    text-shadow: none;
    width: 100%;
    max-height: 308px;
    overflow-y: auto; }
    .twitter-typeahead .tt-menu > :first-child {
      margin-top: 0; }
    .twitter-typeahead .tt-menu > :last-child {
      margin-bottom: 0; }
    .twitter-typeahead .tt-menu h1, .twitter-typeahead .tt-menu h2, .twitter-typeahead .tt-menu h3, .twitter-typeahead .tt-menu h4, .twitter-typeahead .tt-menu h5, .twitter-typeahead .tt-menu h6, .twitter-typeahead .tt-menu p, .twitter-typeahead .tt-menu li, .twitter-typeahead .tt-menu dl {
      color: #333333; }
    .twitter-typeahead .tt-menu h1, .twitter-typeahead .tt-menu h2, .twitter-typeahead .tt-menu h3, .twitter-typeahead .tt-menu h4, .twitter-typeahead .tt-menu h5, .twitter-typeahead .tt-menu h6 {
      line-height: 1;
      margin-bottom: 0.625rem; }
      .twitter-typeahead .tt-menu h1.subheader, .twitter-typeahead .tt-menu h2.subheader, .twitter-typeahead .tt-menu h3.subheader, .twitter-typeahead .tt-menu h4.subheader, .twitter-typeahead .tt-menu h5.subheader, .twitter-typeahead .tt-menu h6.subheader {
        line-height: 1.4; }
  .twitter-typeahead .tt-suggestion {
    color: #333333;
    font-size: 0.875rem;
    margin: 0;
    padding: 0.5rem;
    width: 100%; }
    .twitter-typeahead .tt-suggestion div {
      padding: 0; }
    .twitter-typeahead .tt-suggestion .tt-highlight {
      color: #000000; }
  .twitter-typeahead .tt-suggestion:hover, .twitter-typeahead .tt-cursor {
    background: #d7f0fe;
    color: #2c7ef0;
    cursor: pointer; }
    .twitter-typeahead .tt-suggestion:hover .tt-highlight, .twitter-typeahead .tt-cursor .tt-highlight {
      color: #2c7ef0; }

/*doc
---
title: Basic Accordion
name: a-basic
category: Slideshows & Accordions - Accordion
selectors:
    - .accordion
---

You can create an accordion using minimal markup. It requires the use of a `ul` or `dl` to work.

If you add a class of `.nopad` to the accordion it will remove padding so that you can put
panels inside or have edge to edge dividing borders.  If you add a class of `.fullwidth-accordion` then the accordion will appear full-width on mobile using negative margins.

```html_example?kitchen-sink=true
<ul class="no-bullet accordion block-looser" data-accordion>
  <li class="accordion-navigation">
    <a href="#panel1a">Accordion 1</a>
    <div id="panel1a" class="content active">
      Panel 1. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
    </div>
  </li>
  <li class="accordion-navigation">
    <a href="#panel2a">Accordion 2</a>
    <div id="panel2a" class="content">
      Panel 2. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
    </div>
  </li>
  <li class="accordion-navigation">
    <a href="#panel3a">Accordion 3</a>
    <div id="panel3a" class="content">
      Panel 3. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
    </div>
  </li>
</ul>

<p>`.accordion.bordered`</p>
<ul class="no-bullet accordion bordered" data-accordion>
  <li class="accordion-navigation border-bottom">
    <a href="#panelbrda">Accordion 1</a>
    <div id="panelbrda" class="content active">
      Panel 1. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
    </div>
  </li>
  <li class="accordion-navigation border-bottom">
    <a href="#panelbrdb">Accordion 2</a>
    <div id="panelbrdb" class="content">
      Panel 2. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
    </div>
  </li>

</ul>
```
*/
.accordion.nopad .content {
  padding: 0; }

@media only screen and (max-width: 40em) {
  .accordion.fullwidth-accordion {
    margin-left: -1rem !important;
    margin-right: -1rem !important; } }

/*doc
---
title: Search Accordion
name: b-search-accordion
category: Slideshows & Accordions - Accordion
---

Here is an example of the accordion component being used in search. This is not
an extension of the accordion. It is just an example of this component being
used within another component.

*Two things to keep in mind:* The accordion html needs to be inside a div with
class of `.searchControl` and a class of `.searchControl_accordion` needs to be
added to the `ul`.

Again, this is not an extension of the the accordion component, please refer to
the search component for more information. I shouldn't even put this here.

```html_example
<div class="searchControl">
  <!-- Usually there is other crap in the searchControl -->
  <ul class="accordion searchControl_accordion" data-accordion data-options="multi_expand: true">
    <li class="accordion-navigation searchControl_facet">
      <a href="#education" class="searchControl_facet_heading">Education <svg class="icon right searchControl_facet_heading_icon-toggle"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#chevron" /></svg></a>
      <div id="education" class="content searchControl_facet_content">
        <p class="block-flush"><input id="checkbox1" type="checkbox"><label for="checkbox1">Checkbox 1</label></p>
        <p class="block-flush"><input id="checkbox2" type="checkbox"><label for="checkbox2">Checkbox 2</label></p>
        <p class="block-flush"><input id="checkbox1" type="checkbox"><label for="checkbox1">Checkbox 1</label></p>
        <p class="block-flush"><input id="checkbox1" type="checkbox"><label for="checkbox1">Checkbox 1</label></p>
        <p class="block-flush"><input id="checkbox1" type="checkbox"><label for="checkbox1">Checkbox 1</label></p>
        <p class="block-flush"><input id="checkbox1" type="checkbox"><label for="checkbox1">Checkbox 1</label></p>
        <p class="block-flush"><input id="checkbox1" type="checkbox"><label for="checkbox1">Checkbox 1</label></p>
      </div>
    </li>
    <li class="accordion-navigation searchControl_facet">
      <a href="#experience" class="searchControl_facet_heading">Experience <svg class="icon right searchControl_facet_heading_icon-toggle"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#chevron" /></svg></a>
      <div id="experience" class="content searchControl_facet_content">
          <p>Future home of experience</p>
      </div>
    </li>
    <li class="accordion-navigation searchControl_facet">
      <a href="#salary" class="searchControl_facet_heading">Salary <svg class="icon right searchControl_facet_heading_icon-toggle"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#chevron" /></svg></a>
      <div id="salary" class="content searchControl_facet_content">
          <p>Future home of Salary</p>
      </div>
    </li>
    <li class="accordion-navigation searchControl_facet">
      <a href="#skills" class="searchControl_facet_heading">Skills <svg class="icon right searchControl_facet_heading_icon-toggle"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#chevron" /></svg></a>
      <div id="skills" class="content searchControl_facet_content">
        Future home of Skills
      </div>
    </li>
    <li class="accordion-navigation searchControl_facet">
      <a href="#rankings" class="searchControl_facet_heading">Rankings <svg class="icon right searchControl_facet_heading_icon-toggle"><use xlink:href="/static/sprites/svg/sprite.symbol.svg#chevron" /></svg></a>
      <div id="rankings" class="content searchControl_facet_content">
        Future home of Rankings
      </div>
    </li>
  </ul>
</div>
```
*/
html.no-js .accordion .accordion-navigation > .content {
  display: block; }

/*doc
---
title: Chevron Accordion
name: c-chevron-accordion
category: Slideshows & Accordions - Accordion
template:
    accordions:
    - name: "[name]"
      items:
        - name: "[item.name]"
          url: "#"
        - name: "[item.name]"
          url: "#"
        - name: "[item.name]"
          url: "#"
        - name: "[item.name]"
          url: "#"
    - name: "[name]"
      items:
        - name: "[item.name]"
          url: "#"
        - name: "[item.name]"
          url: "#"
        - name: "[item.name]"
          url: "#"
        - name: "[item.name]"
          url: "#"
    - name: "[name]"
      items:
        - name: "[item.name]"
          url: "#"
        - name: "[item.name]"
          url: "#"
        - name: "[item.name]"
          url: "#"
        - name: "[item.name]"
          url: "#"
---

Another accordion style, cloning the look of the search apps.  This one is a macro for handy re-use.

{% set editor_id = uuid() %}
```nunjucks_tab?editor-id={{editor_id}}
{% from "templates/common/list/chevron-accordion.nunj" import chevronAccordion %}
{{ chevronAccordion(accordions) }}
```

*/
.chevron-accordion {
  margin-left: 0; }
  .chevron-accordion .accordion-navigation > .chevron-accordion-heading,
  .chevron-accordion .accordion-navigation > .chevron-accordion-heading:hover,
  .chevron-accordion .accordion-navigation.active > .chevron-accordion-heading {
    font-size: 1.125rem;
    font-weight: 500;
    background: none;
    padding-left: 0;
    padding-right: 0; }
  .chevron-accordion .accordion-navigation > .chevron-accordion-content {
    padding: 0;
    margin-bottom: 0.9375rem; }
  .chevron-accordion .accordion-navigation .chevron-accordion-icon-toggle {
    transition-duration: 0.25s;
    fill: #4B4B4C;
    height: 1rem; }
  .chevron-accordion .accordion-navigation.active .chevron-accordion-icon-toggle {
    transform: rotate(180deg); }

/*doc
---
title: Score Bar
name: a-score-bar
category: Data Patterns - Score Bar
authors: Pablo Lazo, William Ferguson
selectors:
  - .score-bar
---

Score bar for widgets.

| class                      | purpose                                    |
|----------------------------|--------------------------------------------|
| `score-bar`                | base class                                 |
| `rounded`                  | rounded corners                            |
| `thin/thinner/thick`       | changes the height                         |
| `handle`                   | handle toggle                              |
| `bg-white`                 | white background, outlined                 |
| `red`,`red-brick`,         | color the bar red                          |
| `yellow-light`,            | color the bar yellow                       |
| `green-sea-foam`,          | color the bar green                        |
| `green-pro`, `green-forest`|                                            |

``` html_example
<div class="score-bar thiner rounded handle block-normal">
    <div style="width: 46%"></div>
</div>

<div class="score-bar rounded handle block-normal">
    <div style="width: 50%"></div>
</div>

<div class="score-bar thin handle block-normal">
    <div style="width: 10%"></div>
</div>

<div class="score-bar rounded thick handle block-normal">
    <div style="width: 30%"></div>
</div>

<div class="score-bar block-normal">
    <div style="width: 80%"></div>
</div>

<div class="score-bar bg-white block-normal">
    <div style="width: 80%"></div>
</div>

<div class="score-bar bg-white red-brick block-normal">
    <div style="width: 10%"></div>
</div>
<div class="score-bar bg-white red block-normal">
    <div style="width: 20%"></div>
</div>
<div class="score-bar bg-white yellow-light block-normal">
    <div style="width: 40%"></div>
</div>
<div class="score-bar bg-white green-sea-foam block-normal">
    <div style="width: 50%"></div>
</div>
<div class="score-bar bg-white green-pro block-normal">
    <div style="width: 60%"></div>
</div>
<div class="score-bar bg-white green-forest block-normal">
    <div style="width: 70%"></div>
</div>

```
*/
.score-bar {
  height: 15px;
  background-color: #eeeeee; }
  .score-bar > div {
    height: inherit !important;
    background-color: #2262bb;
    position: relative; }
  .score-bar.rounded {
    border-radius: 15px; }
    .score-bar.rounded > div {
      border-top-left-radius: 7.5px;
      border-bottom-left-radius: 7.5px; }
    .score-bar.rounded.thin > div {
      border-top-left-radius: 3.75px;
      border-bottom-left-radius: 3.75px; }
    .score-bar.rounded.thiner > div {
      border-top-left-radius: 2.5px;
      border-bottom-left-radius: 2.5px; }
    .score-bar.rounded.thick > div {
      border-top-left-radius: 11.25px;
      border-bottom-left-radius: 11.25px; }
  .score-bar.thin {
    height: 7.5px; }
  .score-bar.thiner {
    height: 5px; }
  .score-bar.thick {
    height: 22.5px;
    border-top-left-radius: 11.25px;
    border-bottom-left-radius: 11.25px; }
  .score-bar.handle > div:after {
    content: '';
    display: inline-block;
    background: #fff;
    position: absolute;
    height: 18px;
    width: 18px;
    right: -9px;
    top: -1.5px;
    border: 3.75px solid #2262bb;
    border-radius: 15px; }
  .score-bar.handle.thin > div:after {
    height: 10.5px;
    width: 10.5px;
    right: -5.25px;
    top: -1.5px;
    border: 2.5px solid #2262bb;
    border-radius: 7.5px; }
  .score-bar.handle.thiner > div:after {
    height: 7px;
    width: 7px;
    right: -3.5px;
    top: -1px;
    border: 2.5px solid #2262bb;
    border-radius: 5px; }
  .score-bar.handle.thick > div:after {
    height: 27px;
    width: 27px;
    right: -13.5px;
    top: -2.25px;
    border: 5.625px solid #2262bb;
    border-radius: 22.5px; }
  .score-bar.bg-white {
    background-color: #FFFFFF;
    border: solid 0.0625rem #DDDDDD;
    overflow: hidden; }
  .score-bar.red-brick > div {
    background-color: #8d0c04; }
  .score-bar.red > div {
    background-color: #D1453D; }
  .score-bar.yellow-light > div {
    background-color: #fef6c8; }
  .score-bar.green-sea-foam > div {
    background-color: #ade8e0; }
  .score-bar.green-pro > div {
    background-color: #0ABBA4; }
  .score-bar.green-forest > div {
    background-color: #037b6b; }
  .score-bar.smoke > div {
    background-color: #eeeeee; }

.index {
  position: relative; }
  .index .index-item {
    margin-bottom: 0;
    display: block;
    font-weight: 300;
    padding: .25rem 0; }
    .index .index-item > a {
      display: inline-block; }
    @media (min-width: 0em) {
      .index .index-item {
        border-bottom: 1px solid #DDDDDD; } }
    @media (min-width: 40.0625em) {
      .index .index-item {
        border: none; } }
  .index .index-alpha.offset:before {
    display: block;
    content: " ";
    margin-top: -65px;
    height: 65px;
    visibility: hidden; }
  .index .index-alpha > div {
    padding: .25rem 0; }
  .index .index-items {
    margin-left: 0; }
    .index .index-items > li > a {
      margin-left: .625rem; }
    @media (min-width: 0em) {
      .index .index-items {
        margin-bottom: 0; } }
    @media (min-width: 40.0625em) {
      .index .index-items {
        margin-bottom: 0.9375rem !important; } }
  @media (min-width: 0em) {
    .index .index-sections {
      margin-right: .5rem; } }
  @media (min-width: 40.0625em) {
    .index .index-sections {
      margin-right: 0; } }
  .index .index-sidebar {
    width: 4rem;
    position: absolute;
    right: 0;
    top: 0;
    margin-right: -0.9375rem;
    text-align: right; }
    .index .index-sidebar.index-sticky {
      margin-right: 0;
      position: fixed; }
    .index .index-sidebar.index-bottom {
      top: initial;
      bottom: 0; }
    .index .index-sidebar a {
      display: block;
      height: 1rem; }
      .index .index-sidebar a span {
        text-align: center;
        width: 2rem;
        display: inline-block; }
      .index .index-sidebar a.touched span {
        visibility: hidden; }
  .index .index-target {
    font-size: 3rem;
    width: 3rem;
    position: fixed;
    display: none; }
    .index .index-target.active {
      display: initial; }
  .index .index-topbar a {
    width: 19px;
    border: 1px solid;
    display: inline-block;
    text-align: center;
    line-height: 1.2; }
    .index .index-topbar a.disabled {
      cursor: initial;
      border-color: transparent; }

/*doc
---
title: Maps (js)
name: js-maps
category: JavaScript - Utilities
authors: Pablo Lazo
---

Leaflet maps using MapQuest tiles.

| option        | purpose                                        | type    | default |
|---------------|------------------------------------------------|---------|---------|
| `zoom`        | zoom value, higher means closer. maximum of 18 | number  | 13      |
| `marker`      | display marker                                 | boolean | true    |
| `popup`       | html content for the marker popup              | string  | null    |
| `lat`         | center latitude                                | number  | null    |
| `lon`         | center longitude                               | number  | null    |
| `interactive` | map interactions with mouse/touch              | boolean | false   |
| `scroll-wheel`| scroll wheel zoom (interactive=false overrides this) | boolean | true    |

Set options when initializing the class by passing in an options object. See the JS example.
You can also set them in the element's `data-map-<option>` attributes. The example sets zoom this way.

```html_example_fixture
<div data-js-id="map" data-maps-zoom="16" data-maps-banana="plantain" style="height:300px;">

</div>

```

```js_example
USN.EventDispatcher.instance.dispatcher.trigger('summon:ui:maps', function(Map) {
    var el = document.querySelector('[data-js-id="map"');
    var options = {
        lat: 38.90347,
        lon: -77.060308,
        popup: '<img width="50px" src="/static/img/usn-logo-small.svg">',
    };
    var map = new Map(el, options);
});

```

*/
.leaflet-container {
  touch-action: initial !important;
  border: solid 1px #ddd; }
  .leaflet-container .leaflet-bottom, .leaflet-container .leaflet-top {
    z-index: 900; }

.leaflet-usn-tooltip {
  width: 150px; }
  .leaflet-usn-tooltip .leaflet-popup-content {
    margin: 0;
    width: 100% !important; }
    .leaflet-usn-tooltip .leaflet-popup-content p {
      margin: 0; }
    .leaflet-usn-tooltip .leaflet-popup-content > div:nth-child(1) {
      background: #efefef;
      padding: 6px; }
    .leaflet-usn-tooltip .leaflet-popup-content > div:nth-child(2) {
      background: #FFFFFF;
      padding: 6px; }
    .leaflet-usn-tooltip .leaflet-popup-content .tooltip-header {
      color: #2262bb; }
  .leaflet-usn-tooltip .leaflet-popup-content-wrapper {
    border-radius: 0; }
  .leaflet-usn-tooltip .leaflet-popup-tip-container {
    display: none; }

.map {
  height: 15rem; }
  @media (min-width: 40.0625em) {
    .map {
      height: 25rem; } }
  @media (min-width: 63.9375em) {
    .map {
      height: 30rem; } }
  .map.small {
    height: 10rem; }
    @media (min-width: 40.0625em) {
      .map.small {
        height: 15rem; } }
    @media (min-width: 63.9375em) {
      .map.small {
        height: 20rem; } }
  .map.large {
    height: 20rem; }
    @media (min-width: 40.0625em) {
      .map.large {
        height: 30rem; } }
    @media (min-width: 63.9375em) {
      .map.large {
        height: 40rem; } }

.map-manual-credit {
  background-color: rgba(255, 255, 255, 0.6);
  padding: 3px;
  position: absolute;
  right: 0;
  top: 0; }

/* High School Maps */
.leaflet-map-container {
  position: relative; }

#leaflet-map {
  height: 400px; }
  @media (min-width: 40.0625em) {
    #leaflet-map {
      height: 650px; } }

#leaflet-map-thumbnail {
  height: 205px; }
  @media (min-width: 40.0625em) {
    #leaflet-map-thumbnail {
      width: 305px; } }

.leaflet-map-thumbnail-container .leaflet-container,
.leaflet-map-thumbnail-container img.leaflet-marker-icon {
  cursor: pointer; }

.hs-popup__school-name {
  background-color: #ebebeb;
  padding: 3px 25px 3px 5px; }

.hs-popup__school-location {
  padding: 3px 5px; }

.hs-popup__school-rankings {
  padding: 3px 5px; }

.hs-popup__school-rankings__badge {
  vertical-align: top; }

.hs-popup__school-rankings__rank {
  vertical-align: top;
  padding: 0 5px; }

.hs-popup__school-rankings__category {
  vertical-align: top; }

.hs-popup__school-link {
  padding: 0 5px; }
  .hs-popup__school-link a:link {
    color: #2c7ef0; }
  .hs-popup__school-link a:hover, .hs-popup__school-link a:visited {
    color: #2262BB; }

.hs-legend {
  background-color: #fff;
  border: 1px solid #aaa;
  z-index: 500; }
  @media (min-width: 40.0625em) {
    .hs-legend {
      position: absolute;
      bottom: 7px;
      left: 7px; } }

.hs-legend__items {
  padding: 10px;
  margin: 0; }

.hs-legend__item:before {
  content: '';
  display: inline-block;
  height: 10px;
  width: 10px;
  border-radius: 5px;
  background-color: currentColor;
  margin-right: 5px; }

.hs-legend__item span {
  color: black; }

.usnews-leaflet .leaflet-popup-content-wrapper {
  border-radius: 0;
  background-color: #fff; }

.usnews-leaflet .leaflet-popup-content {
  margin: 0 0 5px; }

.usnews-leaflet .leaflet-popup-tip {
  background-color: #fff; }

.usnews-leaflet a.leaflet-popup-close-button {
  padding: 0; }

.usnews-leaflet.no-tip .leaflet-popup-tip-container {
  display: none; }

.leaflet-popup svg {
  position: initial !important; }

.usnews-leaflet.college-popup .leaflet-popup-content-wrapper {
  padding: 0px; }

.usnews-leaflet.college-popup .college-title {
  background: #efefef;
  padding: 3px 6px; }

.usnews-leaflet.college-popup .college-content {
  padding: 5px 6px; }

.map-container {
  position: relative; }
  .map-container .map-legend {
    background: #FFFFFF;
    border: 1px solid #CCC;
    bottom: 22px;
    padding: 8px;
    position: absolute;
    right: 10px;
    z-index: 999; }
    .map-container .map-legend .map-legend-color-indicator {
      background: red;
      border-radius: 100%;
      display: inline-block;
      line-height: 10px;
      width: 10px; }

.usnews-leaflet.info-popup .leaflet-popup-content-wrapper {
  padding: 0px; }

img.leaflet-marker-icon.circular-shadow {
  border-radius: 50%;
  box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.85); }

/*doc
---
title: Modal Map
name: modal-map
category: Modals - Maps
authors: Wes DiMiceli
---

{% set editor_id = uuid() %}

```nunjucks_tab?editor-id={{editor_id}}
{% macro mm(modalMap) %}
    {% include "templates/common/lib/ui/modal-map.nunj" %}
{% endmacro %}
{% call mm({
    "latitude": 38.90347,
    "longitude": -77.060308
}) %}
    <p>Some content beneath the map in the modal.</p>
{% endcall %}
```

*/
/*doc
---
title: Stat List
name: a-stat-list
category: Media Objects - Stat List Object
selectors:
    - .stat-list
selector_type: component
template:
    pros:
        - Heart healthy
        - Nutritionally sound
    cons:
        - Lots of grunt work
        - Somewhat pricey
    median_salary: 146340
    unemployment_rate: 0.9
    number_of_jobs: 23000
---

A builder for simple stat lists accompanied by an SVG icon.

| parameter            | purpose                                               |
|----------------------|-------------------------------------------------------|
| `header`             | Header text to render above the lists.                |

The macro renders the framework for the list and passes along a dictionary of column builders.  Simply call a builder to render a single list.

Example usage:

{% set editor_id = uuid() %}

```nunjucks_tab?editor-id={{editor_id}}

{% from "templates/common/list/stat-list.nunj" import statList %}

{% call(colBuilders) statList('Pros & Cons') %}
    {{ colBuilders.pro(headers=pros) }}
    {{ colBuilders.con(headers=cons) }}
{% endcall %}

{% call(colBuilders) statList('Quick Stats') %}
    {{ colBuilders.base(headers=[median_salary], icon='money', subheader='Median Salary') }}
    {{ colBuilders.base(headers=[unemployment_rate + '%'], icon='document', subheader='Unemployment Rate') }}
    {{ colBuilders.base(headers=[number_of_jobs], icon='briefcase', subheader='Number of Jobs') }}
{% endcall %}

```

Column Builders
---------------

**base**

The base column builder.  Other builders leverage this macro.

| parameter          | purpose                                                                             |
|--------------------|-------------------------------------------------------------------------------------|
| `headers`*         | Array of labels to render alongside the specified icon.                             |
| `icon`*            | ID of an SVG icon to display.                                                       |
| `iconClass`        | CSS class to apply to the SVG element.                                              |
| `cssClass`         | CSS class to apply to the enclosing list element.                                   |
| `subheader`        | Optional subheader which is rendered below the main label.                          |
| `collapseSmall`    | Boolean that specifies whether to render columns on medium down; defaults to true.  |
\* = required

<pre>
    colBuilders.base(headers=['Scales Header'], icon='scales')
    colBuilders.base(headers=['Lock Header'], icon='lock', iconClass='rotate-45')
    colBuilders.base(headers=['Bike Header'], icon='bike', subheader='Transportation Style')
</pre>

**pro & con**

Convenience builders that render green checks and red X's.  Pass a single list of headers:

<pre>
    colBuilders.pro(headers=['Pro 1', 'Pro 2', 'Pro 3'])
    colBuilders.con(headers=['Con 1', 'Con 2', 'Con 3'])
</pre>

Note that this builder will not collapse list rows into columns on small and medium.

*/
.stat-list svg {
  margin-right: 0;
  margin-top: -5px; }

.menu-component .badge {
  text-align: center; }

.mega-menu-container {
  z-index: 1500;
  position: absolute;
  left: 0;
  right: 0;
  display: none;
  -webkit-box-shadow: 0 0 0.3125rem 0 rgba(0, 0, 0, 0.5);
  -moz-box-shadow: 0 0 0.3125rem 0 rgba(0, 0, 0, 0.5);
  box-shadow: 0 0 0.3125rem 0 rgba(0, 0, 0, 0.5); }
  @media only screen and (min-width: 64em) {
    .mega-menu-container.js-mega-menu-active {
      display: block; } }
  .mega-menu-container .mega-menu {
    display: none; }
    @media only screen and (min-width: 64em) {
      .mega-menu-container .mega-menu.js-mega-menu-active {
        display: block; } }
    .mega-menu-container .mega-menu .rankings {
      background-image: linear-gradient(to right, #EFEFEF 50%, #FFFFFF 50%, #FFFFFF 100%); }
      .mega-menu-container .mega-menu .rankings .menu-component {
        border-left: 1px solid #DDD; }
      .mega-menu-container .mega-menu .rankings .menu-component:nth-child(1) {
        background-color: #EFEFEF;
        border: none; }
      .mega-menu-container .mega-menu .rankings .display-table-cell {
        display: table-cell; }
    .mega-menu-container .mega-menu .profile, .mega-menu-container .mega-menu .topic, .mega-menu-container .mega-menu .generic-panel {
      background-image: linear-gradient(to right, #FFFFFF 50%, #EFEFEF 50%, #EFEFEF 100%); }
      .mega-menu-container .mega-menu .profile .menu-component, .mega-menu-container .mega-menu .topic .menu-component, .mega-menu-container .mega-menu .generic-panel .menu-component {
        background-color: #EFEFEF; }
        .mega-menu-container .mega-menu .profile .menu-component.panel-width-wide, .mega-menu-container .mega-menu .topic .menu-component.panel-width-wide, .mega-menu-container .mega-menu .generic-panel .menu-component.panel-width-wide {
          flex-basis: 600px; }
        .mega-menu-container .mega-menu .profile .menu-component.panel-width-narrow, .mega-menu-container .mega-menu .topic .menu-component.panel-width-narrow, .mega-menu-container .mega-menu .generic-panel .menu-component.panel-width-narrow {
          flex-basis: 300px;
          flex-grow: 0; }
      .mega-menu-container .mega-menu .profile .menu-component:nth-child(1), .mega-menu-container .mega-menu .topic .menu-component:nth-child(1), .mega-menu-container .mega-menu .generic-panel .menu-component:nth-child(1) {
        background-color: #FFFFFF; }
    .mega-menu-container .mega-menu .programs {
      background-image: linear-gradient(to right, #FFFFFF 50%, #EFEFEF 50%, #EFEFEF 100%); }
      .mega-menu-container .mega-menu .programs .menu-component {
        background-color: #FFFFFF; }
      .mega-menu-container .mega-menu .programs .menu-component:last-child {
        background-color: #EFEFEF; }
    .mega-menu-container .mega-menu .sparkline .stock-sparkline {
      width: 350px; }
    .mega-menu-container .mega-menu .sparkline .stock-sparkline-panel {
      padding: 1.35rem 0.625rem; }
    .mega-menu-container .mega-menu .menu-component {
      background-color: #FFFFFF;
      padding-top: 30px; }
      .mega-menu-container .mega-menu .menu-component.flex-grow-2 {
        -webkit-box-flex: 2;
        -webkit-flex-grow: 2;
        -moz-flex-grow: 2;
        -ms-flex-positive: 2;
        flex-grow: 2; }

/*doc
---
title: CSS Columns
name: a-css-columns
category: Layout - CSS Columns
template:
    state_ranking_pages:
        -   name: Alabama
            url: /education/best-high-schools/alabama
        -   name: Alaska
            url: /education/best-high-schools/alaska
        -   name: Arizona
            url: /education/best-high-schools/arizona
        -   name: Arkansas
            url: /education/best-high-schools/arkansas
        -   name: California
            url: /education/best-high-schools/california
        -   name: Colorado
            url: /education/best-high-schools/colorado
        -   name: Connecticut
            url: /education/best-high-schools/connecticut
        -   name: D.C.
            url: /education/best-high-schools/district-of-columbia
        -   name: Delaware
            url: /education/best-high-schools/delaware
        -   name: Florida
            url: /education/best-high-schools/florida
        -   name: Georgia
            url: /education/best-high-schools/georgia
        -   name: Hawaii
            url: /education/best-high-schools/hawaii
        -   name: Idaho
            url: /education/best-high-schools/idaho
        -   name: Illinois
            url: /education/best-high-schools/illinois
        -   name: Indiana
            url: /education/best-high-schools/indiana
        -   name: Iowa
            url: /education/best-high-schools/iowa
        -   name: Kansas
            url: /education/best-high-schools/kansas
        -   name: Kentucky
            url: /education/best-high-schools/kentucky
        -   name: Louisiana
            url: /education/best-high-schools/louisiana
        -   name: Maine
            url: /education/best-high-schools/maine
        -   name: Maryland
            url: /education/best-high-schools/maryland
        -   name: Massachusetts
            url: /education/best-high-schools/massachusetts
        -   name: Michigan
            url: /education/best-high-schools/michigan
        -   name: Minnesota
            url: /education/best-high-schools/minnesota
        -   name: Mississippi
            url: /education/best-high-schools/mississippi
        -   name: Missouri
            url: /education/best-high-schools/missouri
        -   name: Montana
            url: /education/best-high-schools/montana
        -   name: Nebraska
            url: /education/best-high-schools/nebraska
        -   name: Nevada
            url: /education/best-high-schools/nevada
        -   name: New Hampshire
            url: /education/best-high-schools/new-hampshire
        -   name: New Jersey
            url: /education/best-high-schools/new-jersey
        -   name: New Mexico
            url: /education/best-high-schools/new-mexico
        -   name: New York
            url: /education/best-high-schools/new-york
        -   name: North Carolina
            url: /education/best-high-schools/north-carolina
        -   name: North Dakota
            url: /education/best-high-schools/north-dakota
        -   name: Ohio
            url: /education/best-high-schools/ohio
        -   name: Oklahoma
            url: /education/best-high-schools/oklahoma
        -   name: Oregon
            url: /education/best-high-schools/oregon
        -   name: Pennsylvania
            url: /education/best-high-schools/pennsylvania
        -   name: Rhode Island
            url: /education/best-high-schools/rhode-island
        -   name: South Carolina
            url: /education/best-high-schools/south-carolina
        -   name: South Dakota
            url: /education/best-high-schools/south-dakota
        -   name: Tennessee
            url: /education/best-high-schools/tennessee
        -   name: Texas
            url: /education/best-high-schools/texas
        -   name: Utah
            url: /education/best-high-schools/utah
        -   name: Vermont
            url: /education/best-high-schools/vermont
        -   name: Virginia
            url: /education/best-high-schools/virginia
        -   name: Washington
            url: /education/best-high-schools/washington
        -   name: West Virginia
            url: /education/best-high-schools/west-virginia
        -   name: Wisconsin
            url: /education/best-high-schools/wisconsin
        -   name: Wyoming
            url: /education/best-high-schools/wyoming
selectors:
    - .css-columns-1-small
    - .css-columns-1-small
    - .css-columns-2-small
    - .css-columns-2-small
    - .css-columns-3-small
    - .css-columns-3-small
    - .css-columns-4-small
    - .css-columns-4-small
    - .css-columns-1-small-only
    - .css-columns-1-small-only
    - .css-columns-2-small-only
    - .css-columns-2-small-only
    - .css-columns-3-small-only
    - .css-columns-3-small-only
    - .css-columns-4-small-only
    - .css-columns-4-small-only
    - .css-columns-1-medium
    - .css-columns-1-medium
    - .css-columns-2-medium
    - .css-columns-2-medium
    - .css-columns-3-medium
    - .css-columns-3-medium
    - .css-columns-4-medium
    - .css-columns-4-medium
    - .css-columns-1-medium-up
    - .css-columns-1-medium-up
    - .css-columns-2-medium-up
    - .css-columns-2-medium-up
    - .css-columns-3-medium-up
    - .css-columns-3-medium-up
    - .css-columns-4-medium-up
    - .css-columns-4-medium-up
    - .css-columns-1-medium-only
    - .css-columns-1-medium-only
    - .css-columns-2-medium-only
    - .css-columns-2-medium-only
    - .css-columns-3-medium-only
    - .css-columns-3-medium-only
    - .css-columns-4-medium-only
    - .css-columns-4-medium-only
    - .css-columns-1-large
    - .css-columns-1-large
    - .css-columns-2-large
    - .css-columns-2-large
    - .css-columns-3-large
    - .css-columns-3-large
    - .css-columns-4-large
    - .css-columns-4-large
    - .css-columns-1-large-up
    - .css-columns-1-large-up
    - .css-columns-2-large-up
    - .css-columns-2-large-up
    - .css-columns-3-large-up
    - .css-columns-3-large-up
    - .css-columns-4-large-up
    - .css-columns-4-large-up
---

Helper classes to force CSS column layouts from 1 to 4 columns at a variety
of breakpoints.

### Available breakpoints

| Breakpoint         | px
|--------------------|--------
| small              | 0+
| small-only         | 0 - 639
| medium             | 640+
| medium-only        | 640 - 1022
| large              | 1023+

### Constructing the class

Using our 3 default breakpoints and the vocabulary above, we were able to
create handy helper classes to satisfy most of our layout needs. The formula is thus:
`.css-columns-` + `[# of columns, 1-4]` + `breakpoint_variable`.

For example,
`.css-columns-4-large`
`.css-columns-3-medium-only`
`.css-columns-2-small`

#### Basic usage

Simply add one or more of the classes to the parent container in order to force column usage.
The column widths are generated automatically as a percentage of the container.
The following example employs three columns at the large breakpoint, two columns
at the medium breakpoint, and none below that (i.e. the default single column).

This css is helpful when you want to flow an arbitrary number of list items 
to keep them vertically oriented (not float them).

```html_example

<ul class="no-bullet text-strong css-columns-4-medium">
    {% for state in state_ranking_pages %}
        <li class="pad-normal"><a href="{{ state.url }}">{{ state.name }}</a></li>
    {% endfor %}
</ul>
```
*/
@media only screen {
  .css-columns-1-small {
    -webkit-column-count: 1;
    -moz-column-count: 1;
    column-count: 1; }
    .css-columns-1-small > * {
      -webkit-column-break-inside: avoid;
      page-break-inside: avoid;
      break-inside: avoid; } }

@media only screen {
  .css-columns-2-small {
    -webkit-column-count: 2;
    -moz-column-count: 2;
    column-count: 2; }
    .css-columns-2-small > * {
      -webkit-column-break-inside: avoid;
      page-break-inside: avoid;
      break-inside: avoid; } }

@media only screen {
  .css-columns-3-small {
    -webkit-column-count: 3;
    -moz-column-count: 3;
    column-count: 3; }
    .css-columns-3-small > * {
      -webkit-column-break-inside: avoid;
      page-break-inside: avoid;
      break-inside: avoid; } }

@media only screen {
  .css-columns-4-small {
    -webkit-column-count: 4;
    -moz-column-count: 4;
    column-count: 4; }
    .css-columns-4-small > * {
      -webkit-column-break-inside: avoid;
      page-break-inside: avoid;
      break-inside: avoid; } }

@media only screen and (max-width: 40em) {
  .css-columns-1-small-only {
    -webkit-column-count: 1;
    -moz-column-count: 1;
    column-count: 1; }
    .css-columns-1-small-only > * {
      -webkit-column-break-inside: avoid;
      page-break-inside: avoid;
      break-inside: avoid; } }

@media only screen and (max-width: 40em) {
  .css-columns-2-small-only {
    -webkit-column-count: 2;
    -moz-column-count: 2;
    column-count: 2; }
    .css-columns-2-small-only > * {
      -webkit-column-break-inside: avoid;
      page-break-inside: avoid;
      break-inside: avoid; } }

@media only screen and (max-width: 40em) {
  .css-columns-3-small-only {
    -webkit-column-count: 3;
    -moz-column-count: 3;
    column-count: 3; }
    .css-columns-3-small-only > * {
      -webkit-column-break-inside: avoid;
      page-break-inside: avoid;
      break-inside: avoid; } }

@media only screen and (max-width: 40em) {
  .css-columns-4-small-only {
    -webkit-column-count: 4;
    -moz-column-count: 4;
    column-count: 4; }
    .css-columns-4-small-only > * {
      -webkit-column-break-inside: avoid;
      page-break-inside: avoid;
      break-inside: avoid; } }

@media only screen and (min-width: 40.0625em) {
  .css-columns-1-medium {
    -webkit-column-count: 1;
    -moz-column-count: 1;
    column-count: 1; }
    .css-columns-1-medium > * {
      -webkit-column-break-inside: avoid;
      page-break-inside: avoid;
      break-inside: avoid; } }

@media only screen and (min-width: 40.0625em) {
  .css-columns-2-medium {
    -webkit-column-count: 2;
    -moz-column-count: 2;
    column-count: 2; }
    .css-columns-2-medium > * {
      -webkit-column-break-inside: avoid;
      page-break-inside: avoid;
      break-inside: avoid; } }

@media only screen and (min-width: 40.0625em) {
  .css-columns-3-medium {
    -webkit-column-count: 3;
    -moz-column-count: 3;
    column-count: 3; }
    .css-columns-3-medium > * {
      -webkit-column-break-inside: avoid;
      page-break-inside: avoid;
      break-inside: avoid; } }

@media only screen and (min-width: 40.0625em) {
  .css-columns-4-medium {
    -webkit-column-count: 4;
    -moz-column-count: 4;
    column-count: 4; }
    .css-columns-4-medium > * {
      -webkit-column-break-inside: avoid;
      page-break-inside: avoid;
      break-inside: avoid; } }

@media only screen and (min-width: 40.0625em) {
  .css-columns-1-medium-up {
    -webkit-column-count: 1;
    -moz-column-count: 1;
    column-count: 1; }
    .css-columns-1-medium-up > * {
      -webkit-column-break-inside: avoid;
      page-break-inside: avoid;
      break-inside: avoid; } }

@media only screen and (min-width: 40.0625em) {
  .css-columns-2-medium-up {
    -webkit-column-count: 2;
    -moz-column-count: 2;
    column-count: 2; }
    .css-columns-2-medium-up > * {
      -webkit-column-break-inside: avoid;
      page-break-inside: avoid;
      break-inside: avoid; } }

@media only screen and (min-width: 40.0625em) {
  .css-columns-3-medium-up {
    -webkit-column-count: 3;
    -moz-column-count: 3;
    column-count: 3; }
    .css-columns-3-medium-up > * {
      -webkit-column-break-inside: avoid;
      page-break-inside: avoid;
      break-inside: avoid; } }

@media only screen and (min-width: 40.0625em) {
  .css-columns-4-medium-up {
    -webkit-column-count: 4;
    -moz-column-count: 4;
    column-count: 4; }
    .css-columns-4-medium-up > * {
      -webkit-column-break-inside: avoid;
      page-break-inside: avoid;
      break-inside: avoid; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .css-columns-1-medium-only {
    -webkit-column-count: 1;
    -moz-column-count: 1;
    column-count: 1; }
    .css-columns-1-medium-only > * {
      -webkit-column-break-inside: avoid;
      page-break-inside: avoid;
      break-inside: avoid; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .css-columns-2-medium-only {
    -webkit-column-count: 2;
    -moz-column-count: 2;
    column-count: 2; }
    .css-columns-2-medium-only > * {
      -webkit-column-break-inside: avoid;
      page-break-inside: avoid;
      break-inside: avoid; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .css-columns-3-medium-only {
    -webkit-column-count: 3;
    -moz-column-count: 3;
    column-count: 3; }
    .css-columns-3-medium-only > * {
      -webkit-column-break-inside: avoid;
      page-break-inside: avoid;
      break-inside: avoid; } }

@media only screen and (min-width: 40.0625em) and (max-width: 63.9375em) {
  .css-columns-4-medium-only {
    -webkit-column-count: 4;
    -moz-column-count: 4;
    column-count: 4; }
    .css-columns-4-medium-only > * {
      -webkit-column-break-inside: avoid;
      page-break-inside: avoid;
      break-inside: avoid; } }

@media only screen and (min-width: 64em) {
  .css-columns-1-large {
    -webkit-column-count: 1;
    -moz-column-count: 1;
    column-count: 1; }
    .css-columns-1-large > * {
      -webkit-column-break-inside: avoid;
      page-break-inside: avoid;
      break-inside: avoid; } }

@media only screen and (min-width: 64em) {
  .css-columns-2-large {
    -webkit-column-count: 2;
    -moz-column-count: 2;
    column-count: 2; }
    .css-columns-2-large > * {
      -webkit-column-break-inside: avoid;
      page-break-inside: avoid;
      break-inside: avoid; } }

@media only screen and (min-width: 64em) {
  .css-columns-3-large {
    -webkit-column-count: 3;
    -moz-column-count: 3;
    column-count: 3; }
    .css-columns-3-large > * {
      -webkit-column-break-inside: avoid;
      page-break-inside: avoid;
      break-inside: avoid; } }

@media only screen and (min-width: 64em) {
  .css-columns-4-large {
    -webkit-column-count: 4;
    -moz-column-count: 4;
    column-count: 4; }
    .css-columns-4-large > * {
      -webkit-column-break-inside: avoid;
      page-break-inside: avoid;
      break-inside: avoid; } }

@media only screen and (min-width: 64em) {
  .css-columns-1-large-up {
    -webkit-column-count: 1;
    -moz-column-count: 1;
    column-count: 1; }
    .css-columns-1-large-up > * {
      -webkit-column-break-inside: avoid;
      page-break-inside: avoid;
      break-inside: avoid; } }

@media only screen and (min-width: 64em) {
  .css-columns-2-large-up {
    -webkit-column-count: 2;
    -moz-column-count: 2;
    column-count: 2; }
    .css-columns-2-large-up > * {
      -webkit-column-break-inside: avoid;
      page-break-inside: avoid;
      break-inside: avoid; } }

@media only screen and (min-width: 64em) {
  .css-columns-3-large-up {
    -webkit-column-count: 3;
    -moz-column-count: 3;
    column-count: 3; }
    .css-columns-3-large-up > * {
      -webkit-column-break-inside: avoid;
      page-break-inside: avoid;
      break-inside: avoid; } }

@media only screen and (min-width: 64em) {
  .css-columns-4-large-up {
    -webkit-column-count: 4;
    -moz-column-count: 4;
    column-count: 4; }
    .css-columns-4-large-up > * {
      -webkit-column-break-inside: avoid;
      page-break-inside: avoid;
      break-inside: avoid; } }

/*doc
---
title: Tabs
name: a-tabs
category: Layout - Tabs
---

Uses the tab structure built into Zurb.

#### Basic usage

Use the default Zurb structure, then add `.chart-tabs` to the parent `.tabs` container to
kick in these overriding styles.

```html_example
<ul class="tabs chart-tabs" data-tab>
    <li class="tab-title active"><a href="#panel-1">Panel 1</a></li>
    <li class="tab-title"><a href="#panel-2">Panel 2</a></li>
</ul>

<div class="tabs-content block-loose">
    <div class="content active" id="panel-1">
        <img src="http://placehold.it/650x370/F0F0F0/3F62B7/?text=panel%201" style="width: 100%;">
    </div>

    <div class="content" id="panel-2">
        <img src="http://placehold.it/650x370/F0F0F0/3F62B7/?text=panel%202" style="width: 100%;">
    </div>
</div>
```
*/
.tabs.chart-tabs {
  position: relative; }
  .tabs.chart-tabs:before {
    background-color: #ddd;
    bottom: 0;
    content: '';
    height: 2px;
    left: 0;
    position: absolute;
    width: 100%; }
  .tabs.chart-tabs .tab-title:focus {
    outline: none; }
  .tabs.chart-tabs .tab-title > a {
    background-color: transparent;
    border-bottom: 2px solid;
    border-color: #ddd;
    color: #2c7ef0;
    font-weight: 400;
    padding: 8px 0;
    margin-right: 24px; }
  .tabs.chart-tabs .tab-title > a:focus {
    outline: none; }
  .tabs.chart-tabs .tab-title > a:hover {
    background-color: transparent; }
  .tabs.chart-tabs .tab-title.active > a {
    border-color: #2c7ef0;
    background-color: transparent;
    color: #999; }

/* Adding the .flex-friendlify class to elements with .chart-tabs
   allows us to use flex grids for positioning the tabs, while still
   playing nicely with the :before and :after pseudoselector styling.

   Without this, flex grids do not respect the `justify-content`
   attribute due to the default absolute positioning on the :before
   pseduoselector for .chart-tabs.
*/
.tabs.chart-tabs.flex-friendlify-tabs:before {
  display: none; }

.tabs.chart-tabs.flex-friendlify-tabs:after {
  display: flex;
  background-color: #DDDDDD;
  position: relative;
  bottom: 2px;
  height: 2px;
  width: 100%;
  z-index: -1; }

.joyride-tip-guide.usn-stop {
  background: #10294B; }
  .joyride-tip-guide.usn-stop .button {
    margin-top: 1rem; }
  .joyride-tip-guide.usn-stop .joyride-nub.left {
    border-right-color: #10294B !important; }
  .joyride-tip-guide.usn-stop .joyride-nub.right {
    border-left-color: #10294B !important; }
  .joyride-tip-guide.usn-stop .joyride-nub.bottom {
    border-top-color: #10294B !important; }
  .joyride-tip-guide.usn-stop .joyride-nub.top {
    border-bottom-color: #10294B !important; }

[data-abide] .error small.error,
[data-abide] .error span.error,
[data-abide] span.error,
[data-abide] small.error {
  background: none;
  margin-top: 0;
  color: #D1453D;
  text-transform: none; }

[data-abide] input[data-invalid], [data-abide] select[data-invalid], textarea[data-invalid] {
  border-color: #D1453D;
  background-color: rgba(209, 69, 61, 0.1); }

[data-abide] .error label {
  color: #D1453D; }

.fade-enter, .fade-appear {
  opacity: 0.01; }

.fade-enter.fade-enter-active {
  opacity: 1;
  transition: opacity 500ms ease-in; }

.fade-appear.fade-appear-active {
  opacity: 1;
  transition: opacity .5s ease-in; }

.fade-leave {
  opacity: 1; }

.fade-leave.fade-leave-active {
  opacity: 0.01;
  transition: opacity 300ms ease-in; }

.paladin-widget {
  box-shadow: 0px 0px 8px #ccc;
  border-radius: 3px; }
  .paladin-widget .paladin-widget-header {
    background: #3163AF;
    border-radius: 3px 3px 0px 0px;
    padding: 10px 15px;
    color: white; }
  .paladin-widget .paladin-widget-body {
    padding: 15px; }

.rail-toc {
  border-left: 2px solid #ddd;
  overflow: visible; }
  .rail-toc.sub-nav-links {
    display: block; }
    .rail-toc.sub-nav-links li {
      display: block;
      height: auto;
      line-height: 24px;
      margin-bottom: 20px;
      margin-right: 0; }
      .rail-toc.sub-nav-links li:last-child {
        margin-bottom: 0px; }
      .rail-toc.sub-nav-links li > * {
        color: #333333;
        display: table-cell;
        padding-left: 20px;
        white-space: normal; }
      .rail-toc.sub-nav-links li.active {
        border-bottom: none;
        position: relative;
        left: -2px; }
        .rail-toc.sub-nav-links li.active > * {
          color: #1961b7;
          border-left: 2px solid #1961b7; }

.high-school-compass-promo {
  height: auto;
  min-height: 0;
  margin: 30px auto;
  border-top-width: medium;
  border-top-color: #d1453d; }
  @media (min-width: 63.9375em) {
    .high-school-compass-promo {
      max-width: 60.625rem; } }
  .high-school-compass-promo .compass-promo-img-norm {
    max-width: 200px;
    min-width: 100px;
    width: 25%;
    margin-left: 15px;
    margin-top: 5px; }
  .high-school-compass-promo .compass-promo-img-small {
    margin: 0 auto;
    width: 25%; }

.colleges-regions-map > svg a:hover path {
  stroke-width: 1.3; }

.colleges-regions-map > svg g.faded {
  fill-opacity: .6; }

.colleges-regions-map > span.map-tooltip {
  position: absolute;
  z-index: 1000;
  font-size: 1.2rem;
  padding: .2rem .5rem;
  background: gainsboro;
  display: none;
  pointer-events: none; }

#header-login-desktop > a {
  color: #fff; }
  #header-login-desktop > a.welcome::after {
    display: inline-block;
    vertical-align: middle;
    margin-left: 4px;
    content: "";
    width: 0;
    height: 0;
    border-left: 3px solid transparent;
    border-right: 3px solid transparent;
    border-top: 4px solid #fff; }
  #header-login-desktop > a.unauth-dropdown.welcome::after {
    margin-left: 0px; }
  #header-login-desktop > a.welcome span {
    border: 2px solid #fff;
    border-radius: 20px;
    padding: 3px;
    text-transform: capitalize;
    height: 1.3125rem;
    width: 1.3125rem;
    display: inline-block;
    vertical-align: middle;
    text-align: center;
    line-height: 0.8125rem;
    font-size: 0.75rem;
    font-weight: 600; }

#header-login-desktop .login-dropdown {
  width: auto;
  min-width: 120px;
  z-index: 1000;
  background: white;
  left: auto !important;
  right: 44px !important;
  margin-top: 10px; }
  #header-login-desktop .login-dropdown li:hover {
    background: transparent; }
  #header-login-desktop .login-dropdown li > span {
    cursor: default;
    display: block;
    padding: 0.5rem; }
  #header-login-desktop .login-dropdown li > a {
    color: #999999; }
    #header-login-desktop .login-dropdown li > a:hover {
      color: #2c7ef0; }
  #header-login-desktop .login-dropdown::before, #header-login-desktop .login-dropdown::after {
    display: none; }

.data-dictionary-field.border-bottom {
  transition: border-bottom-color 0.3s; }
  .data-dictionary-field.border-bottom:hover {
    border-bottom-color: #aaa !important;
    transition: border-bottom-color 0.1s; }

.data-dictionary-field .compass-unlock-hover {
  position: relative; }
  .data-dictionary-field .compass-unlock-hover:hover {
    /* overlay any content to the left of element with "unlock" label on hover */ }
    .data-dictionary-field .compass-unlock-hover:hover::before {
      content: 'Unlock with Compass';
      color: #2c7ef0;
      white-space: nowrap;
      background-color: inherit;
      position: absolute;
      right: calc(100%);
      top: 50%;
      transform: translateY(-50%);
      padding-left: 0.5rem;
      padding-right: 0.5rem; }
    .data-dictionary-field .compass-unlock-hover:hover .icon {
      fill: #2c7ef0; }

/*doc
---
title: Locked
name: a-locked
category: Data Patterns - Data Dictionary Fields
authors: Tommy Marshall, Jon Lewis
template:
    is_premium_user: false
    field_id: vAdmittedPolicy
    fields_metadata:
        vAdmittedPolicy:
            ddbFieldType: textline
            dataQaId: v_admitted_policy
            isPublic: false
            label: Deadline for accepting admission offers
            fieldName: vAdmittedPolicy
            fieldType: textline
            primaryKey: vAdmittedPolicy
            displayOrder: 3
    fields_data:
        vAdmittedPolicy:
            rawValue: Must reply by may 1 or within 3 weeks if notified thereafter
            dataQaId: V_ADMITTED_POLICY
            noteText: Thanks, Obama
            fieldName: vAdmittedPolicy
            fieldType: 
            displayValue: Must reply by may 1 or within 3 weeks if notified thereafter
            noteCharacter: "*"
---

```html_example

{% from 'templates/common/data-dictionary/fields/_field.nunj' import field %}

<div class="flex-row">
    <div class="flex-large-9">
        <div class="border" style="padding: 1rem;">
            {{ field(field_id, fields_metadata, fields_data, is_premium_user) }}
        </div>
    </div>
</div>
```

*/
/*doc
---
title: Text Line
name: b-text-line
category: Data Patterns - Data Dictionary Fields
authors: Tommy Marshall, Jon Lewis
template:
    field_id: vAdmittedPolicy
    fields_metadata:
        vAdmittedPolicy:
            isPublic: true
            ddbFieldType: textline
            dataQaId: v_admitted_policy
            label: Deadline for accepting admission offers
            fieldName: vAdmittedPolicy
            fieldType: textline
            primaryKey: vAdmittedPolicy
            displayOrder: 3
    fields_data:
        vAdmittedPolicy:
            rawValue: Must reply by may 1 or within 3 weeks if notified thereafter
            dataQaId: V_ADMITTED_POLICY
            noteText: Thanks, Obama
            fieldName: vAdmittedPolicy
            fieldType: 
            displayValue: Must reply by may 1 or within 3 weeks if notified thereafter
            noteCharacter: "*"
---

```html_example

{% from 'templates/common/data-dictionary/fields/_field.nunj' import field %}

<div class="flex-row">
    <div class="flex-large-9">
        <div class="border" style="padding: 1rem;">
            {{ field(field_id, fields_metadata, fields_data, is_premium_user) }}
        </div>
    </div>
</div>
```

*/
/*doc
---
title: Long Text
name: c-long-text
category: Data Patterns - Data Dictionary Fields
authors: Tommy Marshall, Jon Lewis
template:
    fields_metadata:
        museums:
            isPublic: true
            fieldType: long-text
            label: Museum Facilities
            fieldName: museums
            maxLength: 
        missionAndQualities:
            isPublic: true
            fieldType: long-text
            label: School Mission and Unique Qualities
            subLabel: information provided by school
            fieldName: missionAndQualities
            maxLength: 170
    fields_data:
        museums:
            fieldType: long-text
            displayValue: Mollis nisl suscipit vivamus curabitur arcu sit ut a ut, himenaeos
                dui lacus fermentum faucibus condimentum conubia fringilla, quisque scelerisque
                ipsum pretium faucibus fames facilisis orci maecenas ad mattis curabitur
                tristique tempus ultricies vivamus imperdiet tempus ac, gravida massa himenaeos
                varius vestibulum velit ornare lobortis leo euismod morbi, feugiat integer
                id volutpat odio taciti platea pellentesque cras consectetur dui mollis
                erat gravida quisque.
            noteCharacter: "*"
            noteText: Thanks, Obama
        missionAndQualities:
            fieldType: long-text
            displayValue: Rutrum erat class id tellus integer tristique hendrerit malesuada,
                commodo aliquet nisi maecenas eu turpis eleifend justo curabitur, nisi quisque
                praesent duis nullam posuere ullamcorper urna eu primis tellus platea odio
                neque, ultrices cubilia aptent nisl quisque nam sapien, dapibus ligula sit
                quisque morbi purus aenean taciti justo aenean porttitor scelerisque pellentesque
                venenatis, netus pharetra sit nam arcu aliquam sodales euismod condimentum,
                dui viverra blandit vitae himenaeos aliquam laoreet lectus aenean habitasse
                consectetur nunc eros ipsum etiam, nullam id turpis sociosqu lobortis aliquet
                convallis vestibulum, aliquam per habitasse nec nibh dictum.
---

```html_example

{% from 'templates/common/data-dictionary/fields/_field.nunj' import field %}

<div class="flex-row">
    <div class="flex-large-9" style="padding: 1rem;">
        <div class="border" style="padding: 1rem;">
            {{ field('museums', fields_metadata, fields_data, is_premium_user) }}
        </div>
    </div>
</div>

<div class="flex-row">
    <div class="flex-large-9" style="padding: 1rem;">
        <div class="border" style="padding: 1rem;">
            {{ field('missionAndQualities', fields_metadata, fields_data, is_premium_user) }}
        </div>
    </div>
</div>
```

*/
/*doc
---
title: List
name: d-list
category: Data Patterns - Data Dictionary Fields
authors: Tommy Marshall, Jon Lewis
template:
    fields_metadata:
        graSchSelListCon:
            ddbFieldType: delimited_field
            dataQaId: gra_sch_sel_list_con
            isPublic: true
            precision: 
            label: Graduate schools most often attended by recent graduates
            delimiter: ";"
            fieldGroupType: 
            fieldName: graSchSelListCon
            fieldType: list
            primaryKey: graSchSelListCon
            displayOrder: '12'
            iconLink:
            maxCols: 2
    fields_data:
        graSchSelListCon:
            rawValue: American University (DC);Arizona State University--Tempe (AZ);Boston University
              (MA);Columbia University (NY);Creighton University (NE);Emory University (GA);Georgetown
              University (DC);Johns Hopkins University (MD);Loyola University Chicago (IL);Marquette
              University (WI);Northwestern University (IL);Pennsylvania State University--Harrisburg
              (PA);Purdue University--West Lafayette (IN);Saint Louis University (MO);Stanford
              University (CA);University of California--Berkeley (CA);University of Maryland--Baltimore
              (MD);University of Nebraska Medical Center (NE);Villanova University (PA);Virginia
              Tech (VA)
            dataQaId: GRA_SCH_SEL_LIST_CON
            anchorPage: 
            anchorLocation: 
            noteText: You will likely attend all of these schools afterwards
            fieldName: graSchSelListCon
            fieldType: 
            displayValue:
            - American University (DC)
            - Arizona State University--Tempe (AZ)
            - Boston University (MA)
            - Columbia University (NY)
            - Creighton University (NE)
            - Emory University (GA)
            - Georgetown University (DC)
            - Johns Hopkins University (MD)
            - Loyola University Chicago (IL)
            - Marquette University (WI)
            - Northwestern University (IL)
            - Pennsylvania State University--Harrisburg (PA)
            - Purdue University--West Lafayette (IN)
            - Saint Louis University (MO)
            - Stanford University (CA)
            - University of California--Berkeley (CA)
            - University of Maryland--Baltimore (MD)
            - University of Nebraska Medical Center (NE)
            - Villanova University (PA)
            - Virginia Tech (VA)
            noteCharacter: "*"
---

```html_example

{% from 'templates/common/data-dictionary/fields/_field.nunj' import field %}

<div class="flex-row">
    <div class="flex-large-9">
        <div class="border" style="padding: 1rem;">
            {{ field('graSchSelListCon', fields_metadata, fields_data, is_premium_user) }}
        </div>
    </div>
</div>
```

*/
/*doc
---
title: Table
name: e-table
category: Data Patterns - Data Dictionary Fields
authors: Tommy Marshall, Jon Lewis
template:
    fields_metadata:
        gArrestNoncampus:
            columnHeaders:
            - noteText: This is text for note 3
              noteCharacter: '3'
              label: Arrests -- Noncampus Building or Property
            - noteText: 
              noteCharacter: 
              label: "2013"
            - noteText: 
              noteCharacter: 
              label: "2014"
            - noteText: 
              noteCharacter: 
              label: "2015"
            dataQaId: v_arrest_noncampus
            isPublic: true
            label: Arrests Noncampus
            fieldGroupType: table
            fieldName: g_arrest_noncampus
            fieldType: field-group
            subFields:
            - fields:
              - weaponPy3Noncampus
              - weaponPy2Noncampus
              - weaponPy1Noncampus
              label: Illegal weapons possession
            - fields:
              - drugPy3Noncampus
              - drugPy2Noncampus
              - drugPy1Noncampus
              label: Drug law violations
            - fields:
              - liquorPy3Noncampus
              - liquorPy2Noncampus
              - liquorPy1Noncampus
              label: Liquor law violations
            primaryKey: gArrestNoncampus
            displayOrder: 0
        weaponPy3Noncampus:
            ddbFieldType: int
            dataQaId: weapon_py3_noncampus
            isPublic: false
            precision: 
            label: " "
            delimiter: ''
            fieldGroupType: 
            fieldName: weaponPy3Noncampus
            fieldType: numeric
            primaryKey: weaponPy3Noncampus
            displayOrder: ''
            iconLink: 
        weaponPy2Noncampus:
            ddbFieldType: int
            dataQaId: weapon_py2_noncampus
            isPublic: false
            precision: 
            label: " "
            delimiter: ''
            fieldGroupType: 
            fieldName: weaponPy2Noncampus
            fieldType: numeric
            primaryKey: weaponPy2Noncampus
            displayOrder: ''
            iconLink: 
        weaponPy1Noncampus:
            ddbFieldType: int
            dataQaId: weapon_py1_noncampus
            isPublic: false
            precision: 
            label: " "
            delimiter: ''
            fieldGroupType: 
            fieldName: weaponPy1Noncampus
            fieldType: numeric
            primaryKey: weaponPy1Noncampus
            displayOrder: ''
            iconLink: 
        liquorPy3Noncampus:
            ddbFieldType: int
            dataQaId: liquor_py3_noncampus
            isPublic: false
            precision: 
            label: " "
            delimiter: ''
            fieldGroupType: 
            fieldName: liquorPy3Noncampus
            fieldType: numeric
            primaryKey: liquorPy3Noncampus
            displayOrder: ''
            iconLink: 
        liquorPy2Noncampus:
            ddbFieldType: int
            dataQaId: liquor_py2_noncampus
            isPublic: false
            precision: 
            label: " "
            delimiter: ''
            fieldGroupType: 
            fieldName: liquorPy2Noncampus
            fieldType: numeric
            primaryKey: liquorPy2Noncampus
            displayOrder: ''
            iconLink: 
        liquorPy1Noncampus:
            ddbFieldType: int
            dataQaId: liquor_py1_noncampus
            isPublic: false
            precision: 
            label: " "
            delimiter: ''
            fieldGroupType: 
            fieldName: liquorPy1Noncampus
            fieldType: numeric
            primaryKey: liquorPy1Noncampus
            displayOrder: ''
            iconLink: 
    fields_data:
        weaponPy3Noncampus:
            rawValue: 
            dataQaId: WEAPON_PY3_NONCAMPUS
            anchorPage: 
            anchorLocation: 
            noteText: 
            fieldName: weaponPy3Noncampus
            fieldType: 
            displayValue: N/A
            noteCharacter: 
        weaponPy2Noncampus:
            rawValue: 0
            dataQaId: WEAPON_PY2_NONCAMPUS
            anchorPage: 
            anchorLocation: 
            noteText: 
            fieldName: weaponPy2Noncampus
            fieldType: 
            displayValue: '0'
            noteCharacter: 
        weaponPy1Noncampus:
            rawValue: 0
            dataQaId: WEAPON_PY1_NONCAMPUS
            anchorPage: 
            anchorLocation: 
            noteText: 
            fieldName: weaponPy1Noncampus
            fieldType: 
            displayValue: '0'
            noteCharacter: 
        liquorPy3Noncampus:
            rawValue: 
            dataQaId: LIQUOR_PY3_NONCAMPUS
            anchorPage: 
            anchorLocation: 
            noteText: 
            fieldName: liquorPy3Noncampus
            fieldType: 
            displayValue: N/A
            noteCharacter: 
        liquorPy2Noncampus:
            rawValue: 0
            dataQaId: LIQUOR_PY2_NONCAMPUS
            anchorPage: 
            anchorLocation: 
            noteText: 
            fieldName: liquorPy2Noncampus
            fieldType: 
            displayValue: '0'
            noteCharacter: 
        liquorPy1Noncampus:
            rawValue: 0
            dataQaId: LIQUOR_PY1_NONCAMPUS
            anchorPage: 
            anchorLocation: 
            noteText: 
            fieldName: liquorPy1Noncampus
            fieldType: 
            displayValue: '0'
            noteCharacter: 
---

```html_example

{% from 'templates/common/data-dictionary/fields/_field.nunj' import field %}

<div class="flex-row">
    <div class="flex-large-9">
        <div class="border" style="padding: 1rem;">
            {{ field('gArrestNoncampus', fields_metadata, fields_data) }}
        </div>
    </div>
</div>
```

*/
/*doc
---
title: Demographic Chart
name: f-demographic-chart
category: Data Patterns - Data Dictionary Fields
authors: Tommy Marshall, Jon Lewis
template:
    is_premium_user: true
    field_id: undergradGenderDistribution
    fields_metadata:
        undergradGenderDistribution:
            fieldType: demographic-chart
            fieldGroupType: demographic-distribution-chart
            fieldName: undergradGenderDistribution
            label: Gender Distribution
            subFields:
                male:
                    label: of students are male
                    icon: "/static/sprites/svg/sprite.symbol.svg#people-male"
                    fieldName: undergradPctMale
                female:
                    label: of students are female
                    icon: "/static/sprites/svg/sprite.symbol.svg#people-female"
                    fieldName: undergradPctFemale
    fields_data:
        undergradPctMale:
            fieldType: percentage
            label: percent undergraduates who are male
            subLabel: 
            rawValue: 44.6
            displayValue: 44.6%
        undergradPctFemale:
            fieldType: percentage
            label: percent undergraduates who are female
            subLabel: 
            rawValue: 55.4
            displayValue: 55.4%
---

```html_example

{% from 'templates/common/data-dictionary/fields/_field.nunj' import field %}

<div class="flex-row">
    <div class="flex-large-9">
        <div class="border" style="padding: 1rem;">
            {{ field(field_id, fields_metadata, fields_data, is_premium_user) }}
        </div>
    </div>
</div>
```

*/
/*doc
---
title: Pie Chart
name: pie-chart
category: Data Patterns - Data Dictionary Fields
authors: Jon Lewis
template:
    fields_metadata:
        gFtFacultyGenderDist:
            ddbFieldType: field_group
            dataQaId: g_ft_faculty_gender_dist
            isPublic: true
            label: Full-time faculty gender distribution
            fieldGroupType: pie-chart
            fieldName: gFtFacultyGenderDist
            fieldType: field-group
            subFields:
            - color: "#2b80f0"
              field: wPctFtFacMen
              label: Male
            - color: "#10294a"
              field: wPctFtFacWomen
              label: Female
            primaryKey: gFtFacultyGenderDist
            displayOrder: '4'
        wPctFtFacWomen:
            ddbFieldType: std_percentage
            dataQaId: w_pct_ft_fac_women
            isPublic: false
            precision: 0
            label: Female
            delimiter: ''
            fieldGroupType: 
            fieldName: wPctFtFacWomen
            fieldType: numeric
            primaryKey: wPctFtFacWomen
            displayOrder: ''
            iconLink: 
        wPctFtFacMen:
            ddbFieldType: std_percentage
            dataQaId: w_pct_ft_fac_men
            isPublic: false
            precision: 0
            label: Male
            delimiter: ''
            fieldGroupType: 
            fieldName: wPctFtFacMen
            fieldType: numeric
            primaryKey: wPctFtFacMen
            displayOrder: ''
            iconLink: 
    fields_data:
        wPctFtFacWomen:
            rawValue: 31
            dataQaId: W_PCT_FT_FAC_WOMEN
            anchorPage: 
            anchorLocation: 
            noteText: 
            fieldName: wPctFtFacWomen
            fieldType: 
            displayValue: 31%
            noteCharacter: 
        wPctFtFacMen:
            rawValue: 69
            dataQaId: W_PCT_FT_FAC_MEN
            anchorPage: 
            anchorLocation: 
            noteText: 
            fieldName: wPctFtFacMen
            fieldType: 
            displayValue: 69%
            noteCharacter: 
---

```html_example

{% from 'templates/common/data-dictionary/fields/_field.nunj' import field %}

<div class="flex-row">
    <div class="flex-large-9">
        <div class="border" style="padding: 1rem;">
            {{ field('gFtFacultyGenderDist', fields_metadata, fields_data) }}
        </div>
    </div>
</div>
```

*/
/*doc
---
title: Bar Chart
name: _bar-chart
category: Data Patterns - Data Dictionary Fields
authors: Jon Lewis
template:
    fields_metadata:
        gGraduationRates:
            ddbFieldType: field_group
            dataQaId: g_graduation_rates
            isPublic: true
            label: Graduation rates
            fieldGroupType: bar-chart
            fieldName: gGraduationRates
            fieldType: field-group
            subFields:
            - color: "#2262bb"
              field: gradRate4Year
              label: 4-year graduation rate
            - color: "#13325d"
              field: gradRate5Year
              label: 5-year graduation rate
            - color: "#0abba4"
              field: rCAvgPctGrad6Yr
              label: 6-year graduation rate
            primaryKey: gGraduationRates
            displayOrder: ''
        gradRate4Year:
            ddbFieldType: std_percentage
            dataQaId: grad_rate_4_year
            isPublic: false
            precision: 
            label: 4-year graduation rate
            delimiter: ''
            fieldGroupType: 
            fieldName: gradRate4Year
            fieldType: numeric
            primaryKey: gradRate4Year
            displayOrder: '4'
            iconLink: 
        gradRate5Year:
            ddbFieldType: int
            dataQaId: grad_rate_5_year
            isPublic: false
            precision: 
            label: 5-year graduation rate
            delimiter: ''
            fieldGroupType: 
            fieldName: gradRate5Year
            fieldType: numeric
            primaryKey: gradRate5Year
            displayOrder: ''
            iconLink: 
        rCAvgPctGrad6Yr:
            ddbFieldType: std_percentage
            dataQaId: r_c_avg_pct_grad_6yr
            isPublic: false
            precision: 
            label: 6-year graduation rate
            delimiter: ''
            fieldGroupType: 
            fieldName: rCAvgPctGrad6Yr
            fieldType: numeric
            primaryKey: rCAvgPctGrad6Yr
            displayOrder: '7'
            iconLink: 
    fields_data:
        gradRate4Year:
            rawValue: 71
            dataQaId: GRAD_RATE_4_YEAR
            anchorPage: 
            anchorLocation: 
            noteText: 
            fieldName: gradRate4Year
            fieldType: 
            displayValue: 71%
            noteCharacter: 
        gradRate5Year:
            rawValue: 77
            dataQaId: GRAD_RATE_5_YEAR
            anchorPage: 
            anchorLocation: 
            noteText: 
            fieldName: gradRate5Year
            fieldType: 
            displayValue: '77'
            noteCharacter: 
        rCAvgPctGrad6Yr:
            rawValue: 78
            dataQaId: R_C_AVG_PCT_GRAD_6YR
            anchorPage: 
            anchorLocation: 
            noteText: 
            fieldName: rCAvgPctGrad6Yr
            fieldType: 
            displayValue: 78%
            noteCharacter: 
---

```html_example

{% from 'templates/common/data-dictionary/fields/_field.nunj' import field %}

<div class="flex-row">
    <div class="flex-large-9">
        <div class="border" style="padding: 1rem;">
            {{ field('gGraduationRates', fields_metadata, fields_data) }}
        </div>
    </div>
</div>
```

*/
.myfit__bar {
  background: linear-gradient(to right, #8d0c04, #D1453D, #fef6c8, #ade8e0, #0ABBA4, #037b6b);
  border: 1px #DDDDDD solid;
  height: 35px;
  width: 275px; }

.myfit__bar__indicator-container {
  height: 100%;
  margin-left: 22px;
  position: relative;
  width: 231px; }

.myfit__bar__indicator {
  align-items: center;
  background-color: rgba(68, 68, 68, 0.5);
  border-left: 2px solid rgba(255, 255, 255, 0.5);
  border-right: 2px solid rgba(255, 255, 255, 0.5);
  color: white;
  display: flex;
  font-family: 'Arial', sans-serif;
  font-size: 18px;
  font-weight: 700;
  height: 100%;
  justify-content: center;
  left: 0;
  margin-left: -22px;
  position: absolute;
  text-shadow: 0 0 2px #555;
  top: 0;
  width: 44px; }
  .myfit__bar__indicator:before {
    border-color: transparent transparent #fff transparent;
    border-style: solid;
    border-width: 0 4.5px 6px 4.5px;
    bottom: 0;
    content: '';
    height: 0;
    left: 50%;
    position: absolute;
    transform: translateX(-50%);
    width: 0; }

.myfit__bar__no-arrow:before {
  content: none; }

/* Apply this class to the .myfit__bar to enable the bar to fill the available
   width, rather than being a fixed size. */
.myfit__bar__full-width.myfit__bar {
  padding-left: 22px;
  padding-right: 22px;
  width: 100%; }

.myfit__bar__full-width > .myfit__bar__indicator-container {
  margin: 0;
  width: 100%; }

.chiclets {
  display: flex; }
  .chiclets > div {
    height: .5rem;
    flex-grow: 1;
    margin-right: .15rem; }
    .chiclets > div:last-of-type {
      margin-right: 0; }

.chiclet-wrapper {
  min-width: 130px; }
  .chiclet-wrapper.large {
    min-width: 145px; }
    .chiclet-wrapper.large .chiclet {
      height: 12px; }

.chiclet {
  height: 10px;
  width: 20%;
  margin-right: 2px; }
  .chiclet:last-of-type {
    margin-right: 0; }
  .chiclet.blue {
    background: #2262bb; }
  .chiclet.green-forest {
    background: #037b6b; }
  .chiclet.green-pro {
    background: #0ABBA4; }
  .chiclet.orange-dark {
    background: #E38D13; }
  .chiclet.red-brick {
    background: #8d0c04; }
  .chiclet.red-con {
    background: #F06E65; }
  .chiclet.iron {
    background: #CCCCCC; }

.chiclets-container {
  align-self: center; }
  @media only screen and (max-width: 40em) {
    .chiclets-container .tootlip-container {
      line-height: 1; } }
  .chiclets-container .chiclet-header.blue {
    color: #2262bb; }
  .chiclets-container .chiclet-header.green-forest {
    color: #037b6b; }
  .chiclets-container .chiclet-header.green-pro {
    color: #0ABBA4; }
  .chiclets-container .chiclet-header.orange-dark {
    color: #E38D13; }
  .chiclets-container .chiclet-header.red-brick {
    color: #8d0c04; }
  .chiclets-container .chiclet-header.red-con {
    color: #F06E65; }
  .chiclets-container .chiclet-header.iron {
    color: #CCCCCC; }

.slide-up-container {
  position: fixed;
  width: 100%;
  bottom: -21.5625rem;
  z-index: 430;
  transition: bottom 1s ease;
  pointer-events: none; }

.slide-up-container.open {
  bottom: 0px;
  transition: bottom 1s ease; }

.slide-up {
  height: 22.5rem;
  width: 17.1875rem;
  float: right;
  pointer-events: all; }

.slide-up-hover {
  height: 0.625rem;
  width: 100%;
  background-color: transparent; }

.slide-up-visible {
  height: 100%; }

.slide-up-header {
  width: 100%;
  height: 0.3125rem;
  background-color: #2262bb; }

.slide-up-content {
  width: 100%;
  height: 100%;
  background-color: #FFFFFF; }

.toggled-slideup {
  bottom: -100%;
  position: fixed;
  right: 5%;
  z-index: 435;
  transition: bottom 1s ease;
  width: 290px; }

.toggled-slideup.open {
  bottom: 0px !important;
  transition: bottom 1s ease; }

.tombstone-text {
  overflow: hidden; }
  .tombstone-text .tombstone-line {
    transition: transform 0.25s ease-in-out !important;
    transform: translateY(100%); }
    .tombstone-text .tombstone-line.filled {
      transform: translateY(0%); }
    .tombstone-text .tombstone-line::before {
      content: "\00a0";
      position: absolute;
      top: -60%;
      height: 1px;
      width: 100px;
      border-bottom: 10px solid #ccc; }
    .tombstone-text .tombstone-line.tombstone-small::before {
      border-bottom: 6px solid #ccc;
      width: 80px; }

/*doc
---
title: Wizard
name: a-wizard
category: Forms - Wizard
selectors:
    - .wizard
selector_type: component
---

These classes are used with the [Form Wizard][1-wizard].

```html_example
<form class="wizard">
    <header class="wizard-header">
        <h2 data-step="1">Step 1</h2>
        <h2 data-step="2">Step 2</h2>
        <div class="wizard-progress">
            <div class="wizard-progress-bar"></div>
            <div class="wizard-progress-stats">
                <span class="wizard-progress-current"></span>
                /
                <span class="wizard-progress-total"></span>
            </div>
        </div>
    </header>
    <div class="wizard-body">
        <div data-step="1">
          <p>Wizard form elements ...</p>
        </div>
        <div data-step="2">
          <p>More wizard form elements ...</p>
        </div>
    </div>
</form>
```

*/
.wizard [data-step] {
  display: none; }

.wizard [data-step="1"] {
  display: block; }

.wizard .wizard-progress-bar {
  min-height: 1rem;
  background-color: #2262bb;
  width: 0; }

/*doc
---
title: Card List
name: a-card-list
category: Visual Treatments - Card List
---

```html_example

{%
    set items = [
        {
            imageUrl: '/static/img/temp-images/countries-switzerland-image.jpg',
            icon: 'credit-cards',
            title: "Bad Credit",
            color: 'dark'
        },
        {
            imageUrl: '/static/img/temp-images/hero-high-schools-hp-header-1280.jpg',
            icon: 'home',
            title: "Home Improvement",
            color: 'dark'
        },
        {
            imageUrl: '/static/img/temp-images/countries-story-3-image.png',
            icon: 'building',
            title: "Mortgage",
            color: 'dark'
        },
        {
            imageUrl: '/static/img/temp-images/diets-food.png',
            icon: 'money',
            title: "Debt Consolidation",
            color: 'red'
        },
        {
            imageUrl: '/static/img/temp-images/hero-diets-hp-header-970.png',
            icon: 'person',
            title: "Personal",
            color: 'green'
        },
        {
            imageUrl: '/static/img/temp-images/hero-high-schools-hp-footer-1280.jpg',
            icon: 'book',
            title: "Students",
            color: 'blue'
        }
    ]
%}

<div class="flex-row">
    <div class="flex-small-12 flex-large-9">
        <ul class="flex-row card-list">
            {% for item in items %}
                <li class="flex-small-12 flex-medium-6 flex-large-4 card-list-item card-list-{{ item.color }}">
                    <a href="#">
                        <div class="card-list-item-container">
                            <div class="card-list-item-image-container">
                                <div class="card-list-item-image" style="background: url({{ item.imageUrl }});">
                                </div>
                            </div>

                            <div class="card-list-item-content">
                                <div class="card-list-item-icon">
                                    <svg class="icon background-{{ item.color }} round white"><use xlink:href="/static/sprites/svg/sprite.symbol.svg}" /></svg>
                                </div>

                                <div class="card-list-item-body heading-large text-black">
                                    {{ item.title }}
                                </div>
                            </div>
                        </div>
                    </a>
                </li>
            {% endfor %}
        </ul>
    </div>
</div>

```
*/
.card-list {
  list-style: none; }

@media only screen and (min-width: 40.0625em) {
  .card-list-item {
    margin-bottom: 2rem; } }

.card-list-item-container {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
  position: relative;
  height: 100%;
  padding: 1rem 0;
  border-top: 1px solid #DDDDDD;
  transition: box-shadow 300ms; }
  @media only screen and (min-width: 40.0625em) {
    .card-list-item-container {
      -webkit-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5);
      -moz-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5);
      box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.5);
      border-radius: 5px;
      border-top: 5px solid #10294B;
      min-height: 260px;
      padding: 0; }
      .card-list-item-container:hover {
        -webkit-box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.5);
        -moz-box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.5);
        box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.5); }
        .card-list-item-container:hover .card-list-item-image {
          transform: scale(1.05); } }

@media only screen and (min-width: 40.0625em) {
  .card-list-dark .card-list-item-container {
    border-color: #10294B; }
  .card-list-blue .card-list-item-container {
    border-color: #2c7ef0; }
  .card-list-green .card-list-item-container {
    border-color: #0ABBA4; }
  .card-list-red .card-list-item-container {
    border-color: #D1453D; } }

@media only screen and (max-width: 40em) {
  .card-list-item:first-child .card-list-item-container {
    border-top: none; } }

.card-list-item-content {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
  position: relative;
  margin: 0; }
  @media only screen and (min-width: 40.0625em) {
    .card-list-item-content {
      -webkit-flex-wrap: wrap;
      -moz-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
      flex-wrap: wrap;
      -webkit-box-align: start;
      -ms-flex-align: start;
      -webkit-align-items: flex-start;
      -moz-align-items: flex-start;
      align-items: flex-start;
      -webkit-flex-basis: 100%;
      -moz-flex-basis: 100%;
      -ms-flex-preferred-size: 100%;
      flex-basis: 100%; } }

.card-list-align-top .card-list-item-content {
  -webkit-align-content: flex-start;
  -moz-align-content: flex-start;
  -ms-flex-line-pack: start;
  align-content: flex-start;
  -webkit-box-align: start;
  -ms-flex-align: start;
  -webkit-align-items: flex-start;
  -moz-align-items: flex-start;
  align-items: flex-start; }

.card-list-item-icon {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  -moz-align-items: center;
  align-items: center;
  -webkit-flex-shrink: 0;
  -moz-flex-shrink: 0;
  -ms-flex-negative: 0;
  flex-shrink: 0;
  margin-right: 1rem; }
  @media only screen and (min-width: 40.0625em) {
    .card-list-item-icon {
      -webkit-flex-basis: 100%;
      -moz-flex-basis: 100%;
      -ms-flex-preferred-size: 100%;
      flex-basis: 100%;
      -webkit-box-pack: center;
      -ms-flex-pack: center;
      -webkit-justify-content: center;
      -moz-justify-content: center;
      justify-content: center;
      -webkit-box-align: start;
      -ms-flex-align: start;
      -webkit-align-items: start;
      -moz-align-items: start;
      align-items: start;
      margin-right: 0;
      padding-top: 85px; } }

.card-list-item-body {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  -moz-align-items: center;
  align-items: center;
  -webkit-flex-wrap: wrap;
  -moz-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap; }
  @media only screen and (min-width: 40.0625em) {
    .card-list-item-body {
      -webkit-flex-basis: 100%;
      -moz-flex-basis: 100%;
      -ms-flex-preferred-size: 100%;
      flex-basis: 100%;
      -webkit-box-pack: center;
      -ms-flex-pack: center;
      -webkit-justify-content: center;
      -moz-justify-content: center;
      justify-content: center;
      margin: 1rem 1rem 1.5rem 1rem;
      text-align: center;
      position: relative;
      top: -2px; } }

.card-list-item-image-container {
  display: none;
  overflow: hidden; }
  @media only screen and (min-width: 40.0625em) {
    .card-list-item-image-container {
      display: block;
      position: absolute;
      top: 0px;
      left: 0px;
      right: 0px;
      height: 120px; } }

.card-list-item-image {
  transition: transform 1s; }
  @media only screen and (min-width: 40.0625em) {
    .card-list-item-image {
      width: 100%;
      height: 100%;
      background-position: center !important;
      background-size: cover !important; } }

.compare-col:nth-child(n + 4) {
  display: none; }

@media not screen and (min-width: 64em) {
  .compare-col:nth-child(n + 3) {
    display: none; } }

#table-origin {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-direction: normal;
  -webkit-box-orient: vertical;
  -webkit-flex-direction: column;
  -moz-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  -webkit-justify-content: center;
  -moz-justify-content: center;
  justify-content: center; }
  @media only screen and (max-width: 40em) {
    #table-origin button {
      font-size: 0.75rem; } }

.compare-table-body {
  -webkit-flex-flow: row nowrap;
  -moz-flex-flow: row nowrap;
  -ms-flex-flow: row nowrap;
  flex-flow: row nowrap;
  -ms-flex-pack: distribute;
  -webkit-justify-content: space-around;
  -moz-justify-content: space-around;
  justify-content: space-around; }
  .compare-table-body .label-cell,
  .compare-table-body .data-cell {
    padding-top: 1rem;
    padding-bottom: 1rem;
    width: 100%; }
  .compare-table-body .data-cell {
    -webkit-box-align: center;
    -ms-flex-align: center;
    -webkit-align-items: center;
    -moz-align-items: center;
    align-items: center;
    -webkit-align-content: center;
    -moz-align-content: center;
    -ms-flex-line-pack: center;
    align-content: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    -webkit-justify-content: center;
    -moz-justify-content: center;
    justify-content: center; }
    .compare-table-body .data-cell .form-control {
      margin-bottom: 0 !important; }
  .compare-table-body .distribution-breakdown.panel, .compare-table-body .distribution-breakdown.panel-borderless, .compare-table-body .distribution-breakdown.panel-tight, .compare-table-body .distribution-breakdown.error-panel {
    padding: 0; }
  .compare-table-body .distribution-breakdown__visual .icon {
    height: 1rem;
    width: 1rem; }
  .compare-table-body .distribution-breakdown__percentage {
    font-size: 1rem; }
  .compare-table-body .distribution-breakdown__percentage-copy {
    font-size: 0.7rem; }
  @media only screen and (min-width: 40.0625em) {
    .compare-table-body .distribution-breakdown__col--visual {
      width: 75%; }
    .compare-table-body .distribution-breakdown__col--stat {
      width: 25%; } }

.compare-table-section-header {
  cursor: pointer;
  transition: background-color 300ms; }
  .compare-table-section-header .icon {
    transition: transform 300ms ease-out; }
  .compare-table-section-header:hover {
    background-color: #eeeeee; }

.compare-table-section-content {
  transition: opacity 300ms;
  overflow: hidden;
  opacity: 1; }

.compare-table-section.is-collapsed .compare-table-section-header .icon {
  transform: rotate(0); }

.compare-table-section.is-collapsed .compare-table-section-content {
  max-height: 0;
  opacity: 0; }

.link-blue-icon {
  fill: #2c7ef0 !important; }

.header-cell {
  border-right: 1px solid #DDDDDD; }
  .header-cell img,
  .header-cell .placeholder-img {
    border: 1px solid #ddd;
    width: 135px;
    height: 90px; }
    @media only screen and (max-width: 40em) {
      .header-cell img,
      .header-cell .placeholder-img {
        max-height: 60px !important;
        max-width: 90px; } }
  .header-cell img {
    image-rendering: pixelated; }
  .header-cell .placeholder-img {
    padding: 0.625rem;
    margin-bottom: 0.9375rem; }

@media only screen and (max-width: 40em) {
  .label-cell {
    text-align: center; } }

.data-part-of-row {
  -webkit-box-flex: 1;
  -webkit-flex: 1;
  -moz-box-flex: 1;
  -moz-flex: 1;
  -ms-flex: 1;
  flex: 1;
  -webkit-box-direction: normal;
  -webkit-box-orient: horizontal;
  -webkit-flex-direction: row;
  -moz-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row; }
  @media only screen and (min-width: 40.0625em) {
    .data-part-of-row {
      min-height: 100%; } }

.dropdown-section-divider {
  background-color: #EFEFEF;
  border-top: 1px solid #DDDDDD;
  border-bottom: 1px solid #DDDDDD; }

.dropdown-icon {
  fill: #999999;
  -ms-transform: rotate(90deg);
  -webkit-transform: rotate(90deg);
  transform: rotate(90deg); }

@media only screen and (max-width: 40em) {
  .static-header .dropdown-container > a {
    font-size: 0.75rem;
    width: 100%; }
  .static-header .dropdown-container .dropdown-icon {
    height: 0.75rem;
    width: 0.75rem; } }

.static-header .jump-to-dropdown {
  display: none;
  left: -9999px;
  list-style: none;
  margin-left: 0;
  position: absolute;
  background: #FFFFFF;
  border: solid 1px #cccccc;
  font-size: 0.875rem;
  height: auto;
  max-height: none;
  width: 100%;
  z-index: 89;
  max-width: inherit;
  width: 75% !important;
  left: 0.9375rem !important; }
  .static-header .jump-to-dropdown.open {
    display: block; }
  .static-header .jump-to-dropdown > *:first-child {
    margin-top: 0; }
  .static-header .jump-to-dropdown > *:last-child {
    margin-bottom: 0; }

@media only screen and (max-width: 40em) {
  .static-header .button {
    padding-left: 0.75rem !important;
    padding-right: 0.75rem !important; } }

#compare-header-dropdown {
  display: none;
  left: -9999px;
  list-style: none;
  margin-left: 0;
  position: absolute;
  background: #FFFFFF;
  border: solid 1px #cccccc;
  font-size: 0.875rem;
  height: auto;
  max-height: none;
  width: 100%;
  z-index: 89;
  max-width: 15.625rem;
  margin-top: 0;
  margin-left: -1px;
  border: 1px solid #DDDDDD !important; }
  #compare-header-dropdown.open {
    display: block; }
  #compare-header-dropdown > *:first-child {
    margin-top: 0; }
  #compare-header-dropdown > *:last-child {
    margin-bottom: 0; }
  #compare-header-dropdown:before, #compare-header-dropdown:after {
    content: unset; }

.locked-cell {
  background-color: #EAF0F1;
  min-height: 70px; }
  @media only screen and (max-width: 40em) {
    .locked-cell .premium-locked-text {
      display: none; }
    .locked-cell .premium-locked-button {
      display: block;
      white-space: nowrap;
      margin: 0 auto;
      width: 100%; } }
  @media only screen and (min-width: 40.0625em) {
    .locked-cell .premium-locked-button {
      display: none; }
    :hover > .locked-cell .premium-locked-text {
      display: none; }
    :hover > .locked-cell .premium-locked-button {
      display: block;
      white-space: nowrap;
      margin: 0 auto;
      width: 100%; } }

.donut-percent-cell {
  position: relative; }

.donut-percent-cell-text {
  left: 0;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 100%; }

.chart-cell__max-interior-width {
  max-width: 14.0625rem;
  margin-left: auto;
  margin-right: auto; }

.compare-table-buttons {
  position: absolute;
  top: 170px;
  left: 0px;
  right: 0px;
  height: 0px; }

.compare-table-buttons.is-fixed {
  position: fixed;
  top: 50%;
  left: 0px;
  right: 0px;
  height: 0px; }

.compare-table-buttons.is-absolute-bottom {
  position: absolute;
  top: unset;
  bottom: 150px; }

.compare-col-scroll-button-left {
  left: 0px; }

.compare-col-scroll-button-right {
  right: 0px; }

.compare-col-scroll-button-left,
.compare-col-scroll-button-right {
  position: absolute;
  width: 2.5rem;
  height: 3.75rem;
  opacity: 0.7;
  background: #222222;
  top: 50%;
  margin-top: -1.875rem;
  -webkit-transition: opacity 0.4s;
  transition: opacity 0.4s; }
  .compare-col-scroll-button-left:hover,
  .compare-col-scroll-button-right:hover {
    opacity: 0.5; }

.nav-arrow {
  margin-top: 0.875rem;
  fill: #FFFFFF; }

#arrow-left {
  -ms-transform: rotate(-180deg);
  -webkit-transform: rotate(-180deg);
  transform: rotate(-180deg); }

#arrow-right {
  margin-left: 0.3125rem; }

.rail-appt-block {
  border: 1px solid #DDDDDD;
  display: block; }
  .rail-appt-block.sponsored {
    background: #f4f4f4; }
    .rail-appt-block.sponsored .rail-appt-block--ellipsis {
      background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, #f4f4f4 30%) !important; }
  .rail-appt-block .rail-appt-block--main {
    position: relative;
    display: flex; }
  .rail-appt-block .rail-appt-block--image {
    border-right: 1px solid #DDDDDD;
    flex-shrink: 0; }
  .rail-appt-block .rail-appt-block--content {
    display: flex;
    align-items: center;
    flex-grow: 1;
    padding: 0 0.9375rem; }
  .rail-appt-block .rail-appt-block--title {
    max-height: 48px;
    overflow-y: hidden;
    position: relative; }
  .rail-appt-block .rail-appt-block--ellipsis {
    position: absolute;
    bottom: 0;
    right: 0;
    padding-left: 9px;
    background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, white 30%); }
  .rail-appt-block .rail-appt-block--appt-button {
    padding: 3px 10px;
    width: 100%;
    display: flex;
    background: #2c7ef0; }
    .rail-appt-block .rail-appt-block--appt-button > span {
      flex-grow: 1; }
    .rail-appt-block .rail-appt-block--appt-button * {
      color: white; }
    .rail-appt-block .rail-appt-block--appt-button:hover {
      background: #2262bb; }

.zocdoc-inner *,
.zocdoc-inner .control-primitives__DesktopStyledDate-byMqNO,
.zocdoc-inner .Radio__RadioText-kAMTws {
  font-family: Roboto, 'Helvetica Neue', Helvetica, Arial, sans-serif !important;
  font-size: 14px !important; }

.zocdoc-inner *:focus {
  outline: none !important; }

.zocdoc-inner .zocdoc-head {
  margin-left: 0 !important;
  margin-right: 0 !important; }

.zocdoc-inner .CreateResponsiveStyledComponent__ResponsiveContainer-bqQIXt {
  min-width: inherit !important; }

.zocdoc-inner .feLwcw:first-child {
  border: 0 !important;
  padding-left: 0 !important; }

.zocdoc-inner .feLwcw:last-child {
  border: 0 !important; }

.zocdoc-inner .DropdownWrapper__Dropdown-gZcnLR {
  margin-bottom: 0 !important; }
  @media (min-width: 0em) and (max-width: 25.8125em) {
    .zocdoc-inner .DropdownWrapper__Dropdown-gZcnLR {
      font-size: 50px !important; } }

.zocdoc-inner .DropdownWrapper__SelectGroup-ePmZUi {
  border: 0px !important; }

.zocdoc-inner .DropdownWrapper__FauxSelect-ilcxkk {
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  background-color: #fafafa !important;
  border-radius: 0 !important;
  background: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zd…J2ZSI+PHBvbHlnb24gcG9pbnRzPSI1Ljk5MiwwIDIuOTkyLDMgLTAuMDA4LDAgIi8+PC9zdmc+"), -webkit-linear-gradient(90deg, #ececec 0, #fff 100%) !important;
  background-position: 100% center !important;
  background-repeat: no-repeat !important;
  border-style: solid !important;
  border-width: 1px !important;
  border-color: #ccc;
  color: rgba(0, 0, 0, 0.75) !important;
  font-family: inherit !important;
  font-size: 1rem !important;
  line-height: normal !important;
  padding: 0 !important;
  border-radius: 0 !important;
  height: 2.625rem !important; }

.zocdoc-inner .DropdownWrapper__Arrow-ercfZS {
  margin-top: 16px !important; }

.zocdoc-inner .content-primitives__DesktopNextAvailabilityLink-jRNjWE {
  background-color: #ebebeb !important;
  border-color: #dcdfe8 !important;
  color: #333333 !important;
  border-radius: 3px !important;
  border-width: 0.0625rem !important;
  border-top-width: 0 !important;
  border-bottom-width: 0.1875rem !important;
  padding: 0.96875rem 1.75rem 0.71875rem 1.75rem !important;
  transition: background-color 0.3s ease-out !important;
  height: auto !important;
  width: auto !important;
  font-family: Roboto, 'Helvetica Neue', Helvetica, Arial, sans-serif !important; }
  .zocdoc-inner .content-primitives__DesktopNextAvailabilityLink-jRNjWE:hover, .zocdoc-inner .content-primitives__DesktopNextAvailabilityLink-jRNjWE:focus {
    background-color: #dcdfe8 !important;
    border-color: #dcdfe8 !important;
    color: #333 !important; }

.zocdoc-inner .ControlsAndContent__DesktopTimesGridControls-cANhRO {
  background: #eeeeee;
  padding: 1rem 0 !important;
  margin-bottom: 1rem !important; }

.zocdoc-inner .control-primitives__DesktopStyledDay-hjivhg {
  color: #222222 !important;
  text-transform: capitalize !important;
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 1px; }

.zocdoc-inner .control-primitives__DesktopStyledDate-byMqNO {
  color: #222222 !important;
  font-family: Roboto, 'Helvetica Neue', Helvetica, Arial, sans-serif !important;
  font-size: 14px !important; }

.zocdoc-inner .dSLnaI:not([disabled]) {
  color: #2c7ef0 !important; }

.zocdoc-inner .content-primitives__DesktopSlot-gGXoju {
  border-color: #1552a8 !important;
  border-width: 0.0625rem;
  border-top-width: 0 !important;
  border-bottom-width: 0.1875rem !important;
  padding: 0.96875rem 1.75rem 0.71875rem 1.75rem;
  border-radius: 3px !important;
  white-space: nowrap !important; }

.zocdoc-inner .content-primitives__DesktopSlot-eOxxsI {
  background: transparent !important;
  color: #2c7ef0 !important;
  border: 1px solid #2c7ef0 !important;
  border-radius: 0.1875rem !important;
  text-transform: capitalize;
  padding: 0 !important;
  text-align: center !important; }
  .zocdoc-inner .content-primitives__DesktopSlot-eOxxsI span {
    display: block;
    margin: 0 auto;
    float: none; }

.zocdoc-inner .zocdoc-head .WidgetAppWrapper-bpSreJ {
  margin-bottom: 0 !important; }

.zocdoc-inner .zocdoc-head .Radio__RadioContainer-fZANEt {
  max-width: 150px !important; }

.zocdoc-inner .zocdoc-head .Radio__RadioText-kAMTws {
  color: #555 !important; }

.zocdoc-inner .zocdoc-head .Radio__RadioButton-gayEfS {
  position: relative !important; }
  .zocdoc-inner .zocdoc-head .Radio__RadioButton-gayEfS input[type='radio'] {
    opacity: 1 !important;
    width: 17px !important;
    height: 17px !important;
    display: block !important;
    position: relative !important;
    overflow: visible !important;
    border: 0px !important; }
    @media (min-width: 0em) and (max-width: 25.8125em) {
      .zocdoc-inner .zocdoc-head .Radio__RadioButton-gayEfS input[type='radio'] {
        overflow: hidden !important; } }
    .zocdoc-inner .zocdoc-head .Radio__RadioButton-gayEfS input[type='radio']:before {
      content: '';
      border-radius: 50% !important;
      top: 0px !important;
      left: 0px; }
    .zocdoc-inner .zocdoc-head .Radio__RadioButton-gayEfS input[type='radio']:checked:before {
      color: #fff !important;
      background-color: #2262bb !important;
      border: 1px solid #2262bb !important;
      background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNy4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgOCA4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA4IDgiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTQsMUMyLjMsMSwxLDIuMywxLDRzMS4zLDMsMywzczMtMS4zLDMtM1M1LjcsMSw0LDF6Ii8+DQo8L3N2Zz4NCg==") !important; }
  .zocdoc-inner .zocdoc-head .Radio__RadioButton-gayEfS .Radio__RadioIcon-kNgXKn,
  .zocdoc-inner .zocdoc-head .Radio__RadioButton-gayEfS .Radio__RadioIcon-eMuNJL {
    display: none !important; }

.zocdoc-inner .zocdoc-body .WidgetAppWrapper-bpSreJ > div {
  border: 1px solid #dddddd; }

.zocdoc-inner .PartnerTimesGrid__OverflowRow-kpSujz {
  padding: 0 1rem 1rem 1rem; }

.zocdoc-inner .DropdownWrapper__SelectedGroup-fdPPTn {
  padding-top: 0 !important; }
  .zocdoc-inner .DropdownWrapper__SelectedGroup-fdPPTn .DropdownWrapper__SelectedText-etdUvJ {
    color: rgba(0, 0, 0, 0.75) !important;
    font-size: 14px !important;
    padding: 8px 16px !important; }

.checklist-item {
  /* Incompleted checklist item text base state */
  /* Completed checklist item text base state */
  /* Checklist item text base hover state */
  /* Checklist item wrapper base hover::after state */
  /* Completed checklist item wrapper hover::after state */
  /* Incompleted checklist item wrapper hover::after state */ }
  .checklist-item > a > span {
    font-size: 0.875rem;
    color: #333333; }
  .checklist-item.is-completed > a > span {
    color: #999999;
    text-decoration: line-through; }
  .checklist-item > a > span:hover {
    color: #333333;
    text-decoration: line-through; }
  .checklist-item > a:hover::after {
    font-size: 0.625rem;
    font-weight: 500;
    padding-left: 0.5rem; }
  @media only screen and (min-width: 40.0625em) {
    .checklist-item.is-completed > a:hover::after {
      content: 'INCOMPLETE';
      color: #F06E65; } }
  @media only screen and (min-width: 40.0625em) {
    .checklist-item:not(.is-completed) > a:hover::after {
      content: 'COMPLETED';
      color: #0ABBA4; } }

.checklist {
  position: relative; }
  .checklist.is-completed > .is-completed-overlay {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-color: white;
    opacity: 0.5; }
  .checklist.is-completed > .checklist-item > a > span {
    color: #999999; }

.active-tab-arrow:after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  margin-left: -6px;
  width: 0;
  z-index: 1;
  height: 0;
  border-bottom: solid 6px #fff;
  border-left: solid 6px transparent;
  border-right: solid 6px transparent; }

.compass-checkout-payment.credit-card-img {
  margin-right: 16px; }

.compass-checkout-payment .paypal-radio-dial {
  top: 12px; }

.advisor-overview-image {
  float: right;
  margin-left: 0.625rem;
  max-width: 150px; }

.popular-advisor-searches {
  padding-left: 0.9375rem;
  padding-right: 0.9375rem; }

.block-link {
  display: flex;
  border: 1px solid #DDDDDD; }

.job-alerts-newsletter-heading {
  font-weight: 700;
  margin-bottom: 0;
  line-height: 1.25; }
  @media (min-width: 40.0625em) {
    .job-alerts-newsletter-heading {
      font-size: 2.25rem; } }
  @media (max-width: 40em) {
    .job-alerts-newsletter-heading {
      font-size: 1rem;
      padding-left: 0; } }

img[src="/static/img/partners/powered-by-ziprecruiter.png"] {
  height: 35px !important; }

.jobs-ranking-article {
  border: 2px solid #DDDDDD;
  border-radius: 10px; }
  .jobs-ranking-article img {
    border-top-right-radius: 10px;
    border-top-left-radius: 10px;
    border-bottom: 1px solid #DDDDDD; }
  .jobs-ranking-article h4 {
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -moz-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    -moz-justify-content: center;
    justify-content: center;
    text-align: center;
    color: #2c7ef0;
    font-size: 1.25rem;
    height: 5rem;
    margin-bottom: 0; }
    .jobs-ranking-article h4 > a {
      width: 85%; }
      .jobs-ranking-article h4 > a:hover {
        color: #2262bb; }

.ftn-landing-sub-nav ul {
  overflow-x: auto !important; }

.largest-colleges-aside {
  min-width: 250px; }

@media (min-width: 63.9375em) {
  .ftn-footer-select > h6 {
    float: left;
    display: inline-block; } }

@media (min-width: 63.9375em) {
  .ftn-footer-select > div {
    width: 410px;
    display: inline-block; } }

.tabbed .tab {
  display: flex;
  align-items: center;
  margin-right: 10px;
  padding: 0 20px;
  text-align: center;
  height: 40px;
  color: #FFFFFF;
  font-weight: 500;
  opacity: 0.5;
  background-color: #10294B;
  cursor: pointer;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none; }
  .tabbed .tab.tab-active {
    border-top: 2px solid #2c7ef0;
    opacity: 1; }

.tabbed .tab-content {
  background: #10294B; }

.tabbed-hero {
  padding-top: 0;
  padding-bottom: 0;
  margin-bottom: 20px;
  height: auto;
  max-width: 60.625rem;
  color: #FFFFFF; }
  @media (min-width: 40.0625em) {
    .tabbed-hero {
      margin: 40px auto; } }
  @media (max-width: 40em) {
    .tabbed-hero {
      background: #DDDDDD !important;
      color: black; } }
  .tabbed-hero .tabbed-hero-heading {
    font-size: 2.25rem;
    font-weight: 500;
    padding-top: 20px;
    margin-bottom: 10px; }
    @media (min-width: 40.0625em) {
      .tabbed-hero .tabbed-hero-heading {
        padding-top: 40px;
        text-shadow: 0px 1px 2px rgba(0, 0, 0, 0.5);
        color: white; } }
  .tabbed-hero .tabbed-hero-blurb {
    font-size: 1rem;
    margin-bottom: 20px; }
    @media (max-width: 40em) {
      .tabbed-hero .tabbed-hero-blurb {
        font-weight: 500;
        color: #666666; } }
    @media (min-width: 40.0625em) {
      .tabbed-hero .tabbed-hero-blurb {
        margin-bottom: 30px;
        text-shadow: 0px 1px 2px rgba(0, 0, 0, 0.5); } }
  .tabbed-hero .tab-content {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
    min-height: 134px; }
    .tabbed-hero .tab-content .button {
      border-radius: 3px; }
      @media (min-width: 40.0625em) {
        .tabbed-hero .tab-content .button {
          border-radius: 0;
          -webkit-border-bottom-right-radius: 3px;
          -webkit-border-top-right-radius: 3px;
          border-bottom-right-radius: 3px;
          border-top-right-radius: 3px; } }
    .tabbed-hero .tab-content select, .tabbed-hero .tab-content input[type="text"] {
      margin-bottom: 1.125rem; }

.see-more-symbol {
  width: 10px;
  height: 9px;
  font-size: 1rem;
  font-weight: 400;
  text-align: center;
  border: 1px solid #333;
  border-radius: 2px;
  display: inline-block; }
  .see-more-symbol.see-more-plus {
    line-height: 8px; }
  .see-more-symbol.see-more-minus {
    line-height: 6px; }
  .see-more-symbol.see-more-hidden {
    display: none !important; }

.retirement-calc-tooltip-popup {
  width: 400px;
  position: absolute;
  right: -20px; }
  @media (max-width: 40em) {
    .retirement-calc-tooltip-popup {
      width: 100vw;
      right: -50px; } }

.logo-brighthouse {
  height: 40px; }
  .logo-brighthouse img {
    height: 100%; }
  .logo-brighthouse a {
    height: 100%; }

.ui-autocomplete.ui-search-results {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1600 !important;
  padding: 0;
  max-height: 308px;
  overflow-y: auto;
  background-color: white;
  border: 1px solid #b6b6b6;
  margin-bottom: 1.25rem;
  color: #333; }
  .ui-autocomplete.ui-search-results .ui-menu-item {
    color: #333333;
    margin: 0; }
    .ui-autocomplete.ui-search-results .ui-menu-item .ui-menu-item-wrapper {
      padding: 0.5rem; }
    .ui-autocomplete.ui-search-results .ui-menu-item .ui-menu-item-wrapper:hover, .ui-autocomplete.ui-search-results .ui-menu-item .ui-menu-item-wrapper.ui-state-active {
      background: #d7f0fe;
      color: #2c7ef0;
      cursor: pointer; }

.c3-axis {
  fill: #aaa; }

.c3-axis path {
  stroke: #bbb !important; }

.c3-axis .tick line {
  stroke: #bbb; }

.gauge-chart {
  margin-right: auto;
  margin-left: auto;
  text-align: center;
  vertical-align: bottom;
  min-height: 190px;
  max-width: 192px; }
  .gauge-chart svg .c3-gauge-value {
    font-size: 21px !important;
    fill: #2262bb !important;
    font-weight: bold !important; }
  .gauge-chart svg .c3-chart-arcs .c3-chart-arcs-background {
    fill: #EAF0F1; }

.gauge-chart-marker {
  margin-bottom: -32px;
  fill: #0ABBA4; }

.show-on-success, .show-on-error {
  display: none; }

.font-weight-light {
  font-weight: 300 !important; }

.font-weight-normal {
  font-weight: 400 !important; }

.font-weight-medium {
  font-weight: 500 !important; }

.text-dark-navy-blue,
a.text-dark-navy-blue {
  color: #48566b; }

a.text-dark-navy-blue:hover {
  color: #a8b2b6 !important; }

.text-light-blue {
  color: #b8cee2 !important;
  font-weight: 300; }

a.text-light-blue:hover {
  opacity: 0.75; }

.deep-navy-blue {
  background-color: #17222e; }

.hazy-blue {
  background-color: #182f45; }

.navy-blue {
  background-color: #1b3045; }

.light-navy-blue {
  background-color: #213a55; }

.vertical-align-middle {
  vertical-align: middle; }

header .navy-blue nav {
  height: 4.6875rem;
  padding-left: 0.9375rem;
  padding-right: 0.9375rem; }
  header .navy-blue nav img {
    width: 3.75rem; }
  header .navy-blue nav .title {
    font-size: 1.25rem; }
  @media (min-width: 55em) {
    header .navy-blue nav {
      padding-left: 0px;
      padding-right: 0px; } }
  @media (min-width: 40.0625em) {
    header .navy-blue nav {
      height: 6.875rem; }
      header .navy-blue nav img {
        width: 6.25rem; }
      header .navy-blue nav .header-links a.text-light-blue:hover {
        color: #FFFFFF !important;
        box-shadow: inset 0 -2px 0 0 #FFFFFF;
        opacity: 1; }
      header .navy-blue nav .header-links li:hover {
        box-shadow: none;
        padding-bottom: 1.875rem; }
      header .navy-blue nav .title {
        line-height: 1;
        font-size: 1.875rem; } }

header .navy-blue .header-links li {
  margin-left: 1.5rem;
  padding-top: 0.5625rem; }

header .navy-blue ul.off-canvas-list li label {
  padding-top: 0.25rem; }

header .navy-blue ul.off-canvas-list li label,
header .navy-blue .right-submenu .back > a {
  background-color: #182f45; }

header .navy-blue ul.off-canvas-list a.off-canvas-list__header {
  color: #FFFFFF;
  padding-bottom: 0px;
  padding-top: 0px;
  font-size: 1.125rem; }

header .navy-blue ul.off-canvas-list li a {
  padding-top: 0.4375rem;
  padding-bottom: 0.625rem;
  font-weight: 500; }
  header .navy-blue ul.off-canvas-list li a:hover {
    background-color: #132637; }

header .navy-blue .right-submenu {
  background-color: #182f45; }
  header .navy-blue .right-submenu a {
    color: #b8cee2; }
    header .navy-blue .right-submenu a:hover {
      color: #FFFFFF; }
  header .navy-blue .right-submenu ul li a {
    padding: 0.3125rem 0.9375rem 0.3125rem 2.5rem; }

header .navy-blue .right-offcanvas-menu {
  background-color: #182f45; }

header .navy-blue .right-off-canvas-toggle {
  z-index: 1005; }

header .navy-blue .text-light-blue.header__secondary-title {
  opacity: .75; }
  header .navy-blue .text-light-blue.header__secondary-title a {
    color: #b8cee2 !important; }
  header .navy-blue .text-light-blue.header__secondary-title a:hover {
    color: #FFFFFF !important; }

.mega-menu-container {
  box-shadow: none; }

footer .deep-navy-blue {
  color: #747a82;
  font-weight: 500; }
  footer .deep-navy-blue a {
    color: #747a82; }
    footer .deep-navy-blue a:hover {
      color: #FFFFFF; }

img.footer-logo {
  width: 7.8125rem; }
  @media (min-width: 40.0625em) {
    img.footer-logo {
      width: 10.9375rem; } }

.megafooter {
  background-color: #1b3045;
  color: #FFFFFF; }
  .megafooter a {
    color: #b8cee2; }
    .megafooter a:hover {
      color: #FFFFFF; }
    .megafooter a .icon {
      fill: #b8cee2; }
      .megafooter a .icon:hover {
        fill: #FFFFFF; }
  .megafooter .border-left-for-large-up {
    border-left: 1px solid #17222e !important; }

.states-leaderboard.leaderboard-a-container {
  background-color: #213a55; }

.state-video-container {
  background: #1c3045; }
  .state-video-container .video-next-button {
    background-image: linear-gradient(to bottom, #dbdee2 0%, #a1b3c6 65%); }
  .state-video-container__video-title {
    margin: 0px;
    padding-top: 40px; }

.background-center {
  background-repeat: no-repeat;
  background-position: center;
  background-position: 50%;
  background-size: 47%;
  width: 100%; }

.black-link {
    color: #333333;
}
.black-link:hover{
    color: #999999;
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5jc3MiLCJzb3VyY2VzIjpbIm1haW4uc2NzcyIsIi4uL2NvbXBvbmVudHMvbm91aXNsaWRlci9ub3Vpc2xpZGVyLmNzcyIsIi4uL2NvbXBvbmVudHMvc2xpY2stY2Fyb3VzZWwvc2xpY2svc2xpY2suc2NzcyIsIl92YXJpYWJsZXMuc2NzcyIsIi4uL2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vX2Z1bmN0aW9ucy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9fYnJlYWtwb2ludC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L19zZXR0aW5ncy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L19jb250ZXh0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX2hlbHBlcnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9fcGFyc2Vycy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvX3F1ZXJ5LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9fc2luZ2xlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9zaW5nbGUvX2RlZmF1bHQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL19kb3VibGUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL2RvdWJsZS9fZGVmYXVsdC1wYWlyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9kb3VibGUvX2RvdWJsZS1zdHJpbmcuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL2RvdWJsZS9fZGVmYXVsdC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvX3RyaXBsZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvdHJpcGxlL19kZWZhdWx0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9fcmVzb2x1dGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvcmVzb2x1dGlvbi9fcmVzb2x1dGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L19uby1xdWVyeS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L19yZXNwb25kLXRvLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX2xlZ2FjeS1zZXR0aW5ncy5zY3NzIiwiLi4vY29tcG9uZW50cy9mYWtlLWJyZWFrcG9pbnQtc2xpY2VyL3N0eWxlc2hlZXRzL19icmVha3BvaW50LXNsaWNlci5zY3NzIiwiLi4vY29tcG9uZW50cy9mYWtlLWJyZWFrcG9pbnQtc2xpY2VyL3N0eWxlc2hlZXRzL192YXJpYWJsZXMuc2NzcyIsIi4uL2NvbXBvbmVudHMvZmFrZS1icmVha3BvaW50LXNsaWNlci9zdHlsZXNoZWV0cy9fZnVuY3Rpb25zLnNjc3MiLCJfc2V0dGluZ3Muc2NzcyIsImZvdW5kYXRpb24uc2NzcyIsIi4uL2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fZ3JpZC5zY3NzIiwiLi4vY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19nbG9iYWwuc2NzcyIsIi4uL2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fYWNjb3JkaW9uLnNjc3MiLCIuLi9jb21wb25lbnRzL2ZvdW5kYXRpb24vc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX2Jsb2NrLWdyaWQuc2NzcyIsIi4uL2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fYnJlYWRjcnVtYnMuc2NzcyIsIi4uL2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fYnV0dG9uLWdyb3Vwcy5zY3NzIiwiLi4vY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19idXR0b25zLnNjc3MiLCIuLi9jb21wb25lbnRzL2ZvdW5kYXRpb24vc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX2NsZWFyaW5nLnNjc3MiLCIuLi9jb21wb25lbnRzL2ZvdW5kYXRpb24vc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX2Ryb3Bkb3duLnNjc3MiLCIuLi9jb21wb25lbnRzL2ZvdW5kYXRpb24vc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX2Ryb3Bkb3duLWJ1dHRvbnMuc2NzcyIsIi4uL2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fZmxleC12aWRlby5zY3NzIiwiLi4vY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19mb3Jtcy5zY3NzIiwiLi4vY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19pbmxpbmUtbGlzdHMuc2NzcyIsIi4uL2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fam95cmlkZS5zY3NzIiwiLi4vY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19sYWJlbHMuc2NzcyIsIi4uL2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fbWFnZWxsYW4uc2NzcyIsIi4uL2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fcGFnaW5hdGlvbi5zY3NzIiwiLi4vY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19wYW5lbHMuc2NzcyIsIi4uL2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fcHJvZ3Jlc3MtYmFycy5zY3NzIiwiLi4vY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL19yZXZlYWwuc2NzcyIsIi4uL2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fc2lkZS1uYXYuc2NzcyIsIi4uL2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fc3BsaXQtYnV0dG9ucy5zY3NzIiwiLi4vY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL190YWJsZXMuc2NzcyIsIi4uL2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fdGFicy5zY3NzIiwiLi4vY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL190aHVtYnMuc2NzcyIsIi4uL2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9fdG9wLWJhci5zY3NzIiwiLi4vY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL190eXBlLnNjc3MiLCIuLi9jb21wb25lbnRzL2ZvdW5kYXRpb24vc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvX29mZmNhbnZhcy5zY3NzIiwiLi4vY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvanMtYnJlYWtwb2ludHMvYnJlYWtwb2ludHMuc2NzcyIsIl9icmVha3BvaW50cy5zY3NzIiwibW9kdWxlcy9fYW5pbWF0ZS5zY3NzIiwibWl4aW5zL19taXhpbnMuc2NzcyIsIm1peGlucy9fZmxleGJveC5zY3NzIiwibWl4aW5zL19sYWJlbC5zY3NzIiwibWl4aW5zL190eXBvZ3JhcGh5LnNjc3MiLCJtaXhpbnMvX3NoYWRvdy5zY3NzIiwibW9kdWxlcy9fc3RhdGVzLnNjc3MiLCJfYmFzZS5zY3NzIiwibW9kdWxlcy9fZ2xvYmFsLnNjc3MiLCJtb2R1bGVzL19sYXlvdXQuc2NzcyIsIm1vZHVsZXMvX2ZsZXguc2NzcyIsIm1vZHVsZXMvX2ZsZXgtZ3JpZC5zY3NzIiwibW9kdWxlcy9fZ3JpZC5zY3NzIiwibW9kdWxlcy9fYmxvY2stZ3JpZC5zY3NzIiwibW9kdWxlcy9fdHlwb2dyYXBoeS5zY3NzIiwibW9kdWxlcy9fbGlzdC5zY3NzIiwibW9kdWxlcy9fc2hhZG93LnNjc3MiLCJtb2R1bGVzL19yb3VuZC5zY3NzIiwibW9kdWxlcy9faWNvbi5zY3NzIiwibW9kdWxlcy9fc3Bpbm5lci5zY3NzIiwibW9kdWxlcy9fYm9yZGVyLnNjc3MiLCJtb2R1bGVzL19sYWJlbC5zY3NzIiwibW9kdWxlcy9faGVhZGVyLnNjc3MiLCJtb2R1bGVzL19zdWItbmF2LnNjc3MiLCJtb2R1bGVzL19mb290ZXIuc2NzcyIsIm1vZHVsZXMvX2ZhdC1mb290ZXIuc2NzcyIsIm1vZHVsZXMvX2J1dHRvbi5zY3NzIiwibW9kdWxlcy9fZm9ybS5zY3NzIiwibW9kdWxlcy9fYWNjb3JkaW9uLnNjc3MiLCJtb2R1bGVzL190YWJsZS5zY3NzIiwibW9kdWxlcy9fbWVkaWEuc2NzcyIsIm1vZHVsZXMvX21lZGlhLW9iamVjdC5zY3NzIiwibW9kdWxlcy9fcGFuZWwuc2NzcyIsIm1vZHVsZXMvX3NlYXJjaC5zY3NzIiwibW9kdWxlcy9zZWFyY2gvX2FwcGxpY2F0aW9uLnNjc3MiLCJtb2R1bGVzL3NlYXJjaC9fcmVzdWx0cy5zY3NzIiwibW9kdWxlcy9zZWFyY2gvX2ZpbHRlcnMuc2NzcyIsIm1vZHVsZXMvc2VhcmNoL19mb3JtLnNjc3MiLCJtb2R1bGVzL19zZWFyY2gtcmVzdWx0LnNjc3MiLCJtb2R1bGVzL19zZWFyY2gtaHVkLnNjc3MiLCJtb2R1bGVzL19zdGlja2FibGUuc2NzcyIsIm1vZHVsZXMvX2hlcm8uc2NzcyIsIm1vZHVsZXMvX2Vycm9yLnNjc3MiLCJtb2R1bGVzL19hZC5zY3NzIiwibW9kdWxlcy9fZGwuc2NzcyIsIm1vZHVsZXMvX2ZlYXR1cmUuc2NzcyIsIm1vZHVsZXMvX2JyZWFkY3J1bWJzLnNjc3MiLCJtb2R1bGVzL19yYW5nZS1zbGlkZXIuc2NzcyIsIm1vZHVsZXMvX2RyaWxsZG93bi1tZW51LnNjc3MiLCJtb2R1bGVzL19pbWFnZXMuc2NzcyIsIm1vZHVsZXMvX3Byb21vLnNjc3MiLCJtb2R1bGVzL19wcm9tb2xpc3Quc2NzcyIsIm1vZHVsZXMvX3Byb2ZpbGUuc2NzcyIsIm1vZHVsZXMvX3Njb3JlY2FyZC5zY3NzIiwibW9kdWxlcy9fc3RvY2stY2hhbmdlLnNjc3MiLCJtb2R1bGVzL19zdG9jay1vdmVydmlldy1oZWFkZXIuc2NzcyIsIm1vZHVsZXMvX3Byb3MtYW5kLWNvbnMuc2NzcyIsIm1vZHVsZXMvX3NvY2lhbC1tZWRpYS5zY3NzIiwibW9kdWxlcy9fc29jaWFsLnNjc3MiLCJtb2R1bGVzL19hdXRob3Iuc2NzcyIsIm1vZHVsZXMvX3RhZ3Muc2NzcyIsIm1vZHVsZXMvX3NsaWRlc2hvdy5zY3NzIiwibW9kdWxlcy9fc2xpZGVzaG93LWdyb3VwLnNjc3MiLCJtb2R1bGVzL19wcm9tby1jb21wcmVzcy5zY3NzIiwibW9kdWxlcy9fZmVhdHVyZS1wcm9tby5zY3NzIiwibW9kdWxlcy9fcHJvbW8tZmVhdHVyZS5zY3NzIiwibW9kdWxlcy9fbW9kYWwuc2NzcyIsIm1vZHVsZXMvX3N1cGVyaGVyby5zY3NzIiwibW9kdWxlcy9fY2hhcnQuc2NzcyIsIm1vZHVsZXMvX3Rvb2x0aXAuc2NzcyIsIm1vZHVsZXMvX2F1dG9jb21wbGV0ZS5zY3NzIiwibW9kdWxlcy9fc2NvcmUtYmFyLnNjc3MiLCJtb2R1bGVzL19pbmRleC5zY3NzIiwibW9kdWxlcy9fbWFwcy5zY3NzIiwibW9kdWxlcy9fc3RhdC1saXN0LnNjc3MiLCJtb2R1bGVzL19tZWdhLW1lbnUuc2NzcyIsIm1vZHVsZXMvX2Nzcy1jb2x1bW5zLnNjc3MiLCJtb2R1bGVzL190YWJzLnNjc3MiLCJtb2R1bGVzL19yaWRlLnNjc3MiLCJtb2R1bGVzL192YWxpZGF0aW9uLnNjc3MiLCJtb2R1bGVzL19yZWFjdC10cmFuc2l0aW9ucy5zY3NzIiwibW9kdWxlcy9fd2lkZ2V0LnNjc3MiLCJtb2R1bGVzL19tYXAtaW50ZXJhY3RpdmUuc2NzcyIsIm1vZHVsZXMvX2Ryb3Bkb3duLnNjc3MiLCJtb2R1bGVzL19kYXRhLWRpY3Rpb25hcnkuc2NzcyIsIm1vZHVsZXMvX215Zml0LXNjb3JlLXdpZGdldC5zY3NzIiwibW9kdWxlcy9fY2hpY2xldC1zY29yZS5zY3NzIiwibW9kdWxlcy9fc2xpZGV1cC5zY3NzIiwibW9kdWxlcy9fdG9tYnN0b25lLnNjc3MiLCJtb2R1bGVzL193aXphcmQuc2NzcyIsIm1vZHVsZXMvX2NhcmQtbGlzdC5zY3NzIiwibW9kdWxlcy9jb21wYXJlL190YWJsZS5zY3NzIiwibW9kdWxlcy9jb21wYXJlL19uYXYtYnV0dG9uLnNjc3MiLCJtb2R1bGVzL2hlYWx0aC9fYXBwb2ludG1lbnQtYm9va2luZy5zY3NzIiwibW9kdWxlcy9oZWFsdGgvX3pvY2RvYy13aWRnZXQuc2NzcyIsIm1vZHVsZXMvZWR1Y2F0aW9uL19teS1zY2hvb2xzLWNoZWNrbGlzdC5zY3NzIiwibW9kdWxlcy9lZHVjYXRpb24vX2NvbXBhc3MtY2hlY2tvdXQuc2NzcyIsIm1vZHVsZXMvbW9uZXkvX2Fkdmlzb3JzLnNjc3MiLCJtb2R1bGVzL21vbmV5L19jYXJlZXJzLnNjc3MiLCJtb2R1bGVzL21vbmV5L181MjlzLnNjc3MiLCJtb2R1bGVzL21vbmV5L19mdW5kcy5zY3NzIiwibW9kdWxlcy9tb25leS9fcmV0aXJlbWVudC5zY3NzIiwibW9kdWxlcy9tb25leS9fYnJpZ2h0aG91c2Uuc2NzcyIsIm1vZHVsZXMvcmVhbGVzdGF0ZS9fYXV0b2NvbXBsZXRlLnNjc3MiLCJtb2R1bGVzL3JlYWxlc3RhdGUvX2NoYXJ0cy5zY3NzIiwibW9kdWxlcy9fc2lnbnVwLnNjc3MiLCJtb2R1bGVzL3N0YXRlcy1jb3VudHJpZXMvX3N0YXRlcy1oZWFkZXItZm9vdGVyLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLypkb2Ncbi0tLVxudGl0bGU6IEtpdGNoZW4gU2lua1xubmFtZToga2l0Y2hlbi1zaW5rXG5jYXRlZ29yeTogR2VuZXJhbCAtIEtpdGNoZW4gU2lua1xuLS0tXG4qL1xuXG5AY2hhcnNldCBcIlVURi04XCI7XG5cbi8vIEluaXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEZvciBub3csIGF0dGFjaCBub1VpU2xpZGVyIENTUyBoZXJlLCBidXQgd2UgbWlnaHQgd2FudCB0byBjcmVhdGUgc29tZSBraW5kIG9mICd2ZW5kb3JzJyBDU1MgZmlsZS4gSXQncyB1bmNsZWFyIHJpZ2h0IG5vdy5cbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL25vdWlzbGlkZXIvbm91aXNsaWRlclwiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvc2xpY2stY2Fyb3VzZWwvc2xpY2svc2xpY2suc2Nzc1wiO1xuXG4vLyBGZXRjaCBmb250cyBvdmVyIGh0dHBzIHNvIHRoYXQgb3VyIHNlY3VyZSByZXNwb25zaXZlIHNpdGVzIHVzaW5nIHRoaXMgc3R5bGVzaGVldCB3aWxsIGxvYWQgdGhlIGZvbnRzXG5AaW1wb3J0IHVybChodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9Um9ib3RvOjUwMCw0MDBpdGFsaWMsMTAwLDcwMGl0YWxpYywzMDAsNzAwLDUwMGl0YWxpYywxMDBpdGFsaWMsMzAwaXRhbGljLDQwMCk7XG5cbkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjsgLy8gT3VyIGN1c3RvbSBwcm9wZXJ0aWVzIHdlIG1heSB3YW50IHRvIHNoYXJlIGFjcm9zcyBkaWZmZXJlbnQgbW9kdWxlcy5cbkBpbXBvcnQgXCJzZXR0aW5nc1wiOyAvLyBUaGlzIGlzIG91ciBtYWluIHNldHRpbmdzIGZpbGUgd2hlcmUgd2UgY2FuIGRvIGEgbG90IG9mIGN1c3RvbWl6YXRpb24gZm9yIFVTTlxuQGltcG9ydCBcImZvdW5kYXRpb25cIjtcbkBpbXBvcnQgXCJqcy1icmVha3BvaW50cy9icmVha3BvaW50c1wiO1xuQGltcG9ydCBcImJyZWFrcG9pbnRzXCI7XG5AaW1wb3J0IFwibW9kdWxlcy9hbmltYXRlXCI7XG5cbkBpbXBvcnQgXCJtaXhpbnMvbWl4aW5zXCI7IC8vIE5ldyBtaXhpbiBmdW5jdGlvbnMgYnVpbHQgYnkgVVNOIGdvIGhlcmVcbkBpbXBvcnQgXCJtb2R1bGVzL3N0YXRlc1wiO1xuXG5AaW1wb3J0IFwiYmFzZVwiO1xuQGltcG9ydCBcIm1vZHVsZXMvZ2xvYmFsXCI7XG5AaW1wb3J0IFwibW9kdWxlcy9sYXlvdXRcIjtcbkBpbXBvcnQgXCJtb2R1bGVzL2ZsZXhcIjtcbkBpbXBvcnQgXCJtb2R1bGVzL2ZsZXgtZ3JpZFwiO1xuQGltcG9ydCBcIm1vZHVsZXMvZ3JpZFwiO1xuQGltcG9ydCBcIm1vZHVsZXMvYmxvY2stZ3JpZFwiO1xuQGltcG9ydCBcIm1vZHVsZXMvdHlwb2dyYXBoeVwiO1xuQGltcG9ydCBcIm1vZHVsZXMvbGlzdFwiO1xuQGltcG9ydCBcIm1vZHVsZXMvc2hhZG93XCI7XG5AaW1wb3J0IFwibW9kdWxlcy9yb3VuZFwiO1xuQGltcG9ydCBcIm1vZHVsZXMvaWNvblwiO1xuQGltcG9ydCBcIm1vZHVsZXMvc3Bpbm5lclwiO1xuQGltcG9ydCBcIm1vZHVsZXMvYm9yZGVyXCI7XG5AaW1wb3J0IFwibW9kdWxlcy9sYWJlbFwiO1xuQGltcG9ydCBcIm1vZHVsZXMvaGVhZGVyXCI7XG5AaW1wb3J0IFwibW9kdWxlcy9zdWItbmF2XCI7XG5AaW1wb3J0IFwibW9kdWxlcy9mb290ZXJcIjtcbkBpbXBvcnQgXCJtb2R1bGVzL2ZhdC1mb290ZXJcIjtcbkBpbXBvcnQgXCJtb2R1bGVzL2J1dHRvblwiO1xuQGltcG9ydCBcIm1vZHVsZXMvZm9ybVwiO1xuQGltcG9ydCBcIm1vZHVsZXMvYWNjb3JkaW9uXCI7XG5AaW1wb3J0IFwibW9kdWxlcy90YWJsZVwiO1xuQGltcG9ydCBcIm1vZHVsZXMvbWVkaWFcIjtcbkBpbXBvcnQgXCJtb2R1bGVzL21lZGlhLW9iamVjdFwiO1xuQGltcG9ydCBcIm1vZHVsZXMvcGFuZWxcIjtcblxuQGltcG9ydCBcIm1vZHVsZXMvc2VhcmNoXCI7XG5AaW1wb3J0IFwibW9kdWxlcy9zZWFyY2gvYXBwbGljYXRpb25cIjtcbkBpbXBvcnQgXCJtb2R1bGVzL3NlYXJjaC9yZXN1bHRzXCI7XG5AaW1wb3J0IFwibW9kdWxlcy9zZWFyY2gvZmlsdGVyc1wiO1xuQGltcG9ydCBcIm1vZHVsZXMvc2VhcmNoL2Zvcm1cIjtcbkBpbXBvcnQgXCJtb2R1bGVzL3NlYXJjaC1yZXN1bHRcIjtcbkBpbXBvcnQgXCJtb2R1bGVzL3NlYXJjaC1odWRcIjtcblxuQGltcG9ydCBcIm1vZHVsZXMvc3RpY2thYmxlXCI7XG5AaW1wb3J0IFwibW9kdWxlcy9oZXJvXCI7XG5AaW1wb3J0IFwibW9kdWxlcy9lcnJvclwiO1xuQGltcG9ydCBcIm1vZHVsZXMvYWRcIjtcbkBpbXBvcnQgXCJtb2R1bGVzL2RsXCI7XG5AaW1wb3J0IFwibW9kdWxlcy9mZWF0dXJlXCI7XG5AaW1wb3J0IFwibW9kdWxlcy9icmVhZGNydW1ic1wiO1xuQGltcG9ydCBcIm1vZHVsZXMvcmFuZ2Utc2xpZGVyXCI7XG5AaW1wb3J0IFwibW9kdWxlcy9kcmlsbGRvd24tbWVudVwiO1xuQGltcG9ydCBcIm1vZHVsZXMvaW1hZ2VzXCI7XG5AaW1wb3J0IFwibW9kdWxlcy9wcm9tb1wiO1xuQGltcG9ydCBcIm1vZHVsZXMvcHJvbW9saXN0XCI7XG5AaW1wb3J0IFwibW9kdWxlcy9wcm9maWxlXCI7IC8vIFRPRE86IHRoaXMgc2hvdWxkbid0IGJlIGdsb2JhbFxuQGltcG9ydCBcIm1vZHVsZXMvc2NvcmVjYXJkXCI7IC8vIFwiXG5AaW1wb3J0IFwibW9kdWxlcy9zdG9jay1jaGFuZ2VcIjsgLy8gXCJcbkBpbXBvcnQgXCJtb2R1bGVzL3N0b2NrLW92ZXJ2aWV3LWhlYWRlclwiOyAvLyBcIlxuQGltcG9ydCBcIm1vZHVsZXMvcHJvcy1hbmQtY29uc1wiOyAvLyBcIj9cbkBpbXBvcnQgXCJtb2R1bGVzL3NvY2lhbC1tZWRpYVwiO1xuQGltcG9ydCBcIm1vZHVsZXMvc29jaWFsXCI7XG5AaW1wb3J0IFwibW9kdWxlcy9hdXRob3JcIjtcbkBpbXBvcnQgXCJtb2R1bGVzL3RhZ3NcIjtcbkBpbXBvcnQgXCJtb2R1bGVzL3NsaWRlc2hvd1wiO1xuQGltcG9ydCBcIm1vZHVsZXMvc2xpZGVzaG93LWdyb3VwXCI7XG5AaW1wb3J0IFwibW9kdWxlcy9wcm9tby1jb21wcmVzc1wiO1xuQGltcG9ydCBcIm1vZHVsZXMvZmVhdHVyZS1wcm9tb1wiO1xuQGltcG9ydCBcIm1vZHVsZXMvcHJvbW8tZmVhdHVyZVwiO1xuQGltcG9ydCBcIm1vZHVsZXMvbW9kYWxcIjtcbkBpbXBvcnQgXCJtb2R1bGVzL3N1cGVyaGVyb1wiO1xuQGltcG9ydCBcIm1vZHVsZXMvY2hhcnRcIjtcbkBpbXBvcnQgXCJtb2R1bGVzL3Rvb2x0aXBcIjtcbkBpbXBvcnQgXCJtb2R1bGVzL2F1dG9jb21wbGV0ZVwiO1xuQGltcG9ydCBcIm1vZHVsZXMvYWNjb3JkaW9uXCI7XG5AaW1wb3J0IFwibW9kdWxlcy9zY29yZS1iYXJcIjtcbkBpbXBvcnQgXCJtb2R1bGVzL2luZGV4XCI7XG5AaW1wb3J0IFwibW9kdWxlcy9tYXBzXCI7XG5AaW1wb3J0IFwibW9kdWxlcy9zdGF0LWxpc3RcIjtcbkBpbXBvcnQgXCJtb2R1bGVzL21lZ2EtbWVudVwiO1xuQGltcG9ydCBcIm1vZHVsZXMvY3NzLWNvbHVtbnNcIjtcbkBpbXBvcnQgXCJtb2R1bGVzL3RhYnNcIjtcbkBpbXBvcnQgXCJtb2R1bGVzL3JpZGVcIjtcbkBpbXBvcnQgXCJtb2R1bGVzL3ZhbGlkYXRpb25cIjtcbkBpbXBvcnQgXCJtb2R1bGVzL3JlYWN0LXRyYW5zaXRpb25zXCI7XG5AaW1wb3J0IFwibW9kdWxlcy93aWRnZXRcIjtcbkBpbXBvcnQgXCJtb2R1bGVzL21hcC1pbnRlcmFjdGl2ZVwiO1xuQGltcG9ydCBcIm1vZHVsZXMvZHJvcGRvd25cIjtcbkBpbXBvcnQgXCJtb2R1bGVzL2RhdGEtZGljdGlvbmFyeVwiO1xuQGltcG9ydCBcIm1vZHVsZXMvbXlmaXQtc2NvcmUtd2lkZ2V0XCI7IC8vIFNwZWNpZmljIHRvIE15Rml0LCBubyBuZWVkIHRvIGJlIGdsb2JhbFxuQGltcG9ydCBcIm1vZHVsZXMvY2hpY2xldC1zY29yZVwiO1xuQGltcG9ydCBcIm1vZHVsZXMvc2xpZGV1cFwiO1xuQGltcG9ydCBcIm1vZHVsZXMvdG9tYnN0b25lXCI7XG5AaW1wb3J0IFwibW9kdWxlcy93aXphcmRcIjtcbkBpbXBvcnQgXCJtb2R1bGVzL2NhcmQtbGlzdFwiO1xuXG5AaW1wb3J0IFwibW9kdWxlcy9jb21wYXJlL3RhYmxlXCI7XG5AaW1wb3J0IFwibW9kdWxlcy9jb21wYXJlL25hdi1idXR0b25cIjtcbkBpbXBvcnQgXCJtb2R1bGVzL2hlYWx0aC9hcHBvaW50bWVudC1ib29raW5nXCI7XG5AaW1wb3J0IFwibW9kdWxlcy9oZWFsdGgvem9jZG9jLXdpZGdldFwiO1xuQGltcG9ydCBcIm1vZHVsZXMvZWR1Y2F0aW9uL215LXNjaG9vbHMtY2hlY2tsaXN0XCI7XG5AaW1wb3J0IFwibW9kdWxlcy9lZHVjYXRpb24vY29tcGFzcy1jaGVja291dFwiO1xuQGltcG9ydCBcIm1vZHVsZXMvbW9uZXkvYWR2aXNvcnNcIjtcbkBpbXBvcnQgXCJtb2R1bGVzL21vbmV5L2NhcmVlcnNcIjtcbkBpbXBvcnQgXCJtb2R1bGVzL21vbmV5LzUyOXNcIjtcbkBpbXBvcnQgXCJtb2R1bGVzL21vbmV5L2Z1bmRzXCI7XG5AaW1wb3J0IFwibW9kdWxlcy9tb25leS9yZXRpcmVtZW50XCI7XG5AaW1wb3J0IFwibW9kdWxlcy9tb25leS9icmlnaHRob3VzZVwiO1xuQGltcG9ydCBcIm1vZHVsZXMvcmVhbGVzdGF0ZS9hdXRvY29tcGxldGVcIjtcbkBpbXBvcnQgXCJtb2R1bGVzL3JlYWxlc3RhdGUvY2hhcnRzXCI7XG5AaW1wb3J0IFwibW9kdWxlcy9zaWdudXBcIjtcbkBpbXBvcnQgXCJtb2R1bGVzL3N0YXRlcy1jb3VudHJpZXMvc3RhdGVzLWhlYWRlci1mb290ZXJcIjtcbiIsIlxyXG4vKiBGdW5jdGlvbmFsIHN0eWxpbmc7XHJcbiAqIFRoZXNlIHN0eWxlcyBhcmUgcmVxdWlyZWQgZm9yIG5vVWlTbGlkZXIgdG8gZnVuY3Rpb24uXHJcbiAqIFlvdSBkb24ndCBuZWVkIHRvIGNoYW5nZSB0aGVzZSBydWxlcyB0byBhcHBseSB5b3VyIGRlc2lnbi5cclxuICovXHJcbi5ub1VpLXRhcmdldCxcclxuLm5vVWktdGFyZ2V0ICoge1xyXG4td2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XHJcbi13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbi1tcy10b3VjaC1hY3Rpb246IG5vbmU7XHJcblx0dG91Y2gtYWN0aW9uOiBub25lO1xyXG4tbXMtdXNlci1zZWxlY3Q6IG5vbmU7XHJcbi1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XHJcblx0dXNlci1zZWxlY3Q6IG5vbmU7XHJcbi1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG59XHJcbi5ub1VpLXRhcmdldCB7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdGRpcmVjdGlvbjogbHRyO1xyXG59XHJcbi5ub1VpLWJhc2Uge1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdGhlaWdodDogMTAwJTtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0ei1pbmRleDogMTsgLyogRml4IDQwMSAqL1xyXG59XHJcbi5ub1VpLW9yaWdpbiB7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHJpZ2h0OiAwO1xyXG5cdHRvcDogMDtcclxuXHRsZWZ0OiAwO1xyXG5cdGJvdHRvbTogMDtcclxufVxyXG4ubm9VaS1oYW5kbGUge1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHR6LWluZGV4OiAxO1xyXG59XHJcbi5ub1VpLXN0YWNraW5nIC5ub1VpLWhhbmRsZSB7XHJcbi8qIFRoaXMgY2xhc3MgaXMgYXBwbGllZCB0byB0aGUgbG93ZXIgb3JpZ2luIHdoZW5cclxuICAgaXRzIHZhbHVlcyBpcyA+IDUwJS4gKi9cclxuXHR6LWluZGV4OiAxMDtcclxufVxyXG4ubm9VaS1zdGF0ZS10YXAgLm5vVWktb3JpZ2luIHtcclxuLXdlYmtpdC10cmFuc2l0aW9uOiBsZWZ0IDAuM3MsIHRvcCAwLjNzO1xyXG5cdHRyYW5zaXRpb246IGxlZnQgMC4zcywgdG9wIDAuM3M7XHJcbn1cclxuLm5vVWktc3RhdGUtZHJhZyAqIHtcclxuXHRjdXJzb3I6IGluaGVyaXQgIWltcG9ydGFudDtcclxufVxyXG5cclxuLyogUGFpbnRpbmcgYW5kIHBlcmZvcm1hbmNlO1xyXG4gKiBCcm93c2VycyBjYW4gcGFpbnQgaGFuZGxlcyBpbiB0aGVpciBvd24gbGF5ZXIuXHJcbiAqL1xyXG4ubm9VaS1iYXNlLFxyXG4ubm9VaS1oYW5kbGUge1xyXG5cdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XHJcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XHJcbn1cclxuXHJcbi8qIFNsaWRlciBzaXplIGFuZCBoYW5kbGUgcGxhY2VtZW50O1xyXG4gKi9cclxuLm5vVWktaG9yaXpvbnRhbCB7XHJcblx0aGVpZ2h0OiAxOHB4O1xyXG59XHJcbi5ub1VpLWhvcml6b250YWwgLm5vVWktaGFuZGxlIHtcclxuXHR3aWR0aDogMzRweDtcclxuXHRoZWlnaHQ6IDI4cHg7XHJcblx0bGVmdDogLTE3cHg7XHJcblx0dG9wOiAtNnB4O1xyXG59XHJcbi5ub1VpLXZlcnRpY2FsIHtcclxuXHR3aWR0aDogMThweDtcclxufVxyXG4ubm9VaS12ZXJ0aWNhbCAubm9VaS1oYW5kbGUge1xyXG5cdHdpZHRoOiAyOHB4O1xyXG5cdGhlaWdodDogMzRweDtcclxuXHRsZWZ0OiAtNnB4O1xyXG5cdHRvcDogLTE3cHg7XHJcbn1cclxuXHJcbi8qIFN0eWxpbmc7XHJcbiAqL1xyXG4ubm9VaS1iYWNrZ3JvdW5kIHtcclxuXHRiYWNrZ3JvdW5kOiAjRkFGQUZBO1xyXG5cdGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCAjZjBmMGYwO1xyXG59XHJcbi5ub1VpLWNvbm5lY3Qge1xyXG5cdGJhY2tncm91bmQ6ICMzRkI4QUY7XHJcblx0Ym94LXNoYWRvdzogaW5zZXQgMCAwIDNweCByZ2JhKDUxLDUxLDUxLDAuNDUpO1xyXG4td2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQgNDUwbXM7XHJcblx0dHJhbnNpdGlvbjogYmFja2dyb3VuZCA0NTBtcztcclxufVxyXG4ubm9VaS1vcmlnaW4ge1xyXG5cdGJvcmRlci1yYWRpdXM6IDJweDtcclxufVxyXG4ubm9VaS10YXJnZXQge1xyXG5cdGJvcmRlci1yYWRpdXM6IDRweDtcclxuXHRib3JkZXI6IDFweCBzb2xpZCAjRDNEM0QzO1xyXG5cdGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCAjRjBGMEYwLCAwIDNweCA2cHggLTVweCAjQkJCO1xyXG59XHJcbi5ub1VpLXRhcmdldC5ub1VpLWNvbm5lY3Qge1xyXG5cdGJveC1zaGFkb3c6IGluc2V0IDAgMCAzcHggcmdiYSg1MSw1MSw1MSwwLjQ1KSwgMCAzcHggNnB4IC01cHggI0JCQjtcclxufVxyXG5cclxuLyogSGFuZGxlcyBhbmQgY3Vyc29ycztcclxuICovXHJcbi5ub1VpLWRyYWdnYWJsZSB7XHJcblx0Y3Vyc29yOiB3LXJlc2l6ZTtcclxufVxyXG4ubm9VaS12ZXJ0aWNhbCAubm9VaS1kcmFnZ2FibGUge1xyXG5cdGN1cnNvcjogbi1yZXNpemU7XHJcbn1cclxuLm5vVWktaGFuZGxlIHtcclxuXHRib3JkZXI6IDFweCBzb2xpZCAjRDlEOUQ5O1xyXG5cdGJvcmRlci1yYWRpdXM6IDNweDtcclxuXHRiYWNrZ3JvdW5kOiAjRkZGO1xyXG5cdGN1cnNvcjogZGVmYXVsdDtcclxuXHRib3gtc2hhZG93OiBpbnNldCAwIDAgMXB4ICNGRkYsXHJcblx0XHRcdFx0aW5zZXQgMCAxcHggN3B4ICNFQkVCRUIsXHJcblx0XHRcdFx0MCAzcHggNnB4IC0zcHggI0JCQjtcclxufVxyXG4ubm9VaS1hY3RpdmUge1xyXG5cdGJveC1zaGFkb3c6IGluc2V0IDAgMCAxcHggI0ZGRixcclxuXHRcdFx0XHRpbnNldCAwIDFweCA3cHggI0RERCxcclxuXHRcdFx0XHQwIDNweCA2cHggLTNweCAjQkJCO1xyXG59XHJcblxyXG4vKiBIYW5kbGUgc3RyaXBlcztcclxuICovXHJcbi5ub1VpLWhhbmRsZTpiZWZvcmUsXHJcbi5ub1VpLWhhbmRsZTphZnRlciB7XHJcblx0Y29udGVudDogXCJcIjtcclxuXHRkaXNwbGF5OiBibG9jaztcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0aGVpZ2h0OiAxNHB4O1xyXG5cdHdpZHRoOiAxcHg7XHJcblx0YmFja2dyb3VuZDogI0U4RTdFNjtcclxuXHRsZWZ0OiAxNHB4O1xyXG5cdHRvcDogNnB4O1xyXG59XHJcbi5ub1VpLWhhbmRsZTphZnRlciB7XHJcblx0bGVmdDogMTdweDtcclxufVxyXG4ubm9VaS12ZXJ0aWNhbCAubm9VaS1oYW5kbGU6YmVmb3JlLFxyXG4ubm9VaS12ZXJ0aWNhbCAubm9VaS1oYW5kbGU6YWZ0ZXIge1xyXG5cdHdpZHRoOiAxNHB4O1xyXG5cdGhlaWdodDogMXB4O1xyXG5cdGxlZnQ6IDZweDtcclxuXHR0b3A6IDE0cHg7XHJcbn1cclxuLm5vVWktdmVydGljYWwgLm5vVWktaGFuZGxlOmFmdGVyIHtcclxuXHR0b3A6IDE3cHg7XHJcbn1cclxuXHJcbi8qIERpc2FibGVkIHN0YXRlO1xyXG4gKi9cclxuW2Rpc2FibGVkXS5ub1VpLWNvbm5lY3QsXHJcbltkaXNhYmxlZF0gLm5vVWktY29ubmVjdCB7XHJcblx0YmFja2dyb3VuZDogI0I4QjhCODtcclxufVxyXG5bZGlzYWJsZWRdLm5vVWktb3JpZ2luLFxyXG5bZGlzYWJsZWRdIC5ub1VpLWhhbmRsZSB7XHJcblx0Y3Vyc29yOiBub3QtYWxsb3dlZDtcclxufVxyXG4iLCIvKiBTbGlkZXIgKi9cblxuLnNsaWNrLXNsaWRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgICB0b3VjaC1hY3Rpb246IHBhbi15O1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uc2xpY2stbGlzdCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICAmLmRyYWdnaW5nIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBjdXJzb3I6IGhhbmQ7XG4gICAgfVxufVxuLnNsaWNrLXNsaWRlciAuc2xpY2stdHJhY2ssXG4uc2xpY2stc2xpZGVyIC5zbGljay1saXN0IHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cblxuLnNsaWNrLXRyYWNrIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAmOmJlZm9yZSxcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxuICAgIC5zbGljay1sb2FkaW5nICYge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxufVxuLnNsaWNrLXNsaWRlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMXB4O1xuICAgIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gICAgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgICYuc2xpY2stbG9hZGluZyBpbWcge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAmLmRyYWdnaW5nIGltZyB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgIC5zbGljay1pbml0aWFsaXplZCAmIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLnNsaWNrLWxvYWRpbmcgJiB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAuc2xpY2stdmVydGljYWwgJiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH1cbn1cbi5zbGljay1hcnJvdy5zbGljay1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59IiwiLy8gVGhlIHB1cnBvc2Ugb2YgdGhpcyBmaWxlIGlzIHRvIGhhdmUgb3VyIGN1c3RvbVxuLy8gcHJvcGVydGllcyBkZWZpbmVkIGhlcmUsIGluc3RlYWQgb2YgcHV0dGluZyB0aGVtIGluXG4vLyBfc2V0dGluZ3MuXG5cbiRzdHlsZWd1aWRlLWRlbW8tY29sb3I6ICNCQURBNTU7XG5cbi8vIEFsbG93cyB0aGUgdXNlIG9mIHJlbS1jYWxjKCkgb3IgbG93ZXItYm91bmQoKSBpbiB5b3VyIHNldHRpbmdzXG4vLyBUaGlzIHNob3VsZCBiZSBvayB0byBpbXBvcnQgdHdpY2UsIGFzIHRoaXMgd29uJ3QgYWN0dWFsbHkgYmUgcHJpbnRlZFxuLy8gb3V0IGluIHRoZSByZXN1bHRpbmcgQ1NTLlxuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vZnVuY3Rpb25zXCI7XG5cbi8vIGJyZWFrcG9pbnQgZnVuY3Rpb25zXG5AaW1wb3J0IFwiYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnRcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2Zha2UtYnJlYWtwb2ludC1zbGljZXIvc3R5bGVzaGVldHMvYnJlYWtwb2ludC1zbGljZXJcIjtcblxuJHNsaWNlci1hbnRpLW92ZXJsYXAtY29ycmVjdGlvbnM6IGVtLWNhbGMoMSk7XG5cbiRzbGljZXItYnJlYWtwb2ludHM6IChcbiAgICBicC1zbWFsbCAgICAgICAgICAgOiBlbS1jYWxjKDApLFxuICAgIGJwLXNtYWxsLXdpZGUgICAgICA6IGVtLWNhbGMoMzIwKSxcbiAgICBicC1zbWFsbC13aWRlciAgICAgOiBlbS1jYWxjKDM2MCksXG4gICAgYnAtc21hbGwtd2lkZXN0ICAgIDogZW0tY2FsYyg0MTQpLFxuICAgIGJwLW1lZGl1bSAgICAgICAgICA6IGVtLWNhbGMoNjQxKSxcbiAgICBicC1tZWRpdW0td2lkZSAgICAgOiBlbS1jYWxjKDc2OCksXG4gICAgYnAtbWVkaXVtLXdpZGVyICAgIDogZW0tY2FsYyg4ODApLFxuICAgIGJwLW1lZGl1bS13aWRlc3QgICA6IGVtLWNhbGMoOTgwKSxcbiAgICBicC1sYXJnZSAgICAgICAgICAgOiBlbS1jYWxjKDEwMjMpXG4pO1xuXG4vLyBUaGVzZSBjb2xvcnMgcmVwcmVzZW50IHRoZSBVU04gY29sb3IgcGFsZXR0ZVxuXG4vLyBAc3RhcnQtZXh0ZXJuYWwgY29sb3JzXG4kYmxhY2s6ICMwMDAwMDA7XG4kamV0OiAjMjIyMjIyO1xuJG9pbDogIzMzMzMzMztcbiRjaGFyY29hbDogIzU1NTU1NTtcbiRqdW1ibzogIzg4ODg4ODtcbiRhbHVtaW51bTogIzk5OTk5OTtcbiRiYXNlOiAjQUFBQUFBO1xuJGlyb246ICNDQ0NDQ0M7XG4kZ2FpbnNib3JvOiAjREREREREO1xuJGl2b3J5OiAjZWJlYmViO1xuJHNtb2tlOiAjZWVlZWVlO1xuJHNtb2tlLWdyYXk6ICNmNGY0ZjQ7XG4kd2hpdGU6ICNGRkZGRkY7XG4kYmx1ZS1kYXJrOiAjMTAyOTRCO1xuJGJsdWUtbGlnaHQ6ICMxMzMyNUQ7XG4kbGluay1ibHVlLWRhcms6ICMxNTUyYTg7IC8vY2hhbmdlZCBmcm9tICMyMjYyQkIgYXMgb2YgMDIvMTYvMTcgXG4kYmx1ZTogIzIyNjJiYjsgLy9jaGFuZ2VkIGZyb20gIzMxNjNhZiBhcyBvZiAwMi8xNi8xNyBcbiRsaW5rLWJsdWUtbGlnaHQ6ICMyYzdlZjA7XG4kc3RlZWwtYmx1ZS1kYXJrOiM2ZTg2OGY7XG4kc3RlZWwtYmx1ZTogI2E4YjJiNjtcbiRzdGVlbC1ibHVlLWxpZ2h0OiAjZDllNGU2O1xuJGxpZ2h0LWdyYXk6ICNjMGNhZGQ7IC8vIHVzZWQgYXMgdGV4dCBjb2xvciBpbiB0b3AtYmFyXG4kbGF2ZW5kYXI6ICNkY2RmZTg7IC8vICRzZWNvbmRhcnktc2hhZG93LWNvbG9yIFxuJGxpZ2h0LXB1cnBsZTogI2M5ZGJmNTsgLy9sYWJlbCBjb2xvciBcbiRsaWdodC1ibHVlOiAjYzBkZGYyOyAvLyB1c2VkIGZvciB0b29sdGlwIGJnXG4kbGlnaHRlc3QtYmx1ZTogI2RlZjBmZTsgXG4kYmFja2dyb3VuZC1ibHVlOiAjRUFGMEYxO1xuJGdyZWVuLWZvcmVzdDogIzAzN2I2YjsgLy9sYWJlbCBjb2xvclxuJGdyZWVuLXBybzogIzBBQkJBNDsgICAvL2xhYmVsIGNvbG9yXG4kZ3JlZW4tY2FyaWJiZWFuOiAjNWRkNWM1O1xuJGdyZWVuLXNlYS1mb2FtOiAjYWRlOGUwOyAvL2xhYmVsIGNvbG9yXG4kbXVzdGFyZDogI2E2NjcwZDtcbiRvcmFuZ2UtZGFyazogI0UzOEQxMzsgICAvL2xhYmVsIGNvbG9yXG4kb3JhbmdlLWxpZ2h0OiAjZmZjMTRlOyAvL2xhYmVsIGNvbG9yXG4keWVsbG93LWxpZ2h0OiAjZmVmNmM4OyAgICAvL2xhYmVsIGNvbG9yXG4kYmFja2dyb3VuZC15ZWxsb3c6ICNGRkY1RTU7XG4kcmVkLWJyaWNrOiAjOGQwYzA0OyAgIC8vbGFiZWwgY29sb3JcbiRyZWQtc2llbm5hOiAjYTMzNjMwO1xuJHJlZDogI0QxNDUzRDsgICAvL2xhYmVsIGNvbG9yXG4kcmVkLWNvbjogI0YwNkU2NTsgLy9sYWJlbCBjb2xvclxuJGZhY2Vib29rOiAjM2I1OTk4OyAvL2ljb24gY29sb3JcbiR0d2l0dGVyOiAjMWRhMWYyO1xuJGdvb2dsZS1wbHVzOiAjZGM0ZTQxOyAvL2luIHBsYWNlIG9mICRnb29nbGUgXG4kcmVkZGl0OiAjZjg1ZjM1O1xuXG4vLyBAZW5kLWV4dGVybmFsXG4kc2lsdmVyICAgICAgOiAjRUZFRkVGO1xuJHN0ZWVsICAgICAgIDogIzY2NjY2NjtcbiRwcmltYXJ5LWNvbG9yOiAjMjI2MkJCO1xuLy8kbGluay1ibHVlLWRhcms6ICRwcmltYXJ5LWNvbG9yO1xuLy8kbGlnaHQtYmx1ZTogI2MwZGRmMjsgLy8gdXNlZCBmb3IgdG9vbHRpcCBiZ1xuLy8kbGlnaHQtZ3JheTogI2MwY2FkZDsgLy8gdXNlZCBhcyB0ZXh0IGNvbG9yIGluIHRvcC1iYXJcbiRzdGVlbC1saWdodDogI0VDRjBGMTtcbiRzdGVlbC1kYXJrOiAjRERFMUUyO1xuJGRhcmstZ3JheTogIzc4Nzg3ODtcbiRtaXN0LWxpZ2h0OiAjZTFlMmU2O1xuXG4vLyBCYWNrZ3JvdW5kIGNvbG9yc1xuLy8kaXZvcnk6ICNlYmViZWI7XG4vLyRzbW9rZTogI2VlZWVlZTtcbiRzaWx2ZXItZGFyazogI0MwQzBDMDtcbiRzaWx2ZXItbGlnaHQ6ICNjNmM3Y2E7XG4kbWlzdDogI2VjZWRmMTtcbi8vIEVjbGlwc2UgY29sb3JzXG4kc29mdC1ibGFjazogIzFhMWExYTtcbi8vJHNtb2tlLWdyYXk6ICNmNGY0ZjQ7XG4kc2lsdmVyLWdyYXk6ICNlMWUxZTE7XG5cbi8vIExhYmVsIGNvbG9yc1xuLy8kYmx1ZTogIzMxNjNhZjtcbi8vJHN0ZWVsLWJsdWUtZGFyazojNmU4NjhmO1xuLy8kc3RlZWwtYmx1ZTogI2E4YjJiNjtcbi8vJGdyZWVuLXNlYS1mb2FtOiAjYWRlOGUwO1xuJGdyZWVuLWxpZ2h0OiAjMUFEOTUwO1xuLy8kZ3JlZW4tcHJvOiAjMEFCQkE0O1xuJGdyZWVuLWRhcms6ICNBQUQ5MUE7XG4vLyRncmVlbi1mb3Jlc3Q6ICMwMzdiNmI7XG4keWVsbG93OiAjRTNENzEzO1xuLy8keWVsbG93LWxpZ2h0OiAjZmVmNmM4O1xuLy8kb3JhbmdlLWRhcms6ICNFMzhEMTM7XG4vLyRvcmFuZ2UtbGlnaHQ6ICNmZmMxNGU7XG4vLyRyZWQ6ICNEMTQ1M0Q7XG4vLyRyZWQtY29uOiAjRjA2RTY1O1xuLy8kcmVkLWJyaWNrOiAjOGQwYzA0O1xuLy8kbGlnaHQtcHVycGxlOiAjYzlkYmY1O1xuLy8kcGluazogI2YwNWE4ZjtcbiRwaW5rLWVycm9yOiAjZmRlZWVjO1xuXG4vLyBvcmlnaW5hbCBlbmQgb2YgZXh0ZXJuYWwgXG4vLyBXZSB1c2UgdGhlc2UgdG8gZGVmaW5lIGRlZmF1bHQgZm9udCB3ZWlnaHRzXG4kZm9udC13ZWlnaHQtbGlnaHQ6IDMwMDtcbiRmb250LXdlaWdodC1ub3JtYWw6IDQwMDtcbiRmb250LXdlaWdodC1zZW1pYm9sZDogNDAwO1xuJGZvbnQtd2VpZ2h0LW1lZGl1bTogNTAwO1xuJGZvbnQtd2VpZ2h0LW1lZGl1bS1ib2xkOiA1MDA7XG4kZm9udC13ZWlnaHQtYm9sZDogNzAwO1xuXG4vLyBCdXR0b24gY29sb3JzXG4kcHJpbWFyeS1zaGFkb3ctY29sb3I6ICMxNTUyYTg7XG4kc2Vjb25kYXJ5LXNoYWRvdy1jb2xvcjogI2RjZGZlODtcbiRhY3Rpb24tY29sb3I6ICNkMTQ1M2Q7XG4kYWN0aW9uLXNoYWRvdy1jb2xvcjogI2EzMzYzMDtcbiRpbWctaWNvbi1jb2xvcjogI2E4YjJiNjsgLy8gdGhpcyBuYW1lIHNob3VsZCBiZSBjaGFuZ2VkIGl0IGlzIHRvbyB2YWd1ZVxuJGltZy1iYWNrZ3JvdW5kLWNvbG9yOiAjZDllNGU2O1xuLy8gRWNsaXBzZSB5ZWxvdyBjb2xvcnNcbiRlY2xpcHNlLWNvbG9yOiAjZGJiNjNkO1xuJGVjbGlwc2Utc2hhZG93LWNvbG9yOiAjYWQ4ZjE1O1xuXG4kYW5pbWF0aW9uLWR1cmF0aW9uOiA0MDBtcztcblxuJGljb24tc2l6ZXM6IChcbiAgICB0aW55OiAgICAgICAgcmVtLWNhbGMoMTApLFxuICAgIHNtYWxsZXN0OiAgICByZW0tY2FsYygxMiksXG4gICAgc21hbGxlcjogICAgIHJlbS1jYWxjKDE0KSxcbiAgICBzbWFsbDogICAgICAgcmVtLWNhbGMoMTYpLFxuICAgIG1lZGl1bTogICAgICByZW0tY2FsYygyNCksXG4gICAgbWVkaXVtLXBsdXM6IHJlbS1jYWxjKDI4KSxcbiAgICBsYXJnZTogICAgICAgcmVtLWNhbGMoMzIpLFxuICAgIGxhcmdlcjogICAgICByZW0tY2FsYyg0OCksXG4gICAgbGFyZ2VzdDogICAgIHJlbS1jYWxjKDY0KSxcbiAgICB4LWxhcmdlOiAgICAgcmVtLWNhbGMoODApLFxuICAgIHgtbGFyZ2VyOiAgICByZW0tY2FsYyg5NiksXG4gICAgeC1sYXJnZXN0OiAgIHJlbS1jYWxjKDExMilcbik7XG5cbi8vIEljb24gY29sb3JzXG4vLyRmYWNlYm9vazogIzM0NWQ5YjtcbiRhbHVtaW51bS1ob3ZlcjogJGFsdW1pbnVtO1xuJGZhY2Vib29rLWhvdmVyOiAjNjk5MGNhO1xuLy8kdHdpdHRlcjogIzQ4YWZmNDtcbiR0d2l0dGVyLWhvdmVyOiAjOGJjYmY2O1xuJGdvb2dsZTogI2Q2NDIyNztcbiRnb29nbGUtaG92ZXI6ICNmMjdiNjU7XG4kZW1haWw6ICMxMDJlNWQ7XG4kZW1haWwtaG92ZXI6ICM0ZDZkOWY7XG4kbW9yZTogI2U0ZTRlNDtcbiRtb3JlLWhvdmVyOiAjZWVlZGVkO1xuJGxpbmtlZGluOiAjMDA3N2I1O1xuJHN0dW1ibGV1cG9uOiAjZWI0OTI0O1xuLy8kcmVkZGl0OiAjZjg1ZjM1O1xuJHJlZGRpdC1ob3ZlcjogIzg5YjZkZjtcbiRpbWctbWFyZ2luOiByZW0tY2FsYygxNSk7XG5cbi8vIHNvY2lhbCBpY29ucyBhbmQgYnJlYWRjcnVtYiBjb2xvcnNcbiRzb2NpYWwtaWNvbi1jb2xvcjogICNhOGIyYjY7XG4kc29jaWFsLWJ1dHRvbi1iZy1jb2xvcjogI2Q5ZTRlNjtcbiRzb2NpYWwtaWNvbi1jb2xvci1ob3ZlcjogIzZlODY4ZjtcblxuLy8gZ29lczogMyBibHVlLCAyIGdyZWVuLCAzIHJlZCxcbi8vICRjb2xvcnMtbGlzdDogIzAxODNiNywgIzAxYTdlOSwgIzAxNDU2MCwgIzAwNDcwMCwgIzAwOWUwMCwgIzZiMDAwMCwgI2E4MDAwMCwgI2ZmNzA3MFxuJGNvbG9ycy1saXN0OiAkYmx1ZS1kYXJrICRyZWQgJGdyZWVuLXBybyAkb3JhbmdlLWRhcmtcbiAgICAgICAgICAgICAgIzAxODNiNyAjMDE0NTYwICMwMDllMDAgIzZiMDAwMCAjYTgwMDAwICNmZjcwNzBcbiAgICAgICAgICAgICAgJHJlZC1jb24gJGRhcmstZ3JheSAkc2lsdmVyLWRhcmsgJGdyZWVuLWRhcmtcbiAgICAgICAgICAgICAgIzc2NDkxNyAjM2YzM2MwICNjYWM0NTQgI2RiM2Y5ZCAjZmI3YzNiICM2YjAwMzg7XG5cbi8vIFVTTiB0ZXh0IHNpemUgaGVscGVyc1xuLy8gUExFQVNFIFBMRUFTRSBDSEFOR0UgRE9DVU1FTlRBVElPTiBJRiBZT1UgQ0hBTkdFIFRIRVNFIE5VTUJFUlNcbi8vIHdlIGhhdmUgZG9jdW1lbnRlZCB0aGVzZSBpbiBfdHlwb2dyYXBoeS5zY3NzXG4kdGV4dC10aW55OiByZW0tY2FsYyg4KTtcbiR0ZXh0LXNtYWxsZXN0OiByZW0tY2FsYygxMCk7XG4kdGV4dC1zbWFsbGVyOiByZW0tY2FsYygxMik7XG4kdGV4dC1zbWFsbDogcmVtLWNhbGMoMTQpO1xuJHRleHQtbm9ybWFsOiByZW0tY2FsYygxNik7XG4kdGV4dC1sYXJnZTogcmVtLWNhbGMoMTgpO1xuJHRleHQtbGFyZ2VyOiByZW0tY2FsYygyMCk7IC8vIFVudXNlZFxuJHRleHQtbGFyZ2VzdDogcmVtLWNhbGMoMjIpOyAvLyBVbnVzZWRcblxuJHRleHQtc2l6ZXM6IChcbiAgICB0aW55OiAkdGV4dC10aW55LFxuICAgIHNtYWxsZXN0OiAkdGV4dC1zbWFsbGVzdCxcbiAgICBzbWFsbGVyOiAkdGV4dC1zbWFsbGVyLFxuICAgIHNtYWxsOiAkdGV4dC1zbWFsbCxcbiAgICBub3JtYWw6ICR0ZXh0LW5vcm1hbCxcbiAgICBsYXJnZTogJHRleHQtbGFyZ2UsXG4gICAgbGFyZ2VyOiAkdGV4dC1sYXJnZXIsXG4gICAgbGFyZ2VzdDogJHRleHQtbGFyZ2VzdFxuKTtcblxuLy8gVVNOIGhlYWRpbmcgc2l6ZSBoZWxwZXJzXG4kaGVhZGluZy10aW55OiByZW0tY2FsYygxMCk7IC8vIFVudXNlZFxuJGhlYWRpbmctc21hbGxlc3Q6IHJlbS1jYWxjKDEyKTsgLy8gVW51c2VkXG4kaGVhZGluZy1zbWFsbGVyOiByZW0tY2FsYygxNCk7IC8vIFVudXNlZFxuJGhlYWRpbmctc21hbGw6IHJlbS1jYWxjKDE2KTsgLy8gVW51c2VkXG4kaGVhZGluZy1ub3JtYWw6IHJlbS1jYWxjKDE4KTtcbiRoZWFkaW5nLWxhcmdlOiByZW0tY2FsYygyNCk7XG4kaGVhZGluZy1sYXJnZXI6IHJlbS1jYWxjKDMwKTtcbiRoZWFkaW5nLWxhcmdlc3Q6IHJlbS1jYWxjKDQ1KTtcblxuJGhlYWRpbmctc2l6ZXM6IChcbiAgICB0aW55OiAkaGVhZGluZy10aW55LFxuICAgIHNtYWxsZXN0OiAkaGVhZGluZy1zbWFsbGVzdCxcbiAgICBzbWFsbGVyOiAkaGVhZGluZy1zbWFsbGVyLFxuICAgIHNtYWxsOiAkaGVhZGluZy1zbWFsbCxcbiAgICBub3JtYWw6ICRoZWFkaW5nLW5vcm1hbCxcbiAgICBsYXJnZTogJGhlYWRpbmctbGFyZ2UsXG4gICAgbGFyZ2VyOiAkaGVhZGluZy1sYXJnZXIsXG4gICAgbGFyZ2VzdDogJGhlYWRpbmctbGFyZ2VzdFxuKTtcblxuJGJsb2NrLWZsdXNoOiByZW0tY2FsYygwKTtcbiRibG9jay10aWdodGVzdDogcmVtLWNhbGMoMik7XG4kYmxvY2stdGlnaHRlcjogcmVtLWNhbGMoNCk7XG4kYmxvY2stdGlnaHQ6IHJlbS1jYWxjKDgpO1xuJGJsb2NrLW5vcm1hbDogcmVtLWNhbGMoMTUpO1xuJGJsb2NrLWxvb3NlOiByZW0tY2FsYygyNCk7XG4kYmxvY2stbG9vc2VyOiByZW0tY2FsYygzMik7XG4kYmxvY2stbG9vc2VzdDogcmVtLWNhbGMoNDgpO1xuXG4kYmxvY2stc2l6ZXM6IChcbiAgICBmbHVzaDogJGJsb2NrLWZsdXNoLFxuICAgIHRpZ2h0ZXN0OiAkYmxvY2stdGlnaHRlc3QsXG4gICAgdGlnaHRlcjogJGJsb2NrLXRpZ2h0ZXIsXG4gICAgdGlnaHQ6ICRibG9jay10aWdodCxcbiAgICBub3JtYWw6ICRibG9jay1ub3JtYWwsXG4gICAgbG9vc2U6ICRibG9jay1sb29zZSxcbiAgICBsb29zZXI6ICRibG9jay1sb29zZXIsXG4gICAgbG9vc2VzdDogJGJsb2NrLWxvb3Nlc3Rcbik7XG5cbiRiYXItZmx1c2g6IHJlbS1jYWxjKDApO1xuJGJhci10aWdodGVzdDogcmVtLWNhbGMoMik7XG4kYmFyLXRpZ2h0ZXI6IHJlbS1jYWxjKDQpO1xuJGJhci10aWdodDogcmVtLWNhbGMoOCk7XG4kYmFyLW5vcm1hbDogcmVtLWNhbGMoMTUpO1xuJGJhci1sb29zZTogcmVtLWNhbGMoMjQpO1xuJGJhci1sb29zZXI6IHJlbS1jYWxjKDMyKTtcbiRiYXItbG9vc2VzdDogcmVtLWNhbGMoNDgpO1xuXG4kYmFyLXNpemVzOiAoXG4gICAgZmx1c2g6ICRiYXItZmx1c2gsXG4gICAgdGlnaHRlc3Q6ICRiYXItdGlnaHRlc3QsXG4gICAgdGlnaHRlcjogJGJhci10aWdodGVyLFxuICAgIHRpZ2h0OiAkYmFyLXRpZ2h0LFxuICAgIG5vcm1hbDogJGJhci1ub3JtYWwsXG4gICAgbG9vc2U6ICRiYXItbG9vc2UsXG4gICAgbG9vc2VyOiAkYmFyLWxvb3NlcixcbiAgICBsb29zZXN0OiAkYmFyLWxvb3Nlc3Rcbik7XG5cbiRtYXJnaW4tdG9wLWZsdXNoOiByZW0tY2FsYygwKTtcbiRtYXJnaW4tdG9wLXRpZ2h0ZXI6IHJlbWNhbGMoNSk7XG4kbWFyZ2luLXRvcC10aWdodDogcmVtLWNhbGMoMTApO1xuJG1hcmdpbi10b3Atbm9ybWFsOiByZW0tY2FsYygxNSk7XG4kbWFyZ2luLXRvcC1sb29zZTogcmVtLWNhbGMoMjApO1xuJG1hcmdpbi10b3AtbG9vc2VyOiByZW0tY2FsYygyNSk7XG5cbiRtYXJnaW4tdG9wLXNpemVzOiAoXG4gICAgZmx1c2g6ICRtYXJnaW4tdG9wLWZsdXNoLFxuICAgIHRpZ2h0ZXI6ICRtYXJnaW4tdG9wLXRpZ2h0ZXIsXG4gICAgdGlnaHQ6ICRtYXJnaW4tdG9wLXRpZ2h0LFxuICAgIG5vcm1hbDogJG1hcmdpbi10b3Atbm9ybWFsLFxuICAgIGxvb3NlOiAkbWFyZ2luLXRvcC1sb29zZSxcbiAgICBsb29zZXI6ICRtYXJnaW4tdG9wLWxvb3NlclxuKTtcblxuLypkb2Ncbi0tLVxudGl0bGU6IHotaW5kZXggTWFwXG5uYW1lOiBnLXotaW5kZXgtbWFwXG5jYXRlZ29yeTogTGF5b3V0IC0gTGF5b3V0IEhlbHBlcnNcbi0tLVxuXG5JZiBhbiBlbGVtZW50IG5lZWRzIGEgei1pbmRleCwgdGhlbiB5b3Ugc2hvdWxkIHVzZSB0aGUgKnotaW5kZXgqIG1peGluLiBUaGUgbWFpblxucmVhc29uIGZvciBkb2luZyB0aGlzIGlzIHRvIG1haW50YWluIGEgc2luZ2xlIHBsYWNlIGluIG91ciBjb2RlIHRvXG5tYW5hZ2UgYWxsIG91ciB6LWluZGV4ZXMuXG5cbkV2ZXJ5IHRpbWUgeW91IHdhbnQgdG8gZGVjbGFyZSBhIHotaW5kZXggb24gYW55dGhpbmcgeW91IG11c3QgbW9kaWZ5IHRoZSBzYXNzXG52YXJpYWJsZSxgJHotaW5kZXhlc2AgKGxvY2F0ZWQgaW4gKioqX3ZhcmlhYmxlcy5zY3NzKioqKSB3aGljaCBpcyBhIG1hcCBvZiBhbGxcbnRoZSB6LWluZGV4ZXMgKGlkZWFsbHkpIHVzZWQgaW4gb3VyIHNhc3MuXG5cbiMjIyMgVXNhZ2UgKDIgc3RlcCBwcm9jZXNzKVxuXG5MZXQncyBzYXkgd2Ugd2FudCB0byBhc3NpZ24gYSB6LWluZGV4IHRvIHRoZSBjbGFzcyBgLmVudGVycHJpc2VgLlxuXG4oMSkgRmlyc3Qgd2UgZG8gdGhpczpcblxuYGBgc2Fzc19leGFtcGxlP3Nob3ctY29kZT10cnVlXG4uZW50ZXJwcmlzZSB7XG4gICAgQGluY2x1ZGUgei1pbmRleDtcbn1cbmBgYFxuXG4oMikgVGhlbiBpbiAqKipfdmFyaWFibGVzLnNjc3MqKiosIHdlIHB1dCB0aGUgc2VsZWN0b3IgaW5zaWRlIHRoZSAkei1pbmRleCBtYXAgYXNcbnRoZSBrZXkgYW5kIHRoZSBhY3R1YWwgbnVtZXJpY2FsIHotaW5kZXggYXMgdGhlIHZhbHVlICgqSWYgdGhlIHNlbGVjdG9yIGlzIG5lc3RlZCxcbnlvdSBtdXN0IGluY2x1ZGUgdGhlIHBhcmVudCBzZWxlY3RvciBpbiB0aGUga2V5KikuXG5cbmBgYHNhc3NfZXhhbXBsZT9zaG93LWNvZGU9dHJ1ZVxuJHotaW5kZXhlczogKFxuICAgIC4uLlxuXG4gICAgJy5lbnRlcnByaXNlJzogMTcwMSxcblxuICAgIC4uLlxufVxuYGBgXG5cbiMjIyMgVGhpcyBpcyBhIGxpc3Rpbmcgb2Ygb3VyIGN1cnJlbnQgei1pbmRleGVzOlxuXG5gYGBzYXNzX2V4YW1wbGU/c2hvdy1jb2RlPXRydWVcblxuJHotaW5kZXhlczogKFxuICAgICcuc2ctbW9kYWwnOiAxMDAwMDAyLFxuICAgICcuc2ctc2V0dGluZ3MtdHJpZ2dlcic6IDEwMDAwMDEsXG4gICAgJy5zZy1jb25zb2xlJzogMTAwMDAwMSxcbiAgICAnLnNnLWNvbXBvbmVudC1vdmVybGF5JzogMTAwMDAwMCxcblxuICAgIC8vIGF1dG9jb21wbGV0ZSByZXN1bHRzIGRyb3AtZG93biBtZW51XG4gICAgJy50d2l0dGVyLXR5cGVhaGVhZCAudHQtbWVudSc6IDE2MDAsXG4gICAgLy8gaG92ZXIgbWVudXMgc2hvdWxkIG92ZXJsYXkgbW9zdCB0aGluZ3NcbiAgICAnLm1lZ2EtbWVudS1jb250YWluZXInOiAxNTAwLFxuICAgICcucmlnaHQtb2ZmLWNhbnZhcy1tZW51IC5yaWdodC1vZmYtY2FudmFzLXRvZ2dsZSc6IDEwMDIsIC8vIG5lZWRlZCBmb3IgY2xpY2thYmlsaXR5XG5cbiAgICAnLmFkLWFkaGVzaW9uJzogODAwLFxuXG4gICAgLy8gc2VhcmNoIGZvcm0gYXQgbWVkaXVtLWRvd24gYnJlYWtwb2ludHMgaXMgYW4gb3ZlcmxheSBhbmQgc2hvdWxkIGJlIG92ZXIgYWRzXG4gICAgJy5zZWFyY2gtc21hbGwtZm9ybS1oZWFkZXItYnV0dG9ucy5pcy1maXhlZCc6IDcyMSxcbiAgICAnaHRtbC5qcyAuc2VhcmNoLWFwcGxpY2F0aW9uLWxlZnQtY29sdW1uJzogNzIwLFxuXG4gICAgJy5hZC1sZWFkZXJib2FyZC1hJzogNzAwLFxuICAgICcubWVnYS1tZW51LWNvbnRhaW5lcic6IDYwMCxcbiAgICAnaHRtbC5qcyAuc2VhcmNoLWxlZnQtY29sdW1uLmlzLWZpeGVkIC5zZWFyY2gtZm9ybS1oZWFkZXItc3RpY2t5LXJvdy5pcy1zdHVjayc6IDU3NyxcbiAgICAnaHRtbC5qcyAuc2VhcmNoLWxlZnQtY29sdW1uJzogNTc2LFxuICAgICcuc2VhcmNoLWh1ZC1zdGlja3ktcm93LmlzLXN0dWNrJzogNTc1LFxuICAgICcuc2VhcmNoLWFwcGxpY2F0aW9uLXJlc3VsdHMtaGVhZGVyLmlzLWZpeGVkJzogNTc1LFxuXG4gICAgLy8gdGhlIHN1Ym5hdiBzaG93cyBvdmVyIGFsbW9zdCBldmVyeXRoaW5nIGVsc2VcbiAgICAnLnN1Yi1uYXYtY29udGFpbmVyJzogNTAwLFxuICAgICcuc3ViLW5hdi1zZWFyY2gtbW9iaWxlJzogNTAwLFxuXG4gICAgJy5zbGlkZS11cC1jb250YWluZXInOiA0MzAsXG5cbiAgICAnLmlzLXN0aWNreSc6IDQwMCxcblxuICAgICcuc3RpY2thYmxlLmlzLXN0dWNrJzogMzAwLFxuICAgICcuc3RpY2thYmxlLmlzLWZpeGVkJzogMzAwLFxuXG4gICAgJy5zZWFyY2gtY29udHJvbC5pcy1maXhlZCc6IDIwMCxcblxuICAgIC8vIHRoZSBoYW1idXJnZXIgYnV0dG9uXG4gICAgJy50YWItYmFyIC5yaWdodC1zbWFsbCc6IDIsXG5cbiAgICAvLyBsb2NhbCBsZXZlbHNcbiAgICAnLnJhaWwtc3RpY2t5JzogMSxcblxuICAgICcuaW5wdXQtc2VhcmNoIC5pY29uLXNlYXJjaC1ib3gnOiAxLFxuICAgICcuZm9ybS1jb250cm9sIGlucHV0JzogLTEsXG4gICAgJy50YWJzLmNoYXJ0LXRhYnMuZmxleC1mcmllbmRsaWZ5LXRhYnM6YWZ0ZXInOiAtMVxuKTtcblxuYGBgXG4qL1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC8vXG4vLyBLSU5ETFkgQUREIEFOWSBFTlRSSUVTIFRPIFRISVMgTUFQIFRPIFRIRSAgIC8vXG4vLyBET0NVTUVOVEFUSU9OIEFCT1ZFICh1bnRpbCB3ZSBjYW4gYXV0b21hdGUpIC8vXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC8vXG4kei1pbmRleGVzOiAoXG4gICAgJy5zZy1tb2RhbCc6IDEwMDAwMDIsXG4gICAgJy5zZy1zZXR0aW5ncy10cmlnZ2VyJzogMTAwMDAwMSxcbiAgICAnLnNnLWNvbnNvbGUnOiAxMDAwMDAxLFxuICAgICcuc2ctY29tcG9uZW50LW92ZXJsYXknOiAxMDAwMDAwLFxuXG4gICAgLy8gYXV0b2NvbXBsZXRlIHJlc3VsdHMgZHJvcC1kb3duIG1lbnVcbiAgICAnLnR3aXR0ZXItdHlwZWFoZWFkIC50dC1tZW51JzogMTYwMCxcbiAgICAvLyBob3ZlciBtZW51cyBzaG91bGQgb3ZlcmxheSBtb3N0IHRoaW5nc1xuICAgICcubWVnYS1tZW51LWNvbnRhaW5lcic6IDE1MDAsXG4gICAgJy5yaWdodC1vZmYtY2FudmFzLW1lbnUgLnJpZ2h0LW9mZi1jYW52YXMtdG9nZ2xlJzogMTAwMiwgLy8gbmVlZGVkIGZvciBjbGlja2FiaWxpdHlcblxuICAgICcuYWQtYWRoZXNpb24nOiA4MDAsXG4gICAgJy5hZGhlc2lvbi13cmFwcGVyJzogODAwLFxuICAgIFxuICAgIC8vIHNlYXJjaCBmb3JtIGF0IG1lZGl1bS1kb3duIGJyZWFrcG9pbnRzIGlzIGFuIG92ZXJsYXkgYW5kIHNob3VsZCBiZSBvdmVyIGFkc1xuICAgICcuc2VhcmNoLXNtYWxsLWZvcm0taGVhZGVyLWJ1dHRvbnMuaXMtZml4ZWQnOiA3MjEsXG4gICAgJ2h0bWwuanMgLnNlYXJjaC1hcHBsaWNhdGlvbi1sZWZ0LWNvbHVtbic6IDcyMCxcblxuICAgICcuaGVyby1zdGlja3ktYmFyLWNvbnRhaW5lcic6IDcxMCxcbiAgICAnLmhlcm8tc3RpY2t5LWJhci1jb250YWluZXIuZml4ZWQnOiA3MTAsXG4gICAgJy5hZC1sZWFkZXJib2FyZC1hJzogNzAwLFxuICAgICcuc29jaWFsLW1vcmUnOiA2MDAsXG4gICAgJ2h0bWwuanMgLnNlYXJjaC1sZWZ0LWNvbHVtbi5pcy1maXhlZCAuc2VhcmNoLWZvcm0taGVhZGVyLXN0aWNreS1yb3cuaXMtc3R1Y2snOiA1NzcsXG4gICAgJ2h0bWwuanMgLnNlYXJjaC1sZWZ0LWNvbHVtbic6IDU3NixcbiAgICAnLnNlYXJjaC1odWQtc3RpY2t5LXJvdy5pcy1zdHVjayc6IDU3NSxcbiAgICAnLnNlYXJjaC1hcHBsaWNhdGlvbi1yZXN1bHRzLWhlYWRlci5pcy1maXhlZCc6IDU3NSxcblxuICAgIC8vIHRoZSBzdWJuYXYgc2hvd3Mgb3ZlciBhbG1vc3QgZXZlcnl0aGluZyBlbHNlXG4gICAgJy5zdWItbmF2LWRyb3Bkb3duJzogNTUxLFxuICAgICcuc3ViLW5hdi1jb250YWluZXInOiA1MDAsXG4gICAgJy5zdWItbmF2LXNlYXJjaC1tb2JpbGUnOiA1MDAsXG5cbiAgICAnLnRvZ2dsZWQtc2xpZGV1cCc6IDQzNSxcbiAgICAnLnNsaWRlLXVwLWNvbnRhaW5lcic6IDQzMCxcblxuICAgICcuaXMtc3RpY2t5JzogNDAwLFxuXG4gICAgJy5zdGlja2FibGUuaXMtc3R1Y2snOiAzMDAsXG4gICAgJy5zdGlja2FibGUuaXMtZml4ZWQnOiAzMDAsXG5cbiAgICAnLmpzLXNsaWRlc2hvdy1ob29rJzogMjAwLFxuXG4gICAgLy8gdGhlIGhhbWJ1cmdlciBidXR0b25cbiAgICAnLnRhYi1iYXIgLnJpZ2h0LXNtYWxsJzogMixcblxuICAgIC8vIGxvY2FsIGxldmVsc1xuICAgICcucmFpbC1zdGlja3knOiAxLFxuXG4gICAgJy5pbnB1dC1zZWFyY2ggLmljb24tc2VhcmNoLWJveCc6IDEsXG4gICAgJy5mb3JtLWNvbnRyb2wgaW5wdXQnOiAtMSxcblxuICAgICcudGFicy5jaGFydC10YWJzLmZsZXgtZnJpZW5kbGlmeS10YWJzOmFmdGVyJzogLTFcbik7XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC8vXG4vLyBLSU5ETFkgQUREIEFOWSBFTlRSSUVTIFRPIFRISVMgTUFQIFRPIFRIRSAgIC8vXG4vLyBET0NVTUVOVEFUSU9OIEFCT1ZFICh1bnRpbCB3ZSBjYW4gYXV0b21hdGUpIC8vXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC8vXG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBUaGlzIGlzIHRoZSBkZWZhdWx0IGh0bWwgYW5kIGJvZHkgZm9udC1zaXplIGZvciB0aGUgYmFzZSByZW0gdmFsdWUuXG4kcmVtLWJhc2U6IDE2cHggIWRlZmF1bHQ7XG5cbi8vIElNUE9SVCBPTkNFXG4vLyBXZSB1c2UgdGhpcyB0byBwcmV2ZW50IHN0eWxlcyBmcm9tIGJlaW5nIGxvYWRlZCBtdWx0aXBsZSB0aW1lcyBmb3IgY29tcG9uZW50cyB0aGF0IHJlbHkgb24gb3RoZXIgY29tcG9uZW50cy5cbiRtb2R1bGVzOiAoKSAhZGVmYXVsdDtcblxuQG1peGluIGV4cG9ydHMoJG5hbWUpIHtcbiAgLy8gSW1wb3J0IGZyb20gZ2xvYmFsIHNjb3BlXG4gICRtb2R1bGVzOiAkbW9kdWxlcyAhZ2xvYmFsO1xuICAvLyBDaGVjayBpZiBhIG1vZHVsZSBpcyBhbHJlYWR5IG9uIHRoZSBsaXN0XG4gICRtb2R1bGVfaW5kZXg6IGluZGV4KCRtb2R1bGVzLCAkbmFtZSk7XG4gIEBpZiAoKCRtb2R1bGVfaW5kZXggPT0gbnVsbCkgb3IgKCRtb2R1bGVfaW5kZXggPT0gZmFsc2UpKSB7XG4gICAgJG1vZHVsZXM6IGFwcGVuZCgkbW9kdWxlcywgJG5hbWUpICFnbG9iYWw7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy9cbi8vIEBmdW5jdGlvbnNcbi8vXG5cblxuLy8gUkFOR0VTXG4vLyBXZSB1c2UgdGhlc2UgZnVuY3Rpb25zIHRvIGRlZmluZSByYW5nZXMgZm9yIHZhcmlvdXMgdGhpbmdzLCBsaWtlIG1lZGlhIHF1ZXJpZXMuXG5AZnVuY3Rpb24gbG93ZXItYm91bmQoJHJhbmdlKSB7XG4gIEBpZiBsZW5ndGgoJHJhbmdlKSA8PSAwIHtcbiAgICBAcmV0dXJuIDA7XG4gIH1cbiAgQHJldHVybiBudGgoJHJhbmdlLCAxKTtcbn1cblxuQGZ1bmN0aW9uIHVwcGVyLWJvdW5kKCRyYW5nZSkge1xuICBAaWYgbGVuZ3RoKCRyYW5nZSkgPCAyIHtcbiAgICBAcmV0dXJuIDk5OTk5OTk5OTk5OTtcbiAgfVxuICBAcmV0dXJuIG50aCgkcmFuZ2UsIDIpO1xufVxuXG4vLyBTVFJJUCBVTklUXG4vLyBJdCBzdHJpcHMgdGhlIHVuaXQgb2YgbWVhc3VyZSBhbmQgcmV0dXJucyBpdFxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcbn1cblxuLy8gVEVYVCBJTlBVVCBUWVBFU1xuXG5AZnVuY3Rpb24gdGV4dC1pbnB1dHMoICR0eXBlczogYWxsLCAkc2VsZWN0b3I6IGlucHV0ICkge1xuXG4gICRyZXR1cm46ICgpO1xuXG4gICRhbGwtdGV4dC1pbnB1dC10eXBlczpcbiAgICB0ZXh0XG4gICAgcGFzc3dvcmRcbiAgICBkYXRlXG4gICAgZGF0ZXRpbWVcbiAgICBkYXRldGltZS1sb2NhbFxuICAgIG1vbnRoXG4gICAgd2Vla1xuICAgIGVtYWlsXG4gICAgbnVtYmVyXG4gICAgc2VhcmNoXG4gICAgdGVsXG4gICAgdGltZVxuICAgIHVybFxuICAgIGNvbG9yXG4gICAgdGV4dGFyZWE7XG5cbiAgQGlmICR0eXBlcyA9PSBhbGwgeyAkdHlwZXM6ICRhbGwtdGV4dC1pbnB1dC10eXBlczsgfVxuXG4gIEBlYWNoICR0eXBlIGluICR0eXBlcyB7XG4gICAgQGlmICR0eXBlID09IHRleHRhcmVhIHtcbiAgICAgIEBpZiAkc2VsZWN0b3IgPT0gaW5wdXQge1xuICAgICAgICAkcmV0dXJuOiBhcHBlbmQoJHJldHVybiwgdW5xdW90ZSgnI3skdHlwZX0nKSwgY29tbWEpXG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHJldHVybjogYXBwZW5kKCRyZXR1cm4sIHVucXVvdGUoJyN7JHR5cGV9I3skc2VsZWN0b3J9JyksIGNvbW1hKVxuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgJHJldHVybjogYXBwZW5kKCRyZXR1cm4sIHVucXVvdGUoJyN7JHNlbGVjdG9yfVt0eXBlPVwiI3skdHlwZX1cIl0nKSwgY29tbWEpXG4gICAgfVxuICB9XG5cbiAgICBAcmV0dXJuICRyZXR1cm47XG5cbn1cblxuLy8gQ09OVkVSVCBUTyBSRU1cbkBmdW5jdGlvbiBjb252ZXJ0LXRvLXJlbSgkdmFsdWUsICRiYXNlLXZhbHVlOiAkcmVtLWJhc2UpIHtcbiAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlLXZhbHVlKSAqIDFyZW07XG4gIEBpZiAoJHZhbHVlID09IDByZW0pIHsgJHZhbHVlOiAwOyB9IC8vIFR1cm4gMHJlbSBpbnRvIDBcbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbkBmdW5jdGlvbiBkYXRhKCRhdHRyKSB7XG4gIEBpZiAkbmFtZXNwYWNlIHtcbiAgICBAcmV0dXJuICdbZGF0YS0nICsgJG5hbWVzcGFjZSArICctJyArICRhdHRyICsgJ10nO1xuICB9XG5cbiAgQHJldHVybiAnW2RhdGEtJyArICRhdHRyICsgJ10nO1xufVxuXG4vLyBSRU0gQ0FMQ1xuXG4vLyBOZXcgU3ludGF4LCBhbGxvd3MgdG8gb3B0aW9uYWxseSBjYWxjdWxhdGUgb24gYSBkaWZmZXJlbnQgYmFzZSB2YWx1ZSB0byBjb3VudGVyIGNvbXBvdW5kaW5nIGVmZmVjdCBvZiByZW0ncy5cbi8vIENhbGwgd2l0aCAxLCAyLCAzIG9yIDQgcGFyYW1ldGVycywgJ3B4JyBpcyBub3QgcmVxdWlyZWQgYnV0IHN1cHBvcnRlZDpcbi8vXG4vLyAgIHJlbS1jYWxjKDEwIDIwIDMwcHggNDApO1xuLy9cbi8vIFNwYWNlIGRlbGltaXRlZCwgaWYgeW91IHdhbnQgdG8gZGVsaW1pdCB1c2luZyBjb21tYSdzLCB3cmFwIGl0IGluIGFub3RoZXIgcGFpciBvZiBicmFja2V0c1xuLy9cbi8vICAgcmVtLWNhbGMoKDEwLCAyMCwgMzAsIDQwcHgpKTtcbi8vXG4vLyBPcHRpb25hbGx5IGNhbGwgd2l0aCBhIGRpZmZlcmVudCBiYXNlIChlZzogOHB4KSB0byBjYWxjdWxhdGUgcmVtLlxuLy9cbi8vICAgcmVtLWNhbGMoMTZweCAzMnB4IDQ4cHgsIDhweCk7XG4vL1xuLy8gSWYgeW91IHJlcXVpcmUgdG8gY29tbWEgc2VwYXJhdGUgeW91ciBsaXN0XG4vL1xuLy8gICByZW0tY2FsYygoMTZweCwgMzJweCwgNDgpLCA4cHgpO1xuXG5AZnVuY3Rpb24gcmVtLWNhbGMoJHZhbHVlcywgJGJhc2UtdmFsdWU6ICRyZW0tYmFzZSkge1xuICAkbWF4OiBsZW5ndGgoJHZhbHVlcyk7XG5cbiAgQGlmICRtYXggPT0gMSB7IEByZXR1cm4gY29udmVydC10by1yZW0obnRoKCR2YWx1ZXMsIDEpLCAkYmFzZS12YWx1ZSk7IH1cblxuICAkcmVtVmFsdWVzOiAoKTtcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbWF4IHtcbiAgICAkcmVtVmFsdWVzOiBhcHBlbmQoJHJlbVZhbHVlcywgY29udmVydC10by1yZW0obnRoKCR2YWx1ZXMsICRpKSwgJGJhc2UtdmFsdWUpKTtcbiAgfVxuICBAcmV0dXJuICRyZW1WYWx1ZXM7XG59XG5cblxuQGZ1bmN0aW9uIGVtLWNhbGMoJHZhbHVlcykge1xuICAkcmVtVmFsdWVzOiByZW0tY2FsYygkdmFsdWVzKTtcblxuICAkbWF4OiBsZW5ndGgoJHJlbVZhbHVlcyk7XG5cbiAgQGlmICRtYXggPT0gMSB7IEByZXR1cm4gc3RyaXAtdW5pdChudGgoJHJlbVZhbHVlcywgMSkpICogMWVtOyB9XG5cbiAgJGVtVmFsdWVzOiAoKTtcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbWF4IHtcbiAgICAkZW1WYWx1ZXM6IGFwcGVuZCgkZW1WYWx1ZXMsIHN0cmlwLXVuaXQobnRoKCRyZW1WYWx1ZXMsICRpKSkgKiAxZW0pO1xuICB9XG4gIEByZXR1cm4gJGVtVmFsdWVzO1xufVxuXG5cbi8vIERlcHJlY2F0ZWQ6IE9MRCBFTSBDQUxDXG5AZnVuY3Rpb24gZW1DYWxjKCR2YWx1ZXMpIHtcbiAgQHJldHVybiBlbS1jYWxjKCR2YWx1ZXMpO1xufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBEZWZhdWx0IFZhcmlhYmxlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kQnJlYWtwb2ludC1TZXR0aW5nczogKFxuICAnZGVmYXVsdCBtZWRpYSc6IGFsbCxcbiAgJ2RlZmF1bHQgZmVhdHVyZSc6IG1pbi13aWR0aCxcbiAgJ2RlZmF1bHQgcGFpcic6IHdpZHRoLFxuXG4gICdmb3JjZSBhbGwgbWVkaWEgdHlwZSc6IGZhbHNlLFxuICAndG8gZW1zJzogZmFsc2UsXG4gICd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnOiB0cnVlLFxuXG4gICdubyBxdWVyaWVzJzogZmFsc2UsXG4gICdubyBxdWVyeSBmYWxsYmFja3MnOiBmYWxzZSxcblxuICAnYmFzZSBmb250IHNpemUnOiAxNnB4LFxuXG4gICdsZWdhY3kgc3ludGF4JzogZmFsc2Vcbik7XG5cbiRicmVha3BvaW50OiAoKSAhZGVmYXVsdDtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnRzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJicmVha3BvaW50L3NldHRpbmdzXCI7XG5AaW1wb3J0ICdicmVha3BvaW50L2NvbnRleHQnO1xuQGltcG9ydCAnYnJlYWtwb2ludC9oZWxwZXJzJztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvcGFyc2Vycyc7XG5AaW1wb3J0ICdicmVha3BvaW50L25vLXF1ZXJ5JztcblxuQGltcG9ydCAnYnJlYWtwb2ludC9yZXNwb25kLXRvJztcblxuQGltcG9ydCBcImJyZWFrcG9pbnQvbGVnYWN5LXNldHRpbmdzXCI7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQnJlYWtwb2ludCBNaXhpblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBicmVha3BvaW50KCRxdWVyeSwgJG5vLXF1ZXJ5OiBmYWxzZSkge1xuICBAaW5jbHVkZSBsZWdhY3ktc2V0dGluZ3Mtd2FybmluZztcblxuICAvLyBSZXNldCBjb250ZXh0c1xuICBAaW5jbHVkZSBwcml2YXRlLWJyZWFrcG9pbnQtcmVzZXQtY29udGV4dHMoKTtcblxuICAkYnJlYWtwb2ludDogYnJlYWtwb2ludCgkcXVlcnksIGZhbHNlKTtcblxuICAkcXVlcnktc3RyaW5nOiBtYXAtZ2V0KCRicmVha3BvaW50LCAncXVlcnknKTtcbiAgJHF1ZXJ5LWZhbGxiYWNrOiBtYXAtZ2V0KCRicmVha3BvaW50LCAnZmFsbGJhY2snKTtcblxuICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiBtYXAtZ2V0KCRicmVha3BvaW50LCAnY29udGV4dCBob2xkZXInKSAhZ2xvYmFsO1xuICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiBtYXAtZ2V0KCRicmVha3BvaW50LCAncXVlcnkgY291bnQnKSAhZ2xvYmFsO1xuXG4gIC8vIEFsbG93IGZvciBhbiBhcy1uZWVkZWQgb3ZlcnJpZGUgb3IgdXNhZ2Ugb2Ygbm8gcXVlcnkgZmFsbGJhY2suXG4gIEBpZiAkbm8tcXVlcnkgIT0gZmFsc2Uge1xuICAgICRxdWVyeS1mYWxsYmFjazogJG5vLXF1ZXJ5O1xuICB9XG5cbiAgQGlmICRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSB7XG4gICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJ25vLXF1ZXJ5JywgJHF1ZXJ5LWZhbGxiYWNrKTtcbiAgfVxuXG4gIC8vIFByaW50IE91dCBRdWVyeSBTdHJpbmdcbiAgQGlmIG5vdCBicmVha3BvaW50LWdldCgnbm8gcXVlcmllcycpIHtcbiAgICBAbWVkaWEgI3skcXVlcnktc3RyaW5nfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICBAaWYgYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpICE9IGZhbHNlIG9yIGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyaWVzJykgPT0gdHJ1ZSB7XG5cbiAgICAkdHlwZTogdHlwZS1vZihicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykpO1xuICAgICRwcmludDogZmFsc2U7XG5cbiAgICBAaWYgKCR0eXBlID09ICdib29sJykge1xuICAgICAgJHByaW50OiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoJHR5cGUgPT0gJ3N0cmluZycpIHtcbiAgICAgIEBpZiAkcXVlcnktZmFsbGJhY2sgPT0gYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpIHtcbiAgICAgICAgJHByaW50OiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAoJHR5cGUgPT0gJ2xpc3QnKSB7XG4gICAgICBAZWFjaCAkd3JhcHBlciBpbiBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykge1xuICAgICAgICBAaWYgJHF1ZXJ5LWZhbGxiYWNrID09ICR3cmFwcGVyIHtcbiAgICAgICAgICAkcHJpbnQ6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBXcml0ZSBGYWxsYmFja1xuICAgIEBpZiAoJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlKSBhbmQgKCRwcmludCA9PSB0cnVlKSB7XG4gICAgICAkdHlwZS1mYWxsYmFjazogdHlwZS1vZigkcXVlcnktZmFsbGJhY2spO1xuXG4gICAgICBAaWYgKCR0eXBlLWZhbGxiYWNrICE9ICdib29sJykge1xuICAgICAgICAjeyRxdWVyeS1mYWxsYmFja30gJiB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgcHJpdmF0ZS1icmVha3BvaW50LXJlc2V0LWNvbnRleHRzKCk7XG59XG5cblxuQG1peGluIG1xKCRxdWVyeSwgJG5vLXF1ZXJ5OiBmYWxzZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRxdWVyeSwgJG5vLXF1ZXJ5KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSGFzIFNldHRpbmdcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaGFzKCRzZXR0aW5nKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludCwgJHNldHRpbmcpIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBHZXQgU2V0dGluZ3Ncbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtZ2V0KCRzZXR0aW5nKSB7XG4gIEBpZiBicmVha3BvaW50LWhhcygkc2V0dGluZykge1xuICAgIEByZXR1cm4gbWFwLWdldCgkYnJlYWtwb2ludCwgJHNldHRpbmcpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJEJyZWFrcG9pbnQtU2V0dGluZ3MsICRzZXR0aW5nKTtcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFNldCBTZXR0aW5nc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1zZXQoJHNldHRpbmcsICR2YWx1ZSkge1xuICBAaWYgKHN0ci1pbmRleCgkc2V0dGluZywgJy0nKSBvciBzdHItaW5kZXgoJHNldHRpbmcsICdfJykpIGFuZCBzdHItaW5kZXgoJHNldHRpbmcsICcgJykgPT0gbnVsbCB7XG4gICAgQHdhcm4gXCJXb3JkcyBpbiBCcmVha3BvaW50IHNldHRpbmdzIHNob3VsZCBiZSBzZXBhcmF0ZWQgYnkgc3BhY2VzLCBub3QgZGFzaGVzIG9yIHVuZGVyc2NvcmVzLiBQbGVhc2UgcmVwbGFjZSBkYXNoZXMgYW5kIHVuZGVyc2NvcmVzIGJldHdlZW4gd29yZHMgd2l0aCBzcGFjZXMuIFNldHRpbmdzIHdpbGwgbm90IHdvcmsgYXMgZXhwZWN0ZWQgdW50aWwgY2hhbmdlZC5cIjtcbiAgfVxuICAkYnJlYWtwb2ludDogbWFwLW1lcmdlKCRicmVha3BvaW50LCAoJHNldHRpbmc6ICR2YWx1ZSkpICFnbG9iYWw7XG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuQG1peGluIGJyZWFrcG9pbnQtY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpIHtcbiAgJGJyZWFrcG9pbnQtY2hhbmdlOiBicmVha3BvaW50LXNldCgkc2V0dGluZywgJHZhbHVlKTtcbn1cblxuQG1peGluIGJyZWFrcG9pbnQtc2V0KCRzZXR0aW5nLCAkdmFsdWUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludC1jaGFuZ2UoJHNldHRpbmcsICR2YWx1ZSk7XG59XG5cbkBtaXhpbiBia3B0LWNoYW5nZSgkc2V0dGluZywgJHZhbHVlKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQtY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpO1xufVxuQG1peGluIGJrcHQtc2V0KCRzZXR0aW5nLCAkdmFsdWUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludC1jaGFuZ2UoJHNldHRpbmcsICR2YWx1ZSk7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmVtb3ZlIFNldHRpbmdcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcmVzZXQoJHNldHRpbmdzLi4uKSB7XG4gIEBpZiBsZW5ndGgoJHNldHRpbmdzKSA9PSAxIHtcbiAgICAkc2V0dGluZ3M6IG50aCgkc2V0dGluZ3MsIDEpO1xuICB9XG5cbiAgQGVhY2ggJHNldHRpbmcgaW4gJHNldHRpbmdzIHtcbiAgICAkYnJlYWtwb2ludDogbWFwLXJlbW92ZSgkYnJlYWtwb2ludCwgJHNldHRpbmcpICFnbG9iYWw7XG4gIH1cbiAgQHJldHVybiB0cnVlO1xufVxuXG5AbWl4aW4gYnJlYWtwb2ludC1yZXNldCgkc2V0dGluZ3MuLi4pIHtcbiAgJGJyZWFrcG9pbnQtcmVzZXQ6IGJyZWFrcG9pbnQtcmVzZXQoJHNldHRpbmdzKTtcbn1cblxuQG1peGluIGJrcHQtcmVzZXQoJHNldHRpbmdzLi4uKSB7XG4gICRicmVha3BvaW50LXJlc2V0OiBicmVha3BvaW50LXJlc2V0KCRzZXR0aW5ncyk7XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBQcml2YXRlIEJyZWFrcG9pbnQgVmFyaWFibGVzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6ICgpO1xuJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogMCAhZGVmYXVsdDtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBCcmVha3BvaW50IEhhcyBDb250ZXh0XG4vLyBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHlvdSBhcmUgaW5zaWRlIGEgQnJlYWtwb2ludCBxdWVyeVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1oYXMtY29udGV4dCgpIHtcbiAgQGlmIGxlbmd0aCgkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50KSB7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQnJlYWtwb2ludCBHZXQgQ29udGV4dFxuLy8gJGZlYXR1cmU6IElucHV0IGZlYXR1cmUgdG8gZ2V0IGl0J3MgY3VycmVudCBNUSBjb250ZXh0LiBSZXR1cm5zIGZhbHNlIGlmIG5vIGNvbnRleHRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtZ2V0LWNvbnRleHQoJGZlYXR1cmUpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICRmZWF0dXJlKSB7XG4gICAgJGdldDogbWFwLWdldCgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSk7XG4gICAgLy8gU3BlY2lhbCBoYW5kbGluZyBvZiBuby1xdWVyeSBmcm9tIGdldCBzaWRlIHNvIC9mYWxzZS8gcHJlcGVuZHMgYXJlbid0IHJldHVybmVkXG4gICAgQGlmICRmZWF0dXJlID09ICduby1xdWVyeScge1xuICAgICAgQGlmIHR5cGUtb2YoJGdldCkgPT0gJ2xpc3QnIGFuZCBsZW5ndGgoJGdldCkgPiAxIGFuZCBudGgoJGdldCwgMSkgPT0gZmFsc2Uge1xuICAgICAgICAkZ2V0OiBudGgoJGdldCwgbGVuZ3RoKCRnZXQpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQHJldHVybiAkZ2V0O1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgYnJlYWtwb2ludC1oYXMtY29udGV4dCgpIGFuZCAkZmVhdHVyZSA9PSAnbWVkaWEnIHtcbiAgICAgIEByZXR1cm4gYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBQcml2YXRlIGZ1bmN0aW9uIHRvIHNldCBjb250ZXh0XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGZlYXR1cmUsICR2YWx1ZSkge1xuICBAaWYgJHZhbHVlID09ICdtb25vY2hyb21lJyB7XG4gICAgJGZlYXR1cmU6ICdtb25vY2hyb21lJztcbiAgfVxuXG4gICRjdXJyZW50OiBtYXAtZ2V0KCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICRmZWF0dXJlKTtcbiAgQGlmICRjdXJyZW50IGFuZCBsZW5ndGgoJGN1cnJlbnQpID09ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQge1xuICAgIEB3YXJuIFwiWW91IGhhdmUgYWxyZWFkeSBxdWVyaWVkIGFnYWluc3QgYCN7JGZlYXR1cmV9YC4gVW5leHBlY3RlZCB0aGluZ3MgbWF5IGhhcHBlbiBpZiB5b3UgcXVlcnkgYWdhaW5zdCB0aGUgc2FtZSBmZWF0dXJlIG1vcmUgdGhhbiBvbmNlIGluIHRoZSBzYW1lIGBhbmRgIHF1ZXJ5LiBCcmVha3BvaW50IGlzIG92ZXJ3cml0aW5nIHRoZSBjdXJyZW50IGNvbnRleHQgd2l0aCBgI3skdmFsdWV9YFwiO1xuICB9XG5cbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSkge1xuICAgICR2LWhvbGRlcjogKCk7XG4gICAgQGZvciAkaSBmcm9tIDEgdG8gJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCB7XG4gICAgICBAaWYgJGZlYXR1cmUgPT0gJ21lZGlhJyB7XG4gICAgICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgZmFsc2UpO1xuICAgICAgfVxuICAgIH1cbiAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsICR2YWx1ZSk7XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogbWFwLW1lcmdlKCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICgkZmVhdHVyZTogJHYtaG9sZGVyKSkgIWdsb2JhbDtcbiAgfVxuICBAZWxzZSB7XG4gICAgJHYtaG9sZGVyOiBtYXAtZ2V0KCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICRmZWF0dXJlKTtcbiAgICAkbGVuZ3RoOiBsZW5ndGgoJHYtaG9sZGVyKTtcbiAgICBAZm9yICRpIGZyb20gJGxlbmd0aCB0byAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50IC0gMSB7XG4gICAgICBAaWYgJGZlYXR1cmUgPT0gJ21lZGlhJyB7XG4gICAgICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgZmFsc2UpO1xuICAgICAgfVxuICAgIH1cbiAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsICR2YWx1ZSk7XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogbWFwLW1lcmdlKCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICgkZmVhdHVyZTogJHYtaG9sZGVyKSkgIWdsb2JhbDtcbiAgfVxuXG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBQcml2YXRlIGZ1bmN0aW9uIHRvIHJlc2V0IGNvbnRleHRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQG1peGluIHByaXZhdGUtYnJlYWtwb2ludC1yZXNldC1jb250ZXh0cyB7XG4gICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6ICgpICFnbG9iYWw7XG4gICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IDAgIWdsb2JhbDtcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIENvbnZlcnRzIHRoZSBpbnB1dCB2YWx1ZSB0byBCYXNlIEVNc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC10by1iYXNlLWVtKCR2YWx1ZSkge1xuICAkdmFsdWUtdW5pdDogdW5pdCgkdmFsdWUpO1xuXG4gIC8vIFdpbGwgY29udmVydCByZWxhdGl2ZSBFTXMgaW50byByb290IEVNcy5cbiAgQGlmIGJyZWFrcG9pbnQtZ2V0KCdiYXNlIGZvbnQgc2l6ZScpIGFuZCB0eXBlLW9mKGJyZWFrcG9pbnQtZ2V0KCdiYXNlIGZvbnQgc2l6ZScpKSA9PSAnbnVtYmVyJyBhbmQgJHZhbHVlLXVuaXQgPT0gJ2VtJyB7XG4gICAgJGJhc2UtdW5pdDogdW5pdChicmVha3BvaW50LWdldCgnYmFzZSBmb250IHNpemUnKSk7XG5cbiAgICBAaWYgJGJhc2UtdW5pdCA9PSAncHgnIG9yICRiYXNlLXVuaXQgPT0gJyUnIG9yICRiYXNlLXVuaXQgPT0gJ2VtJyBvciAkYmFzZS11bml0ID09ICdwdCcge1xuICAgICAgQHJldHVybiBiYXNlLWNvbnZlcnNpb24oJHZhbHVlKSAvIGJhc2UtY29udmVyc2lvbihicmVha3BvaW50LWdldCgnYmFzZSBmb250IHNpemUnKSkgKiAxZW07XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICcje2JyZWFrcG9pbnQtZ2V0KFxcJ2Jhc2UgZm9udCBzaXplXFwnKX0gaXMgbm90IHNldCBpbiB2YWxpZCB1bml0cyBmb3IgZm9udCBzaXplISc7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBiYXNlLWNvbnZlcnNpb24oJHZhbHVlKTtcbiAgfVxufVxuXG5AZnVuY3Rpb24gYmFzZS1jb252ZXJzaW9uKCR2YWx1ZSkge1xuICAkdW5pdDogdW5pdCgkdmFsdWUpO1xuXG4gIEBpZiAkdW5pdCA9PSAncHgnIHtcbiAgICBAcmV0dXJuICR2YWx1ZSAvIDE2cHggKiAxZW07XG4gIH1cbiAgQGVsc2UgaWYgJHVuaXQgPT0gJyUnIHtcbiAgICBAcmV0dXJuICR2YWx1ZSAvIDEwMCUgKiAxZW07XG4gIH1cbiAgQGVsc2UgaWYgJHVuaXQgPT0gJ2VtJyB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbiAgQGVsc2UgaWYgJHVuaXQgPT0gJ3B0JyB7XG4gICAgQHJldHVybiAkdmFsdWUgLyAxMnB0ICogMWVtO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbi8vICAgIEB3YXJuICdFdmVyeXRoaW5nIGlzIHRlcnJpYmxlISBXaGF0IGhhdmUgeW91IGRvbmU/ISc7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGZlYXR1cmUgY2FuIGhhdmUgYSBtaW4vbWF4IHBhaXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJyZWFrcG9pbnQtbWluLW1heC1mZWF0dXJlczogJ2NvbG9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb2xvci1pbmRleCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXNwZWN0LXJhdGlvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXZpY2UtYXNwZWN0LXJhdGlvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXZpY2UtaGVpZ2h0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXZpY2Utd2lkdGgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlaWdodCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbW9ub2Nocm9tZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVzb2x1dGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnd2lkdGgnO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4tbWF4KCRmZWF0dXJlKSB7XG4gIEBlYWNoICRpdGVtIGluICRicmVha3BvaW50LW1pbi1tYXgtZmVhdHVyZXMge1xuICAgIEBpZiAkZmVhdHVyZSA9PSAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlIGNhbiBoYXZlIGEgc3RyaW5nIHZhbHVlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRicmVha3BvaW50LXN0cmluZy1mZWF0dXJlczogICdvcmllbnRhdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NhbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29sb3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FzcGVjdC1yYXRpbycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGV2aWNlLWFzcGVjdC1yYXRpbycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncG9pbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbHVtaW5vc2l0eSc7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXN0cmluZy12YWx1ZSgkZmVhdHVyZSkge1xuICBAZWFjaCAkaXRlbSBpbiAkYnJlYWtwb2ludC1zdHJpbmctZmVhdHVyZXMge1xuICAgIEBpZiBicmVha3BvaW50LW1pbi1tYXgoJGl0ZW0pIHtcbiAgICAgIEBpZiAkZmVhdHVyZSA9PSAnbWluLSN7JGl0ZW19JyBvciAkZmVhdHVyZSA9PSAnbWF4LSN7JGl0ZW19JyB7XG4gICAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJGZlYXR1cmUgPT0gJGl0ZW0ge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJldHVybnMgd2hldGhlciB0aGUgZmVhdHVyZSBpcyBhIG1lZGlhIHR5cGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJyZWFrcG9pbnQtbWVkaWEtdHlwZXM6ICAnYWxsJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JyYWlsbGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnZW1ib3NzZWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnaGFuZGhlbGQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAncHJpbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvamVjdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdzY3JlZW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnc3BlZWNoJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R0eScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICd0dic7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LWlzLW1lZGlhKCRmZWF0dXJlKSB7XG4gIEBlYWNoICRtZWRpYSBpbiAkYnJlYWtwb2ludC1tZWRpYS10eXBlcyB7XG4gICAgQGlmICgkZmVhdHVyZSA9PSAkbWVkaWEpIG9yICgkZmVhdHVyZSA9PSAnbm90ICN7JG1lZGlhfScpIG9yICgkZmVhdHVyZSA9PSAnb25seSAjeyRtZWRpYX0nKSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGZlYXR1cmUgY2FuIHN0YW5kIGFsb25lXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRicmVha3BvaW50LXNpbmdsZS1zdHJpbmctZmVhdHVyZXM6ICdjb2xvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29sb3ItaW5kZXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dyaWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21vbm9jaHJvbWUnO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCRmZWF0dXJlKSB7XG4gIEBlYWNoICRpdGVtIGluICRicmVha3BvaW50LXNpbmdsZS1zdHJpbmctZmVhdHVyZXMge1xuICAgIEBpZiAkZmVhdHVyZSA9PSAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LWlzLXJlc29sdXRpb24oJGZlYXR1cmUpIHtcbiAgJHJlc29sdXRpb25zOiAnZGV2aWNlLXBpeGVsLXJhdGlvJywgJ2Rwcic7XG5cbiAgQGlmIGJyZWFrcG9pbnQtZ2V0KCd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnKSB7XG4gICAgJHJlc29sdXRpb25zOiBhcHBlbmQoJHJlc29sdXRpb25zLCAncmVzb2x1dGlvbicpO1xuICB9XG5cbiAgQGVhY2ggJHJlc28gaW4gJHJlc29sdXRpb25zIHtcbiAgICBAaWYgaW5kZXgoJGZlYXR1cmUsICRyZXNvKSBvciBpbmRleCgkZmVhdHVyZSwgJ21pbi0jeyRyZXNvfScpIG9yIGluZGV4KCRmZWF0dXJlLCAnbWF4LSN7JHJlc299Jykge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gZmFsc2U7XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBQYXJzZXIgUGllY2VzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJwYXJzZXJzL3F1ZXJ5XCI7XG5AaW1wb3J0IFwicGFyc2Vycy9zaW5nbGVcIjtcbkBpbXBvcnQgXCJwYXJzZXJzL2RvdWJsZVwiO1xuQGltcG9ydCBcInBhcnNlcnMvdHJpcGxlXCI7XG5AaW1wb3J0IFwicGFyc2Vycy9yZXNvbHV0aW9uXCI7XG5cbiRNZW1vLUV4aXN0czogZnVuY3Rpb24tZXhpc3RzKG1lbW8tZ2V0KSBhbmQgZnVuY3Rpb24tZXhpc3RzKG1lbW8tc2V0KTtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBCcmVha3BvaW50IEZ1bmN0aW9uXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50KCRxdWVyeSwgJGNvbnRleHRzLi4uKSB7XG4gICRydW46IHRydWU7XG4gICRyZXR1cm46ICgpO1xuXG4gIC8vIEdyYWIgdGhlIE1lbW8gT3V0cHV0IGlmIE1lbW9pemF0aW9uIGNhbiBiZSBhIHRoaW5nXG4gIEBpZiAkTWVtby1FeGlzdHMge1xuICAgICRyZXR1cm46IG1lbW8tZ2V0KGJyZWFrcG9pbnQsIGJyZWFrcG9pbnQgJHF1ZXJ5ICRjb250ZXh0cyk7XG5cbiAgICBAaWYgJHJldHVybiAhPSBudWxsIHtcbiAgICAgICRydW46IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBub3QgJE1lbW8tRXhpc3RzIG9yICRydW4ge1xuICAgIC8vIEludGVybmFsIFZhcmlhYmxlc1xuICAgICRxdWVyeS1zdHJpbmc6ICcnO1xuICAgICRxdWVyeS1mYWxsYmFjazogZmFsc2U7XG4gICAgJHJldHVybjogKCk7XG5cbiAgICAvLyBSZXNlcnZlIEdsb2JhbCBQcml2YXRlIEJyZWFrcG9pbnQgQ29udGV4dFxuICAgICRob2xkZXItY29udGV4dDogJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjtcbiAgICAkaG9sZGVyLXF1ZXJ5LWNvdW50OiAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50O1xuXG4gICAgLy8gUmVzZXQgR2xvYmFsIFByaXZhdGUgQnJlYWtwb2ludCBDb250ZXh0XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogKCkgIWdsb2JhbDtcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAwICFnbG9iYWw7XG5cblxuICAgIC8vIFRlc3QgdG8gc2VlIGlmIGl0J3MgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdFxuICAgICRvci1saXN0OiBpZihsaXN0LXNlcGFyYXRvcigkcXVlcnkpID09ICdjb21tYScsIHRydWUsIGZhbHNlKTtcblxuXG4gICAgQGlmICgkb3ItbGlzdCA9PSBmYWxzZSBhbmQgYnJlYWtwb2ludC1nZXQoJ2xlZ2FjeSBzeW50YXgnKSA9PSBmYWxzZSkge1xuICAgICAgJHF1ZXJ5LXN0cmluZzogYnJlYWtwb2ludC1wYXJzZSgkcXVlcnkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkbGVuZ3RoOiBsZW5ndGgoJHF1ZXJ5KTtcblxuICAgICAgJGxhc3Q6IG50aCgkcXVlcnksICRsZW5ndGgpO1xuICAgICAgJHF1ZXJ5LWZhbGxiYWNrOiBicmVha3BvaW50LW5vLXF1ZXJ5KCRsYXN0KTtcblxuICAgICAgQGlmICgkcXVlcnktZmFsbGJhY2sgIT0gZmFsc2UpIHtcbiAgICAgICAgJGxlbmd0aDogJGxlbmd0aCAtIDE7XG4gICAgICB9XG5cbiAgICAgIEBpZiAoYnJlYWtwb2ludC1nZXQoJ2xlZ2FjeSBzeW50YXgnKSA9PSB0cnVlKSB7XG4gICAgICAgICRtcTogKCk7XG5cbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAkbXE6IGFwcGVuZCgkbXEsIG50aCgkcXVlcnksICRpKSwgY29tbWEpO1xuICAgICAgICB9XG5cbiAgICAgICAgJHF1ZXJ5LXN0cmluZzogYnJlYWtwb2ludC1wYXJzZSgkbXEpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkcXVlcnktc3RyaW5nOiAnJztcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAkcXVlcnktc3RyaW5nOiAkcXVlcnktc3RyaW5nICsgaWYoJGkgPT0gMSwgJycsICcsICcpICsgYnJlYWtwb2ludC1wYXJzZShudGgoJHF1ZXJ5LCAkaSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJHJldHVybjogKCdxdWVyeSc6ICRxdWVyeS1zdHJpbmcsXG4gICAgICAgICdmYWxsYmFjayc6ICRxdWVyeS1mYWxsYmFjayxcbiAgICAgICAgJ2NvbnRleHQgaG9sZGVyJzogJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcixcbiAgICAgICAgJ3F1ZXJ5IGNvdW50JzogJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudFxuICAgICk7XG4gICAgQGlmIGxlbmd0aCgkY29udGV4dHMpID4gMCBhbmQgbnRoKCRjb250ZXh0cywgMSkgIT0gZmFsc2Uge1xuICAgICAgQGlmICRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSB7XG4gICAgICAgICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCduby1xdWVyeScsICRxdWVyeS1mYWxsYmFjayk7XG4gICAgICB9XG4gICAgICAkY29udGV4dC1tYXA6ICgpO1xuICAgICAgQGVhY2ggJGNvbnRleHQgaW4gJGNvbnRleHRzIHtcbiAgICAgICAgJGNvbnRleHQtbWFwOiBtYXAtbWVyZ2UoJGNvbnRleHQtbWFwLCAoJGNvbnRleHQ6IGJyZWFrcG9pbnQtZ2V0LWNvbnRleHQoJGNvbnRleHQpKSk7XG4gICAgICB9XG4gICAgICAkcmV0dXJuOiBtYXAtbWVyZ2UoJHJldHVybiwgKGNvbnRleHQ6ICRjb250ZXh0LW1hcCkpO1xuICAgIH1cblxuICAgIC8vIFJlc2V0IEdsb2JhbCBQcml2YXRlIEJyZWFrcG9pbnQgQ29udGV4dFxuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6ICgpICFnbG9iYWw7XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogMCAhZ2xvYmFsO1xuXG4gICAgQGlmICRNZW1vLUV4aXN0cyB7XG4gICAgICAkaG9sZGVyOiBtZW1vLXNldChicmVha3BvaW50LCBicmVha3BvaW50ICRxdWVyeSAkY29udGV4dHMsICRyZXR1cm4pO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHJldHVybjtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBHZW5lcmFsIEJyZWFrcG9pbnQgUGFyc2VyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlKCRxdWVyeSkge1xuICAvLyBJbmNyZWFzZSBudW1iZXIgb2YgJ2FuZCcgcXVlcmllc1xuICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50ICsgMSAhZ2xvYmFsO1xuXG4gIC8vIFNldCB1cCBNZWRpYSBUeXBlXG4gICRxdWVyeS1wcmludDogJyc7XG5cbiAgJGZvcmNlLWFsbDogKChicmVha3BvaW50LWdldCgnZm9yY2UgYWxsIG1lZGlhIHR5cGUnKSA9PSB0cnVlKSBhbmQgKGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJykgPT0gJ2FsbCcpKTtcbiAgJGVtcHR5LW1lZGlhOiB0cnVlO1xuICBAaWYgKCRmb3JjZS1hbGwgPT0gdHJ1ZSkgb3IgKGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJykgIT0gJ2FsbCcpIHtcbiAgICAvLyBGb3JjZSB0aGUgcHJpbnQgb2YgdGhlIGRlZmF1bHQgbWVkaWEgdHlwZSBpZiAoZm9yY2UgYWxsIGlzIHRydWUgYW5kIGRlZmF1bHQgbWVkaWEgdHlwZSBpcyBhbGwpIG9yIChkZWZhdWx0IG1lZGlhIHR5cGUgaXMgbm90IGFsbClcbiAgICAkcXVlcnktcHJpbnQ6IGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJyk7XG4gICAgJGVtcHR5LW1lZGlhOiBmYWxzZTtcbiAgfVxuXG5cbiAgJHF1ZXJ5LXJlc29sdXRpb246IGZhbHNlO1xuXG4gICRxdWVyeS1ob2xkZXI6IGJyZWFrcG9pbnQtcGFyc2UtcXVlcnkoJHF1ZXJ5KTtcblxuXG5cbiAgLy8gTG9vcCBvdmVyIGVhY2ggcGFyc2VkIG91dCBxdWVyeSBhbmQgd3JpdGUgaXQgdG8gJHF1ZXJ5LXByaW50XG4gICRmaXJzdDogdHJ1ZTtcblxuICBAZWFjaCAkZmVhdHVyZSBpbiAkcXVlcnktaG9sZGVyIHtcbiAgICAkbGVuZ3RoOiBsZW5ndGgoJGZlYXR1cmUpO1xuXG4gICAgLy8gUGFyc2UgYSBzaW5nbGUgZmVhdHVyZVxuICAgIEBpZiAoJGxlbmd0aCA9PSAxKSB7XG4gICAgICAvLyBGZWF0dXJlIGlzIGN1cnJlbnRseSBhIGxpc3QsIGdyYWIgdGhlIGFjdHVhbCB2YWx1ZVxuICAgICAgJGZlYXR1cmU6IG50aCgkZmVhdHVyZSwgMSk7XG5cbiAgICAgIC8vIE1lZGlhIFR5cGUgbXVzdCBieSBjb252ZW50aW9uIGJlIHRoZSBmaXJzdCBpdGVtLCBzbyBpdCdzIHNhZmUgdG8gZmxhdCBvdmVycmlkZSAkcXVlcnktcHJpbnQsIHdoaWNoIHJpZ2h0IG5vdyBzaG91bGQgb25seSBiZSB0aGUgZGVmYXVsdCBtZWRpYSB0eXBlXG4gICAgICBAaWYgKGJyZWFrcG9pbnQtaXMtbWVkaWEoJGZlYXR1cmUpKSB7XG4gICAgICAgIEBpZiAoJGZvcmNlLWFsbCA9PSB0cnVlKSBvciAoJGZlYXR1cmUgIT0gJ2FsbCcpIHtcbiAgICAgICAgICAvLyBGb3JjZSB0aGUgcHJpbnQgb2YgdGhlIGRlZmF1bHQgbWVkaWEgdHlwZSBpZiAoZm9yY2UgYWxsIGlzIHRydWUgYW5kIGRlZmF1bHQgbWVkaWEgdHlwZSBpcyBhbGwpIG9yIChkZWZhdWx0IG1lZGlhIHR5cGUgaXMgbm90IGFsbClcbiAgICAgICAgICAkcXVlcnktcHJpbnQ6ICRmZWF0dXJlO1xuICAgICAgICAgICRlbXB0eS1tZWRpYTogZmFsc2U7XG5cbiAgICAgICAgICAvLyBTZXQgQ29udGV4dFxuICAgICAgICAgICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1lZGlhLCAkcXVlcnktcHJpbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2Utc2luZ2xlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAgICRxdWVyeS1wcmludDogJyN7JHF1ZXJ5LXByaW50fSAjeyRwYXJzZWR9JztcbiAgICAgICAgJGZpcnN0OiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gUGFyc2UgYSBkb3VibGUgZmVhdHVyZVxuICAgIEBlbHNlIGlmICgkbGVuZ3RoID09IDIpIHtcbiAgICAgIEBpZiAoYnJlYWtwb2ludC1pcy1yZXNvbHV0aW9uKCRmZWF0dXJlKSAhPSBmYWxzZSkge1xuICAgICAgICAkcXVlcnktcmVzb2x1dGlvbjogJGZlYXR1cmU7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRwYXJzZWQ6IG51bGw7XG4gICAgICAgIC8vIElmIGl0J3MgYSBzdHJpbmcvbnVtYmVyIHBhaXIsXG4gICAgICAgIC8vIHdlIGNoZWNrIHRvIHNlZSBpZiBvbmUgaXMgYSBzaW5nbGUtc3RyaW5nIHZhbHVlLFxuICAgICAgICAvLyB0aGVuIHdlIHBhcnNlIGl0IGFzIGEgbm9ybWFsIGRvdWJsZVxuICAgICAgICAkYWxwaGE6IG50aCgkZmVhdHVyZSwgMSk7XG4gICAgICAgICRiZXRhOiBudGgoJGZlYXR1cmUsIDIpO1xuICAgICAgICBAaWYgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCRhbHBoYSkgb3IgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCRiZXRhKSB7XG4gICAgICAgICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1zaW5nbGUoJGFscGhhLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xuICAgICAgICAgICRmaXJzdDogZmFsc2U7XG4gICAgICAgICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1zaW5nbGUoJGJldGEsICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgICAgICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xuICAgICAgICAgICRmaXJzdDogZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLy8gUGFyc2UgYSB0cmlwbGUgZmVhdHVyZVxuICAgIEBlbHNlIGlmICgkbGVuZ3RoID09IDMpIHtcbiAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtdHJpcGxlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XG4gICAgICAkZmlyc3Q6IGZhbHNlO1xuICAgIH1cblxuICB9XG5cbiAgQGlmICgkcXVlcnktcmVzb2x1dGlvbiAhPSBmYWxzZSkge1xuICAgICRxdWVyeS1wcmludDogYnJlYWtwb2ludC1idWlsZC1yZXNvbHV0aW9uKCRxdWVyeS1wcmludCwgJHF1ZXJ5LXJlc29sdXRpb24sICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgfVxuXG4gIC8vIExvb3AgdGhyb3VnaCBlYWNoIGZlYXR1cmUgdGhhdCdzIGJlZW4gZGV0ZWN0ZWQgc28gZmFyIGFuZCBhcHBlbmQgJ2ZhbHNlJyB0byB0aGUgdGhlIHZhbHVlIGxpc3QgdG8gaW5jcmVtZW50IHRoZWlyIGNvdW50ZXJzXG4gIEBlYWNoICRmLCAkdiBpbiAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyIHtcbiAgICAkdi1ob2xkZXI6ICR2O1xuICAgICRsZW5ndGg6IGxlbmd0aCgkdi1ob2xkZXIpO1xuICAgIEBpZiBsZW5ndGgoJHYtaG9sZGVyKSA8ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQge1xuICAgICAgQGZvciAkaSBmcm9tICRsZW5ndGggdG8gJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCB7XG4gICAgICAgIEBpZiAkZiA9PSAnbWVkaWEnIHtcbiAgICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJykpO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiBtYXAtbWVyZ2UoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgKCRmOiAkdi1ob2xkZXIpKSAhZ2xvYmFsO1xuICB9XG5cbiAgQHJldHVybiAkcXVlcnktcHJpbnQ7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1xdWVyeSgkcXVlcnkpIHtcbiAgLy8gUGFyc2UgZmVhdHVyZXMgb3V0IG9mIGFuIGluZGl2aWR1YWwgcXVlcnlcbiAgJGZlYXR1cmUtaG9sZGVyOiAoKTtcbiAgJHF1ZXJ5LWhvbGRlcjogKCk7XG4gICRsZW5ndGg6IGxlbmd0aCgkcXVlcnkpO1xuXG4gIEBpZiAkbGVuZ3RoID09IDIge1xuICAgIC8vIElmIHdlJ3ZlIGdvdCBhIHN0cmluZy9udW1iZXIsIG51bWJlci9zdHJpbmcsIGNoZWNrIHRvIHNlZSBpZiBpdCdzIGEgdmFsaWQgc3RyaW5nL251bWJlciBwYWlyIG9yIHR3byBzaW5nbGVzXG4gICAgQGlmICh0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnc3RyaW5nJyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgPT0gJ251bWJlcicpIG9yICh0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnbnVtYmVyJyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgPT0gJ3N0cmluZycpIHtcblxuICAgICAgJG51bWJlcjogJyc7XG4gICAgICAkdmFsdWU6ICcnO1xuXG4gICAgICBAaWYgdHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gJ3N0cmluZycge1xuICAgICAgICAkbnVtYmVyOiBudGgoJHF1ZXJ5LCAyKTtcbiAgICAgICAgJHZhbHVlOiBudGgoJHF1ZXJ5LCAxKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJG51bWJlcjogbnRoKCRxdWVyeSwgMSk7XG4gICAgICAgICR2YWx1ZTogbnRoKCRxdWVyeSwgMik7XG4gICAgICB9XG5cbiAgICAgIC8vIElmIHRoZSBzdHJpbmcgdmFsdWUgY2FuIGJlIGEgc2luZ2xlIHZhbHVlLCBjaGVjayB0byBzZWUgaWYgdGhlIG51bWJlciBwYXNzZWQgaW4gaXMgYSB2YWxpZCBpbnB1dCBmb3Igc2FpZCBzaW5nbGUgdmFsdWUuIEZvcnR1bmF0ZWx5LCBhbGwgY3VycmVudCBzaW5nbGUtdmFsdWUgb3B0aW9ucyBvbmx5IGFjY2VwdCB1bml0bGVzcyBudW1iZXJzLCBzbyB0aGlzIGNoZWNrIGlzIGVhc3kuXG4gICAgICBAaWYgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCR2YWx1ZSkge1xuICAgICAgICBAaWYgdW5pdGxlc3MoJG51bWJlcikge1xuICAgICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKCR2YWx1ZSwgJG51bWJlciwgc3BhY2UpO1xuICAgICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcbiAgICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIElmIHRoZSBzdHJpbmcgaXMgYSBtZWRpYSB0eXBlLCBzcGxpdCB0aGUgcXVlcnlcbiAgICAgIEBpZiBicmVha3BvaW50LWlzLW1lZGlhKCR2YWx1ZSkge1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgbnRoKCRxdWVyeSwgMSkpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgbnRoKCRxdWVyeSwgMikpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG4gICAgICAvLyBJZiBpdCdzIG5vdCBhIHNpbmdsZSBmZWF0dXJlLCB3ZSdyZSBqdXN0IGdvaW5nIHRvIGFzc3VtZSBpdCdzIGEgcHJvcGVyIHN0cmluZy92YWx1ZSBwYWlyLCBhbmQgcm9sbCB3aXRoIGl0LlxuICAgICAgQGVsc2Uge1xuICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZCgkdmFsdWUsICRudW1iZXIsIHNwYWNlKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG5cbiAgICB9XG4gICAgLy8gSWYgdGhleSdyZSBib3RoIG51bWJlcnMsIHdlIGFzc3VtZSBpdCdzIGEgZG91YmxlIGFuZCByb2xsIHdpdGggdGhhdFxuICAgIEBlbHNlIGlmICh0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnbnVtYmVyJyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgPT0gJ251bWJlcicpIHtcbiAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKG50aCgkcXVlcnksIDEpLCBudGgoJHF1ZXJ5LCAyKSwgc3BhY2UpO1xuICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgIH1cbiAgICAvLyBJZiB0aGV5J3JlIGJvdGggc3RyaW5ncyBhbmQgbmVpdGhlciBhcmUgc2luZ2xlcywgd2Ugcm9sbCB3aXRoIHRoYXQuXG4gICAgQGVsc2UgaWYgKHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpID09ICdzdHJpbmcnIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDIpKSA9PSAnc3RyaW5nJykge1xuICAgICAgQGlmIG5vdCBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcobnRoKCRxdWVyeSwgMSkpIGFuZCBub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDIpKSB7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKG50aCgkcXVlcnksIDEpLCBudGgoJHF1ZXJ5LCAyKSwgc3BhY2UpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyLCBjb21tYSk7XG4gICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGxlbmd0aCA9PSAzIHtcbiAgICAvLyBJZiB3ZSd2ZSBnb3QgdGhyZWUgaXRlbXMgYW5kIG5vbmUgaXMgYSBsaXN0LCB3ZSBjaGVjayB0byBzZWVcbiAgICBAaWYgdHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgIT0gJ2xpc3QnIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDIpKSAhPSAnbGlzdCcgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMykpICE9ICdsaXN0JyB7XG4gICAgICAvLyBJZiBub25lIG9mIHRoZSBpdGVtcyBhcmUgc2luZ2xlIHN0cmluZyB2YWx1ZXMgYW5kIG5vbmUgb2YgdGhlIHZhbHVlcyBhcmUgbWVkaWEgdmFsdWVzLCB3ZSdyZSBnb29kLlxuICAgICAgQGlmIChub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDEpKSBhbmQgbm90IGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZyhudGgoJHF1ZXJ5LCAyKSkgYW5kIG5vdCBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcobnRoKCRxdWVyeSwgMykpKSBhbmQgICgobm90IGJyZWFrcG9pbnQtaXMtbWVkaWEobnRoKCRxdWVyeSwgMSkpIGFuZCBub3QgYnJlYWtwb2ludC1pcy1tZWRpYShudGgoJHF1ZXJ5LCAyKSkgYW5kIG5vdCBicmVha3BvaW50LWlzLW1lZGlhKG50aCgkcXVlcnksIDMpKSkpIHtcbiAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQobnRoKCRxdWVyeSwgMSksIG50aCgkcXVlcnksIDIpLCBzcGFjZSk7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKCRmZWF0dXJlLWhvbGRlciwgbnRoKCRxdWVyeSwgMyksIHNwYWNlKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG4gICAgICAvLyBsZXQncyBjaGVjayB0byBzZWUgaWYgdGhlIGZpcnN0IGl0ZW0gaXMgYSBtZWRpYSB0eXBlXG4gICAgICBAZWxzZSBpZiBicmVha3BvaW50LWlzLW1lZGlhKG50aCgkcXVlcnksIDEpKSB7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCBudGgoJHF1ZXJ5LCAxKSk7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKG50aCgkcXVlcnksIDIpLCBudGgoJHF1ZXJ5LCAzKSwgc3BhY2UpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyKTtcbiAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElmIGl0J3MgYSBzaW5nbGUgaXRlbSwgb3IgaWYgaXQncyBub3QgYSBzcGVjaWFsIGNhc2UgZG91YmxlIG9yIHRyaXBsZSwgd2UgY2FuIHNpbXBseSByZXR1cm4gdGhlIHF1ZXJ5LlxuICBAcmV0dXJuICRxdWVyeTtcbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IFBpZWNlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwic2luZ2xlL2RlZmF1bHRcIjtcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2Utc2luZ2xlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCkge1xuICAkcGFyc2VkOiAnJztcbiAgJGxlYWRlcjogJyc7XG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcbiAgQGlmIG5vdCAoJGVtcHR5LW1lZGlhKSBvciBub3QgKCRmaXJzdCkge1xuICAgICRsZWFkZXI6ICdhbmQgJztcbiAgfVxuXG4gIC8vIElmIGl0J3MgYSBzaW5nbGUgZmVhdHVyZSB0aGF0IGNhbiBzdGFuZCBhbG9uZSwgd2UgbGV0IGl0XG4gIEBpZiAoYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCRmZWF0dXJlKSkge1xuICAgICRwYXJzZWQ6ICRmZWF0dXJlO1xuICAgIC8vIFNldCBDb250ZXh0XG4gICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGZlYXR1cmUsICRmZWF0dXJlKTtcbiAgfVxuICAvLyBJZiBpdCdzIG5vdCBhIHN0YW5kIGFsb25lIGZlYXR1cmUsIHdlIHBhc3MgaXQgb2ZmIHRvIHRoZSBkZWZhdWx0IGhhbmRsZXIuXG4gIEBlbHNlIHtcbiAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRlZmF1bHQoJGZlYXR1cmUpO1xuICB9XG5cbiAgQHJldHVybiAkbGVhZGVyICsgJygnICsgJHBhcnNlZCArICcpJztcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRlZmF1bHQoJGZlYXR1cmUpIHtcbiAgJGRlZmF1bHQ6IGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IGZlYXR1cmUnKTtcblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgkZGVmYXVsdCwgJGZlYXR1cmUpO1xuXG4gIEBpZiAoYnJlYWtwb2ludC1nZXQoJ3RvIGVtcycpID09IHRydWUpIGFuZCAodHlwZS1vZigkZmVhdHVyZSkgPT0gJ251bWJlcicpIHtcbiAgICBAcmV0dXJuICcjeyRkZWZhdWx0fTogI3ticmVha3BvaW50LXRvLWJhc2UtZW0oJGZlYXR1cmUpfSc7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJyN7JGRlZmF1bHR9OiAjeyRmZWF0dXJlfSc7XG4gIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IFBpZWNlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwiZG91YmxlL2RlZmF1bHQtcGFpclwiO1xuQGltcG9ydCBcImRvdWJsZS9kb3VibGUtc3RyaW5nXCI7XG5AaW1wb3J0IFwiZG91YmxlL2RlZmF1bHRcIjtcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCkge1xuICAkcGFyc2VkOiAnJztcbiAgJGxlYWRlcjogJyc7XG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcbiAgQGlmIG5vdCAoJGVtcHR5LW1lZGlhKSBvciBub3QgKCRmaXJzdCkge1xuICAgICRsZWFkZXI6ICdhbmQgJztcbiAgfVxuXG4gICRmaXJzdDogbnRoKCRmZWF0dXJlLCAxKTtcbiAgJHNlY29uZDogbnRoKCRmZWF0dXJlLCAyKTtcblxuICAvLyBJZiB3ZSd2ZSBnb3QgdHdvIG51bWJlcnMsIHdlIGtub3cgd2UgbmVlZCB0byB1c2UgdGhlIGRlZmF1bHQgcGFpciBiZWNhdXNlIHRoZXJlIGFyZSBubyBtZWRpYSBxdWVyaWVzIHRoYXQgaGFzIGEgbWVkaWEgZmVhdHVyZSB0aGF0IGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCRmaXJzdCkgPT0gJ251bWJlcicgYW5kIHR5cGUtb2YoJHNlY29uZCkgPT0gJ251bWJlcicge1xuICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZGVmYXVsdC1wYWlyKCRmaXJzdCwgJHNlY29uZCk7XG4gIH1cbiAgLy8gSWYgdGhleSBhcmUgYm90aCBzdHJpbmdzLCB3ZSBzZW5kIGl0IHRocm91Z2ggdGhlIHN0cmluZyBwYXJzZXJcbiAgQGVsc2UgaWYgdHlwZS1vZigkZmlyc3QpID09ICdzdHJpbmcnIGFuZCB0eXBlLW9mKCRzZWNvbmQpID09ICdzdHJpbmcnIHtcbiAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRvdWJsZS1zdHJpbmcoJGZpcnN0LCAkc2Vjb25kKTtcbiAgfVxuICAvLyBJZiBpdCdzIGEgc3RyaW5nL251bWJlciBwYWlyLCB3ZSBwYXJzZSBpdCBhcyBhIG5vcm1hbCBkb3VibGVcbiAgQGVsc2Uge1xuICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlLWRlZmF1bHQoJGZpcnN0LCAkc2Vjb25kKTtcbiAgfVxuXG4gIEByZXR1cm4gJGxlYWRlciArICRwYXJzZWQ7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1kZWZhdWx0LXBhaXIoJGZpcnN0LCAkc2Vjb25kKSB7XG4gICRkZWZhdWx0OiBicmVha3BvaW50LWdldCgnZGVmYXVsdCBwYWlyJyk7XG4gICRtaW46ICcnO1xuICAkbWF4OiAnJztcblxuICAvLyBTb3J0IGludG8gbWluIGFuZCBtYXhcbiAgJG1pbjogbWluKCRmaXJzdCwgJHNlY29uZCk7XG4gICRtYXg6IG1heCgkZmlyc3QsICRzZWNvbmQpO1xuXG4gIC8vIFNldCBDb250ZXh0XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1pbi0jeyRkZWZhdWx0fSwgJG1pbik7XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1heC0jeyRkZWZhdWx0fSwgJG1heCk7XG5cbiAgLy8gTWFrZSB0aGVtIEVNcyBpZiBuZWVkIGJlXG4gIEBpZiAoYnJlYWtwb2ludC1nZXQoJ3RvIGVtcycpID09IHRydWUpIHtcbiAgICAkbWluOiBicmVha3BvaW50LXRvLWJhc2UtZW0oJG1pbik7XG4gICAgJG1heDogYnJlYWtwb2ludC10by1iYXNlLWVtKCRtYXgpO1xuICB9XG5cbiAgQHJldHVybiAnKG1pbi0jeyRkZWZhdWx0fTogI3skbWlufSkgYW5kIChtYXgtI3skZGVmYXVsdH06ICN7JG1heH0pJztcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRvdWJsZS1zdHJpbmcoJGZpcnN0LCAkc2Vjb25kKSB7XG4gICRmZWF0dXJlOiAnJztcbiAgJHZhbHVlOiAnJztcblxuICAvLyBUZXN0IHRvIHNlZSB3aGljaCBpcyB0aGUgZmVhdHVyZSBhbmQgd2hpY2ggaXMgdGhlIHZhbHVlXG4gIEBpZiAoYnJlYWtwb2ludC1zdHJpbmctdmFsdWUoJGZpcnN0KSA9PSB0cnVlKSB7XG4gICAgJGZlYXR1cmU6ICRmaXJzdDtcbiAgICAkdmFsdWU6ICRzZWNvbmQ7XG4gIH1cbiAgQGVsc2UgaWYgKGJyZWFrcG9pbnQtc3RyaW5nLXZhbHVlKCRzZWNvbmQpID09IHRydWUpIHtcbiAgICAkZmVhdHVyZTogJHNlY29uZDtcbiAgICAkdmFsdWU6ICRmaXJzdDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gXCJOZWl0aGVyICN7JGZpcnN0fSBub3IgI3skc2Vjb25kfSBpcyBhIHZhbGlkIG1lZGlhIHF1ZXJ5IG5hbWUuXCI7XG4gIH1cblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgkZmVhdHVyZSwgJHZhbHVlKTtcblxuICBAcmV0dXJuICcoI3skZmVhdHVyZX06ICN7JHZhbHVlfSknO1xufSIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRvdWJsZS1kZWZhdWx0KCRmaXJzdCwgJHNlY29uZCkge1xuICAkZmVhdHVyZTogJyc7XG4gICR2YWx1ZTogJyc7XG5cbiAgQGlmIHR5cGUtb2YoJGZpcnN0KSA9PSAnc3RyaW5nJyB7XG4gICAgJGZlYXR1cmU6ICRmaXJzdDtcbiAgICAkdmFsdWU6ICRzZWNvbmQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgICRmZWF0dXJlOiAkc2Vjb25kO1xuICAgICR2YWx1ZTogJGZpcnN0O1xuICB9XG5cbiAgLy8gU2V0IENvbnRleHRcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGZlYXR1cmUsICR2YWx1ZSk7XG5cbiAgQGlmIChicmVha3BvaW50LWdldCgndG8gZW1zJykgPT0gdHJ1ZSkge1xuICAgICR2YWx1ZTogYnJlYWtwb2ludC10by1iYXNlLWVtKCR2YWx1ZSk7XG4gIH1cblxuICBAcmV0dXJuICcoI3skZmVhdHVyZX06ICN7JHZhbHVlfSknXG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBQaWVjZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInRyaXBsZS9kZWZhdWx0XCI7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLXRyaXBsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpIHtcbiAgJHBhcnNlZDogJyc7XG4gICRsZWFkZXI6ICcnO1xuXG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcbiAgQGlmIG5vdCAoJGVtcHR5LW1lZGlhKSBvciBub3QgKCRmaXJzdCkge1xuICAgICRsZWFkZXI6ICdhbmQgJztcbiAgfVxuXG4gIC8vIHNlcGFyYXRlIHRoZSBzdHJpbmcgZmVhdHVyZXMgZnJvbSB0aGUgdmFsdWUgbnVtYmVyc1xuICAkc3RyaW5nOiBudWxsO1xuICAkbnVtYmVyczogbnVsbDtcbiAgQGVhY2ggJHZhbCBpbiAkZmVhdHVyZSB7XG4gICAgQGlmIHR5cGUtb2YoJHZhbCkgPT0gc3RyaW5nIHtcbiAgICAgICRzdHJpbmc6ICR2YWw7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpZiB0eXBlLW9mKCRudW1iZXJzKSA9PSAnbnVsbCcge1xuICAgICAgICAkbnVtYmVyczogJHZhbDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJG51bWJlcnM6IGFwcGVuZCgkbnVtYmVycywgJHZhbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS10cmlwbGUtZGVmYXVsdCgkc3RyaW5nLCBudGgoJG51bWJlcnMsIDEpLCBudGgoJG51bWJlcnMsIDIpKTtcblxuICBAcmV0dXJuICRsZWFkZXIgKyAkcGFyc2VkO1xuXG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS10cmlwbGUtZGVmYXVsdCgkZmVhdHVyZSwgJGZpcnN0LCAkc2Vjb25kKSB7XG5cbiAgLy8gU29ydCBpbnRvIG1pbiBhbmQgbWF4XG4gICRtaW46IG1pbigkZmlyc3QsICRzZWNvbmQpO1xuICAkbWF4OiBtYXgoJGZpcnN0LCAkc2Vjb25kKTtcblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtaW4tI3skZmVhdHVyZX0sICRtaW4pO1xuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtYXgtI3skZmVhdHVyZX0sICRtYXgpO1xuXG4gIC8vIE1ha2UgdGhlbSBFTXMgaWYgbmVlZCBiZVxuICBAaWYgKGJyZWFrcG9pbnQtZ2V0KCd0byBlbXMnKSA9PSB0cnVlKSB7XG4gICAgJG1pbjogYnJlYWtwb2ludC10by1iYXNlLWVtKCRtaW4pO1xuICAgICRtYXg6IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkbWF4KTtcbiAgfVxuXG4gIEByZXR1cm4gJyhtaW4tI3skZmVhdHVyZX06ICN7JG1pbn0pIGFuZCAobWF4LSN7JGZlYXR1cmV9OiAjeyRtYXh9KSc7XG59XG4iLCJAaW1wb3J0IFwicmVzb2x1dGlvbi9yZXNvbHV0aW9uXCI7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LWJ1aWxkLXJlc29sdXRpb24oJHF1ZXJ5LXByaW50LCAkcXVlcnktcmVzb2x1dGlvbiwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpIHtcbiAgJGxlYWRlcjogJyc7XG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcbiAgQGlmIG5vdCAoJGVtcHR5LW1lZGlhKSBvciBub3QgKCRmaXJzdCkge1xuICAgICRsZWFkZXI6ICdhbmQgJztcbiAgfVxuXG4gIEBpZiBicmVha3BvaW50LWdldCgndHJhbnNmb3JtIHJlc29sdXRpb25zJykgYW5kICRxdWVyeS1yZXNvbHV0aW9uIHtcbiAgICAkcmVzb2x1dGlvbnM6IGJyZWFrcG9pbnQtbWFrZS1yZXNvbHV0aW9ucygkcXVlcnktcmVzb2x1dGlvbik7XG4gICAgJGxlbmd0aDogbGVuZ3RoKCRyZXNvbHV0aW9ucyk7XG4gICAgJHF1ZXJ5LWhvbGRlcjogJyc7XG5cbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgJHF1ZXJ5OiAnI3skcXVlcnktcHJpbnR9ICN7JGxlYWRlcn0je250aCgkcmVzb2x1dGlvbnMsICRpKX0nO1xuICAgICAgQGlmICRpID09IDEge1xuICAgICAgICAkcXVlcnktaG9sZGVyOiAkcXVlcnk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6ICcjeyRxdWVyeS1ob2xkZXJ9LCAjeyRxdWVyeX0nO1xuICAgICAgfVxuICAgIH1cblxuICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gUmV0dXJuIHdpdGggYXR0YWNoZWQgcmVzb2x1dGlvblxuICAgIEByZXR1cm4gJHF1ZXJ5LXByaW50O1xuICB9XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1tYWtlLXJlc29sdXRpb25zKCRyZXNvbHV0aW9uKSB7XG4gICRsZW5ndGg6IGxlbmd0aCgkcmVzb2x1dGlvbik7XG5cbiAgJG91dHB1dDogKCk7XG5cbiAgQGlmICRsZW5ndGggPT0gMiB7XG4gICAgJGZlYXR1cmU6ICcnO1xuICAgICR2YWx1ZTogJyc7XG5cbiAgICAvLyBGaW5kIHdoaWNoIGlzIG51bWJlclxuICAgIEBpZiB0eXBlLW9mKG50aCgkcmVzb2x1dGlvbiwgMSkpID09ICdudW1iZXInIHtcbiAgICAgICR2YWx1ZTogbnRoKCRyZXNvbHV0aW9uLCAxKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHZhbHVlOiBudGgoJHJlc29sdXRpb24sIDIpO1xuICAgIH1cblxuICAgIC8vIERldGVybWluZSBtaW4vbWF4L3N0YW5kYXJkXG4gICAgQGlmIGluZGV4KCRyZXNvbHV0aW9uLCAnbWluLXJlc29sdXRpb24nKSB7XG4gICAgICAkZmVhdHVyZTogJ21pbi0nO1xuICAgIH1cbiAgICBAZWxzZSBpZiBpbmRleCgkcmVzb2x1dGlvbiwgJ21heC1yZXNvbHV0aW9uJykge1xuICAgICAgJGZlYXR1cmU6ICdtYXgtJztcbiAgICB9XG5cbiAgICAkc3RhbmRhcmQ6ICcoI3skZmVhdHVyZX1yZXNvbHV0aW9uOiAjeyR2YWx1ZX0pJztcblxuICAgIC8vIElmIHdlJ3JlIG5vdCBkZWFsaW5nIHdpdGggZHBweCxcbiAgICBAaWYgdW5pdCgkdmFsdWUpICE9ICdkcHB4JyB7XG4gICAgICAkYmFzZTogOTZkcGk7XG4gICAgICBAaWYgdW5pdCgkdmFsdWUpID09ICdkcGNtJyB7XG4gICAgICAgICRiYXNlOiAyNDMuODRkcGNtO1xuICAgICAgfVxuICAgICAgLy8gV3JpdGUgb3V0IGZlYXR1cmUgdGVzdHNcbiAgICAgICR3ZWJraXQ6ICcnO1xuICAgICAgJG1vejogJyc7XG4gICAgICAkd2Via2l0OiAnKC13ZWJraXQtI3skZmVhdHVyZX1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHZhbHVlIC8gJGJhc2V9KSc7XG4gICAgICAkbW96OiAnKCN7JGZlYXR1cmV9LW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHZhbHVlIC8gJGJhc2V9KSc7XG4gICAgICAvLyBBcHBlbmQgdG8gb3V0cHV0XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJHN0YW5kYXJkLCBzcGFjZSk7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJHdlYmtpdCwgc3BhY2UpO1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICRtb3osIHNwYWNlKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHdlYmtpdDogJyc7XG4gICAgICAkbW96OiAnJztcbiAgICAgICR3ZWJraXQ6ICcoLXdlYmtpdC0jeyRmZWF0dXJlfWRldmljZS1waXhlbC1yYXRpbzogI3skdmFsdWUgLyAxZHBweH0pJztcbiAgICAgICRtb3o6ICcoI3skZmVhdHVyZX0tbW96LWRldmljZS1waXhlbC1yYXRpbzogI3skdmFsdWUgLyAxZHBweH0pJztcbiAgICAgICRmYWxsYmFjazogJygjeyRmZWF0dXJlfXJlc29sdXRpb246ICN7JHZhbHVlIC8gMWRwcHggKiA5NmRwaX0pJztcbiAgICAgIC8vIEFwcGVuZCB0byBvdXRwdXRcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkc3RhbmRhcmQsIHNwYWNlKTtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkd2Via2l0LCBzcGFjZSk7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJG1veiwgc3BhY2UpO1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICRmYWxsYmFjaywgc3BhY2UpO1xuICAgIH1cblxuICB9XG5cbiAgQHJldHVybiAkb3V0cHV0O1xufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbm8tcXVlcnkoJHF1ZXJ5KSB7XG4gIEBpZiB0eXBlLW9mKCRxdWVyeSkgPT0gJ2xpc3QnIHtcbiAgICAka2V5d29yZDogbnRoKCRxdWVyeSwgMSk7XG5cbiAgICBAaWYgdHlwZS1vZigka2V5d29yZCkgPT0gJ3N0cmluZycgYW5kICgka2V5d29yZCA9PSAnbm8tcXVlcnknIG9yICRrZXl3b3JkID09ICdubyBxdWVyeScgb3IgJGtleXdvcmQgPT0gJ2ZhbGxiYWNrJykge1xuICAgICAgQHJldHVybiBudGgoJHF1ZXJ5LCAyKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRGVmYXVsdCB0aGUgQnJlYWtwb2ludHMgdmFyaWFibGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJyZWFrcG9pbnRzOiAoKSAhZGVmYXVsdDtcbiRCUkVBS1BPSU5UUzogKCkgIWRlZmF1bHQ7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmVzcG9uZC10byBBUEkgTWl4aW5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQG1peGluIHJlc3BvbmQtdG8oJGNvbnRleHQsICRuby1xdWVyeTogZmFsc2UpIHtcbiAgQGlmIGxlbmd0aCgkYnJlYWtwb2ludHMpID4gMCBhbmQgbGVuZ3RoKCRCUkVBS1BPSU5UUykgPT0gMCB7XG4gICAgQHdhcm4gXCJJbiBvcmRlciB0byBhdm9pZCB2YXJpYWJsZSBuYW1lc3BhY2UgY29sbGlzaW9ucywgd2UgaGF2ZSB1cGRhdGVkIHRoZSB3YXkgdG8gYWRkIGJyZWFrcG9pbnRzIGZvciByZXNwb25kLXRvLiBQbGVhc2UgY2hhbmdlIGFsbCBpbnN0YW5jZXMgb2YgYCRicmVha3BvaW50czogYWRkLWJyZWFrcG9pbnQoKWAgdG8gYEBpbmNsdWRlIGFkZC1icmVha3BvaW50KClgLiBUaGUgYGFkZC1icmVha3BvaW50KClgIGZ1bmN0aW9uIHdpbGwgYmUgZGVwcmVjYXRlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLlwiO1xuICAgICRCUkVBS1BPSU5UUzogJGJyZWFrcG9pbnRzICFnbG9iYWw7XG4gICAgJGJyZWFrcG9pbnRzOiAoKSAhZ2xvYmFsO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJEJSRUFLUE9JTlRTKSAhPSAnbWFwJyB7XG4gICAgLy8gSnVzdCBpbiBjYXNlIHNvbWVvbmUgd3JpdGVzIGdpYmJlcmlzaCB0byB0aGUgJGJyZWFrcG9pbnRzIHZhcmlhYmxlLlxuICAgIEB3YXJuIFwiWW91ciBicmVha3BvaW50cyBhcmVuJ3QgYSBtYXAhIGByZXNwb25kLXRvYCBleHBlY3RzIGEgbWFwLiBQbGVhc2UgY2hlY2sgdGhlIHZhbHVlIG9mICRCUkVBS1BPSU5UUyB2YXJpYWJsZS5cIjtcbiAgICBAY29udGVudDtcbiAgfVxuICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkQlJFQUtQT0lOVFMsICRjb250ZXh0KSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtYXAtZ2V0KCRCUkVBS1BPSU5UUywgJGNvbnRleHQpLCAkbm8tcXVlcnkpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiBub3QgbWFwLWhhcy1rZXkoJEJSRUFLUE9JTlRTLCAkY29udGV4dCkge1xuICAgIEB3YXJuIFwiYCN7JGNvbnRleHR9YCBpc24ndCBhIGRlZmluZWQgYnJlYWtwb2ludCEgUGxlYXNlIGFkZCBpdCB1c2luZyBgJGJyZWFrcG9pbnRzOiBhZGQtYnJlYWtwb2ludChgI3skY29udGV4dH1gLCAkdmFsdWUpO2BcIjtcbiAgICBAY29udGVudDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gXCJZb3UgaGF2ZW4ndCBjcmVhdGVkIGFueSBicmVha3BvaW50cyB5ZXQhIE1ha2Ugc29tZSBhbHJlYWR5ISBgQGluY2x1ZGUgYWRkLWJyZWFrcG9pbnQoJG5hbWUsICRia3B0KWBcIjtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEFkZCBCcmVha3BvaW50IHRvIEJyZWFrcG9pbnRzXG4vLyBUT0RPOiBSZW1vdmUgZnVuY3Rpb24gaW4gbmV4dCByZWxlYXNlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBhZGQtYnJlYWtwb2ludCgkbmFtZSwgJGJrcHQsICRvdmVyd3JpdGU6IGZhbHNlKSB7XG4gICRvdXRwdXQ6ICgkbmFtZTogJGJrcHQpO1xuXG4gIEBpZiBsZW5ndGgoJGJyZWFrcG9pbnRzKSA9PSAwIHtcbiAgICBAcmV0dXJuICRvdXRwdXQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRuYW1lKSBhbmQgJG92ZXJ3cml0ZSAhPSB0cnVlIHtcbiAgICAgIEB3YXJuIFwiWW91IGFscmVhZHkgaGF2ZSBhIGJyZWFrcG9pbnQgbmFtZWQgYCN7JG5hbWV9YCwgcGxlYXNlIGNob29zZSBhbm90aGVyIGJyZWFrcG9pbnQgbmFtZSwgb3IgcGFzcyBpbiBgJG92ZXJ3cml0ZTogdHJ1ZWAgdG8gb3ZlcndyaXRlIHRoZSBwcmV2aW91cyBicmVha3BvaW50LlwiO1xuICAgICAgQHJldHVybiAkYnJlYWtwb2ludHM7XG4gICAgfVxuICAgIEBlbHNlIGlmIG5vdCBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRuYW1lKSBvciAkb3ZlcndyaXRlID09IHRydWUge1xuICAgICAgQHJldHVybiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkb3V0cHV0KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGFkZC1icmVha3BvaW50KCRuYW1lLCAkYmtwdCwgJG92ZXJ3cml0ZTogZmFsc2UpIHtcbiAgJG91dHB1dDogKCRuYW1lOiAkYmtwdCk7XG5cbiAgQGlmIGxlbmd0aCgkQlJFQUtQT0lOVFMpID09IDAge1xuICAgICRCUkVBS1BPSU5UUzogJG91dHB1dCAhZ2xvYmFsO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJEJSRUFLUE9JTlRTLCAkbmFtZSkgYW5kICRvdmVyd3JpdGUgIT0gdHJ1ZSB7XG4gICAgICBAd2FybiBcIllvdSBhbHJlYWR5IGhhdmUgYSBicmVha3BvaW50IG5hbWVkIGAjeyRuYW1lfWAsIHBsZWFzZSBjaG9vc2UgYW5vdGhlciBicmVha3BvaW50IG5hbWUsIG9yIHBhc3MgaW4gYCRvdmVyd3JpdGU6IHRydWVgIHRvIG92ZXJ3cml0ZSB0aGUgcHJldmlvdXMgYnJlYWtwb2ludC5cIjtcbiAgICAgICRCUkVBS1BPSU5UUzogJEJSRUFLUE9JTlRTICFnbG9iYWw7XG4gICAgfVxuICAgIEBlbHNlIGlmIG5vdCBtYXAtaGFzLWtleSgkQlJFQUtQT0lOVFMsICRuYW1lKSBvciAkb3ZlcndyaXRlID09IHRydWUge1xuICAgICAgJEJSRUFLUE9JTlRTOiBtYXAtbWVyZ2UoJEJSRUFLUE9JTlRTLCAkb3V0cHV0KSAhZ2xvYmFsO1xuICAgIH1cbiAgfVxufVxuXG5AZnVuY3Rpb24gZ2V0LWJyZWFrcG9pbnQoJG5hbWU6IGZhbHNlKSB7XG4gIEBpZiAkbmFtZSA9PSBmYWxzZSB7XG4gICAgQHJldHVybiAkQlJFQUtQT0lOVFM7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldCgkQlJFQUtQT0lOVFMsICRuYW1lKTtcbiAgfVxufVxuIiwiQG1peGluIGxlZ2FjeS1zZXR0aW5ncy13YXJuaW5nIHtcbiAgJGxlZ2FjeVZhcnM6IChcbiAgICAnZGVmYXVsdC1tZWRpYSc6ICdkZWZhdWx0IG1lZGlhJyxcbiAgICAnZGVmYXVsdC1mZWF0dXJlJzogJ2RlZmF1bHQgZmVhdHVyZScsXG4gICAgJ2ZvcmNlLW1lZGlhLWFsbCc6ICdmb3JjZSBhbGwgbWVkaWEgdHlwZScsXG4gICAgJ3RvLWVtcyc6ICd0byBlbXMnLFxuICAgICdyZXNvbHV0aW9ucyc6ICd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnLFxuICAgICduby1xdWVyaWVzJzogJ25vIHF1ZXJpZXMnLFxuICAgICduby1xdWVyeS1mYWxsYmFja3MnOiAnbm8gcXVlcnkgZmFsbGJhY2tzJyxcbiAgICAnYmFzZS1mb250LXNpemUnOiAnYmFzZSBmb250IHNpemUnLFxuICAgICdsZWdhY3ktc3ludGF4JzogJ2xlZ2FjeSBzeW50YXgnXG4gICk7XG5cbiAgQGVhY2ggJGxlZ2FjeSwgJG5ldyBpbiAkbGVnYWN5VmFycyB7XG4gICAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtJyArICRsZWdhY3kpIHtcbiAgICAgIEB3YXJuIFwiSW4gb3JkZXIgdG8gYXZvaWQgdmFyaWFibGUgbmFtc3BhY2UgY29sbGlzaW9ucywgd2UgaGF2ZSB1cGRhdGVkIHRoZSB3YXkgdG8gY2hhbmdlIHNldHRpbmdzIGZvciBCcmVha3BvaW50LiBQbGVhc2UgY2hhbmdlIGFsbCBpbnN0YW5jZXMgb2YgYCRicmVha3BvaW50LSN7JGxlZ2FjeX06IHt7c2V0dGluZ319YCB0byBgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJyN7JG5ld30nLCB7e3NldHRpbmd9fSlgLiBWYXJpYWJsZSBzZXR0aW5ncywgYXMgd2VsbCBhcyB0aGlzIHdhcm5pbmcgd2lsbCBiZSBkZXByZWNhdGVkIGluIGEgZnV0dXJlIHJlbGVhc2UuXCJcbiAgICB9XG4gIH07XG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIEhhbmQgY29ycmVjdCBlYWNoIHNldHRpbmdcbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LWRlZmF1bHQtbWVkaWEnKSBhbmQgJGJyZWFrcG9pbnQtZGVmYXVsdC1tZWRpYSAhPSBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnZGVmYXVsdCBtZWRpYScsICRicmVha3BvaW50LWRlZmF1bHQtbWVkaWEpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LWRlZmF1bHQtZmVhdHVyZScpIGFuZCAkYnJlYWtwb2ludC1kZWZhdWx0LWZlYXR1cmUgIT0gYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgZmVhdHVyZScpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnZGVmYXVsdCBmZWF0dXJlJywgJGJyZWFrcG9pbnQtZGVmYXVsdC1mZWF0dXJlKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1mb3JjZS1tZWRpYS1hbGwnKSBhbmQgJGJyZWFrcG9pbnQtZm9yY2UtbWVkaWEtYWxsICE9IGJyZWFrcG9pbnQtZ2V0KCdmb3JjZSBhbGwgbWVkaWEgdHlwZScpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnZm9yY2UgYWxsIG1lZGlhIHR5cGUnLCAkYnJlYWtwb2ludC1mb3JjZS1tZWRpYS1hbGwpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LXRvLWVtcycpIGFuZCAkYnJlYWtwb2ludC10by1lbXMgIT0gYnJlYWtwb2ludC1nZXQoJ3RvIGVtcycpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgndG8gZW1zJywgJGJyZWFrcG9pbnQtdG8tZW1zKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1yZXNvbHV0aW9ucycpIGFuZCAkYnJlYWtwb2ludC1yZXNvbHV0aW9ucyAhPSBicmVha3BvaW50LWdldCgndHJhbnNmb3JtIHJlc29sdXRpb25zJykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnLCAkYnJlYWtwb2ludC1yZXNvbHV0aW9ucyk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtbm8tcXVlcmllcycpIGFuZCAkYnJlYWtwb2ludC1uby1xdWVyaWVzICE9IGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyaWVzJykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdubyBxdWVyaWVzJywgJGJyZWFrcG9pbnQtbm8tcXVlcmllcyk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtbm8tcXVlcnktZmFsbGJhY2tzJykgYW5kICRicmVha3BvaW50LW5vLXF1ZXJ5LWZhbGxiYWNrcyAhPSBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdubyBxdWVyeSBmYWxsYmFja3MnLCAkYnJlYWtwb2ludC1uby1xdWVyeS1mYWxsYmFja3MpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LWJhc2UtZm9udC1zaXplJykgYW5kICRicmVha3BvaW50LWJhc2UtZm9udC1zaXplICE9IGJyZWFrcG9pbnQtZ2V0KCdiYXNlIGZvbnQgc2l6ZScpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnYmFzZSBmb250IHNpemUnLCAkYnJlYWtwb2ludC1iYXNlLWZvbnQtc2l6ZSk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtbGVnYWN5LXN5bnRheCcpIGFuZCAkYnJlYWtwb2ludC1sZWdhY3ktc3ludGF4ICE9IGJyZWFrcG9pbnQtZ2V0KCdsZWdhY3kgc3ludGF4Jykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdsZWdhY3kgc3ludGF4JywgJGJyZWFrcG9pbnQtbGVnYWN5LXN5bnRheCk7XG4gIH1cbn0iLCIvL1xuLy8gQnJlYWtwb2ludCBTbGljZXIgRk9SSyBvZiBodHRwczovL2dpdGh1Yi5jb20vbG9sbWF1cy9icmVha3BvaW50LXNsaWNlclxuLy8gZGVwZW5kIG9mIGh0dHBzOi8vZ2l0aHViLmNvbS9UZWFtLVNhc3MvYnJlYWtwb2ludCB2ZXJzaW9uIDIueFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zXCI7XG5cblxuXG5cbi8vIElOSVRJQUxJU0FUSU9OXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gSW5pdGlhbGlzYXRpb24gd2l0aCBhIGhhY2tcbi8vIFdlIGFyZSBhZGRpbmcgYSBmYWtlIGluZmluaXQgYnJlYWtwb2ludCBhdCB0aGUgZW5kIG9mIHRoZSBtYXBcbi8vJHNsaWNlci1icmVha3BvaW50czogbWFwLW1lcmdlKCRzbGljZXItYnJlYWtwb2ludHMsICggdmlydHVhbC1pbmlmaXRlLXNpemU6IDk5OTlweCApKTtcblxuXG4vLyBCRVRXRUVOXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gV3JhcHMgdGhlIGNvbnRlbnQgYmxvY2sgcHJvdmlkZWQgd2l0aCBhIG1lZGlhIHF1ZXJ5XG4vLyB3aXRoIG1pbi13aWR0aCBlcXVhbCB0byB0aGUgbGVmdCBlZGdlIG9mIHRoZSBsZWZ0IHNsaWNlXG4vLyBhbmQgbWF4LXdpZHRoIGVxdWFsIHRvIHRoZSByaWdodCBlZGdlIG9mIHRoZSByaWdodCBzbGljZVxuLy9cbi8vIGJldHdlZW4oJHNsaWNlLWxlZnQsICRzbGljZS1yaWdodClcbi8vIC0gJHNsaWNlLWxlZnQgIDogPHNsaWNlIG5hbWU+IEEgbmFtZSBvZiB0aGUgbGVmdCBzbGljZS5cbi8vIC0gJHNsaWNlLXJpZ2h0IDogPHNsaWNlIG5hbWU+IEEgbmFtZSBvZiB0aGUgbGVmdCBzbGljZS5cbi8vIC0gJG5vLXF1ZXJ5ICAgIDogWzwuY2xhc3M+XSAgICAgQSBjbGFzcyB0byBwcm92aWRlIHRoZSBuby1xdWVyeSBmYWxsYmFjayAoc2VlIEJyZWFrcG9pbnQgZG9jcykuXG5AbWl4aW4gYmV0d2Vlbigkc2xpY2UtbGVmdCwgJHNsaWNlLXJpZ2h0LCAkbm8tcXVlcnk6IGZhbHNlKSB7XG5cbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkc2xpY2VyLWJyZWFrcG9pbnRzLCAkc2xpY2UtbGVmdCkge1xuICAgIEB3YXJuIFwiV3JvbmcgbGVmdCBjb2x1bW4gbmFtZSBwcm92aWRlZDogI3skc2xpY2UtbGVmdH0uIFNob3VsZCBiZSBpbiAje2JyZWFrcG9pbnQtbmFtZXMoKX0uXCI7XG4gIH0gQGVsc2UgaWYgbm90IG1hcC1oYXMta2V5KCRzbGljZXItYnJlYWtwb2ludHMsICRzbGljZS1yaWdodCkge1xuICAgIEB3YXJuIFwiV3JvbmcgcmlnaHQgY29sdW1uIG5hbWUgcHJvdmlkZWQ6ICN7JHNsaWNlLXJpZ2h0fS4gU2hvdWxkIGJlIGluICN7YnJlYWtwb2ludC1uYW1lcygpfS5cIjtcbiAgfSBAZWxzZSB7XG5cbiAgICAkY29udGV4dDogbGVmdC1icC1vZi1zbGljZSgkc2xpY2UtbGVmdCkgcmlnaHQtYnAtb2Ytc2xpY2UoJHNsaWNlLXJpZ2h0KTtcblxuICAgIC8vIFNldHRpbmcgdGhlIGJyZWFrcG9pbnRcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRjb250ZXh0LCAkbm8tcXVlcnkpIHtcbiAgICAgIEBjb250ZW50XG4gICAgfVxuXG4gIH1cbn1cblxuXG5cblxuLy8gV3JhcHMgdGhlIGNvbnRlbnQgYmxvY2sgcHJvdmlkZWQgd2l0aCBhIG1lZGlhIHF1ZXJ5XG4vLyB3aXRoICoqbWluLXdpZHRoIGFuZCBtYXgtd2lkdGgqKiBlcXVhbCB0byB0aGUgZWRnZXMgb2YgYSBzbGljZVxuLy9cbi8vIGF0KCRzbGljZS1uYW1lLCAkbm8tcXVlcnk6IGZhbHNlKVxuLy8gLSAkc2xpY2UtbmFtZSAgOiA8c2xpY2UgbmFtZT4gQSBuYW1lIG9mIGEgc2xpY2UuXG4vLyAtICRuby1xdWVyeSAgICA6IFs8LmNsYXNzPl0gICAgIEEgY2xhc3MgdG8gcHJvdmlkZSB0aGUgbm8tcXVlcnkgZmFsbGJhY2sgKHNlZSBCcmVha3BvaW50IGRvY3MpLlxuQG1peGluIGF0KCRzbGljZS1uYW1lLCAkbm8tcXVlcnk6IGZhbHNlKXtcbiAgJHNsaWNlOiBpbmRleC1vZi1icmVha3BvaW50LW5hbWUoJHNsaWNlLW5hbWUpO1xuICBAaWYgbm90ICRzbGljZSB7XG4gICAgQHdhcm4oXCJVbmtub3duICcjeyRzbGljZS1uYW1lfScgc2xpY2UuXCIpO1xuICB9QGVsc2V7XG4gICAgQGlmICgkc2xpY2UgPCB0b3RhbC1zbGljZXMoKSl7XG4gICAgICBAaW5jbHVkZSBiZXR3ZWVuKCRzbGljZS1uYW1lLCBudGgtYnJlYWtwb2ludC1uYW1lKCRzbGljZSArIDEpLCAkbm8tcXVlcnkpIHtcbiAgICAgICAgQGNvbnRlbnRcbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGZyb20oJHNsaWNlLW5hbWUsICRuby1xdWVyeSkge1xuICAgICAgICBAY29udGVudFxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cblxuLy8gV3JhcHMgdGhlIGNvbnRlbnQgYmxvY2sgcHJvdmlkZWQgd2l0aCBhIG1lZGlhIHF1ZXJ5XG4vLyB3aXRoICoqbWluLXdpZHRoKiogZXF1YWwgdG8gdGhlIHJpZ2h0IGVkZ2Ugb2YgYSBzbGljZVxuLy9cbi8vIGZyb20oJHNsaWNlLW5hbWUsICRuby1xdWVyeTogZmFsc2UpXG4vLyAtICRzbGljZS1uYW1lICA6IDxzbGljZSBuYW1lPiBBIG5hbWUgb2YgYSBzbGljZS5cbi8vIC0gJG5vLXF1ZXJ5ICAgIDogWzwuY2xhc3M+XSAgICAgQSBjbGFzcyB0byBwcm92aWRlIHRoZSBuby1xdWVyeSBmYWxsYmFjayAoc2VlIEJyZWFrcG9pbnQgZG9jcykuXG5AbWl4aW4gZnJvbSgkc2xpY2UtbmFtZSwgJG5vLXF1ZXJ5OiBmYWxzZSl7XG5cbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkc2xpY2VyLWJyZWFrcG9pbnRzLCAkc2xpY2UtbmFtZSkge1xuICAgIEB3YXJuIFwiV3JvbmcgbGVmdCBjb2x1bW4gbmFtZSBwcm92aWRlZDogI3skc2xpY2UtbmFtZX0uIFNob3VsZCBiZSBpbiAje2JyZWFrcG9pbnQtbmFtZXMoKX0uXCI7XG4gIH0gQGVsc2Uge1xuXG4gICAgJGNvbnRleHQ6IGxlZnQtYnAtb2Ytc2xpY2UoJHNsaWNlLW5hbWUpO1xuXG4gICAgLy8gU2V0dGluZyB0aGUgYnJlYWtwb2ludFxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGNvbnRleHQsICRuby1xdWVyeSkge1xuICAgICAgQGNvbnRlbnRcbiAgICB9XG5cbiAgfVxuXG59XG5cblxuLy8gV3JhcHMgdGhlIGNvbnRlbnQgYmxvY2sgcHJvdmlkZWQgd2l0aCBhIG1lZGlhIHF1ZXJ5XG4vLyB3aXRoICoqbWF4LXdpZHRoIGVxdWFsKiogdG8gdGhlIHJpZ2h0IGVkZ2Ugb2YgYSBzbGljZVxuLy9cbi8vIGJlbG93KCRzbGljZSwgJG5vLXF1ZXJ5OiBmYWxzZSlcbi8vIC0gJHNsaWNlLW5hbWUgIDogPHNsaWNlIG5hbWU+IEEgbmFtZSBvZiBhIHNsaWNlLlxuLy8gLSAkbm8tcXVlcnkgICAgOiBbPC5jbGFzcz5dICAgICBBIGNsYXNzIHRvIHByb3ZpZGUgdGhlIG5vLXF1ZXJ5IGZhbGxiYWNrIChzZWUgQnJlYWtwb2ludCBkb2NzKS5cbkBtaXhpbiBiZWxvdygkc2xpY2UtbmFtZSwgJG5vLXF1ZXJ5OiBmYWxzZSl7XG5cbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkc2xpY2VyLWJyZWFrcG9pbnRzLCAkc2xpY2UtbmFtZSkge1xuICAgIEB3YXJuIFwiV3JvbmcgbGVmdCBjb2x1bW4gbmFtZSBwcm92aWRlZDogI3skc2xpY2UtbmFtZX0uIFNob3VsZCBiZSBpbiAje2JyZWFrcG9pbnQtbmFtZXMoKX0uXCI7XG4gIH0gQGVsc2Uge1xuXG4gICAgJGNvbnRleHQ6ICdtYXgtd2lkdGgnIHJpZ2h0LWJwLW9mLXNsaWNlKCRzbGljZS1uYW1lKTtcblxuICAgIC8vIFNldHRpbmcgdGhlIGJyZWFrcG9pbnRcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRjb250ZXh0LCAkbm8tcXVlcnkpIHtcbiAgICAgIEBjb250ZW50XG4gICAgfVxuXG4gIH1cbn1cblxuXG4vLyBXcmFwcyB0aGUgY29udGVudCBibG9jayBwcm92aWRlZCB3aXRoIGEgbWVkaWEgcXVlcnlcbi8vIHdpdGggKiptYXgtd2lkdGggZXF1YWwqKiB0byB0aGUgcmlnaHQgZWRnZSBvZiBhIHNsaWNlXG4vL1xuLy8gYmVsb3coJHNsaWNlLCAkbm8tcXVlcnk6IGZhbHNlKVxuLy8gLSAkc2xpY2UtbmFtZSAgOiA8c2xpY2UgbmFtZT4gQSBuYW1lIG9mIGEgc2xpY2UuXG4vLyAtICRuby1xdWVyeSAgICA6IFs8LmNsYXNzPl0gICAgIEEgY2xhc3MgdG8gcHJvdmlkZSB0aGUgbm8tcXVlcnkgZmFsbGJhY2sgKHNlZSBCcmVha3BvaW50IGRvY3MpLlxuQG1peGluIHRvKCRzbGljZS1uYW1lLCAkbm8tcXVlcnk6IGZhbHNlKXtcblxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRzbGljZXItYnJlYWtwb2ludHMsICRzbGljZS1uYW1lKSB7XG4gICAgQHdhcm4gXCJXcm9uZyBsZWZ0IGNvbHVtbiBuYW1lIHByb3ZpZGVkOiAjeyRzbGljZS1uYW1lfS4gU2hvdWxkIGJlIGluICN7YnJlYWtwb2ludC1uYW1lcygpfS5cIjtcbiAgfSBAZWxzZSB7XG5cbiAgICAkY29udGV4dDogJ21heC13aWR0aCcgcmlnaHQtYnAtb2Ytc2xpY2UoJHNsaWNlLW5hbWUpO1xuXG4gICAgLy8gU2V0dGluZyB0aGUgYnJlYWtwb2ludFxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGNvbnRleHQsICRuby1xdWVyeSkge1xuICAgICAgQGNvbnRlbnRcbiAgICB9XG5cbiAgfVxufVxuIiwiLy8gVkFSSUFCTEVTXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBUaGUgZGVmYXVsdHNcbiRzbGljZXItYnJlYWtwb2ludHM6IChcbiAgc21hbGwgIDogNzY4cHgsIC8vIFNtYWxsXG4gIG1lZGl1bSA6IDk5MnB4LCAvLyBNZWRpdW1cbiAgbGFyZ2UgIDogMTIwMHB4LCAvLyBMYXJnZVxuKSAhZGVmYXVsdDtcblxuJHNsaWNlci1hbnRpLW92ZXJsYXAtY29ycmVjdGlvbnM6IDFweCAhZGVmYXVsdDtcbiIsIi8vIEZVTkNUSU9OU1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuXG4vLyBicmVha3BvaW50LW5hbWVzKClcbi8vXG4vLyBBY2NlcHRzIG5vIGFyZ3VtZW50cy5cbi8vXG4vLyBSZXR1cm5zIHRoZSBzbGljZXMgbmFtZXNcbkBmdW5jdGlvbiBicmVha3BvaW50LW5hbWVzKCl7XG4gIEByZXR1cm4gbWFwLWtleXMoJHNsaWNlci1icmVha3BvaW50cyk7XG59XG5cblxuLy8gdG90YWwtc2xpY2VzKClcbi8vXG4vLyBBY2NlcHRzIG5vIGFyZ3VtZW50cy5cbi8vXG4vLyBSZXR1cm5zIHRvdGFsIG51bWJlciBvZiBzbGljZXNcbi8vICh3aGljaCBpcyBlcXVhbCB0byB0b3RhbCBudW1iZXIgb2YgYnJlYWtwb2ludHMpLlxuQGZ1bmN0aW9uIHRvdGFsLXNsaWNlcygpe1xuICBAcmV0dXJuIGxlbmd0aCgkc2xpY2VyLWJyZWFrcG9pbnRzKVxufVxuXG5cbi8vIG50aC1icmVha3BvaW50LW5hbWUoJHNsaWNlKVxuLy8gLSAkc2xpY2UgOiA8c2xpY2UgbnVtYmVyPiBBIG51bWJlciBvZiBhIHNsaWNlLiBTaG91bGQgYmUgcG9zaXRpdmUgaW50ZWdlci5cbi8vXG4vLyBSZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSBuLXRoIHNsaWNlXG5AZnVuY3Rpb24gbnRoLWJyZWFrcG9pbnQtbmFtZSgkc2xpY2Upe1xuICAkbWluOiAxO1xuICAkbWF4OiB0b3RhbC1zbGljZXMoKTtcblxuICAvLyBNYWtpbmcgc3VyZSB0aGF0IHRoZSBzbGljZSBwcm92aWRlZCBpcyB2YWxpZFxuICBAaWYgKCRzbGljZSA8ICRtaW4pIG9yICgkc2xpY2UgPiAkbWF4KXtcbiAgICBAd2FybiBcIldyb25nIFNsaWNlIG51bWJlciBwcm92aWRlZDogI3skc2xpY2V9LiBTaG91bGQgYmUgYmV0d2VlbiAjeyRtaW59IGFuZCAjeyRtYXh9LlwiXG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gbnRoKGJyZWFrcG9pbnQtbmFtZXMoKSwgJHNsaWNlKTtcbiAgfVxufVxuXG5cbi8vIGluZGV4LW9mLWJyZWFrcG9pbnQtbmFtZSgkc2xpY2UtbmFtZSlcbi8vIC0gJHNsaWNlLW5hbWUgOiA8c2xpY2UgbmFtZT4gQSBuYW1lIG9mIGEgc2xpY2UuXG4vL1xuLy8gUmV0dXJucyB0aGUgaW5kZXggb2YgYSBzbGljZVxuQGZ1bmN0aW9uIGluZGV4LW9mLWJyZWFrcG9pbnQtbmFtZSgkc2xpY2UtbmFtZSl7XG4gIEByZXR1cm4gaW5kZXgoYnJlYWtwb2ludC1uYW1lcygpLCAkc2xpY2UtbmFtZSk7XG59XG5cblxuLy8gbGFzdC1icmVha3BvaW50LW5hbWUoKVxuLy9cbi8vIEFjY2VwdHMgbm8gYXJndW1lbnRzLlxuLy9cbi8vIFJldHVybnMgdGhlIGxhc3Qgc2xpY2UgbmFtZXNcbkBmdW5jdGlvbiBsYXN0LWJyZWFrcG9pbnQtbmFtZSgpe1xuICBAcmV0dXJuIG50aC1icmVha3BvaW50LW5hbWUodG90YWwtc2xpY2VzKCkpO1xufVxuXG4vLyBSZXR1cm5zIGEgY29ycmVjdGlvbiB2YWx1ZSBmb3IgdGhlIGdpdmVuIGJyZWFrcG9pbnRcbi8vIHRvIHByZXZlbnQgbWVkaWEgcXVlcnkgb3ZlcmxhcHBpbmcuXG4vL1xuLy8gUmVsaWVzIG9uIHRoZSBnbG9iYWwgdmFyaWFibGUgJHNsaWNlci1hbnRpLW92ZXJsYXAtY29ycmVjdGlvbnNcbi8vIHRoYXQgc2hvdWxkIGNvbnRhaW4gYSBsaXN0IG9mIGFsbG93ZWQgY29ycmVjdGlvbiB2YWx1ZXMuXG4vL1xuLy8gUmV0dXJucyBlaXRoZXIgb25seSBwb3NpdGl2ZSBvciBvbmx5IG5lZ2F0aXZlIHZhbHVlLlxuLy9cbi8vIGFudGktb3ZlcmxhcC1jb3JyZWN0aW9uKCRicCwgJHBvc2l0aXZlOiB0cnVlKVxuLy8gICAtICRicCAgICAgICA6IGEgYnJlYWtwb2ludCwgZS4gZy4gODAwcHggb3IgMjBlbVxuLy8gICAtICRwb3NpdGl2ZSA6IHdoZXRoZXIgdG8gcmV0dXJuIG9ubHkgcG9zaXRpdmUgb3Igb25seSBuZWdhdGl2ZSB2YWx1ZXNcbi8vICAgICAgICAgICAgICAgICAqIHRydWUgLSByZXR1cm4gb25seSBwb3NpdGl2ZSBjb3JyZWN0aW9uIHZhbHVlIChkZWZhdWx0KVxuLy8gICAgICAgICAgICAgICAgICogZmFsc2UgLSByZXR1cm4gb25seSBuZWdhdGl2ZSBjb3JyZWN0aW9uIHZhbHVlIC8vXG5AZnVuY3Rpb24gYW50aS1vdmVybGFwLWNvcnJlY3Rpb24oJGJwLCAkcG9zaXRpdmU6IHRydWUpIHtcbiAgQGVhY2ggJGNvcnJlY3Rpb24gaW4gJHNsaWNlci1hbnRpLW92ZXJsYXAtY29ycmVjdGlvbnMge1xuICAgIEBpZiAodW5pdCgkYnApID09IHVuaXQoJGNvcnJlY3Rpb24pKSBhbmQgKCgkY29ycmVjdGlvbiA+IDApID09ICRwb3NpdGl2ZSkge1xuICAgICAgQHJldHVybiAkY29ycmVjdGlvbjtcbiAgICB9XG4gIH1cbiAgQHJldHVybiAwO1xufVxuXG4vLyBsZWZ0LWJwLW9mLXNsaWNlKCRzbGljZS1uYW1lKVxuLy8gLSAkc2xpY2UtbmFtZSA6IDxzbGljZSBuYW1lPiBBIG5hbWUgb2YgYSBzbGljZS5cbi8vXG4vLyBSZXR1cm5zIHRoZSBsZWZ0IGJyZWFrcG9pbnQgb2YgYW4gTnRoIHNsaWNlLCBlLiBnLiBgNjAwcHhgLlxuQGZ1bmN0aW9uIGxlZnQtYnAtb2Ytc2xpY2UoJHNsaWNlLW5hbWUpIHtcblxuICAkbWluOiAwO1xuICAkbWF4OiB0b3RhbC1zbGljZXMoKTtcbiAgJHNsaWNlOiBpbmRleC1vZi1icmVha3BvaW50LW5hbWUoJHNsaWNlLW5hbWUpO1xuICAvL0BkZWJ1ZygnbGVmdCBzbGljZSAjeyRzbGljZS1uYW1lfSBuwrAjeyRzbGljZX0nKTtcblxuICAvLyBNYWtpbmcgc3VyZSB0aGF0IHRoZSBzbGljZSBwcm92aWRlZCBpcyB2YWxpZFxuICBAaWYgKCRzbGljZSA8ICRtaW4pIG9yICgkc2xpY2UgPiAkbWF4KSB7XG4gICAgQHdhcm4gXCJXcm9uZyBsZWZ0IHNsaWNlIG5hbWUgcHJvdmlkZWQ6ICN7JHNsaWNlfS4gU2hvdWxkIGJlIGJldHdlZW4gI3tudGgtYnJlYWtwb2ludC1uYW1lKCRtaW4pfSBhbmQgI3tudGgtYnJlYWtwb2ludC1uYW1lKCRtYXgpfS5cIjtcbiAgfSBAZWxzZSB7XG5cbiAgICAvLyBSZXR1cm5pbmcgdGhlIGxlZnQgZWRnZSBvZiB0aGUgc2xpY2VcbiAgICAkbGVmdDogbWFwX2dldCgkc2xpY2VyLWJyZWFrcG9pbnRzLCBudGgtYnJlYWtwb2ludC1uYW1lKCRzbGljZSkpO1xuICAgICRsZWZ0OiAkbGVmdCArIGFudGktb3ZlcmxhcC1jb3JyZWN0aW9uKCRsZWZ0LCBmYWxzZSk7XG5cbiAgICBAcmV0dXJuICRsZWZ0XG5cbiAgfVxufVxuXG5cbi8vIHJpZ2h0LWJwLW9mLXNsaWNlKCRzbGljZS1uYW1lKVxuLy8gLSAkc2xpY2UtbmFtZSA6IDxzbGljZSBuYW1lPiBBIG5hbWUgb2YgYSBzbGljZS5cbi8vXG4vLyBSZXR1cm5zIHRoZSByaWdodCBicmVha3BvaW50IG9mIGFuIE50aCBzbGljZSwgZS4gZy4gYDgwMHB4YC5cbkBmdW5jdGlvbiByaWdodC1icC1vZi1zbGljZSgkc2xpY2UtbmFtZSl7XG5cbiAgJG1pbjogMTtcbiAgJG1heDogdG90YWwtc2xpY2VzKCk7XG4gICRzbGljZTogaW5kZXgtb2YtYnJlYWtwb2ludC1uYW1lKCRzbGljZS1uYW1lKTtcbiAgLy9AZGVidWcoJ3JpZ2h0IHNsaWNlICN7JHNsaWNlLW5hbWV9IG7CsCN7JHNsaWNlfScpO1xuXG5cbiAgLy8gTWFraW5nIHN1cmUgdGhhdCB0aGUgc2xpY2UgcHJvdmlkZWQgaXMgdmFsaWRcbiAgQGlmICgkc2xpY2UgPCAkbWluKSBvciAoJHNsaWNlID4gJG1heCkge1xuICAgIEB3YXJuIFwiV3JvbmcgcmlnaHQgc2xpY2UgbmFtZSBwcm92aWRlZDogI3skc2xpY2V9LiBTaG91bGQgYmUgYmV0d2VlbiAje250aC1icmVha3BvaW50LW5hbWUoJG1pbil9IGFuZCAje250aC1icmVha3BvaW50LW5hbWUoJG1heCl9LlwiO1xuICB9IEBlbHNlIHtcbiAgICAvLyBSZWFkaW5nIHRoZSByaWdodCBlZGdlIG9mIHRoZSBzbGljZVxuICAgICRyaWdodC1icDogbWFwX2dldCgkc2xpY2VyLWJyZWFrcG9pbnRzLCBudGgtYnJlYWtwb2ludC1uYW1lKCRzbGljZSkpO1xuICAgIC8vQGRlYnVnKCdyaWdodCBsaW1pdCAjeyRyaWdodC1icH0nKTtcbiAgICBAcmV0dXJuICRyaWdodC1icCAtIGFudGktb3ZlcmxhcC1jb3JyZWN0aW9uKCRyaWdodC1icCwgdHJ1ZSk7XG4gIH1cblxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gSW1wb3J0YW50IG5vdGU6IEFsbCBwcm9wZXJ0aWVzIGhlcmUgc2hvdWxkIGJlIEZvdW5kYXRpb24tb25seSBwcm9wZXJ0aWVzIHdlIHdhbnRcbi8vIHRvIG92ZXJyaWRlLiBBbnl0aGluZyBlbHNlIGJlbG9uZ3MgaW4gaXRzIHJlc3BlY3RpdmUgbW9kdWxlIGZpbGUuXG4vLyBGb3IgY29sb3JzIG9yIGFueSBvdGhlciBwcm9wZXJ0aWVzIHdlIG1heSB3YW50IHRvIHNoYXJlIGFjcm9zcyBtdWx0aXBsZVxuLy8gbW9kdWxlcywgcGxlYXNlIHBsYWNlIHRoZW0gaW4gX3ZhcmlhYmxlcy5zY3NzLlxuXG4vLyBUYWJsZSBvZiBDb250ZW50c1xuLy8gRm91bmRhdGlvbiBTZXR0aW5nc1xuLy9cbi8vIGEuIEJhc2Vcbi8vIGIuIEdyaWRcbi8vIGMuIEdsb2JhbFxuLy8gZC4gTWVkaWEgUXVlcnkgUmFuZ2VzXG4vLyBlLiBUeXBvZ3JhcGh5XG4vLyAwMS4gQWNjb3JkaW9uXG4vLyAwMi4gQWxlcnQgQm94ZXNcbi8vIDAzLiBCbG9jayBHcmlkXG4vLyAwNC4gQnJlYWRjcnVtYnNcbi8vIDA1LiBCdXR0b25zXG4vLyAwNi4gQnV0dG9uIEdyb3Vwc1xuLy8gMDcuIENsZWFyaW5nXG4vLyAwOC4gRHJvcGRvd25cbi8vIDA5LiBEcm9wZG93biBCdXR0b25zXG4vLyAxMC4gRmxleCBWaWRlb1xuLy8gMTEuIEZvcm1zXG4vLyAxMi4gSWNvbiBCYXJcbi8vIDEzLiBJbmxpbmUgTGlzdHNcbi8vIDE0LiBKb3lyaWRlXG4vLyAxNS4gS2V5c3Ryb2tlc1xuLy8gMTYuIExhYmVsc1xuLy8gMTcuIE1hZ2VsbGFuXG4vLyAxOC4gT2ZmLWNhbnZhc1xuLy8gMTkuIE9yYml0XG4vLyAyMC4gUGFnaW5hdGlvblxuLy8gMjEuIFBhbmVsc1xuLy8gMjIuIFByaWNpbmcgVGFibGVzXG4vLyAyMy4gUHJvZ3Jlc3MgQmFyXG4vLyAyNC4gUmFuZ2UgU2xpZGVyXG4vLyAyNS4gUmV2ZWFsXG4vLyAyNi4gU2lkZSBOYXZcbi8vIDI3LiBTcGxpdCBCdXR0b25zXG4vLyAyOC4gU3ViIE5hdlxuLy8gMjkuIFN3aXRjaFxuLy8gMzAuIFRhYmxlc1xuLy8gMzEuIFRhYnNcbi8vIDMyLiBUaHVtYm5haWxzXG4vLyAzMy4gVG9vbHRpcHNcbi8vIDM0LiBUb3AgQmFyXG4vLyAzNS4gRm9vdGVyIEJhclxuLy8gMzYuIFZpc2liaWxpdHkgQ2xhc3Nlc1xuXG4vLyBAc3RhcnQtZG9jIEJhc2Vcbi8vIGEuIEJhc2Vcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cblxuLy8gVGhpcyBpcyB0aGUgZGVmYXVsdCBodG1sIGFuZCBib2R5IGZvbnQtc2l6ZSBmb3IgdGhlIGJhc2UgcmVtIHZhbHVlLlxuLy8gJHJlbS1iYXNlOiAxNnB4O1xuXG4vLyBBbGxvd3MgdGhlIHVzZSBvZiByZW0tY2FsYygpIG9yIGxvd2VyLWJvdW5kKCkgaW4geW91ciBzZXR0aW5nc1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vZnVuY3Rpb25zXCI7XG5cbi8vIFRoZSBkZWZhdWx0IGZvbnQtc2l6ZSBpcyBzZXQgdG8gMTAwJSBvZiB0aGUgYnJvd3NlciBzdHlsZSBzaGVldCAodXN1YWxseSAxNnB4KVxuLy8gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBicm93c2VyLWJhc2VkIHRleHQgem9vbSBvciB1c2VyLXNldCBkZWZhdWx0cy5cblxuLy8gU2luY2UgdGhlIHR5cGljYWwgZGVmYXVsdCBicm93c2VyIGZvbnQtc2l6ZSBpcyAxNnB4LCB0aGF0IG1ha2VzIHRoZSBjYWxjdWxhdGlvbiBmb3IgZ3JpZCBzaXplLlxuLy8gSWYgeW91IHdhbnQgeW91ciBiYXNlIGZvbnQtc2l6ZSB0byBiZSBkaWZmZXJlbnQgYW5kIG5vdCBoYXZlIGl0IGFmZmVjdCB0aGUgZ3JpZCBicmVha3BvaW50cyxcbi8vIHNldCAkcmVtLWJhc2UgdG8gJGJhc2UtZm9udC1zaXplIGFuZCBtYWtlIHN1cmUgJGJhc2UtZm9udC1zaXplIGlzIGEgcHggdmFsdWUuXG4vLyAkYmFzZS1mb250LXNpemU6IDEwMCU7XG5cbi8vIFRoZSAkYmFzZS1mb250LXNpemUgaXMgMTAwJSB3aGlsZSAkYmFzZS1saW5lLWhlaWdodCBpcyAxNTAlXG4vLyAkYmFzZS1saW5lLWhlaWdodDogMTUwJTtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB3aGV0aGVyIG9yIG5vdCBDU1MgY2xhc3NlcyBjb21lIHRocm91Z2ggaW4gdGhlIGdlbSBmaWxlcy5cbiRpbmNsdWRlLWh0bWwtY2xhc3NlczogdHJ1ZTtcbi8vICRpbmNsdWRlLXByaW50LXN0eWxlczogdHJ1ZTtcbiRpbmNsdWRlLWh0bWwtZ2xvYmFsLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3Nlcztcbi8vIEBlbmQtZG9jXG5cbi8vIEBzdGFydC1kb2MgR3JpZFxuLy8gYi4gR3JpZFxuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuXG4vLyAkaW5jbHVkZS1odG1sLWdyaWQtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzO1xuLy8gJGluY2x1ZGUteGwtaHRtbC1ncmlkLWNsYXNzZXM6IGZhbHNlO1xuXG4vLyAkcm93LXdpZHRoOiByZW0tY2FsYygxMDAwKTtcbi8vICR0b3RhbC1jb2x1bW5zOiAxMjtcbi8vICRjb2x1bW4tZ3V0dGVyOiByZW0tY2FsYygzMCk7XG5cbi8vICRsYXN0LWNoaWxkLWZsb2F0OiAkb3Bwb3NpdGUtZGlyZWN0aW9uO1xuLy8gQGVuZC1kb2NcblxuLy8gQHN0YXJ0LWRvYyBHbG9iYWxcbi8vIGMuIEdsb2JhbFxuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuXG4vLyBXZSB1c2UgdGhlc2UgdG8gZGVmaW5lIGRlZmF1bHQgZm9udCBzdGFja3NcbiRmb250LWZhbWlseS1zYW5zLXNlcmlmOiBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiRmb250LWZhbWlseS1zZXJpZjogR2VvcmdpYSwgQ2FtYnJpYSwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgVGltZXMsIHNlcmlmO1xuLy8gJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIENvdXJpZXIsIG1vbm9zcGFjZTtcblxuLy8gQHN0YXJ0LWV4dGVybmFsIGNvbG9yc1xuLy8kd2hpdGUgICAgICAgOiAjRkZGRkZGO1xuLy8kZ2hvc3QgICAgICAgOiAjRkFGQUZBO1xuLy8kc25vdyAgICAgICAgOiAjRjlGOUY5O1xuLy8kdmFwb3IgICAgICAgOiAjRjZGNkY2O1xuLy8kd2hpdGUtc21va2UgOiAjRjVGNUY1O1xuLy8kc2lsdmVyICAgICAgOiAjRUZFRkVGO1xuLy8kc21va2UgICAgICAgOiAjRUVFRUVFO1xuLy8kZ2FpbnNib3JvICAgOiAjREREREREO1xuLy8kaXJvbiAgICAgICAgOiAjQ0NDQ0NDO1xuLy8kYmFzZSAgICAgICAgOiAjQUFBQUFBO1xuLy8kYWx1bWludW0gICAgOiAjOTk5OTk5O1xuLy8kanVtYm8gICAgICAgOiAjODg4ODg4O1xuLy8kbW9uc29vbiAgICAgOiAjNzc3Nzc3O1xuLy8kc3RlZWwgICAgICAgOiAjNjY2NjY2O1xuLy8kY2hhcmNvYWwgICAgOiAjNTU1NTU1O1xuLy8kdHVhdGFyYSAgICAgOiAjNDQ0NDQ0O1xuLy8kb2lsICAgICAgICAgOiAjMzMzMzMzO1xuLy8kamV0ICAgICAgICAgOiAjMjIyMjIyO1xuLy8kYmxhY2sgICAgICAgOiAjMDAwMDAwO1xuLy8gQGVuZC1leHRlcm5hbFxuJHNpbHZlciAgICAgIDogI0VGRUZFRjtcbiRzdGVlbCAgICAgICA6ICM2NjY2NjY7XG4vLyBXZSB1c2UgdGhlc2UgYXMgZGVmYXVsdCBjb2xvcnMgdGhyb3VnaG91dFxuJHByaW1hcnktY29sb3I6ICMyMjYyYmI7XG4kc2Vjb25kYXJ5LWNvbG9yOiAjRUJFQkVCO1xuJGFsZXJ0LWNvbG9yOiAjZjA0MTI0O1xuLy8gJHN1Y2Nlc3MtY29sb3I6ICM0M0FDNkE7XG4vLyAkd2FybmluZy1jb2xvcjogI2YwOGEyNDtcbi8vICRpbmZvLWNvbG9yOiAjYTBkM2U4O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB2YXJpb3VzIGdsb2JhbCBzdHlsZXNcbi8vICRib2R5LWJnOiAkd2hpdGU7XG4kYm9keS1mb250LWNvbG9yOiAkb2lsO1xuLy8gJGJvZHktZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zYW5zLXNlcmlmO1xuLy8gJGJvZHktZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWw7XG4vLyAkYm9keS1mb250LXN0eWxlOiBub3JtYWw7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgZm9udC1zbW9vdGhpbmdcbiRmb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRleHQgZGlyZWN0aW9uIHNldHRpbmdzXG4vLyAkdGV4dC1kaXJlY3Rpb246IGx0cjtcbi8vICRvcHBvc2l0ZS1kaXJlY3Rpb246IHJpZ2h0O1xuLy8gJGRlZmF1bHQtZmxvYXQ6IGxlZnQ7XG4vLyAkbGFzdC1jaGlsZC1mbG9hdDogJG9wcG9zaXRlLWRpcmVjdGlvbjtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIG1ha2Ugc3VyZSBib3JkZXIgcmFkaXVzIG1hdGNoZXMgdW5sZXNzIHdlIHdhbnQgaXQgZGlmZmVyZW50LlxuJGdsb2JhbC1yYWRpdXM6IDNweDtcbi8vICRnbG9iYWwtcm91bmRlZDogMTAwMHB4O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBpbnNldCBzaGFkb3cgc2hpbnkgZWRnZXMgYW5kIGRlcHJlc3Npb25zLlxuLy8gJHNoaW55LWVkZ2Utc2l6ZTogMCAxcHggMDtcbi8vICRzaGlueS1lZGdlLWNvbG9yOiByZ2JhKCR3aGl0ZSwgLjUpO1xuLy8gJHNoaW55LWVkZ2UtYWN0aXZlLWNvbG9yOiByZ2JhKCRibGFjaywgLjIpO1xuLy8gQGVuZC1kb2NcblxuLy8gQHN0YXJ0LWRvYyBNZWRpYSBRdWVyeSBSYW5nZXNcbi8vIGQuIE1lZGlhIFF1ZXJ5IFJhbmdlc1xuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuXG4kc21hbGwtcmFuZ2U6ICgwZW0sIDQwZW0pO1xuLy8gJG1lZGl1bS1yYW5nZTogKDQwLjA2M2VtLCA2NGVtKTtcbiRtZWRpdW0tcmFuZ2U6ICg0MC4wNjI1ZW0sIDYzLjkzNzVlbSk7IC8vIDEwMjMgZGl2aWRlZCBieSBkZWZhdWx0IGZvbnQgc2l6ZSBvciAxMDIzLzE2ID0gNjMuOTM3NVxuLy8gJGxhcmdlLXJhbmdlOiAoNjQuMDYzZW0sIDkwZW0pOyAvL1xuJGxhcmdlLXJhbmdlOiAoNjRlbSwgOTBlbSk7ICAvLyAxMDI0IGRpdmlkZWQgYnkgZGVmYXVsdCBmb250IHNpemUgb3IgMTAyNC8xNiA9IDY0XG4vLyAkeGxhcmdlLXJhbmdlOiAoOTAuMDYzZW0sIDEyMGVtKTtcbi8vICR4eGxhcmdlLXJhbmdlOiAoMTIwLjA2M2VtLCA5OTk5OTk5OWVtKTtcblxuICRzY3JlZW46IFwib25seSBzY3JlZW5cIjtcblxuLy8gJGxhbmRzY2FwZTogXCIjeyRzY3JlZW59IGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSlcIjtcbi8vICRwb3J0cmFpdDogXCIjeyRzY3JlZW59IGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KVwiO1xuXG4vLyAkc21hbGwtdXA6ICRzY3JlZW47XG4vLyAkc21hbGwtb25seTogXCIjeyRzY3JlZW59IGFuZCAobWF4LXdpZHRoOiAje3VwcGVyLWJvdW5kKCRzbWFsbC1yYW5nZSl9KVwiO1xuXG4vLyAkbWVkaXVtLXVwOiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkbWVkaXVtLXJhbmdlKX0pXCI7XG4vLyAkbWVkaXVtLW9ubHk6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRtZWRpdW0tcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkbWVkaXVtLXJhbmdlKX0pXCI7XG5cbi8vICRsYXJnZS11cDogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJGxhcmdlLXJhbmdlKX0pXCI7XG4kbm90LWxhcmdlLXVwOiBcIm5vdCBzY3JlZW4gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkbGFyZ2UtcmFuZ2UpfSlcIjtcbi8vICRsYXJnZS1vbmx5OiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkbGFyZ2UtcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkbGFyZ2UtcmFuZ2UpfSlcIjtcblxuLy8gJHhsYXJnZS11cDogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJHhsYXJnZS1yYW5nZSl9KVwiO1xuLy8gJHhsYXJnZS1vbmx5OiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkeGxhcmdlLXJhbmdlKX0pIGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJHhsYXJnZS1yYW5nZSl9KVwiO1xuXG4vLyAkeHhsYXJnZS11cDogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJHh4bGFyZ2UtcmFuZ2UpfSlcIjtcbi8vICR4eGxhcmdlLW9ubHk6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCR4eGxhcmdlLXJhbmdlKX0pIGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJHh4bGFyZ2UtcmFuZ2UpfSlcIjtcblxuLy8gTGVnYWN5XG4vLyAkc21hbGw6ICRtZWRpdW0tdXA7XG4vLyAkbWVkaXVtOiAkbWVkaXVtLXVwO1xuLy8gJGxhcmdlOiAkbGFyZ2UtdXA7XG5cbi8vIFdlIHVzZSB0aGlzIGFzIGN1cnNvcnMgdmFsdWVzIGZvciBlbmFibGluZyB0aGUgb3B0aW9uIG9mIGhhdmluZyBjdXN0b20gY3Vyc29ycyBpbiB0aGUgd2hvbGUgc2l0ZSdzIHN0eWxlc2hlZXRcbi8vICRjdXJzb3ItY3Jvc3NoYWlyLXZhbHVlOiBjcm9zc2hhaXI7XG4vLyAkY3Vyc29yLWRlZmF1bHQtdmFsdWU6IGRlZmF1bHQ7XG4vLyAkY3Vyc29yLWRpc2FibGVkLXZhbHVlOiBub3QtYWxsb3dlZDtcbi8vICRjdXJzb3ItcG9pbnRlci12YWx1ZTogcG9pbnRlcjtcbi8vICRjdXJzb3ItaGVscC12YWx1ZTogaGVscDtcbi8vICRjdXJzb3ItdGV4dC12YWx1ZTogdGV4dDtcbi8vIEBlbmQtZG9jXG5cbi8vIEBzdGFydC1kb2MgVHlwb2dyYXBoeVxuLy8gZS4gVHlwb2dyYXBoeVxuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuXG4vLyAkaW5jbHVkZS1odG1sLXR5cGUtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBoZWFkZXIgZm9udCBzdHlsZXNcbi8vICRoZWFkZXItZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuLy8gJGhlYWRlci1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbDtcbi8vICRoZWFkZXItZm9udC1zdHlsZTogbm9ybWFsO1xuJGhlYWRlci1mb250LWNvbG9yOiAkb2lsO1xuLy8gJGhlYWRlci1saW5lLWhlaWdodDogMS40O1xuJGhlYWRlci10b3AtbWFyZ2luOiAwO1xuLy8gJGhlYWRlci1ib3R0b20tbWFyZ2luOiAuNXJlbTtcbi8vICRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgaGVhZGVyIGZvbnQgc2l6ZXNcbiRoMS1mb250LXNpemU6IHJlbS1jYWxjKDQ1KTtcbiRoMi1mb250LXNpemU6IHJlbS1jYWxjKDMwKTtcbiRoMy1mb250LXNpemU6IHJlbS1jYWxjKDI0KTtcbiRoNC1mb250LXNpemU6IHJlbS1jYWxjKDE4KTtcbiRoNS1mb250LXNpemU6IHJlbS1jYWxjKDE4KTtcbiRoNi1mb250LXNpemU6IDFyZW07XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGhlYWRlciBzaXplIHJlZHVjdGlvbiBvbiBzbWFsbCBzY3JlZW5zXG4kaDEtZm9udC1yZWR1Y3Rpb246IHJlbS1jYWxjKDEwKTtcbiRoMi1mb250LXJlZHVjdGlvbjogcmVtLWNhbGMoMTApO1xuJGgzLWZvbnQtcmVkdWN0aW9uOiByZW0tY2FsYyg1KTtcbiRoNC1mb250LXJlZHVjdGlvbjogcmVtLWNhbGMoNSk7XG4kaDUtZm9udC1yZWR1Y3Rpb246IDA7XG4kaDYtZm9udC1yZWR1Y3Rpb246IDA7XG5cbi8vIFRoZXNlIGNvbnRyb2wgaG93IHN1YmhlYWRlcnMgYXJlIHN0eWxlZC5cbi8vICRzdWJoZWFkZXItbGluZS1oZWlnaHQ6IDEuNDtcbi8vICRzdWJoZWFkZXItZm9udC1jb2xvcjogc2NhbGUtY29sb3IoJGhlYWRlci1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAzNSUpO1xuLy8gJHN1YmhlYWRlci1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbDtcbi8vICRzdWJoZWFkZXItdG9wLW1hcmdpbjogLjJyZW07XG4vLyAkc3ViaGVhZGVyLWJvdHRvbS1tYXJnaW46IC41cmVtO1xuXG4vLyBBIGdlbmVyYWwgPHNtYWxsPiBzdHlsaW5nXG4vLyAkc21hbGwtZm9udC1zaXplOiA2MCU7XG4vLyAkc21hbGwtZm9udC1jb2xvcjogc2NhbGUtY29sb3IoJGhlYWRlci1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAzNSUpO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgcGFyYWdyYXBoc1xuLy8gJHBhcmFncmFwaC1mb250LWZhbWlseTogaW5oZXJpdDtcbi8vICRwYXJhZ3JhcGgtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWw7XG4vLyAkcGFyYWdyYXBoLWZvbnQtc2l6ZTogMXJlbTtcbiRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ6IDEuNTtcbi8vICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjApO1xuLy8gJHBhcmFncmFwaC1hc2lkZS1mb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbi8vICRwYXJhZ3JhcGgtYXNpZGUtbGluZS1oZWlnaHQ6IDEuMzU7XG4vLyAkcGFyYWdyYXBoLWFzaWRlLWZvbnQtc3R5bGU6IGl0YWxpYztcbi8vICRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIDxjb2RlPiB0YWdzXG4vLyAkY29kZS1jb2xvcjogJG9pbDtcbi8vICRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlO1xuLy8gJGNvZGUtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWw7XG4vLyAkY29kZS1iYWNrZ3JvdW5kLWNvbG9yOiBzY2FsZS1jb2xvcigkc2Vjb25kYXJ5LWNvbG9yLCAkbGlnaHRuZXNzOiA3MCUpO1xuLy8gJGNvZGUtYm9yZGVyLXNpemU6IDFweDtcbi8vICRjb2RlLWJvcmRlci1zdHlsZTogc29saWQ7XG4vLyAkY29kZS1ib3JkZXItY29sb3I6IHNjYWxlLWNvbG9yKCRjb2RlLWJhY2tncm91bmQtY29sb3IsICRsaWdodG5lc3M6IC0xMCUpO1xuLy8gJGNvZGUtcGFkZGluZzogcmVtLWNhbGMoMikgcmVtLWNhbGMoNSkgcmVtLWNhbGMoMSk7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSBhbmNob3JzXG4vLyAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbjogbm9uZTtcbi8vICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiBub25lO1xuJGFuY2hvci1mb250LWNvbG9yOiAkbGluay1ibHVlLWxpZ2h0O1xuJGFuY2hvci1mb250LWNvbG9yLWhvdmVyOiAkbGluay1ibHVlLWRhcms7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgPGhyPiBlbGVtZW50XG4vLyAkaHItYm9yZGVyLXdpZHRoOiAxcHg7XG4vLyAkaHItYm9yZGVyLXN0eWxlOiBzb2xpZDtcbi8vICRoci1ib3JkZXItY29sb3I6ICRnYWluc2Jvcm87XG4vLyAkaHItbWFyZ2luOiByZW0tY2FsYygyMCk7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSBsaXN0c1xuLy8gJGxpc3QtZm9udC1mYW1pbHk6ICRwYXJhZ3JhcGgtZm9udC1mYW1pbHk7XG4vLyAkbGlzdC1mb250LXNpemU6ICRwYXJhZ3JhcGgtZm9udC1zaXplO1xuLy8gJGxpc3QtbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ7XG4vLyAkbGlzdC1tYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4vLyAkbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbi8vICRsaXN0LXNpZGUtbWFyZ2luOiAxLjFyZW07XG4vLyAkbGlzdC1vcmRlcmVkLXNpZGUtbWFyZ2luOiAxLjRyZW07XG4vLyAkbGlzdC1zaWRlLW1hcmdpbi1uby1idWxsZXQ6IDA7XG4vLyAkbGlzdC1uZXN0ZWQtbWFyZ2luOiByZW0tY2FsYygyMCk7XG4vLyAkZGVmaW5pdGlvbi1saXN0LWhlYWRlci13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuLy8gJGRlZmluaXRpb24tbGlzdC1oZWFkZXItbWFyZ2luLWJvdHRvbTogLjNyZW07XG4vLyAkZGVmaW5pdGlvbi1saXN0LW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDEyKTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIGJsb2NrcXVvdGVzXG4vLyAkYmxvY2txdW90ZS1mb250LWNvbG9yOiBzY2FsZS1jb2xvcigkaGVhZGVyLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IDM1JSk7XG4vLyAkYmxvY2txdW90ZS1wYWRkaW5nOiByZW0tY2FsYyg5IDIwIDAgMTkpO1xuLy8gJGJsb2NrcXVvdGUtYm9yZGVyOiAxcHggc29saWQgJGdhaW5zYm9ybztcbi8vICRibG9ja3F1b3RlLWNpdGUtZm9udC1zaXplOiByZW0tY2FsYygxMyk7XG4vLyAkYmxvY2txdW90ZS1jaXRlLWZvbnQtY29sb3I6IHNjYWxlLWNvbG9yKCRoZWFkZXItZm9udC1jb2xvciwgJGxpZ2h0bmVzczogMjMlKTtcbi8vICRibG9ja3F1b3RlLWNpdGUtbGluay1jb2xvcjogJGJsb2NrcXVvdGUtY2l0ZS1mb250LWNvbG9yO1xuXG4vLyBBY3JvbnltIHN0eWxlc1xuLy8gJGFjcm9ueW0tdW5kZXJsaW5lOiAxcHggZG90dGVkICRnYWluc2Jvcm87XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHBhZGRpbmcgYW5kIG1hcmdpblxuLy8gJG1pY3JvZm9ybWF0LXBhZGRpbmc6IHJlbS1jYWxjKDEwIDEyKTtcbi8vICRtaWNyb2Zvcm1hdC1tYXJnaW46IHJlbS1jYWxjKDAgMCAyMCAwKTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGhlIGJvcmRlciBzdHlsZXNcbi8vICRtaWNyb2Zvcm1hdC1ib3JkZXItd2lkdGg6IDFweDtcbi8vICRtaWNyb2Zvcm1hdC1ib3JkZXItc3R5bGU6IHNvbGlkO1xuLy8gJG1pY3JvZm9ybWF0LWJvcmRlci1jb2xvcjogJGdhaW5zYm9ybztcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgZnVsbCBuYW1lIGZvbnQgc3R5bGVzXG4vLyAkbWljcm9mb3JtYXQtZnVsbG5hbWUtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuLy8gJG1pY3JvZm9ybWF0LWZ1bGxuYW1lLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTUpO1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHRoZSBzdW1tYXJ5IGZvbnQgc3R5bGVzXG4vLyAkbWljcm9mb3JtYXQtc3VtbWFyeS1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgYWJiciBwYWRkaW5nXG4vLyAkbWljcm9mb3JtYXQtYWJici1wYWRkaW5nOiByZW0tY2FsYygwIDEpO1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIGFiYnIgZm9udCBzdHlsZXNcbi8vICRtaWNyb2Zvcm1hdC1hYmJyLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcbi8vICRtaWNyb2Zvcm1hdC1hYmJyLWZvbnQtZGVjb3JhdGlvbjogbm9uZTtcbi8vIEBlbmQtZG9jXG5cbi8vIEBzdGFydC1kb2MgQWNjb3JkaW9uXG4vLyAwMS4gQWNjb3JkaW9uXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5cbi8vICRpbmNsdWRlLWh0bWwtYWNjb3JkaW9uLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcztcblxuLy8gJGFjY29yZGlvbi1uYXZpZ2F0aW9uLXBhZGRpbmc6IHJlbS1jYWxjKDE2KTtcbiRhY2NvcmRpb24tbmF2aWdhdGlvbi1iZy1jb2xvcjogJHNtb2tlLWdyYXk7XG4vLyAkYWNjb3JkaW9uLW5hdmlnYXRpb24taG92ZXItYmctY29sb3I6IHNjYWxlLWNvbG9yKCRhY2NvcmRpb24tbmF2aWdhdGlvbi1iZy1jb2xvciwgJGxpZ2h0bmVzczogLTUlKTtcbi8vICRhY2NvcmRpb24tbmF2aWdhdGlvbi1hY3RpdmUtYmctY29sb3I6IHNjYWxlLWNvbG9yKCRhY2NvcmRpb24tbmF2aWdhdGlvbi1iZy1jb2xvciwgJGxpZ2h0bmVzczogLTMlKTtcbi8vICRhY2NvcmRpb24tbmF2aWdhdGlvbi1mb250LWNvbG9yOiAkamV0O1xuLy8gJGFjY29yZGlvbi1uYXZpZ2F0aW9uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuLy8gJGFjY29yZGlvbi1uYXZpZ2F0aW9uLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcblxuLy8gJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmc6ICgkY29sdW1uLWd1dHRlci8yKTtcbi8vICRhY2NvcmRpb24tY29udGVudC1hY3RpdmUtYmctY29sb3I6ICR3aGl0ZTtcbi8vIEBlbmQtZG9jXG5cbi8vIEBzdGFydC1kb2MgQWxlcnQgQm94ZXNcbi8vIDAyLiBBbGVydCBCb3hlc1xuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuXG4vLyAkaW5jbHVkZS1odG1sLWFsZXJ0LWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcztcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCBhbGVydCBwYWRkaW5nLlxuLy8gJGFsZXJ0LXBhZGRpbmctdG9wOiByZW0tY2FsYygxNCk7XG4vLyAkYWxlcnQtcGFkZGluZy1kZWZhdWx0LWZsb2F0OiAkYWxlcnQtcGFkZGluZy10b3A7XG4vLyAkYWxlcnQtcGFkZGluZy1vcHBvc2l0ZS1kaXJlY3Rpb246ICRhbGVydC1wYWRkaW5nLXRvcCArIHJlbS1jYWxjKDEwKTtcbi8vICRhbGVydC1wYWRkaW5nLWJvdHRvbTogJGFsZXJ0LXBhZGRpbmctdG9wO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0ZXh0IHN0eWxlLlxuLy8gJGFsZXJ0LWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsO1xuLy8gJGFsZXJ0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xuLy8gJGFsZXJ0LWZvbnQtY29sb3I6ICR3aGl0ZTtcbi8vICRhbGVydC1mb250LWNvbG9yLWFsdDogc2NhbGUtY29sb3IoJHNlY29uZGFyeS1jb2xvciwgJGxpZ2h0bmVzczogLTY2JSk7XG5cbi8vIFdlIHVzZSB0aGlzIGZvciBjbG9zZSBob3ZlciBlZmZlY3QuXG4vLyAkYWxlcnQtZnVuY3Rpb24tZmFjdG9yOiAtMTQlO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBib3JkZXIgc3R5bGVzLlxuLy8gJGFsZXJ0LWJvcmRlci1zdHlsZTogc29saWQ7XG4vLyAkYWxlcnQtYm9yZGVyLXdpZHRoOiAxcHg7XG4vLyAkYWxlcnQtYm9yZGVyLWNvbG9yOiBzY2FsZS1jb2xvcigkcHJpbWFyeS1jb2xvciwgJGxpZ2h0bmVzczogJGFsZXJ0LWZ1bmN0aW9uLWZhY3Rvcik7XG4vLyAkYWxlcnQtYm90dG9tLW1hcmdpbjogcmVtLWNhbGMoMjApO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIGNsb3NlIGJ1dHRvbnNcbi8vICRhbGVydC1jbG9zZS1jb2xvcjogJG9pbDtcbi8vICRhbGVydC1jbG9zZS10b3A6IDUwJTtcbi8vICRhbGVydC1jbG9zZS1wb3NpdGlvbjogcmVtLWNhbGMoNCk7XG4vLyAkYWxlcnQtY2xvc2UtZm9udC1zaXplOiByZW0tY2FsYygyMik7XG4vLyAkYWxlcnQtY2xvc2Utb3BhY2l0eTogMC4zO1xuLy8gJGFsZXJ0LWNsb3NlLW9wYWNpdHktaG92ZXI6IDAuNTtcbi8vICRhbGVydC1jbG9zZS1wYWRkaW5nOiA5cHggNnB4IDRweDtcbi8vICRhbGVydC1jbG9zZS1iYWNrZ3JvdW5kOiBpbmhlcml0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIGJvcmRlciByYWRpdXNcbi8vICRhbGVydC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAkYWxlcnQtdHJhbnNpdGlvbi1zcGVlZDogMzAwbXM7XG4vLyAkYWxlcnQtdHJhbnNpdGlvbi1lYXNlOiBlYXNlLW91dDtcbi8vIEBlbmQtZG9jXG5cbi8vIEBzdGFydC1kb2MgQmxvY2sgR3JpZFxuLy8gMDMuIEJsb2NrIEdyaWRcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cblxuLy8gJGluY2x1ZGUtaHRtbC1ibG9jay1ncmlkLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3Nlcztcbi8vICRpbmNsdWRlLXhsLWh0bWwtYmxvY2stZ3JpZC1jbGFzc2VzOiBmYWxzZTtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB0aGUgbWF4aW11bSBudW1iZXIgb2YgYmxvY2sgZ3JpZCBlbGVtZW50cyBwZXIgcm93XG4vLyAkYmxvY2stZ3JpZC1lbGVtZW50czogMTI7XG4vLyAkYmxvY2stZ3JpZC1kZWZhdWx0LXNwYWNpbmc6IHJlbS1jYWxjKDIwKTtcblxuLy8gJGFsaWduLWJsb2NrLWdyaWQtdG8tZ3JpZDogZmFsc2U7XG4vLyBAaWYgJGFsaWduLWJsb2NrLWdyaWQtdG8tZ3JpZCB7JGJsb2NrLWdyaWQtZGVmYXVsdC1zcGFjaW5nOiAkY29sdW1uLWd1dHRlcjt9XG5cbi8vIEVuYWJsZXMgbWVkaWEgcXVlcmllcyBmb3IgYmxvY2stZ3JpZCBjbGFzc2VzLiBTZXQgdG8gZmFsc2UgaWYgd3JpdGluZyBzZW1hbnRpYyBIVE1MLlxuLy8gJGJsb2NrLWdyaWQtbWVkaWEtcXVlcmllczogdHJ1ZTtcbi8vIEBlbmQtZG9jXG5cbi8vIEBzdGFydC1kb2MgQnJlYWRjcnVtYnNcbi8vIDA0LiBCcmVhZGNydW1ic1xuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuXG4vLyAkaW5jbHVkZS1odG1sLW5hdi1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXM7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIHNldCB0aGUgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIGJyZWFkY3J1bWIgY29udGFpbmVyLlxuJGNydW1iLWJnOiB0cmFuc3BhcmVudDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHNldCB0aGUgcGFkZGluZyBhcm91bmQgdGhlIGJyZWFkY3J1bWJzLlxuJGNydW1iLXBhZGRpbmc6IHJlbS1jYWxjKDAgMTQgOSk7XG4vLyAkY3J1bWItc2lkZS1wYWRkaW5nOiByZW0tY2FsYygxMik7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGJvcmRlciBzdHlsZXMuXG4vLyAkY3J1bWItZnVuY3Rpb24tZmFjdG9yOiAtMTAlO1xuLy8gJGNydW1iLWJvcmRlci1zaXplOiAxcHg7XG4kY3J1bWItYm9yZGVyLXN0eWxlOiBub25lO1xuLy8gJGNydW1iLWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJGNydW1iLWJnLCAkbGlnaHRuZXNzOiAkY3J1bWItZnVuY3Rpb24tZmFjdG9yKTtcbi8vICRjcnVtYi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc2V0IHZhcmlvdXMgdGV4dCBzdHlsZXMgZm9yIGJyZWFkY3J1bWJzLlxuJGNydW1iLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuJGNydW1iLWZvbnQtY29sb3I6ICRhbmNob3ItZm9udC1jb2xvcjtcbiRjcnVtYi1mb250LWNvbG9yLWN1cnJlbnQ6ICRhbHVtaW51bTtcbi8vICRjcnVtYi1mb250LWNvbG9yLXVuYXZhaWxhYmxlOiAkYWx1bWludW07XG4vLyAkY3J1bWItZm9udC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbi8vICRjcnVtYi1saW5rLWRlY29yOiB1bmRlcmxpbmU7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBzbGFzaCBiZXR3ZWVuIGJyZWFkY3J1bWJzXG4vLyAkY3J1bWItc2xhc2gtY29sb3I6ICRiYXNlO1xuLy8gJGNydW1iLXNsYXNoOiBcIi9cIjtcbi8vIEBlbmQtZG9jXG5cbi8vIEBzdGFydC1kb2MgQnV0dG9uc1xuLy8gMDUuIEJ1dHRvbnNcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cblxuLy8gJGluY2x1ZGUtaHRtbC1idXR0b24tY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gYnVpbGQgcGFkZGluZyBmb3IgYnV0dG9ucy5cbiRidXR0b24tdG55OiByZW0tY2FsYyg3LjYpO1xuJGJ1dHRvbi1zbWw6IHJlbS1jYWxjKDEwLjI1KTtcbiRidXR0b24tbWVkOiByZW0tY2FsYygxNSk7XG4vLyAkYnV0dG9uLWxyZzogcmVtLWNhbGMoMTgpO1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHRoZSBkaXNwbGF5IHByb3BlcnR5LlxuLy8gJGJ1dHRvbi1kaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4vLyAkYnV0dG9uLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgYnV0dG9uIHRleHQgc3R5bGVzLlxuLy8gJGJ1dHRvbi1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4vLyAkYnV0dG9uLWZvbnQtY29sb3I6ICR3aGl0ZTtcbi8vICRidXR0b24tZm9udC1jb2xvci1hbHQ6ICRvaWw7XG4kYnV0dG9uLWZvbnQtdG55OiByZW0tY2FsYygxMik7XG4kYnV0dG9uLWZvbnQtc21sOiByZW0tY2FsYygxNik7XG4kYnV0dG9uLWZvbnQtbWVkOiByZW0tY2FsYygxNik7XG4vLyAkYnV0dG9uLWZvbnQtbHJnOiByZW0tY2FsYygyMCk7XG4vLyAkYnV0dG9uLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsO1xuLy8gJGJ1dHRvbi1mb250LWFsaWduOiBjZW50ZXI7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHZhcmlvdXMgaG92ZXIgZWZmZWN0cy5cbi8vICRidXR0b24tZnVuY3Rpb24tZmFjdG9yOiAtMjAlO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBidXR0b24gYm9yZGVyIHN0eWxlcy5cbi8vICRidXR0b24tYm9yZGVyLXdpZHRoOiAwO1xuLy8gJGJ1dHRvbi1ib3JkZXItc3R5bGU6IHNvbGlkO1xuLy8gJGJ1dHRvbi1iZy1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kYnV0dG9uLWJnLWhvdmVyOiAkcHJpbWFyeS1zaGFkb3ctY29sb3I7XG4vLyAkYnV0dG9uLWJvcmRlci1jb2xvcjogJGJ1dHRvbi1iZy1ob3ZlcjtcbiRzZWNvbmRhcnktYnV0dG9uLWJnLWhvdmVyOiAkc2Vjb25kYXJ5LXNoYWRvdy1jb2xvcjtcbi8vICRzZWNvbmRhcnktYnV0dG9uLWJvcmRlci1jb2xvcjogJHNlY29uZGFyeS1idXR0b24tYmctaG92ZXI7XG4vLyAkc3VjY2Vzcy1idXR0b24tYmctaG92ZXI6IHNjYWxlLWNvbG9yKCRzdWNjZXNzLWNvbG9yLCAkbGlnaHRuZXNzOiAkYnV0dG9uLWZ1bmN0aW9uLWZhY3Rvcik7XG4vLyAkc3VjY2Vzcy1idXR0b24tYm9yZGVyLWNvbG9yOiAkc3VjY2Vzcy1idXR0b24tYmctaG92ZXI7XG4vLyAkYWxlcnQtYnV0dG9uLWJnLWhvdmVyOiBzY2FsZS1jb2xvcigkYWxlcnQtY29sb3IsICRsaWdodG5lc3M6ICRidXR0b24tZnVuY3Rpb24tZmFjdG9yKTtcbi8vICRhbGVydC1idXR0b24tYm9yZGVyLWNvbG9yOiAkYWxlcnQtYnV0dG9uLWJnLWhvdmVyO1xuLy8gJHdhcm5pbmctYnV0dG9uLWJnLWhvdmVyOiBzY2FsZS1jb2xvcigkd2FybmluZy1jb2xvciwgJGxpZ2h0bmVzczogJGJ1dHRvbi1mdW5jdGlvbi1mYWN0b3IpO1xuLy8gJHdhcm5pbmctYnV0dG9uLWJvcmRlci1jb2xvcjogJHdhcm5pbmctYnV0dG9uLWJnLWhvdmVyO1xuLy8gJGluZm8tYnV0dG9uLWJnLWhvdmVyOiBzY2FsZS1jb2xvcigkaW5mby1jb2xvciwgJGxpZ2h0bmVzczogJGJ1dHRvbi1mdW5jdGlvbi1mYWN0b3IpO1xuLy8gJGluZm8tYnV0dG9uLWJvcmRlci1jb2xvcjogJGluZm8tYnV0dG9uLWJnLWhvdmVyO1xuXG4vLyBXZSB1c2UgdGhpcyB0byBzZXQgdGhlIGRlZmF1bHQgcmFkaXVzIHVzZWQgdGhyb3VnaG91dCB0aGUgY29yZS5cbiRidXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbi8vICRidXR0b24tcm91bmQ6ICRnbG9iYWwtcm91bmRlZDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gc2V0IGRlZmF1bHQgb3BhY2l0eSBhbmQgY3Vyc29yIGZvciBkaXNhYmxlZCBidXR0b25zLlxuJGJ1dHRvbi1kaXNhYmxlZC1vcGFjaXR5OiAwLjU7XG4vLyAkYnV0dG9uLWRpc2FibGVkLWN1cnNvcjogJGN1cnNvci1kZWZhdWx0LXZhbHVlO1xuLy8gQGVuZC1kb2NcblxuLy8gQHN0YXJ0LWRvYyBCdXR0b24gR3JvdXBzXG4vLyAwNi4gQnV0dG9uIEdyb3Vwc1xuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuXG4vLyAkaW5jbHVkZS1odG1sLWJ1dHRvbi1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXM7XG5cbi8vIFNldHMgdGhlIG1hcmdpbiBmb3IgdGhlIHJpZ2h0IHNpZGUgYnkgZGVmYXVsdCwgYW5kIHRoZSBsZWZ0IG1hcmdpbiBpZiByaWdodC10by1sZWZ0IGRpcmVjdGlvbiBpcyB1c2VkXG4vLyAkYnV0dG9uLWJhci1tYXJnaW4tb3Bwb3NpdGU6IHJlbS1jYWxjKDEwKTtcbi8vICRidXR0b24tZ3JvdXAtYm9yZGVyLXdpZHRoOiAxcHg7XG4vLyBAZW5kLWRvY1xuXG4vLyBAc3RhcnQtZG9jIENsZWFyaW5nXG4vLyAwNy4gQ2xlYXJpbmdcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cblxuLy8gJGluY2x1ZGUtaHRtbC1jbGVhcmluZy1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXM7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzZXQgdGhlIGJhY2tncm91bmQgY29sb3JzIGZvciBwYXJ0cyBvZiBDbGVhcmluZy5cbi8vICRjbGVhcmluZy1iZzogJG9pbDtcbi8vICRjbGVhcmluZy1jYXB0aW9uLWJnOiAkY2xlYXJpbmctYmc7XG4vLyAkY2xlYXJpbmctY2Fyb3VzZWwtYmc6IHJnYmEoNTEsNTEsNTEsMC44KTtcbi8vICRjbGVhcmluZy1pbWctYmc6ICRjbGVhcmluZy1iZztcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBjbG9zZSBidXR0b25cbi8vICRjbGVhcmluZy1jbG9zZS1jb2xvcjogJGlyb247XG4vLyAkY2xlYXJpbmctY2xvc2Utc2l6ZTogMzBweDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBhcnJvd3Ncbi8vICRjbGVhcmluZy1hcnJvdy1zaXplOiAxMnB4O1xuLy8gJGNsZWFyaW5nLWFycm93LWNvbG9yOiAkY2xlYXJpbmctY2xvc2UtY29sb3I7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSBjYXB0aW9uc1xuLy8gJGNsZWFyaW5nLWNhcHRpb24tZm9udC1jb2xvcjogJGlyb247XG4vLyAkY2xlYXJpbmctY2FwdGlvbi1mb250LXNpemU6IDAuODc1ZW07XG4vLyAkY2xlYXJpbmctY2FwdGlvbi1wYWRkaW5nOiAxMHB4IDMwcHggMjBweDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIG1ha2UgdGhlIGltYWdlIGFuZCBjYXJvdXNlbCBoZWlnaHQgYW5kIHN0eWxlXG4vLyAkY2xlYXJpbmctYWN0aXZlLWltZy1oZWlnaHQ6IDg1JTtcbi8vICRjbGVhcmluZy1jYXJvdXNlbC1oZWlnaHQ6IDEyMHB4O1xuLy8gJGNsZWFyaW5nLWNhcm91c2VsLXRodW1iLXdpZHRoOiAxMjBweDtcbi8vICRjbGVhcmluZy1jYXJvdXNlbC10aHVtYi1hY3RpdmUtYm9yZGVyOiAxcHggc29saWQgcmdiKDI1NSwyNTUsMjU1KTtcbi8vIEBlbmQtZG9jXG5cbi8vIEBzdGFydC1kb2MgRHJvcGRvd25cbi8vIDA4LiBEcm9wZG93blxuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuXG4vLyAkaW5jbHVkZS1odG1sLWRyb3Bkb3duLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcztcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2xzIGhlaWdodCBhbmQgd2lkdGggc3R5bGVzLlxuLy8gJGYtZHJvcGRvd24tbWF4LXdpZHRoOiAyMDBweDtcbi8vICRmLWRyb3Bkb3duLWhlaWdodDogYXV0bztcbi8vICRmLWRyb3Bkb3duLW1heC1oZWlnaHQ6IG5vbmU7XG5cbi8vIFVzZWQgZm9yIGJvdHRvbSBwb3NpdGlvblxuLy8gJGYtZHJvcGRvd24tbWFyZ2luLXRvcDogMnB4O1xuXG4vLyBVc2VkIGZvciByaWdodCBwb3NpdGlvblxuLy8gJGYtZHJvcGRvd24tbWFyZ2luLWxlZnQ6ICRmLWRyb3Bkb3duLW1hcmdpbi10b3A7XG5cbi8vIFVzZWQgZm9yIGxlZnQgcG9zaXRpb25cbi8vICRmLWRyb3Bkb3duLW1hcmdpbi1yaWdodDogJGYtZHJvcGRvd24tbWFyZ2luLXRvcDtcblxuLy8gVXNlZCBmb3IgdG9wIHBvc2l0aW9uXG4vLyAkZi1kcm9wZG93bi1tYXJnaW4tYm90dG9tOiAkZi1kcm9wZG93bi1tYXJnaW4tdG9wO1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHRoZSBiYWNrZ3JvdW5kIGNvbG9yXG4vLyAkZi1kcm9wZG93bi1iZzogJHdoaXRlO1xuXG4vLyBXZSB1c2UgdGhpcyB0byBzZXQgdGhlIGJvcmRlciBzdHlsZXMgZm9yIGRyb3Bkb3ducy5cbi8vICRmLWRyb3Bkb3duLWJvcmRlci1zdHlsZTogc29saWQ7XG4vLyAkZi1kcm9wZG93bi1ib3JkZXItd2lkdGg6IDFweDtcbi8vICRmLWRyb3Bkb3duLWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAtMjAlKTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSB0cmlhbmdsZSBwaXAuXG4vLyAkZi1kcm9wZG93bi10cmlhbmdsZS1zaXplOiA2cHg7XG4vLyAkZi1kcm9wZG93bi10cmlhbmdsZS1jb2xvcjogJHdoaXRlO1xuLy8gJGYtZHJvcGRvd24tdHJpYW5nbGUtc2lkZS1vZmZzZXQ6IDEwcHg7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHN0eWxlcyBmb3IgdGhlIGxpc3QgZWxlbWVudHMuXG4vLyAkZi1kcm9wZG93bi1saXN0LXN0eWxlOiBub25lO1xuLy8gJGYtZHJvcGRvd24tZm9udC1jb2xvcjogJGNoYXJjb2FsO1xuLy8gJGYtZHJvcGRvd24tZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4vLyAkZi1kcm9wZG93bi1saXN0LXBhZGRpbmc6IHJlbS1jYWxjKDUsIDEwKTtcbi8vICRmLWRyb3Bkb3duLWxpbmUtaGVpZ2h0OiByZW0tY2FsYygxOCk7XG4vLyAkZi1kcm9wZG93bi1saXN0LWhvdmVyLWJnOiAkc21va2U7XG4vLyAkZHJvcGRvd24tbW9iaWxlLWRlZmF1bHQtZmxvYXQ6IDA7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgdGhlIHN0eWxlcyBmb3Igd2hlbiB0aGUgZHJvcGRvd24gaGFzIGN1c3RvbSBjb250ZW50LlxuLy8gJGYtZHJvcGRvd24tY29udGVudC1wYWRkaW5nOiByZW0tY2FsYygyMCk7XG5cbi8vIERlZmF1bHQgcmFkaXVzIGZvciBkcm9wZG93bi5cbi8vICRmLWRyb3Bkb3duLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4vLyBAZW5kLWRvY1xuXG4vLyBAc3RhcnQtZG9jIERyb3Bkb3duIEJ1dHRvbnNcbi8vIDA5LiBEcm9wZG93biBCdXR0b25zXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5cbi8vICRpbmNsdWRlLWh0bWwtYnV0dG9uLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcztcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHNldCB0aGUgY29sb3Igb2YgdGhlIHBpcCBpbiBkcm9wZG93biBidXR0b25zXG4vLyAkZHJvcGRvd24tYnV0dG9uLXBpcC1jb2xvcjogJHdoaXRlO1xuLy8gJGRyb3Bkb3duLWJ1dHRvbi1waXAtY29sb3ItYWx0OiAkb2lsO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc2V0IHRoZSBzaXplIG9mIHRoZSBwaXAgaW4gZHJvcGRvd24gYnV0dG9uc1xuLy8gJGJ1dHRvbi1waXAtdG55OiByZW0tY2FsYyg2KTtcbi8vICRidXR0b24tcGlwLXNtbDogcmVtLWNhbGMoNyk7XG4vLyAkYnV0dG9uLXBpcC1tZWQ6IHJlbS1jYWxjKDkpO1xuLy8gJGJ1dHRvbi1waXAtbHJnOiByZW0tY2FsYygxMSk7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aW55IGRyb3Bkb3duIGJ1dHRvbnNcbi8vICRkcm9wZG93bi1idXR0b24tcGFkZGluZy10bnk6ICRidXR0b24tcGlwLXRueSAqIDc7XG4vLyAkZHJvcGRvd24tYnV0dG9uLXBpcC1zaXplLXRueTogJGJ1dHRvbi1waXAtdG55O1xuLy8gJGRyb3Bkb3duLWJ1dHRvbi1waXAtb3Bwb3NpdGUtdG55OiAkYnV0dG9uLXBpcC10bnkgKiAzO1xuLy8gJGRyb3Bkb3duLWJ1dHRvbi1waXAtdG9wLXRueTogKC0kYnV0dG9uLXBpcC10bnkgLyAyKSArIHJlbS1jYWxjKDEpO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgc21hbGwgZHJvcGRvd24gYnV0dG9uc1xuLy8gJGRyb3Bkb3duLWJ1dHRvbi1wYWRkaW5nLXNtbDogJGJ1dHRvbi1waXAtc21sICogNztcbi8vICRkcm9wZG93bi1idXR0b24tcGlwLXNpemUtc21sOiAkYnV0dG9uLXBpcC1zbWw7XG4vLyAkZHJvcGRvd24tYnV0dG9uLXBpcC1vcHBvc2l0ZS1zbWw6ICRidXR0b24tcGlwLXNtbCAqIDM7XG4vLyAkZHJvcGRvd24tYnV0dG9uLXBpcC10b3Atc21sOiAoLSRidXR0b24tcGlwLXNtbCAvIDIpICsgcmVtLWNhbGMoMSk7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSBtZWRpdW0gZHJvcGRvd24gYnV0dG9uc1xuLy8gJGRyb3Bkb3duLWJ1dHRvbi1wYWRkaW5nLW1lZDogJGJ1dHRvbi1waXAtbWVkICogNiArIHJlbS1jYWxjKDMpO1xuLy8gJGRyb3Bkb3duLWJ1dHRvbi1waXAtc2l6ZS1tZWQ6ICRidXR0b24tcGlwLW1lZCAtIHJlbS1jYWxjKDMpO1xuLy8gJGRyb3Bkb3duLWJ1dHRvbi1waXAtb3Bwb3NpdGUtbWVkOiAkYnV0dG9uLXBpcC1tZWQgKiAyLjU7XG4vLyAkZHJvcGRvd24tYnV0dG9uLXBpcC10b3AtbWVkOiAoLSRidXR0b24tcGlwLW1lZCAvIDIpICsgcmVtLWNhbGMoMik7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSBsYXJnZSBkcm9wZG93biBidXR0b25zXG4vLyAkZHJvcGRvd24tYnV0dG9uLXBhZGRpbmctbHJnOiAkYnV0dG9uLXBpcC1scmcgKiA1ICsgcmVtLWNhbGMoMyk7XG4vLyAkZHJvcGRvd24tYnV0dG9uLXBpcC1zaXplLWxyZzogJGJ1dHRvbi1waXAtbHJnIC0gcmVtLWNhbGMoNik7XG4vLyAkZHJvcGRvd24tYnV0dG9uLXBpcC1vcHBvc2l0ZS1scmc6ICRidXR0b24tcGlwLWxyZyAqIDIuNTtcbi8vICRkcm9wZG93bi1idXR0b24tcGlwLXRvcC1scmc6ICgtJGJ1dHRvbi1waXAtbHJnIC8gMikgKyByZW0tY2FsYygzKTtcbi8vIEBlbmQtZG9jXG5cbi8vIEBzdGFydC1kb2MgRmxleCBWaWRlb1xuLy8gMTAuIEZsZXggVmlkZW9cbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cblxuLy8gJGluY2x1ZGUtaHRtbC1tZWRpYS1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXM7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHZpZGVvIGNvbnRhaW5lciBwYWRkaW5nIGFuZCBtYXJnaW5zXG4vLyAkZmxleC12aWRlby1wYWRkaW5nLXRvcDogcmVtLWNhbGMoMjUpO1xuLy8gJGZsZXgtdmlkZW8tcGFkZGluZy1ib3R0b206IDY3LjUlO1xuLy8gJGZsZXgtdmlkZW8tbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTYpO1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHdpZGVzY3JlZW4gYm90dG9tIHBhZGRpbmdcbi8vICRmbGV4LXZpZGVvLXdpZGVzY3JlZW4tcGFkZGluZy1ib3R0b206IDU2LjM0JTtcbi8vIEBlbmQtZG9jXG5cbi8vIEBzdGFydC1kb2MgRm9ybXNcbi8vIDExLiBGb3Jtc1xuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuXG4vLyAkaW5jbHVkZS1odG1sLWZvcm0tY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzO1xuXG4vLyBXZSB1c2UgdGhpcyB0byBzZXQgdGhlIGJhc2UgZm9yIGxvdHMgb2YgZm9ybSBzcGFjaW5nIGFuZCBwb3NpdGlvbmluZyBzdHlsZXNcbiRmb3JtLXNwYWNpbmc6IHJlbS1jYWxjKDE4KTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBsYWJlbHMgaW4gZGlmZmVyZW50IHdheXNcbi8vICRmb3JtLWxhYmVsLXBvaW50ZXI6IHBvaW50ZXI7XG4kZm9ybS1sYWJlbC1mb250LXNpemU6IHJlbS1jYWxjKDE2KTtcbi8vICRmb3JtLWxhYmVsLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsO1xuLy8gJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuNTtcbi8vICRmb3JtLWxhYmVsLWZvbnQtY29sb3I6IHNjYWxlLWNvbG9yKCRibGFjaywgJGxpZ2h0bmVzczogMzAlKTtcbi8vICRmb3JtLWxhYmVsLXNtYWxsLXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbi8vICRmb3JtLWxhYmVsLWJvdHRvbS1tYXJnaW46IDA7XG4vLyAkaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4vLyAkaW5wdXQtZm9udC1jb2xvcjogcmdiYSgwLDAsMCwwLjc1KTtcbiRpbnB1dC1mb250LXNpemU6IHJlbS1jYWxjKDE2KTtcbi8vICRpbnB1dC1iZy1jb2xvcjogJHdoaXRlO1xuLy8gJGlucHV0LWZvY3VzLWJnLWNvbG9yOiBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC0yJSk7XG4vLyAkaW5wdXQtYm9yZGVyLWNvbG9yOiBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC0yMCUpO1xuLy8gJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAtNDAlKTtcbi8vICRpbnB1dC1ib3JkZXItc3R5bGU6IHNvbGlkO1xuLy8gJGlucHV0LWJvcmRlci13aWR0aDogMXB4O1xuLy8gJGlucHV0LWJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuLy8gJGlucHV0LWRpc2FibGVkLWJnOiAkZ2FpbnNib3JvO1xuLy8gJGlucHV0LWRpc2FibGVkLWN1cnNvcjogJGN1cnNvci1kZWZhdWx0LXZhbHVlO1xuLy8gJGlucHV0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDAsMCwwLDAuMSk7XG4vLyAkaW5wdXQtaW5jbHVkZS1nbG93aW5nLWVmZmVjdDogdHJ1ZTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBmaWVsZHNldCBib3JkZXIgYW5kIHNwYWNpbmcuXG4vLyAkZmllbGRzZXQtYm9yZGVyLXN0eWxlOiBzb2xpZDtcbi8vICRmaWVsZHNldC1ib3JkZXItd2lkdGg6IDFweDtcbi8vICRmaWVsZHNldC1ib3JkZXItY29sb3I6ICRnYWluc2Jvcm87XG4vLyAkZmllbGRzZXQtcGFkZGluZzogcmVtLWNhbGMoMjApO1xuLy8gJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCk7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgbGVnZW5kcyB3aGVuIHlvdSB1c2UgdGhlbVxuLy8gJGxlZ2VuZC1iZzogJHdoaXRlO1xuLy8gJGxlZ2VuZC1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XG4vLyAkbGVnZW5kLXBhZGRpbmc6IHJlbS1jYWxjKDAgMyk7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgcHJlZml4IGFuZCBwb3N0Zml4IGlucHV0IGVsZW1lbnRzXG4vLyAkaW5wdXQtcHJlZml4LWJnOiBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC01JSk7XG4vLyAkaW5wdXQtcHJlZml4LWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAtMjAlKTtcbi8vICRpbnB1dC1wcmVmaXgtYm9yZGVyLXNpemU6IDFweDtcbi8vICRpbnB1dC1wcmVmaXgtYm9yZGVyLXR5cGU6IHNvbGlkO1xuLy8gJGlucHV0LXByZWZpeC1vdmVyZmxvdzogaGlkZGVuO1xuLy8gJGlucHV0LXByZWZpeC1mb250LWNvbG9yOiAkb2lsO1xuLy8gJGlucHV0LXByZWZpeC1mb250LWNvbG9yLWFsdDogJHdoaXRlO1xuXG4vLyBXZSB1c2UgdGhpcyBzZXR0aW5nIHRvIHR1cm4gb24vb2ZmIEhUTUw1IG51bWJlciBzcGlubmVycyAodGhlIHVwL2Rvd24gYXJyb3dzKVxuLy8gJGlucHV0LW51bWJlci1zcGlubmVyczogdHJ1ZTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBlcnJvciBzdGF0ZXMgZm9yIGlucHV0cyBhbmQgbGFiZWxzXG4gJGlucHV0LWVycm9yLW1lc3NhZ2UtcGFkZGluZzogcmVtLWNhbGMoNiA5IDkgMCk7XG4gJGlucHV0LWVycm9yLW1lc3NhZ2UtdG9wOiAwO1xuLy8gJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4vLyAkaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbDtcbiAkaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LXN0eWxlOiBub3JtYWw7XG4gJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1jb2xvcjogJGFsZXJ0LWNvbG9yO1xuICRpbnB1dC1lcnJvci1tZXNzYWdlLWJnLWNvbG9yOiAkd2hpdGU7XG4vLyAkaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LWNvbG9yLWFsdDogJG9pbDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gc3R5bGUgdGhlIGdsb3dpbmcgZWZmZWN0IG9mIGlucHV0cyB3aGVuIGZvY3VzZWRcbi8vICRnbG93aW5nLWVmZmVjdC1mYWRlLXRpbWU6IDAuNDVzO1xuLy8gJGdsb3dpbmctZWZmZWN0LWNvbG9yOiAkaW5wdXQtZm9jdXMtYm9yZGVyLWNvbG9yO1xuXG4vLyBTZWxlY3QgdmFyaWFibGVzXG4vLyAkc2VsZWN0LWJnLWNvbG9yOiAkZ2hvc3Q7XG4vLyAkc2VsZWN0LWhvdmVyLWJnLWNvbG9yOiBzY2FsZS1jb2xvcigkc2VsZWN0LWJnLWNvbG9yLCAkbGlnaHRuZXNzOiAtMyUpO1xuLy8gQGVuZC1kb2NcblxuLy8gQHN0YXJ0LWRvYyBJY29uIEJhclxuLy8gMTIuIEljb24gQmFyXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgaWNvbi1iYXIgYW5kIGl0ZW1zXG4vLyAkaWNvbi1iYXItYmc6ICRvaWw7XG4vLyAkaWNvbi1iYXItZm9udC1jb2xvcjogJHdoaXRlO1xuLy8gJGljb24tYmFyLWZvbnQtY29sb3ItaG92ZXI6ICRpY29uLWJhci1mb250LWNvbG9yO1xuLy8gJGljb24tYmFyLWZvbnQtc2l6ZTogMXJlbTtcbi8vICRpY29uLWJhci1ob3Zlci1jb2xvcjogJHByaW1hcnktY29sb3I7XG4vLyAkaWNvbi1iYXItaWNvbi1jb2xvcjogJHdoaXRlO1xuLy8gJGljb24tYmFyLWljb24tY29sb3ItaG92ZXI6ICRpY29uLWJhci1pY29uLWNvbG9yO1xuLy8gJGljb24tYmFyLWljb24tc2l6ZTogMS44NzVyZW07XG4vLyAkaWNvbi1iYXItaW1hZ2Utd2lkdGg6IDEuODc1cmVtO1xuLy8gJGljb24tYmFyLWltYWdlLWhlaWdodDogMS44NzVyZW07XG4vLyAkaWNvbi1iYXItYWN0aXZlLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbi8vICRpY29uLWJhci1pdGVtLXBhZGRpbmc6IDEuMjVyZW07XG5cbi8vIFdlIHVzZSB0aGlzIHRvIHNldCBkZWZhdWx0IG9wYWNpdHkgYW5kIGN1cnNvciBmb3IgZGlzYWJsZWQgaWNvbnMuXG4vLyAkaWNvbi1iYXItZGlzYWJsZWQtb3BhY2l0eTogMC43O1xuLy8gQGVuZC1kb2NcblxuLy8gQHN0YXJ0LWRvYyBJbmxpbmUgTGlzdHNcbi8vIDEzLiBJbmxpbmUgTGlzdHNcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cblxuLy8gJGluY2x1ZGUtaHRtbC1pbmxpbmUtbGlzdC1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXM7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgdGhlIG1hcmdpbnMgYW5kIHBhZGRpbmcgb2YgdGhlIGlubGluZSBsaXN0LlxuLy8gJGlubGluZS1saXN0LXRvcC1tYXJnaW46IDA7XG4vLyAkaW5saW5lLWxpc3Qtb3Bwb3NpdGUtbWFyZ2luOiAwO1xuJGlubGluZS1saXN0LWJvdHRvbS1tYXJnaW46IHJlbS1jYWxjKDE2KTtcbi8vJGlubGluZS1saXN0LWRlZmF1bHQtZmxvYXQtbWFyZ2luOiByZW0tY2FsYygtMjIpO1xuLy8kaW5saW5lLWxpc3QtZGVmYXVsdC1mbG9hdC1saXN0LW1hcmdpbjogcmVtLWNhbGMoMjIpO1xuXG4vLyAkaW5saW5lLWxpc3QtcGFkZGluZzogMDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB0aGUgb3ZlcmZsb3cgb2YgdGhlIGlubGluZSBsaXN0LlxuLy8gJGlubGluZS1saXN0LW92ZXJmbG93OiBoaWRkZW47XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgdGhlIGxpc3QgaXRlbXNcbi8vICRpbmxpbmUtbGlzdC1kaXNwbGF5OiBibG9jaztcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCBhbnkgZWxlbWVudHMgd2l0aGluIGxpc3QgaXRlbXNcbi8vICRpbmxpbmUtbGlzdC1jaGlsZHJlbi1kaXNwbGF5OiBibG9jaztcbi8vIEBlbmQtZG9jXG5cbi8vIEBzdGFydC1kb2MgSm95cmlkZVxuLy8gMTQuIEpveXJpZGVcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cblxuLy8gJGluY2x1ZGUtaHRtbC1qb3lyaWRlLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcztcblxuLy8gQ29udHJvbGxpbmcgZGVmYXVsdCBKb3lyaWRlIHN0eWxlc1xuLy8gJGpveXJpZGUtdGlwLWJnOiAkb2lsO1xuLy8gJGpveXJpZGUtdGlwLWRlZmF1bHQtd2lkdGg6IDMwMHB4O1xuLy8gJGpveXJpZGUtdGlwLXBhZGRpbmc6IHJlbS1jYWxjKDE4IDIwIDI0KTtcbi8vICRqb3lyaWRlLXRpcC1ib3JkZXI6IHNvbGlkIDFweCAkY2hhcmNvYWw7XG4vLyAkam95cmlkZS10aXAtcmFkaXVzOiA0cHg7XG4vLyAkam95cmlkZS10aXAtcG9zaXRpb24tb2Zmc2V0OiAyMnB4O1xuXG4vLyBIZXJlLCB3ZSdyZSBzZXR0aW5nIHRoZSB0aXAgZm9udCBzdHlsZXNcbi8vICRqb3lyaWRlLXRpcC1mb250LWNvbG9yOiAkd2hpdGU7XG4vLyAkam95cmlkZS10aXAtZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4vLyAkam95cmlkZS10aXAtaGVhZGVyLXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XG5cbi8vIFRoaXMgY2hhbmdlcyB0aGUgbnViIHNpemVcbi8vICRqb3lyaWRlLXRpcC1udWItc2l6ZTogMTBweDtcblxuLy8gVGhpcyBhZGp1c3RzIHRoZSBzdHlsZXMgZm9yIHRoZSB0aW1lciB3aGVuIGl0cyBlbmFibGVkXG4vLyAkam95cmlkZS10aXAtdGltZXItd2lkdGg6IDUwcHg7XG4vLyAkam95cmlkZS10aXAtdGltZXItaGVpZ2h0OiAzcHg7XG4vLyAkam95cmlkZS10aXAtdGltZXItY29sb3I6ICRzdGVlbDtcblxuLy8gVGhpcyBjaGFuZ2VzIHVwIHRoZSBzdHlsZXMgZm9yIHRoZSBjbG9zZSBidXR0b25cbi8vICRqb3lyaWRlLXRpcC1jbG9zZS1jb2xvcjogJG1vbnNvb247XG4vLyAkam95cmlkZS10aXAtY2xvc2Utc2l6ZTogMjRweDtcbi8vICRqb3lyaWRlLXRpcC1jbG9zZS13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWw7XG5cbi8vIFdoZW4gSm95cmlkZSBpcyBmaWxsaW5nIHRoZSBzY3JlZW4sIHdlIHVzZSB0aGlzIHN0eWxlIGZvciB0aGUgYmdcbi8vICRqb3lyaWRlLXNjcmVlbmZpbGw6IHJnYmEoMCwwLDAsMC41KTtcbi8vIEBlbmQtZG9jXG5cbi8vIEBzdGFydC1kb2MgS2V5c3Ryb2tlc1xuLy8gMTUuIEtleXN0cm9rZXNcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cblxuLy8gJGluY2x1ZGUtaHRtbC1rZXlzdHJva2UtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0ZXh0IHN0eWxlcy5cbi8vICRrZXlzdHJva2UtZm9udDogXCJDb25zb2xhc1wiLCBcIk1lbmxvXCIsIFwiQ291cmllclwiLCBtb25vc3BhY2U7XG4vLyAka2V5c3Ryb2tlLWZvbnQtc2l6ZTogaW5oZXJpdDtcbi8vICRrZXlzdHJva2UtZm9udC1jb2xvcjogJGpldDtcbi8vICRrZXlzdHJva2UtZm9udC1jb2xvci1hbHQ6ICR3aGl0ZTtcbi8vICRrZXlzdHJva2UtZnVuY3Rpb24tZmFjdG9yOiAtNyU7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wga2V5c3Ryb2tlIHBhZGRpbmcuXG4vLyAka2V5c3Ryb2tlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNCAwKTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgYmFja2dyb3VuZCBhbmQgYm9yZGVyIHN0eWxlcy5cbi8vICRrZXlzdHJva2UtYmc6IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogJGtleXN0cm9rZS1mdW5jdGlvbi1mYWN0b3IpO1xuLy8gJGtleXN0cm9rZS1ib3JkZXItc3R5bGU6IHNvbGlkO1xuLy8gJGtleXN0cm9rZS1ib3JkZXItd2lkdGg6IDFweDtcbi8vICRrZXlzdHJva2UtYm9yZGVyLWNvbG9yOiBzY2FsZS1jb2xvcigka2V5c3Ryb2tlLWJnLCAkbGlnaHRuZXNzOiAka2V5c3Ryb2tlLWZ1bmN0aW9uLWZhY3Rvcik7XG4vLyAka2V5c3Ryb2tlLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4vLyBAZW5kLWRvY1xuXG4vLyBAc3RhcnQtZG9jIExhYmVsc1xuLy8gMTYuIExhYmVsc1xuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuXG4vLyAkaW5jbHVkZS1odG1sLWxhYmVsLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcztcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBsYWJlbHNcbi8vICRsYWJlbC1wYWRkaW5nOiByZW0tY2FsYyg0IDggNCk7XG4vLyAkbGFiZWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBsYWJlbCB0ZXh0XG4vLyAkbGFiZWwtZm9udC1zaXppbmc6IHJlbS1jYWxjKDExKTtcbi8vICRsYWJlbC1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbDtcbi8vICRsYWJlbC1mb250LWNvbG9yOiAkb2lsO1xuLy8gJGxhYmVsLWZvbnQtY29sb3ItYWx0OiAkd2hpdGU7XG4vLyAkbGFiZWwtZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuLy8gQGVuZC1kb2NcblxuLy8gQHN0YXJ0LWRvYyBNYWdlbGxhblxuLy8gMTcuIE1hZ2VsbGFuXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5cbi8vICRpbmNsdWRlLWh0bWwtbWFnZWxsYW4tY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzO1xuXG4vLyAkbWFnZWxsYW4tYmc6ICR3aGl0ZTtcbi8vICRtYWdlbGxhbi1wYWRkaW5nOiAxMHB4O1xuLy8gQGVuZC1kb2NcblxuLy8gQHN0YXJ0LWRvYyBPZmYtY2FudmFzXG4vLyAxOC4gT2ZmLWNhbnZhc1xuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuXG5cbi8vIE9mZiBDYW52YXMgVGFiIEJhciBWYXJpYWJsZXNcbi8vICRpbmNsdWRlLWh0bWwtb2ZmLWNhbnZhcy1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbiR0YWJiYXItYmc6ICRibHVlLWxpZ2h0O1xuJHRhYmJhci1oZWlnaHQ6IHJlbS1jYWxjKDU2KTtcbi8vICR0YWJiYXItaWNvbi13aWR0aDogJHRhYmJhci1oZWlnaHQgIWRlZmF1bHQ7XG4vLyAkdGFiYmFyLWxpbmUtaGVpZ2h0OiAkdGFiYmFyLWhlaWdodCAhZGVmYXVsdDtcbi8vICR0YWJiYXItY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDsgXG4vLyAkdGFiYmFyLW1pZGRsZS1wYWRkaW5nOiAwIHJlbS1jYWxjKDEwKSAhZGVmYXVsdDtcblxuLy8gT2ZmIENhbnZhcyBEaXZpZGVyIFN0eWxlc1xuLy8gJHRhYmJhci1sZWZ0LXNlY3Rpb24tYm9yZGVyOiBzb2xpZCAxcHggc2NhbGUtY29sb3IoJHRhYmJhci1iZywgJGxpZ2h0bmVzczogLTUwJSkgIWRlZmF1bHQ7XG4vLyAkdGFiYmFyLXJpZ2h0LXNlY3Rpb24tYm9yZGVyOiAkdGFiYmFyLWxlZnQtc2VjdGlvbi1ib3JkZXI7XG5cblxuLy8gT2ZmIENhbnZhcyBUYWIgQmFyIEhlYWRlcnNcbi8vJHRhYmJhci1oZWFkZXItY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbi8vJHRhYmJhci1oZWFkZXItd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcbi8vJHRhYmJhci1oZWFkZXItbGluZS1oZWlnaHQ6ICR0YWJiYXItaGVpZ2h0ICFkZWZhdWx0O1xuLy8kdGFiYmFyLWhlYWRlci1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vIE9mZiBDYW52YXMgTWVudSBWYXJpYWJsZXNcbi8vICRvZmYtY2FudmFzLXdpZHRoOiByZW0tY2FsYygyNTApICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtYmc6ICRibHVlLWRhcms7XG4kb2ZmLWNhbnZhcy1iZy1ob3ZlcjogJGJsdWUtZGFyaztcbiRvZmYtY2FudmFzLWJnLWFjdGl2ZTogJGJsdWUtZGFyaztcblxuLy8gT2ZmIENhbnZhcyBNZW51IExpc3QgVmFyaWFibGVzXG4kb2ZmLWNhbnZhcy1sYWJlbC1wYWRkaW5nOiAwIHJlbS1jYWxjKDE1KTtcbiRvZmYtY2FudmFzLWxhYmVsLWNvbG9yOiAkd2hpdGU7XG4kb2ZmLWNhbnZhcy1sYWJlbC10ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiRvZmYtY2FudmFzLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xuJG9mZi1jYW52YXMtbGFiZWwtZm9udC13ZWlnaHQ6IDUwMDtcbiRvZmYtY2FudmFzLWxhYmVsLWJnOiAkYmx1ZS1kYXJrO1xuLy8gJG9mZi1jYW52YXMtbGFiZWwtYm9yZGVyLXRvcDogMXB4IHNvbGlkIHNjYWxlLWNvbG9yKCRvZmYtY2FudmFzLWxhYmVsLWJnLCAkbGlnaHRuZXNzOiAxNCUpICFkZWZhdWx0O1xuLy8gJG9mZi1jYW52YXMtbGFiZWwtYm9yZGVyLWJvdHRvbTogbm9uZSAhZGVmYXVsdDtcbi8vICRvZmYtY2FudmFzLWxhYmVsLW1hcmdpbjowICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtbGluay1wYWRkaW5nOiAwLjNyZW0gcmVtLWNhbGMoMTUpO1xuJG9mZi1jYW52YXMtbGluay1jb2xvcjogJGxpZ2h0LWdyYXk7XG4kb2ZmLWNhbnZhcy1saW5rLWJvcmRlci1ib3R0b206IDA7XG5cbiRvZmYtY2FudmFzLWJhY2stYmc6ICRibHVlLWxpZ2h0O1xuJG9mZi1jYW52YXMtYmFjay1ib3JkZXItdG9wOiAwO1xuJG9mZi1jYW52YXMtYmFjay1ib3JkZXItYm90dG9tOiAwO1xuJG9mZi1jYW52YXMtYmFjay1ob3Zlci1iZzogJGJsdWUtbGlnaHQ7XG4kb2ZmLWNhbnZhcy1iYWNrLWhvdmVyLWJvcmRlci10b3A6IDA7XG4vLyAkb2ZmLWNhbnZhcy1iYWNrLWhvdmVyLWJvcmRlci1ib3R0b206IG5vbmUgIWRlZmF1bHQ7XG5cbi8vIE9mZiBDYW52YXMgTWVudSBJY29uIFZhcmlhYmxlc1xuLy8gJHRhYmJhci1tZW51LWljb24tY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbi8vICR0YWJiYXItbWVudS1pY29uLWhvdmVyOiBzY2FsZS1jb2xvcigkdGFiYmFyLW1lbnUtaWNvbi1jb2xvciwgJGxpZ2h0bmVzczogLTMwJSkgIWRlZmF1bHQ7XG5cbi8vICR0YWJiYXItbWVudS1pY29uLXRleHQtaW5kZW50OiByZW0tY2FsYygzNSkgIWRlZmF1bHQ7XG4vLyAkdGFiYmFyLW1lbnUtaWNvbi13aWR0aDogJHRhYmJhci1pY29uLXdpZHRoICFkZWZhdWx0O1xuLy8gJHRhYmJhci1tZW51LWljb24taGVpZ2h0OiAkdGFiYmFyLWhlaWdodCAhZGVmYXVsdDtcbi8vICR0YWJiYXItbWVudS1pY29uLXBhZGRpbmc6IDAgIWRlZmF1bHQ7XG5cbi8vICR0YWJiYXItaGFtYnVyZ2VyLWljb24td2lkdGg6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcbi8vICR0YWJiYXItaGFtYnVyZ2VyLWljb24tbGVmdDogZmFsc2UgIWRlZmF1bHQ7XG4vLyAkdGFiYmFyLWhhbWJ1cmdlci1pY29uLXRvcDogZmFsc2UgIWRlZmF1bHQ7XG4vLyAkdGFiYmFyLWhhbWJ1cmdlci1pY29uLXRoaWNrbmVzczogMS41cHggIWRlZmF1bHQ7XG4vLyAkdGFiYmFyLWhhbWJ1cmdlci1pY29uLWdhcDogNC41cHggIWRlZmF1bHQ7XG5cbi8vIE9mZiBDYW52YXMgQmFjay1MaW5rIE92ZXJsYXlcbi8vICRvZmYtY2FudmFzLW92ZXJsYXktdHJhbnNpdGlvbjogYmFja2dyb3VuZCAzMDBtcyBlYXNlICFkZWZhdWx0O1xuLy8gJG9mZi1jYW52YXMtb3ZlcmxheS1jdXJzb3I6IHBvaW50ZXIgIWRlZmF1bHQ7XG4vLyAkb2ZmLWNhbnZhcy1vdmVybGF5LWJveC1zaGFkb3c6IC00cHggMCA0cHggcmdiYSgkYmxhY2ssIDAuNSksIDRweCAwIDRweCByZ2JhKCRibGFjaywgMC41KSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLW92ZXJsYXktYmFja2dyb3VuZDogcmdiYSgkd2hpdGUsIDAuNCkgIWRlZmF1bHQ7XG4vLyAkb2ZmLWNhbnZhcy1vdmVybGF5LWJhY2tncm91bmQtaG92ZXI6IHJnYmEoJHdoaXRlLCAwLjA1KSAhZGVmYXVsdDtcblxuLy8gVHJhbnNpdGlvbiBWYXJpYWJsZXNcbi8vICRtZW51LXNsaWRlOiBcInRyYW5zZm9ybSA1MDBtcyBlYXNlXCIgIWRlZmF1bHQ7XG5cbi8vIEBzdGFydC1kb2MgT3JiaXRcbi8vIDE5LiBPcmJpdFxuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuXG4vLyAkaW5jbHVkZS1odG1sLW9yYml0LWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcztcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGhlIGNhcHRpb24gc3R5bGVzXG4vLyAkb3JiaXQtY29udGFpbmVyLWJnOiBub25lO1xuLy8gJG9yYml0LWNhcHRpb24tYmc6IHJnYmEoNTEsNTEsNTEsIDAuOCk7XG4vLyAkb3JiaXQtY2FwdGlvbi1mb250LWNvbG9yOiAkd2hpdGU7XG4vLyAkb3JiaXQtY2FwdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbi8vICRvcmJpdC1jYXB0aW9uLXBvc2l0aW9uOiBcImJvdHRvbVwiOyAvLyBTdXBwb3J0ZWQgdmFsdWVzOiBcImJvdHRvbVwiLCBcInVuZGVyXCJcbi8vICRvcmJpdC1jYXB0aW9uLXBhZGRpbmc6IHJlbS1jYWxjKDEwIDE0KTtcbi8vICRvcmJpdC1jYXB0aW9uLWhlaWdodDogYXV0bztcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGhlIGxlZnQvcmlnaHQgbmF2IHN0eWxlc1xuLy8gJG9yYml0LW5hdi1iZzogdHJhbnNwYXJlbnQ7XG4vLyAkb3JiaXQtbmF2LWJnLWhvdmVyOiByZ2JhKDAsMCwwLDAuMyk7XG4vLyAkb3JiaXQtbmF2LWFycm93LWNvbG9yOiAkd2hpdGU7XG4vLyAkb3JiaXQtbmF2LWFycm93LWNvbG9yLWhvdmVyOiAkd2hpdGU7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSB0aW1lciBzdHlsZXNcbi8vICRvcmJpdC10aW1lci1iZzogcmdiYSgyNTUsMjU1LDI1NSwwLjMpO1xuLy8gJG9yYml0LXRpbWVyLXNob3ctcHJvZ3Jlc3MtYmFyOiB0cnVlO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgYnVsbGV0IG5hdiBzdHlsZXNcbi8vICRvcmJpdC1idWxsZXQtbmF2LWNvbG9yOiAkaXJvbjtcbi8vICRvcmJpdC1idWxsZXQtbmF2LWNvbG9yLWFjdGl2ZTogJGFsdW1pbnVtO1xuLy8gJG9yYml0LWJ1bGxldC1yYWRpdXM6IHJlbS1jYWxjKDkpO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbHMgdGhlIHN0eWxlIG9mIHNsaWRlIG51bWJlcnNcbi8vICRvcmJpdC1zbGlkZS1udW1iZXItYmc6IHJnYmEoMCwwLDAsMCk7XG4vLyAkb3JiaXQtc2xpZGUtbnVtYmVyLWZvbnQtY29sb3I6ICR3aGl0ZTtcbi8vICRvcmJpdC1zbGlkZS1udW1iZXItcGFkZGluZzogcmVtLWNhbGMoNSk7XG5cbi8vIEdyYWNlZnVsIExvYWRpbmcgV3JhcHBlciBhbmQgcHJlbG9hZGVyXG4vLyAkd3JhcHBlci1jbGFzczogXCJzbGlkZXNob3ctd3JhcHBlclwiO1xuLy8gJHByZWxvYWRlci1jbGFzczogXCJwcmVsb2FkZXJcIjtcblxuLy8gSGlkZSBjb250cm9scyBvbiBzbWFsbFxuLy8gJG9yYml0LW5hdi1oaWRlLWZvci1zbWFsbDogdHJ1ZTtcbi8vICRvcmJpdC1idWxsZXQtaGlkZS1mb3Itc21hbGw6IHRydWU7XG4vLyAkb3JiaXQtdGltZXItaGlkZS1mb3Itc21hbGw6IHRydWU7XG4vLyBAZW5kLWRvY1xuXG4vLyBAc3RhcnQtZG9jIFBhZ2luYXRpb25cbi8vIDIwLiBQYWdpbmF0aW9uXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5cbi8vICRpbmNsdWRlLXBhZ2luYXRpb24tY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgcGFnaW5hdGlvbiBjb250YWluZXJcbi8vICRwYWdpbmF0aW9uLWhlaWdodDogcmVtLWNhbGMoMjQpO1xuLy8gJHBhZ2luYXRpb24tbWFyZ2luOiByZW0tY2FsYygtNSk7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzZXQgdGhlIGxpc3QtaXRlbSBwcm9wZXJ0aWVzXG4vLyAkcGFnaW5hdGlvbi1saS1mbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG4vLyAkcGFnaW5hdGlvbi1saS1oZWlnaHQ6IHJlbS1jYWxjKDI0KTtcbi8vICRwYWdpbmF0aW9uLWxpLWZvbnQtY29sb3I6ICRqZXQ7XG4vLyAkcGFnaW5hdGlvbi1saS1mb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbi8vICRwYWdpbmF0aW9uLWxpLW1hcmdpbjogcmVtLWNhbGMoNSk7XG5cbi8vIFdlIHVzZSB0aGVzZSBmb3IgdGhlIHBhZ2luYXRpb24gYW5jaG9yIGxpbmtzXG4vLyAkcGFnaW5hdGlvbi1saW5rLXBhZDogcmVtLWNhbGMoMSAxMCAxKTtcbi8vICRwYWdpbmF0aW9uLWxpbmstZm9udC1jb2xvcjogJGFsdW1pbnVtO1xuLy8gJHBhZ2luYXRpb24tbGluay1hY3RpdmUtYmc6IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogLTEwJSk7XG5cbi8vIFdlIHVzZSB0aGVzZSBmb3IgZGlzYWJsZWQgYW5jaG9yIGxpbmtzXG4vLyAkcGFnaW5hdGlvbi1saW5rLXVuYXZhaWxhYmxlLWN1cnNvcjogZGVmYXVsdDtcbi8vICRwYWdpbmF0aW9uLWxpbmstdW5hdmFpbGFibGUtZm9udC1jb2xvcjogJGFsdW1pbnVtO1xuLy8gJHBhZ2luYXRpb24tbGluay11bmF2YWlsYWJsZS1iZy1hY3RpdmU6IHRyYW5zcGFyZW50O1xuXG4vLyBXZSB1c2UgdGhlc2UgZm9yIGN1cnJlbnRseSBzZWxlY3RlZCBhbmNob3IgbGlua3Ncbi8vICRwYWdpbmF0aW9uLWxpbmstY3VycmVudC1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbi8vICRwYWdpbmF0aW9uLWxpbmstY3VycmVudC1mb250LWNvbG9yOiAkd2hpdGU7XG4vLyAkcGFnaW5hdGlvbi1saW5rLWN1cnJlbnQtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuLy8gJHBhZ2luYXRpb24tbGluay1jdXJyZW50LWN1cnNvcjogZGVmYXVsdDtcbi8vICRwYWdpbmF0aW9uLWxpbmstY3VycmVudC1hY3RpdmUtYmc6ICRwcmltYXJ5LWNvbG9yO1xuLy8gQGVuZC1kb2NcblxuLy8gQHN0YXJ0LWRvYyBQYW5lbHNcbi8vIDIxLiBQYW5lbHNcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cblxuLy8gJGluY2x1ZGUtaHRtbC1wYW5lbC1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXM7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIgc3R5bGVzXG4kcGFuZWwtYmc6IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogLTIwJSk7IC8vICNDQ0MgYWN0dWFsbHlcbi8vICRwYW5lbC1ib3JkZXItc3R5bGU6IHNvbGlkO1xuLy8gJHBhbmVsLWJvcmRlci1zaXplOiAxcHg7XG5cbi8vIFdlIHVzZSB0aGlzICUgdG8gY29udHJvbCBob3cgbXVjaCB3ZSBkYXJrZW4gdGhpbmdzIG9uIGhvdmVyXG4vLyAkcGFuZWwtZnVuY3Rpb24tZmFjdG9yOiAtMTElO1xuLy8gJHBhbmVsLWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJHBhbmVsLWJnLCAkbGlnaHRuZXNzOiAkcGFuZWwtZnVuY3Rpb24tZmFjdG9yKTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHNldCBkZWZhdWx0IGlubmVyIHBhZGRpbmcgYW5kIGJvdHRvbSBtYXJnaW5cbi8vICRwYW5lbC1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCk7XG4vLyAkcGFuZWwtcGFkZGluZzogcmVtLWNhbGMoMjApO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc2V0IGRlZmF1bHQgZm9udCBjb2xvcnNcbi8vICRwYW5lbC1mb250LWNvbG9yOiAkb2lsO1xuLy8gJHBhbmVsLWZvbnQtY29sb3ItYWx0OiAkd2hpdGU7XG5cbi8vICRwYW5lbC1oZWFkZXItYWRqdXN0OiB0cnVlO1xuLy8gJGNhbGxvdXQtcGFuZWwtbGluay1jb2xvcjogJHByaW1hcnktY29sb3I7XG4vLyAkY2FsbG91dC1wYW5lbC1saW5rLWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkY2FsbG91dC1wYW5lbC1saW5rLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKTtcbi8vIEBlbmQtZG9jXG5cbi8vIEBzdGFydC1kb2MgUHJpY2luZyBUYWJsZXNcbi8vIDIyLiBQcmljaW5nIFRhYmxlc1xuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuXG4vLyAkaW5jbHVkZS1odG1sLXByaWNpbmctY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzO1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHRoZSBib3JkZXIgY29sb3Jcbi8vICRwcmljZS10YWJsZS1ib3JkZXI6IHNvbGlkIDFweCAkZ2FpbnNib3JvO1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHRoZSBib3R0b20gbWFyZ2luIG9mIHRoZSBwcmljaW5nIHRhYmxlXG4vLyAkcHJpY2UtdGFibGUtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjApO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgdGl0bGUgc3R5bGVzXG4vLyAkcHJpY2UtdGl0bGUtYmc6ICRvaWw7XG4vLyAkcHJpY2UtdGl0bGUtcGFkZGluZzogcmVtLWNhbGMoMTUgMjApO1xuLy8gJHByaWNlLXRpdGxlLWFsaWduOiBjZW50ZXI7XG4vLyAkcHJpY2UtdGl0bGUtY29sb3I6ICRzbW9rZTtcbi8vICRwcmljZS10aXRsZS13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWw7XG4vLyAkcHJpY2UtdGl0bGUtc2l6ZTogcmVtLWNhbGMoMTYpO1xuLy8gJHByaWNlLXRpdGxlLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGhlIHByaWNlIHN0eWxlc1xuLy8gJHByaWNlLW1vbmV5LWJnOiAkdmFwb3I7XG4vLyAkcHJpY2UtbW9uZXktcGFkZGluZzogcmVtLWNhbGMoMTUgMjApO1xuLy8gJHByaWNlLW1vbmV5LWFsaWduOiBjZW50ZXI7XG4vLyAkcHJpY2UtbW9uZXktY29sb3I6ICRvaWw7XG4vLyAkcHJpY2UtbW9uZXktd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsO1xuLy8gJHByaWNlLW1vbmV5LXNpemU6IHJlbS1jYWxjKDMyKTtcbi8vICRwcmljZS1tb25leS1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG5cblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGhlIGRlc2NyaXB0aW9uIHN0eWxlc1xuLy8gJHByaWNlLWJnOiAkd2hpdGU7XG4vLyAkcHJpY2UtZGVzYy1jb2xvcjogJG1vbnNvb247XG4vLyAkcHJpY2UtZGVzYy1wYWRkaW5nOiByZW0tY2FsYygxNSk7XG4vLyAkcHJpY2UtZGVzYy1hbGlnbjogY2VudGVyO1xuLy8gJHByaWNlLWRlc2MtZm9udC1zaXplOiByZW0tY2FsYygxMik7XG4vLyAkcHJpY2UtZGVzYy13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWw7XG4vLyAkcHJpY2UtZGVzYy1saW5lLWhlaWdodDogMS40O1xuLy8gJHByaWNlLWRlc2MtYm90dG9tLWJvcmRlcjogZG90dGVkIDFweCAkZ2FpbnNib3JvO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgbGlzdCBpdGVtIHN0eWxlc1xuLy8gJHByaWNlLWl0ZW0tY29sb3I6ICRvaWw7XG4vLyAkcHJpY2UtaXRlbS1wYWRkaW5nOiByZW0tY2FsYygxNSk7XG4vLyAkcHJpY2UtaXRlbS1hbGlnbjogY2VudGVyO1xuLy8gJHByaWNlLWl0ZW0tZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4vLyAkcHJpY2UtaXRlbS13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWw7XG4vLyAkcHJpY2UtaXRlbS1ib3R0b20tYm9yZGVyOiBkb3R0ZWQgMXB4ICRnYWluc2Jvcm87XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBDVEEgYXJlYSBzdHlsZXNcbi8vICRwcmljZS1jdGEtYmc6ICR3aGl0ZTtcbi8vICRwcmljZS1jdGEtYWxpZ246IGNlbnRlcjtcbi8vICRwcmljZS1jdGEtcGFkZGluZzogcmVtLWNhbGMoMjAgMjAgMCk7XG4vLyBAZW5kLWRvY1xuXG4vLyBAc3RhcnQtZG9jIFByb2dyZXNzIEJhclxuLy8gMjMuIFByb2dyZXNzIEJhclxuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuXG4vLyAkaW5jbHVkZS1odG1sLW1lZGlhLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcztcblxuLy8gV2UgdXNlIHRoaXMgdG8gc2V0IHRoZSBwcm9ncmVzcyBiYXIgaGVpZ2h0XG4kcHJvZ3Jlc3MtYmFyLWhlaWdodDogcmVtLWNhbGMoMTApO1xuLy8gJHByb2dyZXNzLWJhci1jb2xvcjogJHZhcG9yO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgYm9yZGVyIHN0eWxlc1xuLy8gJHByb2dyZXNzLWJhci1ib3JkZXItY29sb3I6IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogMjAlKTtcbiRwcm9ncmVzcy1iYXItYm9yZGVyLXNpemU6IDBweDtcbi8vICRwcm9ncmVzcy1iYXItYm9yZGVyLXN0eWxlOiBzb2xpZDtcbi8vICRwcm9ncmVzcy1iYXItYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBtYXJnaW4gJiBwYWRkaW5nXG4kcHJvZ3Jlc3MtYmFyLXBhZDogcmVtLWNhbGMoMCk7XG4kcHJvZ3Jlc3MtYmFyLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDApO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc2V0IHRoZSBtZXRlciBjb2xvcnNcbi8vICRwcm9ncmVzcy1tZXRlci1jb2xvcjogJHByaW1hcnktY29sb3I7XG4vLyAkcHJvZ3Jlc3MtbWV0ZXItc2Vjb25kYXJ5LWNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuLy8gJHByb2dyZXNzLW1ldGVyLXN1Y2Nlc3MtY29sb3I6ICRzdWNjZXNzLWNvbG9yO1xuLy8gJHByb2dyZXNzLW1ldGVyLWFsZXJ0LWNvbG9yOiAkYWxlcnQtY29sb3I7XG4vLyBAZW5kLWRvY1xuXG4vLyBAc3RhcnQtZG9jIFJhbmdlIFNsaWRlclxuLy8gMjQuIFJhbmdlIFNsaWRlclxuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuXG4vLyAkaW5jbHVkZS1odG1sLXJhbmdlLXNsaWRlci1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXM7XG5cbi8vIFRoZXNlIHZhcmlhYmVscyBkZWZpbmUgdGhlIHNsaWRlciBiYXIgc3R5bGVzXG4vLyAkcmFuZ2Utc2xpZGVyLWJhci13aWR0aDogMTAwJTtcbi8vICRyYW5nZS1zbGlkZXItYmFyLWhlaWdodDogcmVtLWNhbGMoMTYpO1xuXG4vLyAkcmFuZ2Utc2xpZGVyLWJhci1ib3JkZXItd2lkdGg6IDFweDtcbi8vICRyYW5nZS1zbGlkZXItYmFyLWJvcmRlci1zdHlsZTogc29saWQ7XG4vLyAkcmFuZ2Utc2xpZGVyLWJhci1ib3JkZXItY29sb3I6ICRnYWluc2Jvcm87XG4vLyAkcmFuZ2Utc2xpZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4vLyAkcmFuZ2Utc2xpZGVyLXJvdW5kOiAkZ2xvYmFsLXJvdW5kZWQ7XG4vLyAkcmFuZ2Utc2xpZGVyLWJhci1iZy1jb2xvcjogJGdob3N0O1xuLy8gJHJhbmdlLXNsaWRlci1hY3RpdmUtc2VnbWVudC1iZy1jb2xvcjogc2NhbGUtY29sb3IoJHNlY29uZGFyeS1jb2xvciwgJGxpZ2h0bmVzczogLTElKTtcblxuLy8gVmVydGljYWwgYmFyIHN0eWxlc1xuLy8gJHJhbmdlLXNsaWRlci12ZXJ0aWNhbC1iYXItd2lkdGg6IHJlbS1jYWxjKDE2KTtcbi8vICRyYW5nZS1zbGlkZXItdmVydGljYWwtYmFyLWhlaWdodDogcmVtLWNhbGMoMjAwKTtcblxuLy8gVGhlc2UgdmFyaWFiZWxzIGRlZmluZSB0aGUgc2xpZGVyIGhhbmRsZSBzdHlsZXNcbi8vICRyYW5nZS1zbGlkZXItaGFuZGxlLXdpZHRoOiByZW0tY2FsYygzMik7XG4vLyAkcmFuZ2Utc2xpZGVyLWhhbmRsZS1oZWlnaHQ6IHJlbS1jYWxjKDIyKTtcbi8vICRyYW5nZS1zbGlkZXItaGFuZGxlLXBvc2l0aW9uLXRvcDogcmVtLWNhbGMoLTUpO1xuLy8gJHJhbmdlLXNsaWRlci1oYW5kbGUtYmctY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuLy8gJHJhbmdlLXNsaWRlci1oYW5kbGUtYm9yZGVyLXdpZHRoOiAxcHg7XG4vLyAkcmFuZ2Utc2xpZGVyLWhhbmRsZS1ib3JkZXItc3R5bGU6IHNvbGlkO1xuLy8gJHJhbmdlLXNsaWRlci1oYW5kbGUtYm9yZGVyLWNvbG9yOiBub25lO1xuLy8gJHJhbmdlLXNsaWRlci1oYW5kbGUtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbi8vICRyYW5nZS1zbGlkZXItaGFuZGxlLXJvdW5kOiAkZ2xvYmFsLXJvdW5kZWQ7XG4vLyAkcmFuZ2Utc2xpZGVyLWhhbmRsZS1iZy1ob3Zlci1jb2xvcjogc2NhbGUtY29sb3IoJHByaW1hcnktY29sb3IsICRsaWdodG5lc3M6IC0xMiUpO1xuLy8gJHJhbmdlLXNsaWRlci1oYW5kbGUtY3Vyc29yOiBwb2ludGVyO1xuXG4vLyAkcmFuZ2Utc2xpZGVyLWRpc2FibGVkLW9wYWNpdHk6IDAuNztcbi8vICRyYW5nZS1zbGlkZXItZGlzYWJsZWQtY3Vyc29yOiAkY3Vyc29yLWRpc2FibGVkLXZhbHVlO1xuLy8gQGVuZC1kb2NcblxuLy8gQHN0YXJ0LWRvYyBSZXZlYWxcbi8vIDI1LiBSZXZlYWxcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cblxuLy8gJGluY2x1ZGUtaHRtbC1yZXZlYWwtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgc3R5bGUgb2YgdGhlIHJldmVhbCBvdmVybGF5LlxuLy8gJHJldmVhbC1vdmVybGF5LWJnOiByZ2JhKCRibGFjaywgLjQ1KTtcbi8vICRyZXZlYWwtb3ZlcmxheS1iZy1vbGQ6ICRibGFjaztcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGhlIHN0eWxlIG9mIHRoZSBtb2RhbCBpdHNlbGYuXG4vLyAkcmV2ZWFsLW1vZGFsLWJnOiAkd2hpdGU7XG4vLyAkcmV2ZWFsLXBvc2l0aW9uLXRvcDogcmVtLWNhbGMoMTAwKTtcbi8vICRyZXZlYWwtZGVmYXVsdC13aWR0aDogODAlO1xuLy8gJHJldmVhbC1tYXgtd2lkdGg6ICRyb3ctd2lkdGg7XG4vLyAkcmV2ZWFsLW1vZGFsLXBhZGRpbmc6IHJlbS1jYWxjKDIwKTtcbi8vICRyZXZlYWwtYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgkYmxhY2ssLjQpO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIHJldmVhbCBjbG9zZSBidXR0b25cbi8vICRyZXZlYWwtY2xvc2UtZm9udC1zaXplOiByZW0tY2FsYyg0MCk7XG4vLyAkcmV2ZWFsLWNsb3NlLXRvcDogcmVtLWNhbGMoMTApO1xuLy8gJHJldmVhbC1jbG9zZS1zaWRlOiByZW0tY2FsYygyMik7XG4vLyAkcmV2ZWFsLWNsb3NlLWNvbG9yOiAkYmFzZTtcbi8vICRyZXZlYWwtY2xvc2Utd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gc2V0IHRoZSBkZWZhdWx0IHJhZGl1cyB1c2VkIHRocm91Z2hvdXQgdGhlIGNvcmUuXG4vLyAkcmV2ZWFsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4vLyAkcmV2ZWFsLXJvdW5kOiAkZ2xvYmFsLXJvdW5kZWQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBtb2RhbCBib3JkZXJcbi8vICRyZXZlYWwtYm9yZGVyLXN0eWxlOiBzb2xpZDtcbi8vICRyZXZlYWwtYm9yZGVyLXdpZHRoOiAxcHg7XG4vLyAkcmV2ZWFsLWJvcmRlci1jb2xvcjogJHN0ZWVsO1xuXG4vLyAkcmV2ZWFsLW1vZGFsLWNsYXNzOiBcInJldmVhbC1tb2RhbFwiO1xuLy8gJGNsb3NlLXJldmVhbC1tb2RhbC1jbGFzczogXCJjbG9zZS1yZXZlYWwtbW9kYWxcIjtcbi8vIEBlbmQtZG9jXG5cbi8vIEBzdGFydC1kb2MgU2lkZSBOYXZcbi8vIDI2LiBTaWRlIE5hdlxuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuXG4vLyAkaW5jbHVkZS1odG1sLW5hdi1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXM7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgcGFkZGluZy5cbi8vICRzaWRlLW5hdi1wYWRkaW5nOiByZW0tY2FsYygxNCAwKTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgbGlzdCBzdHlsZXMuXG4vLyAkc2lkZS1uYXYtbGlzdC10eXBlOiBub25lO1xuLy8gJHNpZGUtbmF2LWxpc3QtcG9zaXRpb246IG91dHNpZGU7XG4vLyAkc2lkZS1uYXYtbGlzdC1tYXJnaW46IHJlbS1jYWxjKDAgMCA3IDApO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBsaW5rIHN0eWxlcy5cbi8vICRzaWRlLW5hdi1saW5rLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbi8vICRzaWRlLW5hdi1saW5rLWNvbG9yLWFjdGl2ZTogc2NhbGUtY29sb3IoJHNpZGUtbmF2LWxpbmstY29sb3IsICRsaWdodG5lc3M6IDMwJSk7XG4vLyAkc2lkZS1uYXYtbGluay1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJHNpZGUtbmF2LWxpbmstY29sb3IsICRsaWdodG5lc3M6IDMwJSk7XG4vLyAkc2lkZS1uYXYtbGluay1iZy1ob3ZlcjogaHNsYSgwLCAwLCAwLCAwLjAyNSk7XG4vLyAkc2lkZS1uYXYtbGluay1tYXJnaW46IDA7XG4vLyAkc2lkZS1uYXYtbGluay1wYWRkaW5nOiByZW0tY2FsYyg3IDE0KTtcbi8vICRzaWRlLW5hdi1mb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbi8vICRzaWRlLW5hdi1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbDtcbi8vICRzaWRlLW5hdi1mb250LXdlaWdodC1hY3RpdmU6ICRzaWRlLW5hdi1mb250LXdlaWdodDtcbi8vICRzaWRlLW5hdi1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4vLyAkc2lkZS1uYXYtZm9udC1mYW1pbHktYWN0aXZlOiAkc2lkZS1uYXYtZm9udC1mYW1pbHk7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGhlYWRpbmcgc3R5bGVzLlxuLy8gJHNpZGUtbmF2LWhlYWRpbmctY29sb3I6ICRzaWRlLW5hdi1saW5rLWNvbG9yO1xuLy8gJHNpZGUtbmF2LWhlYWRpbmctZm9udC1zaXplOiAkc2lkZS1uYXYtZm9udC1zaXplO1xuLy8gJHNpZGUtbmF2LWhlYWRpbmctZm9udC13ZWlnaHQ6IGJvbGQ7XG4vLyAkc2lkZS1uYXYtaGVhZGluZy10ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBib3JkZXIgc3R5bGVzXG4vLyAkc2lkZS1uYXYtZGl2aWRlci1zaXplOiAxcHg7XG4vLyAkc2lkZS1uYXYtZGl2aWRlci1zdHlsZTogc29saWQ7XG4vLyAkc2lkZS1uYXYtZGl2aWRlci1jb2xvcjogc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAxMCUpO1xuLy8gQGVuZC1kb2NcblxuLy8gQHN0YXJ0LWRvYyBTcGxpdCBCdXR0b25zXG4vLyAyNy4gU3BsaXQgQnV0dG9uc1xuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuXG4vLyAkaW5jbHVkZS1odG1sLWJ1dHRvbi1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXM7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGRpZmZlcmVudCBzaGFyZWQgc3R5bGVzIGZvciBTcGxpdCBCdXR0b25zXG4vLyAkc3BsaXQtYnV0dG9uLWZ1bmN0aW9uLWZhY3RvcjogMTAlO1xuLy8gJHNwbGl0LWJ1dHRvbi1waXAtY29sb3I6ICR3aGl0ZTtcbi8vICRzcGxpdC1idXR0b24tcGlwLWNvbG9yLWFsdDogJG9pbDtcbi8vICRzcGxpdC1idXR0b24tYWN0aXZlLWJnLXRpbnQ6IHJnYmEoMCwwLDAsMC4xKTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGlueSBzcGxpdCBidXR0b25zXG4vLyAkc3BsaXQtYnV0dG9uLXBhZGRpbmctdG55OiAkYnV0dG9uLXBpcC10bnkgKiAxMDtcbi8vICRzcGxpdC1idXR0b24tc3Bhbi13aWR0aC10bnk6ICRidXR0b24tcGlwLXRueSAqIDY7XG4vLyAkc3BsaXQtYnV0dG9uLXBpcC1zaXplLXRueTogJGJ1dHRvbi1waXAtdG55O1xuLy8gJHNwbGl0LWJ1dHRvbi1waXAtdG9wLXRueTogJGJ1dHRvbi1waXAtdG55ICogMjtcbi8vICRzcGxpdC1idXR0b24tcGlwLWRlZmF1bHQtZmxvYXQtdG55OiByZW0tY2FsYygtNik7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHNtYWxsIHNwbGl0IGJ1dHRvbnNcbi8vICRzcGxpdC1idXR0b24tcGFkZGluZy1zbWw6ICRidXR0b24tcGlwLXNtbCAqIDEwO1xuLy8gJHNwbGl0LWJ1dHRvbi1zcGFuLXdpZHRoLXNtbDogJGJ1dHRvbi1waXAtc21sICogNjtcbi8vICRzcGxpdC1idXR0b24tcGlwLXNpemUtc21sOiAkYnV0dG9uLXBpcC1zbWw7XG4vLyAkc3BsaXQtYnV0dG9uLXBpcC10b3Atc21sOiAkYnV0dG9uLXBpcC1zbWwgKiAxLjU7XG4vLyAkc3BsaXQtYnV0dG9uLXBpcC1kZWZhdWx0LWZsb2F0LXNtbDogcmVtLWNhbGMoLTYpO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBtZWRpdW0gc3BsaXQgYnV0dG9uc1xuLy8gJHNwbGl0LWJ1dHRvbi1wYWRkaW5nLW1lZDogJGJ1dHRvbi1waXAtbWVkICogOTtcbi8vICRzcGxpdC1idXR0b24tc3Bhbi13aWR0aC1tZWQ6ICRidXR0b24tcGlwLW1lZCAqIDUuNTtcbi8vICRzcGxpdC1idXR0b24tcGlwLXNpemUtbWVkOiAkYnV0dG9uLXBpcC1tZWQgLSByZW0tY2FsYygzKTtcbi8vICRzcGxpdC1idXR0b24tcGlwLXRvcC1tZWQ6ICRidXR0b24tcGlwLW1lZCAqIDEuNTtcbi8vICRzcGxpdC1idXR0b24tcGlwLWRlZmF1bHQtZmxvYXQtbWVkOiByZW0tY2FsYygtNik7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGxhcmdlIHNwbGl0IGJ1dHRvbnNcbi8vICRzcGxpdC1idXR0b24tcGFkZGluZy1scmc6ICRidXR0b24tcGlwLWxyZyAqIDg7XG4vLyAkc3BsaXQtYnV0dG9uLXNwYW4td2lkdGgtbHJnOiAkYnV0dG9uLXBpcC1scmcgKiA1O1xuLy8gJHNwbGl0LWJ1dHRvbi1waXAtc2l6ZS1scmc6ICRidXR0b24tcGlwLWxyZyAtIHJlbS1jYWxjKDYpO1xuLy8gJHNwbGl0LWJ1dHRvbi1waXAtdG9wLWxyZzogJGJ1dHRvbi1waXAtbHJnICsgcmVtLWNhbGMoNSk7XG4vLyAkc3BsaXQtYnV0dG9uLXBpcC1kZWZhdWx0LWZsb2F0LWxyZzogcmVtLWNhbGMoLTYpO1xuLy8gQGVuZC1kb2NcblxuLy8gQHN0YXJ0LWRvYyBTdWIgTmF2XG4vLyAyOC4gU3ViIE5hdlxuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuXG4vLyAkaW5jbHVkZS1odG1sLW5hdi1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXM7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIG1hcmdpbiBhbmQgcGFkZGluZ1xuLy8gJHN1Yi1uYXYtbGlzdC1tYXJnaW46IHJlbS1jYWxjKC00IDAgMTgpO1xuJHN1Yi1uYXYtbGlzdC1wYWRkaW5nLXRvcDogcmVtLWNhbGMoMCk7IC8vIHRoaXMgc2VlbXMgdG8gZ2V0IGluIHRoZSB3YXlcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB0aGUgZGVmaW5pdGlvblxuLy8gJHN1Yi1uYXYtZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuLy8gJHN1Yi1uYXYtZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4vLyAkc3ViLW5hdi1mb250LWNvbG9yOiAkYWx1bWludW07XG4vLyAkc3ViLW5hdi1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbDtcbi8vICRzdWItbmF2LXRleHQtZGVjb3JhdGlvbjogbm9uZTtcbi8vICRzdWItbmF2LXBhZGRpbmc6IHJlbS1jYWxjKDMgMTYpO1xuLy8gJHN1Yi1uYXYtYm9yZGVyLXJhZGl1czogM3B4O1xuLy8gJHN1Yi1uYXYtZm9udC1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJHN1Yi1uYXYtZm9udC1jb2xvciwgJGxpZ2h0bmVzczogLTI1JSk7XG5cblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGhlIGFjdGl2ZSBpdGVtIHN0eWxlc1xuXG4vLyAkc3ViLW5hdi1hY3RpdmUtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWw7XG4vLyAkc3ViLW5hdi1hY3RpdmUtYmc6ICRwcmltYXJ5LWNvbG9yO1xuLy8gJHN1Yi1uYXYtYWN0aXZlLWJnLWhvdmVyOiBzY2FsZS1jb2xvcigkc3ViLW5hdi1hY3RpdmUtYmcsICRsaWdodG5lc3M6IC0xNCUpO1xuLy8gJHN1Yi1uYXYtYWN0aXZlLWNvbG9yOiAkd2hpdGU7XG4vLyAkc3ViLW5hdi1hY3RpdmUtcGFkZGluZzogJHN1Yi1uYXYtcGFkZGluZztcbi8vICRzdWItbmF2LWFjdGl2ZS1jdXJzb3I6IGRlZmF1bHQ7XG5cbi8vICRzdWItbmF2LWl0ZW0tZGl2aWRlcjogXCJcIjtcbi8vICRzdWItbmF2LWl0ZW0tZGl2aWRlci1tYXJnaW46IHJlbS1jYWxjKDEyKTtcbi8vIEBlbmQtZG9jXG5cbi8vIEBzdGFydC1kb2MgU3dpdGNoXG4vLyAyOS4gU3dpdGNoXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5cbi8vICRpbmNsdWRlLWh0bWwtZm9ybS1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXM7XG5cbi8vIENvbnRyb2xsaW5nIGJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBzd2l0Y2ggY29udGFpbmVyXG4vLyAkc3dpdGNoLWJnOiAkZ2FpbnNib3JvO1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgc3dpdGNoIGhlaWdodHMgZm9yIG91ciBkZWZhdWx0IGNsYXNzZXNcbi8vICRzd2l0Y2gtaGVpZ2h0LXRueTogMS41cmVtO1xuLy8gJHN3aXRjaC1oZWlnaHQtc21sOiAxLjc1cmVtO1xuLy8gJHN3aXRjaC1oZWlnaHQtbWVkOiAycmVtO1xuLy8gJHN3aXRjaC1oZWlnaHQtbHJnOiAyLjVyZW07XG4vLyAkc3dpdGNoLWJvdHRvbS1tYXJnaW46IDEuNXJlbTtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIHRoZSBzd2l0Y2gtcGFkZGxlXG4vLyAkc3dpdGNoLXBhZGRsZS1iZzogJHdoaXRlO1xuLy8gJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbi1zcGVlZDogLjE1cztcbi8vICRzd2l0Y2gtcGFkZGxlLXRyYW5zaXRpb24tZWFzZTogZWFzZS1vdXQ7XG4vLyAkc3dpdGNoLWFjdGl2ZS1jb2xvcjogJHByaW1hcnktY29sb3I7XG4vLyBAZW5kLWRvY1xuXG4vLyBAc3RhcnQtZG9jIFRhYmxlc1xuLy8gMzAuIFRhYmxlc1xuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuXG4vLyAkaW5jbHVkZS1odG1sLXRhYmxlLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcztcblxuLy8gVGhlc2UgY29udHJvbCB0aGUgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIHRhYmxlIGFuZCBldmVuIHJvd3Ncbi8vICR0YWJsZS1iZzogJHdoaXRlO1xuLy8gJHRhYmxlLWV2ZW4tcm93LWJnOiAkc25vdztcblxuLy8gVGhlc2UgY29udHJvbCB0aGUgdGFibGUgY2VsbCBib3JkZXIgc3R5bGVcbi8vICR0YWJsZS1ib3JkZXItc3R5bGU6IHNvbGlkO1xuLy8gJHRhYmxlLWJvcmRlci1zaXplOiAxcHg7XG4vLyAkdGFibGUtYm9yZGVyLWNvbG9yOiAkZ2FpbnNib3JvO1xuXG4vLyBUaGVzZSBjb250cm9sIHRoZSB0YWJsZSBoZWFkIHN0eWxlc1xuLy8gJHRhYmxlLWhlYWQtYmc6ICR3aGl0ZS1zbW9rZTtcbiR0YWJsZS1oZWFkLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTUpO1xuLy8gJHRhYmxlLWhlYWQtZm9udC1jb2xvcjogJGpldDtcbiR0YWJsZS1oZWFkLWZvbnQtd2VpZ2h0OiA1MDA7XG4kdGFibGUtaGVhZC1wYWRkaW5nOiByZW0tY2FsYygxNiAxNCAxNik7XG5cbi8vIFRoZXNlIGNvbnRyb2wgdGhlIHRhYmxlIGZvb3Qgc3R5bGVzXG4vLyAkdGFibGUtZm9vdC1iZzogJHRhYmxlLWhlYWQtYmc7XG4vLyAkdGFibGUtZm9vdC1mb250LXNpemU6ICR0YWJsZS1oZWFkLWZvbnQtc2l6ZTtcbi8vICR0YWJsZS1mb290LWZvbnQtY29sb3I6ICR0YWJsZS1oZWFkLWZvbnQtY29sb3I7XG4vLyAkdGFibGUtZm9vdC1mb250LXdlaWdodDogJHRhYmxlLWhlYWQtZm9udC13ZWlnaHQ7XG4vLyAkdGFibGUtZm9vdC1wYWRkaW5nOiAkdGFibGUtaGVhZC1wYWRkaW5nO1xuXG4vLyBUaGVzZSBjb250cm9sIHRoZSBjYXB0aW9uXG4vLyB0YWJsZS1jYXB0aW9uLWJnOiB0cmFuc3BhcmVudDtcbi8vICR0YWJsZS1jYXB0aW9uLWZvbnQtY29sb3I6ICR0YWJsZS1oZWFkLWZvbnQtY29sb3I7XG4vLyAkdGFibGUtY2FwdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE2KTtcbi8vICR0YWJsZS1jYXB0aW9uLWZvbnQtd2VpZ2h0OiBib2xkO1xuXG4vLyBUaGVzZSBjb250cm9sIHRoZSByb3cgcGFkZGluZyBhbmQgZm9udCBzdHlsZXNcbi8vICR0YWJsZS1yb3ctcGFkZGluZzogcmVtLWNhbGMoOSAxMCk7XG4kdGFibGUtcm93LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTUpO1xuLy8gJHRhYmxlLXJvdy1mb250LWNvbG9yOiAkamV0O1xuLy8gJHRhYmxlLWxpbmUtaGVpZ2h0OiByZW0tY2FsYygxOCk7XG5cbi8vIFRoZXNlIGFyZSBmb3IgY29udHJvbGxpbmcgdGhlIGxheW91dCwgZGlzcGxheSBhbmQgbWFyZ2luIG9mIHRhYmxlc1xuLy8gJHRhYmxlLWxheW91dDogYXV0bztcbi8vICR0YWJsZS1kaXNwbGF5OiB0YWJsZS1jZWxsO1xuLy8gJHRhYmxlLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKTtcbi8vIEBlbmQtZG9jXG5cbi8vIEBzdGFydC1kb2MgVGFic1xuLy8gMzEuIFRhYnNcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cblxuLy8gJGluY2x1ZGUtaHRtbC10YWJzLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcztcblxuLy8gJHRhYnMtbmF2aWdhdGlvbi1wYWRkaW5nOiByZW0tY2FsYygxNik7XG4vLyAkdGFicy1uYXZpZ2F0aW9uLWJnLWNvbG9yOiAkc2lsdmVyO1xuLy8gJHRhYnMtbmF2aWdhdGlvbi1hY3RpdmUtYmctY29sb3I6ICR3aGl0ZTtcbi8vICR0YWJzLW5hdmlnYXRpb24taG92ZXItYmctY29sb3I6IHNjYWxlLWNvbG9yKCR0YWJzLW5hdmlnYXRpb24tYmctY29sb3IsICRsaWdodG5lc3M6IC02JSk7XG4vLyAkdGFicy1uYXZpZ2F0aW9uLWZvbnQtY29sb3I6ICRqZXQ7XG4vLyAkdGFicy1uYXZpZ2F0aW9uLWFjdGl2ZS1mb250LWNvbG9yOiAkdGFicy1uYXZpZ2F0aW9uLWZvbnQtY29sb3I7XG4vLyAkdGFicy1uYXZpZ2F0aW9uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuLy8gJHRhYnMtbmF2aWdhdGlvbi1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG5cbi8vICR0YWJzLWNvbnRlbnQtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjQpO1xuLy8gJHRhYnMtY29udGVudC1wYWRkaW5nOiAoJGNvbHVtbi1ndXR0ZXIvMik7XG5cbi8vICR0YWJzLXZlcnRpY2FsLW5hdmlnYXRpb24tbWFyZ2luLWJvdHRvbTogMS4yNXJlbTtcbi8vIEBlbmQtZG9jXG5cbi8vIEBzdGFydC1kb2MgVGh1bWJuYWlsc1xuLy8gMzIuIFRodW1ibmFpbHNcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cblxuLy8gJGluY2x1ZGUtaHRtbC1tZWRpYS1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXM7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGJvcmRlciBzdHlsZXNcbi8vICR0aHVtYi1ib3JkZXItc3R5bGU6IHNvbGlkO1xuLy8gJHRodW1iLWJvcmRlci13aWR0aDogNHB4O1xuLy8gJHRodW1iLWJvcmRlci1jb2xvcjogJHdoaXRlO1xuLy8gJHRodW1iLWJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKCRibGFjaywuMik7XG4vLyAkdGh1bWItYm94LXNoYWRvdy1ob3ZlcjogMCAwIDZweCAxcHggcmdiYSgkcHJpbWFyeS1jb2xvciwwLjUpO1xuXG4vLyBSYWRpdXMgYW5kIHRyYW5zaXRpb24gc3BlZWQgZm9yIHRodW1ic1xuLy8gJHRodW1iLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4vLyAkdGh1bWItdHJhbnNpdGlvbi1zcGVlZDogMjAwbXM7XG4vLyBAZW5kLWRvY1xuXG4vLyBAc3RhcnQtZG9jIFRvb2x0aXBzXG4vLyAzMy4gVG9vbHRpcHNcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cblxuLy8gJGluY2x1ZGUtaHRtbC10b29sdGlwLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcztcblxuLy8gJGhhcy10aXAtYm9yZGVyLWJvdHRvbTogZG90dGVkIDFweCAkaXJvbjtcbi8vICRoYXMtdGlwLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcbi8vICRoYXMtdGlwLWZvbnQtY29sb3I6ICRvaWw7XG4vLyAkaGFzLXRpcC1ib3JkZXItYm90dG9tLWhvdmVyOiBkb3R0ZWQgMXB4IHNjYWxlLWNvbG9yKCRwcmltYXJ5LWNvbG9yLCAkbGlnaHRuZXNzOiAtNTUlKTtcbi8vICRoYXMtdGlwLWZvbnQtY29sb3ItaG92ZXI6ICRwcmltYXJ5LWNvbG9yO1xuLy8gJGhhcy10aXAtY3Vyc29yLXR5cGU6IGhlbHA7XG5cbi8vICR0b29sdGlwLXBhZGRpbmc6IHJlbS1jYWxjKDEyKTtcbi8vICR0b29sdGlwLWJnOiAkb2lsO1xuLy8gJHRvb2x0aXAtZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4vLyAkdG9vbHRpcC1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbDtcbi8vICR0b29sdGlwLWZvbnQtY29sb3I6ICR3aGl0ZTtcbi8vICR0b29sdGlwLWxpbmUtaGVpZ2h0OiAxLjM7XG4vLyAkdG9vbHRpcC1jbG9zZS1mb250LXNpemU6IHJlbS1jYWxjKDEwKTtcbi8vICR0b29sdGlwLWNsb3NlLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsO1xuLy8gJHRvb2x0aXAtY2xvc2UtZm9udC1jb2xvcjogJG1vbnNvb247XG4vLyAkdG9vbHRpcC1mb250LXNpemUtc21sOiByZW0tY2FsYygxNCk7XG4vLyAkdG9vbHRpcC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuLy8gJHRvb2x0aXAtcm91bmRlZDogJGdsb2JhbC1yb3VuZGVkO1xuLy8gJHRvb2x0aXAtcGlwLXNpemU6IDVweDtcbi8vICR0b29sdGlwLW1heC13aWR0aDogMzAwcHg7XG4vLyBAZW5kLWRvY1xuXG4vLyBAc3RhcnQtZG9jIFRvcCBCYXJcbi8vIDM0LiBUb3AgQmFyXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5cbi8vICRpbmNsdWRlLWh0bWwtdG9wLWJhci1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXM7XG5cbi8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSB0b3AgYmFyXG4vLyAkdG9wYmFyLWJnLWNvbG9yOiAkYmx1ZS1kYXJrO1xuLy8gJHRvcGJhci1iZzogJHRvcGJhci1iZy1jb2xvcjtcblxuLy8gSGVpZ2h0IGFuZCBtYXJnaW5cbi8vICR0b3BiYXItaGVpZ2h0OiByZW0tY2FsYyg0OCk7XG4vLyAkdG9wYmFyLW1hcmdpbi1ib3R0b206IDA7XG5cbi8vIENvbnRyb2xsaW5nIHRoZSBzdHlsZXMgZm9yIHRoZSB0aXRsZSBpbiB0aGUgdG9wIGJhclxuLy8gJHRvcGJhci10aXRsZS13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWw7XG4vLyAkdG9wYmFyLXRpdGxlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMjYpO1xuXG4vLyBTZXQgdGhlIGxpbmsgY29sb3JzIGFuZCBzdHlsZXMgZm9yIHRvcC1sZXZlbCBuYXZcbi8vICR0b3BiYXItbGluay1jb2xvcjogJGxpbmstYmx1ZS1saWdodDsgLy8gKG1vYmlsZSlcbi8vICR0b3BiYXItbGluay1jb2xvci1ob3ZlcjogJHdoaXRlO1xuLy8gJHRvcGJhci1saW5rLWNvbG9yLWFjdGl2ZTogJHdoaXRlO1xuLy8gJHRvcGJhci1saW5rLWNvbG9yLWFjdGl2ZS1ob3ZlcjogJHdoaXRlO1xuLy8gJHRvcGJhci1saW5rLXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbDtcbi8vICR0b3BiYXItbGluay1mb250LXNpemU6IHJlbS1jYWxjKDE4KTtcbi8vICR0b3BiYXItbGluay1ob3Zlci1saWdodG5lc3M6IC0xMCU7IC8vIERhcmtlbiBieSAxMCVcbi8vICR0b3BiYXItbGluay1iZzogJHRvcGJhci1iZztcbi8vIHRvcGJhci1saW5rLWJnLWhvdmVyOiB0cmFuc3BhcmVudDtcbi8vICR0b3BiYXItbGluay1iZy1jb2xvci1ob3ZlcjogJGNoYXJjb2FsO1xuLy8gJHRvcGJhci1saW5rLWJnLWFjdGl2ZTogJHRvcGJhci1iZy1jb2xvcjtcbi8vICR0b3BiYXItbGluay1iZy1hY3RpdmUtaG92ZXI6ICR0b3BiYXItYmctY29sb3I7XG4vLyAkdG9wYmFyLWxpbmstZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuLy8gJHRvcGJhci1saW5rLXRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4vLyAkdG9wYmFyLWxpbmstcGFkZGluZzogKCR0b3BiYXItaGVpZ2h0LzMpOyAvLyBpbXBvcnRhbnQsIGNvbnRyb2xzIGhvcml6b250YWwgcGFkZGluZyBvZiBhbGwgaXRlbXNcbi8vICR0b3BiYXItYmFjay1saW5rLXNpemU6IHJlbS1jYWxjKDE4KTtcbi8vICR0b3BiYXItbGluay1kcm9wZG93bi1wYWRkaW5nOiByZW0tY2FsYygyMCk7XG4vLyAkdG9wYmFyLWJ1dHRvbi1mb250LXNpemU6IDAuNzVyZW07XG4vLyAkdG9wYmFyLWJ1dHRvbi10b3A6IDdweDtcblxuLy8gU3R5bGUgdGhlIHRvcCBiYXIgZHJvcGRvd24gZWxlbWVudHNcbi8vICR0b3BiYXItZHJvcGRvd24tYmc6ICRzdGVlbC1saWdodDtcbi8vICR0b3BiYXItZHJvcGRvd24tbGluay1jb2xvcjogJHdoaXRlO1xuLy8gJHRvcGJhci1kcm9wZG93bi1saW5rLWNvbG9yLWhvdmVyOiAkdG9wYmFyLWxpbmstY29sb3ItaG92ZXI7XG4vLyAkdG9wYmFyLWRyb3Bkb3duLWxpbmstYmc6ICRvaWw7XG4vLyAkdG9wYmFyLWRyb3Bkb3duLWxpbmstYmctaG92ZXI6ICRvaWw7XG4vLyAkdG9wYmFyLWRyb3Bkb3duLWxpbmstd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsO1xuLy8gJHRvcGJhci1kcm9wZG93bi10b2dnbGUtc2l6ZTogNXB4O1xuLy8gJHRvcGJhci1kcm9wZG93bi10b2dnbGUtY29sb3I6ICR3aGl0ZTtcbi8vICR0b3BiYXItZHJvcGRvd24tdG9nZ2xlLWFscGhhOiAwLjQ7XG5cbi8vICR0b3BiYXItZHJvcGRvd24tbGFiZWwtY29sb3I6ICRtb25zb29uO1xuLy8gJHRvcGJhci1kcm9wZG93bi1sYWJlbC10ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuLy8gJHRvcGJhci1kcm9wZG93bi1sYWJlbC1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XG4vLyAkdG9wYmFyLWRyb3Bkb3duLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTApO1xuLy8gJHRvcGJhci1kcm9wZG93bi1sYWJlbC1iZzogJG9pbDtcblxuLy8gVG9wIG1lbnUgaWNvbiBzdHlsZXNcbi8vICR0b3BiYXItbWVudS1saW5rLXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuLy8gJHRvcGJhci1tZW51LWxpbmstZm9udC1zaXplOiByZW0tY2FsYygxMyk7XG4vLyAkdG9wYmFyLW1lbnUtbGluay13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuLy8gJHRvcGJhci1tZW51LWxpbmstY29sb3I6ICR3aGl0ZTtcbi8vICR0b3BiYXItbWVudS1pY29uLWNvbG9yOiAkd2hpdGU7XG4vLyAkdG9wYmFyLW1lbnUtbGluay1jb2xvci10b2dnbGVkOiAkbGluay1ibHVlLWxpZ2h0O1xuLy8gJHRvcGJhci1tZW51LWljb24tY29sb3ItdG9nZ2xlZDogJHdoaXRlO1xuLy8gJHRvcGJhci1tZW51LWljb24tcG9zaXRpb246ICRvcHBvc2l0ZS1kaXJlY3Rpb247IC8vIENoYW5nZSB0byAkZGVmYXVsdC1mbG9hdCBmb3IgYSBsZWZ0IG1lbnUgaWNvblxuXG4vLyBUcmFuc2l0aW9ucyBhbmQgYnJlYWtwb2ludCBzdHlsZXNcbi8vICR0b3BiYXItdHJhbnNpdGlvbi1zcGVlZDogMzAwbXM7XG4vLyBVc2luZyByZW0tY2FsYyBmb3IgdGhlIGJlbG93IGJyZWFrcG9pbnQgY2F1c2VzIGlzc3VlcyB3aXRoIHRvcCBiYXJcbiR0b3BiYXItYnJlYWtwb2ludDogODgwcHg7IC8vIHN0dWZmIGJlZ2lucyB0byBydW4gaW50byBlYWNoIG90aGVyIGF0IDg4MHB4XG4kdG9wYmFyLW1lZGlhLXF1ZXJ5OiBcIm9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAjeyR0b3BiYXItYnJlYWtwb2ludH0pXCIgIWRlZmF1bHQ7IC8vIG1pbi13aWR0aCB0byB0cmlnZ2VyIG1vYmlsZSB0b3AgYmFyXG5cbi8vIFRvcC1iYXIgaW5wdXQgc3R5bGVzXG4vLyAkdG9wYmFyLWlucHV0LWhlaWdodDogcmVtLWNhbGMoMjgpO1xuXG4vLyBEaXZpZGVyIFN0eWxlc1xuLy8gJHRvcGJhci1kaXZpZGVyLWJvcmRlci1ib3R0b206IHNvbGlkIDFweCBzY2FsZS1jb2xvcigkdG9wYmFyLWJnLWNvbG9yLCAkbGlnaHRuZXNzOiAxMyUpO1xuLy8gJHRvcGJhci1kaXZpZGVyLWJvcmRlci10b3A6IHNvbGlkIDFweCBzY2FsZS1jb2xvcigkdG9wYmFyLWJnLWNvbG9yLCAkbGlnaHRuZXNzOiAtNTAlKTtcblxuLy8gU3RpY2t5IENsYXNzXG4vLyAkdG9wYmFyLXN0aWNreS1jbGFzczogXCIuc3RpY2t5XCI7XG4vLyAkdG9wYmFyLWFycm93czogdHJ1ZTsgLy9TZXQgZmFsc2UgdG8gcmVtb3ZlIHRoZSB0cmlhbmdsZSBpY29uIGZyb20gdGhlIG1lbnUgaXRlbVxuLy8gJHRvcGJhci1kcm9wZG93bi1hcnJvd3M6IHRydWU7IC8vU2V0IGZhbHNlIHRvIHJlbW92ZSB0aGUgXFwwMGJiID4+IHRleHQgZnJvbSBkcm9wZG93biBzdWJuYXZpZ2F0aW9uIGxpLy9cblxuLy8gQGVuZC1kb2NcblxuLy8gQHN0YXJ0LWRvYyBGb290ZXIgQmFyXG4vLyAzNS4gRm9vdGVyIEJhclxuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuXG4vLyBAZW5kLWRvY1xuXG4vLyBAc3RhcnQtZG9jIFZpc2liaWxpdHkgQ2xhc3Nlc1xuLy8gMzYuIFZpc2liaWxpdHkgQ2xhc3Nlc1xuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuXG4vLyAkaW5jbHVkZS1odG1sLXZpc2liaWxpdHktY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzO1xuLy8gJGluY2x1ZGUtYWNjZXNzaWJpbGl0eS1jbGFzc2VzOiB0cnVlO1xuLy8gJGluY2x1ZGUtdGFibGUtdmlzaWJpbGl0eS1jbGFzc2VzOiB0cnVlO1xuLy8gJGluY2x1ZGUtbGVnYWN5LXZpc2liaWxpdHktY2xhc3NlczogdHJ1ZTtcbi8vIEBlbmQtZG9jXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIE1ha2Ugc3VyZSB0aGUgY2hhcnNldCBpcyBzZXQgYXBwcm9wcmlhdGVseVxuXG4vLyBCZWhvbGQsIGhlcmUgYXJlIGFsbCB0aGUgRm91bmRhdGlvbiBjb21wb25lbnRzLlxuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9ncmlkXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL2FjY29yZGlvblwiO1xuLy9AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL2FsZXJ0LWJveGVzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL2Jsb2NrLWdyaWRcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2ZvdW5kYXRpb24vc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvYnJlYWRjcnVtYnNcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2ZvdW5kYXRpb24vc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvYnV0dG9uLWdyb3Vwc1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9idXR0b25zXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL2NsZWFyaW5nXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL2Ryb3Bkb3duXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL2Ryb3Bkb3duLWJ1dHRvbnNcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2ZvdW5kYXRpb24vc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvZmxleC12aWRlb1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9mb3Jtc1wiO1xuLy9AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL2ljb24tYmFyXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL2lubGluZS1saXN0c1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9qb3lyaWRlXCI7XG4vL0BpbXBvcnQgXCIuLi9jb21wb25lbnRzL2ZvdW5kYXRpb24vc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMva2V5c3Ryb2tlc1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9sYWJlbHNcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2ZvdW5kYXRpb24vc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvbWFnZWxsYW5cIjtcbi8vQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9vcmJpdFwiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9wYWdpbmF0aW9uXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL3BhbmVsc1wiO1xuLy9AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL3ByaWNpbmctdGFibGVzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL3Byb2dyZXNzLWJhcnNcIjtcbi8vQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9yYW5nZS1zbGlkZXJcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2ZvdW5kYXRpb24vc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvcmV2ZWFsXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL3NpZGUtbmF2XCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL3NwbGl0LWJ1dHRvbnNcIjtcbi8vQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy9zdWItbmF2XCI7XG4vL0BpbXBvcnQgXCIuLi9jb21wb25lbnRzL2ZvdW5kYXRpb24vc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvc3dpdGNoZXNcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2ZvdW5kYXRpb24vc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvdGFibGVzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL3RhYnNcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2ZvdW5kYXRpb24vc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvdGh1bWJzXCI7XG4vL0BpbXBvcnQgXCIuLi9jb21wb25lbnRzL2ZvdW5kYXRpb24vc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvdG9vbHRpcHNcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2ZvdW5kYXRpb24vc2Nzcy9mb3VuZGF0aW9uL2NvbXBvbmVudHMvdG9wLWJhclwiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy90eXBlXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9mb3VuZGF0aW9uL3Njc3MvZm91bmRhdGlvbi9jb21wb25lbnRzL29mZmNhbnZhc1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvZm91bmRhdGlvbi9zY3NzL2ZvdW5kYXRpb24vY29tcG9uZW50cy92aXNpYmlsaXR5XCI7XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0ICdnbG9iYWwnO1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtZ3JpZC1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG4kaW5jbHVkZS14bC1odG1sLWdyaWQtY2xhc3NlczogZmFsc2UgIWRlZmF1bHQ7XG5cbiRyb3ctd2lkdGg6IHJlbS1jYWxjKDEwMDApICFkZWZhdWx0O1xuJHRvdGFsLWNvbHVtbnM6IDEyICFkZWZhdWx0O1xuXG4kbGFzdC1jaGlsZC1mbG9hdDogJG9wcG9zaXRlLWRpcmVjdGlvbiAhZGVmYXVsdDtcblxuLy9cbi8vIEdyaWQgRnVuY3Rpb25zXG4vL1xuXG4vLyBEZXByZWNhdGVkOiBXZSdsbCBkcm9wIHN1cHBvcnQgZm9yIHRoaXMgaW4gNS4xLCB1c2UgZ3JpZC1jYWxjKClcbkBmdW5jdGlvbiBncmlkQ2FsYygkY29sTnVtYmVyLCAkdG90YWxDb2x1bW5zKSB7XG4gIEB3YXJuIFwiZ3JpZENhbGMoKSBpcyBkZXByZWNhdGVkLCB1c2UgZ3JpZC1jYWxjKClcIjtcbiAgQHJldHVybiBncmlkLWNhbGMoJGNvbE51bWJlciwgJHRvdGFsQ29sdW1ucyk7XG59XG5cbi8vIEBGVU5DVElPTlxuLy8gJGNvbE51bWJlciAtIEZvdW5kIGluIHNldHRpbmdzIGZpbGVcbi8vICR0b3RhbENvbHVtbnMgLSBGb3VuZCBpbiBzZXR0aW5ncyBmaWxlXG5AZnVuY3Rpb24gZ3JpZC1jYWxjKCRjb2xOdW1iZXIsICR0b3RhbENvbHVtbnMpIHtcbiAgJHJlc3VsdDogcGVyY2VudGFnZSgoJGNvbE51bWJlciAvICR0b3RhbENvbHVtbnMpKTtcbiAgQGlmICRyZXN1bHQgPT0gMCUgeyAkcmVzdWx0OiAwOyB9XG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuLy9cbi8vIEBtaXhpbnNcbi8vXG5cbi8vIEZvciBjcmVhdGluZyBjb250YWluZXIsIG5lc3RlZCwgYW5kIGNvbGxhcHNlZCByb3dzLlxuLy9cbi8vXG4vLyAkYmVoYXZpb3IgLSBBbnkgc3BlY2lhbCBiZWhhdmlvciBmb3IgdGhpcyByb3c/IERlZmF1bHQ6IGZhbHNlLiBPcHRpb25zOiBuZXN0LCBjb2xsYXBzZSwgbmVzdC1jb2xsYXBzZSwgZmFsc2UuXG5AbWl4aW4gZ3JpZC1yb3coJGJlaGF2aW9yOiBmYWxzZSkge1xuXG4gIC8vIHVzZSBAaW5jbHVkZSBncmlkLXJvdyhuZXN0KTsgdG8gaW5jbHVkZSBhIG5lc3RlZCByb3dcbiAgQGlmICRiZWhhdmlvciA9PSBuZXN0IHtcbiAgICBtYXJnaW46IDAgKC0oJGNvbHVtbi1ndXR0ZXIvMikpO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuXG4gIC8vIHVzZSBAaW5jbHVkZSBncmlkLXJvdyhjb2xsYXBzZSk7IHRvIGNvbGxhcHNlZCBhIGNvbnRhaW5lciByb3cgbWFyZ2luc1xuICBAZWxzZSBpZiAkYmVoYXZpb3IgPT0gY29sbGFwc2Uge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXgtd2lkdGg6ICRyb3ctd2lkdGg7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAvLyB1c2UgQGluY2x1ZGUgZ3JpZC1yb3cobmVzdC1jb2xsYXBzZSk7IHRvIGNvbGxhcHNlIG91dGVyIG1hcmdpbnMgb24gYSBuZXN0ZWQgcm93XG4gIEBlbHNlIGlmICRiZWhhdmlvciA9PSBuZXN0LWNvbGxhcHNlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG5cbiAgLy8gdXNlIEBpbmNsdWRlIGdyaWQtcm93OyB0byB1c2UgYSBjb250YWluZXIgcm93XG4gIEBlbHNlIHtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBtYXgtd2lkdGg6ICRyb3ctd2lkdGg7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAvLyBDbGVhcmZpeCBmb3IgYWxsIHJvd3NcbiAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcbn1cblxuLy8gQ3JlYXRlcyBhIGNvbHVtbiwgc2hvdWxkIGJlIHVzZWQgaW5zaWRlIG9mIGEgbWVkaWEgcXVlcnkgdG8gY29udHJvbCBsYXlvdXRzXG4vL1xuLy8gJGNvbHVtbnMgLSBUaGUgbnVtYmVyIG9mIGNvbHVtbnMgdGhpcyBzaG91bGQgYmVcbi8vICRsYXN0LWNvbHVtbiAtIElzIHRoaXMgdGhlIGxhc3QgY29sdW1uPyBEZWZhdWx0OiBmYWxzZS5cbi8vICRjZW50ZXIgLSBDZW50ZXIgdGhlc2UgY29sdW1ucz8gRGVmYXVsdDogZmFsc2UuXG4vLyAkb2Zmc2V0IC0gIyBvZiBjb2x1bW5zIHRvIG9mZnNldC4gRGVmYXVsdDogZmFsc2UuXG4vLyAkcHVzaCAtICMgb2YgY29sdW1ucyB0byBwdXNoLiBEZWZhdWx0OiBmYWxzZS5cbi8vICRwdWxsIC0gIyBvZiBjb2x1bW5zIHRvIHB1bGwuIERlZmF1bHQ6IGZhbHNlLlxuLy8gJGNvbGxhcHNlIC0gR2V0IHJpZCBvZiBndXR0ZXIgcGFkZGluZyBvbiBjb2x1bW4/IERlZmF1bHQ6IGZhbHNlLlxuLy8gJGZsb2F0IC0gU2hvdWxkIHRoaXMgZmxvYXQ/IERlZmF1bHQ6IHRydWUuIE9wdGlvbnM6IHRydWUsIGZhbHNlLCBsZWZ0LCByaWdodC5cbkBtaXhpbiBncmlkLWNvbHVtbihcbiAgJGNvbHVtbnM6ZmFsc2UsXG4gICRsYXN0LWNvbHVtbjpmYWxzZSxcbiAgJGNlbnRlcjpmYWxzZSxcbiAgJG9mZnNldDpmYWxzZSxcbiAgJHB1c2g6ZmFsc2UsXG4gICRwdWxsOmZhbHNlLFxuICAkY29sbGFwc2U6ZmFsc2UsXG4gICRmbG9hdDp0cnVlLFxuICAkcG9zaXRpb246ZmFsc2UpIHtcblxuICAvLyBJZiBwb3NpdGlvbmVkIGZvciBkZWZhdWx0IC5jb2x1bW4sIGluY2x1ZGUgcmVsYXRpdmUgcG9zaXRpb25cbiAgLy8gcHVzaCBhbmQgcHVsbCByZXF1aXJlIHBvc2l0aW9uIHNldFxuICBAaWYgJHBvc2l0aW9uIG9yICRwdXNoIG9yICRwdWxsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAvLyBJZiBjb2xsYXBzZWQsIGdldCByaWQgb2YgZ3V0dGVyIHBhZGRpbmdcbiAgQGlmICRjb2xsYXBzZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH1cblxuICAvLyBHdXR0ZXIgcGFkZGluZyB3aGVuZXZlciBhIGNvbHVtbiBpc24ndCBzZXQgdG8gY29sbGFwc2VcbiAgLy8gKHVzZSAkY29sbGFwc2U6bnVsbCB0byBkbyBub3RoaW5nKVxuICBAZWxzZSBpZiAkY29sbGFwc2UgPT0gZmFsc2Uge1xuICAgIHBhZGRpbmctbGVmdDogKCRjb2x1bW4tZ3V0dGVyIC8gMik7XG4gICAgcGFkZGluZy1yaWdodDogKCRjb2x1bW4tZ3V0dGVyIC8gMik7XG4gIH1cblxuICAvLyBJZiBhIGNvbHVtbiBudW1iZXIgaXMgZ2l2ZW4sIGNhbGN1bGF0ZSB3aWR0aFxuICBAaWYgJGNvbHVtbnMge1xuICAgIHdpZHRoOiBncmlkLWNhbGMoJGNvbHVtbnMsICR0b3RhbC1jb2x1bW5zKTtcblxuICAgIC8vIElmIGxhc3QgY29sdW1uLCBmbG9hdCBuYXR1cmFsbHkgaW5zdGVhZCBvZiB0byB0aGUgcmlnaHRcbiAgICBAaWYgJGxhc3QtY29sdW1uIHsgZmxvYXQ6ICRvcHBvc2l0ZS1kaXJlY3Rpb247IH1cbiAgfVxuXG4gIC8vIFNvdXJjZSBPcmRlcmluZywgYWRkcyBsZWZ0L3JpZ2h0IGRlcGVuZGluZyBvbiB3aGljaCB5b3UgdXNlLlxuICBAaWYgJHB1c2ggeyAjeyRkZWZhdWx0LWZsb2F0fTogZ3JpZC1jYWxjKCRwdXNoLCAkdG90YWwtY29sdW1ucyk7ICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IGF1dG87IH1cbiAgQGlmICRwdWxsIHsgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogZ3JpZC1jYWxjKCRwdWxsLCAkdG90YWwtY29sdW1ucyk7ICN7JGRlZmF1bHQtZmxvYXR9OiBhdXRvOyB9XG5cbiAgQGlmICRmbG9hdCB7XG4gICAgQGlmICRmbG9hdCA9PSBsZWZ0IG9yICRmbG9hdCA9PSB0cnVlIHsgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0OyB9XG4gICAgQGVsc2UgaWYgJGZsb2F0ID09IHJpZ2h0IHsgZmxvYXQ6ICRvcHBvc2l0ZS1kaXJlY3Rpb247IH1cbiAgICBAZWxzZSB7IGZsb2F0OiBub25lOyB9XG4gIH1cblxuICAvLyBJZiBjZW50ZXJlZCwgZ2V0IHJpZCBvZiBmbG9hdCBhbmQgYWRkIGFwcHJvcHJpYXRlIG1hcmdpbnNcbiAgQGlmICRjZW50ZXIge1xuICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogYXV0bztcbiAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogYXV0bztcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxuXG4gIC8vIElmIG9mZnNldCwgY2FsY3VsYXRlIGFwcHJvcHJpYXRlIG1hcmdpbnNcbiAgQGlmICRvZmZzZXQgeyBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IGdyaWQtY2FsYygkb2Zmc2V0LCAkdG90YWwtY29sdW1ucykgIWltcG9ydGFudDsgfVxuXG59XG5cbi8vIENyZWF0ZSBwcmVzZW50YXRpb25hbCBjbGFzc2VzIGZvciBncmlkXG4vL1xuLy8gJHNpemUgLSBOYW1lIG9mIGNsYXNzIHRvIHVzZSwgaS5lLiBcImxhcmdlXCIgd2lsbCBnZW5lcmF0ZSAubGFyZ2UtMSwgLmxhcmdlLTIsIGV0Yy5cbkBtaXhpbiBncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZSkge1xuXG4gIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMgLSAxIHtcbiAgICAuI3skc2l6ZX0tcHVzaC0jeyRpfSB7XG4gICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkcHVzaDokaSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XG4gICAgfVxuICAgIC4jeyRzaXplfS1wdWxsLSN7JGl9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRwdWxsOiRpLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICB9XG4gIH1cblxuICAuY29sdW1uLFxuICAuY29sdW1ucyB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOmZhbHNlLCAkcG9zaXRpb246dHJ1ZSk7IH1cblxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMge1xuICAgIC4jeyRzaXplfS0jeyRpfSB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOiRpLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTsgfVxuICB9XG5cbiAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAkdG90YWwtY29sdW1ucyAtIDEge1xuICAgIC4jeyRzaXplfS1vZmZzZXQtI3skaX0geyBAaW5jbHVkZSBncmlkLWNvbHVtbigkb2Zmc2V0OiRpLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTsgfVxuICB9XG5cbiAgLiN7JHNpemV9LXJlc2V0LW9yZGVyIHtcbiAgICBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG4gICAgbGVmdDogYXV0bztcbiAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gICAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IDA7XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cblxuICAuY29sdW1uLiN7JHNpemV9LWNlbnRlcmVkLFxuICAuY29sdW1ucy4jeyRzaXplfS1jZW50ZXJlZCB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjZW50ZXI6dHJ1ZSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7IH1cblxuICAuY29sdW1uLiN7JHNpemV9LXVuY2VudGVyZWQsXG4gIC5jb2x1bW5zLiN7JHNpemV9LXVuY2VudGVyZWQge1xuICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gICAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IDA7XG4gIH1cblxuICAvLyBGaWdodGluZyBbY2xhc3MqPVwiY29sdW1uXCJdICsgW2NsYXNzKj1cImNvbHVtblwiXTpsYXN0LWNoaWxkXG4gIC5jb2x1bW4uI3skc2l6ZX0tY2VudGVyZWQ6bGFzdC1jaGlsZCxcbiAgLmNvbHVtbnMuI3skc2l6ZX0tY2VudGVyZWQ6bGFzdC1jaGlsZHtcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxuXG4gIC8vIEZpZ2h0aW5nIC5jb2x1bW4uPHByZXZpb3VzLXNpemU+LWNlbnRlcmVkOmxhc3QtY2hpbGRcbiAgLmNvbHVtbi4jeyRzaXplfS11bmNlbnRlcmVkOmxhc3QtY2hpbGQsXG4gIC5jb2x1bW5zLiN7JHNpemV9LXVuY2VudGVyZWQ6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICB9XG5cbiAgLmNvbHVtbi4jeyRzaXplfS11bmNlbnRlcmVkLm9wcG9zaXRlLFxuICAuY29sdW1ucy4jeyRzaXplfS11bmNlbnRlcmVkLm9wcG9zaXRlIHtcbiAgICBmbG9hdDogJG9wcG9zaXRlLWRpcmVjdGlvbjtcbiAgfVxuXG5cdC5yb3cge1xuXHRcdCYuI3skc2l6ZX0tY29sbGFwc2Uge1xuXHRcdFx0PiAuY29sdW1uLFxuXHRcdFx0PiAuY29sdW1ucyB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2xsYXBzZTp0cnVlLCAkZmxvYXQ6ZmFsc2UpOyB9XG5cblx0XHRcdC5yb3cge21hcmdpbi1sZWZ0OjA7IG1hcmdpbi1yaWdodDowO31cblx0XHR9XG5cdFx0Ji4jeyRzaXplfS11bmNvbGxhcHNlIHtcblx0XHRcdD4gLmNvbHVtbixcblx0XHRcdD4gLmNvbHVtbnMge1xuXHRcdFx0XHRAaW5jbHVkZSBncmlkLWNvbHVtbjtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcImdyaWRcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1ncmlkLWNsYXNzZXMge1xuICAgIC5yb3cge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3c7XG5cbiAgICAgICYuY29sbGFwc2Uge1xuICAgICAgICAgPiAuY29sdW1uLFxuICAgICAgICAgPiAuY29sdW1ucyB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2xsYXBzZTp0cnVlLCAkZmxvYXQ6ZmFsc2UpOyB9XG5cbiAgICAgICAgLnJvdyB7bWFyZ2luLWxlZnQ6MDsgbWFyZ2luLXJpZ2h0OjA7fVxuICAgICAgfVxuXG4gICAgICAucm93IHsgQGluY2x1ZGUgZ3JpZC1yb3coJGJlaGF2aW9yOm5lc3QpO1xuICAgICAgICAmLmNvbGxhcHNlIHsgQGluY2x1ZGUgZ3JpZC1yb3coJGJlaGF2aW9yOm5lc3QtY29sbGFwc2UpOyB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNvbHVtbixcbiAgICAuY29sdW1ucyB7IEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOiR0b3RhbC1jb2x1bW5zKTsgfVxuXG4gICAgLmNvbHVtbixcbiAgICAuY29sdW1ucyB7XG4gICAgICAmICsgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgZmxvYXQ6ICRsYXN0LWNoaWxkLWZsb2F0O1xuICAgICAgfVxuICAgICAgJiArICYuZW5kIHtcbiAgICAgICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAjeyRzbWFsbC11cH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6c21hbGwpO1xuICAgIH1cblxuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOm1lZGl1bSk7XG4gICAgICAvLyBPbGQgcHVzaCBhbmQgcHVsbCBjbGFzc2VzXG4gICAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICR0b3RhbC1jb2x1bW5zIC0gMSB7XG4gICAgICAgIC5wdXNoLSN7JGl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkcHVzaDokaSwgJGNvbGxhcHNlOm51bGwsICRmbG9hdDpmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgLnB1bGwtI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRwdWxsOiRpLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOmxhcmdlKTtcbiAgICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHRvdGFsLWNvbHVtbnMgLSAxIHtcbiAgICAgICAgLnB1c2gtI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRwdXNoOiRpLCAkY29sbGFwc2U6bnVsbCwgJGZsb2F0OmZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICAucHVsbC0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJHB1bGw6JGksICRjb2xsYXBzZTpudWxsLCAkZmxvYXQ6ZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBpZiAkaW5jbHVkZS14bC1odG1sLWdyaWQtY2xhc3NlcyB7XG4gICAgQG1lZGlhICN7JHhsYXJnZS11cH0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6eGxhcmdlKTtcbiAgICB9XG4gICAgQG1lZGlhICN7JHh4bGFyZ2UtdXB9IHtcbiAgICAgIEBpbmNsdWRlIGdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOnh4bGFyZ2UpO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCAnLi4vZnVuY3Rpb25zJztcbi8vXG4vLyBGb3VuZGF0aW9uIFZhcmlhYmxlc1xuLy9cblxuLy8gRGF0YSBhdHRyaWJ1dGUgbmFtZXNwYWNlXG4vLyBzdHlsZXMgZ2V0IGFwcGxpZWQgdG8gW2RhdGEtbXlzaXRlLXBsdWdpbl0sIGV0Y1xuJG5hbWVzcGFjZTogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IGZvbnQtc2l6ZSBpcyBzZXQgdG8gMTAwJSBvZiB0aGUgYnJvd3NlciBzdHlsZSBzaGVldCAodXN1YWxseSAxNnB4KVxuLy8gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBicm93c2VyLWJhc2VkIHRleHQgem9vbSBvciB1c2VyLXNldCBkZWZhdWx0cy5cblxuLy8gU2luY2UgdGhlIHR5cGljYWwgZGVmYXVsdCBicm93c2VyIGZvbnQtc2l6ZSBpcyAxNnB4LCB0aGF0IG1ha2VzIHRoZSBjYWxjdWxhdGlvbiBmb3IgZ3JpZCBzaXplLlxuLy8gSWYgeW91IHdhbnQgeW91ciBiYXNlIGZvbnQtc2l6ZSB0byBiZSBkaWZmZXJlbnQgYW5kIG5vdCBoYXZlIGl0IGFmZmVjdCB0aGUgZ3JpZCBicmVha3BvaW50cyxcbi8vIHNldCAkcmVtLWJhc2UgdG8gJGJhc2UtZm9udC1zaXplIGFuZCBtYWtlIHN1cmUgJGJhc2UtZm9udC1zaXplIGlzIGEgcHggdmFsdWUuXG4kYmFzZS1mb250LXNpemU6IDEwMCUgIWRlZmF1bHQ7XG5cbi8vICRiYXNlLWxpbmUtaGVpZ2h0IGlzIDI0cHggd2hpbGUgJGJhc2UtZm9udC1zaXplIGlzIDE2cHhcbiRiYXNlLWxpbmUtaGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG5cbi8vXG4vLyBHbG9iYWwgRm91bmRhdGlvbiBNaXhpbnNcbi8vXG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIGJvcmRlciByYWRpdXMuXG4vLyAkcmFkaXVzIC0gRGVmYXVsdDogJGdsb2JhbC1yYWRpdXMgfHwgNHB4XG5AbWl4aW4gcmFkaXVzKCRyYWRpdXM6JGdsb2JhbC1yYWRpdXMpIHtcbiAgQGlmICRyYWRpdXMge1xuICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gIH1cbn1cblxuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIHRvIGNyZWF0ZSBlcXVhbCBzaWRlIGJvcmRlciByYWRpdXMgb24gZWxlbWVudHMuXG4vLyAkc2lkZSAtIE9wdGlvbnM6IGxlZnQsIHJpZ2h0LCB0b3AsIGJvdHRvbVxuQG1peGluIHNpZGUtcmFkaXVzKCRzaWRlLCAkcmFkaXVzOiRnbG9iYWwtcmFkaXVzKSB7XG4gIEBpZiAoJHNpZGUgPT0gbGVmdCBvciAkc2lkZSA9PSByaWdodCkge1xuICAgIC13ZWJraXQtYm9yZGVyLWJvdHRvbS0jeyRzaWRlfS1yYWRpdXM6ICRyYWRpdXM7XG4gICAgLXdlYmtpdC1ib3JkZXItdG9wLSN7JHNpZGV9LXJhZGl1czogJHJhZGl1cztcbiAgICBib3JkZXItYm90dG9tLSN7JHNpZGV9LXJhZGl1czogJHJhZGl1cztcbiAgICBib3JkZXItdG9wLSN7JHNpZGV9LXJhZGl1czogJHJhZGl1cztcbiAgfSBAZWxzZSB7XG4gICAgLXdlYmtpdC0jeyRzaWRlfS1sZWZ0LXJhZGl1czogJHJhZGl1cztcbiAgICAtd2Via2l0LSN7JHNpZGV9LXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbiAgICBib3JkZXItI3skc2lkZX0tbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG4gICAgYm9yZGVyLSN7JHNpZGV9LXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbiAgfVxufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgY2FuIGNvbnRyb2wgd2hldGhlciBvciBub3Qgd2UgaGF2ZSBpbnNldCBzaGFkb3dzIGVkZ2VzLlxuLy8gJGFjdGl2ZSAtIERlZmF1bHQ6IHRydWUsIE9wdGlvbnM6IGZhbHNlXG5AbWl4aW4gaW5zZXQtc2hhZG93KCRhY3RpdmU6dHJ1ZSkge1xuICBib3gtc2hhZG93OiAkc2hpbnktZWRnZS1zaXplICRzaGlueS1lZGdlLWNvbG9yIGluc2V0O1xuXG4gIEBpZiAkYWN0aXZlIHsgJjphY3RpdmUge1xuICAgIGJveC1zaGFkb3c6ICRzaGlueS1lZGdlLXNpemUgJHNoaW55LWVkZ2UtYWN0aXZlLWNvbG9yIGluc2V0OyB9IH1cbn1cblxuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIHRvIGFkZCB0cmFuc2l0aW9ucyB0byBlbGVtZW50c1xuLy8gJHByb3BlcnR5IC0gRGVmYXVsdDogYWxsLCBPcHRpb25zOiBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLXRyYW5zaXRpb25zLyNhbmltYXRhYmxlLXByb3BlcnRpZXNcbi8vICRzcGVlZCAtIERlZmF1bHQ6IDMwMG1zXG4vLyAkZWFzZSAtIERlZmF1bHQ6ZWFzZS1vdXQsIE9wdGlvbnM6IGh0dHA6Ly9jc3MtdHJpY2tzLmNvbS9hbG1hbmFjL3Byb3BlcnRpZXMvdC90cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbi9cbkBtaXhpbiBzaW5nbGUtdHJhbnNpdGlvbigkcHJvcGVydHk6YWxsLCAkc3BlZWQ6MzAwbXMsICRlYXNlOmVhc2Utb3V0KSB7XG4gIHRyYW5zaXRpb246ICRwcm9wZXJ0eSAkc3BlZWQgJGVhc2U7XG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBXZSB1c2UgdGhpcyB0byBhZGQgYm94LXNpemluZyBhY3Jvc3MgYnJvd3NlciBwcmVmaXhlc1xuQG1peGluIGJveC1zaXppbmcoJHR5cGU6Ym9yZGVyLWJveCkge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICR0eXBlOyAvLyBBbmRyb2lkIDwgMi4zLCBpT1MgPCA0XG4gICAgIC1tb3otYm94LXNpemluZzogJHR5cGU7XG4gICAgICAgICAgYm94LXNpemluZzogJHR5cGU7IC8vIENocm9tZSwgSUUgOCssIE9wZXJhLCBTYWZhcmkgNS4xXG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBXZSB1c2UgdGhpcyB0byBjcmVhdGUgaXNvc2NlbGVzIHRyaWFuZ2xlc1xuLy8gJHRyaWFuZ2xlLXNpemUgLSBVc2VkIHRvIHNldCBib3JkZXItc2l6ZS4gTm8gZGVmYXVsdCwgc2V0IGEgcHggb3IgZW0gc2l6ZS5cbi8vICR0cmlhbmdsZS1jb2xvciAtIFVzZWQgdG8gc2V0IGJvcmRlci1jb2xvciB3aGljaCBtYWtlcyB1cCB0cmlhbmdsZS4gTm8gZGVmYXVsdFxuLy8gJHRyaWFuZ2xlLWRpcmVjdGlvbiAtIFVzZWQgdG8gZGV0ZXJtaW5lIHdoaWNoIGRpcmVjdGlvbiB0cmlhbmdsZSBwb2ludHMuIE9wdGlvbnM6IHRvcCwgYm90dG9tLCBsZWZ0LCByaWdodFxuQG1peGluIGNzcy10cmlhbmdsZSgkdHJpYW5nbGUtc2l6ZSwgJHRyaWFuZ2xlLWNvbG9yLCAkdHJpYW5nbGUtZGlyZWN0aW9uKSB7XG4gIGJvcmRlcjogaW5zZXQgJHRyaWFuZ2xlLXNpemU7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDA7XG4gIHdpZHRoOiAwO1xuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gdG9wKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGJvdHRvbSkge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSByaWdodCkge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gIH1cbn1cblxuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIHRvIGNyZWF0ZSB0aGUgaWNvbiB3aXRoIHRocmVlIGxpbmVzIGFrYSB0aGUgaGFtYnVyZ2VyIGljb24sIHRoZSBtZW51LWljb24gb3IgdGhlIG5hdmljb25cbi8vICR3aWR0aCAtIFdpZHRoIG9mIGhhbWJ1cmdlciBpY29uIGluIHJlbVxuLy8gJGxlZnQgLSBJZiBmYWxzZSwgaWNvbiB3aWxsIGJlIGNlbnRlcmVkIGhvcml6b250YWxseSB8fCBleHBsaWNpdGx5IHNldCB2YWx1ZSBpbiByZW1cbi8vICR0b3AgLSBJZiBmYWxzZSwgaWNvbiB3aWxsIGJlIGNlbnRlcmVkIHZlcnRpY2FsbHkgfHwgZXhwbGljaXRseSBzZXQgdmFsdWUgaW4gcmVtXG4vLyAkdGhpY2tuZXNzIC0gdGhpY2tuZXNzIG9mIGxpbmVzIGluIGhhbWJ1cmdlciBpY29uLCBzZXQgdmFsdWUgaW4gcHhcbi8vICRnYXAgLSBzcGFjaW5nIGJldHdlZW4gdGhlIGxpbmVzIGluIGhhbWJ1cmdlciBpY29uLCBzZXQgdmFsdWUgaW4gcHhcbi8vICRjb2xvciAtIGljb24gY29sb3Jcbi8vICRob3Zlci1jb2xvciAtIGljb24gY29sb3IgZHVyaW5nIGhvdmVyXG4vLyAkb2ZmY2FudmFzIC0gU2V0IHRvIHRydWUgb2YgQGluY2x1ZGUgaW4gb2ZmY2FudmFzXG5AbWl4aW4gaGFtYnVyZ2VyKCR3aWR0aCwgJGxlZnQsICR0b3AsICR0aGlja25lc3MsICRnYXAsICRjb2xvciwgJGhvdmVyLWNvbG9yLCAkb2ZmY2FudmFzKSB7XG4gIHNwYW46OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICBAaWYgJG9mZmNhbnZhcyB7XG4gICAgICBAaWYgJHRvcCB7XG4gICAgICAgIHRvcDogJHRvcDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIG1hcmdpbi10b3A6ICgtJHdpZHRoLzIpO1xuICAgICAgfVxuICAgICAgQGlmICRsZWZ0IHtcbiAgICAgICAgbGVmdDogJGxlZnQ7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGxlZnQ6ICgkdGFiYmFyLW1lbnUtaWNvbi13aWR0aCAtICR3aWR0aCkvMjtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgbWFyZ2luLXRvcDogLSgkd2lkdGgvMik7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICR0b3BiYXItbGluay1wYWRkaW5nO1xuICAgIH1cblxuICAgIGJveC1zaGFkb3c6XG4gICAgICAwIDAgMCAkdGhpY2tuZXNzICRjb2xvcixcbiAgICAgIDAgJGdhcCArICR0aGlja25lc3MgMCAkdGhpY2tuZXNzICRjb2xvcixcbiAgICAgIDAgKDIgKiAkZ2FwICsgMiokdGhpY2tuZXNzKSAwICR0aGlja25lc3MgJGNvbG9yO1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gIH1cbiAgc3Bhbjpob3ZlcjphZnRlciB7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgIDAgMCAwICR0aGlja25lc3MgJGhvdmVyLWNvbG9yLFxuICAgICAgMCAkZ2FwICsgJHRoaWNrbmVzcyAwICR0aGlja25lc3MgJGhvdmVyLWNvbG9yLFxuICAgICAgMCAoMiAqICRnYXAgKyAyKiR0aGlja25lc3MpIDAgJHRoaWNrbmVzcyAkaG92ZXItY29sb3I7XG4gIH1cbn1cblxuLy8gV2UgdXNlIHRoaXMgdG8gZG8gY2xlYXIgZmxvYXRzXG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOmJlZm9yZSwgJjphZnRlciB7IGNvbnRlbnQ6IFwiIFwiOyBkaXNwbGF5OiB0YWJsZTsgfVxuICAmOmFmdGVyIHsgY2xlYXI6IGJvdGg7IH1cbn1cblxuLy8gQG1peGluc1xuLy9cbi8vIFdlIHVzZSB0aGlzIHRvIGFkZCBhIGdsb3dpbmcgZWZmZWN0IHRvIGJsb2NrIGVsZW1lbnRzXG4vLyAkc2VsZWN0b3IgLSBVc2VkIGZvciBzZWxlY3RvciBzdGF0ZS4gRGVmYXVsdDogZm9jdXMsIE9wdGlvbnM6IGhvdmVyLCBhY3RpdmUsIHZpc2l0ZWRcbi8vICRmYWRlLXRpbWUgLSBEZWZhdWx0OiAzMDBtc1xuLy8gJGdsb3dpbmctZWZmZWN0LWNvbG9yIC0gRGVmYXVsdDogZmFkZS1vdXQoJHByaW1hcnktY29sb3IsIC4yNSlcbkBtaXhpbiBibG9jay1nbG93aW5nLWVmZmVjdCgkc2VsZWN0b3I6Zm9jdXMsICRmYWRlLXRpbWU6MzAwbXMsICRnbG93aW5nLWVmZmVjdC1jb2xvcjpmYWRlLW91dCgkcHJpbWFyeS1jb2xvciwgLjI1KSkge1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93ICRmYWRlLXRpbWUsIGJvcmRlci1jb2xvciAkZmFkZS10aW1lIGVhc2UtaW4tb3V0O1xuXG4gICY6I3skc2VsZWN0b3J9IHtcbiAgICBib3JkZXItY29sb3I6ICRnbG93aW5nLWVmZmVjdC1jb2xvcjtcbiAgICBib3gtc2hhZG93OiAwIDAgNXB4ICRnbG93aW5nLWVmZmVjdC1jb2xvcjtcbiAgfVxufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgdG8gdHJhbnNsYXRlIGVsZW1lbnRzIGluIDJEXG4vLyAkaG9yaXpvbnRhbDogRGVmYXVsdDogMFxuLy8gJHZlcnRpY2FsOiBEZWZhdWx0OiAwXG5AbWl4aW4gdHJhbnNsYXRlMmQoJGhvcml6b250YWw6MCwgJHZlcnRpY2FsOjApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoJGhvcml6b250YWwsICR2ZXJ0aWNhbClcbn1cblxuLy8gQG1peGluc1xuLy9cbi8vIE1ha2VzIGFuIGVsZW1lbnQgdmlzdWFsbHkgaGlkZGVuLCBidXQgYWNjZXNzaWJsZS5cbi8vIEBzZWUgaHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlIHtcbiAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xuICBoZWlnaHQ6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHg7XG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBUdXJucyBvZmYgdGhlIGVsZW1lbnQtaW52aXNpYmxlIGVmZmVjdC5cbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZS1vZmYge1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IGF1dG87XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBjbGlwOiBhdXRvO1xufVxuXG4kd2hpdGUgICAgICAgICA6ICNGRkZGRkYgIWRlZmF1bHQ7XG4kZ2hvc3QgICAgICAgICA6ICNGQUZBRkEgIWRlZmF1bHQ7XG4kc25vdyAgICAgICAgICA6ICNGOUY5RjkgIWRlZmF1bHQ7XG4kdmFwb3IgICAgICAgICA6ICNGNkY2RjYgIWRlZmF1bHQ7XG4kd2hpdGUtc21va2UgICA6ICNGNUY1RjUgIWRlZmF1bHQ7XG4kc2lsdmVyICAgICAgICA6ICNFRkVGRUYgIWRlZmF1bHQ7XG4kc21va2UgICAgICAgICA6ICNFRUVFRUUgIWRlZmF1bHQ7XG4kZ2FpbnNib3JvICAgICA6ICNEREREREQgIWRlZmF1bHQ7XG4kaXJvbiAgICAgICAgICA6ICNDQ0NDQ0MgIWRlZmF1bHQ7XG4kYmFzZSAgICAgICAgICA6ICNBQUFBQUEgIWRlZmF1bHQ7XG4kYWx1bWludW0gICAgICA6ICM5OTk5OTkgIWRlZmF1bHQ7XG4kanVtYm8gICAgICAgICA6ICM4ODg4ODggIWRlZmF1bHQ7XG4kbW9uc29vbiAgICAgICA6ICM3Nzc3NzcgIWRlZmF1bHQ7XG4kc3RlZWwgICAgICAgICA6ICM2NjY2NjYgIWRlZmF1bHQ7XG4kY2hhcmNvYWwgICAgICA6ICM1NTU1NTUgIWRlZmF1bHQ7XG4kdHVhdGFyYSAgICAgICA6ICM0NDQ0NDQgIWRlZmF1bHQ7XG4kb2lsICAgICAgICAgICA6ICMzMzMzMzMgIWRlZmF1bHQ7XG4kamV0ICAgICAgICAgICA6ICMyMjIyMjIgIWRlZmF1bHQ7XG4kYmxhY2sgICAgICAgICA6ICMwMDAwMDAgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSBhcyBkZWZhdWx0IGNvbG9ycyB0aHJvdWdob3V0XG4kcHJpbWFyeS1jb2xvcjogIzAwOENCQSAhZGVmYXVsdDsgICAvLyBib25kaS1ibHVlXG4kc2Vjb25kYXJ5LWNvbG9yOiAjZTdlN2U3ICFkZWZhdWx0OyAvLyB3aGl0ZS1saWxhY1xuJGFsZXJ0LWNvbG9yOiAjZjA0MTI0ICFkZWZhdWx0OyAgICAgLy8gY2lubmFiYXJcbiRzdWNjZXNzLWNvbG9yOiAjNDNBQzZBICFkZWZhdWx0OyAgIC8vIHNlYS1ncmVlblxuJHdhcm5pbmctY29sb3I6ICNmMDhhMjQgIWRlZmF1bHQ7ICAgLy8gY2Fycm90XG4kaW5mby1jb2xvcjogI2EwZDNlOCAhZGVmYXVsdDsgICAgICAvLyBjb3JuZmxvd2VyXG5cbi8vIFdlIHVzZSB0aGVzZSB0byBkZWZpbmUgZGVmYXVsdCBmb250IHN0YWNrc1xuJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWY6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xuJGZvbnQtZmFtaWx5LXNlcmlmOiBHZW9yZ2lhLCBDYW1icmlhLCBcIlRpbWVzIE5ldyBSb21hblwiLCBUaW1lcywgc2VyaWYgIWRlZmF1bHQ7XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgXCJMaWJlcmF0aW9uIE1vbm9cIiwgQ291cmllciwgbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gZGVmaW5lIGRlZmF1bHQgZm9udCB3ZWlnaHRzXG4kZm9udC13ZWlnaHQtbm9ybWFsOiBub3JtYWwgIWRlZmF1bHQ7XG4kZm9udC13ZWlnaHQtYm9sZDogYm9sZCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdmFyaW91cyBnbG9iYWwgc3R5bGVzXG4kYm9keS1iZzogI2ZmZiAhZGVmYXVsdDtcbiRib2R5LWZvbnQtY29sb3I6ICMyMjIgIWRlZmF1bHQ7XG4kYm9keS1mb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4kYm9keS1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRib2R5LWZvbnQtc3R5bGU6IG5vcm1hbCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCBmb250LXNtb290aGluZ1xuJGZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGV4dCBkaXJlY3Rpb24gc2V0dGluZ3NcbiR0ZXh0LWRpcmVjdGlvbjogbHRyICFkZWZhdWx0O1xuJGRlZmF1bHQtZmxvYXQ6IGxlZnQgIWRlZmF1bHQ7XG4kb3Bwb3NpdGUtZGlyZWN0aW9uOiByaWdodCAhZGVmYXVsdDtcbkBpZiAkdGV4dC1kaXJlY3Rpb24gPT0gbHRyIHtcbiAgJGRlZmF1bHQtZmxvYXQ6IGxlZnQ7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IHJpZ2h0O1xufSBAZWxzZSB7XG4gICRkZWZhdWx0LWZsb2F0OiByaWdodDtcbiAgJG9wcG9zaXRlLWRpcmVjdGlvbjogbGVmdDtcbn1cblxuLy8gV2UgdXNlIHRoZXNlIHRvIG1ha2Ugc3VyZSBib3JkZXIgcmFkaXVzIG1hdGNoZXMgdW5sZXNzIHdlIHdhbnQgaXQgZGlmZmVyZW50LlxuJGdsb2JhbC1yYWRpdXM6IDNweCAhZGVmYXVsdDtcbiRnbG9iYWwtcm91bmRlZDogMTAwMHB4ICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBpbnNldCBzaGFkb3cgc2hpbnkgZWRnZXMgYW5kIGRlcHJlc3Npb25zLlxuJHNoaW55LWVkZ2Utc2l6ZTogMCAxcHggMCAhZGVmYXVsdDtcbiRzaGlueS1lZGdlLWNvbG9yOiByZ2JhKCNmZmYsIC41KSAhZGVmYXVsdDtcbiRzaGlueS1lZGdlLWFjdGl2ZS1jb2xvcjogcmdiYSgjMDAwLCAuMikgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgd2hldGhlciBvciBub3QgQ1NTIGNsYXNzZXMgY29tZSB0aHJvdWdoIGluIHRoZSBnZW0gZmlsZXMuXG4kaW5jbHVkZS1odG1sLWNsYXNzZXM6IHRydWUgIWRlZmF1bHQ7XG4kaW5jbHVkZS1wcmludC1zdHlsZXM6IHRydWUgIWRlZmF1bHQ7XG4kaW5jbHVkZS1qcy1tZXRhLXN0eWxlczogdHJ1ZSAhZGVmYXVsdDsgLy8gV2FybmluZyEgTWV0YSBzdHlsZXMgYXJlIGEgZGVwZW5kYW5jeSBvZiB0aGUgSmF2YXNjcmlwdC5cbiRpbmNsdWRlLWh0bWwtZ2xvYmFsLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuJGNvbHVtbi1ndXR0ZXI6IHJlbS1jYWxjKDMwKSAhZGVmYXVsdDtcblxuLy8gTWVkaWEgUXVlcnkgUmFuZ2VzXG4kc21hbGwtYnJlYWtwb2ludDogIGVtLWNhbGMoNjQwKSAgIWRlZmF1bHQ7XG4kbWVkaXVtLWJyZWFrcG9pbnQ6IGVtLWNhbGMoMTAyNCkgIWRlZmF1bHQ7XG4kbGFyZ2UtYnJlYWtwb2ludDogIGVtLWNhbGMoMTQ0MCkgIWRlZmF1bHQ7XG4keGxhcmdlLWJyZWFrcG9pbnQ6IGVtLWNhbGMoMTkyMCkgIWRlZmF1bHQ7XG5cbiRzbWFsbC1yYW5nZTogICAoMCwgJHNtYWxsLWJyZWFrcG9pbnQpICFkZWZhdWx0O1xuJG1lZGl1bS1yYW5nZTogICgkc21hbGwtYnJlYWtwb2ludCAgKyBlbS1jYWxjKDEpLCAkbWVkaXVtLWJyZWFrcG9pbnQpICFkZWZhdWx0O1xuJGxhcmdlLXJhbmdlOiAgICgkbWVkaXVtLWJyZWFrcG9pbnQgKyBlbS1jYWxjKDEpLCAkbGFyZ2UtYnJlYWtwb2ludCkgICFkZWZhdWx0O1xuJHhsYXJnZS1yYW5nZTogICgkbGFyZ2UtYnJlYWtwb2ludCAgKyBlbS1jYWxjKDEpLCAkeGxhcmdlLWJyZWFrcG9pbnQpICFkZWZhdWx0O1xuJHh4bGFyZ2UtcmFuZ2U6ICgkeGxhcmdlLWJyZWFrcG9pbnQgKyBlbS1jYWxjKDEpLCBlbS1jYWxjKDk5OTk5OTk5KSkgIWRlZmF1bHQ7XG5cbiRzY3JlZW46IFwib25seSBzY3JlZW5cIiAhZGVmYXVsdDtcblxuJGxhbmRzY2FwZTogXCIjeyRzY3JlZW59IGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSlcIiAhZGVmYXVsdDtcbiRwb3J0cmFpdDogXCIjeyRzY3JlZW59IGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KVwiICFkZWZhdWx0O1xuXG4kc21hbGwtdXA6ICRzY3JlZW4gIWRlZmF1bHQ7XG4kc21hbGwtb25seTogXCIjeyRzY3JlZW59IGFuZCAobWF4LXdpZHRoOiAje3VwcGVyLWJvdW5kKCRzbWFsbC1yYW5nZSl9KVwiICFkZWZhdWx0O1xuXG4kbWVkaXVtLXVwOiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkbWVkaXVtLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4kbWVkaXVtLW9ubHk6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCRtZWRpdW0tcmFuZ2UpfSkgYW5kIChtYXgtd2lkdGg6I3t1cHBlci1ib3VuZCgkbWVkaXVtLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG5cbiRsYXJnZS11cDogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJGxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4kbGFyZ2Utb25seTogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJGxhcmdlLXJhbmdlKX0pIGFuZCAobWF4LXdpZHRoOiN7dXBwZXItYm91bmQoJGxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG5cbiR4bGFyZ2UtdXA6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCR4bGFyZ2UtcmFuZ2UpfSlcIiAhZGVmYXVsdDtcbiR4bGFyZ2Utb25seTogXCIjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiN7bG93ZXItYm91bmQoJHhsYXJnZS1yYW5nZSl9KSBhbmQgKG1heC13aWR0aDoje3VwcGVyLWJvdW5kKCR4bGFyZ2UtcmFuZ2UpfSlcIiAhZGVmYXVsdDtcblxuJHh4bGFyZ2UtdXA6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCR4eGxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG4keHhsYXJnZS1vbmx5OiBcIiN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkeHhsYXJnZS1yYW5nZSl9KSBhbmQgKG1heC13aWR0aDoje3VwcGVyLWJvdW5kKCR4eGxhcmdlLXJhbmdlKX0pXCIgIWRlZmF1bHQ7XG5cbiRyZXRpbmE6IChcbiAgXCIjeyRzY3JlZW59IGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKVwiLFxuICBcIiN7JHNjcmVlbn0gYW5kIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpXCIsXG4gIFwiI3skc2NyZWVufSBhbmQgKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIvMSlcIixcbiAgXCIjeyRzY3JlZW59IGFuZCAobWluLWRldmljZS1waXhlbC1yYXRpbzogMilcIixcbiAgXCIjeyRzY3JlZW59IGFuZCAobWluLXJlc29sdXRpb246IDE5MmRwaSlcIixcbiAgXCIjeyRzY3JlZW59IGFuZCAobWluLXJlc29sdXRpb246IDJkcHB4KVwiXG4pO1xuXG4vLyBMZWdhY3lcbiRzbWFsbDogJG1lZGl1bS11cDtcbiRtZWRpdW06ICRtZWRpdW0tdXA7XG4kbGFyZ2U6ICRsYXJnZS11cDtcblxuXG4vL1dlIHVzZSB0aGlzIGFzIGN1cnNvcnMgdmFsdWVzIGZvciBlbmFibGluZyB0aGUgb3B0aW9uIG9mIGhhdmluZyBjdXN0b20gY3Vyc29ycyBpbiB0aGUgd2hvbGUgc2l0ZSdzIHN0eWxlc2hlZXRcbiRjdXJzb3ItYXV0by12YWx1ZTogYXV0byAhZGVmYXVsdDtcbiRjdXJzb3ItY3Jvc3NoYWlyLXZhbHVlOiBjcm9zc2hhaXIgIWRlZmF1bHQ7XG4kY3Vyc29yLWRlZmF1bHQtdmFsdWU6IGRlZmF1bHQgIWRlZmF1bHQ7XG4kY3Vyc29yLWRpc2FibGVkLXZhbHVlOiBub3QtYWxsb3dlZCAhZGVmYXVsdDtcbiRjdXJzb3ItcG9pbnRlci12YWx1ZTogcG9pbnRlciAhZGVmYXVsdDtcbiRjdXJzb3ItaGVscC12YWx1ZTogaGVscCAhZGVmYXVsdDtcbiRjdXJzb3ItdGV4dC12YWx1ZTogdGV4dCAhZGVmYXVsdDtcblxuXG5AaW5jbHVkZSBleHBvcnRzKFwiZ2xvYmFsXCIpIHtcblxuICAvLyBNZXRhIHN0eWxlcyBhcmUgYSBkZXBlbmRhbmN5IG9mIHRoZSBKYXZhc2NyaXB0LlxuICAvLyBVc2VkIHRvIHByb3ZpZGUgbWVkaWEgcXVlcnkgdmFsdWVzIGZvciBqYXZhc2NyaXB0IGNvbXBvbmVudHMuXG4gIC8vIEZvcndhcmQgc2xhc2ggcGxhY2VkIGFyb3VuZCBldmVyeXRoaW5nIHRvIGNvbnZpbmNlIFBoYW50b21KUyB0byByZWFkIHRoZSB2YWx1ZS5cblxuICBAaWYgJGluY2x1ZGUtanMtbWV0YS1zdHlsZXMge1xuXG4gICAgbWV0YS5mb3VuZGF0aW9uLXZlcnNpb24ge1xuICAgICAgZm9udC1mYW1pbHk6IFwiLzUuNS4yL1wiO1xuICAgIH1cblxuICAgIG1ldGEuZm91bmRhdGlvbi1tcS1zbWFsbCB7XG4gICAgICBmb250LWZhbWlseTogXCIvXCIgKyB1bnF1b3RlKCRzbWFsbC11cCkgKyBcIi9cIjtcbiAgICAgIHdpZHRoOiBsb3dlci1ib3VuZCgkc21hbGwtcmFuZ2UpO1xuICAgIH1cblxuICAgIG1ldGEuZm91bmRhdGlvbi1tcS1zbWFsbC1vbmx5IHtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIi9cIiArIHVucXVvdGUoJHNtYWxsLW9ubHkpICsgXCIvXCI7XG4gICAgICB3aWR0aDogbG93ZXItYm91bmQoJHNtYWxsLXJhbmdlKTtcbiAgICB9XG5cbiAgICBtZXRhLmZvdW5kYXRpb24tbXEtbWVkaXVtIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIi9cIiArIHVucXVvdGUoJG1lZGl1bS11cCkgKyBcIi9cIjtcbiAgICAgIHdpZHRoOiBsb3dlci1ib3VuZCgkbWVkaXVtLXJhbmdlKTtcbiAgICB9XG5cbiAgICBtZXRhLmZvdW5kYXRpb24tbXEtbWVkaXVtLW9ubHkge1xuICAgICAgZm9udC1mYW1pbHk6IFwiL1wiICsgdW5xdW90ZSgkbWVkaXVtLW9ubHkpICsgXCIvXCI7XG4gICAgICB3aWR0aDogbG93ZXItYm91bmQoJG1lZGl1bS1yYW5nZSk7XG4gICAgfVxuXG4gICAgbWV0YS5mb3VuZGF0aW9uLW1xLWxhcmdlIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIi9cIiArIHVucXVvdGUoJGxhcmdlLXVwKSArIFwiL1wiO1xuICAgICAgd2lkdGg6IGxvd2VyLWJvdW5kKCRsYXJnZS1yYW5nZSk7XG4gICAgfVxuXG4gICAgbWV0YS5mb3VuZGF0aW9uLW1xLWxhcmdlLW9ubHkge1xuICAgICAgZm9udC1mYW1pbHk6IFwiL1wiICsgdW5xdW90ZSgkbGFyZ2Utb25seSkgKyBcIi9cIjtcbiAgICAgIHdpZHRoOiBsb3dlci1ib3VuZCgkbGFyZ2UtcmFuZ2UpO1xuICAgIH1cblxuICAgIG1ldGEuZm91bmRhdGlvbi1tcS14bGFyZ2Uge1xuICAgICAgZm9udC1mYW1pbHk6IFwiL1wiICsgdW5xdW90ZSgkeGxhcmdlLXVwKSArIFwiL1wiO1xuICAgICAgd2lkdGg6IGxvd2VyLWJvdW5kKCR4bGFyZ2UtcmFuZ2UpO1xuICAgIH1cblxuICAgIG1ldGEuZm91bmRhdGlvbi1tcS14bGFyZ2Utb25seSB7XG4gICAgICBmb250LWZhbWlseTogXCIvXCIgKyB1bnF1b3RlKCR4bGFyZ2Utb25seSkgKyBcIi9cIjtcbiAgICAgIHdpZHRoOiBsb3dlci1ib3VuZCgkeGxhcmdlLXJhbmdlKTtcbiAgICB9XG5cbiAgICBtZXRhLmZvdW5kYXRpb24tbXEteHhsYXJnZSB7XG4gICAgICBmb250LWZhbWlseTogXCIvXCIgKyB1bnF1b3RlKCR4eGxhcmdlLXVwKSArIFwiL1wiO1xuICAgICAgd2lkdGg6IGxvd2VyLWJvdW5kKCR4eGxhcmdlLXJhbmdlKTtcbiAgICB9XG5cbiAgICBtZXRhLmZvdW5kYXRpb24tZGF0YS1hdHRyaWJ1dGUtbmFtZXNwYWNlIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAjeyRuYW1lc3BhY2V9O1xuICAgIH1cblxuICB9XG5cbiAgQGlmICRpbmNsdWRlLWh0bWwtZ2xvYmFsLWNsYXNzZXMge1xuXG4gICAgLy8gTXVzdCBiZSAxMDAlIGZvciBvZmYgY2FudmFzIHRvIHdvcmtcbiAgICBodG1sLCBib2R5IHsgaGVpZ2h0OiAxMDAlOyB9XG5cbiAgICAvLyBTZXQgYm94LXNpemluZyBnbG9iYWxseSB0byBoYW5kbGUgcGFkZGluZyBhbmQgYm9yZGVyIHdpZHRoc1xuICAgIGh0bWwge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB9XG4gICAgKixcbiAgICAqOmJlZm9yZSxcbiAgICAqOmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGJveC1zaXppbmcoaW5oZXJpdCk7XG4gICAgfVxuXG4gICAgaHRtbCxcbiAgICBib2R5IHsgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7IH1cblxuICAgIC8vIERlZmF1bHQgYm9keSBzdHlsZXNcbiAgICBib2R5IHtcbiAgICAgIGJhY2tncm91bmQ6ICRib2R5LWJnO1xuICAgICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4gICAgICBjdXJzb3I6ICRjdXJzb3ItYXV0by12YWx1ZTtcbiAgICAgIGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcbiAgICAgIGZvbnQtc3R5bGU6ICRib2R5LWZvbnQtc3R5bGU7XG4gICAgICBmb250LXdlaWdodDogJGJvZHktZm9udC13ZWlnaHQ7XG4gICAgICBsaW5lLWhlaWdodDogJGJhc2UtbGluZS1oZWlnaHQ7IC8vIFNldCB0byAkYmFzZS1saW5lLWhlaWdodCB0byB0YWtlIG9uIGJyb3dzZXIgZGVmYXVsdCBvZiAxNTAlXG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICBhOmhvdmVyIHsgY3Vyc29yOiAkY3Vyc29yLXBvaW50ZXItdmFsdWU7IH1cblxuICAgIC8vIEdyaWQgRGVmYXVsdHMgdG8gZ2V0IGltYWdlcyBhbmQgZW1iZWRzIHRvIHdvcmsgcHJvcGVybHlcbiAgICBpbWcgeyBtYXgtd2lkdGg6IDEwMCU7IGhlaWdodDogYXV0bzsgfVxuXG4gICAgaW1nIHsgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYzsgfVxuXG4gICAgI21hcF9jYW52YXMsXG4gICAgLm1hcF9jYW52YXMsXG4gICAgLm1xYS1kaXNwbGF5IHtcbiAgICAgIGltZyxcbiAgICAgIGVtYmVkLFxuICAgICAgb2JqZWN0IHsgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTWlzY2VsbGFuZW91cyB1c2VmdWwgSFRNTCBjbGFzc2VzXG4gICAgLmxlZnQgeyBmbG9hdDogbGVmdCAhaW1wb3J0YW50OyB9XG4gICAgLnJpZ2h0IHsgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cbiAgICAuY2xlYXJmaXggeyBAaW5jbHVkZSBjbGVhcmZpeDsgfVxuXG4gICAgLy8gSGlkZSB2aXN1YWxseSBhbmQgZnJvbSBzY3JlZW4gcmVhZGVyc1xuICAgIC5oaWRlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLy8gSGlkZSB2aXN1YWxseSBhbmQgZnJvbSBzY3JlZW4gcmVhZGVycywgYnV0IG1haW50YWluIGxheW91dFxuICAgIC5pbnZpc2libGUgeyB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuICAgIC8vIEZvbnQgc21vb3RoaW5nXG4gICAgLy8gQW50aWFsaWFzZWQgZm9udCBzbW9vdGhpbmcgd29ya3MgYmVzdCBmb3IgbGlnaHQgdGV4dCBvbiBhIGRhcmsgYmFja2dyb3VuZC5cbiAgICAvLyBBcHBseSB0byBzaW5nbGUgZWxlbWVudHMgaW5zdGVhZCBvZiBnbG9iYWxseSB0byBib2R5LlxuICAgIC8vIE5vdGUgdGhpcyBvbmx5IGFwcGxpZXMgdG8gd2Via2l0LWJhc2VkIGRlc2t0b3AgYnJvd3NlcnMgYW5kIEZpcmVmb3ggMjUgKGFuZCBsYXRlcikgb24gdGhlIE1hYy5cbiAgICAuYW50aWFsaWFzZWQgeyAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgfVxuXG4gICAgLy8gR2V0IHJpZCBvZiBnYXAgdW5kZXIgaW1hZ2VzIGJ5IG1ha2luZyB0aGVtIGRpc3BsYXk6IGlubGluZS1ibG9jazsgYnkgZGVmYXVsdFxuICAgIGltZyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgIC8vXG4gICAgLy8gR2xvYmFsIHJlc2V0cyBmb3IgZm9ybXNcbiAgICAvL1xuXG4gICAgLy8gTWFrZSBzdXJlIHRleHRhcmVhIHRha2VzIG9uIGhlaWdodCBhdXRvbWF0aWNhbGx5XG4gICAgdGV4dGFyZWEgeyBoZWlnaHQ6IGF1dG87IG1pbi1oZWlnaHQ6IDUwcHg7IH1cblxuICAgIC8vIE1ha2Ugc2VsZWN0IGVsZW1lbnRzIDEwMCUgd2lkdGggYnkgZGVmYXVsdFxuICAgIHNlbGVjdCB7IHdpZHRoOiAxMDAlOyB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgJ2dsb2JhbCc7XG5cbi8vXG4vLyBAdmFyaWFibGVzXG4vL1xuXG4kaW5jbHVkZS1odG1sLWFjY29yZGlvbi1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbiRhY2NvcmRpb24tbmF2aWdhdGlvbi1wYWRkaW5nOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG4kYWNjb3JkaW9uLW5hdmlnYXRpb24tYmctY29sb3I6ICRzaWx2ZXIgIWRlZmF1bHQ7XG4kYWNjb3JkaW9uLW5hdmlnYXRpb24taG92ZXItYmctY29sb3I6IHNjYWxlLWNvbG9yKCRhY2NvcmRpb24tbmF2aWdhdGlvbi1iZy1jb2xvciwgJGxpZ2h0bmVzczogLTUlKSAhZGVmYXVsdDtcbiRhY2NvcmRpb24tbmF2aWdhdGlvbi1hY3RpdmUtYmctY29sb3I6IHNjYWxlLWNvbG9yKCRhY2NvcmRpb24tbmF2aWdhdGlvbi1iZy1jb2xvciwgJGxpZ2h0bmVzczogLTMlKSAhZGVmYXVsdDtcbiRhY2NvcmRpb24tbmF2aWdhdGlvbi1mb250LWNvbG9yOiAkamV0ICFkZWZhdWx0O1xuJGFjY29yZGlvbi1uYXZpZ2F0aW9uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuJGFjY29yZGlvbi1uYXZpZ2F0aW9uLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcblxuJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmc6ICgkY29sdW1uLWd1dHRlci8yKSAhZGVmYXVsdDtcbiRhY2NvcmRpb24tY29udGVudC1hY3RpdmUtYmctY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuXG4vLyAgTWl4aW46IGFjY29yZGlvbi1jb250YWluZXIoKVxuLy8gIERlY3JpcHRpb246IFJlc3BvbnNpYmxlIGZvciB0aGUgY29udGFpbmVyIGNvbXBvbmVudCBvZiBhY2NvcmRpb25zLCBnZW5lcmF0aW5nIHN0eWxlcyByZWxhdGluZyB0byBhIG1hcmdpbiBvZiB6ZXJvIGFuZCBhIGNsZWFyZml4XG4vLyAgRXhwbGljaXQgRGVwZW5kZW5jaWVzOiBhIGNsZWFyZml4IG1peGluICppcyogZGVmaW5lZC5cbi8vICBJbXBsaWNpdCBEZXBlbmRlbmNpZXM6IE5vbmVcblxuQG1peGluIGFjY29yZGlvbi1jb250YWluZXIoKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4vLyAgTWl4aW46IGFjY29yZGlvbi1uYXZpZ2F0aW9uKCAkYmcsICRob3Zlci1iZywgJGFjdGl2ZS1iZywgJHBhZGRpbmcsICRhY3RpdmVfY2xhc3MsICAkZm9udC1jb2xvciwgJGZvbnQtc2l6ZSwgJGZvbnQtZmFtaWx5KSB7XG4vLyAgICBAcGFyYW1zICRiZy1jb2xvcjogWyBjb2xvciBvciBzdHJpbmcgXTogU3BlY2lmeSB0aGUgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIG5hdmlnYXRpb24gZWxlbWVudFxuLy8gICAgQHBhcmFtcyAkaG92ZXItYmctY29sb3IgWyBjb2xvciBvciBzdHJpbmcgXTogU3BlY2lmeSB0aGUgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIG5hdmlnYXRpb24gZWxlbWVudCB3aGVuIGhvdmVyZWRcbi8vICAgIEBwYXJhbXMgJGFjdGl2ZS1iZyBbIGNvbG9yIG9yIHN0cmluZyBdOiBTcGVjaWZ5IHRoZSBiYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgbmF2aWdhdGlvbiBlbGVtZW50IHdoZW4gY2xpY2tlZCBhbmQgbm90IHJlbGVhc2VkLlxuLy8gICAgQHBhcmFtcyAkYWN0aXZlX2NsYXNzIFsgc3RyaW5nIF06IFNwZWNpZnkgdGhlIGNsYXNzIG5hbWUgdXNlZCB0byBrZWVwIHRyYWNrIG9mIHdoaWNoIGFjY29yZGlvbiB0YWIgc2hvdWxkIGJlIHZpc2libGVcbi8vICAgIEBwYXJhbXMgJGZvbnQtY29sb3IgWyBjb2xvciBvciBzdHJpbmcgXTogQ29sb3Igb2YgdGhlIGZvbnQgZm9yIGFjY29yZGlvblxuLy8gICAgQHBhcmFtcyAkZm9udC1zaXplIFsgbnVtYmVyIF06IFNwZWNpZml5IHRoZSBmb250LXNpemUgb2YgdGhlIHRleHQgaW5zaWRlIHRoZSBuYXZpZ2F0aW9uIGVsZW1lbnRcbi8vICAgIEBwYXJhbXMgJGZvbnQtZmFtaWx5IFsgc3RyaW5nIF06IFNwZWNpZnkgdGhlIGZvbnQgZmFtaWx5IGZvciB0aGUgdGV4dCBvZiB0aGUgbmF2aWdhdGlvbiBvZiB0aGUgYWNjb3Jpb25cblxuQG1peGluIGFjY29yZGlvbi1uYXZpZ2F0aW9uKCAkYmc6ICRhY2NvcmRpb24tbmF2aWdhdGlvbi1iZy1jb2xvciwgJGhvdmVyLWJnOiAkYWNjb3JkaW9uLW5hdmlnYXRpb24taG92ZXItYmctY29sb3IsICRhY3RpdmUtYmc6ICRhY2NvcmRpb24tbmF2aWdhdGlvbi1hY3RpdmUtYmctY29sb3IsICRwYWRkaW5nOiAkYWNjb3JkaW9uLW5hdmlnYXRpb24tcGFkZGluZywgJGFjdGl2ZV9jbGFzczogJ2FjdGl2ZScsICAkZm9udC1jb2xvcjogJGFjY29yZGlvbi1uYXZpZ2F0aW9uLWZvbnQtY29sb3IsICRmb250LXNpemU6ICRhY2NvcmRpb24tbmF2aWdhdGlvbi1mb250LXNpemUsICRmb250LWZhbWlseTogJGFjY29yZGlvbi1uYXZpZ2F0aW9uLWZvbnQtZmFtaWx5ICkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICBAaWYgdHlwZS1vZigkYWN0aXZlX2NsYXNzKSAhPSBcInN0cmluZ1wiIHtcbiAgICBAd2FybiBcImAjeyRhY3RpdmVfY2xhc3N9YCBpc24ndCBhIHZhbGlkIHN0cmluZy4gQSB2YWxpZCBzdHJpbmcgaXMgbmVlZGVkIHRvIGNvcnJlY3RseSBiZSBpbnRlcnBvbGF0ZWQgYXMgYSBDU1MgY2xhc3MuIENTUyBjbGFzc2VzIGNhbm5vdCBzdGFydCB3aXRoIGEgbnVtYmVyIG9yIGNvbnNpc3Qgb2Ygb25seSBudW1iZXJzLiBDU1Mgd2lsbCBub3QgYmUgZ2VuZXJhdGVkIGZvciB0aGUgYWN0aXZlIHN0YXRlIG9mIHRoaXMgbmF2aWdhdGlvbiBjb21wb25lbnQuXCJcbiAgfVxuICBAZWxzZSB7XG4gICAgJi4jeyAkYWN0aXZlX2NsYXNzIH0gPiBhIHtcbiAgICAgIGJhY2tncm91bmQ6ICRhY3RpdmUtYmc7XG4gICAgfVxuICB9XG4gID4gYSB7XG4gICAgYmFja2dyb3VuZDogJGJnO1xuICAgIGNvbG9yOiAkZm9udC1jb2xvcjtcbiAgICBAaWYgdHlwZS1vZigkcGFkZGluZykgIT0gbnVtYmVyIHtcbiAgICAgIEB3YXJuIFwiYCN7JHBhZGRpbmd9YCB3YXMgcmVhZCBhcyAje3R5cGUtb2YoJHBhZGRpbmcpfVwiO1xuICAgICAgQGlmICRhY2NvcmRpb24tbmF2aWdhdGlvbi1wYWRkaW5nICE9IG51bGwge1xuICAgICAgICBAd2FybiBcIiN7JHBhZGRpbmd9IHdhcyByZWFkIGFzIGEgI3t0eXBlLW9mKCRwYWRkaW5nKX1cIjtcbiAgICAgICAgQHdhcm4gXCJgI3skcGFkZGluZ31gIGlzbid0IGEgdmFsaWQgbnVtYmVyLiAkYWNjb3JkaW9uLW5hdmlnYXRpb24tcGFkZGluZyAoI3skYWNjb3JkaW9uLW5hdmlnYXRpb24tcGFkZGluZ30pIHdpbGwgYmUgdXNlZCBpbnN0ZWFkLilcIjtcbiAgICAgICAgcGFkZGluZzogJGFjY29yZGlvbi1uYXZpZ2F0aW9uLXBhZGRpbmc7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEB3YXJuIFwiYCN7JHBhZGRpbmd9YCBpc24ndCBhIHZhbGlkIG51bWJlciBhbmQgJGFjY29yZGlvbi1uYXZpZ2F0aW9uLXBhZGRpbmcgaXMgbWlzc2luZy4gQSB2YWx1ZSBvZiBgbnVsbGAgaXMgcmV0dXJuZWQgdG8gbm90IG91dHB1dCBhbiBpbnZhbGlkIHZhbHVlIGZvciBwYWRkaW5nXCI7XG4gICAgICAgIHBhZGRpbmc6IG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgIH1cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICAgIEBpZiB0eXBlLW9mKCRmb250LXNpemUpICE9IG51bWJlciB7XG4gICAgICBAd2FybiBcImAjeyRmb250LXNpemV9YCB3YXMgcmVhZCBhcyBhICN7dHlwZS1vZigkZm9udC1zaXplKX1cIjtcbiAgICAgIEBpZiAkYWNjb3JkaW9uLW5hdmlnYXRpb24tZm9udC1zaXplICE9IG51bGwge1xuICAgICAgICBAd2FybiBcImAjeyRmb250LXNpemV9YCBpcyBub3QgYSB2YWxpZCBudW1iZXIuIFRoZSB2YWx1ZSBvZiAkYWNjb3JkaW9uLW5hdmlnYXRpb24tZm9udC1zaXplIHdpbGwgYmUgdXNlZCBpbnN0ZWFkICgjeyRhY2NvcmRpb24tbmF2aWdhdGlvbi1mb250LXNpemV9KS5cIjtcbiAgICAgICAgZm9udC1zaXplOiAkYWNjb3JkaW9uLW5hdmlnYXRpb24tZm9udC1zaXplO1xuICAgICAgfVxuICAgICAgQGVsc2V7XG4gICAgICAgIEB3YXJuIFwiYCN7JGZvbnQtc2l6ZX1gIGlzIG5vdCBhIHZhbGlkIG51bWJlciBhbmQgdGhlIGRlZmF1bHQgdmFsdWUgb2YgJGFjY29yZGlvbi1uYXZpZ2F0aW9uLWZvbnQtc2l6ZSBpcyBub3QgZGVmaW5lZC4gQSB2YWx1ZSBvZiBgbnVsbGAgd2lsbCBiZSByZXR1cm5lZCB0byBub3QgZ2VuZXJhdGUgYW4gaW52YWxpZCB2YWx1ZSBmb3IgZm9udC1zaXplLlwiO1xuICAgICAgICBmb250LXNpemU6IG51bGw7XG5cbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgIH1cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRob3Zlci1iZztcbiAgICB9XG4gIH1cbn1cblxuLy8gIE1peGluOiBhY2NvcmRpb24tY29udGVudCgkYmcsICRwYWRkaW5nLCAkYWN0aXZlLWNsYXNzKVxuLy8gICAgQHBhcmFtcyAkcGFkZGluZyBbIG51bWJlciBdOiBQYWRkaW5nIGZvciB0aGUgY29udGVudCBvZiB0aGUgY29udGFpbmVyXG4vLyAgICBAcGFyYW1zICRiZyBbIGNvbG9yICBdOiBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgY29udGVudCB3aGVuIGl0J3MgdmlzaWJsZVxuLy8gICAgQHBhcmFtcyAkYWN0aXZlX2NsYXNzIFsgc3RyaW5nIF06IENsYXNzIG5hbWUgdXNlZCB0byBrZWVwIHRyYWNrIG9mIHdoaWNoIGFjY29yZGlvbiB0YWIgc2hvdWxkIGJlIHZpc2libGUuXG5cbkBtaXhpbiBhY2NvcmRpb24tY29udGVudCgkYmc6ICRhY2NvcmRpb24tY29udGVudC1hY3RpdmUtYmctY29sb3IsICRwYWRkaW5nOiAkYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZywgJGFjdGl2ZV9jbGFzczogJ2FjdGl2ZScpIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgQGlmIHR5cGUtb2YoJHBhZGRpbmcpICE9IFwibnVtYmVyXCIge1xuICAgIEB3YXJuIFwiI3skcGFkZGluZ30gd2FzIHJlYWQgYXMgYSAje3R5cGUtb2YoJHBhZGRpbmcpfVwiO1xuICAgIEBpZiAkYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZyAhPSBudWxsIHtcbiAgICAgIEB3YXJuIFwiYCN7JHBhZGRpbmd9YCBpc24ndCBhIHZhbGlkIG51bWJlci4gJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmcgdXNlZCBpbnN0ZWFkXCI7XG4gICAgICBwYWRkaW5nOiAkYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZztcbiAgICB9IEBlbHNlIHtcbiAgICAgIEB3YXJuIFwiYCN7JHBhZGRpbmd9YCBpc24ndCBhIHZhbGlkIG51bWJlciBhbmQgdGhlIGRlZmF1bHQgdmFsdWUgb2YgJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmcgaXMgbm90IGRlZmluZWQuIEEgdmFsdWUgb2YgYG51bGxgIGlzIHJldHVybmVkIHRvIG5vdCBvdXRwdXQgYW4gaW52YWxpZCB2YWx1ZSBmb3IgcGFkZGluZy5cIjtcbiAgICAgIHBhZGRpbmc6IG51bGw7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBwYWRkaW5nOiAkcGFkZGluZztcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRhY3RpdmVfY2xhc3MpICE9IFwic3RyaW5nXCIge1xuICAgIEB3YXJuIFwiYCN7JGFjdGl2ZV9jbGFzc31gIGlzbid0IGEgdmFsaWQgc3RyaW5nLiBBIHZhbGlkIHN0cmluZyBpcyBuZWVkZWQgdG8gY29ycmVjdGx5IGJlIGludGVycG9sYXRlZCBhcyBhIENTUyBjbGFzcy4gQ1NTIGNsYXNzZXMgY2Fubm90IHN0YXJ0IHdpdGggYSBudW1iZXIgb3IgY29uc2lzdCBvZiBvbmx5IG51bWJlcnMuIENTUyB3aWxsIG5vdCBiZSBnZW5lcmF0ZWQgZm9yIHRoZSBhY3RpdmUgc3RhdGUgb2YgdGhlIGNvbnRlbnQuIFwiXG4gIH1cbiAgQGVsc2Uge1xuICAgICYuI3skYWN0aXZlX2NsYXNzfSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcImFjY29yZGlvblwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLWFjY29yZGlvbi1jbGFzc2VzIHtcbiAgICAuYWNjb3JkaW9uIHtcbiAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIC5hY2NvcmRpb24tbmF2aWdhdGlvbiwgZGQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgICAgICAmLmFjdGl2ZSA+IGEgeyBiYWNrZ3JvdW5kOiAkYWNjb3JkaW9uLW5hdmlnYXRpb24tYWN0aXZlLWJnLWNvbG9yOyB9XG4gICAgICAgID4gYSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJGFjY29yZGlvbi1uYXZpZ2F0aW9uLWJnLWNvbG9yO1xuICAgICAgICAgIGNvbG9yOiAkYWNjb3JkaW9uLW5hdmlnYXRpb24tZm9udC1jb2xvcjtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBmb250LWZhbWlseTogJGFjY29yZGlvbi1uYXZpZ2F0aW9uLWZvbnQtZmFtaWx5O1xuICAgICAgICAgIGZvbnQtc2l6ZTogJGFjY29yZGlvbi1uYXZpZ2F0aW9uLWZvbnQtc2l6ZTtcbiAgICAgICAgICBwYWRkaW5nOiAkYWNjb3JkaW9uLW5hdmlnYXRpb24tcGFkZGluZztcbiAgICAgICAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogJGFjY29yZGlvbi1uYXZpZ2F0aW9uLWhvdmVyLWJnLWNvbG9yOyB9XG4gICAgICAgIH1cblxuICAgICAgICA+IC5jb250ZW50IHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIHBhZGRpbmc6ICRhY2NvcmRpb24tY29udGVudC1wYWRkaW5nO1xuICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRhY2NvcmRpb24tY29udGVudC1hY3RpdmUtYmctY29sb3I7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgJ2dsb2JhbCc7XG5cbi8vXG4vLyBCbG9jayBHcmlkIFZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtYmxvY2stZ3JpZC1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG4kaW5jbHVkZS14bC1odG1sLWJsb2NrLWdyaWQtY2xhc3NlczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgdGhlIG1heGltdW0gbnVtYmVyIG9mIGJsb2NrIGdyaWQgZWxlbWVudHMgcGVyIHJvd1xuJGJsb2NrLWdyaWQtZWxlbWVudHM6IDEyICFkZWZhdWx0O1xuJGJsb2NrLWdyaWQtZGVmYXVsdC1zcGFjaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cbiRhbGlnbi1ibG9jay1ncmlkLXRvLWdyaWQ6IGZhbHNlICFkZWZhdWx0O1xuQGlmICRhbGlnbi1ibG9jay1ncmlkLXRvLWdyaWQge1xuICAkYmxvY2stZ3JpZC1kZWZhdWx0LXNwYWNpbmc6ICRjb2x1bW4tZ3V0dGVyO1xufVxuXG4vLyBFbmFibGVzIG1lZGlhIHF1ZXJpZXMgZm9yIGJsb2NrLWdyaWQgY2xhc3Nlcy4gU2V0IHRvIGZhbHNlIGlmIHdyaXRpbmcgc2VtYW50aWMgSFRNTC5cbiRibG9jay1ncmlkLW1lZGlhLXF1ZXJpZXM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vXG4vLyBCbG9jayBHcmlkIE1peGluc1xuLy9cblxuLy8gQ3JlYXRlIGEgY3VzdG9tIGJsb2NrIGdyaWRcbi8vXG4vLyAkcGVyLXJvdyAtICMgb2YgaXRlbXMgdG8gZGlzcGxheSBwZXIgcm93LiBEZWZhdWx0OiBmYWxzZS5cbi8vICRzcGFjaW5nIC0gIyBvZiBlbXMgdG8gdXNlIGFzIHBhZGRpbmcgb24gZWFjaCBibG9jayBpdGVtLiBEZWZhdWx0OiByZW0tY2FsYygyMCkuXG4vLyAkaW5jbHVkZS1zcGFjaW5nIC0gQWRkcyBwYWRkaW5nIHRvIG91ciBsaXN0IGl0ZW0uIERlZmF1bHQ6IHRydWUuXG4vLyAkYmFzZS1zdHlsZSAtIEFwcGx5IGEgYmFzZSBzdHlsZSB0byBibG9jayBncmlkLiBEZWZhdWx0OiB0cnVlLlxuQG1peGluIGJsb2NrLWdyaWQoXG4gICRwZXItcm93OmZhbHNlLFxuICAkc3BhY2luZzokYmxvY2stZ3JpZC1kZWZhdWx0LXNwYWNpbmcsXG4gICRpbmNsdWRlLXNwYWNpbmc6dHJ1ZSxcbiAgJGJhc2Utc3R5bGU6dHJ1ZSkge1xuXG4gIEBpZiAkYmFzZS1zdHlsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMDtcbiAgICBAaWYgJGFsaWduLWJsb2NrLWdyaWQtdG8tZ3JpZCB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfSBAZWxzZSB7XG4gICAgICBtYXJnaW46IDAgKC0kc3BhY2luZy8yKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgICA+IGxpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgQGlmICRpbmNsdWRlLXNwYWNpbmcge1xuICAgICAgICBwYWRkaW5nOiAwICgkc3BhY2luZy8yKSAkc3BhY2luZztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJHBlci1yb3cge1xuICAgID4gbGkge1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIEBpZiAkaW5jbHVkZS1zcGFjaW5nIHtcbiAgICAgICAgcGFkZGluZzogMCAoJHNwYWNpbmcvMikgJHNwYWNpbmc7XG4gICAgICB9XG4gICAgICB3aWR0aDogMTAwJS8kcGVyLXJvdztcblxuICAgICAgJjpudGgtb2YtdHlwZSgxbikgeyBjbGVhcjogbm9uZTsgfVxuICAgICAgJjpudGgtb2YtdHlwZSgjeyRwZXItcm93fW4rMSkgeyBjbGVhcjogYm90aDsgfVxuICAgICAgQGlmICRhbGlnbi1ibG9jay1ncmlkLXRvLWdyaWQge1xuICAgICAgICBAaW5jbHVkZSBibG9jay1ncmlkLWFsaWduZWQoJHBlci1yb3csICRzcGFjaW5nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGJsb2NrLWdyaWQtYWxpZ25lZCgkcGVyLXJvdywgJHNwYWNpbmcpIHtcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkYmxvY2stZ3JpZC1lbGVtZW50cyB7XG4gICAgQGlmICRwZXItcm93ID49ICRpIHtcbiAgICAgICRncmlkLWNvbHVtbjogJysnICsgJGk7XG4gICAgICBAaWYgJHBlci1yb3cgPT0gJGkge1xuICAgICAgICAkZ3JpZC1jb2x1bW46ICcnO1xuICAgICAgfVxuICAgICAgJjpudGgtb2YtdHlwZSgjeyRwZXItcm93fW4je3VucXVvdGUoJGdyaWQtY29sdW1uKX0pIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAoJHNwYWNpbmcgLSAoKCRzcGFjaW5nIC8gJHBlci1yb3cpICogKCRwZXItcm93IC0gKCRpIC0gMSkpKSk7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICgkc3BhY2luZyAtICgoJHNwYWNpbmcgLyAkcGVyLXJvdykgKiAkaSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBHZW5lcmF0ZSBwcmVzZW50YXRpb25hbCBtYXJrdXAgZm9yIGJsb2NrIGdyaWQuXG4vL1xuLy8gJHNpemUgLSBOYW1lIG9mIGNsYXNzIHRvIHVzZSwgaS5lLiBcImxhcmdlXCIgd2lsbCBnZW5lcmF0ZSAubGFyZ2UtYmxvY2stZ3JpZC0xLCAubGFyZ2UtYmxvY2stZ3JpZC0yLCBldGMuXG5AbWl4aW4gYmxvY2stZ3JpZC1odG1sLWNsYXNzZXMoJHNpemUsICRpbmNsdWRlLXNwYWNpbmcpIHtcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkYmxvY2stZ3JpZC1lbGVtZW50cyB7XG4gICAgLiN7JHNpemV9LWJsb2NrLWdyaWQtI3soJGkpfSB7XG4gICAgICBAaW5jbHVkZSBibG9jay1ncmlkKCRpLCAkYmxvY2stZ3JpZC1kZWZhdWx0LXNwYWNpbmcsICRpbmNsdWRlLXNwYWNpbmcsIGZhbHNlKTtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcImJsb2NrLWdyaWRcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1ibG9jay1ncmlkLWNsYXNzZXMge1xuXG4gICAgW2NsYXNzKj1cImJsb2NrLWdyaWQtXCJdIHsgQGluY2x1ZGUgYmxvY2stZ3JpZDsgfVxuXG4gICAgQGlmICRibG9jay1ncmlkLW1lZGlhLXF1ZXJpZXMge1xuICAgICAgQG1lZGlhICN7JHNtYWxsLXVwfSB7XG4gICAgICAgIEBpbmNsdWRlIGJsb2NrLWdyaWQtaHRtbC1jbGFzc2VzKCRzaXplOnNtYWxsLCAkaW5jbHVkZS1zcGFjaW5nOmZhbHNlKTtcbiAgICAgIH1cblxuICAgICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICBAaW5jbHVkZSBibG9jay1ncmlkLWh0bWwtY2xhc3Nlcygkc2l6ZTptZWRpdW0sICRpbmNsdWRlLXNwYWNpbmc6ZmFsc2UpO1xuICAgICAgfVxuXG4gICAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgICAgQGluY2x1ZGUgYmxvY2stZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6bGFyZ2UsICRpbmNsdWRlLXNwYWNpbmc6ZmFsc2UpO1xuICAgICAgfVxuXG4gICAgICBAaWYgJGluY2x1ZGUteGwtaHRtbC1ibG9jay1ncmlkLWNsYXNzZXMge1xuICAgICAgICBAbWVkaWEgI3skeGxhcmdlLXVwfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYmxvY2stZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6eGxhcmdlLCAkaW5jbHVkZS1zcGFjaW5nOmZhbHNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAjeyR4eGxhcmdlLXVwfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYmxvY2stZ3JpZC1odG1sLWNsYXNzZXMoJHNpemU6eHhsYXJnZSwgJGluY2x1ZGUtc3BhY2luZzpmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgJ2dsb2JhbCc7XG5cbi8vXG4vLyBCcmVhZGNydW1iIFZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtbmF2LWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gc2V0IHRoZSBiYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgYnJlYWRjcnVtYiBjb250YWluZXIuXG4kY3J1bWItYmc6IHNjYWxlLWNvbG9yKCRzZWNvbmRhcnktY29sb3IsICRsaWdodG5lc3M6IDU1JSkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzZXQgdGhlIHBhZGRpbmcgYXJvdW5kIHRoZSBicmVhZGNydW1icy5cbiRjcnVtYi1wYWRkaW5nOiByZW0tY2FsYyg5IDE0IDkpICFkZWZhdWx0O1xuJGNydW1iLXNpZGUtcGFkZGluZzogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBib3JkZXIgc3R5bGVzLlxuJGNydW1iLWZ1bmN0aW9uLWZhY3RvcjogLTEwJSAhZGVmYXVsdDtcbiRjcnVtYi1ib3JkZXItc2l6ZTogMXB4ICFkZWZhdWx0O1xuJGNydW1iLWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kY3J1bWItYm9yZGVyLWNvbG9yOiBzY2FsZS1jb2xvcigkY3J1bWItYmcsICRsaWdodG5lc3M6ICRjcnVtYi1mdW5jdGlvbi1mYWN0b3IpICFkZWZhdWx0O1xuJGNydW1iLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzZXQgdmFyaW91cyB0ZXh0IHN0eWxlcyBmb3IgYnJlYWRjcnVtYnMuXG4kY3J1bWItZm9udC1zaXplOiByZW0tY2FsYygxMSkgIWRlZmF1bHQ7XG4kY3J1bWItZm9udC1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG4kY3J1bWItZm9udC1jb2xvci1jdXJyZW50OiAkb2lsICFkZWZhdWx0O1xuJGNydW1iLWZvbnQtY29sb3ItdW5hdmFpbGFibGU6ICRhbHVtaW51bSAhZGVmYXVsdDtcbiRjcnVtYi1mb250LXRyYW5zZm9ybTogdXBwZXJjYXNlICFkZWZhdWx0O1xuJGNydW1iLWxpbmstZGVjb3I6IHVuZGVybGluZSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGhlIHNsYXNoIGJldHdlZW4gYnJlYWRjcnVtYnNcbiRjcnVtYi1zbGFzaC1jb2xvcjogJGJhc2UgIWRlZmF1bHQ7XG4kY3J1bWItc2xhc2g6IFwiL1wiICFkZWZhdWx0O1xuXG4vL1xuLy8gQnJlYWRjcnVtYiBNaXhpbnNcbi8vXG5cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBhIGNvbnRhaW5lciBhcm91bmQgb3VyIGJyZWFkY3J1bWJzXG5AbWl4aW4gY3J1bWItY29udGFpbmVyIHtcbiAgYm9yZGVyLXN0eWxlOiAkY3J1bWItYm9yZGVyLXN0eWxlO1xuICBib3JkZXItd2lkdGg6ICRjcnVtYi1ib3JkZXItc2l6ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogJGNydW1iLXBhZGRpbmc7XG5cbiAgLy8gV2UgY29udHJvbCB3aGljaCBiYWNrZ3JvdW5kIGNvbG9yIGFuZCBib3JkZXIgY29tZSB0aHJvdWdoLlxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY3J1bWItYmc7XG4gIGJvcmRlci1jb2xvcjogJGNydW1iLWJvcmRlci1jb2xvcjtcbn1cblxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIGJyZWFkY3J1bWIgc3R5bGVzIGZyb20gbGlzdCBpdGVtcy5cbkBtaXhpbiBjcnVtYnMge1xuXG4gIC8vIEEgbm9ybWFsIHN0YXRlIHdpbGwgbWFrZSB0aGUgbGlua3MgbG9vayBhbmQgYWN0IGxpa2UgY2xpY2thYmxlIGJyZWFkY3J1bWJzLlxuICBjb2xvcjogJGNydW1iLWZvbnQtY29sb3I7XG4gIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgZm9udC1zaXplOiAkY3J1bWItZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogJGNydW1iLWZvbnQtc2l6ZTtcbiAgbWFyZ2luOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogJGNydW1iLWZvbnQtdHJhbnNmb3JtO1xuXG4gICY6aG92ZXIgYSwgJjpmb2N1cyBhIHsgdGV4dC1kZWNvcmF0aW9uOiAkY3J1bWItbGluay1kZWNvcjsgfVxuXG4gIGEge1xuICAgIGNvbG9yOiAkY3J1bWItZm9udC1jb2xvcjtcbiAgfVxuXG4gIC8vIEN1cnJlbnQgaXMgZm9yIHRoZSBsaW5rIG9mIHRoZSBjdXJyZW50IHBhZ2VcbiAgJi5jdXJyZW50IHtcbiAgICBjb2xvcjogJGNydW1iLWZvbnQtY29sb3ItY3VycmVudDtcbiAgICBjdXJzb3I6ICRjdXJzb3ItZGVmYXVsdC12YWx1ZTtcbiAgICBhIHtcbiAgICAgIGNvbG9yOiAkY3J1bWItZm9udC1jb2xvci1jdXJyZW50O1xuICAgICAgY3Vyc29yOiAkY3Vyc29yLWRlZmF1bHQtdmFsdWU7XG4gICAgfVxuXG4gICAgJjpob3ZlciwgJjpob3ZlciBhLFxuICAgICY6Zm9jdXMsICY6Zm9jdXMgYSB7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICB9XG5cbiAgLy8gVW5hdmFpbGFibGUgcmVtb3ZlZCBjb2xvciBhbmQgbGluayBzdHlsZXMgc28gaXQgbG9va3MgaW5hY3RpdmUuXG4gICYudW5hdmFpbGFibGUge1xuICAgIGNvbG9yOiAkY3J1bWItZm9udC1jb2xvci11bmF2YWlsYWJsZTtcbiAgICBhIHsgY29sb3I6ICRjcnVtYi1mb250LWNvbG9yLXVuYXZhaWxhYmxlOyB9XG5cbiAgICAmOmhvdmVyLFxuICAgICY6aG92ZXIgYSxcbiAgICAmOmZvY3VzLFxuICAgIGE6Zm9jdXMge1xuICAgICAgY29sb3I6ICRjcnVtYi1mb250LWNvbG9yLXVuYXZhaWxhYmxlO1xuICAgICAgY3Vyc29yOiAkY3Vyc29yLWRpc2FibGVkLXZhbHVlO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICY6YmVmb3JlIHtcbiAgICBjb2xvcjogJGNydW1iLXNsYXNoLWNvbG9yO1xuICAgIGNvbnRlbnQ6IFwiI3skY3J1bWItc2xhc2h9XCI7XG4gICAgbWFyZ2luOiAwICRjcnVtYi1zaWRlLXBhZGRpbmc7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5cbiAgJjpmaXJzdC1jaGlsZDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuXG5AaW5jbHVkZSBleHBvcnRzKFwiYnJlYWRjcnVtYnNcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1uYXYtY2xhc3NlcyB7XG4gICAgLmJyZWFkY3J1bWJzIHtcbiAgICAgIEBpbmNsdWRlIGNydW1iLWNvbnRhaW5lcjtcbiAgICAgIEBpbmNsdWRlIHJhZGl1cygkY3J1bWItcmFkaXVzKTtcblxuICAgICAgPiAqIHtcbiAgICAgICAgQGluY2x1ZGUgY3J1bWJzO1xuICAgICAgfVxuICAgIH1cbiAgICAvKiBBY2Nlc3NpYmlsaXR5IC0gaGlkZXMgdGhlIGZvcndhcmQgc2xhc2ggKi9cbiAgICBbYXJpYS1sYWJlbD1cImJyZWFkY3J1bWJzXCJdIFthcmlhLWhpZGRlbj1cInRydWVcIl06YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIvXCI7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0ICdnbG9iYWwnO1xuQGltcG9ydCAnYnV0dG9ucyc7XG5cbi8vXG4vLyBCdXR0b24gR3JvdXAgVmFyaWFibGVzXG4vL1xuJGluY2x1ZGUtaHRtbC1idXR0b24tY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBTZXRzIHRoZSBtYXJnaW4gZm9yIHRoZSByaWdodCBzaWRlIGJ5IGRlZmF1bHQsIGFuZCB0aGUgbGVmdCBtYXJnaW4gaWYgcmlnaHQtdG8tbGVmdCBkaXJlY3Rpb24gaXMgdXNlZFxuJGJ1dHRvbi1iYXItbWFyZ2luLW9wcG9zaXRlOiByZW0tY2FsYygxMCkgIWRlZmF1bHQ7XG4kYnV0dG9uLWdyb3VwLWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuXG4vL1xuLy8gQnV0dG9uIEdyb3VwIE1peGluc1xuLy9cblxuLy8gV2UgdXNlIHRoaXMgdG8gYWRkIHN0eWxlcyBmb3IgYSBidXR0b24gZ3JvdXAgY29udGFpbmVyXG5AbWl4aW4gYnV0dG9uLWdyb3VwLWNvbnRhaW5lcigkc3R5bGVzOnRydWUsICRmbG9hdDpmYWxzZSkge1xuICBAaWYgJHN0eWxlcyB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcbiAgfVxuICBAaWYgJGZsb2F0IHtcbiAgICBmbG9hdDogI3skZGVmYXVsdC1mbG9hdH07XG4gICAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICRidXR0b24tYmFyLW1hcmdpbi1vcHBvc2l0ZTtcbiAgICAmIGRpdiB7IG92ZXJmbG93OiBoaWRkZW47IH1cbiAgfVxufVxuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHN0eWxlcyBmb3IgYnV0dG9uIGdyb3Vwc1xuQG1peGluIGJ1dHRvbi1ncm91cC1zdHlsZSgkcmFkaXVzOmZhbHNlLCAkZXZlbjpmYWxzZSwgJGZsb2F0OmZhbHNlLCAkb3JpZW50YXRpb246aG9yaXpvbnRhbCkge1xuXG4gID4gYnV0dG9uLCAuYnV0dG9uIHtcbiAgICBib3JkZXItI3skZGVmYXVsdC1mbG9hdH06ICRidXR0b24tZ3JvdXAtYm9yZGVyLXdpZHRoIHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAuNSk7XG4gIH1cblxuICAmOmZpcnN0LWNoaWxkIHtcbiAgICBidXR0b24sIC5idXR0b24ge1xuICAgICAgYm9yZGVyLSN7JGRlZmF1bHQtZmxvYXR9OiAwO1xuICAgIH1cbiAgfVxuXG4gICRidXR0b24tZ3JvdXAtZGlzcGxheTogbGlzdC1pdGVtO1xuICAkYnV0dG9uLWdyb3VwLW1hcmdpbjogMDtcblxuICAvLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHRoZSBmbG93LCBvciByZW1vdmUgdGhvc2Ugc3R5bGVzIGNvbXBsZXRlbHkuXG4gIEBpZiAkZmxvYXQge1xuICAgICRidXR0b24tZ3JvdXAtZGlzcGxheTogbGlzdC1pdGVtO1xuICAgICRidXR0b24tZ3JvdXAtbWFyZ2luOiAwO1xuICAgIGZsb2F0OiAkZmxvYXQ7XG4gICAgLy8gTWFrZSBzdXJlIHRoZSBmaXJzdCBjaGlsZCBkb2Vzbid0IGdldCB0aGUgbmVnYXRpdmUgbWFyZ2luLlxuICAgICY6Zmlyc3QtY2hpbGQgeyBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IDA7IH1cbiAgfVxuICBAZWxzZSB7XG4gICAgJGJ1dHRvbi1ncm91cC1kaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgJGJ1dHRvbi1ncm91cC1tYXJnaW46IDAgLTJweDtcbiAgfVxuXG4gIEBpZiAkb3JpZW50YXRpb24gPT0gdmVydGljYWwge1xuICAgICRidXR0b24tZ3JvdXAtZGlzcGxheTogYmxvY2s7XG4gICAgJGJ1dHRvbi1ncm91cC1tYXJnaW46IDA7XG4gICAgPiBidXR0b24sIC5idXR0b24ge1xuICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIC41KTtcbiAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgICAgYm9yZGVyLXRvcDogJGJ1dHRvbi1ncm91cC1ib3JkZXItd2lkdGggc29saWQ7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbjowO1xuICAgIH1cbiAgICA+IGJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgYnV0dG9uLCAuYnV0dG9uIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBkaXNwbGF5OiAkYnV0dG9uLWdyb3VwLWRpc3BsYXk7XG4gIG1hcmdpbjogJGJ1dHRvbi1ncm91cC1tYXJnaW47XG5cblxuICAvLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBsZWZ0IGFuZCByaWdodCByYWRpdXMgb24gZmlyc3QvbGFzdCBidXR0b25zIGluIHRoZSBncm91cC5cbiAgQGlmICRyYWRpdXMgPT0gdHJ1ZSB7XG4gICAgJixcbiAgICA+IGEsXG4gICAgPiBidXR0b24sXG4gICAgPiAuYnV0dG9uIHsgQGluY2x1ZGUgcmFkaXVzKDApOyB9XG4gICAgJjpmaXJzdC1jaGlsZCxcbiAgICAmOmZpcnN0LWNoaWxkID4gYSxcbiAgICAmOmZpcnN0LWNoaWxkID4gYnV0dG9uLFxuICAgICY6Zmlyc3QtY2hpbGQgPiAuYnV0dG9uIHtcbiAgICAgIEBpZiAkb3JpZW50YXRpb24gPT0gdmVydGljYWwge1xuICAgICAgICBAaW5jbHVkZSBzaWRlLXJhZGl1cyh0b3AsICRidXR0b24tcmFkaXVzKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJGRlZmF1bHQtZmxvYXQsICRidXR0b24tcmFkaXVzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkLFxuICAgICY6bGFzdC1jaGlsZCA+IGEsXG4gICAgJjpsYXN0LWNoaWxkID4gYnV0dG9uLFxuICAgICY6bGFzdC1jaGlsZCA+IC5idXR0b24ge1xuICAgICAgQGlmICRvcmllbnRhdGlvbiA9PSB2ZXJ0aWNhbCB7XG4gICAgICAgIEBpbmNsdWRlIHNpZGUtcmFkaXVzKGJvdHRvbSwgJGJ1dHRvbi1yYWRpdXMpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAkYnV0dG9uLXJhZGl1cyk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRyYWRpdXMge1xuICAgICYsXG4gICAgPiBhLFxuICAgID4gYnV0dG9uLFxuICAgID4gLmJ1dHRvbiB7IEBpbmNsdWRlIHJhZGl1cygwKTsgfVxuICAgICY6Zmlyc3QtY2hpbGQsXG4gICAgJjpmaXJzdC1jaGlsZCA+IGEsXG4gICAgJjpmaXJzdC1jaGlsZCA+IGJ1dHRvbixcbiAgICAmOmZpcnN0LWNoaWxkID4gLmJ1dHRvbiB7XG4gICAgICBAaWYgJG9yaWVudGF0aW9uID09IHZlcnRpY2FsIHtcbiAgICAgICAgQGluY2x1ZGUgc2lkZS1yYWRpdXModG9wLCAkcmFkaXVzKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJGRlZmF1bHQtZmxvYXQsICRyYWRpdXMpO1xuICAgICAgfVxuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQsXG4gICAgJjpsYXN0LWNoaWxkID4gYSxcbiAgICAmOmxhc3QtY2hpbGQgPiBidXR0b24sXG4gICAgJjpsYXN0LWNoaWxkID4gLmJ1dHRvbiB7XG4gICAgICBAaWYgJG9yaWVudGF0aW9uID09IHZlcnRpY2FsIHtcbiAgICAgICAgQGluY2x1ZGUgc2lkZS1yYWRpdXMoYm90dG9tLCAkcmFkaXVzKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJG9wcG9zaXRlLWRpcmVjdGlvbiwgJHJhZGl1cyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gV2UgdXNlIHRoaXMgdG8gbWFrZSB0aGUgYnV0dG9ucyBldmVuIHdpZHRoIGFjcm9zcyB0aGVpciBjb250YWluZXJcbiAgQGlmICRldmVuIHtcbiAgICB3aWR0aDogcGVyY2VudGFnZSgoMTAwLyRldmVuKSAvIDEwMCk7XG4gICAgYnV0dG9uLCAuYnV0dG9uIHsgd2lkdGg6IDEwMCU7IH1cbiAgfVxufVxuXG5AaW5jbHVkZSBleHBvcnRzKFwiYnV0dG9uLWdyb3VwXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtYnV0dG9uLWNsYXNzZXMge1xuICAgIC5idXR0b24tZ3JvdXAgeyBAaW5jbHVkZSBidXR0b24tZ3JvdXAtY29udGFpbmVyO1xuXG4gICAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoIDgge1xuICAgICAgICAmLmV2ZW4tI3skaX0gbGkgeyBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc3R5bGUoJGV2ZW46JGksICRmbG9hdDpudWxsKTsgfVxuICAgICAgfVxuXG4gICAgICA+IGxpIHsgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXN0eWxlKCk7IH1cblxuICAgICAgJi5zdGFjayB7XG4gICAgICAgID4gbGkgeyBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc3R5bGUoJG9yaWVudGF0aW9uOnZlcnRpY2FsKTsgZmxvYXQ6IG5vbmU7IH1cbiAgICAgIH1cblxuICAgICAgJi5zdGFjay1mb3Itc21hbGwge1xuICAgICAgICA+IGxpIHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc3R5bGUoJG9yaWVudGF0aW9uOmhvcml6b250YWwpO1xuICAgICAgICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc3R5bGUoJG9yaWVudGF0aW9uOnZlcnRpY2FsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5yYWRpdXMgPiAqIHsgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXN0eWxlKCRyYWRpdXM6JGJ1dHRvbi1yYWRpdXMsICRmbG9hdDpudWxsKTsgfVxuICAgICAgJi5yYWRpdXMuc3RhY2sgPiAqIHsgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXN0eWxlKCRyYWRpdXM6JGJ1dHRvbi1yYWRpdXMsICRmbG9hdDpudWxsLCAkb3JpZW50YXRpb246dmVydGljYWwpOyB9XG4gICAgICAmLnJhZGl1cy5zdGFjay1mb3Itc21hbGwgPiAqIHtcbiAgICAgICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1zdHlsZSgkcmFkaXVzOiRidXR0b24tcmFkaXVzLCAkb3JpZW50YXRpb246aG9yaXpvbnRhbCk7XG4gICAgICAgIH1cbiAgICAgICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc3R5bGUoJHJhZGl1czokYnV0dG9uLXJhZGl1cywgJG9yaWVudGF0aW9uOnZlcnRpY2FsKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLnJvdW5kID4gKiB7IEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1zdHlsZSgkcmFkaXVzOiRidXR0b24tcm91bmQsICRmbG9hdDpudWxsKTsgfVxuICAgICAgJi5yb3VuZC5zdGFjayA+ICogeyBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc3R5bGUoJHJhZGl1czokYnV0dG9uLW1lZCwgJGZsb2F0Om51bGwsICRvcmllbnRhdGlvbjp2ZXJ0aWNhbCk7IH1cbiAgICAgICYucm91bmQuc3RhY2stZm9yLXNtYWxsID4gKiB7XG4gICAgICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc3R5bGUoJHJhZGl1czokYnV0dG9uLXJvdW5kLCAkb3JpZW50YXRpb246aG9yaXpvbnRhbCk7XG4gICAgICAgIH1cbiAgICAgICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtc3R5bGUoJHJhZGl1czokYnV0dG9uLW1lZCwgJG9yaWVudGF0aW9uOnZlcnRpY2FsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5idXR0b24tYmFyIHtcbiAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgLmJ1dHRvbi1ncm91cCB7IEBpbmNsdWRlIGJ1dHRvbi1ncm91cC1jb250YWluZXIoJHN0eWxlczpmYWxzZSwgJGZsb2F0OnRydWUpOyB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0ICdnbG9iYWwnO1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtYnV0dG9uLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGJ1aWxkIHBhZGRpbmcgZm9yIGJ1dHRvbnMuXG4kYnV0dG9uLXRueTogcmVtLWNhbGMoMTApICFkZWZhdWx0O1xuJGJ1dHRvbi1zbWw6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiRidXR0b24tbWVkOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG4kYnV0dG9uLWxyZzogcmVtLWNhbGMoMTgpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHRoZSBkaXNwbGF5IHByb3BlcnR5LlxuJGJ1dHRvbi1kaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWRlZmF1bHQ7XG4kYnV0dG9uLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgYnV0dG9uIHRleHQgc3R5bGVzLlxuJGJ1dHRvbi1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiRidXR0b24tZm9udC1jb2xvci1hbHQ6ICRvaWwgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtdG55OiByZW0tY2FsYygxMSkgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtc21sOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtbWVkOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtbHJnOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGJ1dHRvbi1mb250LWFsaWduOiBjZW50ZXIgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHZhcmlvdXMgaG92ZXIgZWZmZWN0cy5cbiRidXR0b24tZnVuY3Rpb24tZmFjdG9yOiAtMjAlICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBidXR0b24gYm9yZGVyIHN0eWxlcy5cbiRidXR0b24tYm9yZGVyLXdpZHRoOiAwICFkZWZhdWx0O1xuJGJ1dHRvbi1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJGJ1dHRvbi1iZy1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG4kYnV0dG9uLWJnLWhvdmVyOiBzY2FsZS1jb2xvcigkYnV0dG9uLWJnLWNvbG9yLCAkbGlnaHRuZXNzOiAkYnV0dG9uLWZ1bmN0aW9uLWZhY3RvcikgIWRlZmF1bHQ7XG4kYnV0dG9uLWJvcmRlci1jb2xvcjogJGJ1dHRvbi1iZy1ob3ZlciAhZGVmYXVsdDtcbiRzZWNvbmRhcnktYnV0dG9uLWJnLWhvdmVyOiBzY2FsZS1jb2xvcigkc2Vjb25kYXJ5LWNvbG9yLCAkbGlnaHRuZXNzOiAkYnV0dG9uLWZ1bmN0aW9uLWZhY3RvcikgIWRlZmF1bHQ7XG4kc2Vjb25kYXJ5LWJ1dHRvbi1ib3JkZXItY29sb3I6ICRzZWNvbmRhcnktYnV0dG9uLWJnLWhvdmVyICFkZWZhdWx0O1xuJHN1Y2Nlc3MtYnV0dG9uLWJnLWhvdmVyOiBzY2FsZS1jb2xvcigkc3VjY2Vzcy1jb2xvciwgJGxpZ2h0bmVzczogJGJ1dHRvbi1mdW5jdGlvbi1mYWN0b3IpICFkZWZhdWx0O1xuJHN1Y2Nlc3MtYnV0dG9uLWJvcmRlci1jb2xvcjogJHN1Y2Nlc3MtYnV0dG9uLWJnLWhvdmVyICFkZWZhdWx0O1xuJGFsZXJ0LWJ1dHRvbi1iZy1ob3Zlcjogc2NhbGUtY29sb3IoJGFsZXJ0LWNvbG9yLCAkbGlnaHRuZXNzOiAkYnV0dG9uLWZ1bmN0aW9uLWZhY3RvcikgIWRlZmF1bHQ7XG4kYWxlcnQtYnV0dG9uLWJvcmRlci1jb2xvcjogJGFsZXJ0LWJ1dHRvbi1iZy1ob3ZlciAhZGVmYXVsdDtcbiR3YXJuaW5nLWJ1dHRvbi1iZy1ob3Zlcjogc2NhbGUtY29sb3IoJHdhcm5pbmctY29sb3IsICRsaWdodG5lc3M6ICRidXR0b24tZnVuY3Rpb24tZmFjdG9yKSAhZGVmYXVsdDtcbiR3YXJuaW5nLWJ1dHRvbi1ib3JkZXItY29sb3I6ICR3YXJuaW5nLWJ1dHRvbi1iZy1ob3ZlciAhZGVmYXVsdDtcbiRpbmZvLWJ1dHRvbi1iZy1ob3Zlcjogc2NhbGUtY29sb3IoJGluZm8tY29sb3IsICRsaWdodG5lc3M6ICRidXR0b24tZnVuY3Rpb24tZmFjdG9yKSAhZGVmYXVsdDtcbiRpbmZvLWJ1dHRvbi1ib3JkZXItY29sb3I6ICRpbmZvLWJ1dHRvbi1iZy1ob3ZlciAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gc2V0IHRoZSBkZWZhdWx0IHJhZGl1cyB1c2VkIHRocm91Z2hvdXQgdGhlIGNvcmUuXG4kYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG4kYnV0dG9uLXJvdW5kOiAkZ2xvYmFsLXJvdW5kZWQgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIHNldCBkZWZhdWx0IG9wYWNpdHkgYW5kIGN1cnNvciBmb3IgZGlzYWJsZWQgYnV0dG9ucy5cbiRidXR0b24tZGlzYWJsZWQtb3BhY2l0eTogLjcgIWRlZmF1bHQ7XG4kYnV0dG9uLWRpc2FibGVkLWN1cnNvcjogJGN1cnNvci1kZWZhdWx0LXZhbHVlICFkZWZhdWx0O1xuXG5cbi8vXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgYSBkZWZhdWx0IGJ1dHRvbiBiYXNlLlxuLy9cbi8vICRzdHlsZSAtIFNldHMgYmFzZSBzdHlsZXMuIENhbiBiZSBzZXQgdG8gZmFsc2UuIERlZmF1bHQ6IHRydWUuXG4vLyAkZGlzcGxheSAtIFVzZWQgdG8gY29udHJvbCBkaXNwbGF5IHByb3BlcnR5LiBEZWZhdWx0OiAkYnV0dG9uLWRpc3BsYXkgfHwgaW5saW5lLWJsb2NrXG5cbkBtaXhpbiBidXR0b24tYmFzZSgkc3R5bGU6dHJ1ZSwgJGRpc3BsYXk6JGJ1dHRvbi1kaXNwbGF5KSB7XG4gIEBpZiAkc3R5bGUge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czowO1xuICAgIGJvcmRlci1zdHlsZTogJGJ1dHRvbi1ib3JkZXItc3R5bGU7XG4gICAgYm9yZGVyLXdpZHRoOiAkYnV0dG9uLWJvcmRlci13aWR0aDtcbiAgICBjdXJzb3I6ICRjdXJzb3ItcG9pbnRlci12YWx1ZTtcbiAgICBmb250LWZhbWlseTogJGJ1dHRvbi1mb250LWZhbWlseTtcbiAgICBmb250LXdlaWdodDogJGJ1dHRvbi1mb250LXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgIG1hcmdpbjogMCAwICRidXR0b24tbWFyZ2luLWJvdHRvbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1hbGlnbjogJGJ1dHRvbi1mb250LWFsaWduO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuICBAaWYgJGRpc3BsYXkgeyBkaXNwbGF5OiAkZGlzcGxheTsgfVxufVxuXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBhZGQgYnV0dG9uIHNpemUgc3R5bGVzXG4vL1xuLy8gJHBhZGRpbmcgLSBVc2VkIHRvIGJ1aWxkIHBhZGRpbmcgZm9yIGJ1dHRvbnMgRGVmYXVsdDogJGJ1dHRvbi1tZWQgfHw9IHJlbS1jYWxjKDEyKVxuLy8gJGZ1bGwtd2lkdGggLSBXZSBjYW4gc2V0ICRmdWxsLXdpZHRoOnRydWUgdG8gcmVtb3ZlIHNpZGUgcGFkZGluZyBleHRlbmQgd2lkdGggLSBEZWZhdWx0OiBmYWxzZVxuXG5AbWl4aW4gYnV0dG9uLXNpemUoJHBhZGRpbmc6JGJ1dHRvbi1tZWQsICRmdWxsLXdpZHRoOmZhbHNlKSB7XG5cbiAgLy8gV2UgY29udHJvbCB3aGljaCBwYWRkaW5nIHN0eWxlcyBjb21lIHRocm91Z2gsXG4gIC8vIHRoZXNlIGNhbiBiZSB0dXJuZWQgb2ZmIGJ5IHNldHRpbmcgJHBhZGRpbmc6ZmFsc2VcbiAgQGlmICRwYWRkaW5nIHtcbiAgICBwYWRkaW5nOiAkcGFkZGluZyAoJHBhZGRpbmcgKiAyKSAoJHBhZGRpbmcgKyByZW0tY2FsYygxKSkgKCRwYWRkaW5nICogMik7XG4gICAgLy8gV2UgY29udHJvbCB0aGUgZm9udC1zaXplIGJhc2VkIG9uIG1peGluIGlucHV0LlxuICAgIEBpZiAgICAgICRwYWRkaW5nID09ICRidXR0b24tbWVkIHsgZm9udC1zaXplOiAkYnV0dG9uLWZvbnQtbWVkOyB9XG4gICAgQGVsc2UgaWYgJHBhZGRpbmcgPT0gJGJ1dHRvbi10bnkgeyBmb250LXNpemU6ICRidXR0b24tZm9udC10bnk7IH1cbiAgICBAZWxzZSBpZiAkcGFkZGluZyA9PSAkYnV0dG9uLXNtbCB7IGZvbnQtc2l6ZTogJGJ1dHRvbi1mb250LXNtbDsgfVxuICAgIEBlbHNlIGlmICRwYWRkaW5nID09ICRidXR0b24tbHJnIHsgZm9udC1zaXplOiAkYnV0dG9uLWZvbnQtbHJnOyB9XG4gIH1cblxuICAvLyBXZSBjYW4gc2V0ICRmdWxsLXdpZHRoOnRydWUgdG8gcmVtb3ZlIHNpZGUgcGFkZGluZyBleHRlbmQgd2lkdGguXG4gIEBpZiAkZnVsbC13aWR0aCB7XG4gICAgLy8gV2Ugc3RpbGwgbmVlZCB0byBjaGVjayBpZiAkcGFkZGluZyBpcyBzZXQuXG4gICAgQGlmICRwYWRkaW5nIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAkcGFkZGluZyArIHJlbS1jYWxjKDEpO1xuICAgICAgcGFkZGluZy10b3A6ICRwYWRkaW5nO1xuICAgIH0gQGVsc2UgaWYgJHBhZGRpbmcgPT0gZmFsc2Uge1xuICAgICAgcGFkZGluZy1ib3R0b206MDtcbiAgICAgIHBhZGRpbmctdG9wOjA7XG4gICAgfVxuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIHdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSB0aGUgYnV0dG9uIGhvdmVyIGFuZCBib3JkZXIgY29sb3JzXG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGFkZCBidXR0b24gY29sb3Igc3R5bGVzXG4vL1xuLy8gJGJnIC0gQmFja2dyb3VuZCBjb2xvci4gV2UgY2FuIHNldCAkYmc6ZmFsc2UgZm9yIGEgdHJhbnNwYXJlbnQgYmFja2dyb3VuZC4gRGVmYXVsdDogJHByaW1hcnktY29sb3IuXG4vLyAkcmFkaXVzIC0gSWYgdHJ1ZSwgc2V0IHRvIGJ1dHRvbiByYWRpdXMgd2hpY2ggaXMgJGJ1dHRvbi1yYWRpdXMgfHwgZXhwbGljaXRseSBzZXQgcmFkaXVzIGFtb3VudCBpbiBweCAoZXguICRyYWRpdXM6MTBweCkuIERlZmF1bHQ6IGZhbHNlXG4vLyAkZGlzYWJsZWQgLSBXZSBjYW4gc2V0ICRkaXNhYmxlZDp0cnVlIHRvIGNyZWF0ZSBhIGRpc2FibGVkIHRyYW5zcGFyZW50IGJ1dHRvbi4gRGVmYXVsdDogZmFsc2Vcbi8vICRiZy1ob3ZlciAtIEJ1dHRvbiBIb3ZlciBCYWNrZ3JvdW5kIENvbG9yLiBEZWZhdWx0OiAkYnV0dG9uLWJnLWhvdmVyXG4vLyAkYm9yZGVyLWNvbG9yIC0gQnV0dG9uIEJvcmRlciBDb2xvci4gRGVmYXVsdDogJGJ1dHRvbi1ib3JkZXItY29sb3JcbkBtaXhpbiBidXR0b24tc3R5bGUoJGJnOiRidXR0b24tYmctY29sb3IsICRyYWRpdXM6ZmFsc2UsICRkaXNhYmxlZDpmYWxzZSwgJGJnLWhvdmVyOm51bGwsICRib3JkZXItY29sb3I6bnVsbCkge1xuXG4gIC8vIFdlIGNvbnRyb2wgd2hpY2ggYmFja2dyb3VuZCBzdHlsZXMgYXJlIHVzZWQsXG4gIC8vIHRoZXNlIGNhbiBiZSByZW1vdmVkIGJ5IHNldHRpbmcgJGJnOmZhbHNlXG4gIEBpZiAkYmcge1xuXG4gICAgQGlmICRiZy1ob3ZlciA9PSBudWxsIHtcbiAgICAgICRiZy1ob3ZlcjogaWYoJGJnID09ICRidXR0b24tYmctY29sb3IsICRidXR0b24tYmctaG92ZXIsIHNjYWxlLWNvbG9yKCRiZywgJGxpZ2h0bmVzczogJGJ1dHRvbi1mdW5jdGlvbi1mYWN0b3IpKTtcbiAgICB9XG5cbiAgICBAaWYgJGJvcmRlci1jb2xvciA9PSBudWxsIHtcbiAgICAgICRib3JkZXItY29sb3I6IGlmKCRiZyA9PSAkYnV0dG9uLWJnLWNvbG9yLCAkYnV0dG9uLWJvcmRlci1jb2xvciwgc2NhbGUtY29sb3IoJGJnLCAkbGlnaHRuZXNzOiAkYnV0dG9uLWZ1bmN0aW9uLWZhY3RvcikpO1xuICAgIH1cblxuICAgIC8vIFRoaXMgZmluZCB0aGUgbGlnaHRuZXNzIHBlcmNlbnRhZ2Ugb2YgdGhlIGJhY2tncm91bmQgY29sb3IuXG4gICAgJGJnLWxpZ2h0bmVzczogbGlnaHRuZXNzKCRiZyk7XG4gICAgJGJnLWhvdmVyLWxpZ2h0bmVzczogbGlnaHRuZXNzKCRiZy1ob3Zlcik7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7IGJhY2tncm91bmQtY29sb3I6ICRiZy1ob3ZlcjsgfVxuXG4gICAgLy8gV2UgY29udHJvbCB0aGUgdGV4dCBjb2xvciBmb3IgeW91IGJhc2VkIG9uIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuICAgIGNvbG9yOiBpZigkYmctbGlnaHRuZXNzID4gNzAlLCAkYnV0dG9uLWZvbnQtY29sb3ItYWx0LCAkYnV0dG9uLWZvbnQtY29sb3IpO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiBpZigkYmctaG92ZXItbGlnaHRuZXNzID4gNzAlLCAkYnV0dG9uLWZvbnQtY29sb3ItYWx0LCAkYnV0dG9uLWZvbnQtY29sb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdlIGNhbiBzZXQgJGRpc2FibGVkOnRydWUgdG8gY3JlYXRlIGEgZGlzYWJsZWQgdHJhbnNwYXJlbnQgYnV0dG9uLlxuICBAaWYgJGRpc2FibGVkIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGN1cnNvcjogJGJ1dHRvbi1kaXNhYmxlZC1jdXJzb3I7XG4gICAgb3BhY2l0eTogJGJ1dHRvbi1kaXNhYmxlZC1vcGFjaXR5O1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7IGJhY2tncm91bmQtY29sb3I6ICRiZzsgfVxuICB9XG5cbiAgLy8gV2UgY2FuIGNvbnRyb2wgaG93IG11Y2ggYnV0dG9uIHJhZGl1cyBpcyB1c2VkLlxuICBAaWYgJHJhZGl1cyA9PSB0cnVlIHsgQGluY2x1ZGUgcmFkaXVzKCRidXR0b24tcmFkaXVzKTsgfVxuICBAZWxzZSBpZiAkcmFkaXVzIHsgQGluY2x1ZGUgcmFkaXVzKCRyYWRpdXMpOyB9XG5cbn1cblxuLy8gQE1JWElOXG4vL1xuLy8gV2UgdXNlIHRoaXMgdG8gcXVpY2tseSBjcmVhdGUgYnV0dG9ucyB3aXRoIGEgc2luZ2xlIG1peGluLiBBcyBAamFyZWRoYXJkeSBwdXRzIGl0LCBcInRoZSBraXRjaGVuIHNpbmsgbWl4aW5cIlxuLy9cbi8vICRwYWRkaW5nIC0gVXNlZCB0byBidWlsZCBwYWRkaW5nIGZvciBidXR0b25zIERlZmF1bHQ6ICRidXR0b24tbWVkIHx8PSByZW0tY2FsYygxMilcbi8vICRiZyAtIFByaW1hcnkgY29sb3Igc2V0IGluIHNldHRpbmdzIGZpbGUuIERlZmF1bHQ6ICRidXR0b24tYmcuXG4vLyAkcmFkaXVzIC0gSWYgdHJ1ZSwgc2V0IHRvIGJ1dHRvbiByYWRpdXMgd2hpY2ggaXMgJGdsb2JhbC1yYWRpdXMgfHwgZXhwbGljaXRseSBzZXQgcmFkaXVzIGFtb3VudCBpbiBweCAoZXguICRyYWRpdXM6MTBweCkuIERlZmF1bHQ6ZmFsc2UuXG4vLyAkZnVsbC13aWR0aCAtIFdlIGNhbiBzZXQgJGZ1bGwtd2lkdGg6dHJ1ZSB0byByZW1vdmUgc2lkZSBwYWRkaW5nIGV4dGVuZCB3aWR0aC4gRGVmYXVsdDpmYWxzZS5cbi8vICRkaXNhYmxlZCAtIFdlIGNhbiBzZXQgJGRpc2FibGVkOnRydWUgdG8gY3JlYXRlIGEgZGlzYWJsZWQgdHJhbnNwYXJlbnQgYnV0dG9uLiBEZWZhdWx0OmZhbHNlLlxuLy8gJGlzLXByZWZpeCAtIE5vdCB1c2VkPyBEZWZhdWx0OmZhbHNlLlxuLy8gJGJnLWhvdmVyIC0gQnV0dG9uIEhvdmVyIENvbG9yIC0gRGVmYXVsdCBudWxsIC0gc2VlIGJ1dHRvbi1zdHlsZSBtaXhpblxuLy8gJGJvcmRlci1jb2xvciAtIEJ1dHRvbiBCb3JkZXIgQ29sb3IgLSBEZWZhdWx0IG51bGwgLSBzZWUgYnV0dG9uLXN0eWxlIG1peGluXG4vLyAkdHJhbnNpdGlvbiAtIFdlIGNhbiBjb250cm9sIHdoZXRoZXIgb3Igbm90IHRvIGluY2x1ZGUgdGhlIGJhY2tncm91bmQtY29sb3IgdHJhbnNpdGlvbiBwcm9wZXJ0eSAtIERlZmF1bHQ6dHJ1ZS5cbkBtaXhpbiBidXR0b24oJHBhZGRpbmc6JGJ1dHRvbi1tZWQsICRiZzokYnV0dG9uLWJnLWNvbG9yLCAkcmFkaXVzOmZhbHNlLCAkZnVsbC13aWR0aDpmYWxzZSwgJGRpc2FibGVkOmZhbHNlLCAkaXMtcHJlZml4OmZhbHNlLCAkYmctaG92ZXI6bnVsbCwgJGJvcmRlci1jb2xvcjpudWxsLCAkdHJhbnNpdGlvbjogdHJ1ZSkge1xuICBAaW5jbHVkZSBidXR0b24tYmFzZTtcbiAgQGluY2x1ZGUgYnV0dG9uLXNpemUoJHBhZGRpbmcsICRmdWxsLXdpZHRoKTtcbiAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZywgJHJhZGl1cywgJGRpc2FibGVkLCAkYmctaG92ZXIsICRib3JkZXItY29sb3IpO1xuXG4gIEBpZiAkdHJhbnNpdGlvbiB7XG4gICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvcik7XG4gIH1cbn1cblxuXG5AaW5jbHVkZSBleHBvcnRzKFwiYnV0dG9uXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtYnV0dG9uLWNsYXNzZXMge1xuXG4gICAgLy8gRGVmYXVsdCBzdHlsZXMgYXBwbGllZCBvdXRzaWRlIG9mIG1lZGlhIHF1ZXJ5XG4gICAgYnV0dG9uLCAuYnV0dG9uIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1iYXNlO1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLXNpemU7XG4gICAgICBAaW5jbHVkZSBidXR0b24tc3R5bGU7XG5cbiAgICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uKGJhY2tncm91bmQtY29sb3IpO1xuXG4gICAgICAmLnNlY29uZGFyeSB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JHNlY29uZGFyeS1jb2xvciwgJGJnLWhvdmVyOiRzZWNvbmRhcnktYnV0dG9uLWJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yOiRzZWNvbmRhcnktYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cbiAgICAgICYuc3VjY2VzcyAgIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokc3VjY2Vzcy1jb2xvciwgJGJnLWhvdmVyOiRzdWNjZXNzLWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokc3VjY2Vzcy1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxuICAgICAgJi5hbGVydCAgICAgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRhbGVydC1jb2xvciwgJGJnLWhvdmVyOiRhbGVydC1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JGFsZXJ0LWJ1dHRvbi1ib3JkZXItY29sb3IpOyB9XG4gICAgICAmLndhcm5pbmcgICB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JHdhcm5pbmctY29sb3IsICRiZy1ob3Zlcjokd2FybmluZy1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JHdhcm5pbmctYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cbiAgICAgICYuaW5mbyAgICAgIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokaW5mby1jb2xvciwgJGJnLWhvdmVyOiRpbmZvLWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokaW5mby1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxuXG4gICAgICAmLmxhcmdlICB7IEBpbmNsdWRlIGJ1dHRvbi1zaXplKCRwYWRkaW5nOiRidXR0b24tbHJnKTsgfVxuICAgICAgJi5zbWFsbCAgeyBAaW5jbHVkZSBidXR0b24tc2l6ZSgkcGFkZGluZzokYnV0dG9uLXNtbCk7IH1cbiAgICAgICYudGlueSAgIHsgQGluY2x1ZGUgYnV0dG9uLXNpemUoJHBhZGRpbmc6JGJ1dHRvbi10bnkpOyB9XG4gICAgICAmLmV4cGFuZCB7IEBpbmNsdWRlIGJ1dHRvbi1zaXplKCRwYWRkaW5nOm51bGwsICRmdWxsLXdpZHRoOnRydWUpOyB9XG5cbiAgICAgICYubGVmdC1hbGlnbiAgeyB0ZXh0LWFsaWduOiBsZWZ0OyB0ZXh0LWluZGVudDogcmVtLWNhbGMoMTIpOyB9XG4gICAgICAmLnJpZ2h0LWFsaWduIHsgdGV4dC1hbGlnbjogcmlnaHQ7IHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDEyKTsgfVxuXG4gICAgICAmLnJhZGl1cyB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6ZmFsc2UsICRyYWRpdXM6dHJ1ZSk7IH1cbiAgICAgICYucm91bmQgIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzpmYWxzZSwgJHJhZGl1czokYnV0dG9uLXJvdW5kKTsgfVxuXG4gICAgICAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JGJ1dHRvbi1iZy1jb2xvciwgJGRpc2FibGVkOnRydWUsICRiZy1ob3ZlcjokYnV0dG9uLWJnLWhvdmVyLCAkYm9yZGVyLWNvbG9yOiRidXR0b24tYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgJi5zZWNvbmRhcnkgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRzZWNvbmRhcnktY29sb3IsICRkaXNhYmxlZDp0cnVlLCAkYmctaG92ZXI6JHNlY29uZGFyeS1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JHNlY29uZGFyeS1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxuICAgICAgICAmLnN1Y2Nlc3MgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRzdWNjZXNzLWNvbG9yLCAkZGlzYWJsZWQ6dHJ1ZSwgJGJnLWhvdmVyOiRzdWNjZXNzLWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokc3VjY2Vzcy1idXR0b24tYm9yZGVyLWNvbG9yKTsgfVxuICAgICAgICAmLmFsZXJ0IHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokYWxlcnQtY29sb3IsICRkaXNhYmxlZDp0cnVlLCAkYmctaG92ZXI6JGFsZXJ0LWJ1dHRvbi1iZy1ob3ZlciwgJGJvcmRlci1jb2xvcjokYWxlcnQtYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cbiAgICAgICAgJi53YXJuaW5nIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokd2FybmluZy1jb2xvciwgJGRpc2FibGVkOnRydWUsICRiZy1ob3Zlcjokd2FybmluZy1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JHdhcm5pbmctYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cbiAgICAgICAgJi5pbmZvIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokaW5mby1jb2xvciwgJGRpc2FibGVkOnRydWUsICRiZy1ob3ZlcjokaW5mby1idXR0b24tYmctaG92ZXIsICRib3JkZXItY29sb3I6JGluZm8tYnV0dG9uLWJvcmRlci1jb2xvcik7IH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvL2ZpcmVmb3ggMnB4IGZpeFxuICAgIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7Ym9yZGVyOjA7IHBhZGRpbmc6MDt9XG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICBidXR0b24sIC5idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tYmFzZSgkc3R5bGU6ZmFsc2UsICRkaXNwbGF5OmlubGluZS1ibG9jayk7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zaXplKCRwYWRkaW5nOmZhbHNlLCAkZnVsbC13aWR0aDpmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0ICdnbG9iYWwnO1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtY2xlYXJpbmctY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc2V0IHRoZSBiYWNrZ3JvdW5kIGNvbG9ycyBmb3IgcGFydHMgb2YgQ2xlYXJpbmcuXG4kY2xlYXJpbmctYmc6ICRvaWwgIWRlZmF1bHQ7XG4kY2xlYXJpbmctY2FwdGlvbi1iZzogJGNsZWFyaW5nLWJnICFkZWZhdWx0O1xuJGNsZWFyaW5nLWNhcm91c2VsLWJnOiByZ2JhKDUxLDUxLDUxLDAuOCkgIWRlZmF1bHQ7XG4kY2xlYXJpbmctaW1nLWJnOiAkY2xlYXJpbmctYmcgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgY2xvc2UgYnV0dG9uXG4kY2xlYXJpbmctY2xvc2UtY29sb3I6ICRpcm9uICFkZWZhdWx0O1xuJGNsZWFyaW5nLWNsb3NlLXNpemU6IDMwcHggIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgYXJyb3dzXG4kY2xlYXJpbmctYXJyb3ctc2l6ZTogMTJweCAhZGVmYXVsdDtcbiRjbGVhcmluZy1hcnJvdy1jb2xvcjogJGNsZWFyaW5nLWNsb3NlLWNvbG9yICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgY2FwdGlvbnNcbiRjbGVhcmluZy1jYXB0aW9uLWZvbnQtY29sb3I6ICRpcm9uICFkZWZhdWx0O1xuJGNsZWFyaW5nLWNhcHRpb24tZm9udC1zaXplOiAuODc1ZW0gIWRlZmF1bHQ7XG4kY2xlYXJpbmctY2FwdGlvbi1wYWRkaW5nOiAxMHB4IDMwcHggMjBweCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIG1ha2UgdGhlIGltYWdlIGFuZCBjYXJvdXNlbCBoZWlnaHQgYW5kIHN0eWxlXG4kY2xlYXJpbmctYWN0aXZlLWltZy1oZWlnaHQ6IDg1JSAhZGVmYXVsdDtcbiRjbGVhcmluZy1jYXJvdXNlbC1oZWlnaHQ6IDEyMHB4ICFkZWZhdWx0O1xuJGNsZWFyaW5nLWNhcm91c2VsLXRodW1iLXdpZHRoOiAxMjBweCAhZGVmYXVsdDtcbiRjbGVhcmluZy1jYXJvdXNlbC10aHVtYi1hY3RpdmUtYm9yZGVyOiAxcHggc29saWQgcmdiKDI1NSwyNTUsMjU1KSAhZGVmYXVsdDtcblxuQGluY2x1ZGUgZXhwb3J0cyhcImNsZWFyaW5nXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtY2xlYXJpbmctY2xhc3NlcyB7XG4gICAgLy8gV2UgZGVjaWRlZCB0byBub3QgY3JlYXRlIGEgbWl4aW4gZm9yIENsZWFyaW5nIGJlY2F1c2UgaXQgcmVsaWVzXG4gICAgLy8gb24gcHJlZGVmaW5lZCBjbGFzc2VzIGFuZCBzdHJ1Y3R1cmUgdG8gd29yayBwcm9wZXJseS5cbiAgICAvLyBUaGUgdmFyaWFibGVzIGFib3ZlIHNob3VsZCBnaXZlIGVub3VnaCBjb250cm9sLlxuXG4gICAgLyogQ2xlYXJpbmcgU3R5bGVzICovXG4gICAgLmNsZWFyaW5nLXRodW1icywgI3tkYXRhKCdjbGVhcmluZycpfSB7XG4gICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICBsaSB7XG4gICAgICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgICAgICAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IDEwcHg7XG4gICAgICB9XG5cbiAgICAgICZbY2xhc3MqPVwiYmxvY2stZ3JpZC1cIl0gbGkge1xuICAgICAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY2xlYXJpbmctYmxhY2tvdXQge1xuICAgICAgYmFja2dyb3VuZDogJGNsZWFyaW5nLWJnO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgdG9wOiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB6LWluZGV4OiA5OTg7XG4gICAgICAjeyRkZWZhdWx0LWZsb2F0fTogMDtcblxuICAgICAgLmNsZWFyaW5nLWNsb3NlIHsgZGlzcGxheTogYmxvY2s7IH1cbiAgICB9XG5cbiAgICAuY2xlYXJpbmctY29udGFpbmVyIHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiA5OTg7XG4gICAgfVxuXG4gICAgLmNsZWFyaW5nLXRvdWNoLWxhYmVsIHtcbiAgICAgIGNvbG9yOiAkYmFzZTtcbiAgICAgIGZvbnQtc2l6ZTogLjZlbTtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgIH1cblxuICAgIC52aXNpYmxlLWltZyB7XG4gICAgICBoZWlnaHQ6IDk1JTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgaW1nIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAjeyRkZWZhdWx0LWZsb2F0fTogNTAlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgQGlmICRkZWZhdWx0LWZsb2F0ID09IGxlZnQge1xuICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoNTAlKTtcbiAgICAgICAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKDUwJSk7XG4gICAgICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKDUwJSk7XG4gICAgICAgICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoNTAlKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWCg1MCUpO1xuICAgICAgICB9O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNsZWFyaW5nLWNhcHRpb24ge1xuICAgICAgYmFja2dyb3VuZDogJGNsZWFyaW5nLWNhcHRpb24tYmc7XG4gICAgICBib3R0b206IDA7XG4gICAgICBjb2xvcjogJGNsZWFyaW5nLWNhcHRpb24tZm9udC1jb2xvcjtcbiAgICAgIGZvbnQtc2l6ZTogJGNsZWFyaW5nLWNhcHRpb24tZm9udC1zaXplO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBwYWRkaW5nOiAkY2xlYXJpbmctY2FwdGlvbi1wYWRkaW5nO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAjeyRkZWZhdWx0LWZsb2F0fTogMDtcbiAgICB9XG5cbiAgICAuY2xlYXJpbmctY2xvc2Uge1xuICAgICAgY29sb3I6ICRjbGVhcmluZy1jbG9zZS1jb2xvcjtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBmb250LXNpemU6ICRjbGVhcmluZy1jbG9zZS1zaXplO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICBwYWRkaW5nLSN7JGRlZmF1bHQtZmxvYXR9OiAyMHB4O1xuICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgICB6LWluZGV4OiA5OTk7XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHsgY29sb3I6ICRpcm9uOyB9XG4gICAgfVxuXG4gICAgLmNsZWFyaW5nLWFzc2VtYmxlZCAuY2xlYXJpbmctY29udGFpbmVyIHsgaGVpZ2h0OiAxMDAlO1xuICAgICAgLmNhcm91c2VsID4gdWwgeyBkaXNwbGF5OiBub25lOyB9XG4gICAgfVxuXG4gICAgLy8gSWYgeW91IHdhbnQgdG8gc2hvdyBhIGxpZ2h0Ym94LCBidXQgb25seSBoYXZlIGEgc2luZ2xlIGltYWdlIGNvbWUgdGhyb3VnaCBhcyB0aGUgdGh1bWJuYWlsXG4gICAgLmNsZWFyaW5nLWZlYXR1cmUgbGkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICYuY2xlYXJpbmctZmVhdHVyZWQtaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTGFyZ2Ugc2NyZWVuIG92ZXJyaWRlc1xuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgIC5jbGVhcmluZy1tYWluLXByZXYsXG4gICAgICAuY2xlYXJpbmctbWFpbi1uZXh0IHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgYm9yZGVyOiBzb2xpZCAkY2xlYXJpbmctYXJyb3ctc2l6ZTtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgICY6aG92ZXIgeyBvcGFjaXR5OiAuODsgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuY2xlYXJpbmctbWFpbi1wcmV2IHtcbiAgICAgICAgI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgI3skZGVmYXVsdC1mbG9hdH06IDVweDtcbiAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIGJvcmRlci0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259LWNvbG9yOiAkY2xlYXJpbmctYXJyb3ctY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5jbGVhcmluZy1tYWluLW5leHQge1xuICAgICAgICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAwO1xuICAgICAgICA+IHNwYW4ge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgYm9yZGVyLSN7JGRlZmF1bHQtZmxvYXR9LWNvbG9yOiAkY2xlYXJpbmctYXJyb3ctY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmNsZWFyaW5nLW1haW4tcHJldi5kaXNhYmxlZCxcbiAgICAgIC5jbGVhcmluZy1tYWluLW5leHQuZGlzYWJsZWQgeyBvcGFjaXR5OiAuMzsgfVxuXG4gICAgICAuY2xlYXJpbmctYXNzZW1ibGVkIC5jbGVhcmluZy1jb250YWluZXIge1xuXG4gICAgICAgIC5jYXJvdXNlbCB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJGNsZWFyaW5nLWNhcm91c2VsLWJnO1xuICAgICAgICAgIGhlaWdodDogJGNsZWFyaW5nLWNhcm91c2VsLWhlaWdodDtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgID4gdWwge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgei1pbmRleDogOTk5O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG5cbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICAgICAgICAgIGN1cnNvcjogJGN1cnNvci1wb2ludGVyLXZhbHVlO1xuICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICAgICAgICAgICAgICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogMDtcbiAgICAgICAgICAgICAgbWluLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgb3BhY2l0eTogLjQ7XG4gICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgd2lkdGg6ICRjbGVhcmluZy1jYXJvdXNlbC10aHVtYi13aWR0aDtcblxuICAgICAgICAgICAgICAmLmZpeC1oZWlnaHQge1xuICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgYS50aCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIGN1cnNvcjogJGN1cnNvci1wb2ludGVyLXZhbHVlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICYudmlzaWJsZSB7IG9wYWNpdHk6IDE7IH1cbiAgICAgICAgICAgICAgJjpob3ZlciB7IG9wYWNpdHk6IC44OyB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnZpc2libGUtaW1nIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkY2xlYXJpbmctaW1nLWJnO1xuICAgICAgICAgIGhlaWdodDogJGNsZWFyaW5nLWFjdGl2ZS1pbWctaGVpZ2h0O1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmNsZWFyaW5nLWNsb3NlIHtcbiAgICAgICAgcGFkZGluZy0jeyRkZWZhdWx0LWZsb2F0fTogMDtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxMHB4O1xuICAgICAgICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAyMHB4O1xuICAgICAgfVxuICAgIH1cblxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0ICdnbG9iYWwnO1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtZHJvcGRvd24tY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbHMgaGVpZ2h0IGFuZCB3aWR0aCBzdHlsZXMuXG4kZi1kcm9wZG93bi1tYXgtd2lkdGg6IDIwMHB4ICFkZWZhdWx0O1xuJGYtZHJvcGRvd24taGVpZ2h0OiBhdXRvICFkZWZhdWx0O1xuJGYtZHJvcGRvd24tbWF4LWhlaWdodDogbm9uZSAhZGVmYXVsdDtcblxuLy8gVXNlZCBmb3IgYm90dG9tIHBvc2l0aW9uXG4kZi1kcm9wZG93bi1tYXJnaW4tdG9wOiAycHggIWRlZmF1bHQ7XG5cbi8vIFVzZWQgZm9yIHJpZ2h0IHBvc2l0aW9uXG4kZi1kcm9wZG93bi1tYXJnaW4tbGVmdDogJGYtZHJvcGRvd24tbWFyZ2luLXRvcCAhZGVmYXVsdDtcblxuLy8gVXNlZCBmb3IgbGVmdCBwb3NpdGlvblxuJGYtZHJvcGRvd24tbWFyZ2luLXJpZ2h0OiAkZi1kcm9wZG93bi1tYXJnaW4tdG9wICFkZWZhdWx0O1xuXG4vLyBVc2VkIGZvciB0b3AgcG9zaXRpb25cbiRmLWRyb3Bkb3duLW1hcmdpbi1ib3R0b206ICRmLWRyb3Bkb3duLW1hcmdpbi10b3AgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgdGhlIGJhY2tncm91bmQgY29sb3JcbiRmLWRyb3Bkb3duLWJnOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIHNldCB0aGUgYm9yZGVyIHN0eWxlcyBmb3IgZHJvcGRvd25zLlxuJGYtZHJvcGRvd24tYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRmLWRyb3Bkb3duLWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuJGYtZHJvcGRvd24tYm9yZGVyLWNvbG9yOiBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC0yMCUpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIHRyaWFuZ2xlIHBpcC5cbiRmLWRyb3Bkb3duLXRyaWFuZ2xlLXNpemU6IDZweCAhZGVmYXVsdDtcbiRmLWRyb3Bkb3duLXRyaWFuZ2xlLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kZi1kcm9wZG93bi10cmlhbmdsZS1zaWRlLW9mZnNldDogMTBweCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgc3R5bGVzIGZvciB0aGUgbGlzdCBlbGVtZW50cy5cbiRmLWRyb3Bkb3duLWxpc3Qtc3R5bGU6IG5vbmUgIWRlZmF1bHQ7XG4kZi1kcm9wZG93bi1mb250LWNvbG9yOiAkY2hhcmNvYWwgIWRlZmF1bHQ7XG4kZi1kcm9wZG93bi1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiRmLWRyb3Bkb3duLWxpc3QtcGFkZGluZzogcmVtLWNhbGMoNSwgMTApICFkZWZhdWx0O1xuJGYtZHJvcGRvd24tbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDE4KSAhZGVmYXVsdDtcbiRmLWRyb3Bkb3duLWxpc3QtaG92ZXItYmc6ICRzbW9rZSAhZGVmYXVsdDtcbiRkcm9wZG93bi1tb2JpbGUtZGVmYXVsdC1mbG9hdDogMCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB0aGUgc3R5bGVzIGZvciB3aGVuIHRoZSBkcm9wZG93biBoYXMgY3VzdG9tIGNvbnRlbnQuXG4kZi1kcm9wZG93bi1jb250ZW50LXBhZGRpbmc6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcblxuLy8gRGVmYXVsdCByYWRpdXMgZm9yIGRyb3Bkb3duLlxuJGYtZHJvcGRvd24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy9cbi8vIEBtaXhpbnNcbi8vXG4vL1xuLy8gTk9URTogTWFrZSBkZWZhdWx0IG1heC13aWR0aCBjaGFuZ2UgYmV0d2VlbiBsaXN0IGFuZCBjb250ZW50IHR5cGVzLiBDYW4gYWRkIG1vcmUgd2lkdGggd2l0aCBjbGFzc2VzLCBtYXliZSAuc21hbGwsIC5tZWRpdW0sIC5sYXJnZSwgZXRjLjtcbi8vIFdlIHVzZSB0aGlzIHRvIHN0eWxlIHRoZSBkcm9wZG93biBjb250YWluZXIgZWxlbWVudC5cbi8vICRjb250ZW50LWxpc3QgLSBTZXRzIGxpc3Qtc3R5bGUuIERlZmF1bHQ6IGxpc3QuIE9wdGlvbnM6IFtsaXN0LCBjb250ZW50XVxuLy8gJHRyaWFuZ2xlIC0gU2V0cyBpZiBkcm9wZG93biBoYXMgdHJpYW5nbGUuIERlZmF1bHQ6dHJ1ZS5cbi8vICRtYXgtd2lkdGggLSBEZWZhdWx0OiAkZi1kcm9wZG93bi1tYXgtd2lkdGggfHwgMjAwcHguXG5AbWl4aW4gZHJvcGRvd24tY29udGFpbmVyKCRjb250ZW50Omxpc3QsICR0cmlhbmdsZTp0cnVlLCAkbWF4LXdpZHRoOiRmLWRyb3Bkb3duLW1heC13aWR0aCkge1xuICBkaXNwbGF5OiBub25lO1xuICBsZWZ0OiAtOTk5OXB4O1xuICBsaXN0LXN0eWxlOiAkZi1kcm9wZG93bi1saXN0LXN0eWxlO1xuICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAmLm9wZW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgPiAqOmZpcnN0LWNoaWxkIHsgbWFyZ2luLXRvcDogMDsgfVxuICA+ICo6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH1cblxuICBAaWYgJGNvbnRlbnQgPT0gbGlzdCB7XG4gICAgYmFja2dyb3VuZDogJGYtZHJvcGRvd24tYmc7XG4gICAgYm9yZGVyOiAkZi1kcm9wZG93bi1ib3JkZXItc3R5bGUgJGYtZHJvcGRvd24tYm9yZGVyLXdpZHRoICRmLWRyb3Bkb3duLWJvcmRlci1jb2xvcjtcbiAgICBmb250LXNpemU6ICRmLWRyb3Bkb3duLWZvbnQtc2l6ZTtcbiAgICBoZWlnaHQ6ICRmLWRyb3Bkb3duLWhlaWdodDtcbiAgICBtYXgtaGVpZ2h0OiAkZi1kcm9wZG93bi1tYXgtaGVpZ2h0O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDg5O1xuICB9XG4gIEBlbHNlIGlmICRjb250ZW50ID09IGNvbnRlbnQge1xuICAgIGJhY2tncm91bmQ6ICRmLWRyb3Bkb3duLWJnO1xuICAgIGJvcmRlcjogJGYtZHJvcGRvd24tYm9yZGVyLXN0eWxlICRmLWRyb3Bkb3duLWJvcmRlci13aWR0aCAkZi1kcm9wZG93bi1ib3JkZXItY29sb3I7XG4gICAgZm9udC1zaXplOiAkZi1kcm9wZG93bi1mb250LXNpemU7XG4gICAgaGVpZ2h0OiAkZi1kcm9wZG93bi1oZWlnaHQ7XG4gICAgbWF4LWhlaWdodDogJGYtZHJvcGRvd24tbWF4LWhlaWdodDtcbiAgICBwYWRkaW5nOiAkZi1kcm9wZG93bi1jb250ZW50LXBhZGRpbmc7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogODk7XG4gIH1cblxuICBAaWYgJHRyaWFuZ2xlID09IGJvdHRvbSB7XG4gICAgbWFyZ2luLXRvcDogJGYtZHJvcGRvd24tbWFyZ2luLXRvcDtcblxuICAgIEBpZiAkZi1kcm9wZG93bi10cmlhbmdsZS1zaXplICE9IDBweCB7XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRmLWRyb3Bkb3duLXRyaWFuZ2xlLXNpemUsICRmLWRyb3Bkb3duLXRyaWFuZ2xlLWNvbG9yLCBib3R0b20pO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLSgkZi1kcm9wZG93bi10cmlhbmdsZS1zaXplICogMik7XG4gICAgICAgICN7JGRlZmF1bHQtZmxvYXR9OiAkZi1kcm9wZG93bi10cmlhbmdsZS1zaWRlLW9mZnNldDtcbiAgICAgICAgei1pbmRleDogODk7XG4gICAgICB9XG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRmLWRyb3Bkb3duLXRyaWFuZ2xlLXNpemUgKyAxLCAkZi1kcm9wZG93bi1ib3JkZXItY29sb3IsIGJvdHRvbSk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAtKCgkZi1kcm9wZG93bi10cmlhbmdsZS1zaXplICsgMSkgKiAyKTtcbiAgICAgICAgI3skZGVmYXVsdC1mbG9hdH06ICRmLWRyb3Bkb3duLXRyaWFuZ2xlLXNpZGUtb2Zmc2V0IC0gMTtcbiAgICAgICAgei1pbmRleDogODg7XG4gICAgICB9XG5cbiAgICAgICYucmlnaHQ6YmVmb3JlIHtcbiAgICAgICAgI3skZGVmYXVsdC1mbG9hdH06IGF1dG87XG4gICAgICAgICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICRmLWRyb3Bkb3duLXRyaWFuZ2xlLXNpZGUtb2Zmc2V0O1xuICAgICAgfVxuICAgICAgJi5yaWdodDphZnRlciB7XG4gICAgICAgICN7JGRlZmF1bHQtZmxvYXR9OiBhdXRvO1xuICAgICAgICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkZi1kcm9wZG93bi10cmlhbmdsZS1zaWRlLW9mZnNldCAtIDE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICR0cmlhbmdsZSA9PSAkZGVmYXVsdC1mbG9hdCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRmLWRyb3Bkb3duLW1hcmdpbi1yaWdodDtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZi1kcm9wZG93bi10cmlhbmdsZS1zaXplLCAkZi1kcm9wZG93bi10cmlhbmdsZS1jb2xvciwgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufSk7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6ICRmLWRyb3Bkb3duLXRyaWFuZ2xlLXNpZGUtb2Zmc2V0O1xuICAgICAgI3skZGVmYXVsdC1mbG9hdH06IC0oJGYtZHJvcGRvd24tdHJpYW5nbGUtc2l6ZSAqIDIpO1xuICAgICAgei1pbmRleDogODk7XG4gICAgfVxuICAgICY6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRmLWRyb3Bkb3duLXRyaWFuZ2xlLXNpemUgKyAxLCAkZi1kcm9wZG93bi1ib3JkZXItY29sb3IsICN7JG9wcG9zaXRlLWRpcmVjdGlvbn0pO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAkZi1kcm9wZG93bi10cmlhbmdsZS1zaWRlLW9mZnNldCAtIDE7XG4gICAgICAjeyRkZWZhdWx0LWZsb2F0fTogLSgkZi1kcm9wZG93bi10cmlhbmdsZS1zaXplICogMikgLSAyO1xuICAgICAgei1pbmRleDogODg7XG4gICAgfVxuXG4gIH1cblxuICBAaWYgJHRyaWFuZ2xlID09ICRvcHBvc2l0ZS1kaXJlY3Rpb24ge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAtJGYtZHJvcGRvd24tbWFyZ2luLXJpZ2h0O1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRmLWRyb3Bkb3duLXRyaWFuZ2xlLXNpemUsICRmLWRyb3Bkb3duLXRyaWFuZ2xlLWNvbG9yLCAjeyRkZWZhdWx0LWZsb2F0fSk7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6ICRmLWRyb3Bkb3duLXRyaWFuZ2xlLXNpZGUtb2Zmc2V0O1xuICAgICAgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogLSgkZi1kcm9wZG93bi10cmlhbmdsZS1zaXplICogMik7XG4gICAgICAjeyRkZWZhdWx0LWZsb2F0fTogYXV0bztcbiAgICAgIHotaW5kZXg6IDg5O1xuICAgIH1cbiAgICAmOmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZi1kcm9wZG93bi10cmlhbmdsZS1zaXplICsgMSwgJGYtZHJvcGRvd24tYm9yZGVyLWNvbG9yLCAjeyRkZWZhdWx0LWZsb2F0fSk7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6ICRmLWRyb3Bkb3duLXRyaWFuZ2xlLXNpZGUtb2Zmc2V0IC0gMTtcbiAgICAgICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IC0oJGYtZHJvcGRvd24tdHJpYW5nbGUtc2l6ZSAqIDIpIC0gMjtcbiAgICAgICN7JGRlZmF1bHQtZmxvYXR9OiBhdXRvO1xuICAgICAgei1pbmRleDogODg7XG4gICAgfVxuXG4gIH1cblxuICBAaWYgJHRyaWFuZ2xlID09IHRvcCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXRvcDogLSRmLWRyb3Bkb3duLW1hcmdpbi1ib3R0b207XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGYtZHJvcGRvd24tdHJpYW5nbGUtc2l6ZSwgJGYtZHJvcGRvd24tdHJpYW5nbGUtY29sb3IsIHRvcCk7XG4gICAgICBib3R0b206IC0oJGYtZHJvcGRvd24tdHJpYW5nbGUtc2l6ZSAqIDIpO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiBhdXRvO1xuICAgICAgI3skZGVmYXVsdC1mbG9hdH06ICRmLWRyb3Bkb3duLXRyaWFuZ2xlLXNpZGUtb2Zmc2V0O1xuICAgICAgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogYXV0bztcbiAgICAgIHotaW5kZXg6IDg5O1xuICAgIH1cbiAgICAmOmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZi1kcm9wZG93bi10cmlhbmdsZS1zaXplICsgMSwgJGYtZHJvcGRvd24tYm9yZGVyLWNvbG9yLCB0b3ApO1xuICAgICAgYm90dG9tOiAtKCRmLWRyb3Bkb3duLXRyaWFuZ2xlLXNpemUgKiAyKSAtIDI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IGF1dG87XG4gICAgICAjeyRkZWZhdWx0LWZsb2F0fTogJGYtZHJvcGRvd24tdHJpYW5nbGUtc2lkZS1vZmZzZXQgLSAxO1xuICAgICAgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogYXV0bztcbiAgICAgIHotaW5kZXg6IDg4O1xuICAgIH1cblxuICB9XG5cbiAgQGlmICRtYXgtd2lkdGggeyBtYXgtd2lkdGg6ICRtYXgtd2lkdGg7IH1cbiAgQGVsc2UgeyBtYXgtd2lkdGg6ICRmLWRyb3Bkb3duLW1heC13aWR0aDsgfVxuXG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIHRvIHN0eWxlIHRoZSBsaXN0IGVsZW1lbnRzIG9yIGNvbnRlbnQgaW5zaWRlIHRoZSBkcm9wZG93bi5cblxuQG1peGluIGRyb3Bkb3duLXN0eWxlIHtcbiAgY3Vyc29yOiAkY3Vyc29yLXBvaW50ZXItdmFsdWU7XG4gIGZvbnQtc2l6ZTogJGYtZHJvcGRvd24tZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogJGYtZHJvcGRvd24tbGluZS1oZWlnaHQ7XG4gIG1hcmdpbjogMDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHsgYmFja2dyb3VuZDogJGYtZHJvcGRvd24tbGlzdC1ob3Zlci1iZzsgfVxuXG4gICYucmFkaXVzIHsgQGluY2x1ZGUgcmFkaXVzKCRmLWRyb3Bkb3duLXJhZGl1cyk7IH1cblxuICBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkZi1kcm9wZG93bi1saXN0LXBhZGRpbmc7XG4gICAgY29sb3I6ICRmLWRyb3Bkb3duLWZvbnQtY29sb3I7XG4gIH1cbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcImRyb3Bkb3duXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtZHJvcGRvd24tY2xhc3NlcyB7XG5cbiAgICAvKiBGb3VuZGF0aW9uIERyb3Bkb3ducyAqL1xuICAgIC5mLWRyb3Bkb3duIHtcbiAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLWNvbnRhaW5lcihsaXN0LCBib3R0b20pO1xuXG4gICAgICAmLmRyb3AtI3skb3Bwb3NpdGUtZGlyZWN0aW9ufSB7XG4gICAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLWNvbnRhaW5lcihsaXN0LCAjeyRkZWZhdWx0LWZsb2F0fSk7XG4gICAgICB9XG5cbiAgICAgICYuZHJvcC0jeyRkZWZhdWx0LWZsb2F0fSB7XG4gICAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLWNvbnRhaW5lcihsaXN0LCAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259KTtcbiAgICAgIH1cblxuICAgICAgJi5kcm9wLXRvcCB7XG4gICAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLWNvbnRhaW5lcihsaXN0LCB0b3ApO1xuICAgICAgfVxuICAgICAgLy8gbWF4LXdpZHRoOiBub25lO1xuXG4gICAgICBsaSB7IEBpbmNsdWRlIGRyb3Bkb3duLXN0eWxlOyB9XG5cbiAgICAgIC8vIFlvdSBjYW4gYWxzbyBwdXQgY3VzdG9tIGNvbnRlbnQgaW4gdGhlc2UgZHJvcGRvd25zXG4gICAgICAmLmNvbnRlbnQgeyBAaW5jbHVkZSBkcm9wZG93bi1jb250YWluZXIoY29udGVudCwgJHRyaWFuZ2xlOmZhbHNlKTsgfVxuXG4gICAgICAvLyBTaXplc1xuICAgICAgJi50aW55ICAgIHsgbWF4LXdpZHRoOiAyMDBweDsgfVxuICAgICAgJi5zbWFsbCAgIHsgbWF4LXdpZHRoOiAzMDBweDsgfVxuICAgICAgJi5tZWRpdW0gIHsgbWF4LXdpZHRoOiA1MDBweDsgfVxuICAgICAgJi5sYXJnZSAgIHsgbWF4LXdpZHRoOiA4MDBweDsgfVxuICAgICAgJi5tZWdhICAgIHtcbiAgICAgICAgd2lkdGg6MTAwJSFpbXBvcnRhbnQ7XG4gICAgICAgIG1heC13aWR0aDoxMDAlIWltcG9ydGFudDtcblxuICAgICAgICAmLm9wZW57XG4gICAgICAgICAgbGVmdDowIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0ICdnbG9iYWwnO1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtYnV0dG9uLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHNldCB0aGUgY29sb3Igb2YgdGhlIHBpcCBpbiBkcm9wZG93biBidXR0b25zXG4kZHJvcGRvd24tYnV0dG9uLXBpcC1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJGRyb3Bkb3duLWJ1dHRvbi1waXAtY29sb3ItYWx0OiAkb2lsICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc2V0IHRoZSBzaXplIG9mIHRoZSBwaXAgaW4gZHJvcGRvd24gYnV0dG9uc1xuJGJ1dHRvbi1waXAtdG55OiByZW0tY2FsYyg2KSAhZGVmYXVsdDtcbiRidXR0b24tcGlwLXNtbDogcmVtLWNhbGMoNykgIWRlZmF1bHQ7XG4kYnV0dG9uLXBpcC1tZWQ6IHJlbS1jYWxjKDkpICFkZWZhdWx0O1xuJGJ1dHRvbi1waXAtbHJnOiByZW0tY2FsYygxMSkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aW55IGRyb3Bkb3duIGJ1dHRvbnNcbiRkcm9wZG93bi1idXR0b24tcGFkZGluZy10bnk6ICRidXR0b24tcGlwLXRueSAqIDcgIWRlZmF1bHQ7XG4kZHJvcGRvd24tYnV0dG9uLXBpcC1zaXplLXRueTogJGJ1dHRvbi1waXAtdG55ICFkZWZhdWx0O1xuJGRyb3Bkb3duLWJ1dHRvbi1waXAtb3Bwb3NpdGUtdG55OiAkYnV0dG9uLXBpcC10bnkgKiAzICFkZWZhdWx0O1xuJGRyb3Bkb3duLWJ1dHRvbi1waXAtdG9wLXRueTogKC0kYnV0dG9uLXBpcC10bnkgLyAyKSArIHJlbS1jYWxjKDEpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgc21hbGwgZHJvcGRvd24gYnV0dG9uc1xuJGRyb3Bkb3duLWJ1dHRvbi1wYWRkaW5nLXNtbDogJGJ1dHRvbi1waXAtc21sICogNyAhZGVmYXVsdDtcbiRkcm9wZG93bi1idXR0b24tcGlwLXNpemUtc21sOiAkYnV0dG9uLXBpcC1zbWwgIWRlZmF1bHQ7XG4kZHJvcGRvd24tYnV0dG9uLXBpcC1vcHBvc2l0ZS1zbWw6ICRidXR0b24tcGlwLXNtbCAqIDMgIWRlZmF1bHQ7XG4kZHJvcGRvd24tYnV0dG9uLXBpcC10b3Atc21sOiAoLSRidXR0b24tcGlwLXNtbCAvIDIpICsgcmVtLWNhbGMoMSkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSBtZWRpdW0gZHJvcGRvd24gYnV0dG9uc1xuJGRyb3Bkb3duLWJ1dHRvbi1wYWRkaW5nLW1lZDogJGJ1dHRvbi1waXAtbWVkICogNiArIHJlbS1jYWxjKDMpICFkZWZhdWx0O1xuJGRyb3Bkb3duLWJ1dHRvbi1waXAtc2l6ZS1tZWQ6ICRidXR0b24tcGlwLW1lZCAtIHJlbS1jYWxjKDMpICFkZWZhdWx0O1xuJGRyb3Bkb3duLWJ1dHRvbi1waXAtb3Bwb3NpdGUtbWVkOiAkYnV0dG9uLXBpcC1tZWQgKiAyLjUgIWRlZmF1bHQ7XG4kZHJvcGRvd24tYnV0dG9uLXBpcC10b3AtbWVkOiAoLSRidXR0b24tcGlwLW1lZCAvIDIpICsgcmVtLWNhbGMoMikgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSBsYXJnZSBkcm9wZG93biBidXR0b25zXG4kZHJvcGRvd24tYnV0dG9uLXBhZGRpbmctbHJnOiAkYnV0dG9uLXBpcC1scmcgKiA1ICsgcmVtLWNhbGMoMykgIWRlZmF1bHQ7XG4kZHJvcGRvd24tYnV0dG9uLXBpcC1zaXplLWxyZzogJGJ1dHRvbi1waXAtbHJnIC0gcmVtLWNhbGMoNikgIWRlZmF1bHQ7XG4kZHJvcGRvd24tYnV0dG9uLXBpcC1vcHBvc2l0ZS1scmc6ICRidXR0b24tcGlwLWxyZyAqIDIuNSAhZGVmYXVsdDtcbiRkcm9wZG93bi1idXR0b24tcGlwLXRvcC1scmc6ICgtJGJ1dHRvbi1waXAtbHJnIC8gMikgKyByZW0tY2FsYygzKSAhZGVmYXVsdDtcblxuLy8gQG1peGluc1xuLy9cbi8vIERyb3Bkb3duIEJ1dHRvbiBNaXhpblxuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGJ1aWxkIG9mZiBvZiB0aGUgYnV0dG9uIG1peGluIGFuZCBhZGQgZHJvcGRvd24gYnV0dG9uIHN0eWxlc1xuLy9cbi8vICRwYWRkaW5nIC0gRGV0ZXJtaW5lcyB0aGUgc2l6ZSBvZiBidXR0b24geW91J3JlIHdvcmtpbmcgd2l0aC4gRGVmYXVsdDogbWVkaXVtLiBPcHRpb25zIFt0aW55LCBzbWFsbCwgbWVkaXVtLCBsYXJnZV1cbi8vICRwaXAtY29sb3IgLSBDb2xvciBvZiB0aGUgbGl0dGxlIHRyaWFuZ2xlIHRoYXQgcG9pbnRzIHRvIHRoZSBkcm9wZG93bi4gRGVmYXVsdDogJHdoaXRlLlxuLy8gJGJhc2Utc3R5bGUgLSBBZGQgaW4gYmFzZS1zdHlsZXMuIFRoaXMgY2FuIGJlIHNldCB0byBmYWxzZS4gRGVmYXVsdDp0cnVlXG5cbkBtaXhpbiBkcm9wZG93bi1idXR0b24oJHBhZGRpbmc6bWVkaXVtLCAkcGlwLWNvbG9yOiRkcm9wZG93bi1idXR0b24tcGlwLWNvbG9yLCAkYmFzZS1zdHlsZTp0cnVlKSB7XG5cbiAgLy8gV2UgYWRkIGluIGJhc2Ugc3R5bGVzLCBidXQgdGhleSBjYW4gYmUgbmVnYXRlZCBieSBzZXR0aW5nIHRvICdmYWxzZScuXG4gIEBpZiAkYmFzZS1zdHlsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLy8gVGhpcyBjcmVhdGVzIHRoZSBiYXNlIHN0eWxlcyBmb3IgdGhlIHRyaWFuZ2xlIHBpcFxuICAgICY6OmFmdGVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGRyb3Bkb3duLWJ1dHRvbi1waXAtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB3aWR0aDogMDtcbiAgICB9XG4gIH1cblxuICAvLyBJZiB3ZSdyZSBkZWFsaW5nIHdpdGggdGlueSBidXR0b25zLCB1c2UgdGhlc2Ugc3R5bGVzXG4gIEBpZiAkcGFkZGluZyA9PSB0aW55IHtcbiAgICBwYWRkaW5nLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICRkcm9wZG93bi1idXR0b24tcGFkZGluZy10bnk7XG4gICAgJjphZnRlciB7XG4gICAgICBib3JkZXItd2lkdGg6ICRkcm9wZG93bi1idXR0b24tcGlwLXNpemUtdG55O1xuICAgICAgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJGRyb3Bkb3duLWJ1dHRvbi1waXAtb3Bwb3NpdGUtdG55O1xuICAgICAgbWFyZ2luLXRvcDogJGRyb3Bkb3duLWJ1dHRvbi1waXAtdG9wLXRueTtcbiAgICB9XG4gIH1cblxuICAvLyBJZiB3ZSdyZSBkZWFsaW5nIHdpdGggc21hbGwgYnV0dG9ucywgdXNlIHRoZXNlIHN0eWxlc1xuICBAaWYgJHBhZGRpbmcgPT0gc21hbGwge1xuICAgIHBhZGRpbmctI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJGRyb3Bkb3duLWJ1dHRvbi1wYWRkaW5nLXNtbDtcbiAgICAmOjphZnRlciB7XG4gICAgICBib3JkZXItd2lkdGg6ICRkcm9wZG93bi1idXR0b24tcGlwLXNpemUtc21sO1xuICAgICAgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJGRyb3Bkb3duLWJ1dHRvbi1waXAtb3Bwb3NpdGUtc21sO1xuICAgICAgbWFyZ2luLXRvcDogJGRyb3Bkb3duLWJ1dHRvbi1waXAtdG9wLXNtbDtcbiAgICB9XG4gIH1cblxuICAvLyBJZiB3ZSdyZSBkZWFsaW5nIHdpdGggZGVmYXVsdCAobWVkaXVtKSBidXR0b25zLCB1c2UgdGhlc2Ugc3R5bGVzXG4gIEBpZiAkcGFkZGluZyA9PSBtZWRpdW0ge1xuICAgIHBhZGRpbmctI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJGRyb3Bkb3duLWJ1dHRvbi1wYWRkaW5nLW1lZDtcbiAgICAmOjphZnRlciB7XG4gICAgICBib3JkZXItd2lkdGg6ICRkcm9wZG93bi1idXR0b24tcGlwLXNpemUtbWVkO1xuICAgICAgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJGRyb3Bkb3duLWJ1dHRvbi1waXAtb3Bwb3NpdGUtbWVkO1xuICAgICAgbWFyZ2luLXRvcDogJGRyb3Bkb3duLWJ1dHRvbi1waXAtdG9wLW1lZDtcbiAgICB9XG4gIH1cblxuICAvLyBJZiB3ZSdyZSBkZWFsaW5nIHdpdGggbGFyZ2UgYnV0dG9ucywgdXNlIHRoZXNlIHN0eWxlc1xuICBAaWYgJHBhZGRpbmcgPT0gbGFyZ2Uge1xuICAgIHBhZGRpbmctI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJGRyb3Bkb3duLWJ1dHRvbi1wYWRkaW5nLWxyZztcbiAgICAmOjphZnRlciB7XG4gICAgICBib3JkZXItd2lkdGg6ICRkcm9wZG93bi1idXR0b24tcGlwLXNpemUtbHJnO1xuICAgICAgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJGRyb3Bkb3duLWJ1dHRvbi1waXAtb3Bwb3NpdGUtbHJnO1xuICAgICAgbWFyZ2luLXRvcDogJGRyb3Bkb3duLWJ1dHRvbi1waXAtdG9wLWxyZztcbiAgICB9XG4gIH1cblxuICAvLyBXZSBjYW4gY29udHJvbCB0aGUgcGlwIGNvbG9yLiBXZSBkaWRuJ3QgdXNlIGxvZ2ljIGluIHRoaXMgY2FzZSwganVzdCBzZXQgaXQgYW5kIGZvcmdldCBpdC5cbiAgQGlmICRwaXAtY29sb3Ige1xuICAgICY6OmFmdGVyIHsgYm9yZGVyLWNvbG9yOiAkcGlwLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG4gIH1cbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcImRyb3Bkb3duLWJ1dHRvblwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLWJ1dHRvbi1jbGFzc2VzIHtcbiAgICAuZHJvcGRvd24uYnV0dG9uLCBidXR0b24uZHJvcGRvd24geyBAaW5jbHVkZSBkcm9wZG93bi1idXR0b247XG4gICAgICAmLnRpbnkgeyBAaW5jbHVkZSBkcm9wZG93bi1idXR0b24odGlueSwgJGJhc2Utc3R5bGU6ZmFsc2UpOyB9XG4gICAgICAmLnNtYWxsIHsgQGluY2x1ZGUgZHJvcGRvd24tYnV0dG9uKHNtYWxsLCAkYmFzZS1zdHlsZTpmYWxzZSk7IH1cbiAgICAgICYubGFyZ2UgeyBAaW5jbHVkZSBkcm9wZG93bi1idXR0b24obGFyZ2UsICRiYXNlLXN0eWxlOmZhbHNlKTsgfVxuICAgICAgJi5zZWNvbmRhcnk6YWZ0ZXIgeyBib3JkZXItY29sb3I6ICRkcm9wZG93bi1idXR0b24tcGlwLWNvbG9yLWFsdCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCAnZ2xvYmFsJztcblxuLy9cbi8vIEB2YXJpYWJsZXNcbi8vXG4kaW5jbHVkZS1odG1sLW1lZGlhLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdmlkZW8gY29udGFpbmVyIHBhZGRpbmcgYW5kIG1hcmdpbnNcbiRmbGV4LXZpZGVvLXBhZGRpbmctdG9wOiByZW0tY2FsYygyNSkgIWRlZmF1bHQ7XG4kZmxleC12aWRlby1wYWRkaW5nLWJvdHRvbTogNjcuNSUgIWRlZmF1bHQ7XG4kZmxleC12aWRlby1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgd2lkZXNjcmVlbiBib3R0b20gcGFkZGluZ1xuJGZsZXgtdmlkZW8td2lkZXNjcmVlbi1wYWRkaW5nLWJvdHRvbTogNTYuMzQlICFkZWZhdWx0O1xuXG4vL1xuLy8gQG1peGluc1xuLy9cblxuQG1peGluIGZsZXgtdmlkZW8tY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW4tYm90dG9tOiAkZmxleC12aWRlby1tYXJnaW4tYm90dG9tO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nLWJvdHRvbTogJGZsZXgtdmlkZW8tcGFkZGluZy1ib3R0b207XG4gIHBhZGRpbmctdG9wOiAkZmxleC12aWRlby1wYWRkaW5nLXRvcDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICYud2lkZXNjcmVlbiB7IHBhZGRpbmctYm90dG9tOiAkZmxleC12aWRlby13aWRlc2NyZWVuLXBhZGRpbmctYm90dG9tOyB9XG4gICYudmltZW8geyBwYWRkaW5nLXRvcDogMDsgfVxuXG4gIGlmcmFtZSxcbiAgb2JqZWN0LFxuICBlbWJlZCxcbiAgdmlkZW8ge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgICN7JGRlZmF1bHQtZmxvYXR9OiAwO1xuICB9XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJmbGV4LXZpZGVvXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtbWVkaWEtY2xhc3NlcyB7XG4gICAgLmZsZXgtdmlkZW8geyBAaW5jbHVkZSBmbGV4LXZpZGVvLWNvbnRhaW5lcjsgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0ICdnbG9iYWwnO1xuQGltcG9ydCAnYnV0dG9ucyc7XG5cbi8vXG4vLyBAdmFyaWFibGVzXG4vL1xuJGluY2x1ZGUtaHRtbC1mb3JtLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gc2V0IHRoZSBiYXNlIGZvciBsb3RzIG9mIGZvcm0gc3BhY2luZyBhbmQgcG9zaXRpb25pbmcgc3R5bGVzXG4kZm9ybS1zcGFjaW5nOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgbGFiZWxzIGluIGRpZmZlcmVudCB3YXlzXG4kZm9ybS1sYWJlbC1wb2ludGVyOiBwb2ludGVyICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAxLjUgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1mb250LWNvbG9yOiBzY2FsZS1jb2xvcigkYmxhY2ssICRsaWdodG5lc3M6IDMwJSkgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1zbWFsbC10cmFuc2Zvcm06IGNhcGl0YWxpemUgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1ib3R0b20tbWFyZ2luOiAwICFkZWZhdWx0O1xuJGlucHV0LWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xuJGlucHV0LWZvbnQtY29sb3I6IHJnYmEoMCwwLDAsMC43NSkgIWRlZmF1bHQ7XG4kaW5wdXQtcGxhY2Vob2xkZXItZm9udC1jb2xvcjogI2NjY2NjYyAhZGVmYXVsdDtcbiRpbnB1dC1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiRpbnB1dC1iZy1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJGlucHV0LWZvY3VzLWJnLWNvbG9yOiBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC0yJSkgIWRlZmF1bHQ7XG4kaW5wdXQtYm9yZGVyLWNvbG9yOiBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC0yMCUpICFkZWZhdWx0O1xuJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAtNDAlKSAhZGVmYXVsdDtcbiRpbnB1dC1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJGlucHV0LWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuJGlucHV0LWJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuJGlucHV0LWRpc2FibGVkLWJnOiAkZ2FpbnNib3JvICFkZWZhdWx0O1xuJGlucHV0LWRpc2FibGVkLWN1cnNvcjogJGN1cnNvci1kZWZhdWx0LXZhbHVlICFkZWZhdWx0O1xuJGlucHV0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDAsMCwwLDAuMSkgIWRlZmF1bHQ7XG4kaW5wdXQtaW5jbHVkZS1nbG93aW5nLWVmZmVjdDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgZmllbGRzZXQgYm9yZGVyIGFuZCBzcGFjaW5nLlxuJGZpZWxkc2V0LWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kZmllbGRzZXQtYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4kZmllbGRzZXQtYm9yZGVyLWNvbG9yOiAkZ2FpbnNib3JvICFkZWZhdWx0O1xuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcbiRmaWVsZHNldC1tYXJnaW46IHJlbS1jYWxjKDE4IDApICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIGxlZ2VuZHMgd2hlbiB5b3UgdXNlIHRoZW1cbiRsZWdlbmQtYmc6ICR3aGl0ZSAhZGVmYXVsdDtcbiRsZWdlbmQtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuJGxlZ2VuZC1wYWRkaW5nOiByZW0tY2FsYygwIDMpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIHByZWZpeCBhbmQgcG9zdGZpeCBpbnB1dCBlbGVtZW50c1xuJGlucHV0LXByZWZpeC1iZzogc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAtNSUpICFkZWZhdWx0O1xuJGlucHV0LXByZWZpeC1ib3JkZXItY29sb3I6IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogLTIwJSkgIWRlZmF1bHQ7XG4kaW5wdXQtcHJlZml4LWJvcmRlci1zaXplOiAxcHggIWRlZmF1bHQ7XG4kaW5wdXQtcHJlZml4LWJvcmRlci10eXBlOiBzb2xpZCAhZGVmYXVsdDtcbiRpbnB1dC1wcmVmaXgtb3ZlcmZsb3c6IHZpc2libGUgIWRlZmF1bHQ7XG4kaW5wdXQtcHJlZml4LWZvbnQtY29sb3I6ICRvaWwgIWRlZmF1bHQ7XG4kaW5wdXQtcHJlZml4LWZvbnQtY29sb3ItYWx0OiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHNldHRpbmcgdG8gdHVybiBvbi9vZmYgSFRNTDUgbnVtYmVyIHNwaW5uZXJzICh0aGUgdXAvZG93biBhcnJvd3MpXG4kaW5wdXQtbnVtYmVyLXNwaW5uZXJzOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIGVycm9yIHN0YXRlcyBmb3IgaW5wdXRzIGFuZCBsYWJlbHNcbiRpbnB1dC1lcnJvci1tZXNzYWdlLXBhZGRpbmc6IHJlbS1jYWxjKDYgOSA5KSAhZGVmYXVsdDtcbiRpbnB1dC1lcnJvci1tZXNzYWdlLXRvcDogLTFweCAhZGVmYXVsdDtcbiRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpICFkZWZhdWx0O1xuJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LXN0eWxlOiBpdGFsaWMgIWRlZmF1bHQ7XG4kaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kaW5wdXQtZXJyb3ItbWVzc2FnZS1iZy1jb2xvcjogJGFsZXJ0LWNvbG9yICFkZWZhdWx0O1xuJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1jb2xvci1hbHQ6ICRvaWwgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIHN0eWxlIHRoZSBnbG93aW5nIGVmZmVjdCBvZiBpbnB1dHMgd2hlbiBmb2N1c2VkXG4kZ2xvd2luZy1lZmZlY3QtZmFkZS10aW1lOiAuNDVzICFkZWZhdWx0O1xuJGdsb3dpbmctZWZmZWN0LWNvbG9yOiAkaW5wdXQtZm9jdXMtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBzdHlsZSB0aGUgdHJhbnNpdGlvbiB3aGVuIGlucHV0cyBhcmUgZm9jdXNlZCBhbmQgd2hlbiB0aGUgZ2xvd2luZyBlZmZlY3QgaXMgZGlzYWJsZWQuXG4kaW5wdXQtdHJhbnNpdGlvbi1mYWRlLXRpbWU6IDAuMTVzICFkZWZhdWx0O1xuJGlucHV0LXRyYW5zaXRpb24tZmFkZS10aW1pbmctZnVuY3Rpb246IGxpbmVhciAhZGVmYXVsdDtcblxuLy8gU2VsZWN0IHZhcmlhYmxlc1xuJHNlbGVjdC1iZy1jb2xvcjogJGdob3N0ICFkZWZhdWx0O1xuJHNlbGVjdC1ob3Zlci1iZy1jb2xvcjogc2NhbGUtY29sb3IoJHNlbGVjdC1iZy1jb2xvciwgJGxpZ2h0bmVzczogLTMlKSAhZGVmYXVsdDtcblxuLy9cbi8vIEBNSVhJTlNcbi8vXG5cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGdpdmUgdXMgZm9ybSBzdHlsZXMgZm9yIHJvd3MgaW5zaWRlIG9mIGZvcm1zXG5AbWl4aW4gZm9ybS1yb3ctYmFzZSB7XG4gIC5yb3cgeyBtYXJnaW46IDAgKCgtJGZvcm0tc3BhY2luZykgLyAyKTtcblxuICAgIC5jb2x1bW4sXG4gICAgLmNvbHVtbnMgeyBwYWRkaW5nOiAwICgkZm9ybS1zcGFjaW5nIC8gMik7IH1cblxuICAgIC8vIFVzZSB0aGlzIHRvIGNvbGxhcHNlIHRoZSBtYXJnaW5zIG9mIGEgZm9ybSByb3dcbiAgICAmLmNvbGxhcHNlIHsgbWFyZ2luOiAwO1xuXG4gICAgICAuY29sdW1uLFxuICAgICAgLmNvbHVtbnMgeyBwYWRkaW5nOiAwOyB9XG4gICAgICBpbnB1dCB7XG4gICAgICAgIEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sIDApO1xuICAgICAgfVxuXG4gICAgfVxuICB9XG4gIGlucHV0LmNvbHVtbixcbiAgaW5wdXQuY29sdW1ucyxcbiAgdGV4dGFyZWEuY29sdW1uLFxuICB0ZXh0YXJlYS5jb2x1bW5zIHsgcGFkZGluZy0jeyRkZWZhdWx0LWZsb2F0fTogKCRmb3JtLXNwYWNpbmcgLyAyKTsgfVxufVxuXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBnaXZlIGFsbCBiYXNpYyBmb3JtIGVsZW1lbnRzIHRoZWlyIHN0eWxlXG5AbWl4aW4gZm9ybS1lbGVtZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJnLWNvbG9yO1xuICBib3JkZXI6IHtcbiAgICBzdHlsZTogJGlucHV0LWJvcmRlci1zdHlsZTtcbiAgICB3aWR0aDogJGlucHV0LWJvcmRlci13aWR0aDtcbiAgICBjb2xvcjogJGlucHV0LWJvcmRlci1jb2xvcjtcbiAgfVxuICBib3gtc2hhZG93OiAkaW5wdXQtYm94LXNoYWRvdztcbiAgY29sb3I6ICRpbnB1dC1mb250LWNvbG9yO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgKCRmb3JtLXNwYWNpbmcgKiAxLjUpIC0gcmVtLWNhbGMoMSkpO1xuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nIDA7XG4gIHBhZGRpbmc6ICRmb3JtLXNwYWNpbmcgLyAyO1xuICB3aWR0aDogMTAwJTtcbiAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcbiAgQGlmICRpbnB1dC1pbmNsdWRlLWdsb3dpbmctZWZmZWN0IHtcbiAgICBAaW5jbHVkZSBibG9jay1nbG93aW5nLWVmZmVjdChmb2N1cywgJGdsb3dpbmctZWZmZWN0LWZhZGUtdGltZSwgJGdsb3dpbmctZWZmZWN0LWNvbG9yKTtcbiAgfVxuICAvLyBCYXNpYyBmb2N1cyBzdHlsZXNcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZDogJGlucHV0LWZvY3VzLWJnLWNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcjtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG4gIC8vIERpc2FibGVkIFN0eWxlc1xuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtZGlzYWJsZWQtYmc7XG4gICAgY3Vyc29yOiAkaW5wdXQtZGlzYWJsZWQtY3Vyc29yO1xuICB9XG5cbiAgLy8gRGlzYWJsZWQgYmFja2dyb3VuZCBpbnB1dCBiYWNrZ3JvdW5kIGNvbG9yXG4gICZbZGlzYWJsZWRdLFxuICAmW3JlYWRvbmx5XSxcbiAgZmllbGRzZXRbZGlzYWJsZWRdICYge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1kaXNhYmxlZC1iZztcbiAgICBjdXJzb3I6ICRpbnB1dC1kaXNhYmxlZC1jdXJzb3I7XG4gIH1cbn1cblxuLy8gQE1JWElOXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIGZvcm0gbGFiZWxzXG4vL1xuLy8gJGFsaWdubWVudCAtIEFsaWdubWVudCBvcHRpb25zLiBEZWZhdWx0OiBmYWxzZS4gT3B0aW9uczogW3JpZ2h0LCBpbmxpbmUsIGZhbHNlXVxuLy8gJGJhc2Utc3R5bGUgLSBDb250cm9sIHdoZXRoZXIgb3Igbm90IHRoZSBiYXNlIHN0eWxlcyBjb21lIHRocm91Z2guIERlZmF1bHQ6IHRydWUuXG5AbWl4aW4gZm9ybS1sYWJlbCgkYWxpZ25tZW50OmZhbHNlLCAkYmFzZS1zdHlsZTp0cnVlKSB7XG5cbiAgLy8gQ29udHJvbCB3aGV0aGVyIG9yIG5vdCB0aGUgYmFzZSBzdHlsZXMgY29tZSB0aHJvdWdoLlxuICBAaWYgJGJhc2Utc3R5bGUge1xuICAgIGNvbG9yOiAkZm9ybS1sYWJlbC1mb250LWNvbG9yO1xuICAgIGN1cnNvcjogJGZvcm0tbGFiZWwtcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgICBmb250LXdlaWdodDogJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6ICRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0O1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLWxhYmVsLWJvdHRvbS1tYXJnaW47XG4gIH1cblxuICAvLyBBbGlnbm1lbnQgb3B0aW9uc1xuICBAaWYgJGFsaWdubWVudCA9PSByaWdodCB7XG4gICAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxuICBAZWxzZSBpZiAkYWxpZ25tZW50ID09IGlubGluZSB7XG4gICAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZyAwO1xuICAgIHBhZGRpbmc6ICRmb3JtLXNwYWNpbmcgLyAyICsgcmVtLWNhbGMoJGlucHV0LWJvcmRlci13aWR0aCkgMDtcbiAgfVxufVxuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgcG9zdGZpeC9wcmVmaXggZm9ybSBMYWJlbHNcbkBtaXhpbiBwcmVmaXgtcG9zdGZpeC1iYXNlIHtcbiAgYm9yZGVyLXN0eWxlOiAkaW5wdXQtcHJlZml4LWJvcmRlci10eXBlO1xuICBib3JkZXItd2lkdGg6ICRpbnB1dC1wcmVmaXgtYm9yZGVyLXNpemU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSArICgkZm9ybS1zcGFjaW5nICogMS41KSAtIHJlbS1jYWxjKDEpKTtcbiAgbGluZS1oZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgKCRmb3JtLXNwYWNpbmcgKiAxLjUpIC0gcmVtLWNhbGMoMSkpO1xuICBvdmVyZmxvdzogJGlucHV0LXByZWZpeC1vdmVyZmxvdztcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDI7XG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBwcmVmaXggbGFiZWwgc3R5bGVzXG4vLyAkYmcgLSBEZWZhdWx0OiRpbnB1dC1wcmVmaXgtYmcgfHwgc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAtNSUpICFkZWZhdWx0O1xuLy8gJGlzLWJ1dHRvbiAtIFRvZ2dsZSBwb3NpdGlvbiBzZXR0aW5ncyBpZiBwcmVmaXggaXMgYSBidXR0b24uIERlZmF1bHQ6ZmFsc2Vcbi8vXG5AbWl4aW4gcHJlZml4KCRiZzokaW5wdXQtcHJlZml4LWJnLCAkYm9yZGVyOiRpbnB1dC1wcmVmaXgtYm9yZGVyLWNvbG9yLCAkaXMtYnV0dG9uOmZhbHNlKSB7XG5cbiAgQGlmICRiZyB7XG4gICAgJGJnLWxpZ2h0bmVzczogbGlnaHRuZXNzKCRiZyk7XG4gICAgYmFja2dyb3VuZDogJGJnO1xuICAgIGJvcmRlci0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiBub25lO1xuXG4gICAgLy8gQ29udHJvbCB0aGUgZm9udCBjb2xvciBiYXNlZCBvbiBiYWNrZ3JvdW5kIGJyaWdodG5lc3NcbiAgICBAaWYgJGJnLWxpZ2h0bmVzcyA+IDcwJSBvciAkYmcgPT0geWVsbG93IHsgY29sb3I6ICRpbnB1dC1wcmVmaXgtZm9udC1jb2xvcjsgfVxuICAgIEBlbHNlIHsgY29sb3I6ICRpbnB1dC1wcmVmaXgtZm9udC1jb2xvci1hbHQ7IH1cbiAgfVxuXG4gIEBpZiAkYm9yZGVyIHtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXI7XG4gIH1cblxuICBAaWYgJGlzLWJ1dHRvbiB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIHBhZGRpbmctI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gICAgcGFkZGluZy0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBwb3N0Zml4IGxhYmVsIHN0eWxlc1xuLy8gJGJnIC0gRGVmYXVsdDokaW5wdXQtcHJlZml4LWJnIHx8IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogLTUlKSAhZGVmYXVsdDtcbi8vICRpcy1idXR0b24gLSBUb2dnbGUgcG9zaXRpb24gc2V0dGluZ3MgaWYgcHJlZml4IGlzIGEgYnV0dG9uLiBEZWZhdWx0OiBmYWxzZVxuQG1peGluIHBvc3RmaXgoJGJnOiRpbnB1dC1wcmVmaXgtYmcsICRib3JkZXItbGVmdC1oaWRkZW46ZmFsc2UsICRib3JkZXI6JGlucHV0LXByZWZpeC1ib3JkZXItY29sb3IsICRpcy1idXR0b246ZmFsc2UpIHtcblxuICBAaWYgJGJnIHtcbiAgICAkYmctbGlnaHRuZXNzOiBsaWdodG5lc3MoJGJnKTtcbiAgICBiYWNrZ3JvdW5kOiAkYmc7XG4gICAgQGlmICRib3JkZXItbGVmdC1oaWRkZW4ge1xuICAgICAgYm9yZGVyLSN7JGRlZmF1bHQtZmxvYXR9OiBub25lO1xuICAgIH1cblxuICAgIC8vIENvbnRyb2wgdGhlIGZvbnQgY29sb3IgYmFzZWQgb24gYmFja2dyb3VuZCBicmlnaHRuZXNzXG4gICAgQGlmICRiZy1saWdodG5lc3MgPiA3MCUgIG9yICRiZyA9PSB5ZWxsb3cgeyBjb2xvcjogJGlucHV0LXByZWZpeC1mb250LWNvbG9yOyB9XG4gICAgQGVsc2UgeyBjb2xvcjogJGlucHV0LXByZWZpeC1mb250LWNvbG9yLWFsdDsgfVxuICB9XG5cbiAgQGlmICRib3JkZXIge1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlcjtcbiAgfVxuXG4gIEBpZiAkaXMtYnV0dG9uIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgcGFkZGluZy0jeyRkZWZhdWx0LWZsb2F0fTogMDtcbiAgICBwYWRkaW5nLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbn1cblxuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gc3R5bGUgZmllbGRzZXRzXG5AbWl4aW4gZmllbGRzZXQge1xuICBib3JkZXI6ICRmaWVsZHNldC1ib3JkZXItd2lkdGggJGZpZWxkc2V0LWJvcmRlci1zdHlsZSAkZmllbGRzZXQtYm9yZGVyLWNvbG9yO1xuICBtYXJnaW46ICRmaWVsZHNldC1tYXJnaW47XG4gIHBhZGRpbmc6ICRmaWVsZHNldC1wYWRkaW5nO1xuXG4gIC8vIGFuZCBsZWdlbmQgc3R5bGVzXG4gIGxlZ2VuZCB7XG4gICAgYmFja2dyb3VuZDogJGxlZ2VuZC1iZztcbiAgICBmb250LXdlaWdodDogJGxlZ2VuZC1mb250LXdlaWdodDtcbiAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IHJlbS1jYWxjKC0zKTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogJGxlZ2VuZC1wYWRkaW5nO1xuICB9XG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNvbnRyb2wgYm9yZGVyIGFuZCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGVycm9yIGlucHV0c1xuLy8gJGNvbG9yIC0gRGVmYXVsdDogJGFsZXJ0LWNvbG9yIChmb3VuZCBpbiBzZXR0aW5ncyBmaWxlKVxuQG1peGluIGZvcm0tZXJyb3ItY29sb3IoJGNvbG9yOiRhbGVydC1jb2xvcikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRjb2xvciwgLjEpO1xuICBib3JkZXItY29sb3I6ICRjb2xvcjtcblxuICAvLyBHbyBiYWNrIHRvIG5vcm1hbCBvbiBmb2N1c1xuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiAkaW5wdXQtZm9jdXMtYmctY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkaW5wdXQtZm9jdXMtYm9yZGVyLWNvbG9yO1xuICB9XG59XG5cbi8vIEBNSVhJTlxuLy9cbi8vIFdlIHVzZSB0aGlzIHNpbXBsZSBtaXhpbiB0byBzdHlsZSBsYWJlbHMgZm9yIGVycm9yIGlucHV0c1xuLy8gJGNvbG9yIC0gRGVmYXVsdDokYWxlcnQtY29sb3IuIEZvdW5kIGluIHNldHRpbmdzIGZpbGVcbkBtaXhpbiBmb3JtLWxhYmVsLWVycm9yLWNvbG9yKCRjb2xvcjokYWxlcnQtY29sb3IpIHsgY29sb3I6ICRjb2xvcjsgfVxuXG4vLyBATUlYSU5cbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgZXJyb3IgbWVzc2FnZSBzdHlsZXNcbi8vICRiZyAtIERlZmF1bHQ6ICRhbGVydC1jb2xvciAoRm91bmQgaW4gc2V0dGluZ3MgZmlsZSlcbkBtaXhpbiBmb3JtLWVycm9yLW1lc3NhZ2UoJGJnOiRpbnB1dC1lcnJvci1tZXNzYWdlLWJnLWNvbG9yKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6ICRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtc2l6ZTtcbiAgZm9udC1zdHlsZTogJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1zdHlsZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1lcnJvci1tZXNzYWdlLWZvbnQtd2VpZ2h0O1xuICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xuICBtYXJnaW4tdG9wOiAkaW5wdXQtZXJyb3ItbWVzc2FnZS10b3A7XG4gIHBhZGRpbmc6ICRpbnB1dC1lcnJvci1tZXNzYWdlLXBhZGRpbmc7XG5cbiAgLy8gV2UgY2FuIGNvbnRyb2wgdGhlIHRleHQgY29sb3IgYmFzZWQgb24gdGhlIGJyaWdodG5lc3Mgb2YgdGhlIGJhY2tncm91bmQuXG4gICRiZy1saWdodG5lc3M6IGxpZ2h0bmVzcygkYmcpO1xuICBiYWNrZ3JvdW5kOiAkYmc7XG4gIEBpZiAkYmctbGlnaHRuZXNzIDwgNzAlIG9yICRiZyA9PSB5ZWxsb3cgeyBjb2xvcjogJGlucHV0LWVycm9yLW1lc3NhZ2UtZm9udC1jb2xvcjsgfVxuICBAZWxzZSB7IGNvbG9yOiAkaW5wdXQtZXJyb3ItbWVzc2FnZS1mb250LWNvbG9yLWFsdDsgfVxufVxuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBzdHlsZSBzZWxlY3QgZWxlbWVudHNcbkBtaXhpbiBmb3JtLXNlbGVjdCAge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmUgIWltcG9ydGFudDtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzZWxlY3QtYmctY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgLy8gSGlkZSB0aGUgZHJvcGRvd24gYXJyb3cgc2hvd24gaW4gbmV3ZXIgSUUgdmVyc2lvbnNcbiAgJjo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8vIFRoZSBjdXN0b20gYXJyb3cgaGFzIHNvbWUgZmFrZSBob3Jpem9udGFsIHBhZGRpbmcgc28gd2UgY2FuIGFsaWduIGl0XG4gIC8vIGZyb20gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIGVsZW1lbnQgd2l0aG91dCByZWx5aW5nIG9uIENTUzNcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWmxjbk5wYjI0OUlqRXVNU0lnZUQwaU1USndlQ0lnZVQwaU1IQjRJaUIzYVdSMGFEMGlNalJ3ZUNJZ2FHVnBaMmgwUFNJemNIZ2lJSFpwWlhkQ2IzZzlJakFnTUNBMklETWlJR1Z1WVdKc1pTMWlZV05yWjNKdmRXNWtQU0p1WlhjZ01DQXdJRFlnTXlJZ2VHMXNPbk53WVdObFBTSndjbVZ6WlhKMlpTSStQSEJ2YkhsbmIyNGdjRzlwYm5SelBTSTFMams1TWl3d0lESXVPVGt5TERNZ0xUQXVNREE0TERBZ0lpOCtQQzl6ZG1jKyk7XG5cbiAgLy8gV2UgY2FuIHNhZmVseSB1c2UgbGVmdG1vc3QgYW5kIHJpZ2h0bW9zdCBub3dcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogaWYoJHRleHQtZGlyZWN0aW9uID09ICdydGwnLCAwJSwgMTAwJSkgY2VudGVyO1xuXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJvcmRlcjoge1xuICAgIHN0eWxlOiAkaW5wdXQtYm9yZGVyLXN0eWxlO1xuICAgIHdpZHRoOiAkaW5wdXQtYm9yZGVyLXdpZHRoO1xuICAgIGNvbG9yOiAkaW5wdXQtYm9yZGVyLWNvbG9yO1xuICB9XG4gIGNvbG9yOiAkaW5wdXQtZm9udC1jb2xvcjtcbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAoJGZvcm0tc3BhY2luZyAvIDIpO1xuICBAaW5jbHVkZSByYWRpdXMoMCk7XG4gICYucmFkaXVzIHsgQGluY2x1ZGUgcmFkaXVzKCRnbG9iYWwtcmFkaXVzKTsgfVxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWhvdmVyLWJnLWNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcjtcbiAgfVxuICAvLyBEaXNhYmxlZCBTdHlsZXNcbiAgJjpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWRpc2FibGVkLWJnO1xuICAgIGN1cnNvcjogJGlucHV0LWRpc2FibGVkLWN1cnNvcjtcbiAgfVxufVxuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byB0dXJuIG9uL29mZiBIVE1MNSBudW1iZXIgc3Bpbm5lcnNcbkBtaXhpbiBodG1sNW51bWJlcigkYnJvd3NlciwgJG9uOnRydWUpIHtcbiAgQGlmICRvbj09ZmFsc2Uge1xuICAgICAgQGlmICRicm93c2VyPT13ZWJraXQge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH0gQGVsc2UgaWYgJGJyb3dzZXI9PW1veiB7XG4gICAgICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAgICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJmb3JtXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtZm9ybS1jbGFzc2VzIHtcbiAgICAvKiBTdGFuZGFyZCBGb3JtcyAqL1xuICAgIGZvcm0geyBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nOyB9XG5cbiAgICAvKiBVc2luZyBmb3JtcyB3aXRoaW4gcm93cywgd2UgbmVlZCB0byBzZXQgc29tZSBkZWZhdWx0cyAqL1xuICAgIGZvcm0gLnJvdyB7IEBpbmNsdWRlIGZvcm0tcm93LWJhc2U7IH1cblxuICAgIC8qIExhYmVsIFN0eWxlcyAqL1xuICAgIGxhYmVsIHsgQGluY2x1ZGUgZm9ybS1sYWJlbDtcbiAgICAgICYucmlnaHQgeyBAaW5jbHVkZSBmb3JtLWxhYmVsKHJpZ2h0LCBmYWxzZSk7IH1cbiAgICAgICYuaW5saW5lIHsgQGluY2x1ZGUgZm9ybS1sYWJlbChpbmxpbmUsIGZhbHNlKTsgfVxuICAgICAgLyogU3R5bGVzIGZvciByZXF1aXJlZCBpbnB1dHMgKi9cbiAgICAgIHNtYWxsIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRmb3JtLWxhYmVsLXNtYWxsLXRyYW5zZm9ybTtcbiAgICAgICAgY29sb3I6IHNjYWxlLWNvbG9yKCRmb3JtLWxhYmVsLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IDE1JSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyogQXR0YWNoIGVsZW1lbnRzIHRvIHRoZSBiZWdpbm5pbmcgb3IgZW5kIG9mIGFuIGlucHV0ICovXG4gICAgLnByZWZpeCxcbiAgICAucG9zdGZpeCB7IEBpbmNsdWRlIHByZWZpeC1wb3N0Zml4LWJhc2U7IH1cblxuICAgIC8qIEFkanVzdCBwYWRkaW5nLCBhbGlnbm1lbnQgYW5kIHJhZGl1cyBpZiBwcmUvcG9zdCBlbGVtZW50IGlzIGEgYnV0dG9uICovXG4gICAgLnBvc3RmaXguYnV0dG9uIHsgQGluY2x1ZGUgYnV0dG9uLXNpemUoZmFsc2UsIGZhbHNlKTsgQGluY2x1ZGUgcG9zdGZpeChmYWxzZSwgZmFsc2UsIHRydWUpOyB9XG4gICAgLnByZWZpeC5idXR0b24geyBAaW5jbHVkZSBidXR0b24tc2l6ZShmYWxzZSwgZmFsc2UpOyBAaW5jbHVkZSBwcmVmaXgoZmFsc2UsIGZhbHNlLCB0cnVlKTsgfVxuXG4gICAgLnByZWZpeC5idXR0b24ucmFkaXVzIHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGJ1dHRvbi1yYWRpdXMpOyB9XG4gICAgLnBvc3RmaXguYnV0dG9uLnJhZGl1cyB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJG9wcG9zaXRlLWRpcmVjdGlvbiwgJGJ1dHRvbi1yYWRpdXMpOyB9XG4gICAgLnByZWZpeC5idXR0b24ucm91bmQgeyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRkZWZhdWx0LWZsb2F0LCAkYnV0dG9uLXJvdW5kKTsgfVxuICAgIC5wb3N0Zml4LmJ1dHRvbi5yb3VuZCB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJG9wcG9zaXRlLWRpcmVjdGlvbiwgJGJ1dHRvbi1yb3VuZCk7IH1cblxuICAgIC8qIFNlcGFyYXRlIHByZWZpeCBhbmQgcG9zdGZpeCBzdHlsZXMgd2hlbiBvbiBzcGFuIG9yIGxhYmVsIHNvIGJ1dHRvbnMga2VlcCB0aGVpciBvd24gKi9cbiAgICBzcGFuLnByZWZpeCwgbGFiZWwucHJlZml4IHsgQGluY2x1ZGUgcHJlZml4KCk7IH1cbiAgICBzcGFuLnBvc3RmaXgsIGxhYmVsLnBvc3RmaXggeyBAaW5jbHVkZSBwb3N0Zml4KCk7IH1cblxuICAgIC8qIFdlIHVzZSB0aGlzIHRvIGdldCBiYXNpYyBzdHlsaW5nIG9uIGFsbCBiYXNpYyBmb3JtIGVsZW1lbnRzICovXG4gICAgI3t0ZXh0LWlucHV0cyhhbGwsICdpbnB1dCcpfSB7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgQGluY2x1ZGUgZm9ybS1lbGVtZW50O1xuICAgICAgQGlmICRpbnB1dC1pbmNsdWRlLWdsb3dpbmctZWZmZWN0ID09IGZhbHNlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiBib3JkZXItY29sb3IgJGlucHV0LXRyYW5zaXRpb24tZmFkZS10aW1lICRpbnB1dC10cmFuc2l0aW9uLWZhZGUtdGltaW5nLWZ1bmN0aW9uLCBiYWNrZ3JvdW5kICRpbnB1dC10cmFuc2l0aW9uLWZhZGUtdGltZSAkaW5wdXQtdHJhbnNpdGlvbi1mYWRlLXRpbWluZy1mdW5jdGlvbjtcbiAgICAgICAgLW1vei10cmFuc2l0aW9uOiBib3JkZXItY29sb3IgJGlucHV0LXRyYW5zaXRpb24tZmFkZS10aW1lICRpbnB1dC10cmFuc2l0aW9uLWZhZGUtdGltaW5nLWZ1bmN0aW9uLCBiYWNrZ3JvdW5kICRpbnB1dC10cmFuc2l0aW9uLWZhZGUtdGltZSAkaW5wdXQtdHJhbnNpdGlvbi1mYWRlLXRpbWluZy1mdW5jdGlvbjtcbiAgICAgICAgLW1zLXRyYW5zaXRpb246IGJvcmRlci1jb2xvciAkaW5wdXQtdHJhbnNpdGlvbi1mYWRlLXRpbWUgJGlucHV0LXRyYW5zaXRpb24tZmFkZS10aW1pbmctZnVuY3Rpb24sIGJhY2tncm91bmQgJGlucHV0LXRyYW5zaXRpb24tZmFkZS10aW1lICRpbnB1dC10cmFuc2l0aW9uLWZhZGUtdGltaW5nLWZ1bmN0aW9uO1xuICAgICAgICAtby10cmFuc2l0aW9uOiBib3JkZXItY29sb3IgJGlucHV0LXRyYW5zaXRpb24tZmFkZS10aW1lICRpbnB1dC10cmFuc2l0aW9uLWZhZGUtdGltaW5nLWZ1bmN0aW9uLCBiYWNrZ3JvdW5kICRpbnB1dC10cmFuc2l0aW9uLWZhZGUtdGltZSAkaW5wdXQtdHJhbnNpdGlvbi1mYWRlLXRpbWluZy1mdW5jdGlvbjtcbiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yICRpbnB1dC10cmFuc2l0aW9uLWZhZGUtdGltZSAkaW5wdXQtdHJhbnNpdGlvbi1mYWRlLXRpbWluZy1mdW5jdGlvbiwgYmFja2dyb3VuZCAkaW5wdXQtdHJhbnNpdGlvbi1mYWRlLXRpbWUgJGlucHV0LXRyYW5zaXRpb24tZmFkZS10aW1pbmctZnVuY3Rpb247XG4gICAgICB9XG4gICAgICAmLnJhZGl1cyB7XG4gICAgICAgIEBpbmNsdWRlIHJhZGl1cygkaW5wdXQtYm9yZGVyLXJhZGl1cyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9ybSB7XG4gICAgICAucm93IHtcbiAgICAgICAgLnByZWZpeC1yYWRpdXMucm93LmNvbGxhcHNlIHtcbiAgICAgICAgICBpbnB1dCxcbiAgICAgICAgICB0ZXh0YXJlYSxcbiAgICAgICAgICBzZWxlY3QsXG4gICAgICAgICAgYnV0dG9uIHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAkYnV0dG9uLXJhZGl1cyk7IH1cbiAgICAgICAgICAucHJlZml4IHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGJ1dHRvbi1yYWRpdXMpOyB9XG4gICAgICAgIH1cbiAgICAgICAgLnBvc3RmaXgtcmFkaXVzLnJvdy5jb2xsYXBzZSB7XG4gICAgICAgICAgaW5wdXQsXG4gICAgICAgICAgdGV4dGFyZWEsXG4gICAgICAgICAgc2VsZWN0LFxuICAgICAgICAgIGJ1dHRvbiB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJGRlZmF1bHQtZmxvYXQsICRidXR0b24tcmFkaXVzKTsgfVxuICAgICAgICAgIC5wb3N0Zml4IHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAkYnV0dG9uLXJhZGl1cyk7IH1cbiAgICAgICAgfVxuICAgICAgICAucHJlZml4LXJvdW5kLnJvdy5jb2xsYXBzZSB7XG4gICAgICAgICAgaW5wdXQsXG4gICAgICAgICAgdGV4dGFyZWEsXG4gICAgICAgICAgc2VsZWN0LFxuICAgICAgICAgIGJ1dHRvbiB7IEBpbmNsdWRlIHJhZGl1cygwKTsgQGluY2x1ZGUgc2lkZS1yYWRpdXMoJG9wcG9zaXRlLWRpcmVjdGlvbiwgJGJ1dHRvbi1yb3VuZCk7IH1cbiAgICAgICAgICAucHJlZml4IHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkZGVmYXVsdC1mbG9hdCwgJGJ1dHRvbi1yb3VuZCk7IH1cbiAgICAgICAgfVxuICAgICAgICAucG9zdGZpeC1yb3VuZC5yb3cuY29sbGFwc2Uge1xuICAgICAgICAgIGlucHV0LFxuICAgICAgICAgIHRleHRhcmVhLFxuICAgICAgICAgIHNlbGVjdCxcbiAgICAgICAgICBidXR0b24geyBAaW5jbHVkZSByYWRpdXMoMCk7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRkZWZhdWx0LWZsb2F0LCAkYnV0dG9uLXJvdW5kKTsgfVxuICAgICAgICAgIC5wb3N0Zml4IHsgQGluY2x1ZGUgcmFkaXVzKDApOyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAkYnV0dG9uLXJvdW5kKTsgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIH1cblxuICAgIC8qIFJlc3BlY3QgZW5mb3JjZWQgYW1vdW50IG9mIHJvd3MgZm9yIHRleHRhcmVhICovXG4gICAgdGV4dGFyZWFbcm93c10ge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cblxuXHQgIC8qIE5vdCBhbGxvdyByZXNpemUgb3V0IG9mIHBhcmVudCAqL1xuXHQgIHRleHRhcmVhIHtcblx0ICAgIG1heC13aWR0aDogMTAwJTtcblx0ICB9XG4gICAgXG4gICAgLy8gc3R5bGUgcGxhY2Vob2xkZXIgdGV4dCBjcm9zcyBicm93c2VyXG4gICAgOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAkaW5wdXQtcGxhY2Vob2xkZXItZm9udC1jb2xvcjtcbiAgICB9XG5cbiAgICA6LW1vei1wbGFjZWhvbGRlciB7IC8qIEZpcmVmb3ggMTgtICovXG4gICAgICAgY29sb3I6ICRpbnB1dC1wbGFjZWhvbGRlci1mb250LWNvbG9yOyAgXG4gICAgfVxuXG4gICAgOjotbW96LXBsYWNlaG9sZGVyIHsgIC8qIEZpcmVmb3ggMTkrICovXG4gICAgICAgY29sb3I6ICRpbnB1dC1wbGFjZWhvbGRlci1mb250LWNvbG9yOyAgXG4gICAgfVxuXG4gICAgOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7ICBcbiAgICAgICBjb2xvcjogJGlucHV0LXBsYWNlaG9sZGVyLWZvbnQtY29sb3I7ICBcbiAgICB9XG4gICBcblxuICAgIC8qIEFkZCBoZWlnaHQgdmFsdWUgZm9yIHNlbGVjdCBlbGVtZW50cyB0byBtYXRjaCB0ZXh0IGlucHV0IGhlaWdodCAqL1xuICAgIHNlbGVjdCB7XG4gICAgICBAaW5jbHVkZSBmb3JtLXNlbGVjdDtcbiAgICAgIGhlaWdodDogKCRpbnB1dC1mb250LXNpemUgKyAoJGZvcm0tc3BhY2luZyAqIDEuNSkgLSByZW0tY2FsYygxKSk7XG4gICAgICAmW211bHRpcGxlXSB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBBZGp1c3QgbWFyZ2luIGZvciBmb3JtIGVsZW1lbnRzIGJlbG93ICovXG4gICAgaW5wdXRbdHlwZT1cImZpbGVcIl0sXG4gICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbiAgICBzZWxlY3Qge1xuICAgICAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZyAwO1xuICAgIH1cblxuICAgIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArIGxhYmVsLFxuICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIGxhYmVsIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGZvcm0tc3BhY2luZyAqIC41O1xuICAgICAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICRmb3JtLXNwYWNpbmc7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIH1cblxuICAgIC8qIE5vcm1hbGl6ZSBmaWxlIGlucHV0IHdpZHRoICovXG4gICAgaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xuICAgICAgd2lkdGg6MTAwJTtcbiAgICB9XG5cbiAgICAvKiBIVE1MNSBOdW1iZXIgc3Bpbm5lcnMgc2V0dGluZ3MgKi9cbiAgICBpbnB1dFt0eXBlPW51bWJlcl0ge1xuICAgICAgQGluY2x1ZGUgaHRtbDVudW1iZXIobW96LCAkaW5wdXQtbnVtYmVyLXNwaW5uZXJzKVxuICAgIH1cbiAgICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgQGluY2x1ZGUgaHRtbDVudW1iZXIod2Via2l0LCAkaW5wdXQtbnVtYmVyLXNwaW5uZXJzKTtcbiAgICB9XG5cbiAgICAvKiBXZSBhZGQgYmFzaWMgZmllbGRzZXQgc3R5bGluZyAqL1xuICAgIGZpZWxkc2V0IHtcbiAgICAgIEBpbmNsdWRlIGZpZWxkc2V0O1xuICAgIH1cblxuICAgIC8qIEVycm9yIEhhbmRsaW5nICovXG5cbiAgICAje2RhdGEoJ2FiaWRlJyl9IHtcbiAgICAgIC5lcnJvciBzbWFsbC5lcnJvciwgLmVycm9yIHNwYW4uZXJyb3IsIHNwYW4uZXJyb3IsIHNtYWxsLmVycm9yIHtcbiAgICAgICAgQGluY2x1ZGUgZm9ybS1lcnJvci1tZXNzYWdlO1xuICAgICAgfVxuICAgICAgc3Bhbi5lcnJvciwgc21hbGwuZXJyb3IgeyBkaXNwbGF5OiBub25lOyB9XG4gICAgfVxuXG4gICAgc3Bhbi5lcnJvciwgc21hbGwuZXJyb3Ige1xuICAgICAgQGluY2x1ZGUgZm9ybS1lcnJvci1tZXNzYWdlO1xuICAgIH1cblxuICAgIC5lcnJvciB7XG4gICAgICBpbnB1dCxcbiAgICAgIHRleHRhcmVhLFxuICAgICAgc2VsZWN0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cblxuICAgICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuICAgICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tc3BhY2luZ1xuICAgICAgfVxuXG4gICAgICBsYWJlbCxcbiAgICAgIGxhYmVsLmVycm9yIHtcbiAgICAgICAgQGluY2x1ZGUgZm9ybS1sYWJlbC1lcnJvci1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgc21hbGwuZXJyb3Ige1xuICAgICAgICBAaW5jbHVkZSBmb3JtLWVycm9yLW1lc3NhZ2U7XG4gICAgICB9XG5cbiAgICAgID4gbGFiZWwge1xuICAgICAgICA+IHNtYWxsIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICBjb2xvcjogc2NhbGUtY29sb3IoJGZvcm0tbGFiZWwtZm9udC1jb2xvciwgJGxpZ2h0bmVzczogMTUlKTtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgZm9udC1zaXplOiA2MCU7XG4gICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiAkZm9ybS1sYWJlbC1zbWFsbC10cmFuc2Zvcm07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgc3Bhbi5lcnJvci1tZXNzYWdlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXQuZXJyb3IsXG4gICAgdGV4dGFyZWEuZXJyb3IsXG4gICAgc2VsZWN0LmVycm9yIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICAgIGxhYmVsLmVycm9yIHsgQGluY2x1ZGUgZm9ybS1sYWJlbC1lcnJvci1jb2xvcjsgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0ICdnbG9iYWwnO1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtaW5saW5lLWxpc3QtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIHRoZSBtYXJnaW5zIGFuZCBwYWRkaW5nIG9mIHRoZSBpbmxpbmUgbGlzdC5cbiRpbmxpbmUtbGlzdC10b3AtbWFyZ2luOiAwICFkZWZhdWx0O1xuJGlubGluZS1saXN0LW9wcG9zaXRlLW1hcmdpbjogMCAhZGVmYXVsdDtcbiRpbmxpbmUtbGlzdC1ib3R0b20tbWFyZ2luOiByZW0tY2FsYygxNykgIWRlZmF1bHQ7XG4kaW5saW5lLWxpc3QtZGVmYXVsdC1mbG9hdC1tYXJnaW46IHJlbS1jYWxjKC0yMikgIWRlZmF1bHQ7XG4kaW5saW5lLWxpc3QtZGVmYXVsdC1mbG9hdC1saXN0LW1hcmdpbjogcmVtLWNhbGMoMjIpICFkZWZhdWx0O1xuXG4kaW5saW5lLWxpc3QtcGFkZGluZzogMCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB0aGUgb3ZlcmZsb3cgb2YgdGhlIGlubGluZSBsaXN0LlxuJGlubGluZS1saXN0LW92ZXJmbG93OiBoaWRkZW4gIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgdGhlIGxpc3QgaXRlbXNcbiRpbmxpbmUtbGlzdC1kaXNwbGF5OiBibG9jayAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCBhbnkgZWxlbWVudHMgd2l0aGluIGxpc3QgaXRlbXNcbiRpbmxpbmUtbGlzdC1jaGlsZHJlbi1kaXNwbGF5OiBibG9jayAhZGVmYXVsdDtcblxuLy9cbi8vIEBtaXhpbnNcbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgaW5saW5lIGxpc3RzXG5AbWl4aW4gaW5saW5lLWxpc3Qge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRpbmxpbmUtbGlzdC1kZWZhdWx0LWZsb2F0LW1hcmdpbjtcbiAgbWFyZ2luLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICRpbmxpbmUtbGlzdC1vcHBvc2l0ZS1tYXJnaW47XG4gIG1hcmdpbjogJGlubGluZS1saXN0LXRvcC1tYXJnaW4gYXV0byAkaW5saW5lLWxpc3QtYm90dG9tLW1hcmdpbiBhdXRvO1xuICBvdmVyZmxvdzogJGlubGluZS1saXN0LW92ZXJmbG93O1xuICBwYWRkaW5nOiAkaW5saW5lLWxpc3QtcGFkZGluZztcblxuICA+IGxpIHtcbiAgICBkaXNwbGF5OiAkaW5saW5lLWxpc3QtZGlzcGxheTtcbiAgICBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRpbmxpbmUtbGlzdC1kZWZhdWx0LWZsb2F0LWxpc3QtbWFyZ2luO1xuICAgID4gKiB7IGRpc3BsYXk6ICRpbmxpbmUtbGlzdC1jaGlsZHJlbi1kaXNwbGF5OyB9XG4gIH1cbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcImlubGluZS1saXN0XCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtaW5saW5lLWxpc3QtY2xhc3NlcyB7XG4gICAgLmlubGluZS1saXN0IHtcbiAgICAgIEBpbmNsdWRlIGlubGluZS1saXN0KCk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0ICdnbG9iYWwnO1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtam95cmlkZS1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbi8vIENvbnRyb2xsaW5nIGRlZmF1bHQgSm95cmlkZSBzdHlsZXNcbiRqb3lyaWRlLXRpcC1iZzogJG9pbCAhZGVmYXVsdDtcbiRqb3lyaWRlLXRpcC1kZWZhdWx0LXdpZHRoOiAzMDBweCAhZGVmYXVsdDtcbiRqb3lyaWRlLXRpcC1wYWRkaW5nOiByZW0tY2FsYygxOCAyMCAyNCkgIWRlZmF1bHQ7XG4kam95cmlkZS10aXAtYm9yZGVyOiBzb2xpZCAxcHggJGNoYXJjb2FsICFkZWZhdWx0O1xuJGpveXJpZGUtdGlwLXJhZGl1czogNHB4ICFkZWZhdWx0O1xuJGpveXJpZGUtdGlwLXBvc2l0aW9uLW9mZnNldDogMjJweCAhZGVmYXVsdDtcblxuLy8gSGVyZSwgd2UncmUgc2V0dGluZyB0aGUgdGlwIGZvbnQgc3R5bGVzXG4kam95cmlkZS10aXAtZm9udC1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJGpveXJpZGUtdGlwLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuJGpveXJpZGUtdGlwLWhlYWRlci13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLyBUaGlzIGNoYW5nZXMgdGhlIG51YiBzaXplXG4kam95cmlkZS10aXAtbnViLXNpemU6IDEwcHggIWRlZmF1bHQ7XG5cbi8vIFRoaXMgYWRqdXN0cyB0aGUgc3R5bGVzIGZvciB0aGUgdGltZXIgd2hlbiBpdHMgZW5hYmxlZFxuJGpveXJpZGUtdGlwLXRpbWVyLXdpZHRoOiA1MHB4ICFkZWZhdWx0O1xuJGpveXJpZGUtdGlwLXRpbWVyLWhlaWdodDogM3B4ICFkZWZhdWx0O1xuJGpveXJpZGUtdGlwLXRpbWVyLWNvbG9yOiAkc3RlZWwgIWRlZmF1bHQ7XG5cbi8vIFRoaXMgY2hhbmdlcyB1cCB0aGUgc3R5bGVzIGZvciB0aGUgY2xvc2UgYnV0dG9uXG4kam95cmlkZS10aXAtY2xvc2UtY29sb3I6ICRtb25zb29uICFkZWZhdWx0O1xuJGpveXJpZGUtdGlwLWNsb3NlLXNpemU6IDI0cHggIWRlZmF1bHQ7XG4kam95cmlkZS10aXAtY2xvc2Utd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLyBXaGVuIEpveXJpZGUgaXMgZmlsbGluZyB0aGUgc2NyZWVuLCB3ZSB1c2UgdGhpcyBzdHlsZSBmb3IgdGhlIGJnXG4kam95cmlkZS1zY3JlZW5maWxsOiByZ2JhKDAsMCwwLDAuNSkgIWRlZmF1bHQ7XG5cblxuLy8gV2UgZGVjaWRlZCBub3QgdG8gbWFrZSBhIG1peGluIGZvciB0aGlzIGJlY2F1c2UgaXQgcmVsaWVzIG9uXG4vLyBwcmVkZWZpbmVkIGNsYXNzZXMgdG8gd29yayBwcm9wZXJseS5cbkBpbmNsdWRlIGV4cG9ydHMoXCJqb3lyaWRlXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtam95cmlkZS1jbGFzc2VzIHtcblxuICAgIC8qIEZvdW5kYXRpb24gSm95cmlkZSAqL1xuICAgIC5qb3lyaWRlLWxpc3QgeyBkaXNwbGF5OiBub25lOyB9XG5cbiAgICAvKiBEZWZhdWx0IHN0eWxlcyBmb3IgdGhlIGNvbnRhaW5lciAqL1xuICAgIC5qb3lyaWRlLXRpcC1ndWlkZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkam95cmlkZS10aXAtYmc7XG4gICAgICBjb2xvcjogJGpveXJpZGUtdGlwLWZvbnQtY29sb3I7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHdpZHRoOiA5NSU7XG4gICAgICB6LWluZGV4OiAxMDE7XG4gICAgICAjeyRkZWZhdWx0LWZsb2F0fTogMi41JTtcbiAgICB9XG5cbiAgICAubHQtaWU5IC5qb3lyaWRlLXRpcC1ndWlkZSB7XG4gICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IC00MDBweDtcbiAgICAgIG1heC13aWR0aDogODAwcHg7XG4gICAgICAjeyRkZWZhdWx0LWZsb2F0fTogNTAlO1xuICAgIH1cblxuICAgIC5qb3lyaWRlLWNvbnRlbnQtd3JhcHBlciB7XG4gICAgICBwYWRkaW5nOiAkam95cmlkZS10aXAtcGFkZGluZztcbiAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAuYnV0dG9uIHsgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XG5cbiAgICAgIC5qb3lyaWRlLXByZXYtdGlwIHsgbWFyZ2luLXJpZ2h0OiAxMHB4OyB9XG4gICAgfVxuXG4gICAgLyogQWRkIGEgbGl0dGxlIGNzcyB0cmlhbmdsZSBwaXAsIG9sZGVyIGJyb3dzZXIganVzdCBtaXNzIG91dCBvbiB0aGUgZmFuY2luZXNzIG9mIGl0ICovXG4gICAgLmpveXJpZGUtdGlwLWd1aWRlIHtcbiAgICAgIC5qb3lyaWRlLW51YiB7XG4gICAgICAgIGJvcmRlcjogJGpveXJpZGUtdGlwLW51Yi1zaXplIHNvbGlkICRqb3lyaWRlLXRpcC1iZztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgI3skZGVmYXVsdC1mbG9hdH06ICRqb3lyaWRlLXRpcC1wb3NpdGlvbi1vZmZzZXQ7XG5cbiAgICAgICAgJi50b3Age1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJGpveXJpZGUtdGlwLWJnO1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgICAgICAgYm9yZGVyLSN7JGRlZmF1bHQtZmxvYXR9LWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICAgIGJvcmRlci0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259LWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICAgIHRvcDogLSgkam95cmlkZS10aXAtbnViLXNpemUqMik7XG4gICAgICAgIH1cbiAgICAgICAgJi5ib3R0b20ge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJGpveXJpZGUtdGlwLWJnICFpbXBvcnRhbnQ7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICBib3JkZXItI3skZGVmYXVsdC1mbG9hdH0tY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgYm9yZGVyLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn0tY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgYm90dG9tOiAtKCRqb3lyaWRlLXRpcC1udWItc2l6ZSoyKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucmlnaHQgeyByaWdodDogLSgkam95cmlkZS10aXAtbnViLXNpemUqMik7IH1cbiAgICAgICAgJi5sZWZ0IHsgbGVmdDogLSgkam95cmlkZS10aXAtbnViLXNpemUqMik7IH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBUeXBvZ3JhcGh5ICovXG4gICAgLmpveXJpZGUtdGlwLWd1aWRlIGgxLFxuICAgIC5qb3lyaWRlLXRpcC1ndWlkZSBoMixcbiAgICAuam95cmlkZS10aXAtZ3VpZGUgaDMsXG4gICAgLmpveXJpZGUtdGlwLWd1aWRlIGg0LFxuICAgIC5qb3lyaWRlLXRpcC1ndWlkZSBoNSxcbiAgICAuam95cmlkZS10aXAtZ3VpZGUgaDYge1xuICAgICAgY29sb3I6ICRqb3lyaWRlLXRpcC1mb250LWNvbG9yO1xuICAgICAgZm9udC13ZWlnaHQ6ICRqb3lyaWRlLXRpcC1oZWFkZXItd2VpZ2h0O1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICAgIC5qb3lyaWRlLXRpcC1ndWlkZSBwIHtcbiAgICAgIGZvbnQtc2l6ZTogJGpveXJpZGUtdGlwLWZvbnQtc2l6ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgICBtYXJnaW46IHJlbS1jYWxjKDAgMCAxOCAwKTtcbiAgICB9XG5cbiAgICAuam95cmlkZS10aW1lci1pbmRpY2F0b3Itd3JhcCB7XG4gICAgICBib3JkZXI6ICRqb3lyaWRlLXRpcC1ib3JkZXI7XG4gICAgICBib3R0b206IHJlbS1jYWxjKDE2KTtcbiAgICAgIGhlaWdodDogJGpveXJpZGUtdGlwLXRpbWVyLWhlaWdodDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAkam95cmlkZS10aXAtdGltZXItd2lkdGg7XG4gICAgICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiByZW0tY2FsYygxNyk7XG4gICAgfVxuICAgIC5qb3lyaWRlLXRpbWVyLWluZGljYXRvciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkam95cmlkZS10aXAtdGltZXItY29sb3I7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgIHdpZHRoOiAwO1xuICAgIH1cblxuICAgIC5qb3lyaWRlLWNsb3NlLXRpcCB7XG4gICAgICBjb2xvcjogJGpveXJpZGUtdGlwLWNsb3NlLWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgICBmb250LXNpemU6ICRqb3lyaWRlLXRpcC1jbG9zZS1zaXplO1xuICAgICAgZm9udC13ZWlnaHQ6ICRqb3lyaWRlLXRpcC1jbG9zZS13ZWlnaHQ7XG4gICAgICBsaW5lLWhlaWdodDogLjUgIWltcG9ydGFudDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIHRvcDogMTBweDtcbiAgICAgICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IDEycHg7XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHsgY29sb3I6ICRzbW9rZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuXG4gICAgLmpveXJpZGUtbW9kYWwtYmcge1xuICAgICAgYmFja2dyb3VuZDogJGpveXJpZGUtc2NyZWVuZmlsbDtcbiAgICAgIGN1cnNvcjogJGN1cnNvci1wb2ludGVyLXZhbHVlO1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIHRvcDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgei1pbmRleDogMTAwO1xuICAgICAgI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gICAgfVxuXG4gICAgLmpveXJpZGUtZXhwb3NlLXdyYXBwZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgYm94LXNoYWRvdzogMCAwIDE1cHggJHdoaXRlO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgei1pbmRleDogMTAyO1xuICAgIH1cblxuICAgIC5qb3lyaWRlLWV4cG9zZS1jb3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICB6LWluZGV4OiA5OTk5O1xuICAgIH1cblxuXG4gICAgLyogU3R5bGVzIGZvciBzY3JlZW5zIHRoYXQgYXJlIGF0IGxlYXN0IDc2OHB4OyAqL1xuICAgIEBtZWRpYSAjeyRzbWFsbH0ge1xuICAgICAgLmpveXJpZGUtdGlwLWd1aWRlIHsgd2lkdGg6ICRqb3lyaWRlLXRpcC1kZWZhdWx0LXdpZHRoOyAjeyRkZWZhdWx0LWZsb2F0fTogaW5oZXJpdDtcbiAgICAgICAgLmpveXJpZGUtbnViIHtcbiAgICAgICAgICAmLmJvdHRvbSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRqb3lyaWRlLXRpcC1iZyAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlci0jeyRkZWZhdWx0LWZsb2F0fS1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlci0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259LWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYm90dG9tOiAtKCRqb3lyaWRlLXRpcC1udWItc2l6ZSoyKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgJi5yaWdodCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRqb3lyaWRlLXRpcC1iZyAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogLSgkam95cmlkZS10aXAtbnViLXNpemUqMik7XG4gICAgICAgICAgICB0b3A6ICRqb3lyaWRlLXRpcC1wb3NpdGlvbi1vZmZzZXQ7XG4gICAgICAgICAgfVxuICAgICAgICAgICYubGVmdCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRqb3lyaWRlLXRpcC1iZyAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGxlZnQ6IC0oJGpveXJpZGUtdGlwLW51Yi1zaXplKjIpO1xuICAgICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICB0b3A6ICRqb3lyaWRlLXRpcC1wb3NpdGlvbi1vZmZzZXQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0ICdnbG9iYWwnO1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtbGFiZWwtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIGxhYmVsc1xuJGxhYmVsLXBhZGRpbmc6IHJlbS1jYWxjKDQgOCA0KSAhZGVmYXVsdDtcbiRsYWJlbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIGxhYmVsIHRleHRcbiRsYWJlbC1mb250LXNpemluZzogcmVtLWNhbGMoMTEpICFkZWZhdWx0O1xuJGxhYmVsLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGxhYmVsLWZvbnQtY29sb3I6ICRvaWwgIWRlZmF1bHQ7XG4kbGFiZWwtZm9udC1jb2xvci1hbHQ6ICR3aGl0ZSAhZGVmYXVsdDtcbiRsYWJlbC1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG5cbi8vXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gY3JlYXRlIGEgZGVmYXVsdCBsYWJlbCBiYXNlLlxuQG1peGluIGxhYmVsLWJhc2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiAkbGFiZWwtZm9udC1mYW1pbHk7XG4gIGZvbnQtd2VpZ2h0OiAkbGFiZWwtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBtYXJnaW4tYm90dG9tOiBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gYWRkIGxhYmVsIHNpemUgc3R5bGVzLlxuLy8gJHBhZGRpbmcgLSBVc2VkIHRvIGRldGVybWluZSBsYWJlbCBwYWRkaW5nLiBEZWZhdWx0OiAkbGFiZWwtcGFkZGluZyB8fCByZW0tY2FsYyg0IDggNCkgIWRlZmF1bHRcbi8vICR0ZXh0LXNpemUgLSBVc2VkIHRvIGRldGVybWluZSBsYWJlbCB0ZXh0LXNpemUuIERlZmF1bHQ6ICR0ZXh0LXNpemUgZm91bmQgaW4gc2V0dGluZ3NcbkBtaXhpbiBsYWJlbC1zaXplKCRwYWRkaW5nOiRsYWJlbC1wYWRkaW5nLCAkdGV4dC1zaXplOiRsYWJlbC1mb250LXNpemluZykge1xuICBAaWYgJHBhZGRpbmcgeyBwYWRkaW5nOiAkcGFkZGluZzsgfVxuICBAaWYgJHRleHQtc2l6ZSB7IGZvbnQtc2l6ZTogJHRleHQtc2l6ZTsgfVxufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gYWRkIGxhYmVsIHN0eWxlcy5cbi8vICRiZyAtIERlZmF1bHQ6ICRwcmltYXJ5LWNvbG9yIChmb3VuZCBpbiBzZXR0aW5ncyBmaWxlKVxuLy8gJHJhZGl1cyAtIERlZmF1bHQ6IGZhbHNlLCBPcHRpb25zOiB0cnVlLCBzZXRzIHJhZGl1cyB0byAkZ2xvYmFsLXJhZGl1cyAoZm91bmQgaW4gc2V0dGluZ3MgZmlsZSlcbkBtaXhpbiBsYWJlbC1zdHlsZSgkYmc6JHByaW1hcnktY29sb3IsICRyYWRpdXM6ZmFsc2UpIHtcblxuICAvLyBXZSBjb250cm9sIHdoaWNoIGJhY2tncm91bmQgY29sb3IgY29tZXMgdGhyb3VnaFxuICBAaWYgJGJnIHtcblxuICAgIC8vIFRoaXMgZmluZCB0aGUgbGlnaHRuZXNzIHBlcmNlbnRhZ2Ugb2YgdGhlIGJhY2tncm91bmQgY29sb3IuXG4gICAgJGJnLWxpZ2h0bmVzczogbGlnaHRuZXNzKCRiZyk7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7XG5cbiAgICAvLyBXZSBjb250cm9sIHRoZSB0ZXh0IGNvbG9yIGZvciB5b3UgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG4gICAgQGlmICRiZy1saWdodG5lc3MgPCA3MCUgeyBjb2xvcjogJGxhYmVsLWZvbnQtY29sb3ItYWx0OyB9XG4gICAgQGVsc2UgeyBjb2xvcjogJGxhYmVsLWZvbnQtY29sb3I7IH1cbiAgfVxuXG4gIC8vIFdlIHVzZSB0aGlzIHRvIGNvbnRyb2wgdGhlIHJhZGl1cyBvbiBsYWJlbHMuXG4gIEBpZiAkcmFkaXVzID09IHRydWUgeyBAaW5jbHVkZSByYWRpdXMoJGxhYmVsLXJhZGl1cyk7IH1cbiAgQGVsc2UgaWYgJHJhZGl1cyB7IEBpbmNsdWRlIHJhZGl1cygkcmFkaXVzKTsgfVxuXG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBXZSB1c2UgdGhpcyB0byBhZGQgY2xvc2UgYnV0dG9ucyB0byBhbGVydHNcbi8vICRwYWRkaW5nIC0gRGVmYXVsdDogJGxhYmVsLXBhZGRpbmcsXG4vLyAkdGV4dC1zaXplIC0gRGVmYXVsdDogJGxhYmVsLWZvbnQtc2l6aW5nLFxuLy8gJGJnIC0gRGVmYXVsdDogJHByaW1hcnktY29sb3IoZm91bmQgaW4gc2V0dGluZ3MgZmlsZSlcbi8vICRyYWRpdXMgLSBEZWZhdWx0OiBmYWxzZSwgT3B0aW9uczogdHJ1ZSB3aGljaCBzZXRzIHJhZGl1cyB0byAkZ2xvYmFsLXJhZGl1cyAoZm91bmQgaW4gc2V0dGluZ3MgZmlsZSlcbkBtaXhpbiBsYWJlbCgkcGFkZGluZzokbGFiZWwtcGFkZGluZywgJHRleHQtc2l6ZTokbGFiZWwtZm9udC1zaXppbmcsICRiZzokcHJpbWFyeS1jb2xvciwgJHJhZGl1czpmYWxzZSkge1xuXG4gIEBpbmNsdWRlIGxhYmVsLWJhc2U7XG4gIEBpbmNsdWRlIGxhYmVsLXNpemUoJHBhZGRpbmcsICR0ZXh0LXNpemUpO1xuICBAaW5jbHVkZSBsYWJlbC1zdHlsZSgkYmcsICRyYWRpdXMpO1xufVxuXG5AaW5jbHVkZSBleHBvcnRzKFwibGFiZWxcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1sYWJlbC1jbGFzc2VzIHtcbiAgICAubGFiZWwge1xuICAgICAgQGluY2x1ZGUgbGFiZWwtYmFzZTtcbiAgICAgIEBpbmNsdWRlIGxhYmVsLXNpemU7XG4gICAgICBAaW5jbHVkZSBsYWJlbC1zdHlsZTtcblxuICAgICAgJi5yYWRpdXMgeyBAaW5jbHVkZSBsYWJlbC1zdHlsZShmYWxzZSwgdHJ1ZSk7IH1cbiAgICAgICYucm91bmQgeyBAaW5jbHVkZSBsYWJlbC1zdHlsZShmYWxzZSwgJHJhZGl1czoxMDAwcHgpOyB9XG5cbiAgICAgICYuYWxlcnQgICAgIHsgQGluY2x1ZGUgbGFiZWwtc3R5bGUoJGFsZXJ0LWNvbG9yKTsgfVxuICAgICAgJi53YXJuaW5nICAgeyBAaW5jbHVkZSBsYWJlbC1zdHlsZSgkd2FybmluZy1jb2xvcik7IH1cbiAgICAgICYuc3VjY2VzcyAgIHsgQGluY2x1ZGUgbGFiZWwtc3R5bGUoJHN1Y2Nlc3MtY29sb3IpOyB9XG4gICAgICAmLnNlY29uZGFyeSB7IEBpbmNsdWRlIGxhYmVsLXN0eWxlKCRzZWNvbmRhcnktY29sb3IpOyB9XG4gICAgICAmLmluZm8gICAgICB7IEBpbmNsdWRlIGxhYmVsLXN0eWxlKCRpbmZvLWNvbG9yKTsgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCAnZ2xvYmFsJztcblxuLy9cbi8vIEB2YXJpYWJsZXNcbi8vXG4kaW5jbHVkZS1odG1sLW1hZ2VsbGFuLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuJG1hZ2VsbGFuLWJnOiAkd2hpdGUgIWRlZmF1bHQ7XG4kbWFnZWxsYW4tcGFkZGluZzogMTBweCAhZGVmYXVsdDtcblxuQGluY2x1ZGUgZXhwb3J0cyhcIm1hZ2VsbGFuXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtbWFnZWxsYW4tY2xhc3NlcyB7XG5cbiAgICAje2RhdGEoJ21hZ2VsbGFuLWV4cGVkaXRpb24nKX0sICN7ZGF0YSgnbWFnZWxsYW4tZXhwZWRpdGlvbi1jbG9uZScpfSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkbWFnZWxsYW4tYmc7XG4gICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nOiAkbWFnZWxsYW4tcGFkZGluZztcbiAgICAgIHotaW5kZXg6IDUwO1xuXG4gICAgICAuc3ViLW5hdiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIGRkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgICAgICBhIHtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS44ZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCAnZ2xvYmFsJztcblxuLy9cbi8vIEB2YXJpYWJsZXNcbi8vXG4kaW5jbHVkZS1wYWdpbmF0aW9uLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGhlIHBhZ2luYXRpb24gY29udGFpbmVyXG4kcGFnaW5hdGlvbi1oZWlnaHQ6IHJlbS1jYWxjKDI0KSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLW1hcmdpbjogcmVtLWNhbGMoLTUpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc2V0IHRoZSBsaXN0LWl0ZW0gcHJvcGVydGllc1xuJHBhZ2luYXRpb24tbGktZmxvYXQ6ICRkZWZhdWx0LWZsb2F0ICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbGktaGVpZ2h0OiByZW0tY2FsYygyNCkgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1saS1mb250LWNvbG9yOiAkamV0ICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbGktZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1saS1tYXJnaW46IHJlbS1jYWxjKDUpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgZm9yIHRoZSBwYWdpbmF0aW9uIGFuY2hvciBsaW5rc1xuJHBhZ2luYXRpb24tbGluay1wYWQ6IHJlbS1jYWxjKDEgMTAgMSkgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1saW5rLWZvbnQtY29sb3I6ICRhbHVtaW51bSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWxpbmstYWN0aXZlLWJnOiBzY2FsZS1jb2xvcigkd2hpdGUsICRsaWdodG5lc3M6IC0xMCUpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgZm9yIGRpc2FibGVkIGFuY2hvciBsaW5rc1xuJHBhZ2luYXRpb24tbGluay11bmF2YWlsYWJsZS1jdXJzb3I6IGRlZmF1bHQgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1saW5rLXVuYXZhaWxhYmxlLWZvbnQtY29sb3I6ICRhbHVtaW51bSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWxpbmstdW5hdmFpbGFibGUtYmctYWN0aXZlOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIGZvciBjdXJyZW50bHkgc2VsZWN0ZWQgYW5jaG9yIGxpbmtzXG4kcGFnaW5hdGlvbi1saW5rLWN1cnJlbnQtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1saW5rLWN1cnJlbnQtZm9udC1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbGluay1jdXJyZW50LWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWxpbmstY3VycmVudC1jdXJzb3I6IGRlZmF1bHQgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1saW5rLWN1cnJlbnQtYWN0aXZlLWJnOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8gQG1peGluc1xuLy9cbi8vIFN0eWxlIHRoZSBwYWdpbmF0aW9uIGNvbnRhaW5lci4gQ3VycmVudGx5IG9ubHkgdXNlZCB3aGVuIGNlbnRlcmluZyBlbGVtZW50cy5cbi8vICRjZW50ZXIgLSBEZWZhdWx0OiBmYWxzZSwgT3B0aW9uczogdHJ1ZVxuQG1peGluIHBhZ2luYXRpb24tY29udGFpbmVyKCRjZW50ZXI6ZmFsc2UpIHtcbiAgQGlmICRjZW50ZXIgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbn1cblxuLy8gQG1peGluc1xuLy8gU3R5bGUgdW5hdmFpbGFibGUgbGlzdCBpdGVtc1xuQG1peGluIHBhZ2luYXRpb24tdW5hdmFpbGFibGUtaXRlbSB7XG4gIGEsIGJ1dHRvbiB7XG4gICAgY3Vyc29yOiAkcGFnaW5hdGlvbi1saW5rLXVuYXZhaWxhYmxlLWN1cnNvcjtcbiAgICBjb2xvcjogJHBhZ2luYXRpb24tbGluay11bmF2YWlsYWJsZS1mb250LWNvbG9yO1xuICB9XG4gICY6aG92ZXIgYSxcbiAgJiBhOmZvY3VzLFxuXG4gICY6aG92ZXIgYnV0dG9uLFxuICAmIGJ1dHRvbjpmb2N1c1xuICB7IGJhY2tncm91bmQ6ICRwYWdpbmF0aW9uLWxpbmstdW5hdmFpbGFibGUtYmctYWN0aXZlOyB9XG59XG4vLyBAbWl4aW5zXG4vLyBTdHlsZSB0aGUgY3VycmVudCBsaXN0IGl0ZW0uIERvIG5vdCBhc3N1bWUgdGhhdCB0aGUgY3VycmVudCBpdGVtIGhhc1xuLy8gYW4gYW5jaG9yIDxhPiBlbGVtZW50LlxuLy8gJGhhcy1hbmNob3IgLSBEZWZhdWx0OiB0cnVlLCBPcHRpb25zOiBmYWxzZVxuQG1peGluIHBhZ2luYXRpb24tY3VycmVudC1pdGVtKCRoYXMtYW5jaG9yOiB0cnVlKSB7XG4gIEBpZiAkaGFzLWFuY2hvciB7XG4gICAgYSwgYnV0dG9uIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwYWdpbmF0aW9uLWxpbmstY3VycmVudC1iYWNrZ3JvdW5kO1xuICAgICAgY29sb3I6ICRwYWdpbmF0aW9uLWxpbmstY3VycmVudC1mb250LWNvbG9yO1xuICAgICAgY3Vyc29yOiAkcGFnaW5hdGlvbi1saW5rLWN1cnJlbnQtY3Vyc29yO1xuICAgICAgZm9udC13ZWlnaHQ6ICRwYWdpbmF0aW9uLWxpbmstY3VycmVudC1mb250LXdlaWdodDtcblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMgeyBiYWNrZ3JvdW5kOiAkcGFnaW5hdGlvbi1saW5rLWN1cnJlbnQtYWN0aXZlLWJnOyB9XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBiYWNrZ3JvdW5kOiAkcGFnaW5hdGlvbi1saW5rLWN1cnJlbnQtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHBhZ2luYXRpb24tbGluay1jdXJyZW50LWZvbnQtY29sb3I7XG4gICAgY3Vyc29yOiAkcGFnaW5hdGlvbi1saW5rLWN1cnJlbnQtY3Vyc29yO1xuICAgIGZvbnQtd2VpZ2h0OiAkcGFnaW5hdGlvbi1saW5rLWN1cnJlbnQtZm9udC13ZWlnaHQ7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmc6ICRwYWdpbmF0aW9uLWxpbmstcGFkO1xuICAgIEBpbmNsdWRlIHJhZGl1cztcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7IGJhY2tncm91bmQ6ICRwYWdpbmF0aW9uLWxpbmstY3VycmVudC1hY3RpdmUtYmc7IH1cbiAgfVxufVxuXG4vLyBAbWl4aW5zXG4vL1xuLy8gV2UgdXNlIHRoaXMgbWl4aW4gdG8gc2V0IHRoZSBwcm9wZXJ0aWVzIGZvciB0aGUgY3JlYXRpbmcgRm91bmRhdGlvbiBwYWdpbmF0aW9uXG4vLyAkY2VudGVyIC0gTGVmdCBvciBjZW50ZXIgYWxpZ24gdGhlIGxpIGVsZW1lbnRzLiBEZWZhdWx0OiBmYWxzZVxuLy8gJGJhc2Utc3R5bGUgLSBTZXRzIGJhc2Ugc3R5bGVzIGZvciBwYWdpbmF0aW9uLiBEZWZhdWx0OiB0cnVlLCBPcHRpb25zOiBmYWxzZVxuLy8gJHVzZS1kZWZhdWx0LWNsYXNzZXMgLSBNYWtlcyB1bmF2YWlsYWJsZSAmIGN1cnJlbnQgY2xhc3NlcyBhdmFpbGFibGUgZm9yIHVzZS4gRGVmYXVsdDogdHJ1ZVxuQG1peGluIHBhZ2luYXRpb24oJGNlbnRlcjpmYWxzZSwgJGJhc2Utc3R5bGU6dHJ1ZSwgJHVzZS1kZWZhdWx0LWNsYXNzZXM6dHJ1ZSkge1xuXG4gIEBpZiAkYmFzZS1zdHlsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkcGFnaW5hdGlvbi1tYXJnaW47XG4gICAgbWluLWhlaWdodDogJHBhZ2luYXRpb24taGVpZ2h0O1xuXG4gICAgbGkge1xuICAgICAgY29sb3I6ICRwYWdpbmF0aW9uLWxpLWZvbnQtY29sb3I7XG4gICAgICBmb250LXNpemU6ICRwYWdpbmF0aW9uLWxpLWZvbnQtc2l6ZTtcbiAgICAgIGhlaWdodDogJHBhZ2luYXRpb24tbGktaGVpZ2h0O1xuICAgICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkcGFnaW5hdGlvbi1saS1tYXJnaW47XG5cbiAgICAgIGEsIGJ1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIHJhZGl1cztcbiAgICAgICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvcik7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGNvbG9yOiAkcGFnaW5hdGlvbi1saW5rLWZvbnQtY29sb3I7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6IDFlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIHBhZGRpbmc6ICRwYWdpbmF0aW9uLWxpbmstcGFkO1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIGEsXG4gICAgICBhOmZvY3VzLFxuICAgICAgJjpob3ZlciBidXR0b24sXG4gICAgICBidXR0b246Zm9jdXNcbiAgICAgIHsgYmFja2dyb3VuZDogJHBhZ2luYXRpb24tbGluay1hY3RpdmUtYmc7IH1cblxuICAgICAgQGlmICR1c2UtZGVmYXVsdC1jbGFzc2VzIHtcbiAgICAgICAgJi51bmF2YWlsYWJsZSB7IEBpbmNsdWRlIHBhZ2luYXRpb24tdW5hdmFpbGFibGUtaXRlbSgpOyB9XG4gICAgICAgICYuY3VycmVudCB7IEBpbmNsdWRlIHBhZ2luYXRpb24tY3VycmVudC1pdGVtKCk7IH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBMZWZ0IG9yIGNlbnRlciBhbGlnbiB0aGUgbGkgZWxlbWVudHNcbiAgbGkge1xuICAgIEBpZiAkY2VudGVyIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZsb2F0OiBub25lO1xuICAgIH0gQGVsc2Uge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmbG9hdDogJHBhZ2luYXRpb24tbGktZmxvYXQ7XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJwYWdpbmF0aW9uXCIpIHtcbiAgQGlmICRpbmNsdWRlLXBhZ2luYXRpb24tY2xhc3NlcyB7XG4gICAgdWwucGFnaW5hdGlvbiB7XG4gICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uO1xuICAgIH1cblxuICAgIC8qIFBhZ2luYXRpb24gY2VudHJlZCB3cmFwcGVyICovXG4gICAgLnBhZ2luYXRpb24tY2VudGVyZWQge1xuICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1jb250YWluZXIodHJ1ZSk7XG5cbiAgICAgIHVsLnBhZ2luYXRpb24ge1xuICAgICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uKHRydWUsIGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgJ2dsb2JhbCc7XG5cbi8vXG4vLyBAdmFyaWFibGVzXG4vL1xuJGluY2x1ZGUtaHRtbC1wYW5lbC1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIgc3R5bGVzXG4kcGFuZWwtYmc6IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogLTUlKSAhZGVmYXVsdDtcbiRwYW5lbC1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJHBhbmVsLWJvcmRlci1zaXplOiAxcHggIWRlZmF1bHQ7XG4kY2FsbG91dC1wYW5lbC1iZzogc2NhbGUtY29sb3IoJHByaW1hcnktY29sb3IsICRsaWdodG5lc3M6IDk0JSkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGlzICUgdG8gY29udHJvbCBob3cgbXVjaCB3ZSBkYXJrZW4gdGhpbmdzIG9uIGhvdmVyXG4kcGFuZWwtYm9yZGVyLWNvbG9yOiBzY2FsZS1jb2xvcigkcGFuZWwtYmcsICRsaWdodG5lc3M6IC0xMSUpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc2V0IGRlZmF1bHQgaW5uZXIgcGFkZGluZyBhbmQgYm90dG9tIG1hcmdpblxuJHBhbmVsLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcbiRwYW5lbC1wYWRkaW5nOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzZXQgZGVmYXVsdCBmb250IGNvbG9yc1xuJHBhbmVsLWZvbnQtY29sb3I6ICRvaWwgIWRlZmF1bHQ7XG4kcGFuZWwtZm9udC1jb2xvci1hbHQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuJHBhbmVsLWhlYWRlci1hZGp1c3Q6IHRydWUgIWRlZmF1bHQ7XG4kY2FsbG91dC1wYW5lbC1saW5rLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcbiRjYWxsb3V0LXBhbmVsLWxpbmstY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRjYWxsb3V0LXBhbmVsLWxpbmstY29sb3IsICRsaWdodG5lc3M6IC0xNCUpICFkZWZhdWx0O1xuLy9cbi8vIEBtaXhpbnNcbi8vXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgcGFuZWxzLlxuLy8gJGJnIC0gU2V0cyB0aGUgcGFuZWwgYmFja2dyb3VuZCBjb2xvci4gRGVmYXVsdDogJHBhbmVsLXBnIHx8IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogLTUlKSAhZGVmYXVsdFxuLy8gJHBhZGRpbmcgLSBTZXRzIHRoZSBwYW5lbCBwYWRkaW5nIGFtb3VudC4gRGVmYXVsdDogJHBhbmVsLXBhZGRpbmcgfHwgcmVtLWNhbGMoMjApXG4vLyAkYWRqdXN0IC0gU2V0cyB0aGUgZm9udCBjb2xvciBiYXNlZCBvbiB0aGUgZGFya25lc3Mgb2YgdGhlIGJnICYgcmVzZXRzIGhlYWRlciBsaW5lLWhlaWdodHMgZm9yIHBhbmVscy4gRGVmYXVsdDogJHBhbmVsLWhlYWRlci1hZGp1c3QgfHwgdHJ1ZVxuQG1peGluIHBhbmVsKCRiZzokcGFuZWwtYmcsICRwYWRkaW5nOiRwYW5lbC1wYWRkaW5nLCAkYWRqdXN0OiRwYW5lbC1oZWFkZXItYWRqdXN0LCAkYm9yZGVyOnRydWUpIHtcblxuICBAaWYgJGJnIHtcbiAgICAkYmctbGlnaHRuZXNzOiBsaWdodG5lc3MoJGJnKTtcblxuICAgIEBpZiAkYm9yZGVyIHtcbiAgICAgIGJvcmRlci1zdHlsZTogJHBhbmVsLWJvcmRlci1zdHlsZTtcbiAgICAgIGJvcmRlci13aWR0aDogJHBhbmVsLWJvcmRlci1zaXplO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkcGFuZWwtYm9yZGVyLWNvbG9yO1xuICAgIH0gQGVsc2Uge1xuICAgICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgICAgYm9yZGVyLXdpZHRoOiAwO1xuICAgIH1cblxuICAgIG1hcmdpbi1ib3R0b206ICRwYW5lbC1tYXJnaW4tYm90dG9tO1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuXG4gICAgYmFja2dyb3VuZDogJGJnO1xuICAgIEBpZiAkYmctbGlnaHRuZXNzID49IDUwJSB7IGNvbG9yOiAkcGFuZWwtZm9udC1jb2xvcjsgfVxuICAgIEBlbHNlIHsgY29sb3I6ICRwYW5lbC1mb250LWNvbG9yLWFsdDsgfVxuXG4gICAgLy8gUmVzcGVjdCB0aGUgcGFkZGluZywgZm9vbC5cbiAgICA+IDpmaXJzdC1jaGlsZCB7IG1hcmdpbi10b3A6IDA7IH1cbiAgICA+IDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4gICAgQGlmICRhZGp1c3Qge1xuICAgICAgLy8gV2Ugc2V0IHRoZSBmb250IGNvbG9yIGJhc2VkIG9uIHRoZSBkYXJrbmVzcyBvZiB0aGUgYmcuXG4gICAgICBAaWYgJGJnLWxpZ2h0bmVzcyA+PSA1MCUge1xuICAgICAgICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLCBsaSwgZGwgeyBjb2xvcjogJHBhbmVsLWZvbnQtY29sb3I7IH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgbGksIGRsIHsgY29sb3I6ICRwYW5lbC1mb250LWNvbG9yLWFsdDsgfVxuICAgICAgfVxuXG4gICAgICAvLyByZXNldCBoZWFkZXIgbGluZS1oZWlnaHRzIGZvciBwYW5lbHNcbiAgICAgIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICAgICAgICBsaW5lLWhlaWdodDogMTsgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjApIC8gMjtcbiAgICAgICAgJi5zdWJoZWFkZXIgeyBsaW5lLWhlaWdodDogMS40OyB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJwYW5lbFwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLXBhbmVsLWNsYXNzZXMge1xuXG4gICAgLyogUGFuZWxzICovXG4gICAgLnBhbmVsIHsgQGluY2x1ZGUgcGFuZWw7XG5cbiAgICAgICYuY2FsbG91dCB7XG4gICAgICAgIEBpbmNsdWRlIHBhbmVsKCRjYWxsb3V0LXBhbmVsLWJnKTtcbiAgICAgICAgYTpub3QoLmJ1dHRvbikge1xuICAgICAgICAgIGNvbG9yOiAkY2FsbG91dC1wYW5lbC1saW5rLWNvbG9yO1xuXG4gICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGNvbG9yOiAkY2FsbG91dC1wYW5lbC1saW5rLWNvbG9yLWhvdmVyO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLnJhZGl1cyB7XG4gICAgICAgIEBpbmNsdWRlIHJhZGl1cztcbiAgICAgIH1cblxuICAgIH1cblxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0ICdnbG9iYWwnO1xuXG4vL1xuLy8gQHZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtbWVkaWEtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBzZXQgdGhlIHByb2dyZXNzIGJhciBoZWlnaHRcbiRwcm9ncmVzcy1iYXItaGVpZ2h0OiByZW0tY2FsYygyNSkgIWRlZmF1bHQ7XG4kcHJvZ3Jlc3MtYmFyLWNvbG9yOiAkdmFwb3IgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBib3JkZXIgc3R5bGVzXG4kcHJvZ3Jlc3MtYmFyLWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJHdoaXRlLCAkbGlnaHRuZXNzOiAyMCUpICFkZWZhdWx0O1xuJHByb2dyZXNzLWJhci1ib3JkZXItc2l6ZTogMXB4ICFkZWZhdWx0O1xuJHByb2dyZXNzLWJhci1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJHByb2dyZXNzLWJhci1ib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGhlIG1hcmdpbiAmIHBhZGRpbmdcbiRwcm9ncmVzcy1iYXItcGFkOiByZW0tY2FsYygyKSAhZGVmYXVsdDtcbiRwcm9ncmVzcy1iYXItbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTApICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc2V0IHRoZSBtZXRlciBjb2xvcnNcbiRwcm9ncmVzcy1tZXRlci1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG4kcHJvZ3Jlc3MtbWV0ZXItc2Vjb25kYXJ5LWNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yICFkZWZhdWx0O1xuJHByb2dyZXNzLW1ldGVyLXN1Y2Nlc3MtY29sb3I6ICRzdWNjZXNzLWNvbG9yICFkZWZhdWx0O1xuJHByb2dyZXNzLW1ldGVyLWFsZXJ0LWNvbG9yOiAkYWxlcnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyBXZSB1c2UgdGhpcyB0byBzZXQgdXAgdGhlIHByb2dyZXNzIGJhciBjb250YWluZXJcbkBtaXhpbiBwcm9ncmVzcy1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvZ3Jlc3MtYmFyLWNvbG9yO1xuICBib3JkZXI6ICRwcm9ncmVzcy1iYXItYm9yZGVyLXNpemUgJHByb2dyZXNzLWJhci1ib3JkZXItc3R5bGUgJHByb2dyZXNzLWJhci1ib3JkZXItY29sb3I7XG4gIGhlaWdodDogJHByb2dyZXNzLWJhci1oZWlnaHQ7XG4gIG1hcmdpbi1ib3R0b206ICRwcm9ncmVzcy1iYXItbWFyZ2luLWJvdHRvbTtcbiAgcGFkZGluZzogJHByb2dyZXNzLWJhci1wYWQ7XG59XG5cbi8vIEBtaXhpbnNcbi8vXG4vLyAkYmcgLSBEZWZhdWx0OiAkcHJvZ3Jlc3MtbWV0ZXItY29sb3IgfHwgJHByaW1hcnktY29sb3JcbkBtaXhpbiBwcm9ncmVzcy1tZXRlcigkYmc6JHByb2dyZXNzLW1ldGVyLWNvbG9yKSB7XG4gIGJhY2tncm91bmQ6ICRiZztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuXG5AaW5jbHVkZSBleHBvcnRzKFwicHJvZ3Jlc3MtYmFyXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtbWVkaWEtY2xhc3NlcyB7XG5cbiAgICAvKiBQcm9ncmVzcyBCYXIgKi9cbiAgICAucHJvZ3Jlc3Mge1xuICAgICAgQGluY2x1ZGUgcHJvZ3Jlc3MtY29udGFpbmVyO1xuXG4gICAgICAvLyBNZXRlclxuICAgICAgLm1ldGVyIHtcbiAgICAgICAgQGluY2x1ZGUgcHJvZ3Jlc3MtbWV0ZXI7XG4gICAgICB9XG4gICAgICAmLnNlY29uZGFyeSAubWV0ZXIgeyBAaW5jbHVkZSBwcm9ncmVzcy1tZXRlcigkYmc6JHByb2dyZXNzLW1ldGVyLXNlY29uZGFyeS1jb2xvcik7IH1cbiAgICAgICYuc3VjY2VzcyAubWV0ZXIgeyBAaW5jbHVkZSBwcm9ncmVzcy1tZXRlcigkYmc6JHByb2dyZXNzLW1ldGVyLXN1Y2Nlc3MtY29sb3IpOyB9XG4gICAgICAmLmFsZXJ0IC5tZXRlciB7IEBpbmNsdWRlIHByb2dyZXNzLW1ldGVyKCRiZzokcHJvZ3Jlc3MtbWV0ZXItYWxlcnQtY29sb3IpOyB9XG5cbiAgICAgICYucmFkaXVzIHsgQGluY2x1ZGUgcmFkaXVzKCRwcm9ncmVzcy1iYXItYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIC5tZXRlciB7IEBpbmNsdWRlIHJhZGl1cygkcHJvZ3Jlc3MtYmFyLWJvcmRlci1yYWRpdXMgLSAxKTsgfVxuICAgICAgfVxuXG4gICAgICAmLnJvdW5kIHsgQGluY2x1ZGUgcmFkaXVzKDEwMDBweCk7XG4gICAgICAgIC5tZXRlciB7IEBpbmNsdWRlIHJhZGl1cyg5OTlweCk7IH1cbiAgICAgIH1cblxuICAgIH1cblxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0ICdnbG9iYWwnO1xuQGltcG9ydCAnZ3JpZCc7XG5cbi8vXG4vLyBAbmFtZSBfcmV2ZWFsLnNjc3Ncbi8vIEBkZXBlbmRlbmNpZXMgX2dsb2JhbC5zY3NzXG4vL1xuXG4kaW5jbHVkZS1odG1sLXJldmVhbC1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBzdHlsZSBvZiB0aGUgcmV2ZWFsIG92ZXJsYXkuXG4kcmV2ZWFsLW92ZXJsYXktYmc6IHJnYmEoJGJsYWNrLCAuNDUpICFkZWZhdWx0O1xuJHJldmVhbC1vdmVybGF5LWJnLW9sZDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aGUgc3R5bGUgb2YgdGhlIG1vZGFsIGl0c2VsZi5cbiRyZXZlYWwtbW9kYWwtYmc6ICR3aGl0ZSAhZGVmYXVsdDtcbiRyZXZlYWwtcG9zaXRpb24tdG9wOiByZW0tY2FsYygxMDApICFkZWZhdWx0O1xuJHJldmVhbC1kZWZhdWx0LXdpZHRoOiA4MCUgIWRlZmF1bHQ7XG4kcmV2ZWFsLW1heC13aWR0aDogJHJvdy13aWR0aCAhZGVmYXVsdDtcbiRyZXZlYWwtbW9kYWwtcGFkZGluZzogcmVtLWNhbGMoMzApICFkZWZhdWx0O1xuJHJldmVhbC1ib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKCRibGFjaywuNCkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSB0aGUgcmV2ZWFsIGNsb3NlIGJ1dHRvblxuJHJldmVhbC1jbG9zZS1mb250LXNpemU6IHJlbS1jYWxjKDQwKSAhZGVmYXVsdDtcbiRyZXZlYWwtY2xvc2UtdG9wOiByZW0tY2FsYygxMCkgIWRlZmF1bHQ7XG4kcmV2ZWFsLWNsb3NlLXNpZGU6IHJlbS1jYWxjKDIyKSAhZGVmYXVsdDtcbiRyZXZlYWwtY2xvc2UtY29sb3I6ICRiYXNlICFkZWZhdWx0O1xuJHJldmVhbC1jbG9zZS13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBzZXQgdGhlIGRlZmF1bHQgcmFkaXVzIHVzZWQgdGhyb3VnaG91dCB0aGUgY29yZS5cbiRyZXZlYWwtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcbiRyZXZlYWwtcm91bmQ6ICRnbG9iYWwtcm91bmRlZCAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgdGhlIG1vZGFsIGJvcmRlclxuJHJldmVhbC1ib3JkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJHJldmVhbC1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcbiRyZXZlYWwtYm9yZGVyLWNvbG9yOiAkc3RlZWwgIWRlZmF1bHQ7XG5cbiRyZXZlYWwtbW9kYWwtY2xhc3M6IFwicmV2ZWFsLW1vZGFsXCIgIWRlZmF1bHQ7XG4kY2xvc2UtcmV2ZWFsLW1vZGFsLWNsYXNzOiBcImNsb3NlLXJldmVhbC1tb2RhbFwiICFkZWZhdWx0O1xuXG4vLyBTZXQgYmFzZSB6LWluZGV4XG4kei1pbmRleC1iYXNlOiAxMDA1O1xuXG4vL1xuLy8gQG1peGluc1xuLy9cblxuLy8gV2UgdXNlIHRoaXMgdG8gY3JlYXRlIHRoZSByZXZlYWwgYmFja2dyb3VuZCBvdmVybGF5IHN0eWxlc1xuQG1peGluIHJldmVhbC1iZyggJGluY2x1ZGUtei1pbmRleC12YWx1ZTogdHJ1ZSApIHtcbiAgLy8gcG9zaXRpb246IGFic29sdXRlOyAvLyBhbGxvd3MgbW9kYWwgYmFja2dyb3VuZCB0byBleHRlbmQgYmV5b25kIHdpbmRvdyBwb3NpdGlvblxuICBiYWNrZ3JvdW5kOiAkcmV2ZWFsLW92ZXJsYXktYmctb2xkOyAvLyBBdXRvcHJlZml4ZXIgc2hvdWxkIGJlIHVzZWQgdG8gYXZvaWQgc3VjaCB2YXJpYWJsZXMgbmVlZGVkIHdoZW4gRm91bmRhdGlvbiBmb3IgU2l0ZXMgY2FuIGRvIHNvIGluIHRoZSBuZWFyIGZ1dHVyZS5cbiAgYmFja2dyb3VuZDogJHJldmVhbC1vdmVybGF5LWJnO1xuICBib3R0b206IDA7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGxlZnQ6IDA7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMDtcbiAgei1pbmRleDogaWYoICRpbmNsdWRlLXotaW5kZXgtdmFsdWUsICR6LWluZGV4LWJhc2UgLSAxLCBhdXRvICk7XG4gICN7JGRlZmF1bHQtZmxvYXR9OiAwO1xufVxuXG4vLyBXZSB1c2UgdGhpcyBtaXhpbiB0byBjcmVhdGUgdGhlIHN0cnVjdHVyZSBvZiBhIHJldmVhbCBtb2RhbFxuLy9cbi8vICRiYXNlLXN0eWxlIC0gUHJvdmlkZXMgcmV2ZWFsIGJhc2Ugc3R5bGVzLCBjYW4gYmUgc2V0IHRvIGZhbHNlIHRvIG92ZXJyaWRlLiBEZWZhdWx0OiB0cnVlLCBPcHRpb25zOiBmYWxzZVxuLy8gJHdpZHRoIC0gU2V0cyByZXZlYWwgd2lkdGggRGVmYXVsdDogJHJldmVhbC1kZWZhdWx0LXdpZHRoIHx8IDgwJVxuLy9cbkBtaXhpbiByZXZlYWwtbW9kYWwtYmFzZSggJGJhc2Utc3R5bGU6IHRydWUsICR3aWR0aDokcmV2ZWFsLWRlZmF1bHQtd2lkdGgsICRtYXgtd2lkdGg6JHJldmVhbC1tYXgtd2lkdGgsICRib3JkZXItcmFkaXVzOiAkcmV2ZWFsLXJhZGl1cykge1xuICBAaWYgJGJhc2Utc3R5bGUge1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDowO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAkei1pbmRleC1iYXNlO1xuICAgICN7JGRlZmF1bHQtZmxvYXR9OiAwO1xuXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICAgIG1pbi1oZWlnaHQ6MTAwdmg7XG4gICAgfVxuXG4gICAgLy8gTWFrZSBzdXJlIHJvd3MgZG9uJ3QgaGF2ZSBhIG1pbi13aWR0aCBvbiB0aGVtXG4gICAgLmNvbHVtbiwgLmNvbHVtbnMgeyBtaW4td2lkdGg6IDA7IH1cblxuICAgIC8vIEdldCByaWQgb2YgbWFyZ2luIGZyb20gZmlyc3QgYW5kIGxhc3QgZWxlbWVudCBpbnNpZGUgbW9kYWxcbiAgICA+IDpmaXJzdC1jaGlsZCB7IG1hcmdpbi10b3A6IDA7IH1cblxuICAgID4gOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIH1cblxuICBAaWYgJHdpZHRoIHtcbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBtYXgtd2lkdGg6ICRtYXgtd2lkdGg7XG4gICAgICByaWdodDogMDtcbiAgICAgIHdpZHRoOiAkd2lkdGg7XG4gICAgfVxuICB9XG59XG5cbi8vIFdlIHVzZSB0aGlzIHRvIHN0eWxlIHRoZSByZXZlYWwgbW9kYWwgZGVmYXVsdHNcbi8vXG4vLyAkYmcgLSBTZXRzIGJhY2tncm91bmQgY29sb3Igb2YgcmV2ZWFsIG1vZGFsLiBEZWZhdWx0OiAkcmV2ZWFsLW1vZGFsLWJnIHx8ICR3aGl0ZVxuLy8gJHBhZGRpbmcgLSBQYWRkaW5nIHRvIGFwcGx5IHRvIHJldmVhbCBtb2RhbC4gRGVmYXVsdDogJHJldmVhbC1tb2RhbC1wYWRkaW5nLlxuLy8gJGJvcmRlciAtIENob29zZSB3aGV0aGVyIHJldmVhbCB1c2VzIGEgYm9yZGVyLiBEZWZhdWx0OiB0cnVlLCBPcHRpb25zOiBmYWxzZVxuLy8gJGJvcmRlci1zdHlsZSAtIFNldCByZXZlYWwgYm9yZGVyIHN0eWxlLiBEZWZhdWx0OiAkcmV2ZWFsLWJvcmRlci1zdHlsZSB8fCBzb2xpZFxuLy8gJGJvcmRlci13aWR0aCAtIFdpZHRoIG9mIGJvcmRlciAoaS5lLiAxcHgpLiBEZWZhdWx0OiAkcmV2ZWFsLWJvcmRlci13aWR0aC5cbi8vICRib3JkZXItY29sb3IgLSBDb2xvciBvZiBib3JkZXIuIERlZmF1bHQ6ICRyZXZlYWwtYm9yZGVyLWNvbG9yLlxuLy8gJGJveC1zaGFkb3cgLSBDaG9vc2Ugd2hldGhlciBvciBub3QgdG8gaW5jbHVkZSB0aGUgZGVmYXVsdCBib3gtc2hhZG93LiBEZWZhdWx0OiB0cnVlLCBPcHRpb25zOiBmYWxzZVxuLy8gJHJhZGl1cyAtIElmIHRydWUsIHNldCB0byBtb2RhbCByYWRpdXMgd2hpY2ggaXMgJGdsb2JhbC1yYWRpdXMgfHwgZXhwbGljaXRseSBzZXQgcmFkaXVzIGFtb3VudCBpbiBweCAoZXguICRyYWRpdXM6MTBweCkuIERlZmF1bHQ6IGZhbHNlXG4vLyAkdG9wLW9mZnNldCAtIERlZmF1bHQ6ICRyZXZlYWwtcG9zaXRpb24tdG9wIHx8IDUwcHhcbkBtaXhpbiByZXZlYWwtbW9kYWwtc3R5bGUoXG4gICRiZzpmYWxzZSxcbiAgJHBhZGRpbmc6ZmFsc2UsXG4gICRib3JkZXI6ZmFsc2UsXG4gICRib3JkZXItc3R5bGU6JHJldmVhbC1ib3JkZXItc3R5bGUsXG4gICRib3JkZXItd2lkdGg6JHJldmVhbC1ib3JkZXItd2lkdGgsXG4gICRib3JkZXItY29sb3I6JHJldmVhbC1ib3JkZXItY29sb3IsXG4gICRib3gtc2hhZG93OmZhbHNlLFxuICAkcmFkaXVzOmZhbHNlLFxuICAkdG9wLW9mZnNldDpmYWxzZSkge1xuXG4gIEBpZiAkYmcgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7IH1cbiAgQGlmICRwYWRkaW5nICE9IGZhbHNlIHsgcGFkZGluZzogJHBhZGRpbmc7IH1cblxuICBAaWYgJGJvcmRlciB7IGJvcmRlcjogJGJvcmRlci1zdHlsZSAkYm9yZGVyLXdpZHRoICRib3JkZXItY29sb3I7IH1cblxuICAvLyBXZSBjYW4gY2hvb3NlIHdoZXRoZXIgb3Igbm90IHRvIGluY2x1ZGUgdGhlIGRlZmF1bHQgYm94LXNoYWRvdy5cbiAgQGlmICRib3gtc2hhZG93IHtcbiAgICBib3gtc2hhZG93OiAkcmV2ZWFsLWJveC1zaGFkb3c7XG4gIH1cblxuICAvLyBXZSBjYW4gY29udHJvbCBob3cgbXVjaCByYWRpdXMgaXMgdXNlZCBvbiB0aGUgbW9kYWxcbiAgQGlmICRyYWRpdXMgPT0gdHJ1ZSB7IEBpbmNsdWRlIHJhZGl1cygkcmV2ZWFsLXJhZGl1cyk7IH1cbiAgQGVsc2UgaWYgJHJhZGl1cyB7IEBpbmNsdWRlIHJhZGl1cygkcmFkaXVzKTsgfVxuXG4gIEBpZiAkdG9wLW9mZnNldCB7XG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgdG9wOiAkdG9wLW9mZnNldDtcbiAgICB9XG4gIH1cbn1cblxuLy8gV2UgdXNlIHRoaXMgdG8gY3JlYXRlIGEgY2xvc2UgYnV0dG9uIGZvciB0aGUgcmV2ZWFsIG1vZGFsXG4vL1xuLy8gJGNvbG9yIC0gRGVmYXVsdDogJHJldmVhbC1jbG9zZS1jb2xvciB8fCAkYmFzZVxuQG1peGluIHJldmVhbC1jbG9zZSgkY29sb3I6JHJldmVhbC1jbG9zZS1jb2xvcikge1xuICBjb2xvcjogJGNvbG9yO1xuICBjdXJzb3I6ICRjdXJzb3ItcG9pbnRlci12YWx1ZTtcbiAgZm9udC1zaXplOiAkcmV2ZWFsLWNsb3NlLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRyZXZlYWwtY2xvc2Utd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogMTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6ICRyZXZlYWwtY2xvc2UtdG9wO1xuICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkcmV2ZWFsLWNsb3NlLXNpZGU7XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJyZXZlYWxcIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1yZXZlYWwtY2xhc3NlcyB7XG5cbiAgICAvLyBSZXZlYWwgTW9kYWxzXG4gICAgLnJldmVhbC1tb2RhbC1iZyB7IEBpbmNsdWRlIHJldmVhbC1iZzsgfVxuXG4gICAgLiN7JHJldmVhbC1tb2RhbC1jbGFzc30ge1xuICAgICAgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLWJhc2U7XG4gICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtc3R5bGUoXG4gICAgICAgICRiZzokcmV2ZWFsLW1vZGFsLWJnLFxuICAgICAgICAkcGFkZGluZzokcmV2ZWFsLW1vZGFsLXBhZGRpbmcsXG4gICAgICAgICRib3JkZXI6dHJ1ZSxcbiAgICAgICAgJGJveC1zaGFkb3c6dHJ1ZSxcbiAgICAgICAgJHJhZGl1czpmYWxzZSxcbiAgICAgICAgJHRvcC1vZmZzZXQ6JHJldmVhbC1wb3NpdGlvbi10b3BcbiAgICAgICk7XG5cbiAgICAgICYucmFkaXVzIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXN0eWxlKCRyYWRpdXM6dHJ1ZSk7IH1cbiAgICAgICYucm91bmQgIHsgQGluY2x1ZGUgcmV2ZWFsLW1vZGFsLXN0eWxlKCRyYWRpdXM6JHJldmVhbC1yb3VuZCk7IH1cbiAgICAgICYuY29sbGFwc2UgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtc3R5bGUoJHBhZGRpbmc6MCk7IH1cbiAgICAgICYudGlueSAgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtYmFzZShmYWxzZSwgMzAlKTsgfVxuICAgICAgJi5zbWFsbCB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlKGZhbHNlLCA0MCUpOyB9XG4gICAgICAmLm1lZGl1bSAgeyBAaW5jbHVkZSByZXZlYWwtbW9kYWwtYmFzZShmYWxzZSwgNjAlKTsgfVxuICAgICAgJi5sYXJnZSB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlKGZhbHNlLCA3MCUpOyB9XG4gICAgICAmLnhsYXJnZSB7IEBpbmNsdWRlIHJldmVhbC1tb2RhbC1iYXNlKGZhbHNlLCA5NSUpOyB9XG4gICAgICAmLmZ1bGwge1xuICAgICAgICBAaW5jbHVkZSByZXZlYWwtbW9kYWwtYmFzZShmYWxzZSwgMTAwJSk7XG4gICAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICAgIGhlaWdodDoxMDAlO1xuICAgICAgICBsZWZ0OjA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBtaW4taGVpZ2h0OjEwMHZoO1xuICAgICAgICB0b3A6MDtcbiAgICAgIH1cblxuICAgICAgLy8gTW9kYWxzIHB1c2hlZCB0byBiYWNrXG4gICAgICAmLnRvYmFjayB7XG4gICAgICAgIHotaW5kZXg6ICR6LWluZGV4LWJhc2UgLSAyO1xuICAgICAgfVxuXG4gICAgICAuI3skY2xvc2UtcmV2ZWFsLW1vZGFsLWNsYXNzfSB7IEBpbmNsdWRlIHJldmVhbC1jbG9zZTsgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCAnZ2xvYmFsJztcblxuLy9cbi8vIEB2YXJpYWJsZXNcbi8vXG5cbiRpbmNsdWRlLWh0bWwtbmF2LWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCBwYWRkaW5nLlxuJHNpZGUtbmF2LXBhZGRpbmc6IHJlbS1jYWxjKDE0IDApICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBsaXN0IHN0eWxlcy5cbiRzaWRlLW5hdi1saXN0LXR5cGU6IG5vbmUgIWRlZmF1bHQ7XG4kc2lkZS1uYXYtbGlzdC1wb3NpdGlvbjogb3V0c2lkZSAhZGVmYXVsdDtcbiRzaWRlLW5hdi1saXN0LW1hcmdpbjogcmVtLWNhbGMoMCAwIDcgMCkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGxpbmsgc3R5bGVzLlxuJHNpZGUtbmF2LWxpbmstY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuJHNpZGUtbmF2LWxpbmstY29sb3ItYWN0aXZlOiBzY2FsZS1jb2xvcigkc2lkZS1uYXYtbGluay1jb2xvciwgJGxpZ2h0bmVzczogMzAlKSAhZGVmYXVsdDtcbiRzaWRlLW5hdi1saW5rLWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkc2lkZS1uYXYtbGluay1jb2xvciwgJGxpZ2h0bmVzczogMzAlKSAhZGVmYXVsdDtcbiRzaWRlLW5hdi1saW5rLWJnLWhvdmVyOiBoc2xhKDAsIDAsIDAsIC4wMjUpICFkZWZhdWx0O1xuJHNpZGUtbmF2LWxpbmstbWFyZ2luOiAwICFkZWZhdWx0O1xuJHNpZGUtbmF2LWxpbmstcGFkZGluZzogcmVtLWNhbGMoNyAxNCkgIWRlZmF1bHQ7XG4kc2lkZS1uYXYtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kc2lkZS1uYXYtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kc2lkZS1uYXYtZm9udC13ZWlnaHQtYWN0aXZlOiAkc2lkZS1uYXYtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kc2lkZS1uYXYtZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuJHNpZGUtbmF2LWZvbnQtZmFtaWx5LWFjdGl2ZTogJHNpZGUtbmF2LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBoZWFkaW5nIHN0eWxlcy5cbiRzaWRlLW5hdi1oZWFkaW5nLWNvbG9yOiAkc2lkZS1uYXYtbGluay1jb2xvciAhZGVmYXVsdDtcbiRzaWRlLW5hdi1oZWFkaW5nLWZvbnQtc2l6ZTogJHNpZGUtbmF2LWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRzaWRlLW5hdi1oZWFkaW5nLWZvbnQtd2VpZ2h0OiBib2xkICFkZWZhdWx0O1xuJHNpZGUtbmF2LWhlYWRpbmctdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgYm9yZGVyIHN0eWxlc1xuJHNpZGUtbmF2LWRpdmlkZXItc2l6ZTogMXB4ICFkZWZhdWx0O1xuJHNpZGUtbmF2LWRpdmlkZXItc3R5bGU6IHNvbGlkICFkZWZhdWx0O1xuJHNpZGUtbmF2LWRpdmlkZXItY29sb3I6IHNjYWxlLWNvbG9yKCR3aGl0ZSwgJGxpZ2h0bmVzczogLTEwJSkgIWRlZmF1bHQ7XG5cblxuLy9cbi8vIEBtaXhpbnNcbi8vXG5cblxuLy8gV2UgdXNlIHRoaXMgdG8gc3R5bGUgdGhlIHNpZGUtbmF2XG4vL1xuLy8gJGRpdmlkZXItY29sb3IgLSBCb3JkZXIgY29sb3Igb2YgZGl2aWRlci4gRGVmYXVsdDogJHNpZGUtbmF2LWRpdmlkZXItY29sb3IuXG4vLyAkZm9udC1zaXplIC0gRm9udCBzaXplIG9mIG5hdiBpdGVtcy4gRGVmYXVsdDogJHNpZGUtbmF2LWZvbnQtc2l6ZS5cbi8vICRsaW5rLWNvbG9yIC0gQ29sb3Igb2YgbmF2aWdhdGlvbiBsaW5rcy4gRGVmYXVsdDogJHNpZGUtbmF2LWxpbmstY29sb3IuXG4vLyAkbGluay1jb2xvci1ob3ZlciAtIENvbG9yIG9mIG5hdmlnYXRpb24gbGlua3Mgd2hlbiBob3ZlcmVkLiBEZWZhdWx0OiAkc2lkZS1uYXYtbGluay1jb2xvci1ob3Zlci5cbkBtaXhpbiBzaWRlLW5hdihcbiAgJGRpdmlkZXItY29sb3I6JHNpZGUtbmF2LWRpdmlkZXItY29sb3IsXG4gICRmb250LXNpemU6JHNpZGUtbmF2LWZvbnQtc2l6ZSxcbiAgJGxpbmstY29sb3I6JHNpZGUtbmF2LWxpbmstY29sb3IsXG4gICRsaW5rLWNvbG9yLWFjdGl2ZTokc2lkZS1uYXYtbGluay1jb2xvci1hY3RpdmUsXG4gICRsaW5rLWNvbG9yLWhvdmVyOiRzaWRlLW5hdi1saW5rLWNvbG9yLWhvdmVyLFxuICAkbGluay1iZy1ob3Zlcjokc2lkZS1uYXYtbGluay1iZy1ob3Zlcikge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1mYW1pbHk6ICRzaWRlLW5hdi1mb250LWZhbWlseTtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogJHNpZGUtbmF2LWxpc3QtcG9zaXRpb247XG4gIGxpc3Qtc3R5bGUtdHlwZTogJHNpZGUtbmF2LWxpc3QtdHlwZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAkc2lkZS1uYXYtcGFkZGluZztcblxuICBsaSB7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAkc2lkZS1uYXYtZm9udC13ZWlnaHQ7XG4gICAgbWFyZ2luOiAkc2lkZS1uYXYtbGlzdC1tYXJnaW47XG5cbiAgICBhOm5vdCguYnV0dG9uKSB7XG4gICAgICBjb2xvcjogJGxpbmstY29sb3I7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbjogJHNpZGUtbmF2LWxpbmstbWFyZ2luO1xuICAgICAgcGFkZGluZzogJHNpZGUtbmF2LWxpbmstcGFkZGluZztcbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGxpbmstYmctaG92ZXI7XG4gICAgICAgIGNvbG9yOiAkbGluay1jb2xvci1ob3ZlcjtcbiAgICAgIH1cbiAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgY29sb3I6ICRsaW5rLWNvbG9yLWFjdGl2ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmFjdGl2ZSA+IGE6Zmlyc3QtY2hpbGQ6bm90KC5idXR0b24pIHtcbiAgICAgIGNvbG9yOiAkc2lkZS1uYXYtbGluay1jb2xvci1hY3RpdmU7XG4gICAgICBmb250LWZhbWlseTogJHNpZGUtbmF2LWZvbnQtZmFtaWx5LWFjdGl2ZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkc2lkZS1uYXYtZm9udC13ZWlnaHQtYWN0aXZlO1xuICAgIH1cblxuICAgICYuZGl2aWRlciB7XG4gICAgICBib3JkZXItdG9wOiAkc2lkZS1uYXYtZGl2aWRlci1zaXplICRzaWRlLW5hdi1kaXZpZGVyLXN0eWxlO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiAkZGl2aWRlci1jb2xvcjtcbiAgICB9XG5cbiAgICAmLmhlYWRpbmcge1xuICAgICAgY29sb3I6ICRzaWRlLW5hdi1oZWFkaW5nLWNvbG9yO1xuICAgICAgZm9udDoge1xuICAgICAgICBzaXplOiAkc2lkZS1uYXYtaGVhZGluZy1mb250LXNpemU7XG4gICAgICAgIHdlaWdodDogJHNpZGUtbmF2LWhlYWRpbmctZm9udC13ZWlnaHQ7XG4gICAgICB9XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogJHNpZGUtbmF2LWhlYWRpbmctdGV4dC10cmFuc2Zvcm07XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJzaWRlLW5hdlwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLW5hdi1jbGFzc2VzIHtcbiAgICAuc2lkZS1uYXYge0BpbmNsdWRlIHNpZGUtbmF2O31cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCAnZ2xvYmFsJztcbkBpbXBvcnQgJ2J1dHRvbnMnO1xuQGltcG9ydCAnZHJvcGRvd24tYnV0dG9ucyc7XG5cbi8vXG4vLyBAbmFtZSBfc3BsaXQtYnV0dG9ucy5zY3NzXG4vLyBAZGVwZW5kZW5jaWVzIF9idXR0b25zLnNjc3MsIF9nbG9iYWwuc2Nzc1xuLy9cblxuLy9cbi8vIEB2YXJpYWJsZXNcbi8vXG5cbiRpbmNsdWRlLWh0bWwtYnV0dG9uLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgZGlmZmVyZW50IHNoYXJlZCBzdHlsZXMgZm9yIFNwbGl0IEJ1dHRvbnNcbiRzcGxpdC1idXR0b24tZnVuY3Rpb24tZmFjdG9yOiAxMCUgIWRlZmF1bHQ7XG4kc3BsaXQtYnV0dG9uLXBpcC1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJHNwbGl0LWJ1dHRvbi1waXAtY29sb3ItYWx0OiAkb2lsICFkZWZhdWx0O1xuJHNwbGl0LWJ1dHRvbi1hY3RpdmUtYmctdGludDogcmdiYSgwLDAsMCwwLjEpICFkZWZhdWx0O1xuJHNwbGl0LWJ1dHRvbi1zcGFuLWJvcmRlci1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjUpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCB0aW55IHNwbGl0IGJ1dHRvbnNcbiRzcGxpdC1idXR0b24tcGFkZGluZy10bnk6ICRidXR0b24tcGlwLXRueSAqIDEwICFkZWZhdWx0O1xuJHNwbGl0LWJ1dHRvbi1zcGFuLXdpZHRoLXRueTogJGJ1dHRvbi1waXAtdG55ICogNiAhZGVmYXVsdDtcbiRzcGxpdC1idXR0b24tcGlwLXNpemUtdG55OiAkYnV0dG9uLXBpcC10bnkgIWRlZmF1bHQ7XG4kc3BsaXQtYnV0dG9uLXBpcC10b3AtdG55OiAkYnV0dG9uLXBpcC10bnkgKiAyICFkZWZhdWx0O1xuJHNwbGl0LWJ1dHRvbi1waXAtZGVmYXVsdC1mbG9hdC10bnk6IHJlbS1jYWxjKC02KSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgc21hbGwgc3BsaXQgYnV0dG9uc1xuJHNwbGl0LWJ1dHRvbi1wYWRkaW5nLXNtbDogJGJ1dHRvbi1waXAtc21sICogMTAgIWRlZmF1bHQ7XG4kc3BsaXQtYnV0dG9uLXNwYW4td2lkdGgtc21sOiAkYnV0dG9uLXBpcC1zbWwgKiA2ICFkZWZhdWx0O1xuJHNwbGl0LWJ1dHRvbi1waXAtc2l6ZS1zbWw6ICRidXR0b24tcGlwLXNtbCAhZGVmYXVsdDtcbiRzcGxpdC1idXR0b24tcGlwLXRvcC1zbWw6ICRidXR0b24tcGlwLXNtbCAqIDEuNSAhZGVmYXVsdDtcbiRzcGxpdC1idXR0b24tcGlwLWRlZmF1bHQtZmxvYXQtc21sOiByZW0tY2FsYygtNikgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIG1lZGl1bSBzcGxpdCBidXR0b25zXG4kc3BsaXQtYnV0dG9uLXBhZGRpbmctbWVkOiAkYnV0dG9uLXBpcC1tZWQgKiA5ICFkZWZhdWx0O1xuJHNwbGl0LWJ1dHRvbi1zcGFuLXdpZHRoLW1lZDogJGJ1dHRvbi1waXAtbWVkICogNS41ICFkZWZhdWx0O1xuJHNwbGl0LWJ1dHRvbi1waXAtc2l6ZS1tZWQ6ICRidXR0b24tcGlwLW1lZCAtIHJlbS1jYWxjKDMpICFkZWZhdWx0O1xuJHNwbGl0LWJ1dHRvbi1waXAtdG9wLW1lZDogJGJ1dHRvbi1waXAtbWVkICogMS41ICFkZWZhdWx0O1xuJHNwbGl0LWJ1dHRvbi1waXAtZGVmYXVsdC1mbG9hdC1tZWQ6IHJlbS1jYWxjKC02KSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgbGFyZ2Ugc3BsaXQgYnV0dG9uc1xuJHNwbGl0LWJ1dHRvbi1wYWRkaW5nLWxyZzogJGJ1dHRvbi1waXAtbHJnICogOCAhZGVmYXVsdDtcbiRzcGxpdC1idXR0b24tc3Bhbi13aWR0aC1scmc6ICRidXR0b24tcGlwLWxyZyAqIDUgIWRlZmF1bHQ7XG4kc3BsaXQtYnV0dG9uLXBpcC1zaXplLWxyZzogJGJ1dHRvbi1waXAtbHJnIC0gcmVtLWNhbGMoNikgIWRlZmF1bHQ7XG4kc3BsaXQtYnV0dG9uLXBpcC10b3AtbHJnOiAkYnV0dG9uLXBpcC1scmcgKyByZW0tY2FsYyg1KSAhZGVmYXVsdDtcbiRzcGxpdC1idXR0b24tcGlwLWRlZmF1bHQtZmxvYXQtbHJnOiByZW0tY2FsYygtNikgIWRlZmF1bHQ7XG5cblxuLy9cbi8vIEBtaXhpbnNcbi8vXG5cbi8vIFdlIHVzZSB0aGlzIG1peGluIHRvIGNyZWF0ZSBzcGxpdCBidXR0b25zIHRoYXQgYnVpbGQgdXBvbiB0aGUgYnV0dG9uIG1peGluc1xuLy9cbi8vICRwYWRkaW5nIC0gVHlwZSBvZiBwYWRkaW5nIHRvIGFwcGx5LiBEZWZhdWx0OiBtZWRpdW0uIE9wdGlvbnM6IHRpbnksIHNtYWxsLCBtZWRpdW0sIGxhcmdlLlxuLy8gJHBpcC1jb2xvciAtIENvbG9yIG9mIHRoZSB0cmlhbmdsZS4gRGVmYXVsdDogJHNwbGl0LWJ1dHRvbi1waXAtY29sb3IuXG4vLyAkc3Bhbi1ib3JkZXIgLSBCb3JkZXIgY29sb3Igb2YgYnV0dG9uIGRpdmlkZXIuIERlZmF1bHQ6ICRzcGxpdC1idXR0b24tc3Bhbi1ib3JkZXItY29sb3IuXG4vLyAkYmFzZS1zdHlsZSAtIEFwcGx5IGJhc2Ugc3R5bGUgdG8gc3BsaXQgYnV0dG9uLiBEZWZhdWx0OiB0cnVlLlxuQG1peGluIHNwbGl0LWJ1dHRvbihcbiAgJHBhZGRpbmc6bWVkaXVtLFxuICAkcGlwLWNvbG9yOiRzcGxpdC1idXR0b24tcGlwLWNvbG9yLCBcbiAgJHNwYW4tYm9yZGVyOiRzcGxpdC1idXR0b24tc3Bhbi1ib3JkZXItY29sb3IsIFxuICAkYmFzZS1zdHlsZTp0cnVlKSB7XG5cbiAgLy8gV2l0aCB0aGlzLCB3ZSBjYW4gY29udHJvbCB3aGV0aGVyIG9yIG5vdCB0aGUgYmFzZSBzdHlsZXMgY29tZSB0aHJvdWdoLlxuICBAaWYgJGJhc2Utc3R5bGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC8vIFN0eWxpbmcgZm9yIHRoZSBzcGxpdCBhcnJvdyBjbGlja2FibGUgYXJlYVxuICAgIHNwYW4ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAwO1xuICAgICAgdG9wOiAwO1xuICAgICAgYm9yZGVyLSN7JGRlZmF1bHQtZmxvYXR9OiBzb2xpZCAxcHg7XG5cbiAgICAgIC8vIEJ1aWxkaW5nIHRoZSB0cmlhbmdsZSBwaXAgaW5kaWNhdG9yXG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBpbnNldDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICN7JGRlZmF1bHQtZmxvYXR9OiA1MCU7XG4gICAgICB9XG5cbiAgICAgICY6YWN0aXZlIHsgYmFja2dyb3VuZC1jb2xvcjogJHNwbGl0LWJ1dHRvbi1hY3RpdmUtYmctdGludDsgfVxuICAgIH1cbiAgfVxuXG4gIC8vIENvbnRyb2wgdGhlIGJvcmRlciBjb2xvciBmb3IgdGhlIHNwYW4gYXJlYSBvZiB0aGUgc3BsaXQgYnV0dG9uXG4gIEBpZiAkc3Bhbi1ib3JkZXIge1xuICAgIHNwYW4ge1xuICAgICAgYm9yZGVyLSN7JGRlZmF1bHQtZmxvYXR9LWNvbG9yOiAkc3Bhbi1ib3JkZXI7XG4gICAgfVxuICB9XG5cbiAgLy8gU3R5bGUgb2YgdGhlIGJ1dHRvbiBhbmQgY2xpY2thYmxlIGFyZWEgZm9yIHRpbnkgc2l6ZXNcbiAgQGlmICRwYWRkaW5nID09IHRpbnkge1xuICAgIHBhZGRpbmctI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJHNwbGl0LWJ1dHRvbi1wYWRkaW5nLXRueTtcblxuICAgIHNwYW4geyB3aWR0aDogJHNwbGl0LWJ1dHRvbi1zcGFuLXdpZHRoLXRueTtcbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAkc3BsaXQtYnV0dG9uLXBpcC1zaXplLXRueTtcbiAgICAgICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkc3BsaXQtYnV0dG9uLXBpcC1kZWZhdWx0LWZsb2F0LXRueTtcbiAgICAgICAgdG9wOiA0OCU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gU3R5bGUgb2YgdGhlIGJ1dHRvbiBhbmQgY2xpY2thYmxlIGFyZWEgZm9yIHNtYWxsIHNpemVzXG4gIEBlbHNlIGlmICRwYWRkaW5nID09IHNtYWxsIHtcbiAgICBwYWRkaW5nLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICRzcGxpdC1idXR0b24tcGFkZGluZy1zbWw7XG5cbiAgICBzcGFuIHsgd2lkdGg6ICRzcGxpdC1idXR0b24tc3Bhbi13aWR0aC1zbWw7XG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci13aWR0aDogJHNwbGl0LWJ1dHRvbi1waXAtc2l6ZS1zbWw7XG4gICAgICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJHNwbGl0LWJ1dHRvbi1waXAtZGVmYXVsdC1mbG9hdC1zbWw7XG4gICAgICAgIHRvcDogNDglO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFN0eWxlIG9mIHRoZSBidXR0b24gYW5kIGNsaWNrYWJsZSBhcmVhIGZvciBkZWZhdWx0IChtZWRpdW0pIHNpemVzXG4gIEBlbHNlIGlmICRwYWRkaW5nID09IG1lZGl1bSB7XG4gICAgcGFkZGluZy0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkc3BsaXQtYnV0dG9uLXBhZGRpbmctbWVkO1xuXG4gICAgc3BhbiB7IHdpZHRoOiAkc3BsaXQtYnV0dG9uLXNwYW4td2lkdGgtbWVkO1xuICAgICAgJjphZnRlciB7XG4gICAgICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgICAgICBib3JkZXItd2lkdGg6ICRzcGxpdC1idXR0b24tcGlwLXNpemUtbWVkO1xuICAgICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRzcGxpdC1idXR0b24tcGlwLWRlZmF1bHQtZmxvYXQtbWVkO1xuICAgICAgICB0b3A6IDQ4JTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTdHlsZSBvZiB0aGUgYnV0dG9uIGFuZCBjbGlja2FibGUgYXJlYSBmb3IgbGFyZ2Ugc2l6ZXNcbiAgQGVsc2UgaWYgJHBhZGRpbmcgPT0gbGFyZ2Uge1xuICAgIHBhZGRpbmctI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJHNwbGl0LWJ1dHRvbi1wYWRkaW5nLWxyZztcblxuICAgIHNwYW4geyB3aWR0aDogJHNwbGl0LWJ1dHRvbi1zcGFuLXdpZHRoLWxyZztcbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAkc3BsaXQtYnV0dG9uLXBpcC1zaXplLWxyZztcbiAgICAgICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkc3BsaXQtYnV0dG9uLXBpcC1kZWZhdWx0LWZsb2F0LWxyZztcbiAgICAgICAgdG9wOiA0OCU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQ29udHJvbCB0aGUgY29sb3Igb2YgdGhlIHRyaWFuZ2xlIHBpcFxuICBAaWYgJHBpcC1jb2xvciB7XG4gICAgc3BhbjphZnRlciB7IGJvcmRlci1jb2xvcjogJHBpcC1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICB9XG59XG5cbkBpbmNsdWRlIGV4cG9ydHMoXCJzcGxpdC1idXR0b25cIikge1xuICBAaWYgJGluY2x1ZGUtaHRtbC1idXR0b24tY2xhc3NlcyB7XG5cbiAgICAuc3BsaXQuYnV0dG9uIHsgQGluY2x1ZGUgc3BsaXQtYnV0dG9uO1xuXG4gICAgICAmLnNlY29uZGFyeSB7IEBpbmNsdWRlIHNwbGl0LWJ1dHRvbihmYWxzZSwgJHNwbGl0LWJ1dHRvbi1waXAtY29sb3IsICRzcGxpdC1idXR0b24tc3Bhbi1ib3JkZXItY29sb3IsIGZhbHNlKTsgfVxuICAgICAgJi5hbGVydCB7IEBpbmNsdWRlIHNwbGl0LWJ1dHRvbihmYWxzZSwgZmFsc2UsICRzcGxpdC1idXR0b24tc3Bhbi1ib3JkZXItY29sb3IsIGZhbHNlKTsgfVxuICAgICAgJi5zdWNjZXNzIHsgQGluY2x1ZGUgc3BsaXQtYnV0dG9uKGZhbHNlLCBmYWxzZSwgJHNwbGl0LWJ1dHRvbi1zcGFuLWJvcmRlci1jb2xvciwgZmFsc2UpOyB9XG5cbiAgICAgICYudGlueSB7IEBpbmNsdWRlIHNwbGl0LWJ1dHRvbih0aW55LCBmYWxzZSwgZmFsc2UsIGZhbHNlKTsgfVxuICAgICAgJi5zbWFsbCB7IEBpbmNsdWRlIHNwbGl0LWJ1dHRvbihzbWFsbCwgZmFsc2UsIGZhbHNlLCBmYWxzZSk7IH1cbiAgICAgICYubGFyZ2UgeyBAaW5jbHVkZSBzcGxpdC1idXR0b24obGFyZ2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UpOyB9XG4gICAgICAmLmV4cGFuZCB7IHBhZGRpbmctbGVmdDogMnJlbTsgfVxuXG4gICAgICAmLnNlY29uZGFyeSB7IEBpbmNsdWRlIHNwbGl0LWJ1dHRvbihmYWxzZSwgJHNwbGl0LWJ1dHRvbi1waXAtY29sb3ItYWx0LCBmYWxzZSwgZmFsc2UpOyB9XG5cbiAgICAgICYucmFkaXVzIHNwYW4geyBAaW5jbHVkZSBzaWRlLXJhZGl1cygkb3Bwb3NpdGUtZGlyZWN0aW9uLCAkZ2xvYmFsLXJhZGl1cyk7IH1cbiAgICAgICYucm91bmQgc3BhbiB7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sIDEwMDBweCk7IH1cbiAgICAgICYubm8tcGlwe1xuICAgICAgICBzcGFuOmJlZm9yZXsgYm9yZGVyLXN0eWxlOm5vbmU7IH1cbiAgICAgICAgc3BhbjphZnRlcnsgYm9yZGVyLXN0eWxlOm5vbmU7IH1cbiAgICAgICAgc3Bhbj5pe1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuMjg4ODllbTtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAtMC40ODg4OWVtO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0ICdnbG9iYWwnO1xuXG4vL1xuLy8gQG5hbWUgX3RhYmxlcy5zY3NzXG4vLyBAZGVwZW5kZW5jaWVzIF9nbG9iYWwuc2Nzc1xuLy9cblxuLy9cbi8vIEB2YXJpYWJsZXNcbi8vXG5cbiRpbmNsdWRlLWh0bWwtdGFibGUtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBUaGVzZSBjb250cm9sIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgdGFibGUgYW5kIGV2ZW4gcm93c1xuJHRhYmxlLWJnOiAkd2hpdGUgIWRlZmF1bHQ7XG4kdGFibGUtZXZlbi1yb3ctYmc6ICRzbm93ICFkZWZhdWx0O1xuXG4vLyBUaGVzZSBjb250cm9sIHRoZSB0YWJsZSBjZWxsIGJvcmRlciBzdHlsZVxuJHRhYmxlLWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kdGFibGUtYm9yZGVyLXNpemU6IDFweCAhZGVmYXVsdDtcbiR0YWJsZS1ib3JkZXItY29sb3I6ICRnYWluc2Jvcm8gIWRlZmF1bHQ7XG5cbi8vIFRoZXNlIGNvbnRyb2wgdGhlIHRhYmxlIGhlYWQgc3R5bGVzXG4kdGFibGUtaGVhZC1iZzogJHdoaXRlLXNtb2tlICFkZWZhdWx0O1xuJHRhYmxlLWhlYWQtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG4kdGFibGUtaGVhZC1mb250LWNvbG9yOiAkamV0ICFkZWZhdWx0O1xuJHRhYmxlLWhlYWQtZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuJHRhYmxlLWhlYWQtcGFkZGluZzogcmVtLWNhbGMoOCAxMCAxMCkgIWRlZmF1bHQ7XG5cbi8vIFRoZXNlIGNvbnRyb2wgdGhlIHRhYmxlIGZvb3Qgc3R5bGVzXG4kdGFibGUtZm9vdC1iZzogJHRhYmxlLWhlYWQtYmcgIWRlZmF1bHQ7XG4kdGFibGUtZm9vdC1mb250LXNpemU6ICR0YWJsZS1oZWFkLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiR0YWJsZS1mb290LWZvbnQtY29sb3I6ICR0YWJsZS1oZWFkLWZvbnQtY29sb3IgIWRlZmF1bHQ7XG4kdGFibGUtZm9vdC1mb250LXdlaWdodDogJHRhYmxlLWhlYWQtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kdGFibGUtZm9vdC1wYWRkaW5nOiAkdGFibGUtaGVhZC1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLyBUaGVzZSBjb250cm9sIHRoZSBjYXB0aW9uXG4kdGFibGUtY2FwdGlvbi1iZzogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kdGFibGUtY2FwdGlvbi1mb250LWNvbG9yOiAkdGFibGUtaGVhZC1mb250LWNvbG9yICFkZWZhdWx0O1xuJHRhYmxlLWNhcHRpb24tZm9udC1zaXplOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG4kdGFibGUtY2FwdGlvbi1mb250LXdlaWdodDogYm9sZCAhZGVmYXVsdDtcblxuLy8gVGhlc2UgY29udHJvbCB0aGUgcm93IHBhZGRpbmcgYW5kIGZvbnQgc3R5bGVzXG4kdGFibGUtcm93LXBhZGRpbmc6IHJlbS1jYWxjKDkgMTApICFkZWZhdWx0O1xuJHRhYmxlLXJvdy1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcbiR0YWJsZS1yb3ctZm9udC1jb2xvcjogJGpldCAhZGVmYXVsdDtcbiR0YWJsZS1saW5lLWhlaWdodDogcmVtLWNhbGMoMTgpICFkZWZhdWx0O1xuXG4vLyBUaGVzZSBhcmUgZm9yIGNvbnRyb2xsaW5nIHRoZSBsYXlvdXQsIGRpc3BsYXkgYW5kIG1hcmdpbiBvZiB0YWJsZXNcbiR0YWJsZS1sYXlvdXQ6IGF1dG8gIWRlZmF1bHQ7XG4kdGFibGUtZGlzcGxheTogdGFibGUtY2VsbCAhZGVmYXVsdDtcbiR0YWJsZS1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG5cblxuLy9cbi8vIEBtaXhpbnNcbi8vXG5cbkBtaXhpbiB0YWJsZSB7XG4gIGJhY2tncm91bmQ6ICR0YWJsZS1iZztcbiAgYm9yZGVyOiAkdGFibGUtYm9yZGVyLXN0eWxlICR0YWJsZS1ib3JkZXItc2l6ZSAkdGFibGUtYm9yZGVyLWNvbG9yO1xuICBtYXJnaW4tYm90dG9tOiAkdGFibGUtbWFyZ2luLWJvdHRvbTtcbiAgdGFibGUtbGF5b3V0OiAkdGFibGUtbGF5b3V0O1xuXG4gIGNhcHRpb24ge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1jYXB0aW9uLWJnO1xuICAgIGNvbG9yOiAkdGFibGUtY2FwdGlvbi1mb250LWNvbG9yO1xuICAgIGZvbnQ6IHtcbiAgICAgIHNpemU6ICR0YWJsZS1jYXB0aW9uLWZvbnQtc2l6ZTtcbiAgICAgIHdlaWdodDogJHRhYmxlLWNhcHRpb24tZm9udC13ZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgdGhlYWQge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1oZWFkLWJnO1xuXG4gICAgdHIge1xuICAgICAgdGgsXG4gICAgICB0ZCB7XG4gICAgICAgIGNvbG9yOiAkdGFibGUtaGVhZC1mb250LWNvbG9yO1xuICAgICAgICBmb250LXNpemU6ICR0YWJsZS1oZWFkLWZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICR0YWJsZS1oZWFkLWZvbnQtd2VpZ2h0O1xuICAgICAgICBwYWRkaW5nOiAkdGFibGUtaGVhZC1wYWRkaW5nO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRmb290IHtcbiAgICBiYWNrZ3JvdW5kOiAkdGFibGUtZm9vdC1iZztcblxuICAgIHRyIHtcbiAgICAgIHRoLFxuICAgICAgdGQge1xuICAgICAgICBjb2xvcjogJHRhYmxlLWZvb3QtZm9udC1jb2xvcjtcbiAgICAgICAgZm9udC1zaXplOiAkdGFibGUtZm9vdC1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkdGFibGUtZm9vdC1mb250LXdlaWdodDtcbiAgICAgICAgcGFkZGluZzogJHRhYmxlLWZvb3QtcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0ciB7XG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgY29sb3I6ICR0YWJsZS1yb3ctZm9udC1jb2xvcjtcbiAgICAgIGZvbnQtc2l6ZTogJHRhYmxlLXJvdy1mb250LXNpemU7XG4gICAgICBwYWRkaW5nOiAkdGFibGUtcm93LXBhZGRpbmc7XG4gICAgICB0ZXh0LWFsaWduOiAkZGVmYXVsdC1mbG9hdDtcbiAgICB9XG5cbiAgICAmLmV2ZW4sXG4gICAgJi5hbHQsXG4gICAgJjpudGgtb2YtdHlwZShldmVuKSB7IGJhY2tncm91bmQ6ICR0YWJsZS1ldmVuLXJvdy1iZzsgfVxuICB9XG5cbiAgdGhlYWQgdHIgdGgsXG4gIHRmb290IHRyIHRoLFxuICB0Zm9vdCB0ciB0ZCxcbiAgdGJvZHkgdHIgdGgsXG4gIHRib2R5IHRyIHRkLFxuICB0ciB0ZCB7IGRpc3BsYXk6ICR0YWJsZS1kaXNwbGF5OyBsaW5lLWhlaWdodDogJHRhYmxlLWxpbmUtaGVpZ2h0OyB9XG59XG5cblxuQGluY2x1ZGUgZXhwb3J0cyhcInRhYmxlXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtdGFibGUtY2xhc3NlcyB7XG4gICAgdGFibGUge1xuICAgICAgQGluY2x1ZGUgdGFibGU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG5AaW1wb3J0ICdnbG9iYWwnO1xuQGltcG9ydCAnZ3JpZCc7XG5cbi8vXG4vLyBAdmFyaWFibGVzXG4vL1xuXG4kaW5jbHVkZS1odG1sLXRhYnMtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4kdGFicy1uYXZpZ2F0aW9uLXBhZGRpbmc6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24tYmctY29sb3I6ICRzaWx2ZXIgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWFjdGl2ZS1iZy1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJHRhYnMtbmF2aWdhdGlvbi1ob3Zlci1iZy1jb2xvcjogc2NhbGUtY29sb3IoJHRhYnMtbmF2aWdhdGlvbi1iZy1jb2xvciwgJGxpZ2h0bmVzczogLTYlKSAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24tZm9udC1jb2xvcjogJGpldCAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24tYWN0aXZlLWZvbnQtY29sb3I6ICR0YWJzLW5hdmlnYXRpb24tZm9udC1jb2xvciAhZGVmYXVsdDtcbiR0YWJzLW5hdmlnYXRpb24tZm9udC1zaXplOiByZW0tY2FsYygxNikgIWRlZmF1bHQ7XG4kdGFicy1uYXZpZ2F0aW9uLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcblxuJHRhYnMtY29udGVudC1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygyNCkgIWRlZmF1bHQ7XG4kdGFicy1jb250ZW50LXBhZGRpbmc6ICgkY29sdW1uLWd1dHRlci8yKSAhZGVmYXVsdDtcblxuJHRhYnMtdmVydGljYWwtbmF2aWdhdGlvbi1tYXJnaW4tYm90dG9tOiAxLjI1cmVtICFkZWZhdWx0O1xuXG5AaW5jbHVkZSBleHBvcnRzKFwidGFiXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtdGFicy1jbGFzc2VzIHtcbiAgICAudGFicyB7XG4gICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuXG4gICAgICBkZCxcbiAgICAgIC50YWItdGl0bGUge1xuICAgICAgICBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgID4gYSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYnMtbmF2aWdhdGlvbi1iZy1jb2xvcjtcbiAgICAgICAgICBjb2xvcjogJHRhYnMtbmF2aWdhdGlvbi1mb250LWNvbG9yO1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAkdGFicy1uYXZpZ2F0aW9uLWZvbnQtZmFtaWx5O1xuICAgICAgICAgIGZvbnQtc2l6ZTogJHRhYnMtbmF2aWdhdGlvbi1mb250LXNpemU7XG4gICAgICAgICAgcGFkZGluZzogJHRhYnMtbmF2aWdhdGlvbi1wYWRkaW5nICR0YWJzLW5hdmlnYXRpb24tcGFkZGluZyAqIDI7XG5cbiAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJzLW5hdmlnYXRpb24taG92ZXItYmctY29sb3I7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5hY3RpdmUgYSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYnMtbmF2aWdhdGlvbi1hY3RpdmUtYmctY29sb3I7XG4gICAgICAgICAgY29sb3I6ICR0YWJzLW5hdmlnYXRpb24tYWN0aXZlLWZvbnQtY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5yYWRpdXMge1xuICAgICAgICBkZDpmaXJzdC1jaGlsZCxcbiAgICAgICAgLnRhYjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgYSB7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRkZWZhdWx0LWZsb2F0LCAkZ2xvYmFsLXJhZGl1cyk7IH1cbiAgICAgICAgfVxuXG4gICAgICAgIGRkOmxhc3QtY2hpbGQsXG4gICAgICAgIC50YWI6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgYSB7IEBpbmNsdWRlIHNpZGUtcmFkaXVzKCRvcHBvc2l0ZS1kaXJlY3Rpb24sICRnbG9iYWwtcmFkaXVzKTsgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYudmVydGljYWwge1xuICAgICAgICBkZCxcbiAgICAgICAgLnRhYi10aXRsZSB7XG4gICAgICAgICAgcG9zaXRpb246IGluaGVyaXQ7XG4gICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnRhYnMtY29udGVudCB7XG4gICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgIG1hcmdpbi1ib3R0b206ICR0YWJzLWNvbnRlbnQtbWFyZ2luLWJvdHRvbTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICA+IC5jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0O1xuICAgICAgICBwYWRkaW5nOiAkdGFicy1jb250ZW50LXBhZGRpbmcgMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB9XG4gICAgICAgICYuY29udGFpbmVkIHtcbiAgICAgICAgICBwYWRkaW5nOiAkdGFicy1jb250ZW50LXBhZGRpbmc7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi52ZXJ0aWNhbCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgID4gLmNvbnRlbnQge1xuICAgICAgICAgIHBhZGRpbmc6IDAgJHRhYnMtY29udGVudC1wYWRkaW5nO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgLnRhYnMge1xuICAgICAgICAmLnZlcnRpY2FsIHtcbiAgICAgICAgICBmbG9hdDogJGRlZmF1bHQtZmxvYXQ7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206ICR0YWJzLXZlcnRpY2FsLW5hdmlnYXRpb24tbWFyZ2luLWJvdHRvbSAhaW1wb3J0YW50O1xuICAgICAgICAgIG1heC13aWR0aDogMjAlO1xuICAgICAgICAgIHdpZHRoOiAyMCU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLnRhYnMtY29udGVudCB7XG4gICAgICAgICYudmVydGljYWwge1xuICAgICAgICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgICAgICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06IC0xcHg7XG4gICAgICAgICAgbWF4LXdpZHRoOiA4MCU7XG4gICAgICAgICAgcGFkZGluZy0jeyRkZWZhdWx0LWZsb2F0fTogMXJlbTtcbiAgICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm5vLWpzIHtcbiAgICAgIC50YWJzLWNvbnRlbnQgPiAuY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgJ2dsb2JhbCc7XG5cbi8vXG4vLyBAbmFtZSBfdGh1bWJzLnNjc3Ncbi8vIEBkZXBlbmRlbmNpZXMgX2dsb2JhbHMuc2Nzc1xuLy9cblxuLy9cbi8vIEB2YXJpYWJsZXNcbi8vXG5cbiRpbmNsdWRlLWh0bWwtbWVkaWEtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBib3JkZXIgc3R5bGVzXG4kdGh1bWItYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiR0aHVtYi1ib3JkZXItd2lkdGg6IDRweCAhZGVmYXVsdDtcbiR0aHVtYi1ib3JkZXItY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiR0aHVtYi1ib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgkYmxhY2ssLjIpICFkZWZhdWx0O1xuJHRodW1iLWJveC1zaGFkb3ctaG92ZXI6IDAgMCA2cHggMXB4IHJnYmEoJHByaW1hcnktY29sb3IsMC41KSAhZGVmYXVsdDtcblxuLy8gUmFkaXVzIGFuZCB0cmFuc2l0aW9uIHNwZWVkIGZvciB0aHVtYnNcbiR0aHVtYi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuJHRodW1iLXRyYW5zaXRpb24tc3BlZWQ6IDIwMG1zICFkZWZhdWx0O1xuXG4vL1xuLy8gQG1peGluc1xuLy9cblxuLy8gV2UgdXNlIHRoaXMgdG8gY3JlYXRlIGltYWdlIHRodW1ibmFpbCBzdHlsZXMuXG4vL1xuLy8gJGJvcmRlci13aWR0aCAtIFdpZHRoIG9mIGJvcmRlciBhcm91bmQgdGh1bWJuYWlsLiBEZWZhdWx0OiAkdGh1bWItYm9yZGVyLXdpZHRoLlxuLy8gJGJveC1zaGFkb3cgLSBCb3ggc2hhZG93IHRvIGFwcGx5IHRvIHRodW1ibmFpbC4gRGVmYXVsdDogJHRodW1iLWJveC1zaGFkb3cuXG4vLyAkYm94LXNoYWRvdy1ob3ZlciAtIEJveCBzaGFkb3cgdG8gYXBwbHkgb24gaG92ZXIuIERlZmF1bHQ6ICR0aHVtYi1ib3gtc2hhZG93LWhvdmVyLlxuQG1peGluIHRodW1iKFxuICAkYm9yZGVyLXdpZHRoOiR0aHVtYi1ib3JkZXItd2lkdGgsXG4gICRib3gtc2hhZG93OiR0aHVtYi1ib3gtc2hhZG93LFxuICAkYm94LXNoYWRvdy1ob3ZlcjokdGh1bWItYm94LXNoYWRvdy1ob3Zlcikge1xuICBib3JkZXI6ICR0aHVtYi1ib3JkZXItc3R5bGUgJGJvcmRlci13aWR0aCAkdGh1bWItYm9yZGVyLWNvbG9yO1xuICBib3gtc2hhZG93OiAkYm94LXNoYWRvdztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBsaW5lLWhlaWdodDogMDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6ICRib3gtc2hhZG93LWhvdmVyO1xuICB9XG59XG5cblxuQGluY2x1ZGUgZXhwb3J0cyhcInRodW1iXCIpIHtcbiAgQGlmICRpbmNsdWRlLWh0bWwtbWVkaWEtY2xhc3NlcyB7XG5cbiAgICAvKiBJbWFnZSBUaHVtYm5haWxzICovXG4gICAgLnRoIHtcbiAgICAgIEBpbmNsdWRlIHRodW1iO1xuICAgICAgQGluY2x1ZGUgc2luZ2xlLXRyYW5zaXRpb24oYWxsLCAkdGh1bWItdHJhbnNpdGlvbi1zcGVlZCwgZWFzZS1vdXQpO1xuXG4gICAgICAmLnJhZGl1cyB7IEBpbmNsdWRlIHJhZGl1cygkdGh1bWItcmFkaXVzKTsgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCAnZ2xvYmFsJztcbkBpbXBvcnQgJ2dyaWQnO1xuQGltcG9ydCAnYnV0dG9ucyc7XG5AaW1wb3J0ICdmb3Jtcyc7XG5cbi8vXG4vLyBUb3AgQmFyIFZhcmlhYmxlc1xuLy9cbiRpbmNsdWRlLWh0bWwtdG9wLWJhci1jbGFzc2VzOiAkaW5jbHVkZS1odG1sLWNsYXNzZXMgIWRlZmF1bHQ7XG5cbi8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSB0b3AgYmFyXG4kdG9wYmFyLWJnLWNvbG9yOiAkb2lsICFkZWZhdWx0O1xuJHRvcGJhci1iZzogJHRvcGJhci1iZy1jb2xvciAhZGVmYXVsdDtcblxuLy8gSGVpZ2h0IGFuZCBtYXJnaW5cbiR0b3BiYXItaGVpZ2h0OiByZW0tY2FsYyg0NSkgIWRlZmF1bHQ7XG4kdG9wYmFyLW1hcmdpbi1ib3R0b206IDAgIWRlZmF1bHQ7XG5cbi8vIENvbnRyb2xsaW5nIHRoZSBzdHlsZXMgZm9yIHRoZSB0aXRsZSBpbiB0aGUgdG9wIGJhclxuJHRvcGJhci10aXRsZS13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kdG9wYmFyLXRpdGxlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTcpICFkZWZhdWx0O1xuXG4vLyBTZXQgdGhlIGxpbmsgY29sb3JzIGFuZCBzdHlsZXMgZm9yIHRvcC1sZXZlbCBuYXZcbiR0b3BiYXItbGluay1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJHRvcGJhci1saW5rLWNvbG9yLWhvdmVyOiAkd2hpdGUgIWRlZmF1bHQ7XG4kdG9wYmFyLWxpbmstY29sb3ItYWN0aXZlOiAkd2hpdGUgIWRlZmF1bHQ7XG4kdG9wYmFyLWxpbmstY29sb3ItYWN0aXZlLWhvdmVyOiAkd2hpdGUgIWRlZmF1bHQ7XG4kdG9wYmFyLWxpbmstd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJHRvcGJhci1saW5rLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuJHRvcGJhci1saW5rLWhvdmVyLWxpZ2h0bmVzczogLTEwJSAhZGVmYXVsdDsgLy8gRGFya2VuIGJ5IDEwJVxuJHRvcGJhci1saW5rLWJnOiAkdG9wYmFyLWJnICFkZWZhdWx0O1xuJHRvcGJhci1saW5rLWJnLWhvdmVyOiAkamV0ICFkZWZhdWx0O1xuJHRvcGJhci1saW5rLWJnLWNvbG9yLWhvdmVyOiAkY2hhcmNvYWwgIWRlZmF1bHQ7XG4kdG9wYmFyLWxpbmstYmctYWN0aXZlOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcbiR0b3BiYXItbGluay1iZy1hY3RpdmUtaG92ZXI6IHNjYWxlLWNvbG9yKCRwcmltYXJ5LWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKSAhZGVmYXVsdDtcbiR0b3BiYXItbGluay1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4kdG9wYmFyLWxpbmstdGV4dC10cmFuc2Zvcm06IG5vbmUgIWRlZmF1bHQ7XG4kdG9wYmFyLWxpbmstcGFkZGluZzogKCR0b3BiYXItaGVpZ2h0IC8gMykgIWRlZmF1bHQ7XG4kdG9wYmFyLWJhY2stbGluay1zaXplOiByZW0tY2FsYygxOCkgIWRlZmF1bHQ7XG4kdG9wYmFyLWxpbmstZHJvcGRvd24tcGFkZGluZzogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuJHRvcGJhci1idXR0b24tZm9udC1zaXplOiAuNzVyZW0gIWRlZmF1bHQ7XG4kdG9wYmFyLWJ1dHRvbi10b3A6IDdweCAhZGVmYXVsdDtcblxuLy8gU3R5bGUgdGhlIHRvcCBiYXIgZHJvcGRvd24gZWxlbWVudHNcbiR0b3BiYXItZHJvcGRvd24tYmc6ICRvaWwgIWRlZmF1bHQ7XG4kdG9wYmFyLWRyb3Bkb3duLWxpbmstY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiR0b3BiYXItZHJvcGRvd24tbGluay1jb2xvci1ob3ZlcjogJHRvcGJhci1saW5rLWNvbG9yLWhvdmVyICFkZWZhdWx0O1xuJHRvcGJhci1kcm9wZG93bi1saW5rLWJnOiAkb2lsICFkZWZhdWx0O1xuJHRvcGJhci1kcm9wZG93bi1saW5rLWJnLWhvdmVyOiAkamV0ICFkZWZhdWx0O1xuJHRvcGJhci1kcm9wZG93bi1saW5rLXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiR0b3BiYXItZHJvcGRvd24tdG9nZ2xlLXNpemU6IDVweCAhZGVmYXVsdDtcbiR0b3BiYXItZHJvcGRvd24tdG9nZ2xlLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kdG9wYmFyLWRyb3Bkb3duLXRvZ2dsZS1hbHBoYTogLjQgIWRlZmF1bHQ7XG5cbiR0b3BiYXItZHJvcGRvd24tbGFiZWwtY29sb3I6ICRtb25zb29uICFkZWZhdWx0O1xuJHRvcGJhci1kcm9wZG93bi1sYWJlbC10ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFkZWZhdWx0O1xuJHRvcGJhci1kcm9wZG93bi1sYWJlbC1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG4kdG9wYmFyLWRyb3Bkb3duLWxhYmVsLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTApICFkZWZhdWx0O1xuJHRvcGJhci1kcm9wZG93bi1sYWJlbC1iZzogJG9pbCAhZGVmYXVsdDtcblxuLy8gVG9wIG1lbnUgaWNvbiBzdHlsZXNcbiR0b3BiYXItbWVudS1saW5rLXRyYW5zZm9ybTogdXBwZXJjYXNlICFkZWZhdWx0O1xuJHRvcGJhci1tZW51LWxpbmstZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG4kdG9wYmFyLW1lbnUtbGluay13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuJHRvcGJhci1tZW51LWxpbmstY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiR0b3BiYXItbWVudS1pY29uLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kdG9wYmFyLW1lbnUtbGluay1jb2xvci10b2dnbGVkOiAkanVtYm8gIWRlZmF1bHQ7XG4kdG9wYmFyLW1lbnUtaWNvbi1jb2xvci10b2dnbGVkOiAkanVtYm8gIWRlZmF1bHQ7XG4kdG9wYmFyLW1lbnUtaWNvbi1wb3NpdGlvbjogJG9wcG9zaXRlLWRpcmVjdGlvbiAhZGVmYXVsdDsgLy8gQ2hhbmdlIHRvICRkZWZhdWx0LWZsb2F0IGZvciBhIGxlZnQgbWVudSBpY29uXG5cbi8vIFRyYW5zaXRpb25zIGFuZCBicmVha3BvaW50IHN0eWxlc1xuJHRvcGJhci10cmFuc2l0aW9uLXNwZWVkOiAzMDBtcyAhZGVmYXVsdDtcbi8vIFVzaW5nIHJlbS1jYWxjIGZvciB0aGUgYmVsb3cgYnJlYWtwb2ludCBjYXVzZXMgaXNzdWVzIHdpdGggdG9wIGJhclxuJHRvcGJhci1icmVha3BvaW50OiAje2xvd2VyLWJvdW5kKCRtZWRpdW0tcmFuZ2UpfSAhZGVmYXVsdDsgLy8gQ2hhbmdlIHRvIDk5OTlweCBmb3IgYWx3YXlzIG1vYmlsZSBsYXlvdXRcbiR0b3BiYXItbWVkaWEtcXVlcnk6IFwiI3skc2NyZWVufSBhbmQgKG1pbi13aWR0aDoje2xvd2VyLWJvdW5kKCR0b3BiYXItYnJlYWtwb2ludCl9KVwiO1xuXG4vLyBUb3AtYmFyIGlucHV0IHN0eWxlc1xuJHRvcGJhci1pbnB1dC1oZWlnaHQ6IHJlbS1jYWxjKDI4KSAhZGVmYXVsdDtcblxuLy8gRGl2aWRlciBTdHlsZXNcbiR0b3BiYXItZGl2aWRlci1ib3JkZXItYm90dG9tOiBzb2xpZCAxcHggc2NhbGUtY29sb3IoJHRvcGJhci1iZy1jb2xvciwgJGxpZ2h0bmVzczogMTMlKSAhZGVmYXVsdDtcbiR0b3BiYXItZGl2aWRlci1ib3JkZXItdG9wOiBzb2xpZCAxcHggc2NhbGUtY29sb3IoJHRvcGJhci1iZy1jb2xvciwgJGxpZ2h0bmVzczogLTUwJSkgIWRlZmF1bHQ7XG5cbi8vIFN0aWNreSBDbGFzc1xuJHRvcGJhci1zdGlja3ktY2xhc3M6IFwiLnN0aWNreVwiICFkZWZhdWx0O1xuJHRvcGJhci1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7IC8vU2V0IGZhbHNlIHRvIHJlbW92ZSB0aGUgdHJpYW5nbGUgaWNvbiBmcm9tIHRoZSBtZW51IGl0ZW1cbiR0b3BiYXItZHJvcGRvd24tYXJyb3dzOiB0cnVlICFkZWZhdWx0OyAvL1NldCBmYWxzZSB0byByZW1vdmUgdGhlIFxcMDBiYiA+PiB0ZXh0IGZyb20gZHJvcGRvd24gc3VibmF2aWdhdGlvbiBsaVxuXG4vLyBBY2Nlc3NpYmlsaXR5IG1peGlucyBmb3IgaGlkaW5nIGFuZCBzaG93aW5nIHRoZSBtZW51IGRyb3Bkb3duIGl0ZW1zXG5AbWl4aW4gdG9wYmFyLWhpZGUtZHJvcGRvd24ge1xuICAvLyBNYWtlcyBhbiBlbGVtZW50IHZpc3VhbGx5IGhpZGRlbiBieSBkZWZhdWx0LCBidXQgdmlzaWJsZSB3aGVuIGZvY3VzZWQuXG4gIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlKCk7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5AbWl4aW4gdG9wYmFyLXNob3ctZHJvcGRvd24ge1xuICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZS1vZmYoKTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50OyAvLyBSZXNldCB0aGUgcG9zaXRpb24gZnJvbSBzdGF0aWMgdG8gYWJzb2x1dGVcbn1cblxuQGluY2x1ZGUgZXhwb3J0cyhcInRvcC1iYXJcIikge1xuXG4gIEBpZiAkaW5jbHVkZS1odG1sLXRvcC1iYXItY2xhc3NlcyB7XG5cbiAgICAvLyBVc2VkIHRvIHByb3ZpZGUgbWVkaWEgcXVlcnkgdmFsdWVzIGZvciBqYXZhc2NyaXB0IGNvbXBvbmVudHMuXG4gICAgLy8gVGhpcyBjbGFzcyBpcyBnZW5lcmF0ZWQgZGVzcGl0ZSB0aGUgdmFsdWUgb2YgJGluY2x1ZGUtaHRtbC10b3AtYmFyLWNsYXNzZXNcbiAgICAvLyB0byBlbnN1cmUgd2lkdGggY2FsY3VsYXRpb25zIHdvcmsgY29ycmVjdGx5LlxuICAgIG1ldGEuZm91bmRhdGlvbi1tcS10b3BiYXIge1xuICAgICAgZm9udC1mYW1pbHk6IFwiL1wiICsgdW5xdW90ZSgkdG9wYmFyLW1lZGlhLXF1ZXJ5KSArIFwiL1wiO1xuICAgICAgd2lkdGg6ICR0b3BiYXItYnJlYWtwb2ludDtcbiAgICB9XG5cbiAgICAvKiBXcmFwcGVkIGFyb3VuZCAudG9wLWJhciB0byBjb250YWluIHRvIGdyaWQgd2lkdGggKi9cbiAgICAuY29udGFpbi10by1ncmlkIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogJHRvcGJhci1iZztcblxuICAgICAgLnRvcC1iYXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkdG9wYmFyLW1hcmdpbi1ib3R0b207XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gV3JhcHBlZCBhcm91bmQgLnRvcC1iYXIgdG8gbWFrZSBpdCBzdGljayB0byB0aGUgdG9wXG4gICAgLmZpeGVkIHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIHRvcDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgei1pbmRleDogOTk7XG4gICAgICAjeyRkZWZhdWx0LWZsb2F0fTogMDtcblxuICAgICAgJi5leHBhbmRlZDpub3QoLnRvcC1iYXIpIHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAudGl0bGUtYXJlYSB7XG4gICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIHotaW5kZXg6IDk5O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRW5zdXJlIHlvdSBjYW4gc2Nyb2xsIHRoZSBtZW51IG9uIHNtYWxsIHNjcmVlbnNcbiAgICAgICAgLnRvcC1iYXItc2VjdGlvbiB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogJHRvcGJhci1oZWlnaHQ7XG4gICAgICAgICAgei1pbmRleDogOTg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAudG9wLWJhciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkdG9wYmFyLWJnO1xuICAgICAgaGVpZ2h0OiAkdG9wYmFyLWhlaWdodDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkdG9wYmFyLWhlaWdodDtcbiAgICAgIG1hcmdpbi1ib3R0b206ICR0b3BiYXItbWFyZ2luLWJvdHRvbTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgIC8vIFRvcGJhciBHbG9iYWwgbGlzdCBTdHlsZXNcbiAgICAgIHVsIHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cblxuICAgICAgLnJvdyB7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgIH1cblxuICAgICAgZm9ybSxcbiAgICAgIGlucHV0LCBcbiAgICAgIHNlbGVjdCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG5cbiAgICAgIGlucHV0LCBcbiAgICAgIHNlbGVjdCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHRvcGJhci1idXR0b24tZm9udC1zaXplO1xuICAgICAgICBoZWlnaHQ6ICR0b3BiYXItaW5wdXQtaGVpZ2h0O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogLjM1cmVtO1xuICAgICAgICBwYWRkaW5nLXRvcDogLjM1cmVtO1xuICAgICAgfVxuXG4gICAgICAuYnV0dG9uLCBidXR0b24ge1xuICAgICAgICBmb250LXNpemU6ICR0b3BiYXItYnV0dG9uLWZvbnQtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IC4zNXJlbSArIHJlbS1jYWxjKDEpO1xuICAgICAgICBwYWRkaW5nLXRvcDogLjM1cmVtICsgcmVtLWNhbGMoMSk7XG4gICAgICAgIC8vIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgLy8gdG9wOiAtMXB4O1xuXG4gICAgICAgIC8vIENvcnJlY3RzIGEgc2xpZ2h0IG1pc2FsaWdubWVudCB3aGVuIHB1dCBuZXh0IHRvIGFuIGlucHV0IGZpZWxkXG4gICAgICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIHRvcDogLTFweDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBUaXRsZSBBcmVhXG4gICAgICAudGl0bGUtYXJlYSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxuXG4gICAgICAubmFtZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHJlbS1iYXNlO1xuICAgICAgICBoZWlnaHQ6ICR0b3BiYXItaGVpZ2h0O1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgaDEsIGgyLCBoMywgaDQsIHAsIHNwYW4ge1xuICAgICAgICAgIGZvbnQtc2l6ZTogJHRvcGJhci10aXRsZS1mb250LXNpemU7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6ICR0b3BiYXItaGVpZ2h0O1xuICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICR0b3BiYXItbGluay1jb2xvcjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR0b3BiYXItdGl0bGUtd2VpZ2h0O1xuICAgICAgICAgICAgcGFkZGluZzogMCAkdG9wYmFyLWxpbmstcGFkZGluZztcbiAgICAgICAgICAgIHdpZHRoOiA3NSU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIE1lbnUgdG9nZ2xlIGJ1dHRvbiBvbiBzbWFsbCBkZXZpY2VzXG4gICAgICAudG9nZ2xlLXRvcGJhciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgI3skdG9wYmFyLW1lbnUtaWNvbi1wb3NpdGlvbn06IDA7XG4gICAgICAgIHRvcDogMDtcblxuICAgICAgICBhIHtcbiAgICAgICAgICBjb2xvcjogJHRvcGJhci1saW5rLWNvbG9yO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGZvbnQtc2l6ZTogJHRvcGJhci1tZW51LWxpbmstZm9udC1zaXplO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdG9wYmFyLW1lbnUtbGluay13ZWlnaHQ7XG4gICAgICAgICAgaGVpZ2h0OiAkdG9wYmFyLWhlaWdodDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogJHRvcGJhci1oZWlnaHQ7XG4gICAgICAgICAgcGFkZGluZzogMCAkdG9wYmFyLWxpbmstcGFkZGluZztcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06ICR0b3BiYXItbWVudS1saW5rLXRyYW5zZm9ybTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFkZGluZyB0aGUgY2xhc3MgXCJtZW51LWljb25cIiB3aWxsIGFkZCB0aGUgMy1saW5lIGljb24gcGVvcGxlIGxvdmUgYW5kIGFkb3JlLlxuICAgICAgICAmLm1lbnUtaWNvbiB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogLTE2cHg7XG4gICAgICAgICAgdG9wOiA1MCU7XG5cbiAgICAgICAgICBhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhhbWJ1cmdlcigxNnB4LCBmYWxzZSwgMCwgMXB4LCA2cHgsICR0b3BiYXItbWVudS1pY29uLWNvbG9yLCBcIlwiLCBmYWxzZSk7XG5cbiAgICAgICAgICAgIEBpZiAkdGV4dC1kaXJlY3Rpb24gPT0gcnRsIHtcbiAgICAgICAgICAgICAgdGV4dC1pbmRlbnQ6IC01OHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29sb3I6ICR0b3BiYXItbWVudS1saW5rLWNvbG9yO1xuICAgICAgICAgICAgaGVpZ2h0OiAzNHB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDMzcHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICR0b3BiYXItbGluay1wYWRkaW5nK3JlbS1jYWxjKDI1KSAwICR0b3BiYXItbGluay1wYWRkaW5nO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBDaGFuZ2UgdGhpbmdzIHVwIHdoZW4gdGhlIHRvcC1iYXIgaXMgZXhwYW5kZWRcbiAgICAgICYuZXhwYW5kZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuXG4gICAgICAgIC50aXRsZS1hcmVhIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkdG9wYmFyLWJnO1xuICAgICAgICB9XG5cbiAgICAgICAgLnRvZ2dsZS10b3BiYXIge1xuICAgICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICR0b3BiYXItbWVudS1saW5rLWNvbG9yLXRvZ2dsZWQ7XG5cbiAgICAgICAgICAgIHNwYW46OmFmdGVyIHtcbiAgICAgICAgICAgICAgLy8gU2hoLCBkb24ndCB0ZWxsLCBidXQgYm94LXNoYWRvd3MgY3JlYXRlIHRoZSBtZW51IGljb24gOilcbiAgICAgICAgICAgICAgLy8gQ2hhbmdlIHRoZSBjb2xvciBvZiB0aGUgYmFycyB3aGVuIHRoZSBtZW51IGlzIGV4cGFuZGVkLCB1c2luZyBnaXZlbiB0aGlja25lc3MgZnJvbSBoYW1idXJnZXIoKSBhYm92ZVxuICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggJHRvcGJhci1tZW51LWljb24tY29sb3ItdG9nZ2xlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgMCA3cHggMCAxcHggJHRvcGJhci1tZW51LWljb24tY29sb3ItdG9nZ2xlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgMCAxNHB4IDAgMXB4ICR0b3BiYXItbWVudS1pY29uLWNvbG9yLXRvZ2dsZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gRml4ZXMgYW4gaXNzdWUgd2l0aCBEZXNrdG9wIGFuZCBNb2JpbGUgU2FmYXJpIHdoZXJlIGRlZXBseS1uZXN0ZWQgbWVudXMgZG9uJ3QgYXBwZWFyXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MCkge1xuICAgICAgICAgIC50b3AtYmFyLXNlY3Rpb24ge1xuICAgICAgICAgICAgLmhhcy1kcm9wZG93bi5tb3ZlZCA+IC5kcm9wZG93bixcbiAgICAgICAgICAgIC5kcm9wZG93biB7XG4gICAgICAgICAgICAgIGNsaXA6IGluaXRpYWw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFRoaXMgd2FzIG5lZWRlZCBhcyBwYXJlbnQgdWwncyBoYWQgcGFkZGluZywgYW5kIHRoZSBjbGlwOiB3YXMgYWxsb3dpbmcgY29udGVudCB0byBwZWFrIHRocm91Z2hcbiAgICAgICAgICAgIC5oYXMtZHJvcGRvd246bm90KC5tb3ZlZCkgPiB1bCB7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmlnaHQgYW5kIExlZnQgTmF2aWdhdGlvbiB0aGF0IHN0YWNrZWQgYnkgZGVmYXVsdFxuICAgIC50b3AtYmFyLXNlY3Rpb24ge1xuICAgICAgI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIEBpbmNsdWRlIHNpbmdsZS10cmFuc2l0aW9uKCRkZWZhdWx0LWZsb2F0LCAkdG9wYmFyLXRyYW5zaXRpb24tc3BlZWQpO1xuXG4gICAgICB1bCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6ICRyZW0tYmFzZTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAuZGl2aWRlcixcbiAgICAgIFtyb2xlPVwic2VwYXJhdG9yXCJdIHtcbiAgICAgICAgYm9yZGVyLXRvcDogJHRvcGJhci1kaXZpZGVyLWJvcmRlci10b3A7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIHVsIGxpIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHRvcGJhci1kcm9wZG93bi1iZztcblxuICAgICAgICA+IGEge1xuICAgICAgICAgIGNvbG9yOiAkdG9wYmFyLWxpbmstY29sb3I7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgZm9udC1mYW1pbHk6ICR0b3BiYXItbGluay1mb250LWZhbWlseTtcbiAgICAgICAgICBmb250LXNpemU6ICR0b3BiYXItbGluay1mb250LXNpemU7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6ICR0b3BiYXItbGluay13ZWlnaHQ7XG4gICAgICAgICAgcGFkZGluZy0jeyRkZWZhdWx0LWZsb2F0fTogJHRvcGJhci1saW5rLXBhZGRpbmc7XG4gICAgICAgICAgcGFkZGluZzogMTJweCAwIDEycHggJHRvcGJhci1saW5rLXBhZGRpbmc7XG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06ICR0b3BiYXItbGluay10ZXh0LXRyYW5zZm9ybTtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICYuYnV0dG9uIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHRvcGJhci1saW5rLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmctI3skZGVmYXVsdC1mbG9hdH06ICR0b3BiYXItbGluay1wYWRkaW5nO1xuICAgICAgICAgICAgcGFkZGluZy0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkdG9wYmFyLWxpbmstcGFkZGluZztcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JHByaW1hcnktY29sb3IpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgICYuYnV0dG9uLnNlY29uZGFyeSB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JHNlY29uZGFyeS1jb2xvcik7IH1cbiAgICAgICAgICAmLmJ1dHRvbi5zdWNjZXNzIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokc3VjY2Vzcy1jb2xvcik7IH1cbiAgICAgICAgICAmLmJ1dHRvbi5hbGVydCB7IEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JGFsZXJ0LWNvbG9yKTsgfVxuICAgICAgICAgICYuYnV0dG9uLndhcm5pbmcgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiR3YXJuaW5nLWNvbG9yKTsgfVxuICAgICAgICAgICYuYnV0dG9uLmluZm8geyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRpbmZvLWNvbG9yKTsgfVxuICAgICAgICB9XG5cbiAgICAgICAgPiBidXR0b24ge1xuICAgICAgICAgIGZvbnQtc2l6ZTogJHRvcGJhci1saW5rLWZvbnQtc2l6ZTtcbiAgICAgICAgICBwYWRkaW5nLSN7JGRlZmF1bHQtZmxvYXR9OiAkdG9wYmFyLWxpbmstcGFkZGluZztcbiAgICAgICAgICBwYWRkaW5nLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICR0b3BiYXItbGluay1wYWRkaW5nO1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmc6JHByaW1hcnktY29sb3IpO1xuXG4gICAgICAgICAgJi5zZWNvbmRhcnkgeyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRzZWNvbmRhcnktY29sb3IpOyB9XG4gICAgICAgICAgJi5zdWNjZXNzIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokc3VjY2Vzcy1jb2xvcik7IH1cbiAgICAgICAgICAmLmFsZXJ0IHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokYWxlcnQtY29sb3IpOyB9XG4gICAgICAgICAgJi53YXJuaW5nIHsgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRiZzokd2FybmluZy1jb2xvcik7IH1cbiAgICAgICAgICAmLmluZm8geyBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJnOiRpbmZvLWNvbG9yKTsgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gQXBwbHkgdGhlIGhvdmVyIGxpbmsgY29sb3Igd2hlbiBpdCBoYXMgdGhhdCBjbGFzc1xuICAgICAgICAmOmhvdmVyOm5vdCguaGFzLWZvcm0pID4gYSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRvcGJhci1saW5rLWJnLWNvbG9yLWhvdmVyO1xuICAgICAgICAgIGNvbG9yOiAkdG9wYmFyLWxpbmstY29sb3ItaG92ZXI7XG5cbiAgICAgICAgICBAaWYgKCR0b3BiYXItbGluay1iZy1ob3Zlcikge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHRvcGJhci1saW5rLWJnLWhvdmVyO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFwcGx5IHRoZSBhY3RpdmUgbGluayBjb2xvciB3aGVuIGl0IGhhcyB0aGF0IGNsYXNzXG4gICAgICAgICYuYWN0aXZlID4gYSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJHRvcGJhci1saW5rLWJnLWFjdGl2ZTtcbiAgICAgICAgICBjb2xvcjogJHRvcGJhci1saW5rLWNvbG9yLWFjdGl2ZTtcblxuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHRvcGJhci1saW5rLWJnLWFjdGl2ZS1ob3ZlcjtcbiAgICAgICAgICAgIGNvbG9yOiAkdG9wYmFyLWxpbmstY29sb3ItYWN0aXZlLWhvdmVyO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBBZGQgc29tZSBleHRyYSBwYWRkaW5nIGZvciBsaXN0IGl0ZW1zIGNvbnRhaW5zIGJ1dHRvbnNcbiAgICAgIC5oYXMtZm9ybSB7XG4gICAgICAgIHBhZGRpbmc6ICR0b3BiYXItbGluay1wYWRkaW5nO1xuICAgICAgfVxuXG4gICAgICAvLyBTdHlsaW5nIGZvciBsaXN0IGl0ZW1zIHRoYXQgaGF2ZSBhIGRyb3Bkb3duIHdpdGhpbiB0aGVtLlxuICAgICAgLmhhcy1kcm9wZG93biB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICA+IGEge1xuICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgQGlmICgkdG9wYmFyLWFycm93cykge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvcGJhci1kcm9wZG93bi10b2dnbGUtc2l6ZSwgcmdiYSgkdG9wYmFyLWRyb3Bkb3duLXRvZ2dsZS1jb2xvciwgJHRvcGJhci1kcm9wZG93bi10b2dnbGUtYWxwaGEpLCAkZGVmYXVsdC1mbG9hdCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkdG9wYmFyLWxpbmstcGFkZGluZztcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0oJHRvcGJhci1kcm9wZG93bi10b2dnbGUtc2l6ZSAvIDIpIC0gMjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLm1vdmVkIHtcbiAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuXG4gICAgICAgICAgPiAuZHJvcGRvd24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgdG9wYmFyLXNob3ctZHJvcGRvd24oKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgID4gYTphZnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBTdHlsaW5nIGVsZW1lbnRzIGluc2lkZSBvZiBkcm9wZG93bnNcbiAgICAgIC5kcm9wZG93biB7XG4gICAgICAgIEBpbmNsdWRlIHRvcGJhci1oaWRlLWRyb3Bkb3duKCk7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB6LWluZGV4OiA5OTtcbiAgICAgICAgI3skZGVmYXVsdC1mbG9hdH06IDEwMCU7XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgIGEge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR0b3BiYXItZHJvcGRvd24tbGluay13ZWlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiA4cHggJHRvcGJhci1saW5rLXBhZGRpbmc7XG4gICAgICAgICAgICAmLnBhcmVudC1saW5rIHtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICR0b3BiYXItbGluay13ZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi50aXRsZSBoNSxcbiAgICAgICAgICAmLnBhcmVudC1saW5rIHtcbiAgICAgICAgICAgIC8vIEJhY2sgQnV0dG9uXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHRvcGJhci1iYWNrLWxpbmstc2l6ZTtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICBjb2xvcjogJHRvcGJhci1saW5rLWNvbG9yO1xuICAgICAgICAgICAgICAvLyBsaW5lLWhlaWdodDogKCR0b3BiYXItaGVpZ2h0IC8gMik7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDpub25lOyB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi5oYXMtZm9ybSB7XG4gICAgICAgICAgICBwYWRkaW5nOiA4cHggJHRvcGJhci1saW5rLXBhZGRpbmc7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLmJ1dHRvbixcbiAgICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICBjb2xvcjogJHRvcGJhci1kcm9wZG93bi1sYWJlbC1jb2xvcjtcbiAgICAgICAgICBmb250LXNpemU6ICR0b3BiYXItZHJvcGRvd24tbGFiZWwtZm9udC1zaXplO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkdG9wYmFyLWRyb3Bkb3duLWxhYmVsLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgcGFkZGluZzogOHB4ICR0b3BiYXItbGluay1wYWRkaW5nIDJweDtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJHRvcGJhci1kcm9wZG93bi1sYWJlbC10ZXh0LXRyYW5zZm9ybTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5qcy1nZW5lcmF0ZWQgeyBkaXNwbGF5OiBibG9jazsgfVxuXG5cbiAgICAvLyBUb3AgQmFyIHN0eWxlcyBpbnRlbmRlZCBmb3Igc2NyZWVuIHNpemVzIGFib3ZlIHRoZSBicmVha3BvaW50LlxuICAgIEBtZWRpYSAjeyR0b3BiYXItbWVkaWEtcXVlcnl9IHtcbiAgICAgIC50b3AtYmFyIHtcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR0b3BiYXItYmc7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuXG4gICAgICAgIC50b2dnbGUtdG9wYmFyIHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICAgICAgIC50aXRsZS1hcmVhIHsgZmxvYXQ6ICRkZWZhdWx0LWZsb2F0OyB9XG4gICAgICAgIC5uYW1lIGgxIGEsXG4gICAgICAgIC5uYW1lIGgyIGEsXG4gICAgICAgIC5uYW1lIGgzIGEsXG4gICAgICAgIC5uYW1lIGg0IGEsXG4gICAgICAgIC5uYW1lIGg1IGEsXG4gICAgICAgIC5uYW1lIGg2IGEgeyB3aWR0aDogYXV0bzsgfVxuXG4gICAgICAgIGlucHV0LFxuICAgICAgICBzZWxlY3QsXG4gICAgICAgIC5idXR0b24sXG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgICAgICAgaGVpZ2h0OiAkdG9wYmFyLWlucHV0LWhlaWdodDtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgdG9wOiAoKCR0b3BiYXItaGVpZ2h0IC0gJHRvcGJhci1pbnB1dC1oZWlnaHQpIC8gMik7XG4gICAgICAgIH1cblxuICAgICAgICAmLmV4cGFuZGVkIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkdG9wYmFyLWJnO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5jb250YWluLXRvLWdyaWQgLnRvcC1iYXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkdG9wYmFyLW1hcmdpbi1ib3R0b207XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6ICRyb3ctd2lkdGg7XG4gICAgICB9XG5cbiAgICAgIC50b3AtYmFyLXNlY3Rpb24ge1xuICAgICAgICBAaW5jbHVkZSBzaW5nbGUtdHJhbnNpdGlvbihub25lLDAsMCk7XG4gICAgICAgICN7JGRlZmF1bHQtZmxvYXR9OiAwICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgdWwge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICB3aWR0aDogYXV0bztcblxuICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgIGZsb2F0OiAkZGVmYXVsdC1mbG9hdDtcbiAgICAgICAgICAgIC5qcy1nZW5lcmF0ZWQgeyBkaXNwbGF5OiBub25lOyB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgICYuaG92ZXIge1xuICAgICAgICAgICAgPiBhOm5vdCguYnV0dG9uKSB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0b3BiYXItbGluay1iZy1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgICAgQGlmICgkdG9wYmFyLWxpbmstYmctaG92ZXIpIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkdG9wYmFyLWxpbmstYmctaG92ZXI7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY29sb3I6ICR0b3BiYXItbGluay1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmOm5vdCguaGFzLWZvcm0pIHtcbiAgICAgICAgICAgIGE6bm90KC5idXR0b24pIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHRvcGJhci1saW5rLWJnO1xuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJHRvcGJhci1oZWlnaHQ7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDAgJHRvcGJhci1saW5rLXBhZGRpbmc7XG4gICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0b3BiYXItbGluay1iZy1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgICAgICBAaWYgKCR0b3BiYXItbGluay1iZy1ob3Zlcikge1xuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHRvcGJhci1saW5rLWJnLWhvdmVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgICYuYWN0aXZlOm5vdCguaGFzLWZvcm0pIHtcbiAgICAgICAgICAgIGE6bm90KC5idXR0b24pIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHRvcGJhci1saW5rLWJnLWFjdGl2ZTtcbiAgICAgICAgICAgICAgY29sb3I6ICR0b3BiYXItbGluay1jb2xvci1hY3RpdmU7XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkdG9wYmFyLWhlaWdodDtcbiAgICAgICAgICAgICAgcGFkZGluZzogMCAkdG9wYmFyLWxpbmstcGFkZGluZztcbiAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHRvcGJhci1saW5rLWJnLWFjdGl2ZS1ob3ZlcjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHRvcGJhci1saW5rLWNvbG9yLWFjdGl2ZS1ob3ZlcjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5oYXMtZHJvcGRvd24ge1xuICAgICAgICAgIEBpZiAkdG9wYmFyLWFycm93cyB7XG4gICAgICAgICAgICA+IGEge1xuICAgICAgICAgICAgICBwYWRkaW5nLSN7JG9wcG9zaXRlLWRpcmVjdGlvbn06ICR0b3BiYXItbGluay1wYWRkaW5nICsgJHRvcGJhci1saW5rLWRyb3Bkb3duLXBhZGRpbmcgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b3BiYXItZHJvcGRvd24tdG9nZ2xlLXNpemUsIHJnYmEoJHRvcGJhci1kcm9wZG93bi10b2dnbGUtY29sb3IsICR0b3BiYXItZHJvcGRvd24tdG9nZ2xlLWFscGhhKSwgdG9wKTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtKCR0b3BiYXItZHJvcGRvd24tdG9nZ2xlLXNpemUgLyAyKTtcbiAgICAgICAgICAgICAgICB0b3A6ICgkdG9wYmFyLWhlaWdodCAvIDIpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi5tb3ZlZCB7IHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgID4gLmRyb3Bkb3duIHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgdG9wYmFyLWhpZGUtZHJvcGRvd24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLmhvdmVyLCAmLm5vdC1jbGljazpob3ZlciB7XG4gICAgICAgICAgICA+IC5kcm9wZG93biB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHRvcGJhci1zaG93LWRyb3Bkb3duKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgPiBhOmZvY3VzICsgLmRyb3Bkb3duIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRvcGJhci1zaG93LWRyb3Bkb3duKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLmRyb3Bkb3duIGxpLmhhcy1kcm9wZG93biB7XG4gICAgICAgICAgICA+IGEge1xuICAgICAgICAgICAgICBAaWYgKCR0b3BiYXItZHJvcGRvd24tYXJyb3dzKSB7XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlxcMDBiYlwiO1xuICAgICAgICAgICAgICAgICAgdG9wOiByZW0tY2FsYygzKTtcblxuICAgICAgICAgICAgICAgICAgI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogNXB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5kcm9wZG93biB7XG4gICAgICAgICAgI3skZGVmYXVsdC1mbG9hdH06IDA7XG4gICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICAgIHRvcDogYXV0bztcblxuICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkdG9wYmFyLWRyb3Bkb3duLWxpbmstYmc7XG4gICAgICAgICAgICAgIGNvbG9yOiAkdG9wYmFyLWRyb3Bkb3duLWxpbmstY29sb3I7XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkdG9wYmFyLWhlaWdodDtcbiAgICAgICAgICAgICAgcGFkZGluZzogMTJweCAkdG9wYmFyLWxpbmstcGFkZGluZztcbiAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpub3QoLmhhcy1mb3JtKTpub3QoLmFjdGl2ZSkge1xuICAgICAgICAgICAgICA+IGE6bm90KC5idXR0b24pIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkdG9wYmFyLWRyb3Bkb3duLWxpbmstYmc7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR0b3BiYXItZHJvcGRvd24tbGluay1jb2xvcjtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICY6aG92ZXIgPiBhOm5vdCguYnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRvcGJhci1saW5rLWJnLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdG9wYmFyLWRyb3Bkb3duLWxpbmstY29sb3ItaG92ZXI7XG4gICAgICAgICAgICAgICAgQGlmICgkdG9wYmFyLWRyb3Bkb3duLWxpbmstYmctaG92ZXIpIHtcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR0b3BiYXItZHJvcGRvd24tbGluay1iZy1ob3ZlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkdG9wYmFyLWRyb3Bkb3duLWxhYmVsLWJnO1xuICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBTZWNvbmQgTGV2ZWwgRHJvcGRvd25zXG4gICAgICAgICAgICAuZHJvcGRvd24ge1xuICAgICAgICAgICAgICAjeyRkZWZhdWx0LWZsb2F0fTogMTAwJTtcbiAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgID4gdWwgPiAuZGl2aWRlcixcbiAgICAgICAgPiB1bCA+IFtyb2xlPVwic2VwYXJhdG9yXCJdIHtcbiAgICAgICAgICBib3JkZXItI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJHRvcGJhci1kaXZpZGVyLWJvcmRlci1ib3R0b207XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICAgIGNsZWFyOiBub25lO1xuICAgICAgICAgIGhlaWdodDogJHRvcGJhci1oZWlnaHQ7XG4gICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuaGFzLWZvcm0ge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICR0b3BiYXItbGluay1iZztcbiAgICAgICAgICBoZWlnaHQ6ICR0b3BiYXItaGVpZ2h0O1xuICAgICAgICAgIHBhZGRpbmc6IDAgJHRvcGJhci1saW5rLXBhZGRpbmc7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBQb3NpdGlvbiBvdmVycmlkZXMgZm9yIHVsLnJpZ2h0IGFuZCB1bC5sZWZ0XG4gICAgICAgIC4jeyRvcHBvc2l0ZS1kaXJlY3Rpb259IHtcbiAgICAgICAgICBsaSAuZHJvcGRvd24ge1xuICAgICAgICAgICAgI3skZGVmYXVsdC1mbG9hdH06IGF1dG87XG4gICAgICAgICAgICAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAwO1xuXG4gICAgICAgICAgICBsaSAuZHJvcGRvd24geyAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAxMDAlOyB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC4jeyRkZWZhdWx0LWZsb2F0fSB7XG4gICAgICAgICAgbGkgLmRyb3Bkb3duIHtcbiAgICAgICAgICAgICN7JG9wcG9zaXRlLWRpcmVjdGlvbn06IGF1dG87XG4gICAgICAgICAgICAjeyRkZWZhdWx0LWZsb2F0fTogMDtcblxuICAgICAgICAgICAgbGkgLmRyb3Bkb3duIHsgI3skZGVmYXVsdC1mbG9hdH06IDEwMCU7IH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gRGVncmFkZSBncmFjZWZ1bGx5IHdoZW4gSmF2YXNjcmlwdCBpcyBkaXNhYmxlZC4gRGlzcGxheXMgZHJvcGRvd24gYW5kIGNoYW5nZXNcbiAgICAgIC8vIGJhY2tncm91bmQgJiB0ZXh0IGNvbG9yIG9uIGhvdmVyLlxuICAgICAgLm5vLWpzIC50b3AtYmFyLXNlY3Rpb24ge1xuICAgICAgICB1bCBsaSB7XG4gICAgICAgICAgLy8gQXBwbHkgdGhlIGhvdmVyIGxpbmsgY29sb3Igd2hlbiBpdCBoYXMgdGhhdCBjbGFzc1xuICAgICAgICAgICY6aG92ZXIgPiBhIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0b3BiYXItbGluay1iZy1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgIEBpZiAoJHRvcGJhci1saW5rLWJnLWhvdmVyKSB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR0b3BiYXItbGluay1iZy1ob3ZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbG9yOiAkdG9wYmFyLWxpbmstY29sb3ItaG92ZXI7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gQXBwbHkgdGhlIGFjdGl2ZSBsaW5rIGNvbG9yIHdoZW4gaXQgaGFzIHRoYXQgY2xhc3NcbiAgICAgICAgICAmOmFjdGl2ZSA+IGEge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHRvcGJhci1saW5rLWJnLWFjdGl2ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkdG9wYmFyLWxpbmstY29sb3ItYWN0aXZlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5oYXMtZHJvcGRvd24ge1xuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgPiAuZHJvcGRvd24ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSB0b3BiYXItc2hvdy1kcm9wZG93bigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgID4gYTpmb2N1cyArIC5kcm9wZG93biB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0b3BiYXItc2hvdy1kcm9wZG93bigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCAnZ2xvYmFsJztcblxuJGluY2x1ZGUtaHRtbC10eXBlLWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgaGVhZGVyIGZvbnQgc3R5bGVzXG4kaGVhZGVyLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcbiRoZWFkZXItZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG4kaGVhZGVyLWZvbnQtc3R5bGU6IG5vcm1hbCAhZGVmYXVsdDtcbiRoZWFkZXItZm9udC1jb2xvcjogJGpldCAhZGVmYXVsdDtcbiRoZWFkZXItbGluZS1oZWlnaHQ6IDEuNCAhZGVmYXVsdDtcbiRoZWFkZXItdG9wLW1hcmdpbjogLjJyZW0gIWRlZmF1bHQ7XG4kaGVhZGVyLWJvdHRvbS1tYXJnaW46IC41cmVtICFkZWZhdWx0O1xuJGhlYWRlci10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBoZWFkZXIgZm9udCBzaXplc1xuJGgxLWZvbnQtc2l6ZTogcmVtLWNhbGMoNDQpICFkZWZhdWx0O1xuJGgyLWZvbnQtc2l6ZTogcmVtLWNhbGMoMzcpICFkZWZhdWx0O1xuJGgzLWZvbnQtc2l6ZTogcmVtLWNhbGMoMjcpICFkZWZhdWx0O1xuJGg0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMjMpICFkZWZhdWx0O1xuJGg1LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpICFkZWZhdWx0O1xuJGg2LWZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIGNvbnRyb2wgaGVhZGVyIHNpemUgcmVkdWN0aW9uIG9uIHNtYWxsIHNjcmVlbnNcbiRoMS1mb250LXJlZHVjdGlvbjogcmVtLWNhbGMoMTApICFkZWZhdWx0O1xuJGgyLWZvbnQtcmVkdWN0aW9uOiByZW0tY2FsYygxMCkgIWRlZmF1bHQ7XG4kaDMtZm9udC1yZWR1Y3Rpb246IHJlbS1jYWxjKDUpICFkZWZhdWx0O1xuJGg0LWZvbnQtcmVkdWN0aW9uOiByZW0tY2FsYyg1KSAhZGVmYXVsdDtcbiRoNS1mb250LXJlZHVjdGlvbjogMCAhZGVmYXVsdDtcbiRoNi1mb250LXJlZHVjdGlvbjogMCAhZGVmYXVsdDtcblxuLy8gVGhlc2UgY29udHJvbCBob3cgc3ViaGVhZGVycyBhcmUgc3R5bGVkLlxuJHN1YmhlYWRlci1saW5lLWhlaWdodDogMS40ICFkZWZhdWx0O1xuJHN1YmhlYWRlci1mb250LWNvbG9yOiBzY2FsZS1jb2xvcigkaGVhZGVyLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IDM1JSkgIWRlZmF1bHQ7XG4kc3ViaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJHN1YmhlYWRlci10b3AtbWFyZ2luOiAuMnJlbSAhZGVmYXVsdDtcbiRzdWJoZWFkZXItYm90dG9tLW1hcmdpbjogLjVyZW0gIWRlZmF1bHQ7XG5cbi8vIEEgZ2VuZXJhbCA8c21hbGw+IHN0eWxpbmdcbiRzbWFsbC1mb250LXNpemU6IDYwJSAhZGVmYXVsdDtcbiRzbWFsbC1mb250LWNvbG9yOiBzY2FsZS1jb2xvcigkaGVhZGVyLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IDM1JSkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSBwYXJhZ3JhcGhzXG4kcGFyYWdyYXBoLWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xuJHBhcmFncmFwaC1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRwYXJhZ3JhcGgtZm9udC1zaXplOiAxcmVtICFkZWZhdWx0O1xuJHBhcmFncmFwaC1saW5lLWhlaWdodDogMS42ICFkZWZhdWx0O1xuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCkgIWRlZmF1bHQ7XG4kcGFyYWdyYXBoLWFzaWRlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpICFkZWZhdWx0O1xuJHBhcmFncmFwaC1hc2lkZS1saW5lLWhlaWdodDogMS4zNSAhZGVmYXVsdDtcbiRwYXJhZ3JhcGgtYXNpZGUtZm9udC1zdHlsZTogaXRhbGljICFkZWZhdWx0O1xuJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgPGNvZGU+IHRhZ3NcbiRjb2RlLWNvbG9yOiAkb2lsICFkZWZhdWx0O1xuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XG4kY29kZS1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRjb2RlLWJhY2tncm91bmQtY29sb3I6IHNjYWxlLWNvbG9yKCRzZWNvbmRhcnktY29sb3IsICRsaWdodG5lc3M6IDcwJSkgIWRlZmF1bHQ7XG4kY29kZS1ib3JkZXItc2l6ZTogMXB4ICFkZWZhdWx0O1xuJGNvZGUtYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRjb2RlLWJvcmRlci1jb2xvcjogc2NhbGUtY29sb3IoJGNvZGUtYmFja2dyb3VuZC1jb2xvciwgJGxpZ2h0bmVzczogLTEwJSkgIWRlZmF1bHQ7XG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyKSByZW0tY2FsYyg1KSByZW0tY2FsYygxKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoZXNlIHRvIHN0eWxlIGFuY2hvcnNcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmUgIWRlZmF1bHQ7XG4kYW5jaG9yLWZvbnQtY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuJGFuY2hvci1mb250LWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IC0xNCUpICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgdGhlIDxocj4gZWxlbWVudFxuJGhyLWJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuJGhyLWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kaHItYm9yZGVyLWNvbG9yOiAkZ2FpbnNib3JvICFkZWZhdWx0O1xuJGhyLW1hcmdpbjogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gc3R5bGUgbGlzdHNcbiRsaXN0LWZvbnQtZmFtaWx5OiAkcGFyYWdyYXBoLWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuJGxpc3QtZm9udC1zaXplOiAkcGFyYWdyYXBoLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRsaXN0LWxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmUtaGVpZ2h0ICFkZWZhdWx0O1xuJGxpc3QtbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tICFkZWZhdWx0O1xuJGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGUgIWRlZmF1bHQ7XG4kbGlzdC1zaWRlLW1hcmdpbjogMS4xcmVtICFkZWZhdWx0O1xuJGxpc3Qtb3JkZXJlZC1zaWRlLW1hcmdpbjogMS40cmVtICFkZWZhdWx0O1xuJGxpc3Qtc2lkZS1tYXJnaW4tbm8tYnVsbGV0OiAwICFkZWZhdWx0O1xuJGxpc3QtbmVzdGVkLW1hcmdpbjogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuJGRlZmluaXRpb24tbGlzdC1oZWFkZXItd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcbiRkZWZpbml0aW9uLWxpc3QtaGVhZGVyLW1hcmdpbi1ib3R0b206IC4zcmVtICFkZWZhdWx0O1xuJGRlZmluaXRpb24tbGlzdC1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBzdHlsZSBibG9ja3F1b3Rlc1xuJGJsb2NrcXVvdGUtZm9udC1jb2xvcjogc2NhbGUtY29sb3IoJGhlYWRlci1mb250LWNvbG9yLCAkbGlnaHRuZXNzOiAzNSUpICFkZWZhdWx0O1xuJGJsb2NrcXVvdGUtcGFkZGluZzogcmVtLWNhbGMoOSAyMCAwIDE5KSAhZGVmYXVsdDtcbiRibG9ja3F1b3RlLWJvcmRlcjogMXB4IHNvbGlkICRnYWluc2Jvcm8gIWRlZmF1bHQ7XG4kYmxvY2txdW90ZS1jaXRlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuJGJsb2NrcXVvdGUtY2l0ZS1mb250LWNvbG9yOiBzY2FsZS1jb2xvcigkaGVhZGVyLWZvbnQtY29sb3IsICRsaWdodG5lc3M6IDIzJSkgIWRlZmF1bHQ7XG4kYmxvY2txdW90ZS1jaXRlLWxpbmstY29sb3I6ICRibG9ja3F1b3RlLWNpdGUtZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8gQWNyb255bSBzdHlsZXNcbiRhY3JvbnltLXVuZGVybGluZTogMXB4IGRvdHRlZCAkZ2FpbnNib3JvICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhlc2UgdG8gY29udHJvbCBwYWRkaW5nIGFuZCBtYXJnaW5cbiRtaWNyb2Zvcm1hdC1wYWRkaW5nOiByZW0tY2FsYygxMCAxMikgIWRlZmF1bHQ7XG4kbWljcm9mb3JtYXQtbWFyZ2luOiByZW0tY2FsYygwIDAgMjAgMCkgIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIHRoZSBib3JkZXIgc3R5bGVzXG4kbWljcm9mb3JtYXQtYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4kbWljcm9mb3JtYXQtYm9yZGVyLXN0eWxlOiBzb2xpZCAhZGVmYXVsdDtcbiRtaWNyb2Zvcm1hdC1ib3JkZXItY29sb3I6ICRnYWluc2Jvcm8gIWRlZmF1bHQ7XG5cbi8vIFdlIHVzZSB0aGVzZSB0byBjb250cm9sIGZ1bGwgbmFtZSBmb250IHN0eWxlc1xuJG1pY3JvZm9ybWF0LWZ1bGxuYW1lLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcbiRtaWNyb2Zvcm1hdC1mdWxsbmFtZS1mb250LXNpemU6IHJlbS1jYWxjKDE1KSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCB0aGUgc3VtbWFyeSBmb250IHN0eWxlc1xuJG1pY3JvZm9ybWF0LXN1bW1hcnktZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLyBXZSB1c2UgdGhpcyB0byBjb250cm9sIGFiYnIgcGFkZGluZ1xuJG1pY3JvZm9ybWF0LWFiYnItcGFkZGluZzogcmVtLWNhbGMoMCAxKSAhZGVmYXVsdDtcblxuLy8gV2UgdXNlIHRoaXMgdG8gY29udHJvbCBhYmJyIGZvbnQgc3R5bGVzXG4kbWljcm9mb3JtYXQtYWJici1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG4kbWljcm9mb3JtYXQtYWJici1mb250LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG5cbi8vIFRleHQgYWxpZ25tZW50IGNsYXNzIG5hbWVzXG4kYWxpZ24tY2xhc3MtbmFtZXM6XG4gIHNtYWxsLW9ubHksXG4gIHNtYWxsLFxuICBtZWRpdW0tb25seSxcbiAgbWVkaXVtLFxuICBsYXJnZS1vbmx5LFxuICBsYXJnZSxcbiAgeGxhcmdlLW9ubHksXG4gIHhsYXJnZSxcbiAgeHhsYXJnZS1vbmx5LFxuICB4eGxhcmdlO1xuXG4vLyBUZXh0IGFsaWdubWVudCBicmVha3BvaW50c1xuJGFsaWduLWNsYXNzLWJyZWFrcG9pbnRzOlxuICAkc21hbGwtb25seSxcbiAgJHNtYWxsLXVwLFxuICAkbWVkaXVtLW9ubHksXG4gICRtZWRpdW0tdXAsXG4gICRsYXJnZS1vbmx5LFxuICAkbGFyZ2UtdXAsXG4gICR4bGFyZ2Utb25seSxcbiAgJHhsYXJnZS11cCxcbiAgJHh4bGFyZ2Utb25seSxcbiAgJHh4bGFyZ2UtdXA7XG5cbi8vIEdlbmVyYXRlcyB0ZXh0IGFsaWduIGFuZCBqdXN0aWZ5IGNsYXNzZXNcbkBtaXhpbiBhbGlnbi1jbGFzc2Vze1xuICAudGV4dC1sZWZ0ICAgIHsgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OyB9XG4gIC50ZXh0LXJpZ2h0ICAgeyB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50OyB9XG4gIC50ZXh0LWNlbnRlciAgeyB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsgfVxuICAudGV4dC1qdXN0aWZ5IHsgdGV4dC1hbGlnbjoganVzdGlmeSAhaW1wb3J0YW50OyB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJGFsaWduLWNsYXNzLW5hbWVzKSB7XG4gICAgQG1lZGlhICN7KG50aCgkYWxpZ24tY2xhc3MtYnJlYWtwb2ludHMsICRpKSl9IHtcbiAgICAgIC4jeyhudGgoJGFsaWduLWNsYXNzLW5hbWVzLCAkaSkpfS10ZXh0LWxlZnQgeyB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7IH1cbiAgICAgIC4jeyhudGgoJGFsaWduLWNsYXNzLW5hbWVzLCAkaSkpfS10ZXh0LXJpZ2h0ICAgeyB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50OyB9XG4gICAgICAuI3sobnRoKCRhbGlnbi1jbGFzcy1uYW1lcywgJGkpKX0tdGV4dC1jZW50ZXIgIHsgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7IH1cbiAgICAgIC4jeyhudGgoJGFsaWduLWNsYXNzLW5hbWVzLCAkaSkpfS10ZXh0LWp1c3RpZnkgeyB0ZXh0LWFsaWduOiBqdXN0aWZ5ICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cbn1cblxuLy9cbi8vIFR5cG9ncmFwaHkgUGxhY2Vob2xkZXJzXG4vL1xuXG4vLyBUaGVzZSB3aWxsIHRocm93IGEgZGVwcmVjYXRpb24gd2FybmluZyBpZiB1c2VkIHdpdGhpbiBhIG1lZGlhIHF1ZXJ5LlxuQG1peGluIGxlYWQge1xuICBmb250LXNpemU6ICRwYXJhZ3JhcGgtZm9udC1zaXplICsgcmVtLWNhbGMoMy41KTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cblxuQG1peGluIHN1YmhlYWRlciB7XG4gIGxpbmUtaGVpZ2h0OiAkc3ViaGVhZGVyLWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJHN1YmhlYWRlci1mb250LWNvbG9yO1xuICBmb250LXdlaWdodDogJHN1YmhlYWRlci1mb250LXdlaWdodDtcbiAgbWFyZ2luLXRvcDogJHN1YmhlYWRlci10b3AtbWFyZ2luO1xuICBtYXJnaW4tYm90dG9tOiAkc3ViaGVhZGVyLWJvdHRvbS1tYXJnaW47XG59XG5AaW5jbHVkZSBleHBvcnRzKFwidHlwZVwiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLXR5cGUtY2xhc3NlcyB7XG4gICAgLy8gUmVzcG9uc2l2ZSBUZXh0IGFsaWdubWVudFxuICAgIEBpbmNsdWRlIGFsaWduLWNsYXNzZXM7XG5cbiAgICAvKiBUeXBvZ3JhcGh5IHJlc2V0cyAqL1xuICAgIGRpdixcbiAgICBkbCxcbiAgICBkdCxcbiAgICBkZCxcbiAgICB1bCxcbiAgICBvbCxcbiAgICBsaSxcbiAgICBoMSxcbiAgICBoMixcbiAgICBoMyxcbiAgICBoNCxcbiAgICBoNSxcbiAgICBoNixcbiAgICBwcmUsXG4gICAgZm9ybSxcbiAgICBwLFxuICAgIGJsb2NrcXVvdGUsXG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgbWFyZ2luOjA7XG4gICAgICBwYWRkaW5nOjA7XG4gICAgfVxuXG4gICAgLyogRGVmYXVsdCBMaW5rIFN0eWxlcyAqL1xuICAgIGEge1xuICAgICAgY29sb3I6ICRhbmNob3ItZm9udC1jb2xvcjtcbiAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbjtcblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJGFuY2hvci1mb250LWNvbG9yLWhvdmVyO1xuICAgICAgICBAaWYgJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXIgIT0gJGFuY2hvci10ZXh0LWRlY29yYXRpb24ge1xuICAgICAgICBcdHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaW1nIHsgYm9yZGVyOm5vbmU7IH1cbiAgICB9XG5cbiAgICAvKiBEZWZhdWx0IHBhcmFncmFwaCBzdHlsZXMgKi9cbiAgICBwIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkcGFyYWdyYXBoLWZvbnQtZmFtaWx5O1xuICAgICAgZm9udC1zaXplOiAkcGFyYWdyYXBoLWZvbnQtc2l6ZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkcGFyYWdyYXBoLWZvbnQtd2VpZ2h0O1xuICAgICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4gICAgICB0ZXh0LXJlbmRlcmluZzogJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZztcblxuICAgICAgJi5sZWFkIHsgQGluY2x1ZGUgbGVhZDsgfVxuXG4gICAgICAmIGFzaWRlIHtcbiAgICAgICAgZm9udC1zaXplOiAkcGFyYWdyYXBoLWFzaWRlLWZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC1zdHlsZTogJHBhcmFncmFwaC1hc2lkZS1mb250LXN0eWxlO1xuICAgICAgICBsaW5lLWhlaWdodDogJHBhcmFncmFwaC1hc2lkZS1saW5lLWhlaWdodDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBEZWZhdWx0IGhlYWRlciBzdHlsZXMgKi9cbiAgICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgICAgIGNvbG9yOiAkaGVhZGVyLWZvbnQtY29sb3I7XG4gICAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgICAgIGZvbnQtc3R5bGU6ICRoZWFkZXItZm9udC1zdHlsZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgICAgbGluZS1oZWlnaHQ6ICRoZWFkZXItbGluZS1oZWlnaHQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkaGVhZGVyLWJvdHRvbS1tYXJnaW47XG4gICAgICBtYXJnaW4tdG9wOiAkaGVhZGVyLXRvcC1tYXJnaW47XG4gICAgICB0ZXh0LXJlbmRlcmluZzogJGhlYWRlci10ZXh0LXJlbmRlcmluZztcblxuICAgICAgc21hbGwge1xuICAgICAgICBjb2xvcjogJHNtYWxsLWZvbnQtY29sb3I7XG4gICAgICAgIGZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaDEgeyBmb250LXNpemU6ICRoMS1mb250LXNpemUgLSAkaDEtZm9udC1yZWR1Y3Rpb247IH1cbiAgICBoMiB7IGZvbnQtc2l6ZTogJGgyLWZvbnQtc2l6ZSAtICRoMi1mb250LXJlZHVjdGlvbjsgfVxuICAgIGgzIHsgZm9udC1zaXplOiAkaDMtZm9udC1zaXplIC0gJGgzLWZvbnQtcmVkdWN0aW9uOyB9XG4gICAgaDQgeyBmb250LXNpemU6ICRoNC1mb250LXNpemUgLSAkaDQtZm9udC1yZWR1Y3Rpb247IH1cbiAgICBoNSB7IGZvbnQtc2l6ZTogJGg1LWZvbnQtc2l6ZSAtICRoNS1mb250LXJlZHVjdGlvbjsgfVxuICAgIGg2IHsgZm9udC1zaXplOiAkaDYtZm9udC1zaXplIC0gJGg2LWZvbnQtcmVkdWN0aW9uOyB9XG5cbiAgICAuc3ViaGVhZGVyIHsgQGluY2x1ZGUgc3ViaGVhZGVyOyB9XG5cbiAgICBociB7XG4gICAgICBib3JkZXI6ICRoci1ib3JkZXItc3R5bGUgJGhyLWJvcmRlci1jb2xvcjtcbiAgICAgIGJvcmRlci13aWR0aDogJGhyLWJvcmRlci13aWR0aCAwIDA7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIG1hcmdpbjogJGhyLW1hcmdpbiAwICgkaHItbWFyZ2luIC0gcmVtLWNhbGMoJGhyLWJvcmRlci13aWR0aCkpO1xuICAgIH1cblxuICAgIC8qIEhlbHBmdWwgVHlwb2dyYXBoeSBEZWZhdWx0cyAqL1xuICAgIGVtLFxuICAgIGkge1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgc3Ryb25nLFxuICAgIGIge1xuICAgICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgc21hbGwge1xuICAgICAgZm9udC1zaXplOiAkc21hbGwtZm9udC1zaXplO1xuICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgY29kZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29kZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkY29kZS1ib3JkZXItY29sb3I7XG4gICAgICBib3JkZXItc3R5bGU6ICRjb2RlLWJvcmRlci1zdHlsZTtcbiAgICAgIGJvcmRlci13aWR0aDogJGNvZGUtYm9yZGVyLXNpemU7XG4gICAgICBjb2xvcjogJGNvZGUtY29sb3I7XG4gICAgICBmb250LWZhbWlseTogJGNvZGUtZm9udC1mYW1pbHk7XG4gICAgICBmb250LXdlaWdodDogJGNvZGUtZm9udC13ZWlnaHQ7XG4gICAgICBwYWRkaW5nOiAkY29kZS1wYWRkaW5nO1xuICAgIH1cblxuICAgIC8qIExpc3RzICovXG4gICAgdWwsXG4gICAgb2wsXG4gICAgZGwge1xuICAgICAgZm9udC1mYW1pbHk6ICRsaXN0LWZvbnQtZmFtaWx5O1xuICAgICAgZm9udC1zaXplOiAkbGlzdC1mb250LXNpemU7XG4gICAgICBsaW5lLWhlaWdodDogJGxpc3QtbGluZS1oZWlnaHQ7XG4gICAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiAkbGlzdC1zdHlsZS1wb3NpdGlvbjtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRsaXN0LW1hcmdpbi1ib3R0b207XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkbGlzdC1zaWRlLW1hcmdpbjtcbiAgICAgICYubm8tYnVsbGV0IHtcbiAgICAgICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkbGlzdC1zaWRlLW1hcmdpbi1uby1idWxsZXQ7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICB1bCxcbiAgICAgICAgICBvbCB7XG4gICAgICAgICAgICBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRsaXN0LW5lc3RlZC1tYXJnaW47XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBVbm9yZGVyZWQgTGlzdHMgKi9cbiAgICB1bCB7XG4gICAgICBsaSB7XG4gICAgICAgIHVsLFxuICAgICAgICBvbCB7XG4gICAgICAgICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkbGlzdC1uZXN0ZWQtbWFyZ2luO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuc3F1YXJlLFxuICAgICAgJi5jaXJjbGUsXG4gICAgICAmLmRpc2Mge1xuICAgICAgICBsaSB1bCB7IGxpc3Qtc3R5bGU6IGluaGVyaXQ7IH1cbiAgICAgIH1cblxuICAgICAgJi5zcXVhcmUgeyBsaXN0LXN0eWxlLXR5cGU6IHNxdWFyZTsgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkbGlzdC1zaWRlLW1hcmdpbjt9XG4gICAgICAmLmNpcmNsZSB7IGxpc3Qtc3R5bGUtdHlwZTogY2lyY2xlOyBtYXJnaW4tI3skZGVmYXVsdC1mbG9hdH06ICRsaXN0LXNpZGUtbWFyZ2luO31cbiAgICAgICYuZGlzYyB7IGxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkbGlzdC1zaWRlLW1hcmdpbjt9XG4gICAgICAmLm5vLWJ1bGxldCB7IGxpc3Qtc3R5bGU6IG5vbmU7IH1cbiAgICB9XG5cbiAgICAvKiBPcmRlcmVkIExpc3RzICovXG4gICAgb2wge1xuICAgICAgbWFyZ2luLSN7JGRlZmF1bHQtZmxvYXR9OiAkbGlzdC1vcmRlcmVkLXNpZGUtbWFyZ2luO1xuICAgICAgbGkge1xuICAgICAgICB1bCxcbiAgICAgICAgb2wge1xuICAgICAgICAgIG1hcmdpbi0jeyRkZWZhdWx0LWZsb2F0fTogJGxpc3QtbmVzdGVkLW1hcmdpbjtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyogRGVmaW5pdGlvbiBMaXN0cyAqL1xuICAgIGRsIHtcbiAgICAgIGR0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGRlZmluaXRpb24tbGlzdC1oZWFkZXItbWFyZ2luLWJvdHRvbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRkZWZpbml0aW9uLWxpc3QtaGVhZGVyLXdlaWdodDtcbiAgICAgIH1cbiAgICAgIGRkIHsgbWFyZ2luLWJvdHRvbTogJGRlZmluaXRpb24tbGlzdC1tYXJnaW4tYm90dG9tOyB9XG4gICAgfVxuXG4gICAgLyogQWJicmV2aWF0aW9ucyAqL1xuICAgIGFiYnIsXG4gICAgYWNyb255bSB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC1zaXplOiA5MCU7XG4gICAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiAgICAgIGN1cnNvcjogJGN1cnNvci1oZWxwLXZhbHVlO1xuICAgIH1cbiAgICBhYmJyIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgJlt0aXRsZV0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAkYWNyb255bS11bmRlcmxpbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyogQmxvY2txdW90ZXMgKi9cbiAgICBibG9ja3F1b3RlIHtcbiAgICAgIG1hcmdpbjogMCAwICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgICAgIHBhZGRpbmc6ICRibG9ja3F1b3RlLXBhZGRpbmc7XG4gICAgICBib3JkZXItI3skZGVmYXVsdC1mbG9hdH06ICRibG9ja3F1b3RlLWJvcmRlcjtcblxuICAgICAgY2l0ZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6ICRibG9ja3F1b3RlLWNpdGUtZm9udC1zaXplO1xuICAgICAgICBjb2xvcjogJGJsb2NrcXVvdGUtY2l0ZS1mb250LWNvbG9yO1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgY29udGVudDogXCJcXDIwMTQgXFwwMDIwXCI7XG4gICAgICAgIH1cblxuICAgICAgICBhLFxuICAgICAgICBhOnZpc2l0ZWQge1xuICAgICAgICAgIGNvbG9yOiAkYmxvY2txdW90ZS1jaXRlLWxpbmstY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgYmxvY2txdW90ZSxcbiAgICBibG9ja3F1b3RlIHAge1xuICAgICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZS1oZWlnaHQ7XG4gICAgICBjb2xvcjogJGJsb2NrcXVvdGUtZm9udC1jb2xvcjtcbiAgICB9XG5cbiAgICAvKiBNaWNyb2Zvcm1hdHMgKi9cbiAgICAudmNhcmQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luOiAkbWljcm9mb3JtYXQtbWFyZ2luO1xuICAgICAgYm9yZGVyOiAkbWljcm9mb3JtYXQtYm9yZGVyLXdpZHRoICRtaWNyb2Zvcm1hdC1ib3JkZXItc3R5bGUgJG1pY3JvZm9ybWF0LWJvcmRlci1jb2xvcjtcbiAgICAgIHBhZGRpbmc6ICRtaWNyb2Zvcm1hdC1wYWRkaW5nO1xuXG4gICAgICBsaSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgICAuZm4ge1xuICAgICAgICBmb250LXdlaWdodDogJG1pY3JvZm9ybWF0LWZ1bGxuYW1lLWZvbnQtd2VpZ2h0O1xuICAgICAgICBmb250LXNpemU6ICRtaWNyb2Zvcm1hdC1mdWxsbmFtZS1mb250LXNpemU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnZldmVudCB7XG4gICAgICAuc3VtbWFyeSB7IGZvbnQtd2VpZ2h0OiAkbWljcm9mb3JtYXQtc3VtbWFyeS1mb250LXdlaWdodDsgfVxuXG4gICAgICBhYmJyIHtcbiAgICAgICAgY3Vyc29yOiAkY3Vyc29yLWRlZmF1bHQtdmFsdWU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogJG1pY3JvZm9ybWF0LWFiYnItZm9udC1kZWNvcmF0aW9uO1xuICAgICAgICBmb250LXdlaWdodDogJG1pY3JvZm9ybWF0LWFiYnItZm9udC13ZWlnaHQ7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgcGFkZGluZzogJG1pY3JvZm9ybWF0LWFiYnItcGFkZGluZztcbiAgICAgIH1cbiAgICB9XG5cblxuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYgeyBsaW5lLWhlaWdodDogJGhlYWRlci1saW5lLWhlaWdodDsgfVxuICAgICAgaDEgeyBmb250LXNpemU6ICRoMS1mb250LXNpemU7IH1cbiAgICAgIGgyIHsgZm9udC1zaXplOiAkaDItZm9udC1zaXplOyB9XG4gICAgICBoMyB7IGZvbnQtc2l6ZTogJGgzLWZvbnQtc2l6ZTsgfVxuICAgICAgaDQgeyBmb250LXNpemU6ICRoNC1mb250LXNpemU7IH1cbiAgICAgIGg1IHsgZm9udC1zaXplOiAkaDUtZm9udC1zaXplOyB9XG4gICAgICBoNiB7IGZvbnQtc2l6ZTogJGg2LWZvbnQtc2l6ZTsgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCAnZ2xvYmFsJztcbkBpbXBvcnQgJ3R5cGUnO1xuXG4vLyBPZmYgQ2FudmFzIFRhYiBCYXIgVmFyaWFibGVzXG4kaW5jbHVkZS1odG1sLW9mZi1jYW52YXMtY2xhc3NlczogJGluY2x1ZGUtaHRtbC1jbGFzc2VzICFkZWZhdWx0O1xuXG4kdGFiYmFyLWJnOiAkb2lsICFkZWZhdWx0O1xuJHRhYmJhci1oZWlnaHQ6IHJlbS1jYWxjKDQ1KSAhZGVmYXVsdDtcbiR0YWJiYXItaWNvbi13aWR0aDogJHRhYmJhci1oZWlnaHQgIWRlZmF1bHQ7XG4kdGFiYmFyLWxpbmUtaGVpZ2h0OiAkdGFiYmFyLWhlaWdodCAhZGVmYXVsdDtcbiR0YWJiYXItY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiR0YWJiYXItbWlkZGxlLXBhZGRpbmc6IDAgcmVtLWNhbGMoMTApICFkZWZhdWx0O1xuXG4vLyBPZmYgQ2FudmFzIERpdmlkZXIgU3R5bGVzXG4kdGFiYmFyLWxlZnQtc2VjdGlvbi1ib3JkZXI6IHNvbGlkIDFweCBzY2FsZS1jb2xvcigkdGFiYmFyLWJnLCAkbGlnaHRuZXNzOiAtNTAlKSAhZGVmYXVsdDtcbiR0YWJiYXItcmlnaHQtc2VjdGlvbi1ib3JkZXI6ICR0YWJiYXItbGVmdC1zZWN0aW9uLWJvcmRlcjtcblxuXG4vLyBPZmYgQ2FudmFzIFRhYiBCYXIgSGVhZGVyc1xuJHRhYmJhci1oZWFkZXItY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiR0YWJiYXItaGVhZGVyLXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG4kdGFiYmFyLWhlYWRlci1saW5lLWhlaWdodDogJHRhYmJhci1oZWlnaHQgIWRlZmF1bHQ7XG4kdGFiYmFyLWhlYWRlci1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vIE9mZiBDYW52YXMgTWVudSBWYXJpYWJsZXNcbiRvZmYtY2FudmFzLXdpZHRoOiByZW0tY2FsYygyNTApICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtYmc6ICRvaWwgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1iZy1ob3Zlcjogc2NhbGUtY29sb3IoJHRhYmJhci1iZywgJGxpZ2h0bmVzczogLTMwJSkgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1iZy1hY3RpdmU6IHNjYWxlLWNvbG9yKCR0YWJiYXItYmcsICRsaWdodG5lc3M6IC0zMCUpICFkZWZhdWx0O1xuXG4vLyBPZmYgQ2FudmFzIE1lbnUgTGlzdCBWYXJpYWJsZXNcbiRvZmYtY2FudmFzLWxhYmVsLXBhZGRpbmc6IC4zcmVtIHJlbS1jYWxjKDE1KSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWxhYmVsLWNvbG9yOiAkYWx1bWludW0gIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1sYWJlbC10ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1sYWJlbC1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1sYWJlbC1iZzogJHR1YXRhcmEgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1sYWJlbC1ib3JkZXItdG9wOiAxcHggc29saWQgc2NhbGUtY29sb3IoJG9mZi1jYW52YXMtbGFiZWwtYmcsICRsaWdodG5lc3M6IDE0JSkgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1sYWJlbC1ib3JkZXItYm90dG9tOiBub25lICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtbGFiZWwtbWFyZ2luOjAgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1saW5rLXBhZGRpbmc6IHJlbS1jYWxjKDEwLCAxNSkgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1saW5rLWNvbG9yOiByZ2JhKCR3aGl0ZSwgLjcpICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtbGluay1ib3JkZXItYm90dG9tOiAxcHggc29saWQgc2NhbGUtY29sb3IoJG9mZi1jYW52YXMtYmcsICRsaWdodG5lc3M6IC0yNSUpICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtYmFjay1iZzogIzQ0NCAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWJhY2stYm9yZGVyLXRvcDogJG9mZi1jYW52YXMtbGFiZWwtYm9yZGVyLXRvcCAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWJhY2stYm9yZGVyLWJvdHRvbTogJG9mZi1jYW52YXMtbGFiZWwtYm9yZGVyLWJvdHRvbSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLWJhY2staG92ZXItYmc6IHNjYWxlLWNvbG9yKCRvZmYtY2FudmFzLWJhY2stYmcsICRsaWdodG5lc3M6IC0zMCUpICFkZWZhdWx0O1xuJG9mZi1jYW52YXMtYmFjay1ob3Zlci1ib3JkZXItdG9wOiAxcHggc29saWQgc2NhbGUtY29sb3IoJG9mZi1jYW52YXMtbGFiZWwtYmcsICRsaWdodG5lc3M6IDE0JSkgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1iYWNrLWhvdmVyLWJvcmRlci1ib3R0b206IG5vbmUgIWRlZmF1bHQ7XG5cbi8vIE9mZiBDYW52YXMgTWVudSBJY29uIFZhcmlhYmxlc1xuJHRhYmJhci1tZW51LWljb24tY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiR0YWJiYXItbWVudS1pY29uLWhvdmVyOiBzY2FsZS1jb2xvcigkdGFiYmFyLW1lbnUtaWNvbi1jb2xvciwgJGxpZ2h0bmVzczogLTMwJSkgIWRlZmF1bHQ7XG5cbiR0YWJiYXItbWVudS1pY29uLXRleHQtaW5kZW50OiByZW0tY2FsYygzNSkgIWRlZmF1bHQ7XG4kdGFiYmFyLW1lbnUtaWNvbi13aWR0aDogJHRhYmJhci1pY29uLXdpZHRoICFkZWZhdWx0O1xuJHRhYmJhci1tZW51LWljb24taGVpZ2h0OiAkdGFiYmFyLWhlaWdodCAhZGVmYXVsdDtcbiR0YWJiYXItbWVudS1pY29uLXBhZGRpbmc6IDAgIWRlZmF1bHQ7XG5cbiR0YWJiYXItaGFtYnVyZ2VyLWljb24td2lkdGg6IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcbiR0YWJiYXItaGFtYnVyZ2VyLWljb24tbGVmdDogZmFsc2UgIWRlZmF1bHQ7XG4kdGFiYmFyLWhhbWJ1cmdlci1pY29uLXRvcDogZmFsc2UgIWRlZmF1bHQ7XG4kdGFiYmFyLWhhbWJ1cmdlci1pY29uLXRoaWNrbmVzczogMXB4ICFkZWZhdWx0O1xuJHRhYmJhci1oYW1idXJnZXItaWNvbi1nYXA6IDZweCAhZGVmYXVsdDtcblxuLy8gT2ZmIENhbnZhcyBCYWNrLUxpbmsgT3ZlcmxheVxuJG9mZi1jYW52YXMtb3ZlcmxheS10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDMwMG1zIGVhc2UgIWRlZmF1bHQ7XG4kb2ZmLWNhbnZhcy1vdmVybGF5LWN1cnNvcjogcG9pbnRlciAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLW92ZXJsYXktYm94LXNoYWRvdzogLTRweCAwIDRweCByZ2JhKCRibGFjaywgLjUpLCA0cHggMCA0cHggcmdiYSgkYmxhY2ssIC41KSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLW92ZXJsYXktYmFja2dyb3VuZDogcmdiYSgkd2hpdGUsIC4yKSAhZGVmYXVsdDtcbiRvZmYtY2FudmFzLW92ZXJsYXktYmFja2dyb3VuZC1ob3ZlcjogcmdiYSgkd2hpdGUsIC4wNSkgIWRlZmF1bHQ7XG5cbi8vIFRyYW5zaXRpb24gVmFyaWFibGVzXG4kbWVudS1zbGlkZTogXCJ0cmFuc2Zvcm0gNTAwbXMgZWFzZVwiICFkZWZhdWx0O1xuXG5cbi8vIE1JWElOU1xuLy8gUmVtb3ZlIHRyYW5zaXRpb24gZmxpY2tlciBvbiBwaG9uZXNcbkBtaXhpbiBraWxsLWZsaWNrZXIge1xuICAvLyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigweCk7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vLyBCYXNpYyBwcm9wZXJ0aWVzIGZvciB0aGUgY29udGVudCB3cmFwc1xuQG1peGluIHdyYXAtYmFzZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbkBtaXhpbiB0cmFuc2xhdGUzZCgkdHgsICR0eSwgJHR6KSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgkdHgsICR0eSwgJHR6KTtcbiAgICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKCR0eCwgJHR5LCAkdHopO1xuICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKCR0eCwgJHR5KTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKCR0eCwgJHR5LCAkdHopO1xuICAgICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoJHR4LCAkdHksICR0eik7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgkdHgsICR0eSwgJHR6KVxufVxuXG4vLyBiYXNpYyBzdHlsZXMgZm9yIG9mZi1jYW52YXMgbWVudSBjb250YWluZXJcbkBtaXhpbiBvZmYtY2FudmFzLW1lbnUoJHBvc2l0aW9uKSB7XG4gIEBpbmNsdWRlIGtpbGwtZmxpY2tlcjtcbiAgKiB7IEBpbmNsdWRlIGtpbGwtZmxpY2tlcjsgfVxuICBiYWNrZ3JvdW5kOiAkb2ZmLWNhbnZhcy1iZztcbiAgYm90dG9tOiAwO1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAtbXMtb3ZlcmZsb3ctc3R5bGU6IC1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDUwMG1zIGVhc2UgMHM7XG4gIHdpZHRoOiAkb2ZmLWNhbnZhcy13aWR0aDtcbiAgei1pbmRleDogMTAwMTtcblxuICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKC0xMDAlLDAsMCk7XG4gICAgbGVmdDogMDtcbiAgfVxuICBAaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICBAaW5jbHVkZSB0cmFuc2xhdGUzZCgxMDAlLDAsMCk7XG4gICAgcmlnaHQ6IDA7XG4gIH1cbn1cblxuLy8gT0ZGIENBTlZBUyBXUkFQXG4vLyBXcmFwIHZpc2libGUgY29udGVudCBhbmQgcHJldmVudCBzY3JvbGwgYmFyc1xuQG1peGluIG9mZi1jYW52YXMtd3JhcCB7XG4gIEBpbmNsdWRlIGtpbGwtZmxpY2tlcjtcbiAgQGluY2x1ZGUgd3JhcC1iYXNlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAmLm1vdmUtcmlnaHQsXG4gICYubW92ZS1sZWZ0IHsgbWluLWhlaWdodDogMTAwJTsgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOyB9XG59XG5cbi8vIElOTkVSIFdSQVBcbi8vIE1haW4gY29udGVudCBhcmVhIHRoYXQgbW92ZXMgdG8gcmV2ZWFsIHRoZSBvZmYtY2FudmFzIG5hdlxuQG1peGluIGlubmVyLXdyYXAge1xuICAvLyBAaW5jbHVkZSBraWxsLWZsaWNrZXI7XG4gIC8vIHJlbW92ZWQgZm9yIG5vdyB0aWxsIGNocm9tZSBmaXhlcyBiYWNrZmFjZSBpc3N1ZVxuICBAaW5jbHVkZSB3cmFwLWJhc2U7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtI3skbWVudS1zbGlkZX07XG4gIC1tb3otdHJhbnNpdGlvbjogLW1vei0jeyRtZW51LXNsaWRlfTtcbiAgLW1zLXRyYW5zaXRpb246IC1tcy0jeyRtZW51LXNsaWRlfTtcbiAgLW8tdHJhbnNpdGlvbjogLW8tI3skbWVudS1zbGlkZX07XG4gIHRyYW5zaXRpb246ICN7JG1lbnUtc2xpZGV9O1xufVxuXG4vLyBUQUIgQkFSXG4vLyBUaGlzIGlzIHRoZSB0YWIgYmFyIGJhc2VcbkBtaXhpbiB0YWItYmFyLWJhc2Uge1xuICBAaW5jbHVkZSBraWxsLWZsaWNrZXI7XG5cbiAgLy8gYmFzZSBzdHlsZXNcbiAgYmFja2dyb3VuZDogJHRhYmJhci1iZztcbiAgY29sb3I6ICR0YWJiYXItY29sb3I7XG4gIGhlaWdodDogJHRhYmJhci1oZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkdGFiYmFyLWxpbmUtaGVpZ2h0O1xuXG4gIC8vIG1ha2Ugc3VyZSBpdCdzIGJlbG93IHRoZSAuZXhpdC1vZmYtY2FudmFzIGxpbmtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAvLyB6LWluZGV4OiA5OTk7XG5cbiAgLy8gVHlwb2dyYXBoeVxuICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgICBjb2xvcjogJHRhYmJhci1oZWFkZXItY29sb3I7XG4gICAgZm9udC13ZWlnaHQ6ICR0YWJiYXItaGVhZGVyLXdlaWdodDtcbiAgICBsaW5lLWhlaWdodDogJHRhYmJhci1oZWFkZXItbGluZS1oZWlnaHQ7XG4gICAgbWFyZ2luOiAkdGFiYmFyLWhlYWRlci1tYXJnaW47XG4gIH1cbiAgaDEsIGgyLCBoMywgaDQgeyBmb250LXNpemU6ICRoNS1mb250LXNpemU7IH1cbn1cblxuLy8gU01BTEwgU0VDVElPTlNcbi8vIFRoZXNlIGFyZSBzbWFsbCBzZWN0aW9ucyBvbiB0aGUgbGVmdCBhbmQgcmlnaHQgdGhhdCBjb250YWluIHRoZSBvZmYtY2FudmFzIHRvZ2dsZSBidXR0b25zO1xuQG1peGluIHRhYmJhci1zbWFsbC1zZWN0aW9uKCRwb3NpdGlvbikge1xuICBoZWlnaHQ6ICR0YWJiYXItaGVpZ2h0O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgd2lkdGg6ICR0YWJiYXItaWNvbi13aWR0aDtcbiAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcbiAgICBib3JkZXItcmlnaHQ6ICR0YWJiYXItbGVmdC1zZWN0aW9uLWJvcmRlcjtcbiAgICAvLyBib3gtc2hhZG93OiAxcHggMCAwIHNjYWxlLWNvbG9yKCR0YWJiYXItYmcsICRsaWdodG5lc3M6IDEzJSk7XG4gICAgbGVmdDogMDtcbiAgfVxuICBAaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICBib3JkZXItbGVmdDogJHRhYmJhci1yaWdodC1zZWN0aW9uLWJvcmRlcjtcbiAgICAvLyBib3gtc2hhZG93OiAtMXB4IDAgMCBzY2FsZS1jb2xvcigkdGFiYmFyLWJnLCAkbGlnaHRuZXNzOiAtNTAlKTtcbiAgICByaWdodDowO1xuICB9XG59XG5cbkBtaXhpbiB0YWItYmFyLXNlY3Rpb24ge1xuICBoZWlnaHQ6ICR0YWJiYXItaGVpZ2h0O1xuICBwYWRkaW5nOiAkdGFiYmFyLW1pZGRsZS1wYWRkaW5nO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdG9wOiAwO1xuICAgICYubGVmdCB7IHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgICAmLnJpZ2h0IHsgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuXG4gIC8vIHN0aWxsIG5lZWQgdG8gbWFrZSB0aGVzZSBub24tcHJlc2VudGF0aW9uYWxcbiAgJi5sZWZ0IHtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAkdGFiYmFyLWljb24td2lkdGg7XG4gIH1cbiAgJi5yaWdodCB7XG4gICAgbGVmdDogJHRhYmJhci1pY29uLXdpZHRoO1xuICAgIHJpZ2h0OiAwO1xuICB9XG4gICYubWlkZGxlIHtcbiAgICBsZWZ0OiAkdGFiYmFyLWljb24td2lkdGg7XG4gICAgcmlnaHQ6ICR0YWJiYXItaWNvbi13aWR0aDtcbiAgfVxufVxuXG4vLyBPRkYgQ0FOVkFTIExJU1Rcbi8vIFRoaXMgaXMgdGhlIGxpc3Qgb2YgbGlua3MgaW4gdGhlIG9mZi1jYW52YXMgbWVudVxuQG1peGluIG9mZi1jYW52YXMtbGlzdCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgbWFyZ2luOjA7XG4gIHBhZGRpbmc6MDtcblxuICBsaSB7XG4gICAgbGFiZWwge1xuICAgICAgYmFja2dyb3VuZDogJG9mZi1jYW52YXMtbGFiZWwtYmc7XG4gICAgICBib3JkZXItYm90dG9tOiAkb2ZmLWNhbnZhcy1sYWJlbC1ib3JkZXItYm90dG9tO1xuICAgICAgYm9yZGVyLXRvcDogJG9mZi1jYW52YXMtbGFiZWwtYm9yZGVyLXRvcDtcbiAgICAgIGNvbG9yOiAkb2ZmLWNhbnZhcy1sYWJlbC1jb2xvcjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1zaXplOiAkb2ZmLWNhbnZhcy1sYWJlbC1mb250LXNpemU7XG4gICAgICBmb250LXdlaWdodDogJG9mZi1jYW52YXMtbGFiZWwtZm9udC13ZWlnaHQ7XG4gICAgICBtYXJnaW46ICRvZmYtY2FudmFzLWxhYmVsLW1hcmdpbjtcbiAgICAgIHBhZGRpbmc6ICRvZmYtY2FudmFzLWxhYmVsLXBhZGRpbmc7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogJG9mZi1jYW52YXMtbGFiZWwtdGV4dC10cmFuc2Zvcm07XG4gICAgfVxuICAgIGEge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJG9mZi1jYW52YXMtbGluay1ib3JkZXItYm90dG9tO1xuICAgICAgY29sb3I6ICRvZmYtY2FudmFzLWxpbmstY29sb3I7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBhZGRpbmc6ICRvZmYtY2FudmFzLWxpbmstcGFkZGluZztcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMzAwbXMgZWFzZTtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkb2ZmLWNhbnZhcy1iZy1ob3ZlcjtcbiAgICAgIH1cbiAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJG9mZi1jYW52YXMtYmctYWN0aXZlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG5cbi8vIEJBQ0sgTElOS1xuLy8gVGhpcyBpcyBhbiBvdmVybGF5IHRoYXQsIHdoZW4gY2xpY2tlZCwgd2lsbCB0b2dnbGUgb2ZmIHRoZSBvZmYgY2FudmFzIG1lbnVcbkBtaXhpbiBiYWNrLWxpbmsge1xuICBAaW5jbHVkZSBraWxsLWZsaWNrZXI7XG5cbiAgYm94LXNoYWRvdzogJG9mZi1jYW52YXMtb3ZlcmxheS1ib3gtc2hhZG93O1xuICBjdXJzb3I6ICRvZmYtY2FudmFzLW92ZXJsYXktY3Vyc29yO1xuICB0cmFuc2l0aW9uOiAkb2ZmLWNhbnZhcy1vdmVybGF5LXRyYW5zaXRpb247XG5cbiAgLy8gZmlsbCB0aGUgc2NyZWVuXG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLDAsMCwwKTtcbiAgYmFja2dyb3VuZDogJG9mZi1jYW52YXMtb3ZlcmxheS1iYWNrZ3JvdW5kO1xuICBib3R0b206IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IDEwMDI7XG5cbiAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJG9mZi1jYW52YXMtb3ZlcmxheS1iYWNrZ3JvdW5kLWhvdmVyO1xuICAgIH1cbiAgfVxufVxuXG4vL1xuLy8gT2ZmLUNhbnZhcyBTdWJtZW51IENsYXNzZXNcbi8vXG5AbWl4aW4gb2ZmLWNhbnZhcy1zdWJtZW51KCRwb3NpdGlvbikge1xuICBAaW5jbHVkZSBraWxsLWZsaWNrZXI7XG4gICogeyBAaW5jbHVkZSBraWxsLWZsaWNrZXI7IH1cbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICBiYWNrZ3JvdW5kOiAkb2ZmLWNhbnZhcy1iZztcbiAgYm90dG9tOiAwO1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgbWFyZ2luOiAwO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICB3aWR0aDogJG9mZi1jYW52YXMtd2lkdGg7XG4gIHotaW5kZXg6IDEwMDI7XG4gIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoLTEwMCUsMCwwKTtcbiAgICBsZWZ0OiAwO1xuICB9XG4gIEBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKDEwMCUsMCwwKTtcbiAgICByaWdodDogMDtcbiAgfVxuICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtI3skbWVudS1zbGlkZX07XG4gIC1tb3otdHJhbnNpdGlvbjogLW1vei0jeyRtZW51LXNsaWRlfTtcbiAgLW1zLXRyYW5zaXRpb246IC1tcy0jeyRtZW51LXNsaWRlfTtcbiAgLW8tdHJhbnNpdGlvbjogLW8tI3skbWVudS1zbGlkZX07XG4gIHRyYW5zaXRpb246ICN7JG1lbnUtc2xpZGV9O1xuXG4gIC8vYmFjayBidXR0b24gc3R5bGUgbGlrZSBsYWJlbFxuICAuYmFjayA+IGEge1xuICAgIGJhY2tncm91bmQ6ICRvZmYtY2FudmFzLWJhY2stYmc7XG4gICAgYm9yZGVyLWJvdHRvbTogJG9mZi1jYW52YXMtYmFjay1ib3JkZXItYm90dG9tO1xuICAgIGJvcmRlci10b3A6ICRvZmYtY2FudmFzLWJhY2stYm9yZGVyLXRvcDtcbiAgICBjb2xvcjogJG9mZi1jYW52YXMtbGFiZWwtY29sb3I7XG4gICAgZm9udC13ZWlnaHQ6ICRvZmYtY2FudmFzLWxhYmVsLWZvbnQtd2VpZ2h0O1xuICAgIHBhZGRpbmc6ICRvZmYtY2FudmFzLWxhYmVsLXBhZGRpbmc7XG4gICAgdGV4dC10cmFuc2Zvcm06ICRvZmYtY2FudmFzLWxhYmVsLXRleHQtdHJhbnNmb3JtO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkb2ZmLWNhbnZhcy1iYWNrLWhvdmVyLWJnO1xuICAgICAgYm9yZGVyLWJvdHRvbTogJG9mZi1jYW52YXMtYmFjay1ob3Zlci1ib3JkZXItYm90dG9tO1xuICAgICAgYm9yZGVyLXRvcDogJG9mZi1jYW52YXMtYmFjay1ob3Zlci1ib3JkZXItdG9wO1xuICAgIH1cblxuICAgIG1hcmdpbjogJG9mZi1jYW52YXMtbGFiZWwtbWFyZ2luO1xuICAgIEBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgICAgQGlmICR0ZXh0LWRpcmVjdGlvbiA9PSBydGwge1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgQGluY2x1ZGUgaWNvbi1kb3VibGUtYXJyb3dzKCRwb3NpdGlvbjogbGVmdCk7XG4gICAgICAgIH1cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICBAaW5jbHVkZSBpY29uLWRvdWJsZS1hcnJvd3MoJHBvc2l0aW9uOiByaWdodCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcbiAgICAgIEBpZiAkdGV4dC1kaXJlY3Rpb24gPT0gcnRsIHtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgQGluY2x1ZGUgaWNvbi1kb3VibGUtYXJyb3dzKCRwb3NpdGlvbjogcmlnaHQpO1xuICAgICAgICB9XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIEBpbmNsdWRlIGljb24tZG91YmxlLWFycm93cygkcG9zaXRpb246IGxlZnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4vL0xlZnQgZG91YmxlIGFuZ2xlIHF1b3RlIG9yIFJpZ2h0IGRvdWJsZSBhbmdsZSBxdW90ZSBjaGFyc1xuQG1peGluIGljb24tZG91YmxlLWFycm93cyAoJHBvc2l0aW9uKSB7XG4gIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgY29udGVudDogXCJcXEFCXCI7XG4gICAgQGlmICR0ZXh0LWRpcmVjdGlvbiA9PSBydGwge1xuICAgICAgbWFyZ2luLWxlZnQ6IC41cmVtO1xuICAgIH0gQGVsc2Uge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAuNXJlbTtcbiAgICB9XG4gIH1cbiAgQGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgY29udGVudDogXCJcXEJCXCI7XG4gICAgQGlmICR0ZXh0LWRpcmVjdGlvbiA9PSBydGwge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAuNXJlbTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAuNXJlbTtcbiAgICB9XG4gIH1cbiAgZGlzcGxheTogaW5saW5lO1xufVxuXG4vL1xuLy8gREVGQVVMVCBDTEFTU0VTXG4vL1xuQGluY2x1ZGUgZXhwb3J0cyhcIm9mZmNhbnZhc1wiKSB7XG4gIEBpZiAkaW5jbHVkZS1odG1sLW9mZi1jYW52YXMtY2xhc3NlcyB7XG5cbiAgICAub2ZmLWNhbnZhcy13cmFwIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy13cmFwOyB9XG4gICAgLmlubmVyLXdyYXAgeyBAaW5jbHVkZSBpbm5lci13cmFwOyB9XG5cbiAgICAudGFiLWJhciB7IEBpbmNsdWRlIHRhYi1iYXItYmFzZTsgfVxuXG4gICAgLmxlZnQtc21hbGwgeyBAaW5jbHVkZSB0YWJiYXItc21hbGwtc2VjdGlvbigkcG9zaXRpb246IGxlZnQpOyB9XG4gICAgLnJpZ2h0LXNtYWxsIHsgQGluY2x1ZGUgdGFiYmFyLXNtYWxsLXNlY3Rpb24oJHBvc2l0aW9uOiByaWdodCk7IH1cblxuICAgIC50YWItYmFyLXNlY3Rpb24geyBAaW5jbHVkZSB0YWItYmFyLXNlY3Rpb247IH1cblxuICAgIC8vIE1FTlUgQlVUVE9OXG4gICAgLy8gVGhpcyBpcyBhIGxpdHRsZSBib251cy4gWW91IGRvbid0IG5lZWQgaXQgZm9yIG9mZiBjYW52YXMgdG8gd29yay4gTWl4aW5zIHRvIGJlIHdyaXR0ZW4gaW4gdGhlIGZ1dHVyZS5cbiAgICAudGFiLWJhciAubWVudS1pY29uIHtcbiAgICAgIGNvbG9yOiAkdGFiYmFyLW1lbnUtaWNvbi1jb2xvcjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAkdGFiYmFyLW1lbnUtaWNvbi1oZWlnaHQ7XG4gICAgICBwYWRkaW5nOiAkdGFiYmFyLW1lbnUtaWNvbi1wYWRkaW5nO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdGV4dC1pbmRlbnQ6ICR0YWJiYXItbWVudS1pY29uLXRleHQtaW5kZW50O1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG4gICAgICB3aWR0aDogJHRhYmJhci1tZW51LWljb24td2lkdGg7XG5cbiAgICAgIC8vIEBpbmNsdWRlIGZvciB0aGUgaGFtYnVyZ2VyIG1lbnUtaWNvblxuICAgICAgLy9cbiAgICAgIC8vIEFyZ3VtZW50cyBhcyBmb2xsb3dzOiAoJHdpZHRoLCAkbGVmdCwgJHRvcCwgJHRoaWNrbmVzcywgJGdhcCwgJGNvbG9yLCAkaG92ZXItY29sb3IpXG4gICAgICAvLyAkd2lkdGggLSBXaWR0aCBvZiBoYW1idXJnZXIgaWNvbiBpbiByZW0gRGVmYXVsdDogJHRhYmJhci1oYW1idXJnZXItaWNvbi13aWR0aC5cbiAgICAgIC8vICRsZWZ0IC0gSWYgZmFsc2UsIGljb24gd2lsbCBiZSBjZW50ZXJlZCBob3Jpem9udGFsbHkgfHwgZXhwbGljaXRseSBzZXQgdmFsdWUgaW4gcmVtIERlZmF1bHQ6ICR0YWJiYXItaGFtYnVyZ2VyLWljb24tbGVmdD0gRmFsc2VcbiAgICAgIC8vICR0b3AgLSBJZiBmYWxzZSwgaWNvbiB3aWxsIGJlIGNlbnRlcmVkIHZlcnRpY2FsbHkgfHwgZXhwbGljaXRseSBzZXQgdmFsdWUgaW4gcmVtIERlZmF1bHQ6ID0gRmFsc2VcbiAgICAgIC8vICR0aGlja25lc3MgLSB0aGlja25lc3Mgb2YgbGluZXMgaW4gaGFtYnVyZ2VyIGljb24sIHNldCB2YWx1ZSBpbiBweCBEZWZhdWx0OiAkdGFiYmFyLWhhbWJ1cmdlci1pY29uLXRoaWNrbmVzcyA9IDFweFxuICAgICAgLy8gJGdhcCAtIHNwYWNpbmcgYmV0d2VlbiB0aGUgbGluZXMgaW4gaGFtYnVyZ2VyIGljb24sIHNldCB2YWx1ZSBpbiBweCBEZWZhdWx0OiAkdGFiYmFyLWhhbWJ1cmdlci1pY29uLWdhcCA9IDZweFxuICAgICAgLy8gJGNvbG9yIC0gaWNvbiBjb2xvciBEZWZhdWx0OiAkdGFiYmFyLW1lbnUtaWNvbi1jb2xvclxuICAgICAgLy8gJGhvdmVyLWNvbG9yIC0gaWNvbiBjb2xvciB3aGVuIGhvdmVyZWQgRGVmYXVsdDogJHRhYmJhci1tZW51LWljb24taG92ZXJcbiAgICAgIC8vICRvZmZjYW52YXMgLSBTZXQgdG8gdHJ1ZVxuICAgICAgQGluY2x1ZGUgaGFtYnVyZ2VyKCR0YWJiYXItaGFtYnVyZ2VyLWljb24td2lkdGgsICR0YWJiYXItaGFtYnVyZ2VyLWljb24tbGVmdCwgJHRhYmJhci1oYW1idXJnZXItaWNvbi10b3AsICR0YWJiYXItaGFtYnVyZ2VyLWljb24tdGhpY2tuZXNzLCAkdGFiYmFyLWhhbWJ1cmdlci1pY29uLWdhcCwgJHRhYmJhci1tZW51LWljb24tY29sb3IsICR0YWJiYXItbWVudS1pY29uLWhvdmVyLCB0cnVlKVxuICAgIH1cblxuICAgIC5sZWZ0LW9mZi1jYW52YXMtbWVudSB7IEBpbmNsdWRlIG9mZi1jYW52YXMtbWVudSgkcG9zaXRpb246IGxlZnQpOyB9XG4gICAgLnJpZ2h0LW9mZi1jYW52YXMtbWVudSB7IEBpbmNsdWRlIG9mZi1jYW52YXMtbWVudSgkcG9zaXRpb246IHJpZ2h0KTsgfVxuXG4gICAgdWwub2ZmLWNhbnZhcy1saXN0IHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1saXN0OyB9XG5cblxuICAgIC8vIEFOSU1BVElPTiBDTEFTU0VTXG4gICAgLy8gVGhlc2UgY2xhc3NlcyBhcmUgYWRkZWQgd2l0aCBKUyBhbmQgdHJpZ2dlciB0aGUgYWN0dWFsIGFuaW1hdGlvbi5cbiAgICAubW92ZS1yaWdodCB7XG4gICAgICA+IC5pbm5lci13cmFwIHtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNsYXRlM2QoJG9mZi1jYW52YXMtd2lkdGgsMCwwKTtcbiAgICAgIH1cbiAgICAgIC5leGl0LW9mZi1jYW52YXMgeyBAaW5jbHVkZSBiYWNrLWxpbms7fVxuICAgIH1cblxuICAgIC5tb3ZlLWxlZnQge1xuICAgICAgPiAuaW5uZXItd3JhcCB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKC0oJG9mZi1jYW52YXMtd2lkdGgpLDAsMCk7XG5cbiAgICAgIH1cbiAgICAgIC5leGl0LW9mZi1jYW52YXMgeyBAaW5jbHVkZSBiYWNrLWxpbms7IH1cbiAgICB9XG4gICAgLm9mZmNhbnZhcy1vdmVybGFwIHtcbiAgICAgIC5sZWZ0LW9mZi1jYW52YXMtbWVudSwgLnJpZ2h0LW9mZi1jYW52YXMtbWVudSB7XG4gICAgICAgIC1tcy10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAtbW96LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgLW8tdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHotaW5kZXg6IDEwMDM7XG4gICAgICB9XG4gICAgICAuZXhpdC1vZmYtY2FudmFzIHsgQGluY2x1ZGUgYmFjay1saW5rOyB9XG4gICAgfVxuICAgIC5vZmZjYW52YXMtb3ZlcmxhcC1sZWZ0IHtcbiAgICAgIC5yaWdodC1vZmYtY2FudmFzLW1lbnUge1xuICAgICAgICAtbXMtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgLW1vei10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIC1vLXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB6LWluZGV4OiAxMDAzO1xuICAgICAgfVxuICAgICAgLmV4aXQtb2ZmLWNhbnZhcyB7IEBpbmNsdWRlIGJhY2stbGluazsgfVxuICAgIH1cbiAgICAub2ZmY2FudmFzLW92ZXJsYXAtcmlnaHQge1xuICAgICAgLmxlZnQtb2ZmLWNhbnZhcy1tZW51IHtcbiAgICAgICAgLW1zLXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIC1tb3otdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAtby10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgei1pbmRleDogMTAwMztcbiAgICAgIH1cbiAgICAgIC5leGl0LW9mZi1jYW52YXMgeyBAaW5jbHVkZSBiYWNrLWxpbms7IH1cbiAgICB9XG5cbiAgICAvLyBPbGRlciBicm93c2Vyc1xuICAgIC5uby1jc3N0cmFuc2Zvcm1zIHtcbiAgICAgIC5sZWZ0LW9mZi1jYW52YXMtbWVudSB7IGxlZnQ6IC0oJG9mZi1jYW52YXMtd2lkdGgpOyB9XG4gICAgICAucmlnaHQtb2ZmLWNhbnZhcy1tZW51IHsgcmlnaHQ6IC0oJG9mZi1jYW52YXMtd2lkdGgpOyB9XG5cbiAgICAgIC5tb3ZlLWxlZnQgPiAuaW5uZXItd3JhcCB7IHJpZ2h0OiAkb2ZmLWNhbnZhcy13aWR0aDsgfVxuICAgICAgLm1vdmUtcmlnaHQgPiAuaW5uZXItd3JhcCB7IGxlZnQ6ICRvZmYtY2FudmFzLXdpZHRoOyB9XG4gICAgfVxuXG4gICAgLmxlZnQtc3VibWVudSB7XG4gICAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXN1Ym1lbnUoJHBvc2l0aW9uOiBsZWZ0KTtcbiAgICAgICYubW92ZS1yaWdodCwgJi5vZmZjYW52YXMtb3ZlcmxhcC1yaWdodCwgJi5vZmZjYW52YXMtb3ZlcmxhcCB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKDAlLDAsMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnJpZ2h0LXN1Ym1lbnUge1xuICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1zdWJtZW51KCRwb3NpdGlvbjogcmlnaHQpO1xuICAgICAgJi5tb3ZlLWxlZnQsICYub2ZmY2FudmFzLW92ZXJsYXAtbGVmdCwgJi5vZmZjYW52YXMtb3ZlcmxhcCB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zbGF0ZTNkKDAlLDAsMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICR0ZXh0LWRpcmVjdGlvbiA9PSBydGwge1xuICAgICAgLmxlZnQtb2ZmLWNhbnZhcy1tZW51IHVsLm9mZi1jYW52YXMtbGlzdCBsaS5oYXMtc3VibWVudSA+IGE6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgaWNvbi1kb3VibGUtYXJyb3dzKCRwb3NpdGlvbjogbGVmdCk7XG4gICAgICB9XG4gICAgICAucmlnaHQtb2ZmLWNhbnZhcy1tZW51IHVsLm9mZi1jYW52YXMtbGlzdCBsaS5oYXMtc3VibWVudSA+IGE6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBpY29uLWRvdWJsZS1hcnJvd3MoJHBvc2l0aW9uOiByaWdodCk7XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAubGVmdC1vZmYtY2FudmFzLW1lbnUgdWwub2ZmLWNhbnZhcy1saXN0IGxpLmhhcy1zdWJtZW51ID4gYTphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGljb24tZG91YmxlLWFycm93cygkcG9zaXRpb246IHJpZ2h0KTtcbiAgICAgIH1cbiAgICAgIC5yaWdodC1vZmYtY2FudmFzLW1lbnUgdWwub2ZmLWNhbnZhcy1saXN0IGxpLmhhcy1zdWJtZW51ID4gYTpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSBpY29uLWRvdWJsZS1hcnJvd3MoJHBvc2l0aW9uOiBsZWZ0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCAnZ2xvYmFsJztcblxuLy9cbi8vIEZvdW5kYXRpb24gVmlzaWJpbGl0eSBDbGFzc2VzXG4vL1xuJGluY2x1ZGUtaHRtbC12aXNpYmlsaXR5LWNsYXNzZXM6ICRpbmNsdWRlLWh0bWwtY2xhc3NlcyAhZGVmYXVsdDtcbiRpbmNsdWRlLWFjY2Vzc2liaWxpdHktY2xhc3NlczogdHJ1ZSAhZGVmYXVsdDtcbiRpbmNsdWRlLXRhYmxlLXZpc2liaWxpdHktY2xhc3NlczogdHJ1ZSAhZGVmYXVsdDtcbiRpbmNsdWRlLWxlZ2FjeS12aXNpYmlsaXR5LWNsYXNzZXM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vXG4vLyBNZWRpYSBDbGFzcyBOYW1lc1xuLy9cbi8vIFZpc2liaWxpdHkgQnJlYWtwb2ludHNcbiR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtc2l6ZXM6XG4gIHNtYWxsLFxuICBtZWRpdW0sXG4gIGxhcmdlLFxuICB4bGFyZ2UsXG4gIHh4bGFyZ2U7XG5cbiR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtcXVlcmllczpcbiAgdW5xdW90ZSgkc21hbGwtdXApLFxuICB1bnF1b3RlKCRtZWRpdW0tdXApLFxuICB1bnF1b3RlKCRsYXJnZS11cCksXG4gIHVucXVvdGUoJHhsYXJnZS11cCksXG4gIHVucXVvdGUoJHh4bGFyZ2UtdXApO1xuXG5AbWl4aW4gdmlzaWJpbGl0eS1sb29wIHtcbiAgQGVhY2ggJGN1cnJlbnQtdmlzaWJpbGl0eS1icmVha3BvaW50IGluICR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtc2l6ZXMge1xuICAgICR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdDogKCk7XG4gICAgJHZpc2liaWxpdHktbm9uZS1saXN0OiAoKTtcblxuICAgICR2aXNpYmlsaXR5LXZpc2libGUtbGlzdDogKCk7XG4gICAgJHZpc2liaWxpdHktaGlkZGVuLWxpc3Q6ICgpO1xuXG4gICAgJHZpc2liaWxpdHktdGFibGUtbGlzdDogKCk7XG4gICAgJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3Q6ICgpO1xuICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0OiAoKTtcbiAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdDogKCk7XG4gICAgJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0OiAoKTtcblxuICAgIEBlYWNoICR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludCBpbiAkdmlzaWJpbGl0eS1icmVha3BvaW50LXNpemVzIHtcbiAgICAgIEBpZiBpbmRleCgkdmlzaWJpbGl0eS1icmVha3BvaW50LXNpemVzLCAkdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnQpIDwgaW5kZXgoJHZpc2liaWxpdHktYnJlYWtwb2ludC1zaXplcywgJGN1cnJlbnQtdmlzaWJpbGl0eS1icmVha3BvaW50KSB7XG4gICAgICAgIC8vIFNtYWxsZXIgdGhhbiBjdXJyZW50IGJyZWFrcG9pbnRcblxuICAgICAgICAkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS1ub25lLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1ub25lLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCAudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LWhpZGRlbi1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaGlkZGVuLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy52aXNpYmxlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0YWJsZS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGFibGUuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3RoZWFkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0aGVhZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGJvZHkuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRib2R5LnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0ci5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdHIuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGguaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0aC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAsIHRkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuXG4gICAgICAgIC8vIEZvdW5kYXRpb24gNCBjb21wYXRpYmlsaXR5OlxuICAgICAgICAvLyBJbmNsdWRlIC5zaG93L2hpZGUtZm9yLVtzaXplXSBhbmQgLnNob3cvaGlkZS1mb3ItW3NpemVdLWRvd24gY2xhc3Nlc1xuICAgICAgICAvLyBmb3Igc21hbGwsIG1lZGl1bSwgYW5kIGxhcmdlIGJyZWFrcG9pbnRzIG9ubHlcbiAgICAgICAgQGlmICRpbmNsdWRlLWxlZ2FjeS12aXNpYmlsaXR5LWNsYXNzZXMgYW5kIGluZGV4KChzbWFsbCwgbWVkaXVtLCBsYXJnZSksICR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludCkgIT0gZmFsc2Uge1xuICAgICAgICAgICR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LW5vbmUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LW5vbmUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXZpc2libGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXZpc2libGUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIC5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWhpZGRlbi1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJy52aXNpYmxlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIC52aXNpYmxlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndGFibGUuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0YWJsZS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0aGVhZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRoZWFkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3Rib2R5LmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGJvZHkuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndHIuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0ci5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RoLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0aC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93biwgdGQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICB9XG5cbiAgICAgIH0gQGVsc2UgaWYgaW5kZXgoJHZpc2liaWxpdHktYnJlYWtwb2ludC1zaXplcywgJHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50KSA+IGluZGV4KCR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtc2l6ZXMsICRjdXJyZW50LXZpc2liaWxpdHktYnJlYWtwb2ludCkge1xuICAgICAgICAvLyBMYXJnZXIgdGhhbiBjdXJyZW50IGJyZWFrcG9pbnRcblxuICAgICAgICAkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS1ub25lLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1ub25lLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy5oaWRkZW4tZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCAuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktaGlkZGVuLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAnLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCAudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0YWJsZS5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGFibGUuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3RoZWFkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0aGVhZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGJvZHkuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRib2R5LmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0ci5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdHIuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGguaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0aC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAsIHRkLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuXG4gICAgICAgIC8vIEZvdW5kYXRpb24gNCBjb21wYXRpYmlsaXR5OlxuICAgICAgICAvLyBJbmNsdWRlIC5zaG93L2hpZGUtZm9yLVtzaXplXSBhbmQgLnNob3cvaGlkZS1mb3ItW3NpemVdLWRvd24gY2xhc3Nlc1xuICAgICAgICAvLyBmb3Igc21hbGwsIG1lZGl1bSwgYW5kIGxhcmdlIGJyZWFrcG9pbnRzIG9ubHlcbiAgICAgICAgQGlmICRpbmNsdWRlLWxlZ2FjeS12aXNpYmlsaXR5LWNsYXNzZXMgYW5kIGluZGV4KChzbWFsbCwgbWVkaXVtLCBsYXJnZSksICR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludCkgIT0gZmFsc2Uge1xuICAgICAgICAgICR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LW5vbmUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LW5vbmUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXZpc2libGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXZpc2libGUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIC52aXNpYmxlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktaGlkZGVuLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndGFibGUuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0YWJsZS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0aGVhZC5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRoZWFkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3Rib2R5LmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGJvZHkuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndHIuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0ci5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RoLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGQuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0aC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93biwgdGQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICB9XG5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAvLyBDdXJyZW50IGJyZWFrcG9pbnRcblxuICAgICAgICAkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1pbmhlcml0LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS1ub25lLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS1ub25lLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy5oaWRlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLmhpZGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS12aXNpYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJy52aXNpYmxlLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLnZpc2libGUtZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS1oaWRkZW4tbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWhpZGRlbi1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICcuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0YWJsZS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdGFibGUuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWhlYWRlci1ncm91cC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgJ3RoZWFkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0aGVhZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAnXG4gICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgJHZpc2liaWxpdHktdGFibGUtcm93LWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGJvZHkuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRib2R5LnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICd0ci5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tb25seSwgdHIuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LXVwJ1xuICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAndGguc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LW9ubHksIHRkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1vbmx5LCB0aC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tdXAsIHRkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS11cCdcbiAgICAgICAgKSwgY29tbWEpO1xuXG4gICAgICAgIC8vIEZvdW5kYXRpb24gNCBjb21wYXRpYmlsaXR5OlxuICAgICAgICAvLyBJbmNsdWRlIC5zaG93L2hpZGUtZm9yLVtzaXplXSBhbmQgLnNob3cvaGlkZS1mb3ItW3NpemVdLWRvd24gY2xhc3Nlc1xuICAgICAgICAvLyBmb3Igc21hbGwsIG1lZGl1bSwgYW5kIGxhcmdlIGJyZWFrcG9pbnRzIG9ubHlcbiAgICAgICAgQGlmICRpbmNsdWRlLWxlZ2FjeS12aXNpYmlsaXR5LWNsYXNzZXMgYW5kIGluZGV4KChzbWFsbCwgbWVkaXVtLCBsYXJnZSksICR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludCkgIT0gZmFsc2Uge1xuICAgICAgICAgICR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LWluaGVyaXQtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LW5vbmUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LW5vbmUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAuaGlkZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXZpc2libGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXZpc2libGUtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICcudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAudmlzaWJsZS1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LWhpZGRlbi1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktaGlkZGVuLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAnLmhpZGRlbi1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCAuaGlkZGVuLWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndGFibGUuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0YWJsZS5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3Q6IGFwcGVuZCgkdmlzaWJpbGl0eS10YWJsZS1oZWFkZXItZ3JvdXAtbGlzdCwgdW5xdW90ZShcbiAgICAgICAgICAgICd0aGVhZC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0sIHRoZWFkLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fS1kb3duJ1xuICAgICAgICAgICksIGNvbW1hKTtcbiAgICAgICAgICAkdmlzaWJpbGl0eS10YWJsZS1yb3ctZ3JvdXAtbGlzdDogYXBwZW5kKCR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3Rib2R5LnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGJvZHkuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICAgICR2aXNpYmlsaXR5LXRhYmxlLXJvdy1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtcm93LWxpc3QsIHVucXVvdGUoXG4gICAgICAgICAgICAndHIuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0ci5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93bidcbiAgICAgICAgICApLCBjb21tYSk7XG4gICAgICAgICAgJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0OiBhcHBlbmQoJHZpc2liaWxpdHktdGFibGUtY2VsbC1saXN0LCB1bnF1b3RlKFxuICAgICAgICAgICAgJ3RoLnNob3ctZm9yLSN7JHZpc2liaWxpdHktY29tcGFyaXNvbi1icmVha3BvaW50fSwgdGQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LCB0aC5zaG93LWZvci0jeyR2aXNpYmlsaXR5LWNvbXBhcmlzb24tYnJlYWtwb2ludH0tZG93biwgdGQuc2hvdy1mb3ItI3skdmlzaWJpbGl0eS1jb21wYXJpc29uLWJyZWFrcG9pbnR9LWRvd24nXG4gICAgICAgICAgKSwgY29tbWEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyogI3skY3VycmVudC12aXNpYmlsaXR5LWJyZWFrcG9pbnR9IGRpc3BsYXlzICovXG4gICAgQG1lZGlhICN7bnRoKCR2aXNpYmlsaXR5LWJyZWFrcG9pbnQtcXVlcmllcywgaW5kZXgoJHZpc2liaWxpdHktYnJlYWtwb2ludC1zaXplcywgJGN1cnJlbnQtdmlzaWJpbGl0eS1icmVha3BvaW50KSl9IHtcbiAgICAgICN7JHZpc2liaWxpdHktaW5oZXJpdC1saXN0fSB7XG4gICAgICAgIGRpc3BsYXk6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgICN7JHZpc2liaWxpdHktbm9uZS1saXN0fSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgIEBpZiAkaW5jbHVkZS1hY2Nlc3NpYmlsaXR5LWNsYXNzZXMgIT0gZmFsc2Uge1xuICAgICAgICAjeyR2aXNpYmlsaXR5LXZpc2libGUtbGlzdH0ge1xuICAgICAgICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlLW9mZjtcbiAgICAgICAgfVxuICAgICAgICAjeyR2aXNpYmlsaXR5LWhpZGRlbi1saXN0fSB7XG4gICAgICAgICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBpZiAkaW5jbHVkZS10YWJsZS12aXNpYmlsaXR5LWNsYXNzZXMgIT0gZmFsc2Uge1xuICAgICAgICAjeyR2aXNpYmlsaXR5LXRhYmxlLWxpc3R9IHtcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgICN7JHZpc2liaWxpdHktdGFibGUtaGVhZGVyLWdyb3VwLWxpc3R9IHtcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAjeyR2aXNpYmlsaXR5LXRhYmxlLXJvdy1ncm91cC1saXN0fSB7XG4gICAgICAgICAgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgI3skdmlzaWJpbGl0eS10YWJsZS1yb3ctbGlzdH0ge1xuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcbiAgICAgICAgfVxuICAgICAgICAjeyR2aXNpYmlsaXR5LXRhYmxlLWNlbGwtbGlzdH0ge1xuICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSBleHBvcnRzKFwidmlzaWJpbGl0eVwiKXtcbiAgQGlmICRpbmNsdWRlLWh0bWwtdmlzaWJpbGl0eS1jbGFzc2VzICE9IGZhbHNlIHtcblxuICBAaW5jbHVkZSB2aXNpYmlsaXR5LWxvb3A7XG5cbiAgLyogT3JpZW50YXRpb24gdGFyZ2V0aW5nICovXG4gIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gIC5oaWRlLWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IGluaGVyaXQgIWltcG9ydGFudDsgfVxuICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAuc2hvdy1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICAvKiBTcGVjaWZpYyB2aXNpYmlsaXR5IGZvciB0YWJsZXMgKi9cbiAgdGFibGUge1xuICAgICYuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgICYuc2hvdy1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gIH1cbiAgdGhlYWQge1xuICAgICYuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgICYuc2hvdy1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICB9XG4gIHRib2R5IHtcbiAgICAmLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgICAmLnNob3ctZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgfVxuICB0ciB7XG4gICAgJi5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgJi5zaG93LWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gIH1cbiAgdGQsXG4gIHRoIHtcbiAgICAmLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgICAmLnNob3ctZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gIH1cblxuICBAbWVkaWEgI3skbGFuZHNjYXBlfSB7XG4gICAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAuaGlkZS1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cbiAgICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgIC5zaG93LWZvci1wb3J0cmFpdCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gICAgLyogU3BlY2lmaWMgdmlzaWJpbGl0eSBmb3IgdGFibGVzICovXG4gICAgdGFibGUge1xuICAgICAgJi5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgICAmLmhpZGUtZm9yLXBvcnRyYWl0IHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgICB0aGVhZCB7XG4gICAgICAmLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAgICYuaGlkZS1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgICB0Ym9keSB7XG4gICAgICAmLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAgICYuaGlkZS1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgICB0ciB7XG4gICAgICAmLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAgICYuaGlkZS1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgICB0ZCxcbiAgICB0aCB7XG4gICAgICAmLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAgICYuaGlkZS1mb3ItcG9ydHJhaXQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cblxuICBAbWVkaWEgI3skcG9ydHJhaXR9IHtcbiAgICAuc2hvdy1mb3ItcG9ydHJhaXQsXG4gICAgLmhpZGUtZm9yLWxhbmRzY2FwZSB7IGRpc3BsYXk6IGluaGVyaXQgIWltcG9ydGFudDsgfVxuICAgIC5oaWRlLWZvci1wb3J0cmFpdCxcbiAgICAuc2hvdy1mb3ItbGFuZHNjYXBlIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgICAvKiBTcGVjaWZpYyB2aXNpYmlsaXR5IGZvciB0YWJsZXMgKi9cbiAgICB0YWJsZSB7XG4gICAgICAmLnNob3ctZm9yLXBvcnRyYWl0LFxuICAgICAgJi5oaWRlLWZvci1sYW5kc2NhcGUgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICAgIHRoZWFkIHtcbiAgICAgICYuc2hvdy1mb3ItcG9ydHJhaXQsXG4gICAgICAmLmhpZGUtZm9yLWxhbmRzY2FwZSB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgfVxuICAgIHRib2R5IHtcbiAgICAgICYuc2hvdy1mb3ItcG9ydHJhaXQsXG4gICAgICAmLmhpZGUtZm9yLWxhbmRzY2FwZSB7IGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgfVxuICAgIHRyIHtcbiAgICAgICYuc2hvdy1mb3ItcG9ydHJhaXQsXG4gICAgICAmLmhpZGUtZm9yLWxhbmRzY2FwZSB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gICAgfVxuICAgIHRkLFxuICAgIHRoIHtcbiAgICAgICYuc2hvdy1mb3ItcG9ydHJhaXQsXG4gICAgICAmLmhpZGUtZm9yLWxhbmRzY2FwZSB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuXG4gIC8qIFRvdWNoLWVuYWJsZWQgZGV2aWNlIHRhcmdldGluZyAqL1xuICAuc2hvdy1mb3ItdG91Y2ggeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLmhpZGUtZm9yLXRvdWNoIHsgZGlzcGxheTogaW5oZXJpdCAhaW1wb3J0YW50OyB9XG4gIC50b3VjaCAuc2hvdy1mb3ItdG91Y2ggeyBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cbiAgLnRvdWNoIC5oaWRlLWZvci10b3VjaCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gIC8qIFNwZWNpZmljIHZpc2liaWxpdHkgZm9yIHRhYmxlcyAqL1xuICB0YWJsZS5oaWRlLWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgLnRvdWNoIHRhYmxlLnNob3ctZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICB0aGVhZC5oaWRlLWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gIC50b3VjaCB0aGVhZC5zaG93LWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gIHRib2R5LmhpZGUtZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgLnRvdWNoIHRib2R5LnNob3ctZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgdHIuaGlkZS1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICAudG91Y2ggdHIuc2hvdy1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICB0ZC5oaWRlLWZvci10b3VjaCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAudG91Y2ggdGQuc2hvdy1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgdGguaGlkZS1mb3ItdG91Y2ggeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgLnRvdWNoIHRoLnNob3ctZm9yLXRvdWNoIHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG5cbiAgLyogU2NyZWVuIHJlYWRlci1zcGVjaWZpYyBjbGFzc2VzICovXG4gIC5zaG93LWZvci1zciB7XG4gICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGU7XG4gIH1cbiAgLnNob3ctb24tZm9jdXMge1xuICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlO1xuXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICBAaW5jbHVkZSBlbGVtZW50LWludmlzaWJsZS1vZmY7XG4gICAgfVxuICB9XG5cbiAgLy8gT25seSBpbmNsdWRlIHRoZXNlIHN0eWxlcyBpZiB5b3Ugd2FudCB0aGVtLlxuICAgIEBpZiAkaW5jbHVkZS1wcmludC1zdHlsZXMge1xuICAgICAgLypcbiAgICAgICAqIFByaW50IHN0eWxlcy5cbiAgICAgICAqXG4gICAgICAgKiBJbmxpbmVkIHRvIGF2b2lkIHJlcXVpcmVkIEhUVFAgY29ubmVjdGlvbjogd3d3LnBocGllZC5jb20vZGVsYXktbG9hZGluZy15b3VyLXByaW50LWNzcy9cbiAgICAgICAqIENyZWRpdCB0byBQYXVsIElyaXNoIGFuZCBIVE1MNSBCb2lsZXJwbGF0ZSAoaHRtbDVib2lsZXJwbGF0ZS5jb20pXG4gICAgICAqL1xuICAgICAgLnByaW50LW9ubHkgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAgICoge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgIGNvbG9yOiAkYmxhY2sgIWltcG9ydGFudDsgLyogQmxhY2sgcHJpbnRzIGZhc3RlcjogaDVicC5jb20vcyAqL1xuICAgICAgICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgICAgLmhpZGUtZm9yLXByaW50IHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICAgICAgIHRhYmxlLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAgICAgICB0aGVhZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgICAgIHRib2R5LnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgdHIuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICAgICAgICB0ZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAgICAgICB0aC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuXG4gICAgICAgIGEsXG4gICAgICAgIGE6dmlzaXRlZCB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO31cbiAgICAgICAgYVtocmVmXTphZnRlciB7IGNvbnRlbnQ6IFwiIChcIiBhdHRyKGhyZWYpIFwiKVwiOyB9XG5cbiAgICAgICAgYWJiclt0aXRsZV06YWZ0ZXIgeyBjb250ZW50OiBcIiAoXCIgYXR0cih0aXRsZSkgXCIpXCI7IH1cblxuICAgICAgICAvLyBEb24ndCBzaG93IGxpbmtzIGZvciBpbWFnZXMsIG9yIGphdmFzY3JpcHQvaW50ZXJuYWwgbGlua3NcbiAgICAgICAgLmlyIGE6YWZ0ZXIsXG4gICAgICAgIGFbaHJlZl49XCJqYXZhc2NyaXB0OlwiXTphZnRlcixcbiAgICAgICAgYVtocmVmXj1cIiNcIl06YWZ0ZXIgeyBjb250ZW50OiBcIlwiOyB9XG5cbiAgICAgICAgcHJlLFxuICAgICAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkYWx1bWludW07XG4gICAgICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhlYWQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IC8qIGg1YnAuY29tL3QgKi8gfVxuXG4gICAgICAgIHRyLFxuICAgICAgICBpbWcgeyBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cblxuICAgICAgICBpbWcgeyBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4gICAgICAgIEBwYWdlIHsgbWFyZ2luOiAuNWNtOyB9XG5cbiAgICAgICAgcCxcbiAgICAgICAgaDIsXG4gICAgICAgIGgzIHtcbiAgICAgICAgICBvcnBoYW5zOiAzO1xuICAgICAgICAgIHdpZG93czogMztcbiAgICAgICAgfVxuXG4gICAgICAgIGgyLFxuICAgICAgICBoMyB7IHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9XG5cbiAgICAgICAgLmhpZGUtb24tcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgLnByaW50LW9ubHkgeyBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gICAgICAgIC5oaWRlLWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAgICAgICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cbiAgICAgIH1cbiAgICB9XG5cbiAgLyogUHJpbnQgdmlzaWJpbGl0eSAqL1xuICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgLmhpZGUtZm9yLXByaW50IHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICAgICB0YWJsZS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgICAgIHRoZWFkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICAgIHRib2R5LnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICAgIHRyLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgICAgIHRkLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gICAgICB0aC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAgIH1cblxuICAgIEBtZWRpYSBub3QgcHJpbnR7XG4gICAgICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cbn1cbiIsImh0bWw6YWZ0ZXIge1xuXHQvLyB1c2VkIHRvIHRlc3QgaWYgYnJvd3NlciBjYW4gcmVhZCBnZXRDb21wdXRlZFN0eWxlIG9uIHBzZXVkbyBlbGVtZW50c1xuXHRjb250ZW50OiBcImpzLWJyZWFrcG9pbnRzLWdldENvbXB1dGVkU3R5bGVUZXN0XCI7XG5cdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRjbGlwOiByZWN0KDAgMCAwIDApO1xuIFx0b3ZlcmZsb3c6IGhpZGRlbjsgXHRcdFxuIFx0d2lkdGg6IDA7XG4gXHRoZWlnaHQ6IDA7XG59XG5cbkBtaXhpbiBkZWZpbmVCcmVha3BvaW50KCRuYW1lKSB7XG5cdC8vIHN0b3JlIGFjdGl2ZSBicmVha3BvaW50IG5hbWUgaW4gOjpwc2V1ZG8gY29udGVudFxuXHQmOmFmdGVyIHtcblx0XHRjb250ZW50OiAkbmFtZTtcblx0XHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1x0XHRcbiBcdFx0Y2xpcDogcmVjdCgwIDAgMCAwKTtcbiBcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0IFx0d2lkdGg6IDA7XG5cdCBcdGhlaWdodDogMDtcblx0fVxuXHRcblx0Ly8gYWRkIGZhbGxiYWNrIHN0eWxlIHVzaW5nIGJyZWFrcG9pbnQgbmFtZVxuXHQuanMtYnJlYWtwb2ludHMtI3skbmFtZX0ge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0fVxufSIsIi8qZG9jXG4tLS1cbnRpdGxlOiBUaGUgMyBNYWluIEJyZWFrcG9pbnRzXG5uYW1lOiBhLWRlZmF1bHQtYnJlYWtwb2ludHNcbmNhdGVnb3J5OiBMYXlvdXQgLSBCcmVha3BvaW50c1xuLS0tXG5cbkluIGdlbmVyYWwsIHdlIGFyZSB1c2luZyAqKjMqKiBtZWRpYSBxdWVyaWVzIGZvciBhbGwgb3VyIGxheW91dCBuZWVkcy4gV2UgYXJlXG5kZWZpbml0ZWx5ICptb2JpbGUgZmlyc3QqLCB0aGVyZWZvcmUsIGNvbnNpZGVyIG91ciAqc21hbGwqIHN0eWxlcyB0aGUgZGVmYXVsdC5cblxuVGhlIFtiYXNpYyBncmlkXVthLWJhc2ljLWdyaWRdIGFuZCB0aGUgW2ZsZXggZ3JpZF1bYS1mbGV4LWdyaWRdIGluY2x1ZGluZyBvdXIgW2xheW91dFxuaGVscGVyc11bYS1tYXJnaW4taGVscGVyc10gKHdpdGggcmVzcG9uc2l2ZSBxdWFsaWZpZXJzIGxpa2VcblttYXJnaW5dW2EtbWFyZ2luLWhlbHBlcnNdLCBcbltwYWRkaW5nXVtiLXBhZGRpbmctaGVscGVyc10sXG5bdmlzaWJpbGl0eV1bYy12aXNpYmlsaXR5LWhlbHBlcnNdLFxuW2Rpc3BsYXkgdHlwZV1bZC1kaXNwbGF5LXR5cGUtaGVscGVyc10sXG5hbmRcbltmbG9hdF1bZS1mbG9hdC1oZWxwZXJzXSBoZWxwZXJzKVxuYXJlIGJhc2VkIHVwb24gdGhlIGZvbGxvd2luZyAzXG5icmVha3BvaW50czpcblxuIyMjIERlZmF1bHQgQnJlYWtwb2ludHNcblxufCBCcmVha3BvaW50ICAgICAgICAgfCBweCAgICBcbnwtLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLVxufCBzbWFsbCAgICAgICAgICAgICAgfCAwXG58IG1lZGl1bSAgICAgICAgICAgICB8IDY0MFxufCBsYXJnZSAgICAgICAgICAgICAgfCAxMDIzXG5cbldlIGJ1aWxkIG91ciBkZWZhdWx0IG1lZGlhIHF1ZXJpZXMgd2l0aCB0aGVzZSBudW1iZXJzIGFuZCB0aGV5IGZvcm0gdGhlIFxuYmFzaXMgdXBvbiB3aGljaCB3ZSBidWlsZCB0aGUgdm9jYWJ1bGFyeSBmb3Igb3VyIHJlc3BvbnNpdmUgdG9vbHNldC5cblxuIyMjIFJlc3BvbnNpdmUgdm9jYWJ1bGFyeVxuXG58IFJlc3BvbnNpdmUgcXVhbGlmaWVycyB8IHJhbmdlXG58LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS1cbnwgLXNtYWxsLXVwICAgICAgICAgICAgICB8IHNjcmVlblxufCAtc21hbGwtb25seSAgICAgICAgICAgIHwgMCB0byA2NDBcbnwgLW1lZGl1bS11cCAgICAgICAgICAgICB8IDY0MSB1cFxufCAtbWVkaXVtLW9ubHkgICAgICAgICAgIHwgNjQxIHRvIDEwMjNcbnwgLWxhcmdlLXVwICAgICAgICAgICAgICB8IDEwMjQgdXBcblxuVXNpbmcgb3VyIDMgZGVmYXVsdCBicmVha3BvaW50cyBhbmQgdGhlIHZvY2FidWxhcnkgYWJvdmUsIHdlIHdlcmUgYWJsZSB0byBcbmNyZWF0ZSBoYW5keSBoZWxwZXIgY2xhc3NlcyB0byBzYXRpc2Z5IG1vc3Qgb2Ygb3VyIGxheW91dCBuZWVkcy4gVGhpbmdzIGxpa2U6XG5gLmZsZXgtc21hbGwtNmBcbmAuYmxvY2stdGlnaHQtZm9yLXNtYWxsLW9ubHlgXG5gLnBhZC1sb29zZXItZm9yLWxhcmdlLXVwYFxuYC5zaG93LWZvci1tZWRpdW0tdXBgXG5gLmhpZGUtZm9yLXNtYWxsLW9ubHlgXG5gLmRpc3BsYXktaW5saW5lLWZvci1tZWRpdW0tdXBgXG5gLmxlZnQtZm9yLW1lZGl1bS1vbmx5YFxuXG48YnI+XG4qL1xuXG4vKmRvY1xuLS0tXG50aXRsZTogQnJlYWtwb2ludCBNaXhpbnNcbm5hbWU6IGItYnJlYWtwb2ludC1oZWxwZXJzXG5jYXRlZ29yeTogTGF5b3V0IC0gQnJlYWtwb2ludHNcbi0tLVxuXG5Zb3Ugd2lsbCBtb3N0IGRlZmluaXRlbHkgbmVlZCB0byBzdHlsZSBjb21wb25lbnRzIGRpZmZlcmVudGx5IGRlcGVuZGluZ1xub24gdGhlIHZpZXdwb3J0IHdpZHRoIGFuZCB0aGUgd2F5IHRvIGRvIGl0IGlzIHdpdGggdGhlc2UgYnJlYWtwb2ludCBtaXhpbnM6XG5cbkhlcmUgYXJlIHRoZSBtaXhpbnMgeW91IGNhbiBAaW5jbHVkZTpcblxufCBtaXhpbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZXN1bHRcbnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLVxufCBgZnJvbShCUkVBS1BPSU5UX1ZBUilgICAgICAgICAgICAgICAgICAgICAgfCBzdHlsZXMgYXBwbGllZCBhYm92ZSB0aGlzIGJyZWFrcG9pbnRcbnwgYHRvKEJSRUFLUE9JTlRfVkFSKWAgICAgICAgICAgICAgICAgICAgICAgIHwgc3R5bGVzIGFwcGxpZWQgYmVmb3JlIHRoaXMgYnJlYWtwb2ludFxufCBgYmV0d2VlbihCUkVBS1BPSU5UX1ZBUiwgQlJFQUtQT0lOVF9WQVIpYCAgfCBzdHlsZXMgYXBwbGllZCBiZXR3ZWVuIHR3byBicmVha3BvaW50c1xuXG5cbkhlcmUgYXJlIHRoZSBhdmFpbGFibGUgYnJlYWtwb2ludCB2YXJpYWJsZXM6XG5cbnwgQlJFQUtQT0lOVF9WQVIgICAgIHwgcHggICAgXG58LS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS1cbnwgYnAtc21hbGwgICAgICAgICAgIHwgMFxufCBicC1zbWFsbC13aWRlICAgICAgfCAzMjBcbnwgYnAtc21hbGwtd2lkZXIgICAgIHwgMzYwXG58IGJwLXNtYWxsLXdpZGVzdCAgICB8IDQxNFxufCBicC1tZWRpdW0gICAgICAgICAgfCA2NDBcbnwgYnAtbWVkaXVtLXdpZGUgICAgIHwgNzY4XG58IGJwLW1lZGl1bS13aWRlciAgICB8IDg4MFxufCBicC1tZWRpdW0td2lkZXN0ICAgfCA5NjBcbnwgYnAtbGFyZ2UgICAgICAgICAgIHwgMTAyNFxuXG4jIyMgQW4gZXhhbXBsZTpcblxuPioqVE9ETzoqKiBBZGQgYW4gZXhhbXBsZSB0aGF0IHVzZXMgdGhlIHN5bnRheCBhYm92ZSB0byBjaGFuZ2UgdGhlIGNvbG9yIG9mIGJveGVzIG9yIHNvbWV0aGluZ1xuXG5JbiBjYXNlcyB3aGVyZSBvdXIgZGVmYXVsdCBicmVha3BvaW50cyBkbyBub3Qgc3VmZmljZSBhbmQgYSBtb3JlIHN1cmdpY2FsXG5tZWRpYSBxdWVyeSBpcyBuZWNlc3NhcnksIHlvdSBjYW4gYWRkIHRvIHRoZSBsaXN0IG9mIHZhcmlhYmxlcyBhYm92ZSBidXQgd2VcbmFzayB0aGF0IHlvdSBkbyBzbyBieSBhcHBlbmRpbmcgYC1OVU1FUklDQUxfVkFMVUVgIHdpdGggdGhlIG51bWVyaWNhbCB2YWx1ZVxuYmVpbmcgdGhlIGFkZGl0aW9uYWwgcGl4ZWxzIGFib3ZlIHRoZSBwcmVjZWRpbmcgdmFyaWFibGUuXG5cbkZvciBleGFtcGxlLiBJZiB3ZSBuZWVkZWQgdG8gYWRkIGEgYnJlYWtwb2ludCBvZiA5ODAsIHlvdSB3b3VsZCBhZGQgdGhlXG5mb2xsb3dpbmcgdG8gdGhlIHRhYmxlOlxuXG58IEJSRUFLUE9JTlRfVkFSICAgICAgICAgICAgIHwgcHggICAgXG58LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLVxufCBicC1tZWRpdW0td2lkZXN0LTIwICAgICAgICB8IDk4MFxuXG4qL1xuXG4vLyBVU04gYnJlYWtwb2ludCB2YXJpYWJsZXNcbi8vIG1hcCBjbGFzc25hbWUgc21hbGwsIG1lZGl1bSBhbmQgbGFyZ2Vcbi8vIHRvIGNvcnJlc3BvbmRpbmcgbWVkaWEgcXVlcnkgcmFuZ2VzIHJlbGV2YW50IHRvIGdyaWRzXG4kYnJlYWtwb2ludC12YXJpYWJsZXM6IChcbiAgICBzbWFsbDogJHNtYWxsLXVwLFxuICAgIHNtYWxsLW9ubHk6ICRzbWFsbC1vbmx5LCAgICBcbiAgICBtZWRpdW06ICRtZWRpdW0tdXAsXG4gICAgbWVkaXVtLXVwOiAkbWVkaXVtLXVwLFxuICAgIG1lZGl1bS1vbmx5OiAkbWVkaXVtLW9ubHksXG4gICAgbGFyZ2U6ICRsYXJnZS11cCxcbiAgICBsYXJnZS11cDogJGxhcmdlLXVwXG4pO1xuXG4kbm90LWxhcmdlLXVwOiBcIm5vdCBzY3JlZW4gYW5kIChtaW4td2lkdGg6I3tsb3dlci1ib3VuZCgkbGFyZ2UtcmFuZ2UpfSlcIjtcblxuLy8gVGhlc2UgY2xhc3NlcyBhcmUgZGVzaWduZWQgdG8gYmUgdXNlZCBvbiBwb3RlbnRpYWxseSBtb3JlIHRoYW4gb25lIGNsYXNzLFxuLy8gc28gdGhleSBzaG91bGQgYmUgYWJsZSB0byBiZSBleHRlbmRlZC5cbiVicmVha3BvaW50LXNtYWxsIHtcbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xuICAgICAgICBAaW5jbHVkZSBkZWZpbmVCcmVha3BvaW50KFwiQlJFQUtQT0lOVC1TTUFMTFwiKTtcbiAgICB9XG59XG5cbi8vIEkgdGhpbmsgd2Ugd2lsbCBuZWVkIHRoZXNlIHNvb25lciB0aGFuIHdlIHRoaW5rLlxuJWJyZWFrcG9pbnQtbWVkaXVtIHtcbiAgICBAbWVkaWEgI3skbWVkaXVtLW9ubHl9IHtcbiAgICAgICAgQGluY2x1ZGUgZGVmaW5lQnJlYWtwb2ludChcIkJSRUFLUE9JTlQtTUVESVVNXCIpO1xuICAgIH1cbn1cblxuJWJyZWFrcG9pbnQtbWVkaXVtLXdpZGUge1xuICAgIEBpbmNsdWRlIGJldHdlZW4oYnAtbWVkaXVtLXdpZGUsIGJwLWxhcmdlKSB7XG4gICAgICAgIEBpbmNsdWRlIGRlZmluZUJyZWFrcG9pbnQoXCJCUkVBS1BPSU5ULU1FRElVTS1XSURFXCIpO1xuICAgIH1cbn1cblxuJWJyZWFrcG9pbnQtbWVkaXVtLXdpZGVyIHtcbiAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgICAgQGluY2x1ZGUgZGVmaW5lQnJlYWtwb2ludChcIkJSRUFLUE9JTlQtV0lERVJcIik7XG4gICAgfVxufVxuXG4lYnJlYWtwb2ludC1tZWRpdW0td2lkZXN0IHtcblxufVxuXG4lYnJlYWtwb2ludC1sYXJnZSB7XG4gICAgQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgICAgIEBpbmNsdWRlIGRlZmluZUJyZWFrcG9pbnQoXCJCUkVBS1BPSU5ULUxBUkdFXCIpO1xuICAgIH1cbn1cblxuLy8gWW91IG5ldmVyIGtub3cuXG4lYnJlYWtwb2ludC1sYXJnZS13aWRlIHtcblxufVxuXG4vLyBUT0RPOiBUaGlzIHdpbGwgYmUgbW92ZWQgb2ZmIHRoZSBib2R5XG4vLyBhbmQgaW5zdGVhZCBpZiB3ZSB3YW50IHRoZSBzYW1lIGVmZmVjdCxcbi8vIHdlIHdpbGwgYXBwbHkgYnJlYWtwb2ludC1nbG9iYWwgdG8gdGhlIGJvZHkuXG5ib2R5IHtcbiAgICBAZXh0ZW5kICVicmVha3BvaW50LXNtYWxsO1xuICAgIEBleHRlbmQgJWJyZWFrcG9pbnQtbWVkaXVtO1xuICAgIEBleHRlbmQgJWJyZWFrcG9pbnQtbWVkaXVtLXdpZGU7XG4gICAgQGV4dGVuZCAlYnJlYWtwb2ludC1sYXJnZTtcbn1cblxuLmJyZWFrcG9pbnQtZ2xvYmFsIHtcbiAgICBAZXh0ZW5kICVicmVha3BvaW50LXNtYWxsO1xuICAgIEBleHRlbmQgJWJyZWFrcG9pbnQtbWVkaXVtO1xuICAgIEBleHRlbmQgJWJyZWFrcG9pbnQtbWVkaXVtLXdpZGU7XG4gICAgQGV4dGVuZCAlYnJlYWtwb2ludC1tZWRpdW0td2lkZXI7XG4gICAgQGV4dGVuZCAlYnJlYWtwb2ludC1sYXJnZTtcbn1cblxuLy8gTW9yZSBkaXNwbGF5IGNsYXNzZXMgZm9yIG5ld2VyIGJyZWFrcG9pbnRzXG4uc2hvdy1mb3ItbWVkaXVtLXdpZGUtdXAge1xuICAgIEBpbmNsdWRlIGZyb20oYnAtbWVkaXVtLXdpZGUpIHtcbiAgICAgICAgZGlzcGxheTogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLyohXG4gKiBhbmltYXRlLmNzcyAtaHR0cDovL2RhbmVkZW4ubWUvYW5pbWF0ZVxuICogVmVyc2lvbiAtIDMuNS4wXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgLSBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDE2IERhbmllbCBFZGVuXG4gKi9cblxuLmFuaW1hdGVkIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDFzO1xuICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG59XG5cbi5hbmltYXRlZC5pbmZpbml0ZSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xufVxuXG4uYW5pbWF0ZWQuaGluZ2Uge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMnM7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMnM7XG59XG5cbi5hbmltYXRlZC5mbGlwT3V0WCxcbi5hbmltYXRlZC5mbGlwT3V0WSxcbi5hbmltYXRlZC5ib3VuY2VJbixcbi5hbmltYXRlZC5ib3VuY2VPdXQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogLjc1cztcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAuNzVzO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlIHtcbiAgZnJvbSwgMjAlLCA1MyUsIDgwJSwgdG8ge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG4gIH1cblxuICA0MCUsIDQzJSB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43NTUsIDAuMDUwLCAwLjg1NSwgMC4wNjApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc1NSwgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zMHB4LCAwKTtcbiAgfVxuXG4gIDcwJSB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43NTUsIDAuMDUwLCAwLjg1NSwgMC4wNjApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc1NSwgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xNXB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xNXB4LCAwKTtcbiAgfVxuXG4gIDkwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsLTRweCwwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsLTRweCwwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZSB7XG4gIGZyb20sIDIwJSwgNTMlLCA4MCUsIHRvIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDApO1xuICB9XG5cbiAgNDAlLCA0MyUge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNzU1LCAwLjA1MCwgMC44NTUsIDAuMDYwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43NTUsIDAuMDUwLCAwLjg1NSwgMC4wNjApO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMzBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMzBweCwgMCk7XG4gIH1cblxuICA3MCUge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNzU1LCAwLjA1MCwgMC44NTUsIDAuMDYwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43NTUsIDAuMDUwLCAwLjg1NSwgMC4wNjApO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTVweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTVweCwgMCk7XG4gIH1cblxuICA5MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLC00cHgsMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLC00cHgsMCk7XG4gIH1cbn1cblxuLmJvdW5jZSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJvdW5jZTtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZTtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmxhc2gge1xuICBmcm9tLCA1MCUsIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMjUlLCA3NSUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmbGFzaCB7XG4gIGZyb20sIDUwJSwgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAyNSUsIDc1JSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4uZmxhc2gge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmbGFzaDtcbiAgYW5pbWF0aW9uLW5hbWU6IGZsYXNoO1xufVxuXG4vKiBvcmlnaW5hbGx5IGF1dGhvcmVkIGJ5IE5pY2sgUGV0dGl0IC0gaHR0cHM6Ly9naXRodWIuY29tL25pY2twZXR0aXQvZ2xpZGUgKi9cblxuQC13ZWJraXQta2V5ZnJhbWVzIHB1bHNlIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICB9XG5cbiAgNTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjA1LCAxLjA1LCAxLjA1KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4wNSwgMS4wNSwgMS4wNSk7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcHVsc2Uge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cblxuICA1MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMDUsIDEuMDUsIDEuMDUpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjA1LCAxLjA1LCAxLjA1KTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cbn1cblxuLnB1bHNlIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcHVsc2U7XG4gIGFuaW1hdGlvbi1uYW1lOiBwdWxzZTtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHJ1YmJlckJhbmQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cblxuICAzMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMjUsIDAuNzUsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjI1LCAwLjc1LCAxKTtcbiAgfVxuXG4gIDQwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMC43NSwgMS4yNSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuNzUsIDEuMjUsIDEpO1xuICB9XG5cbiAgNTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjE1LCAwLjg1LCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4xNSwgMC44NSwgMSk7XG4gIH1cblxuICA2NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC45NSwgMS4wNSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45NSwgMS4wNSwgMSk7XG4gIH1cblxuICA3NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMDUsIC45NSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMDUsIC45NSwgMSk7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcnViYmVyQmFuZCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxuXG4gIDMwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4yNSwgMC43NSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMjUsIDAuNzUsIDEpO1xuICB9XG5cbiAgNDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgwLjc1LCAxLjI1LCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC43NSwgMS4yNSwgMSk7XG4gIH1cblxuICA1MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMTUsIDAuODUsIDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjE1LCAwLjg1LCAxKTtcbiAgfVxuXG4gIDY1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjk1LCAxLjA1LCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjk1LCAxLjA1LCAxKTtcbiAgfVxuXG4gIDc1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4wNSwgLjk1LCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4wNSwgLjk1LCAxKTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cbn1cblxuLnJ1YmJlckJhbmQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBydWJiZXJCYW5kO1xuICBhbmltYXRpb24tbmFtZTogcnViYmVyQmFuZDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHNoYWtlIHtcbiAgZnJvbSwgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgMTAlLCAzMCUsIDUwJSwgNzAlLCA5MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gIH1cblxuICAyMCUsIDQwJSwgNjAlLCA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2hha2Uge1xuICBmcm9tLCB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICAxMCUsIDMwJSwgNTAlLCA3MCUsIDkwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMHB4LCAwLCAwKTtcbiAgfVxuXG4gIDIwJSwgNDAlLCA2MCUsIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gIH1cbn1cblxuLnNoYWtlIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogc2hha2U7XG4gIGFuaW1hdGlvbi1uYW1lOiBzaGFrZTtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGhlYWRTaGFrZSB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cblxuICA2LjUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNnB4KSByb3RhdGVZKC05ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTZweCkgcm90YXRlWSgtOWRlZyk7XG4gIH1cblxuICAxOC41JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNXB4KSByb3RhdGVZKDdkZWcpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1cHgpIHJvdGF0ZVkoN2RlZyk7XG4gIH1cblxuICAzMS41JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTNweCkgcm90YXRlWSgtNWRlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zcHgpIHJvdGF0ZVkoLTVkZWcpO1xuICB9XG5cbiAgNDMuNSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCkgcm90YXRlWSgzZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMnB4KSByb3RhdGVZKDNkZWcpO1xuICB9XG5cbiAgNTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBoZWFkU2hha2Uge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG5cbiAgNi41JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTZweCkgcm90YXRlWSgtOWRlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC02cHgpIHJvdGF0ZVkoLTlkZWcpO1xuICB9XG5cbiAgMTguNSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDVweCkgcm90YXRlWSg3ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNXB4KSByb3RhdGVZKDdkZWcpO1xuICB9XG5cbiAgMzEuNSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zcHgpIHJvdGF0ZVkoLTVkZWcpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtM3B4KSByb3RhdGVZKC01ZGVnKTtcbiAgfVxuXG4gIDQzLjUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpIHJvdGF0ZVkoM2RlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCkgcm90YXRlWSgzZGVnKTtcbiAgfVxuXG4gIDUwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG59XG5cbi5oZWFkU2hha2Uge1xuICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogaGVhZFNoYWtlO1xuICBhbmltYXRpb24tbmFtZTogaGVhZFNoYWtlO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgc3dpbmcge1xuICAyMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAxNWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAxNWRlZyk7XG4gIH1cblxuICA0MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtMTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTEwZGVnKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDVkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNWRlZyk7XG4gIH1cblxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNWRlZyk7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMGRlZyk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzd2luZyB7XG4gIDIwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDE1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDE1ZGVnKTtcbiAgfVxuXG4gIDQwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC0xMGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtMTBkZWcpO1xuICB9XG5cbiAgNjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA1ZGVnKTtcbiAgfVxuXG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC01ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC01ZGVnKTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAwZGVnKTtcbiAgfVxufVxuXG4uc3dpbmcge1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHN3aW5nO1xuICBhbmltYXRpb24tbmFtZTogc3dpbmc7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyB0YWRhIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICB9XG5cbiAgMTAlLCAyMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC45LCAuOSwgLjkpIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjksIC45LCAuOSkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpO1xuICB9XG5cbiAgMzAlLCA1MCUsIDcwJSwgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKSByb3RhdGUzZCgwLCAwLCAxLCAzZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSkgcm90YXRlM2QoMCwgMCwgMSwgM2RlZyk7XG4gIH1cblxuICA0MCUsIDYwJSwgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKSByb3RhdGUzZCgwLCAwLCAxLCAtM2RlZyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyB0YWRhIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICB9XG5cbiAgMTAlLCAyMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC45LCAuOSwgLjkpIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjksIC45LCAuOSkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpO1xuICB9XG5cbiAgMzAlLCA1MCUsIDcwJSwgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKSByb3RhdGUzZCgwLCAwLCAxLCAzZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSkgcm90YXRlM2QoMCwgMCwgMSwgM2RlZyk7XG4gIH1cblxuICA0MCUsIDYwJSwgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKSByb3RhdGUzZCgwLCAwLCAxLCAtM2RlZyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cbn1cblxuLnRhZGEge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB0YWRhO1xuICBhbmltYXRpb24tbmFtZTogdGFkYTtcbn1cblxuLyogb3JpZ2luYWxseSBhdXRob3JlZCBieSBOaWNrIFBldHRpdCAtIGh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrcGV0dGl0L2dsaWRlICovXG5cbkAtd2Via2l0LWtleWZyYW1lcyB3b2JibGUge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAxNSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjUlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtNWRlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjUlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtNWRlZyk7XG4gIH1cblxuICAzMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDNkZWcpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAzZGVnKTtcbiAgfVxuXG4gIDQ1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgMmRlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDJkZWcpO1xuICB9XG5cbiAgNzUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtMWRlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC0xZGVnKTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuQGtleWZyYW1lcyB3b2JibGUge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAxNSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjUlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtNWRlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjUlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtNWRlZyk7XG4gIH1cblxuICAzMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDNkZWcpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAzZGVnKTtcbiAgfVxuXG4gIDQ1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgMmRlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDJkZWcpO1xuICB9XG5cbiAgNzUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtMWRlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC0xZGVnKTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLndvYmJsZSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHdvYmJsZTtcbiAgYW5pbWF0aW9uLW5hbWU6IHdvYmJsZTtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGplbGxvIHtcbiAgZnJvbSwgMTEuMSUsIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAyMi4yJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKC0xMi41ZGVnKSBza2V3WSgtMTIuNWRlZyk7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgtMTIuNWRlZykgc2tld1koLTEyLjVkZWcpO1xuICB9XG5cbiAgMzMuMyUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCg2LjI1ZGVnKSBza2V3WSg2LjI1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKDYuMjVkZWcpIHNrZXdZKDYuMjVkZWcpO1xuICB9XG5cbiAgNDQuNCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgtMy4xMjVkZWcpIHNrZXdZKC0zLjEyNWRlZyk7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgtMy4xMjVkZWcpIHNrZXdZKC0zLjEyNWRlZyk7XG4gIH1cblxuICA1NS41JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKDEuNTYyNWRlZykgc2tld1koMS41NjI1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKDEuNTYyNWRlZykgc2tld1koMS41NjI1ZGVnKTtcbiAgfVxuXG4gIDY2LjYlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goLTAuNzgxMjVkZWcpIHNrZXdZKC0wLjc4MTI1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKC0wLjc4MTI1ZGVnKSBza2V3WSgtMC43ODEyNWRlZyk7XG4gIH1cblxuICA3Ny43JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKDAuMzkwNjI1ZGVnKSBza2V3WSgwLjM5MDYyNWRlZyk7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgwLjM5MDYyNWRlZykgc2tld1koMC4zOTA2MjVkZWcpO1xuICB9XG5cbiAgODguOCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgtMC4xOTUzMTI1ZGVnKSBza2V3WSgtMC4xOTUzMTI1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKC0wLjE5NTMxMjVkZWcpIHNrZXdZKC0wLjE5NTMxMjVkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgamVsbG8ge1xuICBmcm9tLCAxMS4xJSwgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIDIyLjIlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goLTEyLjVkZWcpIHNrZXdZKC0xMi41ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKC0xMi41ZGVnKSBza2V3WSgtMTIuNWRlZyk7XG4gIH1cblxuICAzMy4zJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKDYuMjVkZWcpIHNrZXdZKDYuMjVkZWcpO1xuICAgIHRyYW5zZm9ybTogc2tld1goNi4yNWRlZykgc2tld1koNi4yNWRlZyk7XG4gIH1cblxuICA0NC40JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKC0zLjEyNWRlZykgc2tld1koLTMuMTI1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKC0zLjEyNWRlZykgc2tld1koLTMuMTI1ZGVnKTtcbiAgfVxuXG4gIDU1LjUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goMS41NjI1ZGVnKSBza2V3WSgxLjU2MjVkZWcpO1xuICAgIHRyYW5zZm9ybTogc2tld1goMS41NjI1ZGVnKSBza2V3WSgxLjU2MjVkZWcpO1xuICB9XG5cbiAgNjYuNiUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgtMC43ODEyNWRlZykgc2tld1koLTAuNzgxMjVkZWcpO1xuICAgIHRyYW5zZm9ybTogc2tld1goLTAuNzgxMjVkZWcpIHNrZXdZKC0wLjc4MTI1ZGVnKTtcbiAgfVxuXG4gIDc3LjclIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goMC4zOTA2MjVkZWcpIHNrZXdZKDAuMzkwNjI1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKDAuMzkwNjI1ZGVnKSBza2V3WSgwLjM5MDYyNWRlZyk7XG4gIH1cblxuICA4OC44JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKC0wLjE5NTMxMjVkZWcpIHNrZXdZKC0wLjE5NTMxMjVkZWcpO1xuICAgIHRyYW5zZm9ybTogc2tld1goLTAuMTk1MzEyNWRlZykgc2tld1koLTAuMTk1MzEyNWRlZyk7XG4gIH1cbn1cblxuLmplbGxvIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogamVsbG87XG4gIGFuaW1hdGlvbi1uYW1lOiBqZWxsbztcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZUluIHtcbiAgZnJvbSwgMjAlLCA0MCUsIDYwJSwgODAlLCB0byB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gIH1cblxuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7XG4gIH1cblxuICAyMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKTtcbiAgfVxuXG4gIDQwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjksIC45LCAuOSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45LCAuOSwgLjkpO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMDMsIDEuMDMsIDEuMDMpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjAzLCAxLjAzLCAxLjAzKTtcbiAgfVxuXG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjk3LCAuOTcsIC45Nyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45NywgLjk3LCAuOTcpO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlSW4ge1xuICBmcm9tLCAyMCUsIDQwJSwgNjAlLCA4MCUsIHRvIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgfVxuXG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTtcbiAgfVxuXG4gIDIwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpO1xuICB9XG5cbiAgNDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguOSwgLjksIC45KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjksIC45LCAuOSk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4wMywgMS4wMywgMS4wMyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMDMsIDEuMDMsIDEuMDMpO1xuICB9XG5cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguOTcsIC45NywgLjk3KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjk3LCAuOTcsIC45Nyk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cbn1cblxuLmJvdW5jZUluIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlSW47XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VJbjtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZUluRG93biB7XG4gIGZyb20sIDYwJSwgNzUlLCA5MCUsIHRvIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgfVxuXG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMzAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zMDAwcHgsIDApO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyNXB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDI1cHgsIDApO1xuICB9XG5cbiAgNzUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApO1xuICB9XG5cbiAgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgNXB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDVweCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlSW5Eb3duIHtcbiAgZnJvbSwgNjAlLCA3NSUsIDkwJSwgdG8ge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICB9XG5cbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTMwMDBweCwgMCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDI1cHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjVweCwgMCk7XG4gIH1cblxuICA3NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTBweCwgMCk7XG4gIH1cblxuICA5MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA1cHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgNXB4LCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLmJvdW5jZUluRG93biB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluRG93bjtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluRG93bjtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZUluTGVmdCB7XG4gIGZyb20sIDYwJSwgNzUlLCA5MCUsIHRvIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgfVxuXG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMzAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0zMDAwcHgsIDAsIDApO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyNXB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDI1cHgsIDAsIDApO1xuICB9XG5cbiAgNzUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApO1xuICB9XG5cbiAgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNXB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDVweCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlSW5MZWZ0IHtcbiAgZnJvbSwgNjAlLCA3NSUsIDkwJSwgdG8ge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICB9XG5cbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0zMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTMwMDBweCwgMCwgMCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDI1cHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjVweCwgMCwgMCk7XG4gIH1cblxuICA3NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gIH1cblxuICA5MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg1cHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNXB4LCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLmJvdW5jZUluTGVmdCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluTGVmdDtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluTGVmdDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZUluUmlnaHQge1xuICBmcm9tLCA2MCUsIDc1JSwgOTAlLCB0byB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gIH1cblxuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgzMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMzAwMHB4LCAwLCAwKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTI1cHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTI1cHgsIDAsIDApO1xuICB9XG5cbiAgNzUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMHB4LCAwLCAwKTtcbiAgfVxuXG4gIDkwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01cHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTVweCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlSW5SaWdodCB7XG4gIGZyb20sIDYwJSwgNzUlLCA5MCUsIHRvIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgfVxuXG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDMwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgzMDAwcHgsIDAsIDApO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjVweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjVweCwgMCwgMCk7XG4gIH1cblxuICA3NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApO1xuICB9XG5cbiAgOTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTVweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNXB4LCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLmJvdW5jZUluUmlnaHQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBib3VuY2VJblJpZ2h0O1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlSW5SaWdodDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZUluVXAge1xuICBmcm9tLCA2MCUsIDc1JSwgOTAlLCB0byB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gIH1cblxuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAzMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMzAwMHB4LCAwKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApO1xuICB9XG5cbiAgNzUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMHB4LCAwKTtcbiAgfVxuXG4gIDkwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01cHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTVweCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBib3VuY2VJblVwIHtcbiAgZnJvbSwgNjAlLCA3NSUsIDkwJSwgdG8ge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICB9XG5cbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMzAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDMwMDBweCwgMCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKTtcbiAgfVxuXG4gIDc1JSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTBweCwgMCk7XG4gIH1cblxuICA5MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNXB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01cHgsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbi5ib3VuY2VJblVwIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlSW5VcDtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluVXA7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VPdXQge1xuICAyMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC45LCAuOSwgLjkpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOSwgLjksIC45KTtcbiAgfVxuXG4gIDUwJSwgNTUlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZU91dCB7XG4gIDIwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjksIC45LCAuOSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45LCAuOSwgLjkpO1xuICB9XG5cbiAgNTAlLCA1NSUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICB9XG59XG5cbi5ib3VuY2VPdXQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VPdXREb3duIHtcbiAgMjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMHB4LCAwKTtcbiAgfVxuXG4gIDQwJSwgNDUlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjBweCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBib3VuY2VPdXREb3duIHtcbiAgMjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMHB4LCAwKTtcbiAgfVxuXG4gIDQwJSwgNDUlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjBweCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gIH1cbn1cblxuLmJvdW5jZU91dERvd24ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXREb3duO1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlT3V0RG93bjtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZU91dExlZnQge1xuICAyMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjBweCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZU91dExlZnQge1xuICAyMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjBweCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgfVxufVxuXG4uYm91bmNlT3V0TGVmdCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dExlZnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXRMZWZ0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlT3V0UmlnaHQge1xuICAyMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMHB4LCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZU91dFJpZ2h0IHtcbiAgMjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjBweCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gIH1cbn1cblxuLmJvdW5jZU91dFJpZ2h0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlT3V0UmlnaHQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXRSaWdodDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZU91dFVwIHtcbiAgMjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApO1xuICB9XG5cbiAgNDAlLCA0NSUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjBweCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZU91dFVwIHtcbiAgMjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApO1xuICB9XG5cbiAgNDAlLCA0NSUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjBweCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgfVxufVxuXG4uYm91bmNlT3V0VXAge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXRVcDtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dFVwO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5mYWRlSW4ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW47XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW47XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5Eb3duIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluRG93biB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4uZmFkZUluRG93biB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkRvd247XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluRG93bkJpZyB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlSW5Eb3duQmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4uZmFkZUluRG93bkJpZyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkRvd25CaWc7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duQmlnO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluTGVmdCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJbkxlZnQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLmZhZGVJbkxlZnQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5MZWZ0O1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluTGVmdDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJbkxlZnRCaWcge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluTGVmdEJpZyB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLmZhZGVJbkxlZnRCaWcge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5MZWZ0QmlnO1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluTGVmdEJpZztcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJblJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJblJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4uZmFkZUluUmlnaHQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5SaWdodDtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJblJpZ2h0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluUmlnaHRCaWcge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJblJpZ2h0QmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLmZhZGVJblJpZ2h0QmlnIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluUmlnaHRCaWc7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5SaWdodEJpZztcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJblVwIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJblVwIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4uZmFkZUluVXAge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5VcDtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJblVwO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluVXBCaWcge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJblVwQmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLmZhZGVJblVwQmlnIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluVXBCaWc7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5VcEJpZztcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5mYWRlT3V0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dDtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0RG93biB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXREb3duIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICB9XG59XG5cbi5mYWRlT3V0RG93biB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXREb3duO1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dERvd247XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0RG93bkJpZyB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0RG93bkJpZyB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gIH1cbn1cblxuLmZhZGVPdXREb3duQmlnIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dERvd25CaWc7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0RG93bkJpZztcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXRMZWZ0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0TGVmdCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICB9XG59XG5cbi5mYWRlT3V0TGVmdCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRMZWZ0O1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dExlZnQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0TGVmdEJpZyB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXRMZWZ0QmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICB9XG59XG5cbi5mYWRlT3V0TGVmdEJpZyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRMZWZ0QmlnO1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dExlZnRCaWc7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0UmlnaHQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0UmlnaHQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gIH1cbn1cblxuLmZhZGVPdXRSaWdodCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRSaWdodDtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRSaWdodDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXRSaWdodEJpZyB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0UmlnaHRCaWcge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICB9XG59XG5cbi5mYWRlT3V0UmlnaHRCaWcge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0UmlnaHRCaWc7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0UmlnaHRCaWc7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0VXAge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXRVcCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICB9XG59XG5cbi5mYWRlT3V0VXAge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0VXA7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0VXA7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0VXBCaWcge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0VXBCaWcge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gIH1cbn1cblxuLmZhZGVPdXRVcEJpZyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRVcEJpZztcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRVcEJpZztcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZsaXAge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0zNjBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0zNjBkZWcpO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIH1cblxuICA0MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgdHJhbnNsYXRlM2QoMCwgMCwgMTUwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0xOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHRyYW5zbGF0ZTNkKDAsIDAsIDE1MHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMTkwZGVnKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICB9XG5cbiAgNTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHRyYW5zbGF0ZTNkKDAsIDAsIDE1MHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMTcwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSB0cmFuc2xhdGUzZCgwLCAwLCAxNTBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTE3MGRlZyk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gIH1cblxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgc2NhbGUzZCguOTUsIC45NSwgLjk1KTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSBzY2FsZTNkKC45NSwgLjk1LCAuOTUpO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmbGlwIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMzYwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMzYwZGVnKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICB9XG5cbiAgNDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHRyYW5zbGF0ZTNkKDAsIDAsIDE1MHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMTkwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSB0cmFuc2xhdGUzZCgwLCAwLCAxNTBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTE5MGRlZyk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgfVxuXG4gIDUwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSB0cmFuc2xhdGUzZCgwLCAwLCAxNTBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTE3MGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgdHJhbnNsYXRlM2QoMCwgMCwgMTUwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0xNzBkZWcpO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICB9XG5cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHNjYWxlM2QoLjk1LCAuOTUsIC45NSk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgc2NhbGUzZCguOTUsIC45NSwgLjk1KTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICB9XG59XG5cbi5hbmltYXRlZC5mbGlwIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmbGlwO1xuICBhbmltYXRpb24tbmFtZTogZmxpcDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZsaXBJblgge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIDkwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCA5MGRlZyk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIDQwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtMjBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC0yMGRlZyk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gIH1cblxuICA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgMTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIDEwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC01ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtNWRlZyk7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZsaXBJblgge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIDkwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCA5MGRlZyk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIDQwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtMjBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC0yMGRlZyk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gIH1cblxuICA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgMTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIDEwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC01ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtNWRlZyk7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgfVxufVxuXG4uZmxpcEluWCB7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZsaXBJblg7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbGlwSW5YO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmxpcEluWSB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIDkwZGVnKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgNDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0yMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTIwZGVnKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgfVxuXG4gIDYwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAxMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgMTBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTVkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC01ZGVnKTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmxpcEluWSB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIDkwZGVnKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgNDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0yMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTIwZGVnKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgfVxuXG4gIDYwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAxMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgMTBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICA4MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTVkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC01ZGVnKTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICB9XG59XG5cbi5mbGlwSW5ZIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmxpcEluWTtcbiAgYW5pbWF0aW9uLW5hbWU6IGZsaXBJblk7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmbGlwT3V0WCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gIH1cblxuICAzMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgLTIwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtMjBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCA5MGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmbGlwT3V0WCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gIH1cblxuICAzMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgLTIwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtMjBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCA5MGRlZyk7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLmZsaXBPdXRYIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmxpcE91dFg7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbGlwT3V0WDtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZsaXBPdXRZIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgfVxuXG4gIDMwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMTVkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0xNWRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIDkwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCA5MGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZsaXBPdXRZIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgfVxuXG4gIDMwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMTVkZWcpO1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0xNWRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIDkwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCA5MGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4uZmxpcE91dFkge1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmbGlwT3V0WTtcbiAgYW5pbWF0aW9uLW5hbWU6IGZsaXBPdXRZO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgbGlnaHRTcGVlZEluIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHNrZXdYKC0zMGRlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSBza2V3WCgtMzBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgyMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgyMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKC01ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKC01ZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgbGlnaHRTcGVlZEluIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHNrZXdYKC0zMGRlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSBza2V3WCgtMzBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICA2MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgyMGRlZyk7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgyMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDgwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKC01ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKC01ZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5saWdodFNwZWVkSW4ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBsaWdodFNwZWVkSW47XG4gIGFuaW1hdGlvbi1uYW1lOiBsaWdodFNwZWVkSW47XG4gIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgbGlnaHRTcGVlZE91dCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHNrZXdYKDMwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHNrZXdYKDMwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgbGlnaHRTcGVlZE91dCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHNrZXdYKDMwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHNrZXdYKDMwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5saWdodFNwZWVkT3V0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogbGlnaHRTcGVlZE91dDtcbiAgYW5pbWF0aW9uLW5hbWU6IGxpZ2h0U3BlZWRPdXQ7XG4gIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZUluIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtMjAwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC0yMDBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlSW4ge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC0yMDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTIwMGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLnJvdGF0ZUluIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlSW47XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVJbjtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZUluRG93bkxlZnQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNDVkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb3RhdGVJbkRvd25MZWZ0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC00NWRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5yb3RhdGVJbkRvd25MZWZ0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlSW5Eb3duTGVmdDtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluRG93bkxlZnQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVJbkRvd25SaWdodCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNDVkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNDVkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlSW5Eb3duUmlnaHQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4ucm90YXRlSW5Eb3duUmlnaHQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVJbkRvd25SaWdodDtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluRG93blJpZ2h0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlSW5VcExlZnQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlSW5VcExlZnQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5yb3RhdGVJblVwTGVmdCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluVXBMZWZ0O1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlSW5VcExlZnQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVJblVwUmlnaHQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC05MGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlSW5VcFJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4ucm90YXRlSW5VcFJpZ2h0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlSW5VcFJpZ2h0O1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlSW5VcFJpZ2h0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlT3V0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAyMDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMjAwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlT3V0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAyMDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMjAwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5yb3RhdGVPdXQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXQ7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVPdXREb3duTGVmdCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZU91dERvd25MZWZ0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5yb3RhdGVPdXREb3duTGVmdCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dERvd25MZWZ0O1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlT3V0RG93bkxlZnQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVPdXREb3duUmlnaHQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC00NWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNDVkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb3RhdGVPdXREb3duUmlnaHQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC00NWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNDVkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLnJvdGF0ZU91dERvd25SaWdodCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dERvd25SaWdodDtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dERvd25SaWdodDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZU91dFVwTGVmdCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNDVkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlT3V0VXBMZWZ0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC00NWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNDVkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLnJvdGF0ZU91dFVwTGVmdCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dFVwTGVmdDtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dFVwTGVmdDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZU91dFVwUmlnaHQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDkwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlT3V0VXBSaWdodCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLnJvdGF0ZU91dFVwUmlnaHQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXRVcFJpZ2h0O1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlT3V0VXBSaWdodDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGhpbmdlIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgfVxuXG4gIDIwJSwgNjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgODBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgODBkZWcpO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgfVxuXG4gIDQwJSwgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNjBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNjBkZWcpO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA3MDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA3MDBweCwgMCk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGhpbmdlIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgfVxuXG4gIDIwJSwgNjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgODBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgODBkZWcpO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgfVxuXG4gIDQwJSwgODAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNjBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNjBkZWcpO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA3MDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA3MDBweCwgMCk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4uaGluZ2Uge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBoaW5nZTtcbiAgYW5pbWF0aW9uLW5hbWU6IGhpbmdlO1xufVxuXG4vKiBvcmlnaW5hbGx5IGF1dGhvcmVkIGJ5IE5pY2sgUGV0dGl0IC0gaHR0cHM6Ly9naXRodWIuY29tL25pY2twZXR0aXQvZ2xpZGUgKi9cblxuQC13ZWJraXQta2V5ZnJhbWVzIHJvbGxJbiB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtMTIwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtMTIwZGVnKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHJvbGxJbiB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtMTIwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtMTIwZGVnKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4ucm9sbEluIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm9sbEluO1xuICBhbmltYXRpb24tbmFtZTogcm9sbEluO1xufVxuXG4vKiBvcmlnaW5hbGx5IGF1dGhvcmVkIGJ5IE5pY2sgUGV0dGl0IC0gaHR0cHM6Ly9naXRodWIuY29tL25pY2twZXR0aXQvZ2xpZGUgKi9cblxuQC13ZWJraXQta2V5ZnJhbWVzIHJvbGxPdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDEyMGRlZyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAxMjBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm9sbE91dCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgMTIwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDEyMGRlZyk7XG4gIH1cbn1cblxuLnJvbGxPdXQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb2xsT3V0O1xuICBhbmltYXRpb24tbmFtZTogcm9sbE91dDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHpvb21JbiB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICB9XG5cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgem9vbUluIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7XG4gIH1cblxuICA1MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLnpvb21JbiB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHpvb21JbjtcbiAgYW5pbWF0aW9uLW5hbWU6IHpvb21Jbjtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHpvb21JbkRvd24ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIC0xMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgwLCAtMTAwMHB4LCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCA2MHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgNjBweCwgMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgem9vbUluRG93biB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgLTEwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIC0xMDAwcHgsIDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDAsIDYwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCA2MHB4LCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gIH1cbn1cblxuLnpvb21JbkRvd24ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB6b29tSW5Eb3duO1xuICBhbmltYXRpb24tbmFtZTogem9vbUluRG93bjtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHpvb21JbkxlZnQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKC0xMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgtMTAwMHB4LCAwLCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgxMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgem9vbUluTGVmdCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoLTEwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKC0xMDAwcHgsIDAsIDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgxMHB4LCAwLCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gIH1cbn1cblxuLnpvb21JbkxlZnQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB6b29tSW5MZWZ0O1xuICBhbmltYXRpb24tbmFtZTogem9vbUluTGVmdDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHpvb21JblJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgxMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgxMDAwcHgsIDAsIDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKC0xMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHpvb21JblJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgxMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgxMDAwcHgsIDAsIDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKC0xMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgfVxufVxuXG4uem9vbUluUmlnaHQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB6b29tSW5SaWdodDtcbiAgYW5pbWF0aW9uLW5hbWU6IHpvb21JblJpZ2h0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgem9vbUluVXAge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIDEwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIDEwMDBweCwgMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgLTYwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCAtNjBweCwgMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgem9vbUluVXAge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIDEwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIDEwMDBweCwgMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgLTYwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCAtNjBweCwgMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICB9XG59XG5cbi56b29tSW5VcCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHpvb21JblVwO1xuICBhbmltYXRpb24tbmFtZTogem9vbUluVXA7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyB6b29tT3V0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHpvb21PdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi56b29tT3V0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogem9vbU91dDtcbiAgYW5pbWF0aW9uLW5hbWU6IHpvb21PdXQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyB6b29tT3V0RG93biB7XG4gIDQwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCAtNjBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDAsIC02MHB4LCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgem9vbU91dERvd24ge1xuICA0MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgLTYwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCAtNjBweCwgMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGJvdHRvbTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgfVxufVxuXG4uem9vbU91dERvd24ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB6b29tT3V0RG93bjtcbiAgYW5pbWF0aW9uLW5hbWU6IHpvb21PdXREb3duO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgem9vbU91dExlZnQge1xuICA0MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoNDJweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDQycHgsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKC4xKSB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKC4xKSB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgY2VudGVyO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgY2VudGVyO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgem9vbU91dExlZnQge1xuICA0MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoNDJweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDQycHgsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKC4xKSB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKC4xKSB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgY2VudGVyO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgY2VudGVyO1xuICB9XG59XG5cbi56b29tT3V0TGVmdCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHpvb21PdXRMZWZ0O1xuICBhbmltYXRpb24tbmFtZTogem9vbU91dExlZnQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyB6b29tT3V0UmlnaHQge1xuICA0MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoLTQycHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgtNDJweCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoLjEpIHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSguMSkgdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBjZW50ZXI7XG4gIH1cbn1cblxuQGtleWZyYW1lcyB6b29tT3V0UmlnaHQge1xuICA0MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoLTQycHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgtNDJweCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoLjEpIHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSguMSkgdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBjZW50ZXI7XG4gIH1cbn1cblxuLnpvb21PdXRSaWdodCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHpvb21PdXRSaWdodDtcbiAgYW5pbWF0aW9uLW5hbWU6IHpvb21PdXRSaWdodDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHpvb21PdXRVcCB7XG4gIDQwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCA2MHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgNjBweCwgMCk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgem9vbU91dFVwIHtcbiAgNDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDAsIDYwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCA2MHB4LCAwKTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGJvdHRvbTtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gIH1cbn1cblxuLnpvb21PdXRVcCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHpvb21PdXRVcDtcbiAgYW5pbWF0aW9uLW5hbWU6IHpvb21PdXRVcDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHNsaWRlSW5Eb3duIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVJbkRvd24ge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuLnNsaWRlSW5Eb3duIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogc2xpZGVJbkRvd247XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZUluRG93bjtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHNsaWRlSW5MZWZ0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVJbkxlZnQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuLnNsaWRlSW5MZWZ0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogc2xpZGVJbkxlZnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZUluTGVmdDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHNsaWRlSW5SaWdodCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cblxuICB0byB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzbGlkZUluUmlnaHQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbi5zbGlkZUluUmlnaHQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzbGlkZUluUmlnaHQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZUluUmlnaHQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBzbGlkZUluVXAge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG5cbiAgdG8ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVJblVwIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxuXG4gIHRvIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxufVxuXG4uc2xpZGVJblVwIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogc2xpZGVJblVwO1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVJblVwO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgc2xpZGVPdXREb3duIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVPdXREb3duIHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICB9XG59XG5cbi5zbGlkZU91dERvd24ge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dERvd247XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dERvd247XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBzbGlkZU91dExlZnQge1xuICBmcm9tIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlT3V0TGVmdCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICB9XG59XG5cbi5zbGlkZU91dExlZnQge1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dExlZnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dExlZnQ7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBzbGlkZU91dFJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVPdXRSaWdodCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgfVxufVxuXG4uc2xpZGVPdXRSaWdodCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHNsaWRlT3V0UmlnaHQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dFJpZ2h0O1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgc2xpZGVPdXRVcCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVPdXRVcCB7XG4gIGZyb20ge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICB9XG59XG5cbi5zbGlkZU91dFVwIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogc2xpZGVPdXRVcDtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlT3V0VXA7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vIEltcG9ydCBjb21wb25lbnQtbGV2ZWwgbWl4aW5zIGhlcmUuXG5AaW1wb3J0IFwiZmxleGJveFwiO1xuQGltcG9ydCBcImxhYmVsXCI7XG5AaW1wb3J0IFwidHlwb2dyYXBoeVwiO1xuQGltcG9ydCBcInNoYWRvd1wiO1xuXG4vLyBUaGlzIGZpbGUgaXMgZm9yIG5vbi1jb21wb25lbnQgbGV2ZWwgbWl4aW5zIHRoYXQgY2FuIGJlIHVzZWQgYWNyb3NzXG4vLyBkaWZmZXJlbnQgY29tcG9uZW50cy5cblxuLy8gTWl4aW5zIGZvciBwYXJ0aWN1bGFyIGNvbXBvbmVudHMgYmVsb25nIGluIHNpbWlsYXJseSBuYW1lZCBmaWxlXG4vLyB1bmRlciB0aGUgbWl4aW5zIGZvbGRlciBhbmQgYXJlIGluY2x1ZGVkIGFib3ZlXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBWZXJ0aWNhbCBDZW50ZXIgSW5uZXIgKG1peGluKVxubmFtZTogaS12ZXJ0aWNhbC1jZW50ZXItaW5uZXJcbmNhdGVnb3J5OiBMYXlvdXQgLSBMYXlvdXQgSGVscGVyc1xuLS0tXG5cbkNlbnRlciBhbGlnbiBlbGVtZW50cyBpbiBhIGJhclxuXG5gYGBzYXNzX2V4YW1wbGVcbkBtaXhpbiB2ZXJ0aWNhbC1jZW50ZXItaW5uZXIoJGhlaWdodCxcbiAgJGluY2x1ZGUtbGluZS1oZWlnaHQ6IGZhbHNlLFxuICAkaW5jbHVkZS1jb250ZW50LWJlZm9yZTogdHJ1ZSkge1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG5cbiAgQGlmICRpbmNsdWRlLWxpbmUtaGVpZ2h0IHtcbiAgICBsaW5lLWhlaWdodDogJGhlaWdodDtcbiAgfVxuXG4gID4gKiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cblxuICBAaWYgJGluY2x1ZGUtY29udGVudC1iZWZvcmUge1xuICAgICY6YmVmb3JlIHsgIC8vIHRyaWNrIGZyb206IGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vY2VudGVyaW5nLWluLXRoZS11bmtub3duL1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgfVxufVxuYGBgXG4qL1xuXG5AbWl4aW4gdmVydGljYWwtY2VudGVyLWlubmVyKCRoZWlnaHQsXG4gICRpbmNsdWRlLWxpbmUtaGVpZ2h0OiBmYWxzZSxcbiAgJGluY2x1ZGUtY29udGVudC1iZWZvcmU6IHRydWUpIHtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuXG4gIEBpZiAkaW5jbHVkZS1saW5lLWhlaWdodCB7XG4gICAgbGluZS1oZWlnaHQ6ICRoZWlnaHQ7XG4gIH1cblxuICA+ICoge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5cbiAgQGlmICRpbmNsdWRlLWNvbnRlbnQtYmVmb3JlIHtcbiAgICAmOmJlZm9yZSB7ICAvLyB0cmljayBmcm9tOiBodHRwczovL2Nzcy10cmlja3MuY29tL2NlbnRlcmluZy1pbi10aGUtdW5rbm93bi9cbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cbn1cblxuLypkb2Ncbi0tLVxudGl0bGU6IFZlcnRpY2FsIEFsaWduIE1pZGRsZSAobWl4aW4pXG5uYW1lOiBqLXZlcnRpY2FsLWFsaWduLW1pZGRsZVxuY2F0ZWdvcnk6IExheW91dCAtIExheW91dCBIZWxwZXJzXG4tLS1cblxuVmVydGljYWxseSBhbGlnbiBlbGVtZW50IGFic29sdXRlbHkgdG8gY29udGFpbmVyLiAgQ3VycmVudGx5IGJlaW5nIHVzaW5nIGluIGAucHJvbW9saXN0YCBzdHlsZSBlbGVtZW50cyB0byBhbGlnbiB0ZXh0IGNlbnRlciB0byBpbWFnZS5cblxuYGBgc2Fzc19leGFtcGxlXG5AbWl4aW4gdmVydGljYWwtYWxpZ24tbWlkZGxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuYGBgXG4qL1xuXG5AbWl4aW4gdmVydGljYWwtYWxpZ24tbWlkZGxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vKmRvY1xuLS0tXG50aXRsZTogVmVydGljYWwgQWxpZ24gTWlkZGxlIFVuZG8gKG1peGluKVxubmFtZTogay12ZXJ0aWNhbC1hbGlnbi1taWRkbGUtdW5kb1xuY2F0ZWdvcnk6IExheW91dCAtIExheW91dCBIZWxwZXJzXG4tLS1cblxuVW5kbyBlZmZlY3RzIG9mIEBpbmNsdWRlIHZlcnRpY2FsLWFsaWduLW1pZGRsZVxuXG5gYGBzYXNzX2V4YW1wbGVcbkBtaXhpbiByZXNldC12ZXJ0aWNhbC1hbGlnbi1taWRkbGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogYXV0bztcbiAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gIC1tcy10cmFuc2Zvcm06IG5vbmU7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5gYGBcbiovXG5cbkBtaXhpbiByZXNldC12ZXJ0aWNhbC1hbGlnbi1taWRkbGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogYXV0bztcbiAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gIC1tcy10cmFuc2Zvcm06IG5vbmU7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBDbGVhcmZpeFxubmFtZTogZi1jbGVhcmZpeFxuY2F0ZWdvcnk6IExheW91dCAtIExheW91dCBIZWxwZXJzXG4tLS1cblxuQWRkIGNsYXNzIG9mIGAuY2xlYXJmaXhgIG9yIHVzZSB0aGVcbk1peGluIGZvciBhZGRpbmcgY2xlYXJmaXhcblxuYGBgc2Fzc19leGFtcGxlP3Nob3ctY29kZT10cnVlXG5AaW5jbHVkZSBjbGVhcmZpeCgpO1xuYGBgXG4qL1xuXG5AbWl4aW4gY2xlYXJmaXgoKSB7XG4gICAgJjpiZWZvcmUsXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIH1cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxufVxuXG4vLy8gRm9yIGFkZGluZyBib3R0b20tbWFyZ2luIHRvIGFuIGVsZW1lbnQgYXQgc2V0IHNpemVzIGVnLiBgLmJsb2NrLXRpZ2h0ZXN0YCB0byBgLmJsb2NrLWxvb3Nlc3RgXG4vLy8gQGdyb3VwIGxheW91dFxuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8gQGF1dGhvciBQYXVsIFBlY2hpblxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2l6ZSAtIGZsdXNoLCB0aWdodGVzdCB0byB0aWdodCwgbm9ybWFsLCBsb29zZSB0byBsb29zZXN0XG4vLy8gQHBhcmFtIHtCb29sfSAkaW1wb3J0YW50IFtmYWxzZV0gLSBXaGV0aGVyIG9yIG5vdCB0byBhZGQgIWltcG9ydGFudFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGVyY2VudGFnZSAtIHBlcmNlbnRhZ2Ugb2YgYCRjb2xvcmAgaW4gcmV0dXJuZWQgY29sb3Jcbi8vLyBAcGFyYW0ge0FycmF5fSAkYnJlYWtwb2ludHMgWycnXSAtICRzbWFsbC1vbmx5LCAkbWVkaXVtLXVwLCAkbWVkaXVtLW9ubHkgZXRjXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4YW1wbGUgVXNhZ2Vcbi8vLyAgIEBpbmNsdWRlIGJsb2NrKCdmbHVzaCcsIHRydWUsICRsYXJnZS11cClcbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIFJlc3VsdFxuLy8vICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4vLy8gICAgICAuZXhhbXBsZS12ZXJ0aWNhbC1zcGFjZXIge1xuLy8vICAgICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4vLy8gICAgICB9XG4vLy8gICB9XG5AbWl4aW4gYmxvY2soJHNpemUsICRpbXBvcnRhbnQ6IGZhbHNlLCAkYnJlYWtwb2ludHM6ICcnKSB7XG4gICAgJHNpemU6IG1hcC1nZXQoJGJsb2NrLXNpemVzLCAkc2l6ZSk7XG5cbiAgICBAaWYgKCRzaXplID09IG51bGwpIHtcbiAgICAgICAgQGVycm9yIFwiJ1wiICsgJG5hbWUgKyBcIicgYmxvY2sgc2l6ZSBpbnZhbGlkXCI7XG4gICAgfVxuXG4gICAgJGV4dHJhOiBpZigkaW1wb3J0YW50ID09IHRydWUsICcgIWltcG9ydGFudCcsICcnKTtcblxuICAgIEBpZiAoJGJyZWFrcG9pbnRzICE9ICcnKSB7XG4gICAgICAgIEBlYWNoICRicmVha3BvaW50IGluICRicmVha3BvaW50cyB7XG4gICAgICAgICAgICBAbWVkaWEgI3skYnJlYWtwb2ludH0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICN7JHNpemUgKyAkZXh0cmF9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICN7JHNpemUgKyAkZXh0cmF9O1xuICAgIH1cbn1cblxuXG4vLyBGb3IgZm9yY2luZyBib3R0b20tcGFkZGluZyB0byBhbiBlbGVtZW50IGF0IHNldCBzaXplcyBlZy4gYC5wYWQtdGlnaHRlc3RgIHRvIGAucGFkLWxvb3Nlc3RgXG5AbWl4aW4gcGFkKCRzaXplLCAkaW1wb3J0YW50OiBmYWxzZSwgJGJyZWFrcG9pbnRzOiAnJykge1xuICAgICRzaXplOiBtYXAtZ2V0KCRibG9jay1zaXplcywgJHNpemUpO1xuXG4gICAgQGlmICgkc2l6ZSA9PSBudWxsKSB7XG4gICAgICAgIEBlcnJvciBcIidcIiArICRuYW1lICsgXCInIGJsb2NrIHNpemUgaW52YWxpZFwiO1xuICAgIH1cblxuICAgICRleHRyYTogaWYoJGltcG9ydGFudCA9PSB0cnVlLCAnICFpbXBvcnRhbnQnLCAnJyk7XG5cbiAgICBAaWYgKCRicmVha3BvaW50cyAhPSAnJykge1xuICAgICAgICBAZWFjaCAkYnJlYWtwb2ludCBpbiAkYnJlYWtwb2ludHMge1xuICAgICAgICAgICAgQG1lZGlhICN7JGJyZWFrcG9pbnR9IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogI3skc2l6ZSArICRleHRyYX07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICN7JHNpemUgKyAkZXh0cmF9O1xuICAgIH1cbn1cblxuQG1peGluIHBhZGRpbmcoJGRpcmVjdGlvbiwgJHNpemUsICRpbXBvcnRhbnQ6IGZhbHNlLCAkYnJlYWtwb2ludHM6ICcnKSB7XG4gICAgJHNpemU6IG1hcC1nZXQoJGJsb2NrLXNpemVzLCAkc2l6ZSk7XG5cbiAgICBAaWYgKCRzaXplID09IG51bGwpIHtcbiAgICAgICAgQGVycm9yIFwiJ1wiICsgJG5hbWUgKyBcIicgYmxvY2sgc2l6ZSBpbnZhbGlkXCI7XG4gICAgfVxuXG4gICAgJGV4dHJhOiBpZigkaW1wb3J0YW50ID09IHRydWUsICcgIWltcG9ydGFudCcsICcnKTtcblxuICAgIEBpZiAoJGRpcmVjdGlvbiA9PSAnJykge1xuICAgICAgJGRpcmVjdGlvbjogJ2JvdHRvbSc7XG4gICAgfVxuXG4gICAgQGlmICgkYnJlYWtwb2ludHMgIT0gJycpIHtcbiAgICAgICAgQGVhY2ggJGJyZWFrcG9pbnQgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICAgICAgICAgIEBtZWRpYSAjeyRicmVha3BvaW50fSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy0jeyRkaXJlY3Rpb259OiAjeyRzaXplICsgJGV4dHJhfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgICBwYWRkaW5nLSN7JGRpcmVjdGlvbn06ICN7JHNpemUgKyAkZXh0cmF9O1xuICAgIH1cbn1cblxuQG1peGluIGJhcigkc2l6ZSwgJGltcG9ydGFudDogZmFsc2UsICRicmVha3BvaW50czogJycpIHtcbiAgICAkc2l6ZTogbWFwLWdldCgkYmFyLXNpemVzLCAkc2l6ZSk7XG5cbiAgICBAaWYgKCRzaXplID09IG51bGwpIHtcbiAgICAgICAgQGVycm9yIFwiJ1wiICsgJG5hbWUgKyBcIicgYmFyIHNpemUgaW52YWxpZFwiO1xuICAgIH1cblxuICAgICRleHRyYTogaWYoJGltcG9ydGFudCA9PSB0cnVlLCAnICFpbXBvcnRhbnQnLCAnJyk7XG5cbiAgICBAaWYgKCRicmVha3BvaW50cyAhPSAnJykge1xuICAgICAgICBAZWFjaCAkYnJlYWtwb2ludCBpbiAkYnJlYWtwb2ludHMge1xuICAgICAgICAgICAgQG1lZGlhICN7JGJyZWFrcG9pbnR9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICN7JHNpemUgKyAkZXh0cmF9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogI3skc2l6ZSArICRleHRyYX07XG4gICAgfVxufVxuXG5AbWl4aW4gbWFyZ2luLXRvcCgkc2l6ZSwgJGltcG9ydGFudDogZmFsc2UsICRicmVha3BvaW50czogJycpIHtcbiAgICAkc2l6ZTogbWFwLWdldCgkYmFyLXNpemVzLCAkc2l6ZSk7XG5cbiAgICBAaWYgKCRzaXplID09IG51bGwpIHtcbiAgICAgICAgQGVycm9yIFwiJ1wiICsgJG5hbWUgKyBcIicgbWFyZ2luLXRvcCBzaXplIGludmFsaWRcIjtcbiAgICB9XG5cbiAgICAkZXh0cmE6IGlmKCRpbXBvcnRhbnQgPT0gdHJ1ZSwgJyAhaW1wb3J0YW50JywgJycpO1xuXG4gICAgQGlmICgkYnJlYWtwb2ludHMgIT0gJycpIHtcbiAgICAgICAgQGVhY2ggJGJyZWFrcG9pbnQgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICAgICAgICAgIEBtZWRpYSAjeyRicmVha3BvaW50fSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogI3skc2l6ZSArICRleHRyYX07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogI3skc2l6ZSArICRleHRyYX07XG4gICAgfVxufVxuXG4vLyBNYXJnaW4gbGVmdC9yaWdodFxuQG1peGluIGlubGluZSgkc2lkZSwgJHNpemUsICRpbXBvcnRhbnQ6IGZhbHNlLCAkYnJlYWtwb2ludHM6ICcnKSB7XG4gICAgJHNpemU6IG1hcC1nZXQoJGJsb2NrLXNpemVzLCAkc2l6ZSk7XG5cbiAgICBAaWYgKCRzaXplID09IG51bGwpIHtcbiAgICAgICAgQGVycm9yIFwiJ1wiICsgJG5hbWUgKyBcIicgYmxvY2sgc2l6ZSBpbnZhbGlkXCI7XG4gICAgfVxuXG4gICAgJGV4dHJhOiBpZigkaW1wb3J0YW50ID09IHRydWUsICcgIWltcG9ydGFudCcsICcnKTtcblxuICAgIEBpZiAoJHNpZGUgIT0gJ2xlZnQnKSB7XG4gICAgICAkc2lkZTogJ3JpZ2h0JztcbiAgICB9XG5cbiAgICBAaWYgKCRicmVha3BvaW50cyAhPSAnJykge1xuICAgICAgICBAZWFjaCAkYnJlYWtwb2ludCBpbiAkYnJlYWtwb2ludHMge1xuICAgICAgICAgICAgQG1lZGlhICN7JGJyZWFrcG9pbnR9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tI3skc2lkZX06ICN7JHNpemUgKyAkZXh0cmF9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIG1hcmdpbi0jeyRzaWRlfTogI3skc2l6ZSArICRleHRyYX07XG4gICAgfVxufVxuXG4vLyB6LWluZGV4IGNvbnRyb2xcbkBtaXhpbiB6LWluZGV4KCRpbXBvcnRhbnQ6IGZhbHNlKSB7XG4gICAgJGV4dHJhOiBpZigkaW1wb3J0YW50ID09IHRydWUsICcgIWltcG9ydGFudCcsICcnKTtcblxuICAgIHotaW5kZXg6IHVucXVvdGUobWFwLWdldCgkei1pbmRleGVzLCAjeyZ9KSArICRleHRyYSk7XG59XG5cblxuLypkb2Ncbi0tLVxudGl0bGU6IEJvcmRlciBUcmlhbmdsZSAobWl4aW4pXG5uYW1lOiBhLW1peGluXG5jYXRlZ29yeTogVmlzdWFsIFRyZWF0bWVudHMgLSBBcnJvd1xuYXV0aG9yczogUGFibG8gTGF6b1xuLS0tXG5Vc2VkIHRvIG1ha2UgYSBib3JkZXIgdHJpYW5nbGUuXG5FeGFtcGxlczpcbjxzcGFuIGNsYXNzPSdzdG9jay10cmVuZCB0ZXh0LWxhcmdlc3QgdXAnPjwvc3Bhbj5cbjxzcGFuIGNsYXNzPSdzdG9jay10cmVuZCB0ZXh0LWxhcmdlc3QgZG93bic+PC9zcGFuPlxuXG5gYGAgc2Fzc19leGFtcGxlXG5AaW5jbHVkZSBib3JkZXItdHJpYW5nbGUoJ3VwJywgMjBweCwgJGdyZWVuLXBybywgdHJ1ZSlcbmBgYFxuKi9cblxuQG1peGluIGJvcmRlci10cmlhbmdsZSgkZGlyLCAkc2l6ZSwgJGNvbG9yLCAkZmxhdDpmYWxzZSkge1xuICAgIGhlaWdodDogMDtcbiAgICB3aWR0aDogMDtcbiAgICAkd2lkdGg6ICRzaXplLzM7XG4gICAgQGlmICRmbGF0e1xuICAgICAgICAkc2l6ZTogJHNpemUvMztcbiAgICB9XG4gICAgQGlmICRkaXIgPT0gJ3VwJyB7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItYm90dG9tOiAkc2l6ZSBzb2xpZCAkY29sb3I7XG4gICAgfVxuICAgIEBlbHNlIGlmICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci10b3A6ICRzaXplIHNvbGlkICRjb2xvcjtcbiAgICB9XG4gICAgQGVsc2UgaWYgJGRpciA9PSAnbGVmdCcge1xuICAgICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGNvbG9yO1xuICAgIH1cbiAgICBAZWxzZSBpZiAkZGlyID09ICdyaWdodCcge1xuICAgICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6ICRzaXplIHNvbGlkICRjb2xvcjtcbiAgICB9XG59XG5cbkBtaXhpbiBleHRlbmRzLWZsZXgge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBAaW5jbHVkZSBmbGV4KDAsIDEsIGF1dG8pO1xuICBwYWRkaW5nLXJpZ2h0OiAkY29sdW1uLWd1dHRlci8yO1xuICBwYWRkaW5nLWxlZnQ6ICRjb2x1bW4tZ3V0dGVyLzI7XG59XG4iLCIvLyBGbGV4Ym94IE1peGluc1xuLy8gaHR0cDovL3BoaWxpcHdhbHRvbi5naXRodWIuaW8vc29sdmVkLWJ5LWZsZXhib3gvXG4vLyBodHRwczovL2dpdGh1Yi5jb20vcGhpbGlwd2FsdG9uL3NvbHZlZC1ieS1mbGV4Ym94XG4vL1xuLy8gQ29weXJpZ2h0IChjKSAyMDEzIEJyaWFuIEZyYW5jb1xuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0b1xuLy8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvXG4vLyB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTXG4vLyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4vLyBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuXG4vLyBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWVxuLy8gQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCxcbi8vIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFXG4vLyBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cbi8vXG4vLyBUaGlzIGlzIGEgc2V0IG9mIG1peGlucyBmb3IgdGhvc2Ugd2hvIHdhbnQgdG8gbWVzcyBhcm91bmQgd2l0aCBmbGV4Ym94XG4vLyB1c2luZyB0aGUgbmF0aXZlIHN1cHBvcnQgb2YgY3VycmVudCBicm93c2Vycy4gRm9yIGZ1bGwgc3VwcG9ydCB0YWJsZVxuLy8gY2hlY2s6IGh0dHA6Ly9jYW5pdXNlLmNvbS9mbGV4Ym94XG4vL1xuLy8gQmFzaWNhbGx5IHRoaXMgd2lsbCB1c2U6XG4vL1xuLy8gKiBGYWxsYmFjaywgb2xkIHN5bnRheCAoSUUxMCwgbW9iaWxlIHdlYmtpdCBicm93c2VycyAtIG5vIHdyYXBwaW5nKVxuLy8gKiBGaW5hbCBzdGFuZGFyZHMgc3ludGF4IChGRiwgU2FmYXJpLCBDaHJvbWUsIElFMTEsIE9wZXJhKVxuLy9cbi8vIFRoaXMgd2FzIGluc3BpcmVkIGJ5OlxuLy9cbi8vICogaHR0cDovL2Rldi5vcGVyYS5jb20vYXJ0aWNsZXMvdmlldy9hZHZhbmNlZC1jcm9zcy1icm93c2VyLWZsZXhib3gvXG4vL1xuLy8gV2l0aCBoZWxwIGZyb206XG4vL1xuLy8gKiBodHRwOi8vdzMub3JnL3RyL2NzczMtZmxleGJveC9cbi8vICogaHR0cDovL3RoZS1lY2hvcGxleC5uZXQvZmxleHlib3hlcy9cbi8vICogaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L2llL2hoNzcyMDY5KHY9dnMuODUpLmFzcHhcbi8vICogaHR0cDovL2Nzcy10cmlja3MuY29tL3VzaW5nLWZsZXhib3gvXG4vLyAqIGh0dHA6Ly9kZXYub3BlcmEuY29tL2FydGljbGVzL3ZpZXcvYWR2YW5jZWQtY3Jvc3MtYnJvd3Nlci1mbGV4Ym94L1xuLy8gKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi11cy9kb2NzL3dlYi9ndWlkZS9jc3MvZmxleGlibGVfYm94ZXNcblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEZsZXhib3ggQ29udGFpbmVyc1xuLy9cbi8vIFRoZSAnZmxleCcgdmFsdWUgY2F1c2VzIGFuIGVsZW1lbnQgdG8gZ2VuZXJhdGUgYSBibG9jay1sZXZlbCBmbGV4XG4vLyBjb250YWluZXIgYm94LlxuLy9cbi8vIFRoZSAnaW5saW5lLWZsZXgnIHZhbHVlIGNhdXNlcyBhbiBlbGVtZW50IHRvIGdlbmVyYXRlIGEgaW5saW5lLWxldmVsXG4vLyBmbGV4IGNvbnRhaW5lciBib3guXG4vL1xuLy8gZGlzcGxheTogZmxleCB8IGlubGluZS1mbGV4XG4vL1xuLy8gaHR0cDovL3czLm9yZy90ci9jc3MzLWZsZXhib3gvI2ZsZXgtY29udGFpbmVyc1xuLy9cbi8vIChQbGFjZWhvbGRlciBzZWxlY3RvcnMgZm9yIGVhY2ggdHlwZSwgZm9yIHRob3NlIHdobyByYXRoZXIgQGV4dGVuZClcblxuQG1peGluIGZsZXhib3gge1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbW96LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4lZmxleGJveCB7IEBpbmNsdWRlIGZsZXhib3g7IH1cblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBpbmxpbmUtZmxleCB7XG4gIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcbiAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtZmxleDtcbiAgZGlzcGxheTogLW1vei1pbmxpbmUtZmxleDtcbiAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbn1cblxuJWlubGluZS1mbGV4IHsgQGluY2x1ZGUgaW5saW5lLWZsZXg7IH1cblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEZsZXhib3ggRGlyZWN0aW9uXG4vL1xuLy8gVGhlICdmbGV4LWRpcmVjdGlvbicgcHJvcGVydHkgc3BlY2lmaWVzIGhvdyBmbGV4IGl0ZW1zIGFyZSBwbGFjZWQgaW5cbi8vIHRoZSBmbGV4IGNvbnRhaW5lciwgYnkgc2V0dGluZyB0aGUgZGlyZWN0aW9uIG9mIHRoZSBmbGV4IGNvbnRhaW5lcidzXG4vLyBtYWluIGF4aXMuIFRoaXMgZGV0ZXJtaW5lcyB0aGUgZGlyZWN0aW9uIHRoYXQgZmxleCBpdGVtcyBhcmUgbGFpZCBvdXQgaW4uXG4vL1xuLy8gVmFsdWVzOiByb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlXG4vLyBEZWZhdWx0OiByb3dcbi8vXG4vLyBodHRwOi8vdzMub3JnL3RyL2NzczMtZmxleGJveC8jZmxleC1kaXJlY3Rpb24tcHJvcGVydHlcblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZTogcm93KSB7XG4gIEBpZiAkdmFsdWUgPT0gcm93LXJldmVyc2Uge1xuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IGNvbHVtbiB7XG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gY29sdW1uLXJldmVyc2Uge1xuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICB9IEBlbHNlIHtcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XG4gIH1cbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAtbW96LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuICAvLyBTaG9ydGVyIHZlcnNpb246XG4gIEBtaXhpbiBmbGV4LWRpcigkYXJncy4uLikgeyBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbigkYXJncy4uLik7IH1cblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEZsZXhib3ggV3JhcFxuLy9cbi8vIFRoZSAnZmxleC13cmFwJyBwcm9wZXJ0eSBjb250cm9scyB3aGV0aGVyIHRoZSBmbGV4IGNvbnRhaW5lciBpcyBzaW5nbGUtbGluZVxuLy8gb3IgbXVsdGktbGluZSwgYW5kIHRoZSBkaXJlY3Rpb24gb2YgdGhlIGNyb3NzLWF4aXMsIHdoaWNoIGRldGVybWluZXNcbi8vIHRoZSBkaXJlY3Rpb24gbmV3IGxpbmVzIGFyZSBzdGFja2VkIGluLlxuLy9cbi8vIFZhbHVlczogbm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZVxuLy8gRGVmYXVsdDogbm93cmFwXG4vL1xuLy8gaHR0cDovL3czLm9yZy90ci9jc3MzLWZsZXhib3gvI2ZsZXgtd3JhcC1wcm9wZXJ0eVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZTogbm93cmFwKSB7XG4gIC8vIE5vIFdlYmtpdCBCb3ggZmFsbGJhY2suXG4gIC13ZWJraXQtZmxleC13cmFwOiAkdmFsdWU7XG4gIC1tb3otZmxleC13cmFwOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gbm93cmFwIHtcbiAgICAtbXMtZmxleC13cmFwOiBub25lO1xuICB9IEBlbHNlIHtcbiAgICAtbXMtZmxleC13cmFwOiAkdmFsdWU7XG4gIH1cbiAgZmxleC13cmFwOiAkdmFsdWU7XG59XG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBGbGV4Ym94IEZsb3cgKHNob3J0aGFuZClcbi8vXG4vLyBUaGUgJ2ZsZXgtZmxvdycgcHJvcGVydHkgaXMgYSBzaG9ydGhhbmQgZm9yIHNldHRpbmcgdGhlICdmbGV4LWRpcmVjdGlvbidcbi8vIGFuZCAnZmxleC13cmFwJyBwcm9wZXJ0aWVzLCB3aGljaCB0b2dldGhlciBkZWZpbmUgdGhlIGZsZXggY29udGFpbmVyJ3Ncbi8vIG1haW4gYW5kIGNyb3NzIGF4ZXMuXG4vL1xuLy8gVmFsdWVzOiA8ZmxleC1kaXJlY3Rpb24+IHwgPGZsZXgtd3JhcD5cbi8vIERlZmF1bHQ6IHJvdyBub3dyYXBcbi8vXG4vLyBodHRwOi8vdzMub3JnL3RyL2NzczMtZmxleGJveC8jZmxleC1mbG93LXByb3BlcnR5XG5cbkBtaXhpbiBmbGV4LWZsb3coJHZhbHVlczogKHJvdyBub3dyYXApKSB7XG4gIC8vIE5vIFdlYmtpdCBCb3ggZmFsbGJhY2suXG4gIC13ZWJraXQtZmxleC1mbG93OiAkdmFsdWVzO1xuICAtbW96LWZsZXgtZmxvdzogJHZhbHVlcztcbiAgLW1zLWZsZXgtZmxvdzogJHZhbHVlcztcbiAgZmxleC1mbG93OiAkdmFsdWVzO1xufVxuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gRmxleGJveCBPcmRlclxuLy9cbi8vIFRoZSAnb3JkZXInIHByb3BlcnR5IGNvbnRyb2xzIHRoZSBvcmRlciBpbiB3aGljaCBmbGV4IGl0ZW1zIGFwcGVhciB3aXRoaW5cbi8vIHRoZWlyIGZsZXggY29udGFpbmVyLCBieSBhc3NpZ25pbmcgdGhlbSB0byBvcmRpbmFsIGdyb3Vwcy5cbi8vXG4vLyBEZWZhdWx0OiAwXG4vL1xuLy8gaHR0cDovL3czLm9yZy90ci9jc3MzLWZsZXhib3gvI29yZGVyLXByb3BlcnR5XG5cbkBtaXhpbiBvcmRlcigkaW50OiAwKSB7XG4gIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6ICRpbnQgKyAxO1xuICAtd2Via2l0LW9yZGVyOiAkaW50O1xuICAtbW96LW9yZGVyOiAkaW50O1xuICAtbXMtZmxleC1vcmRlcjogJGludDtcbiAgb3JkZXI6ICRpbnQ7XG59XG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBGbGV4Ym94IEdyb3dcbi8vXG4vLyBUaGUgJ2ZsZXgtZ3JvdycgcHJvcGVydHkgc2V0cyB0aGUgZmxleCBncm93IGZhY3Rvci4gTmVnYXRpdmUgbnVtYmVyc1xuLy8gYXJlIGludmFsaWQuXG4vL1xuLy8gRGVmYXVsdDogMFxuLy9cbi8vIGh0dHA6Ly93My5vcmcvdHIvY3NzMy1mbGV4Ym94LyNmbGV4LWdyb3ctcHJvcGVydHlcblxuQG1peGluIGZsZXgtZ3JvdygkaW50OiAwKSB7XG4gIC13ZWJraXQtYm94LWZsZXg6ICRpbnQ7XG4gIC13ZWJraXQtZmxleC1ncm93OiAkaW50O1xuICAtbW96LWZsZXgtZ3JvdzogJGludDtcbiAgLW1zLWZsZXgtcG9zaXRpdmU6ICRpbnQ7XG4gIGZsZXgtZ3JvdzogJGludDtcbn1cblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEZsZXhib3ggU2hyaW5rXG4vL1xuLy8gVGhlICdmbGV4LXNocmluaycgcHJvcGVydHkgc2V0cyB0aGUgZmxleCBzaHJpbmsgZmFjdG9yLiBOZWdhdGl2ZSBudW1iZXJzXG4vLyBhcmUgaW52YWxpZC5cbi8vXG4vLyBEZWZhdWx0OiAxXG4vL1xuLy8gaHR0cDovL3czLm9yZy90ci9jc3MzLWZsZXhib3gvI2ZsZXgtc2hyaW5rLXByb3BlcnR5XG5cbkBtaXhpbiBmbGV4LXNocmluaygkaW50OiAxKSB7XG4gIC13ZWJraXQtZmxleC1zaHJpbms6ICRpbnQ7XG4gIC1tb3otZmxleC1zaHJpbms6ICRpbnQ7XG4gIC1tcy1mbGV4LW5lZ2F0aXZlOiAkaW50O1xuICBmbGV4LXNocmluazogJGludDtcbn1cblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEZsZXhib3ggQmFzaXNcbi8vXG4vLyBUaGUgJ2ZsZXgtYmFzaXMnIHByb3BlcnR5IHNldHMgdGhlIGZsZXggYmFzaXMuIE5lZ2F0aXZlIGxlbmd0aHMgYXJlIGludmFsaWQuXG4vL1xuLy8gVmFsdWVzOiBMaWtlIFwid2lkdGhcIlxuLy8gRGVmYXVsdDogYXV0b1xuLy9cbi8vIGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtZmxleGJveC8jZmxleC1iYXNpcy1wcm9wZXJ0eVxuXG5AbWl4aW4gZmxleC1iYXNpcygkdmFsdWU6IGF1dG8pIHtcbiAgLXdlYmtpdC1mbGV4LWJhc2lzOiAkdmFsdWU7XG4gIC1tb3otZmxleC1iYXNpczogJHZhbHVlO1xuICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogJHZhbHVlO1xuICBmbGV4LWJhc2lzOiAkdmFsdWU7XG59XG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBGbGV4Ym94IFwiRmxleFwiIChzaG9ydGhhbmQpXG4vL1xuLy8gVGhlICdmbGV4JyBwcm9wZXJ0eSBzcGVjaWZpZXMgdGhlIGNvbXBvbmVudHMgb2YgYSBmbGV4aWJsZSBsZW5ndGg6IHRoZVxuLy8gZmxleCBncm93IGZhY3RvciBhbmQgZmxleCBzaHJpbmsgZmFjdG9yLCBhbmQgdGhlIGZsZXggYmFzaXMuIFdoZW4gYW5cbi8vIGVsZW1lbnQgaXMgYSBmbGV4IGl0ZW0sICdmbGV4JyBpcyBjb25zdWx0ZWQgaW5zdGVhZCBvZiB0aGUgbWFpbiBzaXplXG4vLyBwcm9wZXJ0eSB0byBkZXRlcm1pbmUgdGhlIG1haW4gc2l6ZSBvZiB0aGUgZWxlbWVudC4gSWYgYW4gZWxlbWVudCBpc1xuLy8gbm90IGEgZmxleCBpdGVtLCAnZmxleCcgaGFzIG5vIGVmZmVjdC5cbi8vXG4vLyBWYWx1ZXM6IG5vbmUgfCA8ZmxleC1ncm93PiA8ZmxleC1zaHJpbms+IHx8IDxmbGV4LWJhc2lzPlxuLy8gRGVmYXVsdDogU2VlIGluZGl2aWR1YWwgcHJvcGVydGllcyAoMSAxIDApLlxuLy9cbi8vIGh0dHA6Ly93My5vcmcvdHIvY3NzMy1mbGV4Ym94LyNmbGV4LXByb3BlcnR5XG5cbkBtaXhpbiBmbGV4KCRmZzogMSwgJGZzOiBudWxsLCAkZmI6IG51bGwpIHtcblxuICAvLyBTZXQgYSB2YXJpYWJsZSB0byBiZSB1c2VkIGJ5IGJveC1mbGV4IHByb3BlcnRpZXNcbiAgJGZnLWJveGZsZXg6ICRmZztcblxuICAvLyBCb3gtRmxleCBvbmx5IHN1cHBvcnRzIGEgZmxleC1ncm93IHZhbHVlIHNvIGxldCdzIGdyYWIgdGhlXG4gIC8vIGZpcnN0IGl0ZW0gaW4gdGhlIGxpc3QgYW5kIGp1c3QgcmV0dXJuIHRoYXQuXG4gIEBpZiB0eXBlLW9mKCRmZykgPT0gJ2xpc3QnIHtcbiAgICAkZmctYm94ZmxleDogbnRoKCRmZywgMSk7XG4gIH1cblxuICAtd2Via2l0LWJveC1mbGV4OiAkZmctYm94ZmxleDtcbiAgLXdlYmtpdC1mbGV4OiAkZmcgJGZzICRmYjtcbiAgLW1vei1ib3gtZmxleDogJGZnLWJveGZsZXg7XG4gIC1tb3otZmxleDogJGZnICRmcyAkZmI7XG4gIC1tcy1mbGV4OiAkZmcgJGZzICRmYjtcbiAgZmxleDogJGZnICRmcyAkZmI7XG59XG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBGbGV4Ym94IEp1c3RpZnkgQ29udGVudFxuLy9cbi8vIFRoZSAnanVzdGlmeS1jb250ZW50JyBwcm9wZXJ0eSBhbGlnbnMgZmxleCBpdGVtcyBhbG9uZyB0aGUgbWFpbiBheGlzXG4vLyBvZiB0aGUgY3VycmVudCBsaW5lIG9mIHRoZSBmbGV4IGNvbnRhaW5lci4gVGhpcyBpcyBkb25lIGFmdGVyIGFueSBmbGV4aWJsZVxuLy8gbGVuZ3RocyBhbmQgYW55IGF1dG8gbWFyZ2lucyBoYXZlIGJlZW4gcmVzb2x2ZWQuIFR5cGljYWxseSBpdCBoZWxwcyBkaXN0cmlidXRlXG4vLyBleHRyYSBmcmVlIHNwYWNlIGxlZnRvdmVyIHdoZW4gZWl0aGVyIGFsbCB0aGUgZmxleCBpdGVtcyBvbiBhIGxpbmUgYXJlXG4vLyBpbmZsZXhpYmxlLCBvciBhcmUgZmxleGlibGUgYnV0IGhhdmUgcmVhY2hlZCB0aGVpciBtYXhpbXVtIHNpemUuIEl0IGFsc29cbi8vIGV4ZXJ0cyBzb21lIGNvbnRyb2wgb3ZlciB0aGUgYWxpZ25tZW50IG9mIGl0ZW1zIHdoZW4gdGhleSBvdmVyZmxvdyB0aGUgbGluZS5cbi8vXG4vLyBOb3RlOiAnc3BhY2UtKicgdmFsdWVzIG5vdCBzdXBwb3J0ZWQgaW4gb2xkZXIgc3ludGF4ZXMuXG4vL1xuLy8gVmFsdWVzOiBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kXG4vLyBEZWZhdWx0OiBmbGV4LXN0YXJ0XG4vL1xuLy8gaHR0cDovL3czLm9yZy90ci9jc3MzLWZsZXhib3gvI2p1c3RpZnktY29udGVudC1wcm9wZXJ0eVxuXG5AbWl4aW4ganVzdGlmeS1jb250ZW50KCR2YWx1ZTogZmxleC1zdGFydCkge1xuICBAaWYgJHZhbHVlID09IGZsZXgtc3RhcnQge1xuICAgIC13ZWJraXQtYm94LXBhY2s6IHN0YXJ0O1xuICAgIC1tcy1mbGV4LXBhY2s6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBmbGV4LWVuZCB7XG4gICAgLXdlYmtpdC1ib3gtcGFjazogZW5kO1xuICAgIC1tcy1mbGV4LXBhY2s6IGVuZDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gc3BhY2UtYmV0d2VlbiB7XG4gICAgLXdlYmtpdC1ib3gtcGFjazoganVzdGlmeTtcbiAgICAtbXMtZmxleC1wYWNrOiBqdXN0aWZ5O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBzcGFjZS1hcm91bmQge1xuICAgIC1tcy1mbGV4LXBhY2s6IGRpc3RyaWJ1dGU7XG4gIH0gQGVsc2Uge1xuICAgIC13ZWJraXQtYm94LXBhY2s6ICR2YWx1ZTtcbiAgICAtbXMtZmxleC1wYWNrOiAkdmFsdWU7XG4gIH1cbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgLW1vei1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG4gIC8vIFNob3J0ZXIgdmVyc2lvbjpcbiAgQG1peGluIGZsZXgtanVzdCgkYXJncy4uLikgeyBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQoJGFyZ3MuLi4pOyB9XG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBGbGV4Ym94IEFsaWduIEl0ZW1zXG4vL1xuLy8gRmxleCBpdGVtcyBjYW4gYmUgYWxpZ25lZCBpbiB0aGUgY3Jvc3MgYXhpcyBvZiB0aGUgY3VycmVudCBsaW5lIG9mIHRoZVxuLy8gZmxleCBjb250YWluZXIsIHNpbWlsYXIgdG8gJ2p1c3RpZnktY29udGVudCcgYnV0IGluIHRoZSBwZXJwZW5kaWN1bGFyXG4vLyBkaXJlY3Rpb24uICdhbGlnbi1pdGVtcycgc2V0cyB0aGUgZGVmYXVsdCBhbGlnbm1lbnQgZm9yIGFsbCBvZiB0aGUgZmxleFxuLy8gY29udGFpbmVyJ3MgaXRlbXMsIGluY2x1ZGluZyBhbm9ueW1vdXMgZmxleCBpdGVtcy4gJ2FsaWduLXNlbGYnIGFsbG93c1xuLy8gdGhpcyBkZWZhdWx0IGFsaWdubWVudCB0byBiZSBvdmVycmlkZGVuIGZvciBpbmRpdmlkdWFsIGZsZXggaXRlbXMuIChGb3Jcbi8vIGFub255bW91cyBmbGV4IGl0ZW1zLCAnYWxpZ24tc2VsZicgYWx3YXlzIG1hdGNoZXMgdGhlIHZhbHVlIG9mICdhbGlnbi1pdGVtcydcbi8vIG9uIHRoZWlyIGFzc29jaWF0ZWQgZmxleCBjb250YWluZXIuKVxuLy9cbi8vIFZhbHVlczogZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoXG4vLyBEZWZhdWx0OiBzdHJldGNoXG4vL1xuLy8gaHR0cDovL3czLm9yZy90ci9jc3MzLWZsZXhib3gvI2FsaWduLWl0ZW1zLXByb3BlcnR5XG5cbkBtaXhpbiBhbGlnbi1pdGVtcygkdmFsdWU6IHN0cmV0Y2gpIHtcbiAgQGlmICR2YWx1ZSA9PSBmbGV4LXN0YXJ0IHtcbiAgICAtd2Via2l0LWJveC1hbGlnbjogc3RhcnQ7XG4gICAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBmbGV4LWVuZCB7XG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGVuZDtcbiAgICAtbXMtZmxleC1hbGlnbjogZW5kO1xuICB9IEBlbHNlIHtcbiAgICAtd2Via2l0LWJveC1hbGlnbjogJHZhbHVlO1xuICAgIC1tcy1mbGV4LWFsaWduOiAkdmFsdWU7XG4gIH1cbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAtbW96LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG4gIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBGbGV4Ym94IEFsaWduIFNlbGZcbi8vXG4vLyBWYWx1ZXM6IGF1dG8gfCBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2hcbi8vIERlZmF1bHQ6IGF1dG9cblxuQG1peGluIGFsaWduLXNlbGYoJHZhbHVlOiBhdXRvKSB7XG4gIC8vIE5vIFdlYmtpdCBCb3ggRmFsbGJhY2suXG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAtbW96LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBmbGV4LXN0YXJ0IHtcbiAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gZmxleC1lbmQge1xuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGVuZDtcbiAgfSBAZWxzZSB7XG4gICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogJHZhbHVlO1xuICB9XG4gIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEZsZXhib3ggQWxpZ24gQ29udGVudFxuLy9cbi8vIFRoZSAnYWxpZ24tY29udGVudCcgcHJvcGVydHkgYWxpZ25zIGEgZmxleCBjb250YWluZXIncyBsaW5lcyB3aXRoaW4gdGhlXG4vLyBmbGV4IGNvbnRhaW5lciB3aGVuIHRoZXJlIGlzIGV4dHJhIHNwYWNlIGluIHRoZSBjcm9zcy1heGlzLCBzaW1pbGFyIHRvXG4vLyBob3cgJ2p1c3RpZnktY29udGVudCcgYWxpZ25zIGluZGl2aWR1YWwgaXRlbXMgd2l0aGluIHRoZSBtYWluLWF4aXMuIE5vdGUsXG4vLyB0aGlzIHByb3BlcnR5IGhhcyBubyBlZmZlY3Qgd2hlbiB0aGUgZmxleGJveCBoYXMgb25seSBhIHNpbmdsZSBsaW5lLlxuLy9cbi8vIFZhbHVlczogZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZCB8IHN0cmV0Y2hcbi8vIERlZmF1bHQ6IHN0cmV0Y2hcbi8vXG4vLyBodHRwOi8vdzMub3JnL3RyL2NzczMtZmxleGJveC8jYWxpZ24tY29udGVudC1wcm9wZXJ0eVxuXG5AbWl4aW4gYWxpZ24tY29udGVudCgkdmFsdWU6IHN0cmV0Y2gpIHtcbiAgLy8gTm8gV2Via2l0IEJveCBGYWxsYmFjay5cbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gIC1tb3otYWxpZ24tY29udGVudDogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IGZsZXgtc3RhcnQge1xuICAgIC1tcy1mbGV4LWxpbmUtcGFjazogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IGZsZXgtZW5kIHtcbiAgICAtbXMtZmxleC1saW5lLXBhY2s6IGVuZDtcbiAgfSBAZWxzZSB7XG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiAkdmFsdWU7XG4gIH1cbiAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuIiwiLypkb2Ncbi0tLVxudGl0bGU6IExhYmVsIE1peGluc1xubmFtZTogZC1taXhpbi1taXhpblxuY2F0ZWdvcnk6IFZpc3VhbCBUcmVhdG1lbnRzIC0gTGFiZWxcbi0tLVxuXG5Vc2UgdGhlIGxhYmVsLW1hdGNoIG1peGluIHRvIGNyZWF0ZSBjdXN0b20gLmxhYmVsIG1vZGlmaWVyIGNsYXNzZXNcblxuYGBgc2Fzc19leGFtcGxlXG4ubGFiZWwge1xuICAgIC5wYXJ0aWFsLW1hdGNoIHtcbiAgICAgICAgQGluY2x1ZGUgbGFiZWwtbWF0Y2goXG4gICAgICAgICAgICAvLyBUaGlzIG9wdGlvbnMgc2V0cyBsYWJlbCBwYWRkaW5nXG4gICAgICAgICAgICAkcGFkZGluZzpyZW0tY2FsYyg1KSByZW0tY2FsYygxMCksXG4gICAgICAgICAgICAvLyBUaGlzIG9wdGlvbiBzZXRzIGxhYmVsIHRleHQtc2l6ZVxuICAgICAgICAgICAgJHRleHQtc2l6ZToxM3B4LFxuICAgICAgICAgICAgLy8gVGhpcyBvcHRpb24gc2V0cyBsYWJlbCBiYWNrZ3JvdW5kLWNvbG9yXG4gICAgICAgICAgICAkYmc6ICR3aGl0ZSxcbiAgICAgICAgICAgIC8vIFRoaXMgb3B0aW9uIHNldHMgdGhlIHJhZGl1cyBvZiB0aGUgbGFiZWxcbiAgICAgICAgICAgICRyYWRpdXM6MCxcbiAgICAgICAgICAgIC8vIENvbG9yIG9mIHRoZSB0ZXh0LlxuICAgICAgICAgICAgJGNvbG9yOiAkYmxhY2tcbiAgICAgICAgKVxuICAgIH1cbn1cbmBgYFxuXG4qL1xuXG5AbWl4aW4gbGFiZWwtbWF0Y2goJHBhZGRpbmc6IHJlbS1jYWxjKDUpIHJlbS1jYWxjKDEwKSwgJGJnOiAkd2hpdGUsICRyYWRpdXM6MCwgJGNvbG9yOiAkYmxhY2spIHtcbiAgICBAaW5jbHVkZSBsYWJlbCgkcGFkZGluZzokcGFkZGluZywgJGJnOiRiZywgJHJhZGl1czokcmFkaXVzKTtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbWVkaXVtO1xufVxuIiwiLy8vIEZvciBnZW5lcmF0aW5nIGZvbnQgc2l6ZXMgZm9yIHRleHQgIGVnLiBgLnRleHQtc21hbGxlc3RgIHRvIGAudGV4dC1sYXJnZXN0YFxuLy8vIEFsc28sIHRoZSBtaXhpbnMgd2lsbCBjYXRjaCBhbiBpbnZhbGlkIHNpemUgbmFtZSBpZiBpdCdzIG5vdCBkZWZpbmVkLlxuLy8vIEBncm91cCB0ZXh0XG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLyBAYXV0aG9yIFBhdWwgUGVjaGluXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIC0gc21hbGxlc3QsIHNtYWxsZXIsIHNtYWxsLCBub3JtYWwsIGxhcmdlLCBsYXJnZXIsIGxhcmdlc3Rcbi8vLyBAcGFyYW0ge0Jvb2x9ICRpbXBvcnRhbnQgW2ZhbHNlXSAtIFdoZXRoZXIgb3Igbm90IHRvIGFkZCAhaW1wb3J0YW50XG4vLy8gQHBhcmFtIHtBcnJheX0gJGJyZWFrcG9pbnRzIFsnJ10gLSBhIHNpbmdsZSBwYXJhbWV0ZXIgbGlrZSBgJGxhcmdlLXVwYCBvciBgJG1lZGl1bS11cGAsIG9yIGEgbGlzdCBvZiBicmVha3BvaW50cyBsaWtlIGAoJGxhcmdlLXVwLCAkbWVkaXVtLXVwKWAuXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4YW1wbGUgVXNhZ2Vcbi8vLyAgICAgLmN1c3RvbS10aGluZyB7XG4vLy8gICAgICAgICBAaW5jbHVkZSB0ZXh0KCdsYXJnZXN0JywgJGJyZWFrcG9pbnRzOiAkbGFyZ2UtdXApXG4vLy8gICAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIFJlc3VsdFxuLy8vICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2M2VtKSB7XG4vLy8gICAgICAgICAuY3VzdG9tLXRoaW5nIHtcbi8vLyAgICAgICAgICAgICBmb250LXNpemU6IDEuMzc1cmVtO1xuLy8vICAgICAgICAgfVxuLy8vICAgICB9XG5AbWl4aW4gdGV4dCgkbmFtZSwgJGltcG9ydGFudDogZmFsc2UsICRicmVha3BvaW50czogJycpIHtcbiAgICBAaW5jbHVkZSBfZ2VuZXJhdGUtZm9udC1zaXplKCR0ZXh0LXNpemVzLCAkbmFtZSwgJGltcG9ydGFudCwgJGJyZWFrcG9pbnRzKTtcbn1cblxuLy8vIEZvciBnZW5lcmF0aW5nIGZvbnQgc2l6ZXMgZm9yIGhlYWRpbmdzICBlZy4gYC5oZWFkaW5nLXNtYWxsZXN0YCB0byBgLmhlYWRpbmctbGFyZ2VzdGBcbi8vLyBBbHNvLCB0aGUgbWl4aW5zIHdpbGwgY2F0Y2ggYW4gaW52YWxpZCBzaXplIG5hbWUgaWYgaXQncyBub3QgZGVmaW5lZC5cbi8vLyBAZ3JvdXAgdGV4dFxuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8gQGF1dGhvciBQYXVsIFBlY2hpblxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSAtIHNtYWxsZXN0LCBzbWFsbGVyLCBzbWFsbCwgbm9ybWFsLCBsYXJnZSwgbGFyZ2VyLCBsYXJnZXN0XG4vLy8gQHBhcmFtIHtCb29sfSAkaW1wb3J0YW50IFtmYWxzZV0gLSBXaGV0aGVyIG9yIG5vdCB0byBhZGQgIWltcG9ydGFudFxuLy8vIEBwYXJhbSB7QXJyYXl9ICRicmVha3BvaW50cyBbJyddIC0gYSBzaW5nbGUgcGFyYW1ldGVyIGxpa2UgYCRsYXJnZS11cGAgb3IgYCRtZWRpdW0tdXBgLCBvciBhIGxpc3Qgb2YgYnJlYWtwb2ludHMgbGlrZSBgKCRsYXJnZS11cCwgJG1lZGl1bS11cClgLlxuLy8vIEBleGFtcGxlIHNjc3MgLSBFeGFtcGxlIFVzYWdlXG4vLy8gICAgIC5jdXN0b20taGVhZGluZyB7XG4vLy8gICAgICAgICBAaW5jbHVkZSBoZWFkaW5nKCdzbWFsbGVzdCcsICRicmVha3BvaW50czogJHNtYWxsLW9ubHkpXG4vLy8gICAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIFJlc3VsdFxuLy8vICAgICAuY3VzdG9tLWhlYWRpbmcge1xuLy8vICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4vLy8gICAgIH1cbi8vL1xuLy8vICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQwZW0pIHtcbi8vLyAgICAgICAuY3VzdG9tLWhlYWRpbmcge1xuLy8vICAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuLy8vICAgICAgIH1cbi8vLyAgICAgfVxuQG1peGluIGhlYWRpbmcoJG5hbWUsICRpbXBvcnRhbnQ6IGZhbHNlLCAkYnJlYWtwb2ludHM6ICcnKSB7XG4gICAgQGluY2x1ZGUgX2dlbmVyYXRlLWZvbnQtc2l6ZSgkaGVhZGluZy1zaXplcywgJG5hbWUsICRpbXBvcnRhbnQsICRicmVha3BvaW50cywgJGZvbnQtd2VpZ2h0LW1lZGl1bSk7XG59XG5cbi8vIEludGVuZGVkIHRvIGJlIHVzZWQgb25seSBiZSBfdHlwb2dyYXBoeSBtaXhpbnMgaW50ZXJuYWxseS5cbi8vLyBBbHNvLCB0aGUgbWl4aW5zIHdpbGwgY2F0Y2ggYW4gaW52YWxpZCBzaXplIG5hbWUgaWYgaXQncyBub3QgZGVmaW5lZC5cbi8vLyBAZ3JvdXAgdGV4dFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vIEBhdXRob3IgUGF1bCBQZWNoaW5cbi8vLyBAcGFyYW0ge0FycmF5fSAkc2l6ZS1tYXAgWycnXSAtICR0ZXh0LXNpemVzIG9yICRoZWFkaW5nLXNpemVzIGZyb20gX3ZhcmlhYmxlcy5zY3NzXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIC0gc21hbGxlc3QsIHNtYWxsZXIsIHNtYWxsLCBub3JtYWwsIGxhcmdlLCBsYXJnZXIsIGxhcmdlc3Rcbi8vLyBAcGFyYW0ge0Jvb2x9ICRpbXBvcnRhbnQgW2ZhbHNlXSAtIFdoZXRoZXIgb3Igbm90IHRvIGFkZCAhaW1wb3J0YW50XG4vLy8gQHBhcmFtIHtBcnJheX0gJGJyZWFrcG9pbnRzIFsnJ10gLSBhIHNpbmdsZSBwYXJhbWV0ZXIgbGlrZSBgJGxhcmdlLXVwYCBvciBgJG1lZGl1bS11cGAsIG9yIGEgbGlzdCBvZiBicmVha3BvaW50cyBsaWtlIGAoJGxhcmdlLXVwLCAkbWVkaXVtLXVwKWAuXG5AbWl4aW4gX2dlbmVyYXRlLWZvbnQtc2l6ZSgkc2l6ZS1tYXAsICRuYW1lLCAkaW1wb3J0YW50LCAkYnJlYWtwb2ludHMsICR3ZWlnaHQ6JycpIHtcbiAgICAkc2l6ZTogbWFwLWdldCgkc2l6ZS1tYXAsICRuYW1lKTtcblxuICAgIEBpZiAoJHNpemUgPT0gbnVsbCkge1xuICAgICAgICBAZXJyb3IgXCInXCIgKyAkbmFtZSArIFwiJyB0ZXh0IHNpemUgaW52YWxpZFwiO1xuICAgIH1cblxuICAgICRleHRyYTogaWYoJGltcG9ydGFudCA9PSB0cnVlLCAnICFpbXBvcnRhbnQnLCAnJyk7XG5cbiAgICBAaWYgKCRicmVha3BvaW50cyAhPSAnJykge1xuICAgICAgICBAZWFjaCAkYnJlYWtwb2ludCBpbiAkYnJlYWtwb2ludHMge1xuICAgICAgICAgICAgQG1lZGlhICN7JGJyZWFrcG9pbnR9IHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICN7JHNpemUgKyAkZXh0cmF9O1xuICAgICAgICAgICAgICAgIEBpZiAoJHdlaWdodCAhPSAnJykge1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogI3skd2VpZ2h0ICsgJGV4dHJhfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgZm9udC1zaXplOiAjeyRzaXplICsgJGV4dHJhfTtcbiAgICAgICAgQGlmICgkd2VpZ2h0ICE9ICcnKSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogI3skd2VpZ2h0ICsgJGV4dHJhfTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qZG9jXG4tLS1cbnRpdGxlOiBTaGFkb3cgKG1peGluKVxubmFtZTogYS1taXhpbnNcbmNhdGVnb3J5OiBWaXN1YWwgVHJlYXRtZW50cyAtIFNoYWRvd1xuYXV0aG9yczogV2lsbCBGZXJndXNvblxuLS0tXG5cbkFkZCBhIGJveC1zaGFkb3cgZWcuIGBAaW5jbHVkZSBib3gtc2hhZG93KDAsIDAsIDVweCwgMCwgI2FhYSwgZmFsc2UpO2BcblxuYGBgc2Fzc19leGFtcGxlXG5AbWl4aW4gc2hhZG93KCR0eXBlKSB7XG4gICAgYm94LXNoYWRvdzogMCAwIHJlbS1jYWxjKDUpIDAgcmdiYSgwLCAwLCAwLCAwLjUpO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdygkdG9wLCAkbGVmdCwgJGJsdXIsICRzaXplLCAkY29sb3IsICRpbnNldDogZmFsc2UpIHtcbiAgICBAaWYgJGluc2V0IHtcbiAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93Omluc2V0ICR0b3AgJGxlZnQgJGJsdXIgJHNpemUgJGNvbG9yO1xuICAgICAgICAtbW96LWJveC1zaGFkb3c6aW5zZXQgJHRvcCAkbGVmdCAkYmx1ciAkc2l6ZSAkY29sb3I7XG4gICAgICAgIGJveC1zaGFkb3c6aW5zZXQgJHRvcCAkbGVmdCAkYmx1ciAkc2l6ZSAkY29sb3I7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogJHRvcCAkbGVmdCAkYmx1ciAkc2l6ZSAkY29sb3I7XG4gICAgICAgIC1tb3otYm94LXNoYWRvdzogJHRvcCAkbGVmdCAkYmx1ciAkc2l6ZSAkY29sb3I7XG4gICAgICAgIGJveC1zaGFkb3c6ICR0b3AgJGxlZnQgJGJsdXIgJHNpemUgJGNvbG9yO1xuICAgIH1cbn1cbmBgYFxuKi9cblxuQG1peGluIHNoYWRvdygkdHlwZSkge1xuICAgIGJveC1zaGFkb3c6IDAgMCByZW0tY2FsYyg1KSAwIHJnYmEoMCwgMCwgMCwgMC41KTtcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHRvcCwgJGxlZnQsICRibHVyLCAkc2l6ZSwgJGNvbG9yLCAkaW5zZXQ6IGZhbHNlKSB7XG4gICAgQGlmICRpbnNldCB7XG4gICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzppbnNldCAkdG9wICRsZWZ0ICRibHVyICRzaXplICRjb2xvcjtcbiAgICAgICAgLW1vei1ib3gtc2hhZG93Omluc2V0ICR0b3AgJGxlZnQgJGJsdXIgJHNpemUgJGNvbG9yO1xuICAgICAgICBib3gtc2hhZG93Omluc2V0ICR0b3AgJGxlZnQgJGJsdXIgJHNpemUgJGNvbG9yO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6ICR0b3AgJGxlZnQgJGJsdXIgJHNpemUgJGNvbG9yO1xuICAgICAgICAtbW96LWJveC1zaGFkb3c6ICR0b3AgJGxlZnQgJGJsdXIgJHNpemUgJGNvbG9yO1xuICAgICAgICBib3gtc2hhZG93OiAkdG9wICRsZWZ0ICRibHVyICRzaXplICRjb2xvcjtcbiAgICB9XG59XG4iLCIvKmRvY1xuLS0tXG50aXRsZTogSlMgQ2xhc3Nlc1xubmFtZTogYS12aXNpYmlsaXR5LWpzLWNsYXNzZXNcbmNhdGVnb3J5OiBKYXZhU2NyaXB0IC0gU3RhdGUgQ2xhc3Nlc1xuLS0tXG5cbk1lYW50IHRvIGJlIG1hbmlwdWxhdGVkIGJ5IG91ciBKUywgdGhlc2UgY2xhc3NlcyBzaG91bGQgaWRlYWxseSBcbmFmZmVjdCBvbmUgcHJvcGVydHkgb24gYW4gZWxlbWVudCBhbmQgaGF2ZSB0aGUgaGlnaGVzdCBwcmlvcml0eVxud2l0aCAhaW1wb3J0YW50LlxuXG5Gb3IgY29tcG9uZW50LXNwZWNpZmljIHN0YXRlcywgcGxlYXNlIHB1dCB0aGVtIGluIHRoYXQgY29tcG9uZW50J3NcbmZpbGVzLiBUaGlzIGZpbGUgaXMgbWVhbnQgZm9yIHN0YXRlcyB0aGF0IG1heSBiZSB1c2VkIGFjcm9zc1xubXVsdGlwbGUgY29tcG9uZW50cy5cblxuV2Ugc2hvdWxkIHByb2JhYmx5IHByZWZlciB1c2luZyB0aGUgSFRNTDUgYGhpZGRlbmAgcHJvcGVydHkgaW5zdGVhZFxub2YgYSBjdXN0b20gQ1NTIGNsYXNzLlxuXG5gYGBzYXNzX2V4YW1wbGUtc2hvdy1jb2RlXG4uaXMtbm9uZSwgLmlzLWhpZGRlbiwgW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmlzLXN0aWNreSB7XG4gICAgQGluY2x1ZGUgei1pbmRleCh0cnVlKTtcbn1cblxuLmlzLW92ZXJmbG93LWFuY2hvci1kaXNhYmxlZCB7XG4gICAgb3ZlcmZsb3ctYW5jaG9yOiBub25lO1xufVxuXG5gYGBcbiovXG5cbi5pcy1ub25lLCAuaXMtaGlkZGVuLCBbaGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uaXMtc3RpY2t5IHtcbiAgICBAaW5jbHVkZSB6LWluZGV4KHRydWUpO1xufVxuXG4uaXMtb3ZlcmZsb3ctYW5jaG9yLWRpc2FibGVkIHtcbiAgICBvdmVyZmxvdy1hbmNob3I6IG5vbmU7XG59XG4iLCJodG1sLmhhcy1uby1zY3JvbGwge1xuICAgIEBtZWRpYSAjeyRub3QtbGFyZ2UtdXB9IHtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG8gIWltcG9ydGFudDtcblxuICAgICAgICBib2R5IHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxucHJlW2RhdGEtZHVtcF0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogWWVsbG93O1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cbiIsIi8qZG9jXG4tLS1cbnRpdGxlOiBBbGwgQ29sb3JzXG5uYW1lOiBhLWNvbG9yc1xuY2F0ZWdvcnk6IENvbG9ycyAtIENvbG9yc1xuLS0tXG5cblxuPHAgY2xhc3M9XCJibG9jay1sb29zZVwiIHN0eWxlPVwibWF4LXdpZHRoOiA1MDBweDtcIj5Db2RlZCBieTogPHN0cm9uZz5Ib3VkYSBCZW5xYXNzZW0gPC9zdHJvbmc+IDwvcD5cbjxkaXYgY2xhc3M9XCJibG9jay1sb29zZSBwYWRkaW5nLWxlZnQtbm9ybWFsIHBhZGRpbmctdG9wLXRpZ2h0XCIgc3R5bGU9XCJib3JkZXI6IDFweCBzb2xpZCAjZGRkOyBiYWNrZ3JvdW5kLWNvbG9yOiNmNGY0ZjQ7XCI+XG4gICAgICAgIDxwIGNsYXNzPVwiYmxvY2stdGlnaHQgdGV4dC1zbWFsbFwiPkRFU0lHTkVSIFRPT0xTPC9wPlxuICAgICAgICA8cCBjbGFzcz1cImJsb2NrLXRpZ2h0IHRleHQtc21hbGwgdGV4dC1tdXRlZCB0ZXh0LWxlZnRcIiA+IDxhIGhyZWY9XCJodHRwOi8vd2ViZGVzaWduLnVzbmV3cy5jb20vX1Jlc291cmNlcy9Db2xvcnMvXCI+UGhvdG9zaG9wIFN3YXRjaGVzPC9hPjwvcD5cbiAgICAgICAgPHAgY2xhc3M9XCJibG9jay10aWdodCB0ZXh0LXNtYWxsIHRleHQtbXV0ZWQgdGV4dC1sZWZ0XCI+IDxhIGhyZWY9XCJodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9kb2N1bWVudC9kLzE5bk1UR1VjREVWcFZYRF9VWGhyaEpZOEtPVU80c2ZBM0toOWh4QTMwWEpBL2VkaXRcIj5JbnN0YWxsYXRpb24gR3VpZGU8L2E+PC9wPlxuPC9kaXY+XG5cblBsZWFzZSBhZGQgbmV3IGNvbG9ycyB0byA8Y29kZSBjbGFzcyA9IFwic3R5bGVndWlkZVwiPl92YXJpYWJsZXMuc2NzczwvY29kZT5cblxuXG5cblxuPHVsIGNsYXNzPVwibWVkaXVtLWJsb2NrLWdyaWQtM1wiPlxueyUtIGZvciBjb2xvck5hbWUsIGNvbG9yVmFsdWUgaW4gY29sb3JzICV9XG4gIDxsaT5cbiAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOnt7Y29sb3JWYWx1ZX19OyBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1wiPjxicj48YnI+PGJyPjxicj48YnI+PC9kaXY+XG4gICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiR7e2NvbG9yTmFtZX19PC9wcmU+XG4gICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPnt7Y29sb3JWYWx1ZX19PC9wcmU+XG4gIDwvbGk+XG57JS0gZW5kZm9yICV9XG48L3VsPlxuXG5cblxuPGgyIHN0eWxlPVwiZm9udC1zaXplOiAyMXB4OyBjb2xvcjojMzMzOyBcIj4gQ29sb3IgUGFsZXR0ZSBTZXRzPC9oMj5cbkJsdWUgTW9ub2Nocm9tZVxuLS0tXG48YnI+XG48dWwgY2xhc3M9XCJtZWRpdW0tYmxvY2stZ3JpZC0zXCI+XG4gICAgPGxpPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGwtMTIgY29sdW1uc1wiIHN0eWxlPVwiYmFja2dyb3VuZDojMTMzMjVkOyBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1wiPjxicj48YnI+PGJyPjxicj48YnI+PC9kaXY+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+JGJsdWUtbGlnaHQ8L3ByZT5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4jMTMzMjVkPC9wcmU+XG4gICAgPC9saT5cbiAgICA8bGk+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOiMyMjYyYmI7IGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XCI+PGJyPjxicj48YnI+PGJyPjxicj48L2Rpdj5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4kYmx1ZTwvcHJlPlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiMyMjYyYmI8L3ByZT5cbiAgICA8L2xpPlxuICAgIDxsaT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnNcIiBzdHlsZT1cImJhY2tncm91bmQ6IzJjN2VmMDsgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcIj48YnI+PGJyPjxicj48YnI+PGJyPjwvZGl2PlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiRsaW5rLWJsdWUtbGlnaHQ8L3ByZT5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4jMmM3ZWYwPC9wcmU+XG4gICAgPC9saT5cbiAgICA8bGk+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOiNjMGRkZjI7IGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XCI+PGJyPjxicj48YnI+PGJyPjxicj48L2Rpdj5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4kbGlnaHQtYmx1ZTwvcHJlPlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiNjMGRkZjI8L3ByZT5cbiAgICA8L2xpPlxuICAgIDxsaT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnNcIiBzdHlsZT1cImJhY2tncm91bmQ6I2MwY2FkZDsgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcIj48YnI+PGJyPjxicj48YnI+PGJyPjwvZGl2PlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiRsaWdodC1ncmF5PC9wcmU+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+I2MwY2FkZDwvcHJlPlxuICAgIDwvbGk+XG48L3VsPlxuXG5cblZpYnJhbnRcbi0tLVxuPGJyPlxuPHVsIGNsYXNzPVwibWVkaXVtLWJsb2NrLWdyaWQtM1wiPlxuICAgIDxsaT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnNcIiBzdHlsZT1cImJhY2tncm91bmQ6IzJjN2VmMDsgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcIj48YnI+PGJyPjxicj48YnI+PGJyPjwvZGl2PlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiRsaW5rLWJsdWUtbGlnaHQ8L3ByZT5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4jMmM3ZWYwPC9wcmU+XG4gICAgPC9saT5cbiAgICA8bGk+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOiMwQUJCQTQ7IGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XCI+PGJyPjxicj48YnI+PGJyPjxicj48L2Rpdj5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4kZ3JlZW4tcHJvPC9wcmU+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+IzBBQkJBNDwvcHJlPlxuICAgIDwvbGk+XG4gICAgPGxpPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGwtMTIgY29sdW1uc1wiIHN0eWxlPVwiYmFja2dyb3VuZDojZmZjMTRlOyBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1wiPjxicj48YnI+PGJyPjxicj48YnI+PC9kaXY+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+JG9yYW5nZS1saWdodDwvcHJlPlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiNmZmMxNGU8L3ByZT5cbiAgICA8L2xpPlxuICAgIDxsaT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnNcIiBzdHlsZT1cImJhY2tncm91bmQ6I0QxNDUzRDsgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcIj48YnI+PGJyPjxicj48YnI+PGJyPjwvZGl2PlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiRyZWQ8L3ByZT5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4jRDE0NTNEPC9wcmU+XG4gICAgPC9saT5cbiAgICA8bGk+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOiNFMzhEMTM7IGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XCI+PGJyPjxicj48YnI+PGJyPjxicj48L2Rpdj5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4kb3JhbmdlLWRhcms8L3ByZT5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4jRTM4RDEzPC9wcmU+XG4gICAgPC9saT5cbjwvdWw+XG5Nb2Rlcm5cbi0tLVxuPGJyPlxuPHVsIGNsYXNzPVwibWVkaXVtLWJsb2NrLWdyaWQtM1wiPlxuICAgIDxsaT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnNcIiBzdHlsZT1cImJhY2tncm91bmQ6IzIyNjJiYjsgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcIj48YnI+PGJyPjxicj48YnI+PGJyPjwvZGl2PlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiRibHVlPC9wcmU+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+IzIyNjJiYjwvcHJlPlxuICAgIDwvbGk+XG4gICAgPGxpPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGwtMTIgY29sdW1uc1wiIHN0eWxlPVwiYmFja2dyb3VuZDojZmZjMTRlOyBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1wiPjxicj48YnI+PGJyPjxicj48YnI+PC9kaXY+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+JG9yYW5nZS1saWdodDwvcHJlPlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiNmZmMxNGU8L3ByZT5cbiAgICA8L2xpPlxuICAgIDxsaT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnNcIiBzdHlsZT1cImJhY2tncm91bmQ6IzEzMzI1RDsgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcIj48YnI+PGJyPjxicj48YnI+PGJyPjwvZGl2PlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiRibHVlLWxpZ2h0PC9wcmU+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+IzEzMzI1RDwvcHJlPlxuICAgIDwvbGk+XG4gICAgPGxpPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGwtMTIgY29sdW1uc1wiIHN0eWxlPVwiYmFja2dyb3VuZDojYzBkZGYyOyBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1wiPjxicj48YnI+PGJyPjxicj48YnI+PC9kaXY+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+JGxpZ2h0LWJsdWU8L3ByZT5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4jYzBkZGYyPC9wcmU+XG4gICAgPC9saT5cbjwvdWw+XG5cbklzbGFuZFxuLS0tXG48YnI+XG48dWwgY2xhc3M9XCJtZWRpdW0tYmxvY2stZ3JpZC0zXCI+XG4gICAgPGxpPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGwtMTIgY29sdW1uc1wiIHN0eWxlPVwiYmFja2dyb3VuZDojMDM3YjZiOyBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1wiPjxicj48YnI+PGJyPjxicj48YnI+PC9kaXY+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+JGdyZWVuLWZvcmVzdDwvcHJlPlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiMwMzdiNmI8L3ByZT5cbiAgICA8L2xpPlxuICAgIDxsaT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnNcIiBzdHlsZT1cImJhY2tncm91bmQ6IzBBQkJBNDsgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcIj48YnI+PGJyPjxicj48YnI+PGJyPjwvZGl2PlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiRncmVlbi1wcm88L3ByZT5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4jMEFCQkE0PC9wcmU+XG4gICAgPC9saT5cbiAgICA8bGk+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOiM1ZGQ1YzU7IGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XCI+PGJyPjxicj48YnI+PGJyPjxicj48L2Rpdj5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4kZ3JlZW4tY2FyaWJiZWFuPC9wcmU+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+IzVkZDVjNTwvcHJlPlxuICAgIDwvbGk+XG4gICAgPGxpPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGwtMTIgY29sdW1uc1wiIHN0eWxlPVwiYmFja2dyb3VuZDojYWRlOGUwOyBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1wiPjxicj48YnI+PGJyPjxicj48YnI+PC9kaXY+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+JGdyZWVuLXNlYS1mb2FtPC9wcmU+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+I2FkZThlMDwvcHJlPlxuICAgIDwvbGk+XG4gICAgPGxpPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGwtMTIgY29sdW1uc1wiIHN0eWxlPVwiYmFja2dyb3VuZDojMTMzMjVEOyBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1wiPjxicj48YnI+PGJyPjxicj48YnI+PC9kaXY+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+JGJsdWUtbGlnaHQ8L3ByZT5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4jMTMzMjVEPC9wcmU+XG4gICAgPC9saT5cbiAgICA8bGk+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOiMyMjYyYmI7IGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XCI+PGJyPjxicj48YnI+PGJyPjxicj48L2Rpdj5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4kYmx1ZTwvcHJlPlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiMyMjYyYmI8L3ByZT5cbiAgICA8L2xpPlxuICAgIDxsaT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnNcIiBzdHlsZT1cImJhY2tncm91bmQ6IzJjN2VmMDsgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcIj48YnI+PGJyPjxicj48YnI+PGJyPjwvZGl2PlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiRsaW5rLWJsdWUtbGlnaHQ8L3ByZT5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4jMmM3ZWYwPC9wcmU+XG4gICAgPC9saT5cbiAgICA8bGk+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOiNjMGNhZGQ7IGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XCI+PGJyPjxicj48YnI+PGJyPjxicj48L2Rpdj5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4kbGlnaHQtZ3JheTwvcHJlPlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiNjMGNhZGQ8L3ByZT5cbiAgICA8L2xpPlxuPC91bD5cblxuU3RvcExpZ2h0XG4tLS1cbjxicj5cbjx1bCBjbGFzcz1cIm1lZGl1bS1ibG9jay1ncmlkLTNcIj5cbiAgICA8bGk+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOiMwQUJCQTQ7IGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XCI+PGJyPjxicj48YnI+PGJyPjxicj48L2Rpdj5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4kZ3JlZW4tcHJvPC9wcmU+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+IzBBQkJBNDwvcHJlPlxuICAgIDwvbGk+XG4gICAgPGxpPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGwtMTIgY29sdW1uc1wiIHN0eWxlPVwiYmFja2dyb3VuZDojRTM4RDEzOyBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1wiPjxicj48YnI+PGJyPjxicj48YnI+PC9kaXY+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+JG9yYW5nZS1kYXJrPC9wcmU+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+I0UzOEQxMzwvcHJlPlxuICAgIDwvbGk+XG4gICAgPGxpPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGwtMTIgY29sdW1uc1wiIHN0eWxlPVwiYmFja2dyb3VuZDojRDE0NTNEOyBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1wiPjxicj48YnI+PGJyPjxicj48YnI+PC9kaXY+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+JHJlZDwvcHJlPlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiNEMTQ1M0Q8L3ByZT5cbiAgICA8L2xpPlxuPC91bD5cblxuRnVsbCBTZXRcbi0tLVxuPGJyPlxuPHVsIGNsYXNzPVwibWVkaXVtLWJsb2NrLWdyaWQtM1wiPlxuICAgIDxsaT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnNcIiBzdHlsZT1cImJhY2tncm91bmQ6IzIyNjJCQjsgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcIj48YnI+PGJyPjxicj48YnI+PGJyPjwvZGl2PlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiRibHVlPC9wcmU+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+IzIyNjJCQjwvcHJlPlxuICAgIDwvbGk+XG4gICAgPGxpPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGwtMTIgY29sdW1uc1wiIHN0eWxlPVwiYmFja2dyb3VuZDojMEFCQkE0OyBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1wiPjxicj48YnI+PGJyPjxicj48YnI+PC9kaXY+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+JGdyZWVuLXBybzwvcHJlPlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiMwQUJCQTQ8L3ByZT5cbiAgICA8L2xpPlxuICAgIDxsaT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnNcIiBzdHlsZT1cImJhY2tncm91bmQ6I2ZmYzE0ZTsgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcIj48YnI+PGJyPjxicj48YnI+PGJyPjwvZGl2PlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiRvcmFuZ2UtbGlnaHQ8L3ByZT5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4jZmZjMTRlPC9wcmU+XG4gICAgPC9saT5cbiAgICA8bGk+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOiNEMTQ1M0Q7IGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XCI+PGJyPjxicj48YnI+PGJyPjxicj48L2Rpdj5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4kcmVkPC9wcmU+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+I0QxNDUzRDwvcHJlPlxuICAgIDwvbGk+XG4gICAgPGxpPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGwtMTIgY29sdW1uc1wiIHN0eWxlPVwiYmFja2dyb3VuZDojRTM4RDEzOyBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1wiPjxicj48YnI+PGJyPjxicj48YnI+PC9kaXY+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+JG9yYW5nZS1kYXJrPC9wcmU+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+I0UzOEQxMzwvcHJlPlxuICAgIDwvbGk+XG4gICAgPGxpPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGwtMTIgY29sdW1uc1wiIHN0eWxlPVwiYmFja2dyb3VuZDojMTMzMjVkOyBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1wiPjxicj48YnI+PGJyPjxicj48YnI+PC9kaXY+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+JGJsdWUtbGlnaHQ8L3ByZT5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4jMTMzMjVkPC9wcmU+XG4gICAgPC9saT5cbiAgICA8bGk+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOiMwMzdiNmI7IGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XCI+PGJyPjxicj48YnI+PGJyPjxicj48L2Rpdj5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4kZ3JlZW4tZm9yZXN0PC9wcmU+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+IzAzN2I2YjwvcHJlPlxuICAgIDwvbGk+XG4gICAgPGxpPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGwtMTIgY29sdW1uc1wiIHN0eWxlPVwiYmFja2dyb3VuZDojOGQwYzA0OyBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1wiPjxicj48YnI+PGJyPjxicj48YnI+PC9kaXY+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+JHJlZC1icmljazwvcHJlPlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiM4ZDBjMDQ8L3ByZT5cbiAgICA8L2xpPlxuICAgIDxsaT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnNcIiBzdHlsZT1cImJhY2tncm91bmQ6I2E2NjcwZDsgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcIj48YnI+PGJyPjxicj48YnI+PGJyPjwvZGl2PlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiRtdXN0YXJkPC9wcmU+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+I2E2NjcwZDwvcHJlPlxuICAgIDwvbGk+XG4gICAgPGxpPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGwtMTIgY29sdW1uc1wiIHN0eWxlPVwiYmFja2dyb3VuZDojMzMzMzMzOyBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1wiPjxicj48YnI+PGJyPjxicj48YnI+PC9kaXY+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+JG9pbDwvcHJlPlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiMzMzMzMzM8L3ByZT5cbiAgICA8L2xpPlxuPC91bD5cbjxoMiBzdHlsZT1cImZvbnQtc2l6ZTogMjFweDsgY29sb3I6IzMzMzsgXCI+IEdyYWRpZW50IFBhbGV0dGUgU2V0czwvaDI+PGJyPlxuLS0tXG5DbGltYXRlIEdyYWRpZW50XG4tLS1cbjxkaXYgY2xhc3M9XCJibG9jay1sb29zZSBmbGV4LWxhcmdlLTEyXCIgc3R5bGU9XCJoZWlnaHQ6NzBweDtiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCNEMTQ1M0QsI0UzOEQxMywjZmVmNmM4LCNFQUYwRjEsIzJjN2VmMCk7IGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCNEMTQ1M0QsI0UzOEQxMywjRUFGMEYxLCMyYzdlZjApO2JhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsI0QxNDUzRCwjRTM4RDEzLCNFQUYwRjEsIzJjN2VmMCk7YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjRDE0NTNELCNFMzhEMTMsI0VBRjBGMSwjMmM3ZWYwKTtcIj48L2Rpdj5cbjx1bCBjbGFzcz1cIm1lZGl1bS1ibG9jay1ncmlkLTNcIj5cbiAgICA8bGk+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOiNEMTQ1M0Q7IGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XCI+PGJyPjxicj48YnI+PGJyPjxicj48L2Rpdj5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4kcmVkPC9wcmU+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+I0QxNDUzRCA8L3ByZT5cbiAgICA8L2xpPlxuICAgIDxsaT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnNcIiBzdHlsZT1cImJhY2tncm91bmQ6I0UzOEQxMzsgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcIj48YnI+PGJyPjxicj48YnI+PGJyPjwvZGl2PlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiRvcmFuZ2UtZGFyazwvcHJlPlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiNFMzhEMTMgPC9wcmU+XG4gICAgPC9saT5cbiAgICA8bGk+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOiNmZWY2Yzg7IGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XCI+PGJyPjxicj48YnI+PGJyPjxicj48L2Rpdj5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4keWVsbG93LWxpZ2h0PC9wcmU+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+I2ZlZjZjODwvcHJlPlxuICAgIDwvbGk+XG4gICAgPGxpPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGwtMTIgY29sdW1uc1wiIHN0eWxlPVwiYmFja2dyb3VuZDojRUFGMEYxOyBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1wiPjxicj48YnI+PGJyPjxicj48YnI+PC9kaXY+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+JGJhY2tncm91bmQtYmx1ZTwvcHJlPlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiNFQUYwRjE8L3ByZT5cbiAgICA8L2xpPlxuICAgIDxsaT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnNcIiBzdHlsZT1cImJhY2tncm91bmQ6IzJjN2VmMDsgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcIj48YnI+PGJyPjxicj48YnI+PGJyPjwvZGl2PlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiRsaW5rLWJsdWUtbGlnaHQ8L3ByZT5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4jMmM3ZWYwPC9wcmU+XG4gICAgPC9saT5cbjwvdWw+XG5cbkhlYXQgTWFwIEdyYWRpZW50XG4tLS1cbjxicj5cbjxkaXYgY2xhc3M9XCJibG9jay1sb29zZSBmbGV4LWxhcmdlLTEyXCIgc3R5bGU9XCJoZWlnaHQ6NzBweDtiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCM4ZDBjMDQsI0QxNDUzRCwjZmVmNmM4LCNhZGU4ZTAsIzBBQkJBNCwjMDM3YjZiKTsgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsIzhkMGMwNCwjRDE0NTNELCNmZWY2YzgsI2FkZThlMCwjMEFCQkE0LCMwMzdiNmIpO2JhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsIzhkMGMwNCwjRDE0NTNELCNmZWY2YzgsI2FkZThlMCwjMEFCQkE0LCMwMzdiNmIpO2JhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzhkMGMwNCwjRDE0NTNELCNmZWY2YzgsI2FkZThlMCwjMEFCQkE0LCMwMzdiNmIpO1wiPjwvZGl2PlxuPHVsIGNsYXNzPVwibWVkaXVtLWJsb2NrLWdyaWQtM1wiPlxuICAgIDxsaT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnNcIiBzdHlsZT1cImJhY2tncm91bmQ6IzhkMGMwNDsgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcIj48YnI+PGJyPjxicj48YnI+PGJyPjwvZGl2PlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiRyZWQtYnJpY2s8L3ByZT5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4jOGQwYzA0PC9wcmU+XG4gICAgPC9saT5cbiAgICA8bGk+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOiNEMTQ1M0Q7IGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XCI+PGJyPjxicj48YnI+PGJyPjxicj48L2Rpdj5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4kcmVkPC9wcmU+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+I0QxNDUzRCA8L3ByZT5cbiAgICA8L2xpPlxuICAgIDxsaT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnNcIiBzdHlsZT1cImJhY2tncm91bmQ6I2ZlZjZjODsgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcIj48YnI+PGJyPjxicj48YnI+PGJyPjwvZGl2PlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiR5ZWxsb3ctbGlnaHQ8L3ByZT5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4gI2ZlZjZjOCA8L3ByZT5cbiAgICA8L2xpPlxuICAgIDxsaT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnNcIiBzdHlsZT1cImJhY2tncm91bmQ6I2FkZThlMDsgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcIj48YnI+PGJyPjxicj48YnI+PGJyPjwvZGl2PlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiRncmVlbi1zZWEtZm9hbTwvcHJlPlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiNhZGU4ZTA8L3ByZT5cbiAgICA8L2xpPlxuICAgIDxsaT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnNcIiBzdHlsZT1cImJhY2tncm91bmQ6IzBBQkJBNDsgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcIj48YnI+PGJyPjxicj48YnI+PGJyPjwvZGl2PlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiRncmVlbi1wcm88L3ByZT5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4jMEFCQkE0PC9wcmU+XG4gICAgPC9saT5cbiAgICA8bGk+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOiMwMzdiNmI7IGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XCI+PGJyPjxicj48YnI+PGJyPjxicj48L2Rpdj5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4kZ3JlZW4tZm9yZXN0PC9wcmU+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+IzAzN2I2YjwvcHJlPlxuICAgIDwvbGk+XG48L3VsPlxuXG5CbHVlIEdyYWRpZW50XG4tLS1cbjxicj5cbjxkaXYgY2xhc3M9XCJibG9jay1sb29zZSBmbGV4LWxhcmdlLThcIiBzdHlsZT1cImhlaWdodDo3MHB4O2JhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIzIyNjJCQiwgI2MwZGRmMik7IGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCMyMjYyQkIsICNjMGRkZjIpO2JhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsIzIyNjJCQiwgI2MwZGRmMik7YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMjI2MkJCLCAjYzBkZGYyKTtcIj48L2Rpdj5cbjx1bCBjbGFzcz1cIm1lZGl1bS1ibG9jay1ncmlkLTNcIj5cbiAgICA8bGk+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOiMyMjYyQkI7IGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XCI+PGJyPjxicj48YnI+PGJyPjxicj48L2Rpdj5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4kYmx1ZTwvcHJlPlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiMyMjYyQkI8L3ByZT5cbiAgICA8L2xpPlxuICAgIDxsaT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnNcIiBzdHlsZT1cImJhY2tncm91bmQ6I2MwZGRmMjsgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcIj48YnI+PGJyPjxicj48YnI+PGJyPjwvZGl2PlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiRsaWdodC1ibHVlPC9wcmU+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+I2MwZGRmMjwvcHJlPlxuICAgIDwvbGk+XG48L3VsPlxuR3JlZW4gR3JhZGllbnRcbi0tLVxuPGJyPlxuPGRpdiBjbGFzcz1cImJsb2NrLWxvb3NlIGZsZXgtbGFyZ2UtOFwiIHN0eWxlPVwiaGVpZ2h0OjcwcHg7YmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwjMDM3YjZiLCAjYWRlOGUwKTsgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsIzAzN2I2YiwgI2FkZThlMCk7YmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwjMDM3YjZiLCAjYWRlOGUwKTtiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMwMzdiNmIsICNhZGU4ZTApO1wiPjwvZGl2PlxuPHVsIGNsYXNzPVwibWVkaXVtLWJsb2NrLWdyaWQtM1wiPlxuICAgIDxsaT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnNcIiBzdHlsZT1cImJhY2tncm91bmQ6IzAzN2I2YjsgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcIj48YnI+PGJyPjxicj48YnI+PGJyPjwvZGl2PlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiRncmVlbi1mb3Jlc3Q8L3ByZT5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4jMDM3YjZiPC9wcmU+XG4gICAgPC9saT5cbiAgICA8bGk+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOiNhZGU4ZTA7IGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XCI+PGJyPjxicj48YnI+PGJyPjxicj48L2Rpdj5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4kZ3JlZW4tc2VhLWZvYW08L3ByZT5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4jYWRlOGUwPC9wcmU+XG4gICAgPC9saT5cbjwvdWw+XG5PcmFuZ2UgR3JhZGllbnRcbi0tLVxuPGJyPlxuPGRpdiBjbGFzcz1cImJsb2NrLWxvb3NlIGZsZXgtbGFyZ2UtOFwiIHN0eWxlPVwiaGVpZ2h0OjcwcHg7YmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwjRTM4RDEzLCAjRkZGNUU1KTsgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsI0UzOEQxMywgI0ZGRjVFNSk7YmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwjRTM4RDEzLCAjRkZGNUU1KTtiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsI0UzOEQxMywgI0ZGRjVFNSk7XCI+PC9kaXY+XG48dWwgY2xhc3M9XCJtZWRpdW0tYmxvY2stZ3JpZC0zXCI+XG4gICAgPGxpPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGwtMTIgY29sdW1uc1wiIHN0eWxlPVwiYmFja2dyb3VuZDojRTM4RDEzOyBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1wiPjxicj48YnI+PGJyPjxicj48YnI+PC9kaXY+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+JG9yYW5nZS1kYXJrPC9wcmU+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+I0UzOEQxMzwvcHJlPlxuICAgIDwvbGk+XG4gICAgPGxpPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGwtMTIgY29sdW1uc1wiIHN0eWxlPVwiYmFja2dyb3VuZDojRkZGNUU1OyBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1wiPjxicj48YnI+PGJyPjxicj48YnI+PC9kaXY+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+JGJhY2tncm91bmQteWVsbG93PC9wcmU+XG4gICAgICAgIDxwcmUgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zIHRleHQtY2VudGVyXCI+I0ZGRjVFNTwvcHJlPlxuICAgIDwvbGk+XG48L3VsPlxuUmVkIEdyYWRpZW50XG4tLS1cbjxicj5cbjxkaXYgY2xhc3M9XCJibG9jay1sb29zZSBmbGV4LWxhcmdlLThcIiBzdHlsZT1cImhlaWdodDo3MHB4O2JhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIzhkMGMwNCwgI0YwNkU2NSk7IGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCM4ZDBjMDQsICNGMDZFNjUpO2JhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsIzhkMGMwNCwgI0YwNkU2NSk7YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCM4ZDBjMDQsICNGMDZFNjUpO1wiPjwvZGl2PlxuPHVsIGNsYXNzPVwibWVkaXVtLWJsb2NrLWdyaWQtM1wiPlxuICAgIDxsaT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnNcIiBzdHlsZT1cImJhY2tncm91bmQ6IzhkMGMwNDsgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcIj48YnI+PGJyPjxicj48YnI+PGJyPjwvZGl2PlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiRyZWQtYnJpY2s8L3ByZT5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4jOGQwYzA0PC9wcmU+XG4gICAgPC9saT5cbiAgICA8bGk+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC0xMiBjb2x1bW5zXCIgc3R5bGU9XCJiYWNrZ3JvdW5kOiNGMDZFNjU7IGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XCI+PGJyPjxicj48YnI+PGJyPjxicj48L2Rpdj5cbiAgICAgICAgPHByZSBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnMgdGV4dC1jZW50ZXJcIj4kcmVkLWNvbjwvcHJlPlxuICAgICAgICA8cHJlIGNsYXNzPVwic21hbGwtMTIgY29sdW1ucyB0ZXh0LWNlbnRlclwiPiNGMDZFNjU8L3ByZT5cbiAgICA8L2xpPlxuPC91bD5cblxuYGBgc2Fzc19leGFtcGxlXG5AcmVmLWRvYyBHbG9iYWxcbi8vIFdlIHVzZSB0aGVzZSB0byBzaG93IHBlcmNlbnRhZ2UgbWF0Y2ggaW4gVVNOIFJhbmtpbmdzIHNjb3JlIGluIF9sYWJlbC5zY3NzXG4kcGVyY2VudC0yNS1jb2xvcjogJG9yYW5nZS1kYXJrO1xuJHBlcmNlbnQtNTAtY29sb3I6ICR5ZWxsb3c7XG4kcGVyY2VudC03NS1jb2xvcjogJGdyZWVuLWRhcms7XG4kcGVyY2VudC0xMDAtY29sb3I6ICRncmVlbi1saWdodDtcblxuLy8gQWQgY29sb3JzXG4kYnJhbmRmdXNlLXllbGxvdzogI2ZmYzYxMTtcblxuYGBgXG4qL1xuXG4vKmRvY1xuLS0tXG50aXRsZTogQmFja2dyb3VuZCBDb2xvcnNcbm5hbWU6IGItY29sb3JzXG5jYXRlZ29yeTogQ29sb3JzIC0gQ29sb3JzXG5zZWxlY3RvcnM6XG4gICAgLSAuamV0LWJsYWNrXG4gICAgLSAuc29mdC1ibGFja1xuICAgIC0gLnNpbHZlci1ncmF5XG4gICAgLSAuc21va2UtZ3JheVxuICAgIC0gLnNtb2tlLWZvci1zbWFsbC1vbmx5XG4gICAgLSAud2hpdGVcbiAgICAtIC50cmFuc3BhcmVudFxuICAgIC0gLmJnLWlyb25cbiAgICAtIC5iZy1nYWluc2Jvcm9cbi0tLVxuXG5XZSBhcmUgdXNpbmcgY29sb3IgY2xhc3MgbmFtZXMgdG8gc3BlY2lmeSB0aGF0IHRoZSBiYWNrZ3JvdW5kIGNvbG9yIGFuZCBmb250IGNvbG9ycyB3aWxsIGJlIHNldCB0byBhIHBhcnRpY3VsYXIgY29sb3Igc2NoZW1lOlxuXG5gLmpldC1ibGFja2AsIGAuc29mdC1ibGFja2AsIGAudHJhbnNwYXJlbnRgLCBgLndoaXRlYCwgYC5zbW9rZS1ncmF5YCwgYC5iZy1pcm9uYCwgYC5iZy1ibHVlYCwgYC5iZy1zdGVlbC1ibHVlLWxpZ2h0YCwgYGJnLWdhaW5zYm9yb2BcbiAqL1xuLmJnLWdhaW5zYm9ybyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGdhaW5zYm9ybztcbn1cblxuLmJnLWlyb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpcm9uO1xufVxuXG4uYmctYmx1ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG59XG5cbi5iZy1ibHVlLWRhcmsge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlLWRhcms7XG59XG5cbi5iZy1zdGVlbC1ibHVlLWxpZ2h0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3RlZWwtYmx1ZS1saWdodDtcbn1cblxuLmJnLWJhY2tncm91bmQtYmx1ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtYmx1ZTtcbn1cblxuLmJnLWxpbmstYmx1ZS1kYXJrIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGluay1ibHVlLWRhcms7XG59XG5cbkBtaXhpbiBiYWNrZ3JvdW5kLWNvbG9yKCRuYW1lKSB7XG4gICAgZGl2LiN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgQGVhY2ggJGJyZWFrcG9pbnQsICR2YXIgaW4gJGJyZWFrcG9pbnQtdmFyaWFibGVzIHtcbiAgICAgICAgZGl2LiN7JG5hbWV9LWZvci0jeyRicmVha3BvaW50fSB7XG4gICAgICAgICAgICBAbWVkaWEgI3skdmFyfSB7XG4gICAgICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgIH1cbn1cblxuZGl2LmpldC1ibGFjayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGpldDtcbn1cblxuZGl2LnNvZnQtYmxhY2sge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzb2Z0LWJsYWNrO1xufVxuXG5kaXYuc2lsdmVyLWdyYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzaWx2ZXItZ3JheTtcbn1cblxuLmJnLXNtb2tlLWdyYXksIC5zbW9rZS1ncmF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc21va2UtZ3JheTtcbn1cblxuQGluY2x1ZGUgYmFja2dyb3VuZC1jb2xvcignc21va2UnKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNtb2tlO1xufVxuXG5AaW5jbHVkZSBiYWNrZ3JvdW5kLWNvbG9yKCdiYWNrZ3JvdW5kLWJsdWUnKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtYmx1ZTtcbn1cblxuQGluY2x1ZGUgYmFja2dyb3VuZC1jb2xvcignZ3JlZW4tcHJvJykge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRncmVlbi1wcm87XG59XG5cbkBpbmNsdWRlIGJhY2tncm91bmQtY29sb3IoJ2dyZWVuLWZvcmVzdCcpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW4tZm9yZXN0O1xufVxuXG5AaW5jbHVkZSBiYWNrZ3JvdW5kLWNvbG9yKCdvcmFuZ2UtbGlnaHQnKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYW5nZS1saWdodDtcbn1cblxuQGluY2x1ZGUgYmFja2dyb3VuZC1jb2xvcignb3JhbmdlLWRhcmsnKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYW5nZS1kYXJrO1xufVxuXG5AaW5jbHVkZSBiYWNrZ3JvdW5kLWNvbG9yKCdyZWQnKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHJlZDtcbn1cblxuLmJsdWUtbGlnaHQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlLWxpZ2h0O1xufVxuXG5kaXYud2hpdGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbn1cblxuZGl2LnRyYW5zcGFyZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuZGl2Lm1pc3Qge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRtaXN0O1xufVxuXG4uaW5oZXJpdC1iYWNrZ3JvdW5kLWNvbG9yIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xufVxuXG4uYmFja2dyb3VuZC1yZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRyZWQ7XG59XG5cbi5iYWNrZ3JvdW5kLXdoaXRlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG59XG5cbi8qXG4gICAgR2l2ZXMgYSBsaXR0bGUgZXh0cmEgcm9vbSBhYm92ZSBoZWFkaW5nIGl0ZW1zIHRoYXQgbmVlZCB0byBiZSBoYXNoIGxpbmsgdGFyZ2V0cy5cbiAgICBQcmV2ZW50cyB0aGUgdXN1YWwgc3RpY2t5IGNvbnRlbnQgZnJvbSBjb3ZlcmluZyB0aGUgaXRlbSB0aGF0IHlvdSdyZSBqdW1waW5nIHRvLlxuICovXG4udG9jLXRhcmdldDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDgwcHg7XG4gICAgbWFyZ2luLXRvcDogLTgwcHg7XG59XG5cbi5jdXJzb3ItcG9pbnRlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuIiwiLypkb2Ncbi0tLVxudGl0bGU6IE1hcmdpbiBIZWxwZXJzIChibG9jaylcbm5hbWU6IGEtbWFyZ2luLWhlbHBlcnNcbmNhdGVnb3J5OiBMYXlvdXQgLSBMYXlvdXQgSGVscGVyc1xuc2VsZWN0b3JzOlxuICAgIC0gLmJsb2NrLWZsdXNoXG4gICAgLSAuYmxvY2stdGlnaHRlc3RcbiAgICAtIC5ibG9jay10aWdodGVyXG4gICAgLSAuYmxvY2stdGlnaHRcbiAgICAtIC5ibG9jay1ub3JtYWxcbiAgICAtIC5ibG9jay1sb29zZVxuICAgIC0gLmJsb2NrLWxvb3NlclxuICAgIC0gLmJsb2NrLWxvb3Nlc3RcbnNlbGVjdG9yX3R5cGU6IGxheW91dFxuLS0tXG5cbldlIGhhdmUgdGhlIGZvbGxvd2luZyBgLmJsb2NrLSpgIGhlbHBlciBjbGFzc2VzIHRvIGFkZCBtYXJnaW4gdG8gdGhlIGJvdHRvbSBvZiBhbnkgZWxlbWVudC4gS2VlcCBpbiBtaW5kIHRoYXQgdGhpcyBkb2VzXG5ub3QgbWVhbiB0aGF0IGFwcGx5aW5nIHRoaXMgY2xhc3Mgd2lsbCByZXN1bHQgaW4gdGhlIGV4YWN0IHNwZWNpZmllZCB3aGl0ZS1zcGFjZS4gSXQgY291bGQgZGVwZW5kIG9uIHRoZSBib3R0b21cbndoaXRlLXNwYWNlIG9mIHRoZSBsYXN0IGlubmVyIGVsZW1lbnQgb2YgdGhlIGVsZW1lbnQgdGhpcyBpcyBhcHBsaWVkIHRvLiBPciwgaXQgY291bGQgZGVwZW5kIG9uIHRoZSBuYXR1cmUgKGUuZy4gYW5cbmVsZW1lbnQncyBsaW5lLWhlaWdodCkgb2YgdGhlIGVsZW1lbnQgZGlyZWN0bHkgYmVsb3cuXG5cbnwgLmJsb2NrLSogaGVscGVyIGNsYXNzZXMgfCBtYXJnaW4tYm90dG9tIHxcbnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tfFxufCBgLmJsb2NrLWZsdXNoYCAgICAgICAgIHwgcmVtLWNhbGMoMCkgICB8XG58IGAuYmxvY2stdGlnaHRlc3RgICAgICAgfCByZW0tY2FsYygyKSAgIHxcbnwgYC5ibG9jay10aWdodGVyYCAgICAgICB8IHJlbS1jYWxjKDQpICAgfFxufCBgLmJsb2NrLXRpZ2h0YCAgICAgICAgIHwgcmVtLWNhbGMoOCkgICB8XG58IGAuYmxvY2stbm9ybWFsYCAgICAgICAgfCByZW0tY2FsYygxNikgIHxcbnwgYC5ibG9jay1sb29zZWAgICAgICAgICB8IHJlbS1jYWxjKDI0KSAgfFxufCBgLmJsb2NrLWxvb3NlcmAgICAgICAgIHwgcmVtLWNhbGMoMzIpICB8XG58IGAuYmxvY2stbG9vc2VzdGAgICAgICAgfCByZW0tY2FsYyg0OCkgIHxcblxuYGBgaHRtbF9leGFtcGxlXG48ZGl2IGNsYXNzPVwicGFuZWwgYmxvY2stZmx1c2hcIj5cbiAgICA8cHJlPmNsYXNzPVwiYmxvY2stZmx1c2hcIjwvcHJlPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicGFuZWwgYmxvY2stdGlnaHRlc3RcIj5cbiAgICA8cHJlPmNsYXNzPVwiYmxvY2stdGlnaHRlc3RcIjwvcHJlPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicGFuZWwgYmxvY2stdGlnaHRlclwiPlxuICAgIDxwcmU+Y2xhc3M9XCJibG9jay10aWdodGVyXCI8L3ByZT5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInBhbmVsIGJsb2NrLXRpZ2h0XCI+XG4gICAgPHByZT5jbGFzcz1cImJsb2NrLXRpZ2h0XCI8L3ByZT5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInBhbmVsIGJsb2NrLW5vcm1hbFwiPlxuICAgIDxwcmU+Y2xhc3M9XCJibG9jay1ub3JtYWxcIjwvcHJlPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicGFuZWwgYmxvY2stbG9vc2VcIj5cbiAgICA8cHJlPmNsYXNzPVwiYmxvY2stbG9vc2VzdFwiPC9wcmU+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJwYW5lbCBibG9jay1sb29zZXJcIj5cbiAgICA8cHJlPmNsYXNzPVwiYmxvY2stbG9vc2VyXCI8L3ByZT5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInBhbmVsIGJsb2NrLWxvb3Nlc3RcIj5cbiAgICA8cHJlPmNsYXNzPVwiYmxvY2stbG9vc2VzdFwiPC9wcmU+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJwYW5lbFwiPlxuICAgIFRoaXMgaXMganVzdCBoZXJlIHRvIHZpc3VhbGx5IHJlZmVyZW5jZSB0aGUgd2hpdGVzcGFjZSBhYm92ZVxuPC9kaXY+XG5gYGBcblxuXG5cbiMjIyMgUmVzcG9uc2l2ZSBNb2RpZmllcnNcblxuSW4gYWRkaXRpb24sIHRoZXNlIGAuYmxvY2stKmAgY2FuIGJlIGlzb2xhdGVkIHRvIHRoZVxuW2JyZWFrcG9pbnQocykgdmFyaWFibGVzXSgvc3RydWN0dXJlXy1fYnJlYWtwb2ludHMuaHRtbCNhLW1lZGlhLXF1ZXJpZXMpXG53ZSBoYXZlIGF0IG91ciBkaXNwb3NhbC4gVXNlIHRoZSBmb2xsb3dpbmcgY2xhc3MgbmFtZSBwYXR0ZXJuOlxuXG5gLmJsb2NrLXtmbHVzaCwgdGlnaHQsIHRpZ2h0ZXIsIHRpZ2h0ZXN0LCBub3JtYWwsIGxvb3NlLCBsb29zZXIgb3IgbG9vc2VzdH0tZm9yLXtzbWFsbC1vbmx5LCBtZWRpdW0tdXAsIG1lZGl1bS1vbmx5IG9yIGxhcmdlLXVwfWBcblxuSGVyZSBhcmUgb3B0aW9ucyBmb3IgYXBwbHlpbmcgYC5ibG9jay10aWdodGAgc2VsZWN0aXZlbHkgdG8gYnJlYWtwb2ludHM6XG5cbnwgLmJsb2NrLXRpZ2h0LWZvci0qIGV4YW1wbGVzICAgICAgICAgICAgfFxufC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG58IGAuYmxvY2stdGlnaHQtZm9yLXNtYWxsLW9ubHlgICAgICAgICAgIHxcbnwgYC5ibG9jay10aWdodC1mb3ItbWVkaXVtLXVwYCAgICAgICAgICAgfFxufCBgLmJsb2NrLXRpZ2h0LWZvci1tZWRpdW0tb25seWAgICAgICAgICB8XG58IGAuYmxvY2stdGlnaHQtZm9yLWxhcmdlLXVwYCAgICAgICAgICAgIHxcblxuU28sIHlvdSBkbyBzb21ldGhpbmcgbGlrZSB0aGUgZm9sbG93aW5nIHJpZGljdWxvdXMgc2NlbmFyaW8gd2hpY2ggaGFzYC5ibG9jay1mbHVzaGBcbmFwcGxpZWQgdG8gc21hbGwgdmlld3BvcnRzLCBgLmJsb2NrLXRpZ2h0ZXN0YCBhcHBsaWVkIHRvIG1lZGl1bSB2aWV3cG9ydHMgYW5kXG5gLmJsb2NrLWxvb3Nlc3RgIGFwcGxpZWQgdG8gdGhlIHRoZSBsYXJnZSB2aWV3cG9ydHMuIFRyeSBpdC4gT24gbW9iaWxlLCB0aGUgcGFuZWxzIHNob3VsZCBiZSBmbHVzaCwgYXQgbWVkaXVtIGl0IHNob3VsZFxuaGF2ZSBhIHRpbnkgZ2FwLCBhbmQgb24gbGFyZ2UgdGhlIGxvb3Nlc3QgZ2FwLlxuXG5gYGBodG1sX2V4YW1wbGVcbjxkaXYgY2xhc3M9XCJwYW5lbCBibG9jay1mbHVzaCBibG9jay10aWdodGVzdC1mb3ItbWVkaXVtLXVwIGJsb2NrLWxvb3Nlc3QtZm9yLWxhcmdlLXVwXCI+XG4gICAgPHByZT5jbGFzcz1cImJsb2NrLWZsdXNoIGJsb2NrLXRpZ2h0ZXN0LWZvci1tZWRpdW0tdXAgYmxvY2stbG9vc2VzdC1mb3ItbGFyZ2UtdXBcIjwvcHJlPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicGFuZWxcIj5cbiAgICBUaGlzIGlzIGp1c3QgaGVyZSB0byB2aXN1YWxseSByZWZlcmVuY2UgdGhlIHdoaXRlc3BhY2UgYWJvdmVcbiA8L2Rpdj5cbmBgYFxuXG5cblxuIyMjIyBNaXhpblxuXG5Zb3Ugc2hvdWxkIGFsc28gYmUgYWJsZSB0byBpbXBsZW1lbnQgdmVydGljYWwgc3BhY2luZyBhcyBhIG1peGluIChzZWUgdGhlIHNhc3MgZXhhbXBsZSkuXG5JdCBjYW4gdGFrZSAzIGFyZ3VtZW50cy5cblxuMS4gc3BhY2luZyBrZXl3b3JkIChmbHVzaCB0aHJ1IGxvb3Nlc3QpXG4yLiBib29sZWFuIGZvciBhZGRpbmcgIWltcG9ydGFudCAqKG9wdGlvbmFsKSpcbjMuIGJyZWFrcG9pbnQgdmFyaWFibGUocykgKGNvbW1hIHNlcGFyYXRlZCkgdG8gYXBwbHkgdG8gc3BlY2lmaWMgYnJlYWtwb2ludChzKSAqKG9wdGlvbmFsKSpcblxuRm9yIGV4YW1wbGUsIHRoZSBwYW5lbCBiZWxvdyBzaG91bGQgYmUgKmZsdXNoIGZvciBsYXJnZSB1cCogd2l0aG91dCB1c2luZyBwcmVzZW50YXRpb25hbCBjbGFzc2VzIGluIHlvdXIgaHRtbC5cblxuYGBgIGh0bWxfZXhhbXBsZVxuPGRpdiBjbGFzcz1cImV4YW1wbGUtdmVydGljYWwtc3BhY2VyXCI+XG4gICAgQGluY2x1ZGUgYmxvY2soJ2ZsdXNoJywgdHJ1ZSwgJGxhcmdlLXVwKVxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicGFuZWxcIj5cbiAgICBUaGlzIGlzIGp1c3QgaGVyZSB0byB2aXN1YWxseSByZWZlcmVuY2UgdGhlIHdoaXRlc3BhY2UgYWJvdmVcbiA8L2Rpdj5cbmBgYFxuXG5gYGAgc2Fzc19leGFtcGxlXG4uZXhhbXBsZS12ZXJ0aWNhbC1zcGFjZXIge1xuICAgIEBpbmNsdWRlIHBhbmVsKCk7XG4gICAgQGluY2x1ZGUgYmxvY2soJ2ZsdXNoJywgdHJ1ZSwgJGxhcmdlLXVwKVxufVxuXG4uYmxvY2stY2VudGVyIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5gYGBcbiovXG5cbkBlYWNoICRuYW1lLFxuJHNpemUgaW4gJGJsb2NrLXNpemVzIHtcbiAgICAuYmxvY2stI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBibG9jaygkbmFtZSwgdHJ1ZSk7XG4gICAgfVxufVxuXG5AZWFjaCAkYnJlYWtwb2ludCxcbiR2YXIgaW4gJGJyZWFrcG9pbnQtdmFyaWFibGVzIHtcbiAgICBAZWFjaCAkc2l6ZSxcbiAgICAkYmxvY2sgaW4gJGJsb2NrLXNpemVzIHtcbiAgICAgICAgLmJsb2NrLSN7JHNpemV9LWZvci0jeyRicmVha3BvaW50fSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBibG9jaygkc2l6ZSwgdHJ1ZSwgJHZhcik7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5ibG9jay1jZW50ZXIge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLmJsb2NrLWNlbnRlci1pZnJhbWUgPiBpZnJhbWUge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmV4YW1wbGUtdmVydGljYWwtc3BhY2VyIHtcbiAgICBAaW5jbHVkZSBwYW5lbCgpO1xuICAgIEBpbmNsdWRlIGJsb2NrKCdmbHVzaCcsIHRydWUsICRsYXJnZS11cClcbn1cblxuXG4vKmRvY1xuLS0tXG50aXRsZTogUGFkZGluZyBIZWxwZXJzIChwYWQpXG5uYW1lOiBiLXBhZGRpbmctaGVscGVycy1wYWRcbmNhdGVnb3J5OiBMYXlvdXQgLSBMYXlvdXQgSGVscGVyc1xuc2VsZWN0b3JzOlxuICAgIC0gLnBhZC1mbHVzaFxuICAgIC0gLnBhZC10aWdodGVzdFxuICAgIC0gLnBhZC10aWdodGVyXG4gICAgLSAucGFkLXRpZ2h0XG4gICAgLSAucGFkLW5vcm1hbFxuICAgIC0gLnBhZC1sb29zZVxuICAgIC0gLnBhZC1sb29zZXJcbiAgICAtIC5wYWQtbG9vc2VzdFxuc2VsZWN0b3JfdHlwZTogbGF5b3V0XG4tLS1cblxuYGBgaHRtbF9leGFtcGxlP2tpdGNoZW4tc2luaz1mYWxzZVxuPGRpdiBjbGFzcz1cInBhbmVsXCI+XG4gICAgPHA+PHNwYW4gY2xhc3M9XCJoZWFkaW5nLW5vcm1hbCB0ZXh0LWFsZXJ0IHRleHQtc3Ryb25nZXJcIj5ERVBSRUNBVEVEOiA8L3NwYW4+XG4gICAgLnBhZC0qIGhhcyBiZWVuIHJlcGxhY2VkIGJ5IHRoZSBwYWRkaW5nLSogY2xhc3NlczwvcD5cbjwvZGl2PlxuYGBgXG5NYXJnaW4gaXMgb3VyIGRlZmF1bHQgZm9yIHNwYWNpbmcsIGJ1dCBpZiB5b3UgbXVzdCBvdmVycmlkZSB0aGUgZGVmYXVsdCBwYWRkaW5nXG5vZiBhbiBvYmplY3QsIHNvIHRoYXQgdGhlIGNvbXBvbmVudCBoYXMgbm8gdHJhaWxpbmcgd2hpdGUgc3BhY2UsIHRoZW4gdXNlIHRoZVxucGFkIGNsYXNzZXMuXG5cbldlIGhhdmUgdGhlIGZvbGxvd2luZyBgLnBhZC0qYCBoZWxwZXIgY2xhc3NlcyB0byBhZGQgcGFkZGluZyB0byB0aGUgYm90dG9tIG9mIGFueSBlbGVtZW50LiBLZWVwIGluIG1pbmQgdGhhdCB0aGlzIGRvZXNcbm5vdCBtZWFuIHRoYXQgYXBwbHlpbmcgdGhpcyBjbGFzcyB3aWxsIHJlc3VsdCBpbiB0aGUgZXhhY3Qgc3BlY2lmaWVkIHdoaXRlLXNwYWNlLiBJdCBjb3VsZCBkZXBlbmQgb24gdGhlIGJvdHRvbVxud2hpdGUtc3BhY2Ugb2YgdGhlIGxhc3QgaW5uZXIgZWxlbWVudCBvZiB0aGUgZWxlbWVudCB0aGlzIGlzIGFwcGxpZWQgdG8uIE9yLCBpdCBjb3VsZCBkZXBlbmQgb24gdGhlIG5hdHVyZSAoZS5nLiBhblxuZWxlbWVudCdzIGxpbmUtaGVpZ2h0KSBvZiB0aGUgZWxlbWVudCBkaXJlY3RseSBiZWxvdy5cblxufCAucGFkLSogaGVscGVyIGNsYXNzZXMgfCBtYXJnaW4tYm90dG9tIHxcbnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tfFxufCBgLnBhZC1mbHVzaGAgICAgICAgICB8IHJlbS1jYWxjKDApICAgfFxufCBgLnBhZC10aWdodGVzdGAgICAgICB8IHJlbS1jYWxjKDIpICAgfFxufCBgLnBhZC10aWdodGVyYCAgICAgICB8IHJlbS1jYWxjKDQpICAgfFxufCBgLnBhZC10aWdodGAgICAgICAgICB8IHJlbS1jYWxjKDgpICAgfFxufCBgLnBhZC1ub3JtYWxgICAgICAgICB8IHJlbS1jYWxjKDE2KSAgfFxufCBgLnBhZC1sb29zZWAgICAgICAgICB8IHJlbS1jYWxjKDI0KSAgfFxufCBgLnBhZC1sb29zZXJgICAgICAgICB8IHJlbS1jYWxjKDMyKSAgfFxufCBgLnBhZC1sb29zZXN0YCAgICAgICB8IHJlbS1jYWxjKDQ4KSAgfFxuXG5gYGBodG1sX2V4YW1wbGU/a2l0Y2hlbi1zaW5rPWZhbHNlXG48ZGl2IGNsYXNzPVwicGFuZWwgcGFkLWZsdXNoXCI+XG4gICAgPHByZT5jbGFzcz1cInBhZC1mbHVzaFwiPC9wcmU+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJwYW5lbCBwYWQtdGlnaHRlc3RcIj5cbiAgICA8cHJlPmNsYXNzPVwicGFkLXRpZ2h0ZXN0XCI8L3ByZT5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInBhbmVsIHBhZC10aWdodGVyXCI+XG4gICAgPHByZT5jbGFzcz1cInBhZC10aWdodGVyXCI8L3ByZT5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInBhbmVsIHBhZC10aWdodFwiPlxuICAgIDxwcmU+Y2xhc3M9XCJwYWQtdGlnaHRcIjwvcHJlPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicGFuZWwgcGFkLW5vcm1hbFwiPlxuICAgIDxwcmU+Y2xhc3M9XCJwYWQtbm9ybWFsXCI8L3ByZT5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInBhbmVsIHBhZC1sb29zZVwiPlxuICAgIDxwcmU+Y2xhc3M9XCJwYWQtbG9vc2VzdFwiPC9wcmU+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJwYW5lbCBwYWQtbG9vc2VyXCI+XG4gICAgPHByZT5jbGFzcz1cInBhZC1sb29zZXJcIjwvcHJlPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicGFuZWwgcGFkLWxvb3Nlc3RcIj5cbiAgICA8cHJlPmNsYXNzPVwicGFkLWxvb3Nlc3RcIjwvcHJlPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicGFuZWxcIj5cbiAgICBUaGlzIGlzIGp1c3QgaGVyZSB0byB2aXN1YWxseSByZWZlcmVuY2UgdGhlIHdoaXRlc3BhY2UgYWJvdmVcbjwvZGl2PlxuYGBgXG5cbiMjIyMgUmVzcG9uc2l2ZSBoZWxwZXJzXG5cbkluIGFkZGl0aW9uLCB0aGVzZSBgLnBhZC0qYCBjYW4gYmUgaXNvbGF0ZWQgdG8gdGhlXG5bYnJlYWtwb2ludChzKSB2YXJpYWJsZXNdKC9zdHJ1Y3R1cmVfLV9icmVha3BvaW50cy5odG1sI2EtbWVkaWEtcXVlcmllcylcbndlIGhhdmUgYXQgb3VyIGRpc3Bvc2FsLiBVc2UgdGhlIGZvbGxvd2luZyBjbGFzcyBuYW1lIHBhdHRlcm46XG5cbmAucGFkLXtmbHVzaCwgdGlnaHQsIHRpZ2h0ZXIsIHRpZ2h0ZXN0LCBub3JtYWwsIGxvb3NlLCBsb29zZXIgb3IgbG9vc2VzdH0tZm9yLXtzbWFsbC1vbmx5LCBtZWRpdW0tdXAsIG1lZGl1bS1vbmx5IG9yIGxhcmdlLXVwfWBcblxuSGVyZSBhcmUgb3B0aW9ucyBmb3IgYXBwbHlpbmcgYC5wYWQtdGlnaHRgIHNlbGVjdGl2ZWx5IHRvIGJyZWFrcG9pbnRzOlxuXG58IC5wYWQtdGlnaHQtZm9yLSogZXhhbXBsZXMgICAgICAgICAgICB8XG58LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXxcbnwgYC5wYWQtdGlnaHQtZm9yLXNtYWxsLW9ubHlgICAgICAgICAgIHxcbnwgYC5wYWQtdGlnaHQtZm9yLW1lZGl1bS11cGAgICAgICAgICAgIHxcbnwgYC5wYWQtdGlnaHQtZm9yLW1lZGl1bS1vbmx5YCAgICAgICAgIHxcbnwgYC5wYWQtdGlnaHQtZm9yLWxhcmdlLXVwYCAgICAgICAgICAgIHxcblxuU28sIHlvdSBkbyBzb21ldGhpbmcgbGlrZSB0aGUgZm9sbG93aW5nIHJpZGljdWxvdXMgc2NlbmFyaW8gd2hpY2ggaGFzIGAucGFkLWZsdXNoYFxuYXBwbGllZCB0byBzbWFsbCB2aWV3cG9ydHMsIGAucGFkLXRpZ2h0ZXN0YCBhcHBsaWVkIHRvIG1lZGl1bSB2aWV3cG9ydHMgYW5kXG5gLnBhZC1sb29zZXN0YCBhcHBsaWVkIHRvIHRoZSB0aGUgbGFyZ2Ugdmlld3BvcnRzLiBUcnkgaXQuIE9uIG1vYmlsZSwgdGhlIHBhbmVscyBzaG91bGQgYmUgZmx1c2gsIGF0IG1lZGl1bSBpdCBzaG91bGRcbmhhdmUgYSB0aW55IGdhcCwgYW5kIG9uIGxhcmdlIHRoZSBsb29zZXN0IGdhcC5cblxuYGBgaHRtbF9leGFtcGxlXG48ZGl2IGNsYXNzPVwicGFuZWwgcGFkLWZsdXNoIHBhZC10aWdodGVzdC1mb3ItbWVkaXVtLXVwIHBhZC1sb29zZXN0LWZvci1sYXJnZS11cFwiPlxuICAgIGNoZWNrIG91dCB0aGUgc3BhY2UgYmVsb3cgdGhpcyB0ZXh0XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJwYW5lbFwiPlxuICAgIFRoaXMgaXMganVzdCBoZXJlIHRvIHZpc3VhbGx5IHJlZmVyZW5jZSB0aGUgd2hpdGVzcGFjZSBhYm92ZVxuIDwvZGl2PlxuYGBgXG4qL1xuXG5AZWFjaCAkbmFtZSxcbiRzaXplIGluICRibG9jay1zaXplcyB7XG4gICAgLnBhZC0jeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIHBhZCgkbmFtZSwgdHJ1ZSk7XG4gICAgfVxufVxuXG5AZWFjaCAkYnJlYWtwb2ludCxcbiR2YXIgaW4gJGJyZWFrcG9pbnQtdmFyaWFibGVzIHtcbiAgICBAZWFjaCAkc2l6ZSxcbiAgICAkYmxvY2sgaW4gJGJsb2NrLXNpemVzIHtcbiAgICAgICAgLnBhZC0jeyRzaXplfS1mb3ItI3skYnJlYWtwb2ludH0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgcGFkKCRzaXplLCB0cnVlLCAkdmFyKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4vKmRvY1xuLS0tXG50aXRsZTogUGFkZGluZyBIZWxwZXJzIChwYWRkaW5nKVxubmFtZTogYi1wYWRkaW5nLWhlbHBlcnMtcGFkZGluZ1xuY2F0ZWdvcnk6IExheW91dCAtIExheW91dCBIZWxwZXJzXG5zZWxlY3RvcnM6XG4gICAgLSAucGFkZGluZy1sZWZ0LWZsdXNoXG4gICAgLSAucGFkZGluZy1sZWZ0LXRpZ2h0ZXN0XG4gICAgLSAucGFkZGluZy1sZWZ0LXRpZ2h0ZXJcbiAgICAtIC5wYWRkaW5nLWxlZnQtdGlnaHRcbiAgICAtIC5wYWRkaW5nLWxlZnQtbm9ybWFsXG4gICAgLSAucGFkZGluZy1sZWZ0LWxvb3NlXG4gICAgLSAucGFkZGluZy1sZWZ0LWxvb3NlclxuICAgIC0gLnBhZGRpbmctbGVmdC1sb29zZXN0XG4gICAgLSAucGFkZGluZy1yaWdodC1mbHVzaFxuICAgIC0gLnBhZGRpbmctcmlnaHQtdGlnaHRlc3RcbiAgICAtIC5wYWRkaW5nLXJpZ2h0LXRpZ2h0ZXJcbiAgICAtIC5wYWRkaW5nLXJpZ2h0LXRpZ2h0XG4gICAgLSAucGFkZGluZy1yaWdodC1ub3JtYWxcbiAgICAtIC5wYWRkaW5nLXJpZ2h0LWxvb3NlXG4gICAgLSAucGFkZGluZy1yaWdodC1sb29zZXJcbiAgICAtIC5wYWRkaW5nLXJpZ2h0LWxvb3Nlc3RcbiAgICAtIC5wYWRkaW5nLXRvcC1mbHVzaFxuICAgIC0gLnBhZGRpbmctdG9wLXRpZ2h0ZXN0XG4gICAgLSAucGFkZGluZy10b3AtdGlnaHRlclxuICAgIC0gLnBhZGRpbmctdG9wLXRpZ2h0XG4gICAgLSAucGFkZGluZy10b3Atbm9ybWFsXG4gICAgLSAucGFkZGluZy10b3AtbG9vc2VcbiAgICAtIC5wYWRkaW5nLXRvcC1sb29zZXJcbiAgICAtIC5wYWRkaW5nLXRvcC1sb29zZXN0XG4gICAgLSAucGFkZGluZy1ib3R0b20tZmx1c2hcbiAgICAtIC5wYWRkaW5nLWJvdHRvbS10aWdodGVzdFxuICAgIC0gLnBhZGRpbmctYm90dG9tLXRpZ2h0ZXJcbiAgICAtIC5wYWRkaW5nLWJvdHRvbS10aWdodFxuICAgIC0gLnBhZGRpbmctYm90dG9tLW5vcm1hbFxuICAgIC0gLnBhZGRpbmctYm90dG9tLWxvb3NlXG4gICAgLSAucGFkZGluZy1ib3R0b20tbG9vc2VyXG4gICAgLSAucGFkZGluZy1ib3R0b20tbG9vc2VzdFxuc2VsZWN0b3JfdHlwZTogbGF5b3V0XG4tLS1cblxufCAucGFkZGluZy0qIGhlbHBlciBjbGFzc2VzIHwgcGFkZGluZyB8XG58LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXxcbnwgYC5wYWRkaW5nLWZsdXNoYCAgICAgICAgICB8IHJlbS1jYWxjKDApICAgfFxufCBgLnBhZGRpbmctdGlnaHRlc3RgICAgICAgIHwgcmVtLWNhbGMoMikgICB8XG58IGAucGFkZGluZy10aWdodGVyYCAgICAgICAgfCByZW0tY2FsYyg0KSAgIHxcbnwgYC5wYWRkaW5nLXRpZ2h0YCAgICAgICAgICB8IHJlbS1jYWxjKDgpICAgfFxufCBgLnBhZGRpbmctbm9ybWFsYCAgICAgICAgIHwgcmVtLWNhbGMoMTYpICB8XG58IGAucGFkZGluZy1sb29zZWAgICAgICAgICAgfCByZW0tY2FsYygyNCkgIHxcbnwgYC5wYWRkaW5nLWxvb3NlcmAgICAgICAgICB8IHJlbS1jYWxjKDMyKSAgfFxufCBgLnBhZGRpbmctbG9vc2VzdGAgICAgICAgIHwgcmVtLWNhbGMoNDgpICB8XG5cbmBgYGh0bWxfZXhhbXBsZT9raXRjaGVuLXNpbms9dHJ1ZVxuPGRpdiBjbGFzcz1cImZsZXgtcm93XCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwtMyBwYW5lbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbCBwYW5lbCBjYWxsb3V0IHBhZGRpbmctbGVmdC1mbHVzaFwiPlxuICAgICAgICAgICAgPHByZT5wYWRkaW5nLWxlZnQtZmx1c2g8L3ByZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsIHBhbmVsIGNhbGxvdXQgcGFkZGluZy1sZWZ0LXRpZ2h0ZXN0XCI+XG4gICAgICAgICAgICA8cHJlPnBhZGRpbmctbGVmdC10aWdodGVzdDwvcHJlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwgcGFuZWwgY2FsbG91dCBwYWRkaW5nLWxlZnQtdGlnaHRlclwiPlxuICAgICAgICAgICAgPHByZT5wYWRkaW5nLWxlZnQtdGlnaHRlcjwvcHJlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwgcGFuZWwgY2FsbG91dCBwYWRkaW5nLWxlZnQtdGlnaHRcIj5cbiAgICAgICAgICAgIDxwcmU+cGFkZGluZy1sZWZ0LXRpZ2h0PC9wcmU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbCBwYW5lbCBjYWxsb3V0IHBhZGRpbmctbGVmdC1ub3JtYWxcIj5cbiAgICAgICAgICAgIDxwcmU+cGFkZGluZy1sZWZ0LW5vcm1hbDwvcHJlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwgcGFuZWwgY2FsbG91dCBwYWRkaW5nLWxlZnQtbG9vc2VcIj5cbiAgICAgICAgICAgIDxwcmU+cGFkZGluZy1sZWZ0LWxvb3NlPC9wcmU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbCBwYW5lbCBjYWxsb3V0IHBhZGRpbmctbGVmdC1sb29zZXJcIj5cbiAgICAgICAgICAgIDxwcmU+cGFkZGluZy1sZWZ0LWxvb3NlcjwvcHJlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwgcGFuZWwgY2FsbG91dCBwYWRkaW5nLWxlZnQtbG9vc2VzdFwiPlxuICAgICAgICAgICAgPHByZT5wYWRkaW5nLWxlZnQtbG9vc2VzdDwvcHJlPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbC0zIHBhbmVsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsIHBhbmVsIGNhbGxvdXQgcGFkZGluZy1yaWdodC1mbHVzaFwiPlxuICAgICAgICAgICAgPHByZSBjbGFzcz1cInJpZ2h0XCI+cGFkZGluZy1yaWdodC1mbHVzaDwvcHJlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwgcGFuZWwgY2FsbG91dCBwYWRkaW5nLXJpZ2h0LXRpZ2h0ZXN0XCI+XG4gICAgICAgICAgICA8cHJlIGNsYXNzPVwicmlnaHRcIj5wYWRkaW5nLXJpZ2h0LXRpZ2h0ZXN0PC9wcmU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbCBwYW5lbCBjYWxsb3V0IHBhZGRpbmctcmlnaHQtdGlnaHRlclwiPlxuICAgICAgICAgICAgPHByZSBjbGFzcz1cInJpZ2h0XCI+cGFkZGluZy1yaWdodC10aWdodGVyPC9wcmU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbCBwYW5lbCBjYWxsb3V0IHBhZGRpbmctcmlnaHQtdGlnaHRcIj5cbiAgICAgICAgICAgIDxwcmUgY2xhc3M9XCJyaWdodFwiPnBhZGRpbmctcmlnaHQtdGlnaHQ8L3ByZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsIHBhbmVsIGNhbGxvdXQgcGFkZGluZy1yaWdodC1ub3JtYWxcIj5cbiAgICAgICAgICAgIDxwcmUgY2xhc3M9XCJyaWdodFwiPnBhZGRpbmctcmlnaHQtbm9ybWFsPC9wcmU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbCBwYW5lbCBjYWxsb3V0IHBhZGRpbmctcmlnaHQtbG9vc2VcIj5cbiAgICAgICAgICAgIDxwcmUgY2xhc3M9XCJyaWdodFwiPnBhZGRpbmctcmlnaHQtbG9vc2U8L3ByZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsIHBhbmVsIGNhbGxvdXQgcGFkZGluZy1yaWdodC1sb29zZXJcIj5cbiAgICAgICAgICAgIDxwcmUgY2xhc3M9XCJyaWdodFwiPnBhZGRpbmctcmlnaHQtbG9vc2VyPC9wcmU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbCBwYW5lbCBjYWxsb3V0IHBhZGRpbmctcmlnaHQtbG9vc2VzdFwiPlxuICAgICAgICAgICAgPHByZSBjbGFzcz1cInJpZ2h0XCI+cGFkZGluZy1yaWdodC1sb29zZXN0PC9wcmU+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsLTMgcGFuZWxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwgcGFuZWwgY2FsbG91dCBwYWRkaW5nLXRvcC1mbHVzaFwiPlxuICAgICAgICAgICAgPHByZT5wYWRkaW5nLXRvcC1mbHVzaDwvcHJlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwgcGFuZWwgY2FsbG91dCBwYWRkaW5nLXRvcC10aWdodGVzdFwiPlxuICAgICAgICAgICAgPHByZT5wYWRkaW5nLXRvcC10aWdodGVzdDwvcHJlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwgcGFuZWwgY2FsbG91dCBwYWRkaW5nLXRvcC10aWdodGVyXCI+XG4gICAgICAgICAgICA8cHJlPnBhZGRpbmctdG9wLXRpZ2h0ZXI8L3ByZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsIHBhbmVsIGNhbGxvdXQgcGFkZGluZy10b3AtdGlnaHRcIj5cbiAgICAgICAgICAgIDxwcmU+cGFkZGluZy10b3AtdGlnaHQ8L3ByZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsIHBhbmVsIGNhbGxvdXQgcGFkZGluZy10b3Atbm9ybWFsXCI+XG4gICAgICAgICAgICA8cHJlPnBhZGRpbmctdG9wLW5vcm1hbDwvcHJlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwgcGFuZWwgY2FsbG91dCBwYWRkaW5nLXRvcC1sb29zZVwiPlxuICAgICAgICAgICAgPHByZT5wYWRkaW5nLXRvcC1sb29zZTwvcHJlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwgcGFuZWwgY2FsbG91dCBwYWRkaW5nLXRvcC1sb29zZXJcIj5cbiAgICAgICAgICAgIDxwcmU+cGFkZGluZy10b3AtbG9vc2VyPC9wcmU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbCBwYW5lbCBjYWxsb3V0IHBhZGRpbmctdG9wLWxvb3Nlc3RcIj5cbiAgICAgICAgICAgIDxwcmU+cGFkZGluZy10b3AtbG9vc2VzdDwvcHJlPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbC0zIHBhbmVsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsIHBhbmVsIGNhbGxvdXQgcGFkZGluZy1ib3R0b20tZmx1c2hcIj5cbiAgICAgICAgICAgIDxwcmU+cGFkZGluZy1ib3R0b20tZmx1c2g8L3ByZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsIHBhbmVsIGNhbGxvdXQgcGFkZGluZy1ib3R0b20tdGlnaHRlc3RcIj5cbiAgICAgICAgICAgIDxwcmU+cGFkZGluZy1ib3R0b20tdGlnaHRlc3Q8L3ByZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsIHBhbmVsIGNhbGxvdXQgcGFkZGluZy1ib3R0b20tdGlnaHRlclwiPlxuICAgICAgICAgICAgPHByZT5wYWRkaW5nLWJvdHRvbS10aWdodGVyPC9wcmU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbCBwYW5lbCBjYWxsb3V0IHBhZGRpbmctYm90dG9tLXRpZ2h0XCI+XG4gICAgICAgICAgICA8cHJlPnBhZGRpbmctYm90dG9tLXRpZ2h0PC9wcmU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbCBwYW5lbCBjYWxsb3V0IHBhZGRpbmctYm90dG9tLW5vcm1hbFwiPlxuICAgICAgICAgICAgPHByZT5wYWRkaW5nLWJvdHRvbS1ub3JtYWw8L3ByZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsIHBhbmVsIGNhbGxvdXQgcGFkZGluZy1ib3R0b20tbG9vc2VcIj5cbiAgICAgICAgICAgIDxwcmU+cGFkZGluZy1ib3R0b20tbG9vc2U8L3ByZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsIHBhbmVsIGNhbGxvdXQgcGFkZGluZy1ib3R0b20tbG9vc2VyXCI+XG4gICAgICAgICAgICA8cHJlPnBhZGRpbmctYm90dG9tLWxvb3NlcjwvcHJlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwgcGFuZWwgY2FsbG91dCBwYWRkaW5nLWJvdHRvbS1sb29zZXN0XCI+XG4gICAgICAgICAgICA8cHJlPnBhZGRpbmctYm90dG9tLWxvb3Nlc3Q8L3ByZT5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbmBgYFxuXG4ucGFkZGluZyBoYXMgcmVzcG9uc2l2ZSBoZWxwZXIgYmFzZWQgb24gc2l6ZSBvZiBwYWRkaW5nIGFuZCBicmVha3BvaW50IHNpemVcbmAucGFkZGluZy17Zmx1c2gsIHRpZ2h0LCB0aWdodGVyLCB0aWdodGVzdCwgbm9ybWFsLCBsb29zZSwgbG9vc2VyIG9yIGxvb3Nlc3R9LWZvci17c21hbGwtb25seSwgbWVkaXVtLXVwLCBtZWRpdW0tb25seSBvciBsYXJnZS11cH1gXG5cbiovXG5cbkBlYWNoICRkaXJlY3Rpb24gaW4gbGVmdCxcbnJpZ2h0LFxudG9wLFxuYm90dG9tIHtcbiAgICBAZWFjaCAkbmFtZSxcbiAgICAkc2l6ZSBpbiAkYmxvY2stc2l6ZXMge1xuICAgICAgICAucGFkZGluZy0jeyRkaXJlY3Rpb259LSN7JG5hbWV9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoJGRpcmVjdGlvbiwgJG5hbWUsIHRydWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AZWFjaCAkbmFtZSwgJHNpemUgaW4gJGJsb2NrLXNpemVzIHtcbiAgICAucGFkZGluZy0jeyRuYW1lfSB7XG4gICAgICAgIEBlYWNoICRkaXJlY3Rpb24gaW4gbGVmdCwgcmlnaHQsIHRvcCwgYm90dG9tIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoJGRpcmVjdGlvbiwgJG5hbWUsIHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIEBlYWNoICRicmVha3BvaW50LFxuICAgICR2YXIgaW4gJGJyZWFrcG9pbnQtdmFyaWFibGVzIHtcbiAgICAgICAgQGVhY2ggJHNpemUsXG4gICAgICAgICRibG9jayBpbiAkYmxvY2stc2l6ZXMge1xuICAgICAgICAgICAgLnBhZGRpbmctI3skc2l6ZX0tZm9yLSN7JGJyZWFrcG9pbnR9IHtcbiAgICAgICAgICAgICAgICBAZWFjaCAkZGlyZWN0aW9uIGluIGxlZnQsIHJpZ2h0LCB0b3AsIGJvdHRvbSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoJGRpcmVjdGlvbiwgJHNpemUsIHRydWUsICR2YXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGVhY2ggJGRpcmVjdGlvbiBpbiBsZWZ0LFxucmlnaHQsXG50b3AsXG5ib3R0b20ge1xuICAgIEBlYWNoICRicmVha3BvaW50LFxuICAgICR2YXIgaW4gJGJyZWFrcG9pbnQtdmFyaWFibGVzIHtcbiAgICAgICAgQGVhY2ggJHNpemUsXG4gICAgICAgICRibG9jayBpbiAkYmxvY2stc2l6ZXMge1xuICAgICAgICAgICAgLnBhZGRpbmctI3skZGlyZWN0aW9ufS0jeyRzaXplfS1mb3ItI3skYnJlYWtwb2ludH0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoJGRpcmVjdGlvbiwgJHNpemUsIHRydWUsICR2YXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKmRvY1xuLS0tXG50aXRsZTogSG9yaXpvbnRhbCBQYWRkaW5nIEhlbHBlcnMgKGJhcilcbm5hbWU6IGMtcGFkZGluZy1oZWxwZXJzLWhvcml6XG5jYXRlZ29yeTogTGF5b3V0IC0gTGF5b3V0IEhlbHBlcnNcbnNlbGVjdG9yczpcbiAgICAtIC5iYXItZmx1c2hcbiAgICAtIC5iYXItdGlnaHRlc3RcbiAgICAtIC5iYXItdGlnaHRlclxuICAgIC0gLmJhci10aWdodFxuICAgIC0gLmJhci1ub3JtYWxcbiAgICAtIC5iYXItbG9vc2VcbiAgICAtIC5iYXItbG9vc2VyXG4gICAgLSAuYmFyLWxvb3Nlc3RcbnNlbGVjdG9yX3R5cGU6IGxheW91dFxuLS0tXG5cbldoeSBub3QgYWxzbyBoYXZlIG1hcmdpbi1yaWdodCBoZWxwZXJzPyBTb21ldGltZXMgeW91IG5lZWQgdG8gc2ltcGx5XG5zcGFjZSBpdGVtcyBpbiBhIHdheSB3aGVyZSB0aGUgZ3JpZCBkb2Vzbid0IHF1aXRlIGN1dCBpdC5cblxufCAuYmFyLSogaGVscGVyIGNsYXNzZXMgfCBtYXJnaW4tcmlnaHQgfFxufC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18XG58IGAuYmFyLWZsdXNoYCAgICAgICAgIHwgcmVtLWNhbGMoMCkgICB8XG58IGAuYmFyLXRpZ2h0ZXN0YCAgICAgIHwgcmVtLWNhbGMoMikgICB8XG58IGAuYmFyLXRpZ2h0ZXJgICAgICAgIHwgcmVtLWNhbGMoNCkgICB8XG58IGAuYmFyLXRpZ2h0YCAgICAgICAgIHwgcmVtLWNhbGMoOCkgICB8XG58IGAuYmFyLW5vcm1hbGAgICAgICAgIHwgcmVtLWNhbGMoMTYpICB8XG58IGAuYmFyLWxvb3NlYCAgICAgICAgIHwgcmVtLWNhbGMoMjQpICB8XG58IGAuYmFyLWxvb3NlcmAgICAgICAgIHwgcmVtLWNhbGMoMzIpICB8XG58IGAuYmFyLWxvb3Nlc3RgICAgICAgIHwgcmVtLWNhbGMoNDgpICB8XG5cbmBgYGh0bWxfZXhhbXBsZT9raXRjaGVuLXNpbms9dHJ1ZVxuPGRpdiBjbGFzcz1cImZsZXgtcm93XCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwgcGFuZWwgYmFyLWZsdXNoXCI+XG4gICAgICAgIDxwcmU+YmFyLWZsdXNoPC9wcmU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwgcGFuZWwgYmFyLXRpZ2h0ZXN0XCI+XG4gICAgICAgIDxwcmU+YmFyLXRpZ2h0ZXN0PC9wcmU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwgcGFuZWwgYmFyLXRpZ2h0ZXJcIj5cbiAgICAgICAgPHByZT5iYXItdGlnaHRlcjwvcHJlPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsIHBhbmVsIGJhci10aWdodFwiPlxuICAgICAgICA8cHJlPmJhci10aWdodDwvcHJlPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsIHBhbmVsIGJhci1ub3JtYWxcIj5cbiAgICAgICAgPHByZT5iYXItbm9ybWFsPC9wcmU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwgcGFuZWwgYmFyLWxvb3NlXCI+XG4gICAgICAgIDxwcmU+YmFyLWxvb3NlPC9wcmU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwgcGFuZWwgYmFyLWxvb3NlclwiPlxuICAgICAgICA8cHJlPmJhci1sb29zZXI8L3ByZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbCBwYW5lbCBiYXItbG9vc2VzdFwiPlxuICAgICAgICA8cHJlPmJhci1sb29zZXN0PC9wcmU+XG4gICAgPC9kaXY+XG48L2Rpdj5cbmBgYFxuXG5BcyB3aXRoIGAuYmxvY2stYCBhbmQgYC5wYWRgIHRoZXNlIGhhdmUgdGhlIHNhbWUgcmVzcG9uc2l2ZSBoZWxwZXJzLlxuYC5iYXIte2ZsdXNoLCB0aWdodCwgdGlnaHRlciwgdGlnaHRlc3QsIG5vcm1hbCwgbG9vc2UsIGxvb3NlciBvciBsb29zZXN0fS1mb3Ite3NtYWxsLW9ubHksIG1lZGl1bS11cCwgbWVkaXVtLW9ubHkgb3IgbGFyZ2UtdXB9YFxuXG4qL1xuXG5AZWFjaCAkbmFtZSxcbiRzaXplIGluICRiYXItc2l6ZXMge1xuICAgIC5iYXItI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBiYXIoJG5hbWUsIHRydWUpO1xuICAgIH1cbn1cblxuQGVhY2ggJGJyZWFrcG9pbnQsXG4kdmFyIGluICRicmVha3BvaW50LXZhcmlhYmxlcyB7XG4gICAgQGVhY2ggJHNpemUsXG4gICAgJGJhciBpbiAkYmFyLXNpemVzIHtcbiAgICAgICAgLmJhci0jeyRzaXplfS1mb3ItI3skYnJlYWtwb2ludH0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYmFyKCRzaXplLCB0cnVlLCAkdmFyKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4vKmRvY1xuLS0tXG50aXRsZTogSG9yaXpvbnRhbCBQYWRkaW5nIEhlbHBlcnMgKGlubGluZSlcbm5hbWU6IGMtcGFkZGluZy1oZWxwZXJzLWlubGluZVxuY2F0ZWdvcnk6IExheW91dCAtIExheW91dCBIZWxwZXJzXG5zZWxlY3RvcnM6XG4gICAgLSAuaW5saW5lLWZsdXNoXG4gICAgLSAuaW5saW5lLXRpZ2h0ZXN0XG4gICAgLSAuaW5saW5lLXRpZ2h0ZXJcbiAgICAtIC5pbmxpbmUtdGlnaHRcbiAgICAtIC5pbmxpbmUtbm9ybWFsXG4gICAgLSAuaW5saW5lLWxvb3NlXG4gICAgLSAuaW5saW5lLWxvb3NlclxuICAgIC0gLmlubGluZS1sb29zZXN0XG5zZWxlY3Rvcl90eXBlOiBsYXlvdXRcbi0tLVxuXG58IC5pbmxpbmUtKiBoZWxwZXIgY2xhc3NlcyB8IHxcbnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tfFxufCBgLmlubGluZS1mbHVzaGAgICAgICAgICB8IHJlbS1jYWxjKDApICAgfFxufCBgLmlubGluZS10aWdodGVzdGAgICAgICB8IHJlbS1jYWxjKDIpICAgfFxufCBgLmlubGluZS10aWdodGVyYCAgICAgICB8IHJlbS1jYWxjKDQpICAgfFxufCBgLmlubGluZS10aWdodGAgICAgICAgICB8IHJlbS1jYWxjKDgpICAgfFxufCBgLmlubGluZS1ub3JtYWxgICAgICAgICB8IHJlbS1jYWxjKDE2KSAgfFxufCBgLmlubGluZS1sb29zZWAgICAgICAgICB8IHJlbS1jYWxjKDI0KSAgfFxufCBgLmlubGluZS1sb29zZXJgICAgICAgICB8IHJlbS1jYWxjKDMyKSAgfFxufCBgLmlubGluZS1sb29zZXN0YCAgICAgICB8IHJlbS1jYWxjKDQ4KSAgfFxuXG5gYGBodG1sX2V4YW1wbGU/a2l0Y2hlbi1zaW5rPXRydWVcbjxkaXYgY2xhc3M9XCJmbGV4LXJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsIHBhbmVsIGlubGluZS1mbHVzaFwiPlxuICAgICAgICA8cHJlPmlubGluZS1mbHVzaDwvcHJlPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsIHBhbmVsIGlubGluZS10aWdodGVzdFwiPlxuICAgICAgICA8cHJlPmlubGluZS10aWdodGVzdDwvcHJlPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsIHBhbmVsIGlubGluZS10aWdodGVyXCI+XG4gICAgICAgIDxwcmU+aW5saW5lLXRpZ2h0ZXI8L3ByZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbCBwYW5lbCBpbmxpbmUtdGlnaHRcIj5cbiAgICAgICAgPHByZT5pbmxpbmUtdGlnaHQ8L3ByZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbCBwYW5lbCBpbmxpbmUtbm9ybWFsXCI+XG4gICAgICAgIDxwcmU+aW5saW5lLW5vcm1hbDwvcHJlPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsIHBhbmVsIGlubGluZS1sb29zZVwiPlxuICAgICAgICA8cHJlPmlubGluZS1sb29zZTwvcHJlPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsIHBhbmVsIGlubGluZS1sb29zZXJcIj5cbiAgICAgICAgPHByZT5pbmxpbmUtbG9vc2VyPC9wcmU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwgcGFuZWwgaW5saW5lLWxvb3Nlc3RcIj5cbiAgICAgICAgPHByZT5pbmxpbmUtbG9vc2VzdDwvcHJlPlxuICAgIDwvZGl2PlxuPC9kaXY+XG5gYGBcblxuQXMgd2l0aCBgLmJsb2NrLWAgYW5kIGAucGFkYCB0aGVzZSBoYXZlIHRoZSBzYW1lIHJlc3BvbnNpdmUgaGVscGVycy5cbmAuaW5saW5lLXtmbHVzaCwgdGlnaHQsIHRpZ2h0ZXIsIHRpZ2h0ZXN0LCBub3JtYWwsIGxvb3NlLCBsb29zZXIgb3IgbG9vc2VzdH0tZm9yLXtzbWFsbC1vbmx5LCBtZWRpdW0tdXAsIG1lZGl1bS1vbmx5IG9yIGxhcmdlLXVwfWBcblxuKi9cblxuQGVhY2ggJHNpZGUgaW4gbGVmdCxcbnJpZ2h0IHtcbiAgICBAZWFjaCAkbmFtZSxcbiAgICAkc2l6ZSBpbiAkYmFyLXNpemVzIHtcbiAgICAgICAgLmlubGluZS0jeyRzaWRlfS0jeyRuYW1lfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBpbmxpbmUoJHNpZGUsICRuYW1lLCB0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGVhY2ggJHNpZGUgaW4gbGVmdCxcbnJpZ2h0IHtcbiAgICBAZWFjaCAkYnJlYWtwb2ludCxcbiAgICAkdmFyIGluICRicmVha3BvaW50LXZhcmlhYmxlcyB7XG4gICAgICAgIEBlYWNoICRzaXplLFxuICAgICAgICAkYmFyIGluICRiYXItc2l6ZXMge1xuICAgICAgICAgICAgLmlubGluZS0jeyRzaWRlfS0jeyRzaXplfS1mb3ItI3skYnJlYWtwb2ludH0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGlubGluZSgkc2lkZSwgJHNpemUsIHRydWUsICR2YXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBUb3AgTWFyZ2luIEhlbHBlcnNcbm5hbWU6IGMtbWFyZ2luLXRvcC1oZWxwZXJzXG5jYXRlZ29yeTogTGF5b3V0IC0gTGF5b3V0IEhlbHBlcnNcbnNlbGVjdG9yczpcbiAgICAtIC5tYXJnaW4tdG9wLWZsdXNoXG4gICAgLSAubWFyZ2luLXRvcC10aWdodGVyXG4gICAgLSAubWFyZ2luLXRvcC10aWdodFxuICAgIC0gLm1hcmdpbi10b3AtbG9vc2VcbiAgICAtIC5tYXJnaW4tdG9wLWxvb3Nlclxuc2VsZWN0b3JfdHlwZTogbGF5b3V0XG4tLS1cblxuV2h5IG5vdCBhbHNvIGhhdmUgbWFyZ2luLXRvcCBoZWxwZXJzPyBTb21ldGltZXMgeW91IG5lZWQgdG8gc2ltcGx5XG5zcGFjZSBpdGVtcyBpbiBhIHdheSB3aGVyZSB0aGUgZ3JpZCBkb2Vzbid0IHF1aXRlIGN1dCBpdC5cblxufCAubWFyZ2luLXRvcCBoZWxwZXIgY2xhc3NlcyAgfCBtYXJnaW4tdG9wICAgIHxcbnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18XG58IGAubWFyZ2luLXRvcC1mbHVzaGAgICAgICAgICB8IHJlbS1jYWxjKDApICAgfFxufCBgLm1hcmdpbi10b3AtdGlnaHRlcmAgICAgICAgfCByZW0tY2FsYyg1KSAgIHxcbnwgYC5tYXJnaW4tdG9wLXRpZ2h0YCAgICAgICAgIHwgcmVtLWNhbGMoMTApICB8XG58IGAubWFyZ2luLXRvcC1ub3JtYWxgICAgICAgICB8IHJlbS1jYWxjKDE1KSAgfFxufCBgLm1hcmdpbi10b3AtbG9vc2VgICAgICAgICAgfCByZW0tY2FsYygyMCkgIHxcbnwgYC5tYXJnaW4tdG9wLWxvb3NlcmAgICAgICAgIHwgcmVtLWNhbGMoMjUpICB8XG5cbmBgYGh0bWxfZXhhbXBsZT9raXRjaGVuLXNpbms9dHJ1ZVxuPGRpdiBjbGFzcz1cImZsZXgtcm93XCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwgcGFuZWwgbWFyZ2luLXRvcC1mbHVzaFwiPlxuICAgICAgICA8cHJlPm1hcmdpbi10b3AtZmx1c2g8L3ByZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbCBwYW5lbCBtYXJnaW4tdG9wLXRpZ2h0ZXJcIj5cbiAgICAgICAgPHByZT5tYXJnaW4tdG9wLXRpZ2h0ZXI+PC9wcmU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwgcGFuZWwgbWFyZ2luLXRvcC10aWdodFwiPlxuICAgICAgICA8cHJlPm1hcmdpbi10b3AtdGlnaHQ8L3ByZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbCBwYW5lbCBtYXJnaW4tdG9wLW5vcm1hbFwiPlxuICAgICAgICA8cHJlPm1hcmdpbi10b3Atbm9ybWFsPC9wcmU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwgcGFuZWwgbWFyZ2luLXRvcC1sb29zZVwiPlxuICAgICAgICA8cHJlPm1hcmdpbi10b3AtbG9vc2U8L3ByZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbCBwYW5lbCBtYXJnaW4tdG9wLWxvb3NlclwiPlxuICAgICAgICA8cHJlPm1hcmdpbi10b3AtbG9vc2VyPjwvcHJlPlxuICAgIDwvZGl2PlxuPC9kaXY+XG5gYGBcblxuQXMgd2l0aCBgLmJsb2NrLWAgYW5kIGAucGFkYCB0aGVzZSBoYXZlIHRoZSBzYW1lIHJlc3BvbnNpdmUgaGVscGVycy5cbmAubWFyZ2luLXRvcC17Zmx1c2gsIHRpZ2h0LCB0aWdodGVyLCB0aWdodGVzdCwgbm9ybWFsLCBsb29zZSwgbG9vc2VyIG9yIGxvb3Nlc3R9LWZvci17c21hbGwtb25seSwgbWVkaXVtLXVwLCBtZWRpdW0tb25seSBvciBsYXJnZS11cH1gXG5cbiovXG5cbkBlYWNoICRuYW1lLFxuJHNpemUgaW4gJG1hcmdpbi10b3Atc2l6ZXMge1xuICAgIC5tYXJnaW4tdG9wLSN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luLXRvcCgkbmFtZSwgdHJ1ZSk7XG4gICAgfVxufVxuXG5AZWFjaCAkYnJlYWtwb2ludCxcbiR2YXIgaW4gJGJyZWFrcG9pbnQtdmFyaWFibGVzIHtcbiAgICBAZWFjaCAkc2l6ZSxcbiAgICAkbWFyZ2luLXRvcCBpbiAkbWFyZ2luLXRvcC1zaXplcyB7XG4gICAgICAgIC5tYXJnaW4tdG9wLSN7JHNpemV9LWZvci0jeyRicmVha3BvaW50fSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtYXJnaW4tdG9wKCRzaXplLCB0cnVlLCAkdmFyKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4vKmRvY1xuLS0tXG50aXRsZTogVmlzaWJpbGl0eSBIZWxwZXJzXG5uYW1lOiBkLXZpc2liaWxpdHktaGVscGVyc1xuY2F0ZWdvcnk6IExheW91dCAtIExheW91dCBIZWxwZXJzXG5zZWxlY3RvcnM6XG4gICAgLSAuc2hvdy1mb3Itc21hbGwtb25seVxuICAgIC0gLnNob3ctZm9yLW1lZGl1bS1zbWFsbFxuICAgIC0gLnNob3ctZm9yLW1lZGl1bS11cFxuICAgIC0gLnNob3ctZm9yLW1lZGl1bS1vbmx5XG4gICAgLSAuc2hvdy1mb3ItbWVkaXVtLXdpZGVyLW9ubHlcbiAgICAtIC5zaG93LWZvci1sYXJnZS11cFxuICAgIC0gLnNob3ctZm9yLWxhcmdlLW9ubHlcbiAgICAtIC5zaG93LWZvci14bGFyZ2UtdXBcbiAgICAtIC5zaG93LWZvci14bGFyZ2Utb25seVxuICAgIC0gLnNob3ctZm9yLXh4bGFyZ2UtdXBcbiAgICAtIC5oaWRlLWZvci1zbWFsbC1vbmx5XG4gICAgLSAuaGlkZS1mb3ItbWVkaXVtLXNtYWxsXG4gICAgLSAuaGlkZS1mb3ItbWVkaXVtLXVwXG4gICAgLSAuaGlkZS1mb3ItbWVkaXVtLW9ubHlcbiAgICAtIC5oaWRlLWZvci1tZWRpdW0td2lkZXItb25seVxuICAgIC0gLmhpZGUtZm9yLWxhcmdlLXVwXG4gICAgLSAuaGlkZS1mb3ItbGFyZ2Utb25seVxuICAgIC0gLmhpZGUtZm9yLXhsYXJnZS11cFxuICAgIC0gLmhpZGUtZm9yLXhsYXJnZS1vbmx5XG4gICAgLSAuaGlkZS1mb3IteHhsYXJnZS11cFxuc2VsZWN0b3JfdHlwZTogbGF5b3V0XG4tLS1cblxuKipOb3RlOioqIFRoaXMgd29ya3MgYnkgdGhyb3dpbmcgaW4gYSBgZGlzcGxheTogaW5oZXJpdCAhaW1wb3J0YW50YC4gU28ga2VlcCBpbiBtaW5kXG4oY3VycmVudGx5KSB0aGF0IGlmIHlvdSB3YW50IGl0IHRvIGJlIHZpc2libGVkIGlubGluZSBvciBibG9jaywgeW91IGhhdmUgdG8gc2V0IHRoZVxuIHBhcmVudCdzIGRpc3BsYXkgcHJvcGVydHkuIEV2ZW4gZm9yIGBoaWRlLWZvci1zbWFsbC1vbmx5YC4gU3Vja3MuXG5cbiMjIyBTaG93XG5cbkluIHRoaXMgZXhhbXBsZSwgd2UgdXNlIHRoZSBzaG93IHZpc2liaWxpdHkgY2xhc3NlcyB0byBzaG93IGNlcnRhaW4gc3RyaW5ncyBvZlxudGV4dCBiYXNlZCBvbiB0aGUgZGV2aWNlIG9uIHdoaWNoIHVzZXJzIHZpZXcgYSBwYWdlLiBJZiB0aGVpciBicm93c2VyIG1lZXRzIHRoZVxuY2xhc3MncyBjb25kaXRpb25zLCB0aGUgZWxlbWVudCB3aWxsIGJlIHNob3duLiBJZiBub3QsIGl0IHdpbGwgYmUgaGlkZGVuLlxuXG5gYGBodG1sX2V4YW1wbGU/a2l0Y2hlbi1zaW5rPXRydWVcbjxwIGNsYXNzPVwicGFuZWxcIj5cbiAgICA8c3Ryb25nIGNsYXNzPVwic2hvdy1mb3Itc21hbGwtb25seVwiPlNob3cgZm9yIHNtYWxsIG9ubHk8L3N0cm9uZz5cbiAgICA8c3Ryb25nIGNsYXNzPVwic2hvdy1mb3ItbWVkaXVtLXNtYWxsLW9ubHlcIj5TaG93IGZvciBtZWRpdW0tc21hbGwgb25seTwvc3Ryb25nPlxuICAgIDxzdHJvbmcgY2xhc3M9XCJzaG93LWZvci1tZWRpdW0tdXBcIj5TaG93IGZvciBtZWRpdW0gdXAuPC9zdHJvbmc+XG4gICAgPHN0cm9uZyBjbGFzcz1cInNob3ctZm9yLW1lZGl1bS1vbmx5XCI+U2hvdyBmb3IgbWVkaXVtIG9ubHkuPC9zdHJvbmc+XG4gICAgPHN0cm9uZyBjbGFzcz1cInNob3ctZm9yLWxhcmdlLXVwXCI+U2hvdyBmb3IgbGFyZ2UgdXAuPC9zdHJvbmc+XG4gICAgPHN0cm9uZyBjbGFzcz1cInNob3ctZm9yLWxhcmdlLW9ubHlcIj5TaG93IGZvciBsYXJnZSBvbmx5Ljwvc3Ryb25nPlxuICAgIDxzdHJvbmcgY2xhc3M9XCJzaG93LWZvci14bGFyZ2UtdXBcIj5TaG93IGZvciB4bGFyZ2UgdXAuPC9zdHJvbmc+XG4gICAgPHN0cm9uZyBjbGFzcz1cInNob3ctZm9yLXhsYXJnZS1vbmx5XCI+U2hvdyBmb3IgeGxhcmdlIG9ubHkuPC9zdHJvbmc+XG4gICAgPHN0cm9uZyBjbGFzcz1cInNob3ctZm9yLXh4bGFyZ2UtdXBcIj5TaG93IGZvciB4eGxhcmdlIHVwLjwvc3Ryb25nPlxuPC9wPlxuYGBgXG5cbiMjIyMgU3RpY2t5LUJhc2VkIFZpc2liaWxpdHlcblxuU2ltaWxhciB0byBob3cgc2hvdyB3b3JrcyBmb3IgZGV2aWNlIHdpZHRocywgd2UgdXNlICdzaG93LWluLXN0dWNrLWZvci0qJ1xudG8gZGlzcGxheSBhbiBlbGVtZW50IHRoYXQgaXMgYSBjaGlsZCBvZiBhbiBlbGVtZW50IHN0dWNrIHVzaW5nIFtTY3JvbGwgdG8gRml4ZWQgKEpTKV0oL3N0aWNraWVzXy1fc2Nyb2xsX3RvX2ZpeGVkXyhqcykuaHRtbCkuXG5cblRoZXNlIHVzZSByZXNwb25zaXZlIGhlbHBlcnM6IGAuc2hvdy1pbi1zdHVjay1mb3Ite3NtYWxsLW9ubHksIG1lZGl1bS11cCwgbWVkaXVtLW9ubHkgb3IgbGFyZ2UtdXB9YFxuXG4jIyMjIE9wdGlvbmFsIExvY2F0aW9uLUJhc2VkIFZpc2liaWxpdHlcblxuV2hlbiB0aGUgYGxpYlxcdXRpbFxcbG9jYXRpb24tY2xhc3Nlcy5qc2AgbW9kdWxlIGlzIGxvYWRlZCBvbiBhIHBhZ2UgYW5kIGdlb2xvY2F0aW9uIGRhdGFcbmlzIGxvYWRlZCBzdWNjZXNzZnVsbHksIENTUyBjbGFzc2VzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIGBodG1sYCBlbGVtZW50OlxuYC5sb2NhdGlvbi0keyBjb3VudHJ5IGNvZGUgfWAgb3IgYC5sb2NhdGlvbi11bmtub3duYC5cblxuVGhlc2UgY2xhc3NlcyBhcmUgdGhlbiB1c2VkIHRvIGRlZmluZSBmb3IgdXMgc2V2ZXJhbCBsb2NhdGlvbi1iYXNlZFxudmlzaWJpbGl0eSBjbGFzc2VzIGAuc2hvdy1mb3ItbG9jYXRpb24tdXMtb25seWAsIGAuc2hvdy1mb3ItbG9jYXRpb24tdXMtb3ItdW5rbm93bi1vbmx5YCxcbmAuc2hvdy1mb3ItbG9jYXRpb24tbm90LXVzLW9ubHlgLCBhbmQgYC5zaG93LWZvci1sb2NhdGlvbi1ub3QtdXMtb3ItdW5rbm93bi1vbmx5YCxcbndoaWNoIGhpZGUgZWxlbWVudHMgYmFzZWQgb24gdGhlIHZpc2l0b3JzIGdlb2xvY2F0aW9uLlxuXG5Ob3RlIHRoYXQgQWthbWFpIEVkZ2UgU2lkZSBJbmNsdWRlcyBmdW5jdGlvbmFsaXR5IGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGxvY2F0aW9uLCBzbyBsb2NhdGlvblxud2lsbCB1c3VhbGx5IG9ubHkgYmUga25vd24gZm9yIGNvZGUgcnVubmluZyBpbiBwcm9kdWN0aW9uLlxuXG4jIyMgSGlkZVxuXG5UaGlzIGV4YW1wbGUgc2hvd3MgdGhlIG9wcG9zaXRlOiBJdCB1c2VzIHRoZSBoaWRlIHZpc2liaWxpdHkgY2xhc3NlcyB0byBzdGF0ZVxud2hpY2ggZWxlbWVudHMgc2hvdWxkIGRpc2FwcGVhciBiYXNlZCBvbiB5b3VyIGRldmljZSdzIHNjcmVlbiBzaXplIG9yIG9yaWVudGF0aW9uLlxuVXNlcnMgd2lsbCBzZWUgZWxlbWVudHMgb24gZXZlcnkgYnJvd3NlciBleGNlcHQgdGhvc2UgdGhhdCBtZWV0IHRoZXNlIGNvbmRpdGlvbnMuXG5cbmBgYCBodG1sX2V4YW1wbGVcbjxwIGNsYXNzPVwicGFuZWxcIj5cbiAgICA8c3Ryb25nIGNsYXNzPVwiaGlkZS1mb3Itc21hbGwtb25seVwiPkhpZGUgZm9yIHNtYWxsIG9ubHk8L3N0cm9uZz5cbiAgICA8c3Ryb25nIGNsYXNzPVwiaGlkZS1mb3ItbWVkaXVtLXNtYWxsLW9ubHlcIj5IaWRlIGZvciBtZWRpdW0tc21hbGwgb25seTwvc3Ryb25nPlxuICAgIDxzdHJvbmcgY2xhc3M9XCJoaWRlLWZvci1tZWRpdW0tdXBcIj5IaWRlIGZvciBtZWRpdW0gdXA8L3N0cm9uZz5cbiAgICA8c3Ryb25nIGNsYXNzPVwiaGlkZS1mb3ItbWVkaXVtLW9ubHlcIj5IaWRlIGZvciBtZWRpdW0gb25seTwvc3Ryb25nPlxuXG4gICAgPHN0cm9uZyBjbGFzcz1cImhpZGUtZm9yLWxhcmdlLXVwXCI+SGlkZSBmb3IgbGFyZ2UgdXA8L3N0cm9uZz5cbiAgICA8c3Ryb25nIGNsYXNzPVwiaGlkZS1mb3ItbGFyZ2Utb25seVwiPkhpZGUgZm9yIGxhcmdlIG9ubHk8L3N0cm9uZz5cbiAgICA8c3Ryb25nIGNsYXNzPVwiaGlkZS1mb3IteGxhcmdlLXVwXCI+SGlkZSBmb3IgeGxhcmdlIHVwPC9zdHJvbmc+XG4gICAgPHN0cm9uZyBjbGFzcz1cImhpZGUtZm9yLXhsYXJnZS1vbmx5XCI+SGlkZSBmb3IgeGxhcmdlIG9ubHk8L3N0cm9uZz5cbiAgICA8c3Ryb25nIGNsYXNzPVwiaGlkZS1mb3IteHhsYXJnZS11cFwiPkhpZGUgZm9yIHh4bGFyZ2UgdXAuPC9zdHJvbmc+XG48L3A+XG5gYGBcblxuU2luY2Ugd2UncmUgcnVubmluZyBNb2Rlcm5penIsIHdlIGNhbiBzdHlsZSBmb3Igd2hlbiBKYXZhc2NyaXB0IGlzIG9yIGlzbid0IHJ1bm5pbmdcbmFzIHdlbGwuIFdoZW4gb3VyIGJhc2UgdGVtcGxhdGVzIHN0YXJ0IG91dCB3aXRoIHRoZSBgLm5vLWpzYCBjbGFzcyBvbiBgPGh0bWw+YCBieSBkZWZhdWx0LFxuTW9kZXJuaXpyIHdpbGwgcmV3cml0ZSBpdCB0byBgLmpzYCBpZi93aGVuIGl0IHN0YXJ0cywgYWxsb3dpbmcgb3VyIENTUyB0byBrbm93XG53aGVuIEpTIGlzIHJ1bm5pbmcuIChTZWUgaHR0cHM6Ly9tb2Rlcm5penIuY29tL2RvY3MpXG5cbldlIGNhbiB1c2UgZWl0aGVyIGAuaGlkZS1mb3Itbm8tanMtb25seWAgdG8gaGlkZSBzb21ldGhpbmcgd2hlbiBKUyBpcyBub3QgcnVubmluZyxcbm9yIGAuaGlkZS1mb3ItanMtb25seWAgdG8gaGlkZSBzb21ldGhpbmcgb25seSB3aGVuIGl0IGlzLlxuXG5XZSBjYW4gYWxzbyB1c2UgYC5zaG93LWZvci1uby1qc2AgdG8gZm9yY2Utc2hvdyBzb21ldGhpbmcgd2hlbiBKUyBpcyBub3QgcnVubmluZy5cbihOb3RlIHRoYXQgaXQgZm9yY2VzIGBkaXNwbGF5OiBpbmhlcml0YCwgd2hpY2ggbWlnaHQgbm90IGJlIG9wdGltYWwgaW4gYWxsIGNhc2VzLilcblxuYGBgaHRtbF9leGFtcGxlP2tpdGNoZW4tc2luaz10cnVlXG48cCBjbGFzcz1cInBhbmVsXCI+XG4gICAgPHN0cm9uZyBjbGFzcz1cImhpZGUtZm9yLWpzLW9ubHlcIj5IaWRkZW4gb25seSB3aGVuIEphdmFzY3JpcHQgaXMgcnVubmluZzwvc3Ryb25nPlxuICAgIDxzdHJvbmcgY2xhc3M9XCJoaWRlLWZvci1uby1qcy1vbmx5XCI+SGlkZGVuIG9ubHkgd2hlbiBKYXZhc2NyaXB0IGlzIG5vdCBydW5uaW5nPC9zdHJvbmc+XG4gICAgPHN0cm9uZyBjbGFzcz1cImlzLWhpZGRlbiBzaG93LWZvci1uby1qc1wiPkhpZGRlbiBieSBkZWZhdWx0LCBidXQgZm9yY2VkIHRvIHNob3cgd2hlbiBKYXZhc2NyaXB0IGlzIG5vdCBydW5uaW5nPC9zdHJvbmc+XG48L3A+XG5gYGBcbiovXG5cbmh0bWwubm8tdG91Y2ggLnNob3ctZm9yLWhvdmVyLWNvbnRhaW5lciB7XG4gICAgLnNob3ctZm9yLWhvdmVyIHtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cblxuICAgICY6aG92ZXIgLnNob3ctZm9yLWhvdmVyIHtcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG59XG5cbmh0bWwubm8tanMgLmhpZGUtZm9yLW5vLWpzLW9ubHkge1xuICAgIEBleHRlbmQgLmlzLWhpZGRlbjtcbn1cblxuaHRtbC5uby1qcyAuc2hvdy1mb3Itbm8tanMge1xuICAgIGRpc3BsYXk6IGluaGVyaXQgIWltcG9ydGFudDtcbn1cblxuaHRtbC5qcyAuaGlkZS1mb3ItanMtb25seSB7XG4gICAgQGV4dGVuZCAuaXMtaGlkZGVuO1xufVxuXG4vLyBTZXRzIGVsZW1lbnRzIHRvIGFwcGVhciBpbnNpZGUgYSBzY3JvbGwtdG8tZml4ZWQgZWxlbWVudCBvbmx5IHdoZW4gaXQgaXMgc3R1Y2tcbkBlYWNoICRicmVha3BvaW50LFxuJHZhciBpbiAkYnJlYWtwb2ludC12YXJpYWJsZXMge1xuICAgIEBtZWRpYSAjeyR2YXJ9IHtcbiAgICAgICAgLnNob3ctaW4tc3R1Y2stZm9yLSN7JGJyZWFrcG9pbnR9IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudFxuICAgICAgICB9XG4gICAgICAgIC5zY3JvbGwtdG8tZml4ZWQtZml4ZWQgLnNob3ctaW4tc3R1Y2stZm9yLSN7JGJyZWFrcG9pbnR9IHtcbiAgICAgICAgICAgIGRpc3BsYXk6dW5zZXQgIWltcG9ydGFudFxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBJbmNsdWRpbmcgdGhlIG1vZHVsZSAnbGliL3V0aWwvbG9jYXRpb24tY2xhc3Nlcy5qcycgd2l0aCB5b3VyIGNvZGUgd2lsbFxuLy8gYXBwbHkgdGhlc2UgY2xhc3NlcyB0byB0aGUgaHRtbCB0YWcsIHNvIHRoYXQgeW91IGNhbiBzaG93IHBhcnRpY3VsYXIgY29udGVudFxuLy8gaW4gY2VydGFpbiBsb2NhdGlvbnMgb25seS5cbmh0bWw6bm90KC5sb2NhdGlvbi11cykgLnNob3ctZm9yLWxvY2F0aW9uLXVzLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuaHRtbDpub3QoLmxvY2F0aW9uLXVzKTpub3QoLmxvY2F0aW9uLXVua25vd24pIC5zaG93LWZvci1sb2NhdGlvbi11cy1vci11bmtub3duLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLy8gSGlkZSBieSBkZWZhdWx0LlxuLy8gU2hvdyB3aGVuIGxvY2F0aW9uIGlzIGtub3duIHRvIGJlIGFueXRoaW5nIGJ1dCB0aGUgVVNBLlxuaHRtbDpub3QoLmxvY2F0aW9uLW5vdC11cykgLnNob3ctZm9yLWxvY2F0aW9uLW5vdC11cy1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8vIEhpZGUgYnkgZGVmYXVsdC5cbi8vIFNob3cgd2hlbiBsb2NhdGlvbiBpcyBlaXRoZXIgdW5rbm93biBvciBhbnl0aGluZyBidXQgdGhlIFVTQVxuaHRtbDpub3QoLmxvY2F0aW9uLW5vdC11cyk6bm90KC5sb2NhdGlvbi11bmtub3duKSAuc2hvdy1mb3ItbG9jYXRpb24tbm90LXVzLW9yLXVua25vd24tb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4udmlzaWJsZS1mb3Itc21hbGwtd2lkZXN0LTg2LXVwIHtcbiAgICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgICB3aWR0aDogMXB4O1xuICAgIEBtZWRpYShtaW4td2lkdGg6IDUwMHB4KSB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIGNsaXA6IGF1dG87XG4gICAgfVxufVxuXG4uaGlkZGVuLWZvci1zbWFsbC13aWRlc3QtODYtdXAge1xuICAgIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IGF1dG87XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgY2xpcDogYXV0bztcbiAgICBAbWVkaWEobWluLXdpZHRoOiA1MDBweCkge1xuICAgICAgICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgICAgICAgd2lkdGg6IDFweDtcbiAgICB9XG59XG5cbi5zaG93LWZvci1tZWRpdW0td2lkZXItb25seSB7XG4gICAgQGluY2x1ZGUgdG8oYnAtbWVkaXVtKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gICAgQGluY2x1ZGUgYmV0d2VlbihicC1tZWRpdW0sIGJwLW1lZGl1bS13aWRlcikge1xuICAgICAgICBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIEBpbmNsdWRlIGZyb20oYnAtbWVkaXVtLXdpZGVyKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5oaWRlLWZvci1tZWRpdW0td2lkZXItb25seSB7XG4gICAgQGluY2x1ZGUgYmV0d2VlbihicC1tZWRpdW0sIGJwLW1lZGl1bS13aWRlcikge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4uc2hvdy1mb3ItbWVkaXVtLXdpZGUtb25seSB7XG4gICAgQGluY2x1ZGUgdG8oYnAtbWVkaXVtKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gICAgQGluY2x1ZGUgYmV0d2VlbihicC1tZWRpdW0sIGJwLW1lZGl1bS13aWRlKSB7XG4gICAgICAgIGRpc3BsYXk6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICB9XG4gICAgQGluY2x1ZGUgZnJvbShicC1sYXJnZSkge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuLypkb2Ncbi0tLVxudGl0bGU6IERpc3BsYXkgVHlwZSBIZWxwZXJzXG5uYW1lOiBkLWRpc3BsYXktdHlwZS1oZWxwZXJzXG5jYXRlZ29yeTogTGF5b3V0IC0gTGF5b3V0IEhlbHBlcnNcbnNlbGVjdG9yczpcbiAgICAtIC5kaXNwbGF5LWlubGluZVxuICAgIC0gLmRpc3BsYXktaW5saW5lLWJsb2NrXG4gICAgLSAuZGlzcGxheS1ibG9ja1xuICAgIC0gLmRpc3BsYXktaW5saW5lLWZvci1zbWFsbC1vbmx5XG4gICAgLSAuZGlzcGxheS1pbmxpbmUtZm9yLW1lZGl1bS11cFxuICAgIC0gLmRpc3BsYXktaW5saW5lLWZvci1tZWRpdW0tb25seVxuICAgIC0gLmRpc3BsYXktaW5saW5lLWZvci1sYXJnZS11cFxuICAgIC0gLmRpc3BsYXktaW5saW5lLWJsb2NrLWZvci1zbWFsbC1vbmx5XG4gICAgLSAuZGlzcGxheS1ibG9jay1mb3Itc21hbGwtb25seVxuICAgIC0gLmRpc3BsYXktaW5saW5lLWJsb2NrLWZvci1tZWRpdW0tdXBcbiAgICAtIC5kaXNwbGF5LWJsb2NrLWZvci1tZWRpdW0tdXBcbiAgICAtIC5kaXNwbGF5LWlubGluZS1ibG9jay1mb3ItbWVkaXVtLW9ubHlcbiAgICAtIC5kaXNwbGF5LWJsb2NrLWZvci1tZWRpdW0tb25seVxuICAgIC0gLmRpc3BsYXktaW5saW5lLWJsb2NrLWZvci1sYXJnZS11cFxuICAgIC0gLmRpc3BsYXktYmxvY2stZm9yLWxhcmdlLXVwXG5zZWxlY3Rvcl90eXBlOiBsYXlvdXRcbi0tLVxuXG5Zb3UgY2FuIGNoYW5nZSB0aGUgZGlzcGxheSBwcm9wZXJ0eSBvZiBhbiBlbGVtZW50IGZvciBhbGwgYnJlYWtwb2ludHMgYW5kXG5mb3Igc3BlY2lmaWMgYnJlYWtwb2ludHMuXG5cbi8vIFRPRE86IG1ha2UgYSBtaXhpblxuXG58IGRpc3BsYXk6IGlubGluZSAgICAgICAgICAgICAgICAgICB8IGRpc3BsYXk6IGlubGluZS1ibG9jayAgICAgICAgICAgICAgICAgIHwgIGRpc3BsYXk6IGJsb2NrICAgICAgICAgICAgICAgICB8XG58LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG58IGAuZGlzcGxheS1pbmxpbmUtZm9yLXNtYWxsLW9ubHlgICB8IGAuZGlzcGxheS1pbmxpbmUtYmxvY2stZm9yLXNtYWxsLW9ubHlgIHwgYC5kaXNwbGF5LWJsb2NrLWZvci1zbWFsbC1vbmx5YCB8XG58IGAuZGlzcGxheS1pbmxpbmUtZm9yLW1lZGl1bS11cGAgICB8IGAuZGlzcGxheS1pbmxpbmUtYmxvY2stZm9yLW1lZGl1bS11cGAgIHwgYC5kaXNwbGF5LWJsb2NrLWZvci1tZWRpdW0tdXBgICB8XG58IGAuZGlzcGxheS1pbmxpbmUtZm9yLW1lZGl1bS1vbmx5YCB8IGAuZGlzcGxheS1pbmxpbmUtYmxvY2stZm9yLW1lZGl1bS1vbmx5YHwgYC5kaXNwbGF5LWJsb2NrLWZvci1tZWRpdW0tb25seWB8XG58IGAuZGlzcGxheS1pbmxpbmUtZm9yLWxhcmdlLXVwYCAgICB8IGAuZGlzcGxheS1pbmxpbmUtYmxvY2stZm9yLWxhcmdlLXVwYCAgIHwgYC5kaXNwbGF5LWJsb2NrLWZvci1sYXJnZS11cGAgICB8XG5cblxuVXNlIGNhc2UgaWxsdXN0cmF0ZWQgYmVsb3cgc2hvd3MgdGhlIGl0ZW1zIGFsbCBvbiBvbmUgbGluZSBmb3Igc21hbGwgYW5kIG9uIDIgbGluZXMgZm9yIG1lZGl1bS11cDpcblxuYGBgaHRtbF9leGFtcGxlXG48ZGl2IGNsYXNzPVwibWVkaWFcIj5cbiAgICA8YSBjbGFzcz1cImxlZnRcIiBocmVmPVwiI1wiPlxuICAgICAgICA8c3ZnIGNsYXNzPVwibWVkaWEtb2JqZWN0IGljb24gbWVkaXVtIG5vbGlua1wiPlxuICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPVwiL3N0YXRpYy9zcHJpdGVzL3N2Zy9zcHJpdGUuc3ltYm9sLnN2ZyNuZXdzcGFwZXJcIi8+XG4gICAgICAgIDwvc3ZnPlxuICAgIDwvYT5cblxuICAgIDxkaXYgY2xhc3M9XCJtZWRpYS1ib2R5XCI+XG4gICAgICAgIDxoNCBjbGFzcz1cIm1lZGlhLWhlYWRpbmcgaGVhZGluZy1zbWFsbCBkaXNwbGF5LWlubGluZS1mb3Itc21hbGwtb25seVwiPjAuOSU8L2g0PlxuICAgICAgICA8aDQgY2xhc3M9XCJzdWJoZWFkZXIgdGV4dC1zbWFsbGVyIHRleHQtbXV0ZWQgdGV4dC11cHBlcmNhc2UgZGlzcGxheS1pbmxpbmUtZm9yLXNtYWxsLW9ubHlcIj5VbmVtcGxveW1lbnQgUmF0ZTwvaDQ+XG4gICAgPC9kaXY+XG48L2Rpdj5cbmBgYFxuXG4jIyMgQSB1c2VmdWwgZXhhbXBsZVxuXG5IZXJlIGlzIGEgY2FzZSB1c2luZyBmbG9hdCBoZWxwZXJzIGFuZCBkaXNwbGF5IGhlbHBlcnMgdG9nZXRoZXIuIE9uIHNtYWxsIHdlIGp1c3QgaGF2ZSBqdXN0IHRoZSBuZXh0IGJ1dHRvbiBhbmQgd2Ugd2FudCBpdCBmdWxsIHdpZHRoLlxuSW4gb3JkZXIgdG8gZG8gdGhpcywgd2UgaGlkZSB0aGUgbGVmdCBidXR0b24gb24gc21hbGwsIGtpbGwgdGhlIGZsb2F0IHVzaW5nIGAucmlnaHQtZm9yLW1lZGl1bS11cGAgYW5kIGZvcmNlIGRpc3BsYXkgYmxvY2sgb24gdGhlIGJ1dHRvbiB3aXRoIGAuZGlzcGxheS1ibG9jay1mb3Itc21hbGwtb25seWBcbihvZiBjb3Vyc2Ugd2UgY2FuIGdvIHRoZSBzZW1hbnRpYyByb3V0ZSwgYnV0IHRoaXMgZ2V0cyB0aGUgam9iIGRvbmUpLlxuXG5gYGAgaHRtbF9leGFtcGxlXG48ZGl2IGNsYXNzPVwiY2xlYXJmaXhcIj5cbiAgICA8YSBocmVmPVwie3twYWdlclByZXYudXJsfX1cIiBjbGFzcz1cImxlZnQgYnV0dG9uIHJhZGl1cyBzZWNvbmRhcnkgc2hhZG93IHNob3ctZm9yLW1lZGl1bS11cFwiPlxuICAgICAgICA8c3ZnIGNsYXNzPVwiaWNvbiBmbGlwcGVkXCI+PHVzZSB4bGluazpocmVmPVwiL3N0YXRpYy9zcHJpdGVzL3N2Zy9zcHJpdGUuc3ltYm9sLnN2ZyNhcnJvdy1idXR0b25cIiAvPjwvc3ZnPlxuICAgICAgICA8c3Ryb25nPlByZXZpb3VzOjwvc3Ryb25nPiB7e3BhZ2VyUHJldi5uYW1lfX1cbiAgICA8L2E+XG4gICAgIDxhIGhyZWY9XCJ7e3BhZ2VyTmV4dC51cmx9fVwiIGNsYXNzPVwicmlnaHQtZm9yLW1lZGl1bS11cCBidXR0b24gcmFkaXVzIHNlY29uZGFyeSBzaGFkb3cgZGlzcGxheS1ibG9jay1mb3Itc21hbGwtb25seVwiPlxuICAgICAgICA8c3Ryb25nPk5leHQ6PC9zdHJvbmc+IHt7cGFnZXJOZXh0Lm5hbWV9fVxuICAgICAgICA8c3ZnIGNsYXNzPVwiaWNvblwiPjx1c2UgeGxpbms6aHJlZj1cIi9zdGF0aWMvc3ByaXRlcy9zdmcvc3ByaXRlLnN5bWJvbC5zdmcjYXJyb3ctYnV0dG9uXCIgLz48L3N2Zz5cbiAgICA8L2E+XG48L2Rpdj5cbmBgYFxuKi9cblxuLmRpc3BsYXktaW5saW5lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbn1cblxuLmRpc3BsYXktaW5saW5lLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbn1cblxuLmRpc3BsYXktYmxvY2sge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG59XG5cbi5kaXNwbGF5LWZsZXgge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94ICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4ICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogLW1vei1mbGV4ICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3ggIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG59XG5cbkBlYWNoICRicmVha3BvaW50LFxuJHZhciBpbiAkYnJlYWtwb2ludC12YXJpYWJsZXMge1xuICAgIC5kaXNwbGF5LWlubGluZS1mb3ItI3skYnJlYWtwb2ludH0ge1xuICAgICAgICBAbWVkaWEgI3skdmFyfSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZGlzcGxheS1pbmxpbmUtYmxvY2stZm9yLSN7JGJyZWFrcG9pbnR9IHtcbiAgICAgICAgQG1lZGlhICN7JHZhcn0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmRpc3BsYXktYmxvY2stZm9yLSN7JGJyZWFrcG9pbnR9IHtcbiAgICAgICAgQG1lZGlhICN7JHZhcn0ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZGlzcGxheS1mbGV4LWZvci0jeyRicmVha3BvaW50fSB7XG4gICAgICAgIEBtZWRpYSAjeyR2YXJ9IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXggIWltcG9ydGFudDtcbiAgICAgICAgICAgIGRpc3BsYXk6IC1tb3otZmxleCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3ggIWltcG9ydGFudDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4vKmRvY1xuLS0tXG50aXRsZTogRGlzcGxheSBUYWJsZSBDZWxsXG5uYW1lOiBkLWRpc3BsYXktdGFibGUtY2VsbFxuY2F0ZWdvcnk6IExheW91dCAtIExheW91dCBIZWxwZXJzXG5zZWxlY3RvcnM6XG4gICAgLSAuZGlzcGxheS10YWJsZS1jZWxsXG4gICAgLSAuZGlzcGxheS10YWJsZVxuICAgIC0gLmRpc3BsYXktdGFibGUtZm9yLWxhcmdlLXVwLW9ubHlcbiAgICAtIC50YWJsZS1jZWxsLWNlbnRlclxuc2VsZWN0b3JfdHlwZTogbGF5b3V0XG4tLS1cblxuVXNlIHRoaXMgY2xhc3MgdG8gcHJldmVudCBjbGFzc2VzIHdpdGggYnVsbGV0ZWQgdGV4dCBmcm9tIHdyYXBwaW5nIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmUuXG5cbmBgYCBodG1sX2V4YW1wbGVcbjx1bCBjbGFzcz1cIm5vLWJ1bGxldFwiPlxuICAgIDxsaSBjbGFzcz1cImJsb2NrLXRpZ2h0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0IGJhci10aWdodFwiPlxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImljb24gYmFkZ2UgcmFua2luZ1wiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48dXNlIHhsaW5rOmhyZWY9XCIvc3RhdGljL3Nwcml0ZXMvc3ZnL3Nwcml0ZS5zeW1ib2wuc3ZnI21pbmktYmFkZ2VcIiAvPjwvc3ZnPlxuICAgICAgICAgICAgPHN0cm9uZz4jMTwvc3Ryb25nPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGEgY2xhc3M9XCJ0ZXh0LWJsYWNrIGRpc3BsYXktdGFibGUtY2VsbFwiIGhyZWY9XCIjXCI+XG4gICAgICAgICAgICA8c3Bhbj5GaXJzdCBpdGVtPC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgPC9saT5cbiAgICA8bGkgY2xhc3M9XCJibG9jay10aWdodFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdCBiYXItdGlnaHRcIj5cbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJpY29uIGJhZGdlIHJhbmtpbmdcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHVzZSB4bGluazpocmVmPVwiL3N0YXRpYy9zcHJpdGVzL3N2Zy9zcHJpdGUuc3ltYm9sLnN2ZyNtaW5pLWJhZGdlXCIgLz48L3N2Zz5cbiAgICAgICAgICAgIDxzdHJvbmc+IzI8L3N0cm9uZz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxhIGNsYXNzPVwidGV4dC1ibGFjayBkaXNwbGF5LXRhYmxlLWNlbGxcIiBocmVmPVwiI1wiPlxuICAgICAgICAgICAgPHNwYW4+QW4gaXRlbSB3aXRoIGEgcmVhbGx5LCByZWFsbHksIHJlYWxseSwgcmVhbGx5LCBsb25nIG5hbWUuIChSZWFsbHkpPC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgPC9saT5cbiAgICA8bGkgY2xhc3M9XCJibG9jay10aWdodFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdCBiYXItdGlnaHRcIj5cbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJpY29uIGJhZGdlIHJhbmtpbmdcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHVzZSB4bGluazpocmVmPVwiL3N0YXRpYy9zcHJpdGVzL3N2Zy9zcHJpdGUuc3ltYm9sLnN2ZyNtaW5pLWJhZGdlXCIgLz48L3N2Zz5cbiAgICAgICAgICAgIDxzdHJvbmc+IzM8L3N0cm9uZz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxhIGNsYXNzPVwidGV4dC1ibGFjayBkaXNwbGF5LXRhYmxlLWNlbGxcIiBocmVmPVwiI1wiPlxuICAgICAgICAgICAgPHNwYW4+VGhpcmQgaXRlbTwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgIDwvbGk+XG48L3VsPlxuYGBgXG5cbiovXG5cbi5kaXNwbGF5LXRhYmxlIHtcbiAgICBkaXNwbGF5OiB0YWJsZSFpbXBvcnRhbnQ7XG59XG5cbi5kaXNwbGF5LXRhYmxlLWZvci1sYXJnZS11cC1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIEBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG4uZGlzcGxheS10YWJsZS1jZWxsIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuXG4gICAgJi5hbGlnbi1taWRkbGUge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbn1cblxuLnRhYmxlLWNlbGwtY2VudGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgcGFkZGluZy1sZWZ0OiByZW0tY2FsYygzMCk7XG4gICAgcGFkZGluZy1yaWdodDogcmVtLWNhbGMoMzApO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgICAgaGVpZ2h0OiByZW0tY2FsYygxODgpO1xuICAgICAgICBtaW4taGVpZ2h0OiByZW0tY2FsYygxODgpO1xuICAgICAgICBtYXgtaGVpZ2h0OiByZW0tY2FsYygxODgpO1xuICAgIH1cbn1cblxuLypkb2Ncbi0tLVxudGl0bGU6IEZsb2F0IEhlbHBlcnNcbm5hbWU6IGUtZmxvYXQtaGVscGVyc1xuY2F0ZWdvcnk6IExheW91dCAtIExheW91dCBIZWxwZXJzXG5zZWxlY3RvcnM6XG4gICAgLSAubGVmdC1mb3Itc21hbGwtb25seVxuICAgIC0gLnJpZ2h0LWZvci1zbWFsbC1vbmx5XG4gICAgLSAubGVmdC1mb3ItbWVkaXVtLXVwXG4gICAgLSAucmlnaHQtZm9yLW1lZGl1bS11cFxuICAgIC0gLmxlZnQtZm9yLW1lZGl1bS1vbmx5XG4gICAgLSAucmlnaHQtZm9yLW1lZGl1bS1vbmx5XG4gICAgLSAubGVmdC1mb3ItbGFyZ2UtdXBcbiAgICAtIC5yaWdodC1mb3ItbGFyZ2UtdXBcbnNlbGVjdG9yX3R5cGU6IGxheW91dFxuLS0tXG5cbllvdSBjYW4gY2hhbmdlIHRoZSBmbG9hdCBiZWhhdmlvciBvZiBhbiBlbGVtZW50IGJ5IGFkZGluZyAubGVmdCBvciAucmlnaHQgdG9cbmFuIEhUTUwgZWxlbWVudC4gVG8gY2xlYXIgZmxvYXRzLCBhZGQgdGhlIGNsYXNzIC5jbGVhcmZpeCB0byB0aGUgcGFyZW50IGVsZW1lbnRcbm9yIHVzZSB0aGUgY2xhc3MgLmNsZWFyIHRvIGNsZWFyIGJvdGggYWJvdmUgYW4gZWxlbWVudC5cblxuSWYgeW91IG5lZWQgdG8gY2hhbmdlIGZsb2F0IGJlaGF2aW9yIGF0IGRpZmZlcmVudCBicmVha3BvaW50cyB5b3UgY2FuIHVzZTpcblxufCBMZWZ0ICAgICAgICAgICAgICAgICAgICB8IFJpZ2h0ICAgICAgICAgICAgICAgICAgIHxcbnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG58IGAubGVmdC1mb3Itc21hbGwtb25seWAgIHwgYC5yaWdodC1mb3Itc21hbGwtb25seWAgfFxufCBgLmxlZnQtZm9yLW1lZGl1bS11cGAgICB8IGAucmlnaHQtZm9yLW1lZGl1bS11cGAgIHxcbnwgYC5sZWZ0LWZvci1tZWRpdW0tb25seWAgfCBgLnJpZ2h0LWZvci1tZWRpdW0tb25seWB8XG58IGAubGVmdC1mb3ItbGFyZ2UtdXBgICAgIHwgYC5yaWdodC1mb3ItbGFyZ2UtdXBgICAgfFxuXG5cbmBgYGh0bWxfZXhhbXBsZT9raXRjaGVuLXNpbms9dHJ1ZVxuPGRpdiBjbGFzcz1cInBhbmVsIGNsZWFyZml4XCI+XG4gICAgPGEgY2xhc3M9XCJidXR0b24gcmlnaHRcIj5GbG9hdCBSaWdodDwvYT5cbiAgICA8YSBjbGFzcz1cImJ1dHRvbiBsZWZ0LWZvci1zbWFsbC1vbmx5XCI+RmxvYXQgTGVmdDwvYT5cbjwvZGl2PlxuYGBgXG4qL1xuXG5AZWFjaCAkYnJlYWtwb2ludCxcbiR2YXIgaW4gJGJyZWFrcG9pbnQtdmFyaWFibGVzIHtcbiAgICAucmlnaHQtZm9yLSN7JGJyZWFrcG9pbnR9IHtcbiAgICAgICAgQG1lZGlhICN7JHZhcn0ge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmxlZnQtZm9yLSN7JGJyZWFrcG9pbnR9IHtcbiAgICAgICAgQG1lZGlhICN7JHZhcn0ge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNsZWFyIHtcbiAgICBjbGVhcjogYm90aDtcbn1cblxuXG4vKmRvY1xuLS0tXG50aXRsZTogRnVsbCBXaWR0aCBIZWxwZXJcbm5hbWU6IGgtZnVsbC13aWR0aFxuY2F0ZWdvcnk6IExheW91dCAtIExheW91dCBIZWxwZXJzXG5zZWxlY3RvcnM6XG4gICAgLSAuZnVsbC13aWR0aFxuICAgIC0gLmZ1bGwtd2lkdGgtZm9yLXNtYWxsLW9ubHlcbiAgICAtIC52ZXJ0aWNhbC1hbGlnblxuLS0tXG5cbj4qKlRPRE86KiogUmVmYWN0b3IsIHNlZW1zIHRvbyBzcGVjaWZpYyB0byBhbiBpbXBsZW1lbnRhdGlvblxuXG5UaGlzIGlzIG1vc3QgY29tbW9ubHkgdXNlIGluIHRoZSByYWlsIG9uIGRpdnMgc3Vycm91bmRpbmcgYWxsIGNvbXBvbmVudCAoYmxvY2sgbGV2ZWwpLCBzbyB0aGF0IHRoZXkgYWxsIGhhdmUgdGhlIHNhbWUgc3R5bGluZyBvZiAyNXB4IHBhZGRpbmctYm90dG9tLCBib3JkZXItYm90dG9tLCAyNXB4IG1hcmdpbi1ib3R0b21cblxuVGhlIGFzc3VtcHRpb24gaXMgdGhhdCBhbGwgY29tcG9uZW50cyB0aGF0IGFyZSBzZWNvbmRhcnkgY29udGVudCAodGhhdCBnbyBpbnRvIHRoZSByYWlsIG9uIGxhcmdlLCB3aWxsIGhhdmUgbm8gcGFkZGluZy9tYXJnaW4gb24gdGhlIG91cnNpZGUgb2YgdGhlIGNvbXBvbmVudCAod2hhdCB5b3UgdmlzdWFsbHkgc2VlIGF0IHRoZSBlbmQgb2YgaXQpKVxuXG5gYGAgaHRtbF9leGFtcGxlXG48YXNpZGUgaWQ9XCJyYWlsXCI+PCEtLSBleGFtcGxlIG9mIHdoZXJlIGl0IHdvdWxkIGJlIGluIHRoZSBsYXlvdXQgLS0+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyZWQtYm90dG9tIGZ1bGwtd2lkdGhcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIi5hZC1yZWN0YW5nbGVcIj5cbiAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cDovL3BsYWNlaG9sZC5pdC8zMDB4MjUwLzk5OTk5OS9mZmZmZmYmdGV4dD1ERVNLVE9QIEFEXCIvPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuPC9hc2lkZT5cbmBgYFxuXG5gYGAgc2Fzc19leGFtcGxlXG4uZnVsbC13aWR0aCB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5gYGBcbiovXG5cbi5mdWxsLXdpZHRoIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICAuZnVsbC13aWR0aC1mb3Itc21hbGwtb25seSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn1cblxuLmZ1bGwtaGVpZ2h0IHtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbkBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgLmZ1bGwtaGVpZ2h0LWZvci1zbWFsbC1vbmx5IHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbn1cblxuLnZlcnRpY2FsLWFsaWduID4gbGkgPiAqIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuXG4vKmRvY1xuLS0tXG50aXRsZTogQ2FsbG91dCBIZWxwZXJzXG5uYW1lOiBlLWNhbGxvdXQtaGVscGVyc1xuY2F0ZWdvcnk6IExheW91dCAtIExheW91dCBIZWxwZXJzXG5zZWxlY3RvcnM6XG4gICAgLSAuY2FsbG91dC1sZWZ0XG4gICAgLSAuY2FsbG91dC1yaWdodFxuc2VsZWN0b3JfdHlwZTogbGF5b3V0XG50ZW1wbGF0ZTpcbiAgICBhbGlnbm1lbnQ6IGxlZnRcbi0tLVxuXG5UaGlzIGlzIGZvciBjb250ZW50IHRoYXQgZmxvYXRzIGxlZnQgb3IgcmlnaHQgaW4gYW4gYXJ0aWNsZSBib2R5LiBPbiBtb2JpbGUsIGl0IHRha2VzIHRoZVxuZW50aXJlIHdpZHRoLlxuXG5gYGBodG1sX2V4YW1wbGVcbjxkaXYgY2xhc3M9XCJjbGVhcmZpeFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjYWxsb3V0LXJpZ2h0IHRleHQtY2VudGVyIGNsZWFyZml4XCI+XG4gICAgICAgIDxpbWcgY2xhc3M9XCJibG9jay10aWdodFwiIHN0eWxlPVwibWF4LXdpZHRoOiAxMDAlO2JvcmRlcjoxcHggc29saWQgIzk5OVwiIHNyYz1cImh0dHA6Ly93d3ctdWF0NS51c25ld3MuY29tL2RpbXM0L1VTTkVXUy9hNGZmNGRiLzIxNDc0ODM2NDcvcmVzaXplLzMwMHgvcXVhbGl0eS84NS8/dXJsPWh0dHAlM0ElMkYlMkZ3d3cudXNuZXdzLmNvbSUyRmNtc21lZGlhJTJGOTMlMkY4YiUyRmNkODM2MTkwNDY5YmEwYWQ0NmQ2NWQyMzg3YjQlMkZhcDI2OTg3MDkxNzY4My00LmpwZ1wiIGFsdD1cIkNpdmlsaWFucyBhbmQgYXJtZWQgZm9yY2VzIG1lbWJlcnMgY2FycnkgdGhlIGZsYWctZHJhcGVkIGNvZmZpbiBvZiBJcmFuaWFuIFJldm9sdXRpb25hcnkgR3VhcmQgQnJpZy4gR2VuLiBNb2hhbW1hZCBBbGkgQWxsYWhkYWRpIGluIGhpcyBmdW5lcmFsIGNlcmVtb255IG91dHNpZGUgdGhlIEd1YXJkIGNvbXBvdW5kIGluIFRlaHJhbiwgSXJhbiwgV2VkbmVzZGF5LCBKYW4uIDIxLCAyMDE1LiBcIiB0aXRsZT1cIlZhaGlkIFNhbGVtaS9BUFwiIGRhdGEtZG9jLWlkPVwiN2NiYjQ3ZDctMGQ5OS00M2IxLWI4MzItNGJlMjQ0Y2RmMWI2XCI+XG4gICAgICAgIDxwIGNsYXNzPVwidGV4dC1tdXRlZCB0ZXh0LXNtYWxsIGJsb2NrLW5vcm1hbCB0ZXh0LWxlZnRcIiBzdHlsZT1cIm1heC13aWR0aDozMDBweDttYXJnaW46IDAgYXV0bztcIiBkYXRhLWRvYy1pZD1cIjBjMzhlODA3LWQxYmQtNDQ0YS1iZGE5LTFhZTE2MzllMWVmM1wiPkRheSBpbiBQaG90b3M6IFdvcmxkIEVjb25vbWljIEZvcnVtPC9wPlxuXG4gICAgICAgIDxwIGNsYXNzPVwiYmxvY2stdGlnaHQgdGV4dC1zbWFsbCB0ZXh0LW11dGVkIHRleHQtbGVmdFwiIHN0eWxlPVwibWF4LXdpZHRoOjMwMHB4O21hcmdpbjogMCBhdXRvO1wiIGRhdGEtZG9jLWlkPVwiMWEzNDEzMTgtNjcwNy00ZTNmLWFmNzUtMjY0N2YzNTdkMTU5XCI+PHN2ZyBjbGFzcz1cImljb24gbXV0ZWQgcm90YXRlLTEzNVwiIGRhdGEtZG9jLWlkPVwiNTAyMDIzZjgtZjU1Mi00NTE5LTk1NWItZDhkYmQyMThkZmI0XCIgdmlld0JveD1cIjAgMCA2NCA2NFwiPjxzdHlsZT4uc3Qwe2ZpbGw6I2QwYjE1Mn0uc3Qxe2ZpbGw6I2Y5YzE0Zn0uc3Qye2ZpbGw6I2ZkZDg5NX0uc3Qze2ZpbGw6IzAxMDEwMX0uc3Q0e2ZpbGw6bm9uZX0uc3Q1e3N0cm9rZTojMDAwO3N0cm9rZS13aWR0aDo0LjgwNjY7c3Ryb2tlLW1pdGVybGltaXQ6MTB9PC9zdHlsZT48cGF0aCBkPVwiTTQ5LjMgMzIuNEwzMi44IDQ4LjhjLS42LjYtMS40LjktMi4zLjktLjkgMC0xLjctLjQtMi4zLS45bC0xLjktMS45Yy0uNi0uNi0xLTEuNC0xLTIuM3MuNC0xLjcgMS0yLjNsNy40LTcuNEgxNmMtMS44IDAtMy0xLjUtMy0zLjJ2LTMuMmMwLTEuNyAxLjEtMy4yIDMtMy4yaDE3LjhsLTcuNC03LjRjLS42LS42LTEtMS40LTEtMi4zIDAtLjkuNC0xLjcgMS0yLjNsMS45LTEuOWMuNi0uNiAxLjQtMSAyLjMtMSAuOSAwIDEuNy40IDIuMyAxbDE2LjUgMTYuNWMuNi42LjkgMS40LjkgMi4zLS4xLjctLjQgMS42LTEgMi4yelwiPjwvcGF0aD48L3N2Zz4gRVhQQU5EIEdBTExFUlk8L3A+XG4gICAgICAgIDxociBzdHlsZT1cIm1heC13aWR0aDozMDBweDttYXJnaW46IDAgYXV0bztcIj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuYGBgXG5cbiovXG5cbiVjYWxsb3V0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAkYmxvY2stbm9ybWFsO1xuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxufVxuXG4uY2FsbG91dC1sZWZ0IHtcbiAgICBAZXh0ZW5kICVjYWxsb3V0O1xuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJGJsb2NrLWxvb3NlO1xuICAgICAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICAgIH1cbiAgICAubGFyZ2UtOC5sYXJnZS1vZmZzZXQtMiA+ICYge1xuICAgICAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtNnJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNhbGxvdXQtcmlnaHQge1xuICAgIEBleHRlbmQgJWNhbGxvdXQ7XG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkYmxvY2stbG9vc2U7XG4gICAgICAgIG1heC13aWR0aDogMzAwcHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICB9XG4gICAgLmxhcmdlLTgubGFyZ2Utb2Zmc2V0LTIgPiAmIHtcbiAgICAgICAgQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC02cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi8qXG5RdWljayBmaXggdG8gZ2V0IHRoZSBIUnMgdG8gY29sbGFwc2UgYSBiaXRcbiovXG5cbmhyLnRpZ2h0IHtcbiAgICBtYXJnaW46IDAuNXJlbSAwIDAuNXJlbTtcbn1cblxuaHIuZmx1c2gge1xuICAgIG1hcmdpbjogMDtcbn1cblxuLypkb2Ncbi0tLVxudGl0bGU6IEh1Z1xubmFtZTogZi1odWdcbmNhdGVnb3J5OiBMYXlvdXQgLSBMYXlvdXQgSGVscGVyc1xuc2VsZWN0b3JzOlxuICAgIC0gLmh1Z1xuc2VsZWN0b3JfdHlwZTogbGF5b3V0XG4tLS1cblxuU29tZXRpbWVzIHlvdSBuZWVkIHRvIHB1bGwgYSBjb21wb25lbnQgdXAgb25lIHBpeGVsLlxuUHV0IGAuaHVnYCBvbiBhIGNvbXBvbmVudCBhbmQgaXQgd2lsbCBhcHBseSBhIC0xcHggbWFyZ2luLXRvcC5cblxuU2VlIGFuIGV4YW1wbGUgYmVsb3cgb2YgaG93IGl0IGNvdWxkIGJlIGhlbHBmdWw6XG5cbmBgYGh0bWxfZXhhbXBsZVxuPGRpdiBjbGFzcz1cInBhbmVsIG5ha2VkIGJsb2NrLWZsdXNoXCI+XG4gICAgPGg1PlRoaXMgaXMgYSBwYW5lbCB3aXRoIGEgLmJsb2NrLWZsdXNoIGNsYXNzLjwvaDU+XG4gICAgPHA+U2VlIHdoYXQgaGFwcGVucyBiZWxvdzwvcD5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwicGFuZWwgbmFrZWQgaHVnXCI+XG4gICAgPGg1PlRoaXMgYSBwYW5lbCB3aXRoIC5uYWtlZC5odWcgY2xhc3M8L2g1PlxuICAgIDxwPkl0IGlzIGRlc2lnbmVkIHRvIHdvcmsgYmVsb3cgYW5vdGhlciBwYW5lbCB3aGVyZSB5b3Ugd2FudFxuICAgIHRvIGNyZWF0ZSBhIDFweCBib3JkZXIgYmV0d2VlbjwvcD5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwicGFuZWwgbmFrZWQgYmxvY2stZmx1c2hcIj5cbiAgICA8aDU+bm8gaHVnPC9oNT5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwicGFuZWwgbmFrZWRcIj5cbiAgICA8aDU+bm8gaHVnPC9oNT5cbjwvZGl2PlxuYGBgXG4qL1xuXG4uaHVnIHtcbiAgICBtYXJnaW4tdG9wOiAtMXB4O1xufVxuXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBCYWNrZ3JvdW5kIFBvc2l0aW9uaW5nXG5uYW1lOiBmLWJhY2tncm91bmQtcG9zaXRpb25cbmNhdGVnb3J5OiBMYXlvdXQgLSBCYWNrZ3JvdW5kIFBvc2l0aW9uaW5nXG5zZWxlY3RvcnM6XG4gICAgLSAuYmFja2dyb3VuZF9wb3NpdGlvbl90b3BfY2VudGVyXG4gICAgLSAuYmFja2dyb3VuZF9wb3NpdGlvbl9ib3R0b21fY2VudGVyXG5zZWxlY3Rvcl90eXBlOiBsYXlvdXRcbi0tLVxuXG5Tb21ldGltZXMgeW91IG5lZWQgdG8gcHVsbCBhIGNvbXBvbmVudCB1cCBvbmUgcGl4ZWwuXG5QdXQgYC5odWdgIG9uIGEgY29tcG9uZW50IGFuZCBpdCB3aWxsIGFwcGx5IGEgLTFweCBtYXJnaW4tdG9wLlxuXG4qL1xuXG4uYmFja2dyb3VuZF9wb3NpdGlvbl90b3BfY2VudGVyIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyO1xufVxuXG4uYmFja2dyb3VuZF9wb3NpdGlvbl9ib3R0b21fY2VudGVyIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b20gY2VudGVyO1xufVxuXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBSZWxhdGl2ZSBQb3NpdGlvbmluZ1xubmFtZTogZy1yZWxhdGl2ZS1wb3NpdGlvbmluZ1xuY2F0ZWdvcnk6IExheW91dCAtIExheW91dCBIZWxwZXJzXG5zZWxlY3RvcnM6XG4gICAgLSAucmVsYXRpdmVcbnNlbGVjdG9yX3R5cGU6IGxheW91dFxuLS0tXG5cblNvbWV0aW1lcyB5b3UgbmVlZCBgcG9zaXRpb246IHJlbGF0aXZlYCBvbiBhIGNvbnRhaW5lciB0byBjb250cm9sXG5jaGlsZCBlbGVtZW50cyB0aGF0IGFyZSBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQuXG4qL1xuXG4ucmVsYXRpdmUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xufVxuXG4vKmRvY1xuLS0tXG50aXRsZTogQWJzb2x1dGUgUG9zaXRpb25pbmdcbm5hbWU6IGctYWJzb2x1dGUtcG9zaXRpb25pbmdcbmNhdGVnb3J5OiBMYXlvdXQgLSBMYXlvdXQgSGVscGVyc1xuc2VsZWN0b3JzOlxuICAgIC0gLmFic29sdXRlXG5zZWxlY3Rvcl90eXBlOiBsYXlvdXRcbi0tLVxuXG5Tb21ldGltZXMgeW91IG5lZWQgYHBvc2l0aW9uOiBhYnNvbHV0ZWAgb24gYW4gZWxlbWVudCB0byBjb250cm9sXG53aGVyZSBpdCBhcHBlYXJzIG9uIHRoZSBwYWdlLlxuKi9cblxuLmFic29sdXRlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbn1cblxuLmhpZGUtb3ZlcmZsb3cge1xuICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLypkb2Ncbi0tLVxudGl0bGU6IFN0cmV0Y2hpbmdcbm5hbWU6IGgtc3RyZXRjaGluZ1xuY2F0ZWdvcnk6IExheW91dCAtIExheW91dCBIZWxwZXJzXG5zZWxlY3RvcnM6XG4gICAgLSAuc3RyZXRjaGVkXG5zZWxlY3Rvcl90eXBlOiBsYXlvdXRcbi0tLVxuXG5Tb21ldGltZXMgeW91IG5lZWQgdG8gc3RyZXRjaCBhIGNvbnRhaW5lciB0byBiZSBmdWxsc2NyZWVuLlxuKi9cblxuLnN0cmV0Y2hlZCB7XG4gICAgd2lkdGg6IDEwMHZ3O1xuICAgIGhlaWdodDogMTAwdmg7XG59XG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBGYWRpbmdcbm5hbWU6IGktZmFkaW5nXG5jYXRlZ29yeTogTGF5b3V0IC0gTGF5b3V0IEhlbHBlcnNcbnNlbGVjdG9yczpcbiAgICAtIC5mYWRlZFxuc2VsZWN0b3JfdHlwZTogbGF5b3V0XG4tLS1cblxuU29tZXRpbWVzIHlvdSBuZWVkIHRvIG1ha2Ugc29tZXRoaW5nIGZhZGVkLCB0byBzaG93IHRoYXQgaXQgaXMgZGlzYWJsZWQgb3JcbmxvY2tlZC5cblxuU2VlIGFuIGV4YW1wbGUgYmVsb3cgb2YgaG93IGl0IGNvdWxkIGJlIGhlbHBmdWw6XG5cbmBgYGh0bWxfZXhhbXBsZVxuPGRpdiBjbGFzcz1cInBhbmVsXCI+XG4gICAgPHA+Tm90IGZhZGVkPC9wPlxuICAgIDxhPkhlcmUgaXMgYW4gYW5jaG9yPC9hPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJwYW5lbCBmYWRlZFwiPlxuICAgIDxwPkZhZGVkPC9wPlxuICAgIDxhPkhlcmUgaXMgYW4gYW5jaG9yPC9hPlxuPC9kaXY+XG5cbiovXG5cbi5mYWRlZCB7XG4gICAgb3BhY2l0eTogMC41O1xufVxuIiwiLmZsZXgge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgQGluY2x1ZGUgZmxleGJveDtcbiAgICBAaW5jbHVkZSBmbGV4KDAsIDEsIGF1dG8pO1xuICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uO1xuICAgIEBpbmNsdWRlIGZsZXgtd3JhcCh3cmFwKTtcbiAgICBtYXgtd2lkdGg6ICRyb3ctd2lkdGg7XG4gICAgbWFyZ2luOiAwIGF1dG87IC8vIFRPRE86IG5lZWQgdG8gaGFuZGxlIG5lc3RlZCBvciBub3Rcbn1cblxuLmZsZXgtaXRlbSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBAaW5jbHVkZSBmbGV4KDEsIDAsIDApO1xuICAgIG1heC13aWR0aDogMTAwJTtcbn1cblxuLy8gU21hbGwgdXRpbGl0eSBjbGFzcyBmb3IgZmxleCBlbGVtZW50cyB0aGF0IHNob3VsZCBub3QgZXhwYW5kIHdpdGggdGhlaXIgbmVpZ2hib3JzXG4uZmxleC1ncm93LTAge1xuICAgIEBpbmNsdWRlIGZsZXgtZ3JvdygwKTtcbn1cblxuLmZsZXgtc2hyaW5rLTAge1xuICAgIEBpbmNsdWRlIGZsZXgtc2hyaW5rKDApO1xufVxuXG4uZmxleC1zdGFydCB7XG4gICAgQGluY2x1ZGUganVzdGlmeS1jb250ZW50KCk7XG4gICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgQG1lZGlhIGFsbCBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0Om5vbmUpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG59XG5cbi5mbGV4LWNlbnRlciB7XG4gICAgQGluY2x1ZGUganVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uZmxleC1lbmQge1xuICAgIEBpbmNsdWRlIGp1c3RpZnktY29udGVudChmbGV4LWVuZCk7XG4gICAgdGV4dC1hbGlnbjogZW5kO1xuICAgIEBtZWRpYSBhbGwgYW5kICgtbXMtaGlnaC1jb250cmFzdDpub25lKSB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgICBvdmVyZmxvdzogYXV0bztcbn1cblxuLmZsZXgtdG9wIHtcbiAgICBAaW5jbHVkZSBhbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuLmZsZXgtbWlkZGxlIHtcbiAgICBAaW5jbHVkZSBhbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG4uZmxleC1ib3R0b20ge1xuICAgIEBpbmNsdWRlIGFsaWduLWl0ZW1zKGZsZXgtZW5kKTtcbn1cblxuLmZsZXgtc3RyZXRjaCB7XG4gICAgQGluY2x1ZGUgYWxpZ24taXRlbXMoc3RyZXRjaCk7XG59XG5cbi8vIGRpc3RyaWJ1dGlvblxuLmZsZXgtYXJvdW5kIHtcbiAgICBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYXJvdW5kKTtcbn1cblxuLmZsZXgtYmV0d2VlbiB7XG4gICAgQGluY2x1ZGUganVzdGlmeS1jb250ZW50KHNwYWNlLWJldHdlZW4pO1xufVxuXG4uZmxleC1maXJzdCB7XG4gICAgQGluY2x1ZGUgb3JkZXIoLTEpO1xufVxuXG4uZmxleC1sYXN0IHtcbiAgICBAaW5jbHVkZSBvcmRlcigxKTtcbn1cblxuQGVhY2ggJGJyZWFrcG9pbnQsICR2YXIgaW4gJGJyZWFrcG9pbnQtdmFyaWFibGVzIHtcbiAgICAuZmxleC1maXJzdC1mb3ItI3skYnJlYWtwb2ludH0ge1xuICAgICAgICBAbWVkaWEgI3skdmFyfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBvcmRlcigtMSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmZsZXgtbGFzdC1mb3ItI3skYnJlYWtwb2ludH0ge1xuICAgICAgICBAbWVkaWEgI3skdmFyfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBvcmRlcigxKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmZsZXgtZnVsbC13aWR0aCB7XG4gICAgQGV4dGVuZCAuZmxleDtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5mbGV4LW5vd3JhcCB7XG4gICAgLXdlYmtpdC1mbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50O1xuICAgIC1tb3otZmxleC13cmFwOiBub3dyYXAgIWltcG9ydGFudDtcbiAgICAtbXMtZmxleC13cmFwOiBub3dyYXAgIWltcG9ydGFudDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50O1xufVxuXG4uZmxleC1kYXRhLWNvbHVtbnMge1xuICAgID4gLmZsZXgtZGF0YS1jb2wge1xuICAgICAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgIH1cblxuICAgIEBtZWRpYSAjeyRsYXJnZX0ge1xuICAgICAgICA+IC5mbGV4LWRhdGEtY29sOm50aC1jaGlsZCgxKTpudGgtbGFzdC1jaGlsZCgyKSB7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiA1MCU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgPiAuZmxleC1kYXRhLWNvbDpudGgtY2hpbGQoMSk6bnRoLWxhc3QtY2hpbGQoMikgKyAuZmxleC1kYXRhLWNvbCB7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiA1MCU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKmRvY1xuLS0tXG50aXRsZTogQmFzaWMgRmxleCBHcmlkXG5uYW1lOiBhLWZsZXgtZ3JpZFxuY2F0ZWdvcnk6IExheW91dCAtIEdyaWRcbnNlbGVjdG9yczpcbiAgICAtIC5mbGV4LXJvd1xuc2VsZWN0b3JfdHlwZTogbGF5b3V0XG4tLS1cblxuU2ltaWxhciB0byB0aGUgb3JpZ2luYWwgRm91bmRhdGlvbiBncmlkIGJ1dCB5b3UgY2FuIGhhdmVcbiphdXRvLXdpZHRoKiBjb2x1bW5zICB3aGVyZSB5b3UgbGV0IGZsZXhib3ggZmlndXJlIG91dCB0aGUgY29sdW1uIHdpZHRocy4gU2ltcGx5XG5sZWF2ZSBvZmYgdGhlIG51bWJlciBhdCB0aGUgZW5kIG9mIHRoZSBjbGFzcyBuYW1lLiBGb3IgZXhhbXBsZTogYC5mbGV4LXNtYWxsYC5cblxuKipOb24tZmxleCBpdGVtcyBpbiBhIGZsZXggcm93KipcblxuQWxzbywga2VlcCBpbiBtaW5kIHRoYXQgeW91IHZlcnkgb2Z0ZW4gbWlnaHQgb2Z0ZW4gaGF2YSBhIGZsZXggcm93IHdoZXJlIHlvdVxuW21peCBmbGV4IGFuZCBub24tZmxleCBzaWJsaW5nc11bZi1mbGV4LWdyaWQtZXhhbXBsZXNdLiAqVGhpcyBpc1xubm90IGp1c3QgYSBncmlkIHN5c3RlbSwgaXQgaXMgbW9yZSBvZiBhbiBvdmVyYWxsIGxheW91dCB0b29sKi5cblxuQnV0IGtlZXAgaW4gbWluZCBuZXN0ZWQgYC5mbGV4LXJvd2AgaGF2ZSBhIG5lZ2F0aXZlIG1hcmdpbiBvbiB0aGUgbGVmdCBhbmQgcmlnaHRcbmxpa2UgbW9zdCBncmlkIHN5c3RlbXMuIElmIHlvdSBkZXNpcmUgdG8gdXNlIGAuZmxleC1yb3dgIGZvciB0aGUgZmxleGJveFxuZmVhdHVyZXMgYW5kIHlvdSB3YW50IHRvIHJlbW92ZSB0aGlzIGJlaGF2aW9yLCBzZXQgYW4gb3ZlcnJpZGUgY2xhc3Mgb2ZcbmAuZmxleC11bmdyaWRgLlxuXG5JZiB5b3Ugd2FudCB0byBoYXZlIHRoZSBob3Jpem9udGFsIHBhZGRpbmcgb2YgYSBmbGV4IGl0ZW0gb24gYSBub24tZmxleCBpdGVtIHlvdSBjYW4gd3JhcCBpdCB3aXRoIGEgYGRpdi5mbGV4LWZpeGVkYFxuXG4qKk5vdGUgOioqIFRoZXJlIGlzIG5vIGxvbmdlciBhIG5lZWQgZm9yIHRoZSBgLmNvbHVtbmAgb3IgYC5jb2x1bW5zYCBjbGFzc2VzXG53aGVuIHlvdSB1c2UgdGhlIGZsZXggZ3JpZC5cblxuIyMjIyBQZXJjZW50YWdlIFdpZHRoIENvbHVtbnNcblxuSGVyZSBpcyBhbiBleGFtcGxlIG9mICoqcGVyY2VudGFnZSBiYXNlZCBjb2x1bW5zKiogd2l0aCB0aGUgcm93IGRpdmlkZWQgaW5cbnRoaXJkcyBmb3IgKnNtYWxsKiBhbmQgdGhlbiBhIFwiMiA0IDZcIiAgbGF5b3V0IGZvciAqbWVkaXVtKi5cblxuYGBgaHRtbF9leGFtcGxlXG48ZGl2IGNsYXNzPVwiZmxleC1yb3dcIj5cbiAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwtNCBmbGV4LW1lZGl1bS0yXCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+PC9kaXY+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsLTQgZmxleC1tZWRpdW0tNFwiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjwvZGl2PjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbC00IGZsZXgtbWVkaXVtLTZcIj48ZGl2IGNsYXNzPVwicGFuZWxcIj48L2Rpdj48L2Rpdj5cbjwvZGl2PlxuYGBgXG5cbkhlcmUgaXMgYSBtb3JlIGNvbXBsaWNhdGVkIG5lc3RlZCBsYXlvdXQuXG5cbmBgYGh0bWxfZXhhbXBsZVxuXG48ZGl2IGNsYXNzPVwiZmxleC1yb3dcIj5cbiAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwtMTIgZmxleC1sYXJnZS04XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleC1yb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwtNCBmbGV4LW1lZGl1bS0yXCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+PC9kaXY+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsLTQgZmxleC1tZWRpdW0tNFwiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjwvZGl2PjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbC00IGZsZXgtbWVkaXVtLTZcIj48ZGl2IGNsYXNzPVwicGFuZWxcIj48L2Rpdj48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsLTEyIGZsZXgtbGFyZ2UtNFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwtMTIgcGFuZWxcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsLTEyIHBhbmVsXCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbC0xMiBwYW5lbFwiPjwvZGl2PlxuICAgPC9kaXY+XG48L2Rpdj5cbmBgYFxuIyMjIyBBdXRvLXdpZHRoIENvbHVtbnNcblxuKkF1dG8td2lkdGgqIGNvbHVtbnMgd2lsbCBiYXNpY2FsbHkgZGl2aWRlIHRoZSByb3cgaW50byBhcyBtYW55XG5jb2x1bW5zIGFzIHRoZXJlIGFyZSBjaGlsZCBkaXZzLlxuXG5Mb29rIE1hISBBIDUgY29sdW1uIGdyaWQhIFRoYXQnc1xuYSBiaXQgaGFyZGVyIHdpdGggcGVyY2VudGFnZSBiYXNlZCBncmlkcyAocHJvYiBjYW4gdXNlIGJsb2NrIGdyaWQgdGhvKS5cblxuYGBgIGh0bWxfZXhhbXBsZVxuPGRpdiBjbGFzcz1cImZsZXgtcm93XCI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsXCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+MTwvZGl2PjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbFwiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjI8L2Rpdj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGxcIj48ZGl2IGNsYXNzPVwicGFuZWxcIj4zPC9kaXY+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsXCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+NDwvZGl2PjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbFwiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjxzdHJvbmc+NSE8L3N0cm9uZz48L2Rpdj48L2Rpdj5cbjwvZGl2PlxuYGBgXG4jIyMjIFBlcmNlbnRhZ2UgYW5kIGF1dG8td2lkdGggY29sdW1ucyB0b2dldGhlclxuXG5IZXJlIGlzIGEgd2VpcmQgYXV0by13aWR0aCA1IGNvbHVtbiBsYXlvdXQgZm9yIHNtYWxsIHVzaW5nIGAuZmxleC1zbWFsbGBcbmFuZCB0aGVuIGZvciBtZWRpdW0gd2UgZml4IHRoZSBmaXJzdCBjb2x1bW4gdG8gNTAlIHdpdGggYSBgLmZsZXgtbWVkaXVtLTZgXG5hbmQgYC5mbGV4LW1lZGl1bWAoYXV0by13aWR0aCkgZm9yIHRoZSByZXN0LiBBbGwgdGhpc1xud2l0aG91dCBuZXN0aW5nLlxuXG5gYGAgaHRtbF9leGFtcGxlXG48ZGl2IGNsYXNzPVwiZmxleC1yb3dcIj5cbiAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwgZmxleC1tZWRpdW0tNlwiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjE8L2Rpdj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwgZmxleC1tZWRpdW1cIj48ZGl2IGNsYXNzPVwicGFuZWxcIj4yPC9kaXY+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsIGZsZXgtbWVkaXVtXCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+MzwvZGl2PjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbCBmbGV4LW1lZGl1bVwiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjQ8L2Rpdj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwgZmxleC1tZWRpdW1cIj48ZGl2IGNsYXNzPVwicGFuZWxcIj41PC9kaXY+PC9kaXY+XG48L2Rpdj5cbmBgYFxuIyMjIyBOZXN0aW5nXG5cbllvdSBjYW4gbmVzdCBpZiB5b3UgbGlrZS5cblxuYGBgIGh0bWxfZXhhbXBsZVxuPGRpdiBjbGFzcz1cImZsZXgtcm93XCIgc3R5bGU9XCJwYWRkaW5nLWJvdHRvbTogMjBweDsgcGFkZGluZy10b3A6IDIwcHg7IGJhY2tncm91bmQ6ICNlZWVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1yb3dcIiBzdHlsZT1cInBhZGRpbmctdG9wOiAyMHB4OyBiYWNrZ3JvdW5kOiAjZGRkXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbFwiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjwvZGl2PjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1yb3dcIiBzdHlsZT1cInBhZGRpbmctdG9wOiAyMHB4OyBiYWNrZ3JvdW5kOiAjZGRkXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbFwiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjwvZGl2PjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGxcIj48ZGl2IGNsYXNzPVwicGFuZWxcIj48L2Rpdj48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbmBgYFxuXG4jIyMjIENvbGxhcHNpbmcgKGFuZCBVbmNvbGxhcHNpbmcpXG5cblRoaXMgZXhhbXBsZSB3aWxsIGJlIGNvbGxhcHNlZCBpZiB5b3Ugc2l6ZSB5b3VyIGJyb3dzZXJcbnRvIHRoZSBtZWRpdW0gYnJlYWtwb2ludCB1c2luZyBgLm1lZGl1bS1jb2xsYXBzZS5sYXJnZS11bmNvbGxhcHNlYC5cblxuYGBgIGh0bWxfZXhhbXBsZVxuPGRpdiBjbGFzcz1cImZsZXgtcm93IG1lZGl1bS1jb2xsYXBzZSBsYXJnZS11bmNvbGxhcHNlXCIgc3R5bGU9XCJwYWRkaW5nLXRvcDogMjBweDsgYmFja2dyb3VuZDogI2VlZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsXCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+PC9kaXY+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGxcIj48ZGl2IGNsYXNzPVwicGFuZWxcIj48L2Rpdj48L2Rpdj5cbjwvZGl2PlxuYGBgXG5cbiovXG5cbi8vIHRoZXNlIHJ1bGVzIHVzZSBvdXIgZmxleGJveCBtaXhpbnMgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vbWFzdGFzdGVhbHRoL3Nhc3MtZmxleC1taXhpblxuLy8gdG8gYnVpbGQgdGhlIGZ1bmN0aW9uYWxpdHkgZnJvbSB0aGlzIGh0dHA6Ly9mbGV4Ym94Z3JpZC5jb20vXG4vLyBidXQgdXNpbmcgb3VyIGNsYXNzbmFtZXNcblxuLypkb2Ncbi0tLVxudGl0bGU6IEZsZXggR3JpZCBPZmZzZXRzXG5uYW1lOiBiLWZsZXgtZ3JpZC1vZmZzZXRzXG5jYXRlZ29yeTogTGF5b3V0IC0gR3JpZFxuLS0tXG5cbk9mZnNldCBjb2x1bW5zIGF0IHNtYWxsLCBtZWRpdW0gb3IgbGFyZ2UgYnJlYWtwb2ludHMuXG5cbmBgYGh0bWxfZXhhbXBsZVxuPGRpdiBjbGFzcz1cImZsZXgtcm93XCI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsLTMgZmxleC1zbWFsbC1vZmZzZXQtOVwiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjwvZGl2PjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbC00IGZsZXgtc21hbGwtb2Zmc2V0LThcIj48ZGl2IGNsYXNzPVwicGFuZWxcIj48L2Rpdj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwtNSBmbGV4LXNtYWxsLW9mZnNldC03XCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+PC9kaXY+PC9kaXY+XG48L2Rpdj5cbmBgYFxuKi9cblxuLypkb2Ncbi0tLVxudGl0bGU6IEZsZXggR3JpZCBBbGlnbm1lbnRcbm5hbWU6IGMtZmxleC1ncmlkLWFsaWdubWVudFxuY2F0ZWdvcnk6IExheW91dCAtIEdyaWRcbi0tLVxuXG4qKnN0YXJ0LSoqXG5cbkl0ZW0gYWxpZ25lZCB0byB0aGUgc3RhcnQgb2YgZmxleC1yb3cgd2l0aCBgLnNtYWxsLXN0YXJ0YC5cblxuYGBgaHRtbF9leGFtcGxlXG48ZGl2IGNsYXNzPVwiZmxleC1yb3cgc21hbGwtc3RhcnRcIiBzdHlsZT1cImJhY2tncm91bmQ6ICNlZWVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbC02XCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+PC9kaXY+PC9kaXY+XG48L2Rpdj5cbmBgYFxuXG4qKmNlbnRlci0qKlxuXG5JdGVtIGNlbnRlcmVkIGluIGZsZXgtcm93IHdpdGggYC5zbWFsbC1jZW50ZXJgLlxuXG5gYGBodG1sX2V4YW1wbGVcbjxkaXYgY2xhc3M9XCJmbGV4LXJvdyBzbWFsbC1jZW50ZXJcIiBzdHlsZT1cImJhY2tncm91bmQ6ICNlZWVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbC02XCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+PC9kaXY+PC9kaXY+XG48L2Rpdj5cbmBgYFxuXG4qKmVuZC0qKlxuXG5JdGVtIGFsaWduZWQgdG8gZW5kIG9mIGZsZXgtcm93IHdpdGggYC5zbWFsbC1lbmRgLlxuXG5gYGBodG1sX2V4YW1wbGVcbjxkaXYgY2xhc3M9XCJmbGV4LXJvdyBzbWFsbC1lbmRcIiBzdHlsZT1cImJhY2tncm91bmQ6ICNlZWVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbC02XCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+PC9kaXY+PC9kaXY+XG48L2Rpdj5cbmBgYFxuXG4qKkFsbCB0b2dldGhlciBub3cgKGhvcml6b250YWwpKipcblxuQWRqdXN0IHRoZSB3aWR0aCBvZiBzY3JlZW4gdG8gc2VlIGl0IGxlZnQgb24gc21hbGwsIGNlbnRlciBvbiBtZWRpdW0gYW5kIHJpZ2h0IG9uIGxhcmdlLlxuXG5gLnNtYWxsLXN0YXJ0Lm1lZGl1bS1jZW50ZXIubGFyZ2UtZW5kYFxuXG5gYGBodG1sX2V4YW1wbGVcbjxkaXYgY2xhc3M9XCJmbGV4LXJvdyBzbWFsbC1zdGFydCBtZWRpdW0tY2VudGVyIGxhcmdlLWVuZFwiIHN0eWxlPVwiYmFja2dyb3VuZDogI2VlZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsLTZcIj48ZGl2IGNsYXNzPVwicGFuZWxcIj5yZXNpemUgd2luZG93ITwvZGl2PjwvZGl2PlxuPC9kaXY+XG5gYGBcblxuKiotdG9wKipcblxuVGhlc2UgaXRlbXMgYXJlIGFsaWduZWQgdG8gdGhlIHRvcCBvZiB0aGUgZmxleC1yb3cgd2l0aCBgLnNtYWxsLXRvcGAuXG5cbmBgYGh0bWxfZXhhbXBsZVxuPGRpdiBjbGFzcz1cImZsZXgtcm93IHNtYWxsLXRvcFwiIHN0eWxlPVwiYmFja2dyb3VuZDogI2VlZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsLTRcIj48ZGl2IGNsYXNzPVwicGFuZWxcIj48L2Rpdj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbC00XCI+PGRpdiBjbGFzcz1cInBhbmVsXCIgc3R5bGU9XCJoZWlnaHQ6IDhyZW07XCI+PC9kaXY+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwtNFwiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjwvZGl2PjwvZGl2PlxuPC9kaXY+XG5gYGBcblxuKiotbWlkZGxlKipcblxuVGhlc2UgaXRlbXMgYXJlIGFsaWduZWQgdG8gdGhlIG1pZGRsZSBvZiB0aGUgZmxleC1yb3cgd2l0aCBgLnNtYWxsLW1pZGRsZWAuXG5cbmBgYGh0bWxfZXhhbXBsZVxuPGRpdiBjbGFzcz1cImZsZXgtcm93IHNtYWxsLW1pZGRsZVwiIHN0eWxlPVwiYmFja2dyb3VuZDogI2VlZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsLTRcIj48ZGl2IGNsYXNzPVwicGFuZWxcIj48L2Rpdj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbC00XCI+PGRpdiBjbGFzcz1cInBhbmVsXCIgc3R5bGU9XCJoZWlnaHQ6IDhyZW07XCI+PC9kaXY+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwtNFwiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjwvZGl2PjwvZGl2PlxuPC9kaXY+XG5gYGBcblxuKiotYm90dG9tKipcblxuVGhlc2UgaXRlbXMgYXJlIGFsaWduZWQgdG8gdGhlIGJvdHRvbSBvZiB0aGUgZmxleC1yb3cgd2l0aCBgLnNtYWxsLWJvdHRvbWAuXG5cbmBgYGh0bWxfZXhhbXBsZVxuPGRpdiBjbGFzcz1cImZsZXgtcm93IHNtYWxsLWJvdHRvbVwiIHN0eWxlPVwiYmFja2dyb3VuZDogI2VlZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsLTRcIj48ZGl2IGNsYXNzPVwicGFuZWxcIj48L2Rpdj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbC00XCI+PGRpdiBjbGFzcz1cInBhbmVsXCIgc3R5bGU9XCJoZWlnaHQ6IDhyZW07XCI+PC9kaXY+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwtNFwiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjwvZGl2PjwvZGl2PlxuPC9kaXY+XG5gYGBcblxuKipBbGwgdG9nZXRoZXIgbm93ICh2ZXJ0aWNhbCkqKlxuXG5BZGp1c3QgdGhlIHdpZHRoIG9mIHNjcmVlbiB0byBzZWUgaXQgdG9wIG9uIHNtYWxsLCBtaWRkbGUgb24gbWVkaXVtIGFuZCBib3R0b20gb24gbGFyZ2UuXG5cbmAuc21hbGwtdG9wLm1lZGl1bS1taWRkbGUubGFyZ2UtYm90dG9tYFxuXG5gYGBodG1sX2V4YW1wbGVcbjxkaXYgY2xhc3M9XCJmbGV4LXJvdyBzbWFsbC10b3AgbWVkaXVtLW1pZGRsZSBsYXJnZS1ib3R0b21cIiBzdHlsZT1cImJhY2tncm91bmQ6ICNlZWVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbC02XCI+PGRpdiBjbGFzcz1cInBhbmVsXCIgc3R5bGU9XCJoZWlnaHQ6IDhyZW07XCI+PC9kaXY+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwtNlwiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPnJlc2l6ZSB3aW5kb3chPC9kaXY+PC9kaXY+XG48L2Rpdj5cbmBgYFxuKi9cblxuLypkb2Ncbi0tLVxudGl0bGU6IEZsZXggR3JpZCBEaXN0cmlidXRpb25cbm5hbWU6IGQtZmxleC1ncmlkLWRpc3RyaWJ1dGlvblxuY2F0ZWdvcnk6IExheW91dCAtIEdyaWRcbi0tLVxuXG4qKi1hcm91bmQqKlxuXG5UaGVzZSBpdGVtcyBoYXZlIGVxdWFsIHNwYWNlICphcm91bmQqIHRoZW0gd2l0aCBgLnNtYWxsLWFyb3VuZGAuXG5cbmBgYGh0bWxfZXhhbXBsZVxuPGRpdiBjbGFzcz1cImZsZXgtcm93IHNtYWxsLWFyb3VuZFwiIHN0eWxlPVwiYmFja2dyb3VuZDogI2VlZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsLTJcIj48ZGl2IGNsYXNzPVwicGFuZWxcIj48L2Rpdj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbC0yXCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+PC9kaXY+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwtMlwiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjwvZGl2PjwvZGl2PlxuPC9kaXY+XG5gYGBcblxuKiotYmV0d2VlbioqXG5cblRoZXNlIGl0ZW1zIGhhdmUgZXF1YWwgc3BhY2UgKmJldHdlZW4qIHRoZW0gd2l0aCBgLnNtYWxsLWJldHdlZW5gLlxuSXQgaXMgYSBnb29kIHdheSB0byBwdXNoIGl0ZW1zIHRvIHRoZSBlZGdlcy5cblxuYGBgaHRtbF9leGFtcGxlXG48ZGl2IGNsYXNzPVwiZmxleC1yb3cgc21hbGwtYmV0d2VlblwiIHN0eWxlPVwiYmFja2dyb3VuZDogI2VlZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsLTJcIj48ZGl2IGNsYXNzPVwicGFuZWxcIj48L2Rpdj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbC0yXCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+PC9kaXY+PC9kaXY+XG48L2Rpdj5cbmBgYFxuKi9cblxuLypkb2Ncbi0tLVxudGl0bGU6IEZsZXggR3JpZCBTb3VyY2UgT3JkZXJpbmdcbm5hbWU6IGUtZmxleC1ncmlkLXNvdXJjZS1vcmRlcmluZ1xuY2F0ZWdvcnk6IExheW91dCAtIEdyaWRcbi0tLVxuXG4qKi1maXJzdCoqXG5cbk1vdmUgYW55IGNvbHVtbiB0byB0aGUgYmVnaW5pbmcuIEluIHRoaXMgY2FzZSwgYXBwbHlpbmcgYC5zbWFsbC1maXJzdGAgdG8gY29sdW1uXG41IG1vdmVkIGl0IHRvIHRoZSBiZWdpbm5pbmcgKihub3RlIHRoYXQgdGhlc2UgbW9kaWZ5IGNvbHVtbnMsIG5vdCByb3dzKSouXG5cbmBgYCBodG1sX2V4YW1wbGVcbjxkaXYgY2xhc3M9XCJmbGV4LXJvd1wiPlxuICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbFwiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjE8L2Rpdj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGxcIj48ZGl2IGNsYXNzPVwicGFuZWxcIj4yPC9kaXY+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsXCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+MzwvZGl2PjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbFwiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjQ8L2Rpdj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwgc21hbGwtZmlyc3RcIj48ZGl2IGNsYXNzPVwicGFuZWxcIj48c3Ryb25nPjUhPC9zdHJvbmc+PC9kaXY+PC9kaXY+XG48L2Rpdj5cbmBgYFxuXG4qKi1sYXN0KipcblxuTW92ZSBhbnkgY29sdW1uIHRvIHRoZSBlbmQuIEluIHRoaXMgY2FzZSwgYXBwbHlpbmcgYC5zbWFsbC1sYXN0YCB0byBjb2x1bW4gNVxubW92ZWQgaXQgdG8gdGhlIGJlZ2lubmluZyAqKG5vdGUgdGhhdCB0aGVzZSBtb2RpZnkgY29sdW1ucywgbm90IHJvd3MpKi5cblxuYGBgIGh0bWxfZXhhbXBsZVxuPGRpdiBjbGFzcz1cImZsZXgtcm93XCI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsIHNtYWxsLWxhc3RcIj48ZGl2IGNsYXNzPVwicGFuZWxcIj4xPC9kaXY+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsXCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+MjwvZGl2PjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbFwiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjM8L2Rpdj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGxcIj48ZGl2IGNsYXNzPVwicGFuZWxcIj40PC9kaXY+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsXCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+PHN0cm9uZz41ITwvc3Ryb25nPjwvZGl2PjwvZGl2PlxuPC9kaXY+XG5gYGBcblxuKipCYWNrd2FyZHMhKiogSnVzdCBhZGQgYC5yZXZlcnNlYCBtb2RpZmllciAqdG8gdGhlIHJvdyouXG5cbmBgYCBodG1sX2V4YW1wbGVcbjxkaXYgY2xhc3M9XCJmbGV4LXJvdyByZXZlcnNlXCI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsXCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+MTwvZGl2PjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbFwiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjI8L2Rpdj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGxcIj48ZGl2IGNsYXNzPVwicGFuZWxcIj4zPC9kaXY+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsXCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+NDwvZGl2PjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbFwiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjxzdHJvbmc+NSE8L3N0cm9uZz48L2Rpdj48L2Rpdj5cbjwvZGl2PlxuYGBgXG4qL1xuXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBGbGV4IEdyaWQgRXhhbXBsZXNcbm5hbWU6IGYtZmxleC1ncmlkLWV4YW1wbGVzXG5jYXRlZ29yeTogTGF5b3V0IC0gR3JpZFxuLS0tXG5cbiMjIyMgRmxleGlibGUgZm9ybSBpbnB1dFxuXG4qKk5vdGU6KiogVGhpcyBpcyB0ZW1wIHVudGlsIHdlIGNhbiBqdXN0IGxpbmsgdG8gY29tcG9uZW50cyB0aGF0IGhhdmUgYmVlblxuYnVpbHQgd2l0aCB0aGlzIHN5bnRheC5cblxuSGVyZSBpcyBhIGNvbW1vbiBwYXR0ZXJuLCB3ZSB3YW50IGEgZmxleGlibGUgaW5wdXQgYW5kIGEgZml4ZWQgYnV0dG9uLiBBbHRob3VnaFxudGhlcmUgYXJlIG90aGVyIHNvbHV0aW9ucyB0byBtYWtlIHRoaXMgaGFwcGVuLCBmbGV4Ym94IG1ha2VzIGl0IGVhc3kuIFNpbXBseVxuY29udGFpbiB0aGUgdW5pdCBpbiBhIGAuZmxleC1yb3dgIGFuZCB0aGVuIHdyYXAgdGhlIGlucHV0IGluIGEgYC5mbGV4LXNtYWxsYFxuKGZvciBhdXRvLXdpZHRoKS5cbldlIGNhbiB3cmFwIHRoZSBmaXhlZCB3aWR0aCBpdGVtIHdpdGggYSBgZGl2LmZsZXgtZml4ZWRgIHRvIGdpdmUgaXQgdGhlIGhvcml6b250YWwgcGFkZGluZyBwcm9wZXJ0aWVzIG9mIGEgZmxleCBpdGVtLlxuXG5gYGBodG1sX2V4YW1wbGVcbjxkaXYgY2xhc3M9XCJmbGV4LXJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsXCI+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiRmxleHkhXCI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtZml4ZWRcIj5cbiAgICAgICAgPGEgY2xhc3M9XCJidXR0b24gcmFkaXVzIGFjdGlvbiBzaGFkb3cgc21hbGxcIiBocmVmPVwiI1wiPkZpeGVkIFNpemU8L2E+XG4gICAgPC9kaXY+XG48L2Rpdj5cbmBgYFxuXG4qKlRPRE8qKjogTWFrZSBhIGxpc3QgcG9pbnRpbmcgdG8gZmxleGJveCBiZWluZyB1c2VkIHRvIHVzZSB0aGlzIHN5c3RlbS4gUmVxdWlyZXMgcmVmYWN0b3Jpbmcgb2ZcbmEgZmV3IGV4aXN0aW5nIGNvbXBvbmVudHMgbGlrZSBzdWItbmF2XG5cbiMjIFJvYWRNYXBcbjEuIERvY3VtZW50IG1peGlucyB0aGlzIGlzIGJhc2VkIG9uXG4yLiBBZGQgY29sdW1uIHN1cHBvcnRcbjMuIEFkZCBmbGV4LWdyb3cgaGVscGVyc1xuXG48YnI+XG4qL1xuXG4uZmxleC1yb3cge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgQGluY2x1ZGUgZmxleGJveDtcbiAgICBAaW5jbHVkZSBmbGV4KDAsIDEsIGF1dG8pO1xuICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uO1xuICAgIEBpbmNsdWRlIGZsZXgtd3JhcCh3cmFwKTtcbiAgICBtYXgtd2lkdGg6ICRyb3ctd2lkdGg7XG4gICAgbWFyZ2luOiAwIGF1dG87IC8vIFRPRE86IG5lZWQgdG8gaGFuZGxlIG5lc3RlZCBvciBub3RcblxuICAgICYuZmxleC1ub3dyYXAge1xuICAgICAgQGluY2x1ZGUgZmxleC13cmFwKG5vd3JhcCk7XG4gICAgfVxuXG4gICAgJi5tdWx0aS1saW5lIHtcbiAgICAgIFtjbGFzcyo9XCJmbGV4XCJdIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxufVxuXG4uZmxleC1yb3cgLmZsZXgtcm93IHtcbiAgICBtYXJnaW4tbGVmdDogLSgkY29sdW1uLWd1dHRlci8yKTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0oJGNvbHVtbi1ndXR0ZXIvMik7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICAgIHdpZHRoOiBhdXRvO1xufVxuXG4uZmxleC11bmdyaWQge1xuICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cblxuLy9kbyB0aGlzIHJpZ2h0IGlmIGl0J3MgZXZlciBuZWVkZWQgYXQgYSBkaWZmZXJlbnQgYnJlYWtwb2ludFxuLmZsZXgtZ3JpZC1mb3Itc21hbGwtb25seSB7XG4gIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgbWFyZ2luLWxlZnQ6IC0oJGNvbHVtbi1ndXR0ZXIvMikgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IC0oJGNvbHVtbi1ndXR0ZXIvMikgIWltcG9ydGFudDtcbiAgfVxufVxuXG4uZmxleC11bmdyaWQtY2hpbGQgPiAuZmxleC1yb3cge1xuICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cblxuLmZsZXgtcm93LnJldmVyc2Uge1xuICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdy1yZXZlcnNlKTtcbn1cblxuLy8gd3RmIGlzIHRoaXMgaGVyZSBmb3I/IFRPRE86IGJ1aWxkIC5mbGV4LWNvbHVtblxuLmZsZXgtY29sdW1uLnJldmVyc2Uge1xuICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbi1yZXZlcnNlKTtcbn1cblxuLy8gdGhpcyBwbGFjZWhvbGRlciBpcyBmb3IgYmFzaWMgZmxleCBydWxlc1xuLy8gYXBwbGllZCB0byBhbGwgY2hpbGRyZW4gY2xhc3Nlc1xuLy8gKGUuZy4gZnJvbSAuZmxleC1zbWFsbC0xIHRvIC5mbGV4LWxhcmdlLTEyKVxuJWZsZXgge1xuICAgIEBpbmNsdWRlIGV4dGVuZHMtZmxleCgpO1xufVxuXG4vLyBmb3IgZmxleCBpdGVtcyB0aGF0IGRvbid0IGhhdmUgYSBzZXQgd2lkdGhcbi5mbGV4LWZpeGVkIHtcbiAgICBAZXh0ZW5kICVmbGV4O1xufVxuXG4kZmxleC1ncmlkLWNsYXNzOiAoXG4gICAgc21hbGw6IHNtYWxsLFxuICAgIG1lZGl1bTogbWVkaXVtLFxuICAgIGxhcmdlOiBsYXJnZVxuKTtcblxuLy8gbWFwIGNsYXNzbmFtZSBzbWFsbCwgbWVkaXVtIGFuZCBsYXJnZVxuLy8gdG8gY29ycmVzcG9uZGluZyBtZWRpYSBxdWVyeSByYW5nZXMgcmVsZXZhbnQgdG8gZ3JpZHNcbiRmbGV4LWdyaWQtY2xhc3MtbWFwOiAoXG4gICAgc21hbGw6IGJwLXNtYWxsLFxuICAgIG1lZGl1bTogYnAtbWVkaXVtLFxuICAgIGxhcmdlOiBicC1sYXJnZVxuKTtcblxuQGVhY2ggJGZsZXgtZ3JpZC1jbGFzcywgJHNsaWNlLWJyZWFrcG9pbnQtdmFyIGluICRmbGV4LWdyaWQtY2xhc3MtbWFwIHtcbiAgICBAaW5jbHVkZSBmcm9tKCRzbGljZS1icmVha3BvaW50LXZhcikge1xuICAgICAgICAvLyBhdXRvIHdpZHRoIGNvbHVtbnNcbiAgICAgICAgLmZsZXgtI3skZmxleC1ncmlkLWNsYXNzfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBleHRlbmRzLWZsZXgoKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JvdygxKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtYmFzaXMoMCk7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaW1wbGVtZW50IGNvbGxhcHNlXG4gICAgICAgIC5mbGV4LXJvdy4jeyRmbGV4LWdyaWQtY2xhc3N9LWNvbGxhcHNlID4gW2NsYXNzXj1cImZsZXgtXCJdIHtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgfVxuICAgICAgICAvLyBpbXBsZW1lbnQgdW5jb2xsYXBzZVxuICAgICAgICAuZmxleC1yb3cuI3skZmxleC1ncmlkLWNsYXNzfS11bmNvbGxhcHNlID4gW2NsYXNzXj1cImZsZXgtXCJdIHtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkY29sdW1uLWd1dHRlci8yO1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogJGNvbHVtbi1ndXR0ZXIvMjtcbiAgICAgICAgfVxuICAgICAgICAvLyBwZXJjZW50YWdlIHdpZHRoIGNvbHVtbnNcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkdG90YWwtY29sdW1ucyB7XG4gICAgICAgICAgICAuZmxleC0jeyRmbGV4LWdyaWQtY2xhc3N9LSN7JGl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBleHRlbmRzLWZsZXgoKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmbGV4LWJhc2lzKGdyaWQtY2FsYygkaSwkdG90YWwtY29sdW1ucykpO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogZ3JpZC1jYWxjKCRpLCR0b3RhbC1jb2x1bW5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5mbGV4LSN7JGZsZXgtZ3JpZC1jbGFzc30tb2Zmc2V0LSN7JGl9IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogZ3JpZC1jYWxjKCRpLCR0b3RhbC1jb2x1bW5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBhbGlnbm1lbnRcbiAgICAgICAgLiN7JGZsZXgtZ3JpZC1jbGFzc30tc3RhcnQge1xuICAgICAgICAgICAgQGluY2x1ZGUganVzdGlmeS1jb250ZW50KCk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICAgICAgICAgIEBtZWRpYSBhbGwgYW5kICgtbXMtaGlnaC1jb250cmFzdDpub25lKSB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gdXNlIHRleHQtYWxpZ246IGxlZnQgb24gRWRnZVxuICAgICAgICAgICAgQHN1cHBvcnRzICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLiN7JGZsZXgtZ3JpZC1jbGFzc30tY2VudGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICAgIC4jeyRmbGV4LWdyaWQtY2xhc3N9LWVuZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQoZmxleC1lbmQpO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogZW5kO1xuICAgICAgICAgICAgQG1lZGlhIGFsbCBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0Om5vbmUpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuI3skZmxleC1ncmlkLWNsYXNzfS10b3Age1xuICAgICAgICAgICAgQGluY2x1ZGUgYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG4gICAgICAgIH1cbiAgICAgICAgLiN7JGZsZXgtZ3JpZC1jbGFzc30tbWlkZGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgICAgIH1cbiAgICAgICAgLiN7JGZsZXgtZ3JpZC1jbGFzc30tYm90dG9tIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFsaWduLWl0ZW1zKGZsZXgtZW5kKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBkaXN0cmlidXRpb25cbiAgICAgICAgLiN7JGZsZXgtZ3JpZC1jbGFzc30tYXJvdW5kIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGp1c3RpZnktY29udGVudChzcGFjZS1hcm91bmQpO1xuICAgICAgICB9XG4gICAgICAgIC4jeyRmbGV4LWdyaWQtY2xhc3N9LWJldHdlZW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUganVzdGlmeS1jb250ZW50KHNwYWNlLWJldHdlZW4pO1xuICAgICAgICB9XG4gICAgICAgIC4jeyRmbGV4LWdyaWQtY2xhc3N9LWZpcnN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG9yZGVyKC0xKTtcbiAgICAgICAgfVxuICAgICAgICAuI3skZmxleC1ncmlkLWNsYXNzfS1sYXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG9yZGVyKDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZml4ZWQgc2l6ZVxuICAgICAgICAuZmxleC0jeyRmbGV4LWdyaWQtY2xhc3N9LWZpeGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGV4dGVuZHMtZmxleCgpO1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1iYXNpcyhpbml0aWFsKTtcbiAgICAgICAgICAgIG1heC13aWR0aDogaW5pdGlhbDtcbiAgICAgICAgfVxuICB9XG59XG5cbi5mbGV4LWxhcmdlLXNlY29uZCB7XG4gICAgQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgICAgIG9yZGVyOiAyO1xuICAgIH1cbn1cbiIsIi8qZG9jXG4tLS1cbnRpdGxlOiBPbGQgR3JpZFxubmFtZTogZy1vbGQtZ3JpZFxuY2F0ZWdvcnk6IExheW91dCAtIEdyaWRcbnNlbGVjdG9yczpcbiAgICAtIC5yb3dcbiAgICAtIC5jb2x1bW5cbiAgICAtIC5jb2x1bW5zXG5zZWxlY3Rvcl90eXBlOiBsYXlvdXRcbi0tLVxuPioqVE9ETzoqKiBXZSB3YW50IHRvIHNsb3dseSBraWxsIHRoaXMuIExldCdzIGdldCBzZWxlY3RvcnMgcmVmZXJlbmNlZCBkb3duIHRvIDAuXG5cblVzZSBvdXIgW0ZsZXggR3JpZF1bYS1mbGV4LWdyaWRdIGluc3RlYWQuXG5cblN0YXJ0IGJ5IGFkZGluZyBhbiBlbGVtZW50IHdpdGggYC5yb3dgLiBUaGlzIHdpbGwgY3JlYXRlIGEgaG9yaXpvbnRhbFxuYmxvY2sgdG8gY29udGFpbiB2ZXJ0aWNhbCBjb2x1bW5zLiBUaGVuIGFkZCBkaXZzIHdpdGggYC5jb2x1bW5gIGNsYXNzIHdpdGhpbiB0aGF0XG5yb3cuIFlvdSBjYW4gdXNlIGAuY29sdW1uYCBvciBgLmNvbHVtbnNgIC0gdGhlIG9ubHkgZGlmZmVyZW5jZSBpcyBncmFtbWFyLiBTcGVjaWZ5IHRoZVxud2lkdGhzIG9mIGVhY2ggY29sdW1uIHdpdGggdGhlIHNtYWxsLSMsIG1lZGl1bS0jLCBhbmQgbGFyZ2UtIyBjbGFzc2VzLlxuXG5Gb3VuZGF0aW9uIGlzIG1vYmlsZS1maXJzdC4gQ29kZSBmb3Igc21hbGwgc2NyZWVucyBmaXJzdCwgYW5kIGxhcmdlciBkZXZpY2VzXG53aWxsIGluaGVyaXQgdGhvc2Ugc3R5bGVzLiBDdXN0b21pemUgZm9yIGxhcmdlciBzY3JlZW5zIGFzIG5lY2Vzc2FyeS5cblxuKipOb3RlOioqIFRoZSBpbmNsdWRlZCBwYW5lbCBjbGFzcyBpcyBqdXN0IGZvciBzaG93IGluIHRoZSBzdHlsZWd1aWRlLiBUaGVcbm51bWJlcnMgaW4gdGhlIHBhbmVscyBkZW5vdGUgdGhlIGNvbHVtbiBzaXplIG9yIHdpZHRoIGF0IG91ciBzbWFsbCBicmVha3BvaW50LlxuXG5gYGBodG1sX2V4YW1wbGVcbjxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgPGRpdiBjbGFzcz1cInNtYWxsLTIgbGFyZ2UtNCBjb2x1bW5zXCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+MjwvZGl2PjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwic21hbGwtNCBsYXJnZS00IGNvbHVtbnNcIj48ZGl2IGNsYXNzPVwicGFuZWxcIj40PC9kaXY+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJzbWFsbC02IGxhcmdlLTQgY29sdW1uc1wiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjY8L2Rpdj48L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInJvd1wiPlxuICA8ZGl2IGNsYXNzPVwibGFyZ2UtMyBjb2x1bW5zXCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+ZnVsbDwvZGl2PjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibGFyZ2UtNiBjb2x1bW5zXCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+ZnVsbDwvZGl2PjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibGFyZ2UtMyBjb2x1bW5zXCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+ZnVsbDwvZGl2PjwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicm93XCI+XG4gIDxkaXYgY2xhc3M9XCJzbWFsbC02IGxhcmdlLTIgY29sdW1uc1wiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjY8L2Rpdj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInNtYWxsLTYgbGFyZ2UtOCBjb2x1bW5zXCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+NjwvZGl2PjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwic21hbGwtMTIgbGFyZ2UtMiBjb2x1bW5zXCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+MTI8L2Rpdj48L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInJvd1wiPlxuICA8ZGl2IGNsYXNzPVwic21hbGwtMyBjb2x1bW5zXCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+MzwvZGl2PjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwic21hbGwtOSBjb2x1bW5zXCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+OTwvZGl2PjwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicm93XCI+XG4gIDxkaXYgY2xhc3M9XCJsYXJnZS00IGNvbHVtbnNcIj48ZGl2IGNsYXNzPVwicGFuZWxcIj5mdWxsPC9kaXY+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJsYXJnZS04IGNvbHVtbnNcIj48ZGl2IGNsYXNzPVwicGFuZWxcIj5mdWxsPC9kaXY+PC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgPGRpdiBjbGFzcz1cInNtYWxsLTYgbGFyZ2UtNSBjb2x1bW5zXCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+NjwvZGl2PjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwic21hbGwtNiBsYXJnZS03IGNvbHVtbnNcIj48ZGl2IGNsYXNzPVwicGFuZWxcIj42PC9kaXY+PC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgPGRpdiBjbGFzcz1cImxhcmdlLTYgY29sdW1uc1wiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPmZ1bGw8L2Rpdj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImxhcmdlLTYgY29sdW1uc1wiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPmZ1bGw8L2Rpdj48L2Rpdj5cbjwvZGl2PlxuYGBgXG4jIyMgTmVzdGluZ1xuXG5Zb3UgY2FuIG5lc3QgdGhlIGdyaWRzIGluZGVmaW5pdGVseSwgdGhvdWdoIGF0IGEgY2VydGFpbiBwb2ludCBpdCB3aWxsIGdldCBhYnN1cmQuXG5cbmBgYGh0bWxfZXhhbXBsZVxuPGRpdiBjbGFzcz1cInJvd1wiPlxuICA8ZGl2IGNsYXNzPVwic21hbGwtOCBjb2x1bW5zXCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+ODwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC04IGNvbHVtbnNcIj48ZGl2IGNsYXNzPVwicGFuZWxcIj44IE5lc3RlZDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsLTggY29sdW1uc1wiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjggTmVzdGVkIEFnYWluPC9kaXY+PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsLTQgY29sdW1uc1wiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjQ8L2Rpdj48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC00IGNvbHVtbnNcIj48ZGl2IGNsYXNzPVwicGFuZWxcIj40PC9kaXY+PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwic21hbGwtNCBjb2x1bW5zXCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+NDwvZGl2PjwvZGl2PlxuPC9kaXY+XG5gYGBcblxuIyMjIE9mZnNldHNcblxuTW92ZSBibG9ja3MgdXAgdG8gMTEgY29sdW1ucyB0byB0aGUgcmlnaHQgYnkgdXNpbmcgY2xhc3NlcyBsaWtlIGAubGFyZ2UtXG5vZmZzZXQtMWAgYW5kIGAuc21hbGwtb2Zmc2V0LTNgLlxuXG5gYGBodG1sX2V4YW1wbGVcbjxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgPGRpdiBjbGFzcz1cImxhcmdlLTEgY29sdW1uc1wiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjE8L2Rpdj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImxhcmdlLTExIGNvbHVtbnNcIj48ZGl2IGNsYXNzPVwicGFuZWxcIj4xMTwvZGl2PjwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicm93XCI+XG4gIDxkaXYgY2xhc3M9XCJsYXJnZS0xIGNvbHVtbnNcIj48ZGl2IGNsYXNzPVwicGFuZWxcIj4xPC9kaXY+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJsYXJnZS0xMCBsYXJnZS1vZmZzZXQtMSBjb2x1bW5zXCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+MTAsIG9mZnNldCAxPC9kaXY+PC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgPGRpdiBjbGFzcz1cImxhcmdlLTEgY29sdW1uc1wiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjE8L2Rpdj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImxhcmdlLTkgbGFyZ2Utb2Zmc2V0LTIgY29sdW1uc1wiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjksIG9mZnNldCAyPC9kaXY+PC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgPGRpdiBjbGFzcz1cImxhcmdlLTEgY29sdW1uc1wiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjE8L2Rpdj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImxhcmdlLTggbGFyZ2Utb2Zmc2V0LTMgY29sdW1uc1wiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjgsIG9mZnNldCAzPC9kaXY+PC9kaXY+XG48L2Rpdj5cbmBgYFxuXG4jIyMgSW5jb21wbGV0ZSBSb3dzXG5cblVzdWFsbHkgeW91IHdhbnQgYWxsIHRoZSBjb2x1bW4gY2xhc3NlcyBpbnNpZGUgYSByb3cgdG8gYWRkIHVwIHRvIDEyLiBCdXQgaWZcbnlvdSBkb24ndC4uLlxuXG5JbiBvcmRlciB0byB3b3JrIGFyb3VuZCBicm93c2VycycgZGlmZmVyZW50IHJvdW5kaW5nIGJlaGF2aW9ycywgRm91bmRhdGlvbiB3aWxsXG5mbG9hdCB0aGUgbGFzdCBjb2x1bW4gaW4gYSByb3cgdG8gdGhlIHJpZ2h0IHNvIHRoZSBlZGdlIGFsaWducy4gSWYgeW91ciByb3dcbmRvZXNuJ3QgaGF2ZSBhIGNvdW50IHRoYXQgYWRkcyB1cCB0byAxMiBjb2x1bW5zLCB5b3UgY2FuIHRhZyB0aGUgbGFzdCBjb2x1bW5cbndpdGggYSBjbGFzcyBvZiBgLmVuZGAgaW4gb3JkZXIgdG8gb3ZlcnJpZGUgdGhhdCBiZWhhdmlvci5cblxuYGBgaHRtbF9leGFtcGxlXG48ZGl2IGNsYXNzPVwicm93XCI+XG4gIDxkaXYgY2xhc3M9XCJtZWRpdW0tMyBjb2x1bW5zXCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+MzwvZGl2PjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibWVkaXVtLTMgY29sdW1uc1wiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjM8L2Rpdj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1lZGl1bS0zIGNvbHVtbnNcIj48ZGl2IGNsYXNzPVwicGFuZWxcIj4zPC9kaXY+PC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgPGRpdiBjbGFzcz1cIm1lZGl1bS0zIGNvbHVtbnNcIj48ZGl2IGNsYXNzPVwicGFuZWxcIj4zPC9kaXY+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtZWRpdW0tMyBjb2x1bW5zXCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+MzwvZGl2PjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibWVkaXVtLTMgY29sdW1ucyBlbmRcIj48ZGl2IGNsYXNzPVwicGFuZWxcIj4zIGVuZDwvZGl2PjwvZGl2PlxuPC9kaXY+XG5gYGBcblxuIyMjIENvbGxhcHNlL1VuY29sbGFwc2VcblxuVGhlcmUgYXJlIHRpbWVzIHdoZW4geW91IHdvbid0IHdhbnQgZWFjaCBtZWRpYSBxdWVyeSB0byBiZSBjb2xsYXBzZWQgb3JcbnVuY29sbGFwc2VkLiBJbiB0aGlzIGNhc2UsIHVzZSB0aGUgbWVkaWEgcXVlcnkgc2l6ZSB5b3Ugd2FudCBhbmQgY29sbGFwc2Ugb3JcbnVuY29sbGFwc2UgYW5kIGFkZCB0aGF0IHRvIHlvdXIgYC5yb3dgIGVsZW1lbnQuXG5cblRoZSBleGFtcGxlIHNob3dzIG5vIGd1dHRlciBhdCBzbWFsbCBtZWRpYSBzaXplIGFuZCB0aGVuIGFkZHMgdGhlIGd1dHRlciB0b1xuY29sdW1ucyBhdCBtZWRpdW0uXG5cblxuYGBgaHRtbF9leGFtcGxlXG48ZGl2IGNsYXNzPVwicm93IG1lZGl1bS11bmNvbGxhcHNlIGxhcmdlLWNvbGxhcHNlXCI+XG4gICAgPGRpdiBjbGFzcz1cInNtYWxsLTYgY29sdW1uc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicGFuZWxcIj5SZW1vdmVzIGd1dHRlciBhdCBsYXJnZSBtZWRpYSBxdWVyeTwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzbWFsbC02IGNvbHVtbnNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBhbmVsXCI+UmVtb3ZlcyBndXR0ZXIgYXQgbGFyZ2UgbWVkaWEgcXVlcnk8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuYGBgXG5cbiMjIyBDZW50ZXJlZCBDb2x1bW5zXG5cbkNlbnRlciB5b3VyIGNvbHVtbnMgYnkgYWRkaW5nIGEgY2xhc3Mgb2YgYC5zbWFsbC1jZW50ZXJlZGAgdG8geW91ciBjb2x1bW4uIExhcmdlXG53aWxsIGluaGVyaXQgc21hbGwgY2VudGVyaW5nIGJ5IGRlZmF1bHQsIGJ1dCB5b3UgY2FuIGFsc28gY2VudGVyIHNvbGVseSBvbiBsYXJnZVxuYnkgYXBwbHlpbmcgYSBgLmxhcmdlLWNlbnRlcmVkYCBjbGFzcy4gVG8gdW5jZW50ZXIgb24gbGFyZ2Ugc2NyZWVucyB1c2VcbmAubGFyZ2UtdW5jZW50ZXJlZGAuXG5cbmBgYGh0bWxfZXhhbXBsZVxuPGRpdiBjbGFzcz1cInJvd1wiPlxuICA8ZGl2IGNsYXNzPVwic21hbGwtMyBzbWFsbC1jZW50ZXJlZCBjb2x1bW5zXCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+MyBjZW50ZXJlZDwvZGl2PjwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicm93XCI+XG4gIDxkaXYgY2xhc3M9XCJzbWFsbC02IGxhcmdlLWNlbnRlcmVkIGNvbHVtbnNcIj48ZGl2IGNsYXNzPVwicGFuZWxcIj42IGNlbnRlcmVkPC9kaXY+PC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgPGRpdiBjbGFzcz1cInNtYWxsLTkgc21hbGwtY2VudGVyZWQgbGFyZ2UtdW5jZW50ZXJlZCBjb2x1bW5zXCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+OSBjZW50ZXJlZCBidXQgbGFyZ2UgdW5jZW50ZXJlZDwvZGl2PjwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicm93XCI+XG4gIDxkaXYgY2xhc3M9XCJzbWFsbC0xMSBzbWFsbC1jZW50ZXJlZCBjb2x1bW5zXCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+MTEgY2VudGVyZWQ8L2Rpdj48L2Rpdj5cbjwvZGl2PlxuYGBgXG5cbiMjIyBTb3VyY2UgT3JkZXJpbmdcblxuVXNpbmcgdGhlc2Ugc291cmNlIG9yZGVyaW5nIGNsYXNzZXMsIHlvdSBjYW4gc2hpZnQgY29sdW1ucyBhcm91bmQgYmV0d2VlbiBvdXJcbmJyZWFrcG9pbnRzLlxuXG5UaGlzIG1lYW5zIGlmIHlvdSBwbGFjZSBzdWItbmF2aWdhdGlvbiBiZWxvdyBtYWluIGNvbnRlbnQgb24gc21hbGxcbmRpc3BsYXlzLCB5b3UgaGF2ZSB0aGUgb3B0aW9uIHRvIHBvc2l0aW9uIHRoZSBzdWItbmF2aWdhdGlvbiBvbiBlaXRoZXIgdGhlIGxlZnRcbm9yIHJpZ2h0IG9mIHRoZSBwYWdlIGZvciBsYXJnZSBkaXNwbGF5cy5cblxuUHJlZml4IHB1c2gvcHVsbCB3aXRoIHRoZSBzaXplIG9mIHRoZSBkZXZpY2UgeW91IHdhbnQgdG8gYXBwbHkgdGhlIHN0eWxlcyB0by5cblxuYC5tZWRpdW0tcHVzaC0jYCwgYC5sYXJnZS1wdXNoLSNgIGlzIHRoZSBzeW50YXggeW91J2xsIHVzZS4gVGhlcmUgaXMgYSBzeW1tZXRyeVxudG8gaXQuIEp1c3QgdGFrZSBhIGxvb2sgYXQgdGhlIGNsYXNzIG5hbWVzIGluIHRoZSBodG1sIGFuZCByZW1lbWJlciBzdHVmZiBhZGRzXG51cCB0byAxMi5cblxuXG5Vc2UgYC5sYXJnZS1yZXNldC1vcmRlcmAgdG8gcmVzZXQgcHVzaGVkIG9yIHB1bGxlZCBjb2x1bW5zIHRvXG50aGVpciBvcmlnaW5hbCBwb3NpdGlvbiBvbiBsYXJnZSBzY3JlZW5zLlxuXG5gYGBodG1sX2V4YW1wbGVcbjxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgPGRpdiBjbGFzcz1cInNtYWxsLTEwIHNtYWxsLXB1c2gtMiBjb2x1bW5zXCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+MTA8L2Rpdj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInNtYWxsLTIgc21hbGwtcHVsbC0xMCBjb2x1bW5zXCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+MiAobGFzdCk8L2Rpdj48L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInJvd1wiPlxuICA8ZGl2IGNsYXNzPVwibGFyZ2UtOSBsYXJnZS1wdXNoLTMgY29sdW1uc1wiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjk8L2Rpdj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImxhcmdlLTMgbGFyZ2UtcHVsbC05IGNvbHVtbnNcIj48ZGl2IGNsYXNzPVwicGFuZWxcIj4zIChsYXN0KTwvZGl2PjwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicm93XCI+XG4gIDxkaXYgY2xhc3M9XCJsYXJnZS04IGxhcmdlLXB1c2gtNCBjb2x1bW5zXCI+PGRpdiBjbGFzcz1cInBhbmVsXCI+ODwvZGl2PjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibGFyZ2UtNCBsYXJnZS1wdWxsLTggY29sdW1uc1wiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjQgKGxhc3QpPC9kaXY+PC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgPGRpdiBjbGFzcz1cInNtYWxsLTUgc21hbGwtcHVzaC03IG1lZGl1bS03IG1lZGl1bS1wdXNoLTUgY29sdW1uc1wiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjc8L2Rpdj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInNtYWxsLTcgc21hbGwtcHVsbC01IG1lZGl1bS01IG1lZGl1bS1wdWxsLTcgY29sdW1uc1wiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjUgKGxhc3QpPC9kaXY+PC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgPGRpdiBjbGFzcz1cIm1lZGl1bS02IG1lZGl1bS1wdXNoLTYgY29sdW1uc1wiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjY8L2Rpdj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1lZGl1bS02IG1lZGl1bS1wdWxsLTYgY29sdW1uc1wiPjxkaXYgY2xhc3M9XCJwYW5lbFwiPjYgKGxhc3QpPC9kaXY+PC9kaXY+XG48L2Rpdj5cblxuYGBgXG4qL1xuXG5cbi5yb3cuZGlzcGxheSB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtYmx1ZTtcbn1cblxuLmNvbHVtbi5kaXNwbGF5IHtcbiAgICBiYWNrZ3JvdW5kOiAkYmx1ZS1kYXJrO1xufVxuXG4vLyB0ZW1wb3JhcnkgbGF5b3V0IGNsYXNzZXNcbi5yYWlsLWxlZnQge1xuICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjRTFFMkU2XG4gIH1cbn1cblxuLmNvbnRlbnQtcmlnaHQge1xuICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoMzIpO1xufVxuIiwiLypkb2Ncbi0tLVxudGl0bGU6IEJsb2NrIEdyaWRcbm5hbWU6IDEtYmxvY2stZ3JpZFxuY2F0ZWdvcnk6IExheW91dCAtIExheW91dCBIZWxwZXJzXG4tLS1cblxuQmxvY2sgZ3JpZHMgZ2l2ZSB5b3UgYSB3YXkgdG8gZXZlbmx5IHNwbGl0IGNvbnRlbnRzIG9mIGEgbGlzdCB3aXRoaW4gdGhlIGdyaWQuXG5JZiB5b3Ugd2FudGVkIHRvIGNyZWF0ZSBhIHJvdyBvZiBmaXZlIGltYWdlcyBvciBwYXJhZ3JhcGhzIHRoYXQgbmVlZCB0byBzdGF5XG5ldmVubHkgc3BhY2VkIG5vIG1hdHRlciB0aGUgc2NyZWVuIHNpemUsIHRoZSBibG9jayBncmlkIGlzIGZvciB5b3UuXG5cblVzZSBhZGRpdGlvbmFsIGNsYXNzZXMgdG8gc3BlY2lmeSBhIGRpZmZlcmVudCBudW1iZXIgb2YgaXRlbXMgaW4gYSByb3cgZm9yIGVhY2hcbnNjcmVlbiBzaXplLiBSZWZlciB0byBGb3VuZGF0aW9uJ3Ncbltkb2N1bWVudGF0aW9uXShodHRwOi8vZm91bmRhdGlvbi56dXJiLmNvbS9kb2NzL2NvbXBvbmVudHMvYmxvY2tfZ3JpZC5odG1sKS5cblxuYGBgaHRtbF9leGFtcGxlP2tpdGNoZW4tc2luaz10cnVlXG48dWwgY2xhc3M9XCJzbWFsbC1ibG9jay1ncmlkLTNcIj5cbiAgICA8bGk+PGltZyBzcmM9XCJodHRwOi8vcGxhY2Vob2xkLml0LzMwMHgyMDAmdGV4dD1BXCIgYWx0PVwiXCI+PC9saT5cbiAgICA8bGk+PGltZyBzcmM9XCJodHRwOi8vcGxhY2Vob2xkLml0LzMwMHgyMDAmdGV4dD1CbG9ja1wiIGFsdD1cIlwiPjwvbGk+XG4gICAgPGxpPjxpbWcgc3JjPVwiaHR0cDovL3BsYWNlaG9sZC5pdC8zMDB4MjAwJnRleHQ9R3JpZFwiIGFsdD1cIlwiPjwvbGk+XG48L3VsPlxuYGBgXG4qL1xuIiwiLypkb2Ncbi0tLVxudGl0bGU6IEZvbnRzXG5uYW1lOiBhLWZvbnRzXG5jYXRlZ29yeTogVHlwb2dyYXBoeSAtIEZvbnRzXG4tLS1cblxuV2UgYXJlIGN1cnJlbnRseSB1c2luZ1xuW1JvYm90b10oaHR0cDovL3d3dy5nb29nbGUuY29tL2ZvbnRzI1VzZVBsYWNlOnVzZS9Db2xsZWN0aW9uOlJvYm90bykuXG5cbioqVE9ETzoqKlxuT25jZSBmaW5hbCBmb250cyBhcmUgZGVjaWRlZCwgd2Ugc2hvdWxkIHB1dCB0aGUgc3JjIG9uIHN0YXRpYy4gUmlnaHQgbm93IGp1c3RcbnBvaW50aW5nIHRvIGdvb2dsZSdzIHNlcnZlcnMuXG5cbmBgYGh0bWxfZXhhbXBsZVxuPHA+VGhpcyBpcyBkZWZhdWx0IHRleHQuPC9wPlxuPHAgY2xhc3M9XCJ0ZXh0LXNlcmlmXCI+VGhpcyBpcyB0ZXh0IHdpdGggLnRleHQtc2VyaWYgY2xhc3MsIHdoaWNoIGlzIGRpZmZlcmVudC48L3A+XG5gYGBcblxuKi9cblxuLnRleHQtc2VyaWYge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktc2VyaWY7XG59XG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBUZXh0IFNpemVzXG5uYW1lOiBhLXRleHQtc2l6ZXNcbmNhdGVnb3J5OiBUeXBvZ3JhcGh5IC0gVGV4dCAoYW5kIGhlbHBlcnMpXG5zZWxlY3RvcnM6XG4gICAgLSAudGV4dC1zbWFsbGVzdFxuICAgIC0gLnRleHQtc21hbGxlclxuICAgIC0gLnRleHQtc21hbGxcbiAgICAtIC50ZXh0LW5vcm1hbFxuICAgIC0gLnRleHQtbGFyZ2VcbiAgICAtIC50ZXh0LWxhcmdlclxuICAgIC0gLnRleHQtbGFyZ2VzdFxuc2VsZWN0b3JfdHlwZTogdGV4dFxuLS0tXG5cbk5vcm1hbCBwYXJhZ3JhcGggdGV4dCBpcyAxNnB4IHdpdGggYSBsaW5lLWhlaWdodCBvZiAxLjUuIEJ5IGRlZmF1bHQgdGhleSBoYXZlXG4yMHB4IG9mIG1hcmdpbi1ib3R0b20uXG5cbmBgYGh0bWxfZXhhbXBsZVxuICAgIDxwPlxuICAgICAgICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdC4gTmFtIHF1YWVyYXRcbiAgICAgICAgcXVpZGVtIGNvbnNlcXVhdHVyIGRvbG9yZSBwZXJmZXJlbmRpcyBxdWFzaSBiZWF0YWUgdml0YWUgaW52ZW50b3JlXG4gICAgICAgIG9mZmljaWEgYXNzdW1lbmRhIHNlcXVpIGFsaXF1YW0gcGVyc3BpY2lhdGlzIGFzcGVybmF0dXIgZW5pbSxcbiAgICAgICAgcXVpYnVzZGFtIGFjY3VzYW11cyB0ZW5ldHVyIG9mZmljaWlzLiBOaXNpIVxuICAgIDwvcD5cbiAgICA8cCBjbGFzcz1cImJsb2NrLWZsdXNoXCI+XG4gICAgICAgIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LiBOYW0gcXVhZXJhdFxuICAgICAgICBxdWlkZW0gY29uc2VxdWF0dXIgZG9sb3JlIHBlcmZlcmVuZGlzIHF1YXNpIGJlYXRhZSB2aXRhZSBpbnZlbnRvcmVcbiAgICAgICAgb2ZmaWNpYSBhc3N1bWVuZGEgc2VxdWkgYWxpcXVhbSBwZXJzcGljaWF0aXMgYXNwZXJuYXR1ciBlbmltLFxuICAgICAgICBxdWlidXNkYW0gYWNjdXNhbXVzIHRlbmV0dXIgb2ZmaWNpaXMuIE5pc2khXG4gICAgPC9wPlxuYGBgXG5cbiMjIyBHZW5lcmFsIEhlbHBlcnNcblxuVG8gbW9kaWZ5IHRleHQgc2l6aW5nLCBhcHBseSB0aGVzZSBjbGFzc2VzIHRvIGFueXRoaW5nIChleGNlcHQgaGVhZGluZ3MpIHRvIGRlY2xhcmUgdGV4dCBzaXplc1xuKGhlYWRpbmdzIGhhdmUgdGhlaXIgb3duIHNpemluZyBjbGFzc2VzKS5cblxuYC50ZXh0LXNtYWxsZXN0YCAoMTBweClcbmAudGV4dC1zbWFsbGVyIGAgKDEycHgpXG5gLnRleHQtc21hbGwgICBgICgxNHB4KVxuYC50ZXh0LW5vcm1hbCAgYCAoMTZweClcbmAudGV4dC1sYXJnZSAgIGAgKDE4cHgpXG5gLnRleHQtbGFyZ2VyICBgICgyMHB4KVxuYC50ZXh0LWxhcmdlc3QgYCAoMjJweClcblxuYGBgaHRtbF9leGFtcGxlXG48cCBjbGFzcz1cInRleHQtc21hbGxlc3RcIj5UaGlzIGlzIHRleHQgd2l0aCAudGV4dC1zbWFsbGVzdCBjbGFzczwvcD5cbjxwIGNsYXNzPVwidGV4dC1zbWFsbGVyXCI+VGhpcyBpcyB0ZXh0IHdpdGggLnRleHQtc21hbGxlciBjbGFzczwvcD5cbjxwIGNsYXNzPVwidGV4dC1zbWFsbFwiPlRoaXMgaXMgdGV4dCB3aXRoIC50ZXh0LXNtYWxsIGNsYXNzPC9wPlxuPHAgY2xhc3M9XCJ0ZXh0LW5vcm1hbFwiPlRoaXMgaXMgdGV4dCB3aXRoIC50ZXh0LW5vcm1hbCBjbGFzczwvcD5cbjxwIGNsYXNzPVwidGV4dC1sYXJnZVwiPlRoaXMgaXMgdGV4dCB3aXRoIC50ZXh0LWxhcmdlIGNsYXNzPC9wPlxuPHAgY2xhc3M9XCJ0ZXh0LWxhcmdlclwiPlRoaXMgaXMgdGV4dCB3aXRoIC50ZXh0LWxhcmdlciBjbGFzczwvcD5cbjxwIGNsYXNzPVwidGV4dC1sYXJnZXN0XCI+VGhpcyBpcyB0ZXh0IHdpdGggLnRleHQtbGFyZ2VzdCBjbGFzczwvcD5cbmBgYFxuXG4jIyMgUmVzcG9uc2l2ZSBIZWxwZXJzXG5cbk5vdCBvbmx5IGRvIHdlIGhhdmUgdGhlIGdlbmVyYWwgdGV4dCBzaXplIGhlbHBlcnMgYWJvdmUgeW91IGNhbiBpc29sYXRlIHRoZVxuaGVscGVycyBieSBvbmUgb3IgYSByYW5nZSBvZiBvdXIgMyBtYWluIGJyZWFrcG9pbnRzLiBUaGVzZSBzaG91bGQgYmUgYWxsIHRoZVxub25lcyB5b3UgbmVlZCB0byBjaGFuZ2UgdGhlIHNpemUgb2YgdGV4dCBhY2NvcmRpbmcgdG8gc2NyZWVuIHNpemU6XG5cblxufCBmb3Igc21hbGwgb25seSAgICAgICAgICAgICAgICAgfCAgIGZvciBtZWRpdW0gdXAgICAgICAgICAgICAgIHwgZm9yIG1lZGl1bSBvbmx5ICAgICAgICAgICAgICAgIHwgZm9yIGxhcmdlIHVwICAgICAgICAgICAgICAgICAgIHxcbnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG58IC50ZXh0LXNtYWxsZXN0LWZvci1zbWFsbC1vbmx5ICB8IC50ZXh0LXNtYWxsZXN0LWZvci1tZWRpdW0tdXAgfCAudGV4dC1zbWFsbGVzdC1mb3ItbWVkaXVtLW9ubHkgfCAudGV4dC1zbWFsbGVzdC1mb3ItbWVkaXVtLW9ubHkgfFxufCAudGV4dC1zbWFsbGVyLWZvci1zbWFsbC1vbmx5ICAgfCAudGV4dC1zbWFsbGVyLWZvci1tZWRpdW0tdXAgIHwgLnRleHQtc21hbGxlci1mb3ItbWVkaXVtLW9ubHkgIHwgLnRleHQtc21hbGxlci1mb3ItbWVkaXVtLW9ubHkgIHxcbnwgLnRleHQtc21hbGwtZm9yLXNtYWxsLW9ubHkgICAgIHwgLnRleHQtc21hbGwtZm9yLW1lZGl1bS11cCAgICB8IC50ZXh0LXNtYWxsLWZvci1tZWRpdW0tb25seSAgICB8IC50ZXh0LXNtYWxsLWZvci1tZWRpdW0tb25seSAgICB8XG58IC50ZXh0LW5vcm1hbC1mb3Itc21hbGwtb25seSAgICB8IC50ZXh0LW5vcm1hbC1mb3ItbWVkaXVtLXVwICAgfCAudGV4dC1ub3JtYWwtZm9yLW1lZGl1bS1vbmx5ICAgfCAudGV4dC1ub3JtYWwtZm9yLW1lZGl1bS1vbmx5ICAgfFxufCAudGV4dC1sYXJnZS1mb3Itc21hbGwtb25seSAgICAgfCAudGV4dC1sYXJnZS1mb3ItbWVkaXVtLXVwICAgIHwgLnRleHQtbGFyZ2UtZm9yLW1lZGl1bS1vbmx5ICAgIHwgLnRleHQtbGFyZ2UtZm9yLW1lZGl1bS1vbmx5ICAgIHxcbnwgLnRleHQtbGFyZ2VyLWZvci1zbWFsbC1vbmx5ICAgIHwgLnRleHQtbGFyZ2VyLWZvci1tZWRpdW0tdXAgICB8IC50ZXh0LWxhcmdlci1mb3ItbWVkaXVtLW9ubHkgICB8IC50ZXh0LWxhcmdlci1mb3ItbWVkaXVtLW9ubHkgICB8XG58IC50ZXh0LWxhcmdlc3QtZm9yLXNtYWxsLW9ubHkgICB8IC50ZXh0LWxhcmdlc3QtZm9yLW1lZGl1bS11cCAgfCAudGV4dC1sYXJnZXN0LWZvci1tZWRpdW0tb25seSAgfCAudGV4dC1sYXJnZXN0LWZvci1tZWRpdW0tb25seSAgfFxuXG4jIyMgTWl4aW5cblxuU2VlIFtTYXNzZG9jIGRvY3VtZW50YXRpb25dKC9zYXNzZG9jLyNtaXhpbi10ZXh0KVxuKi9cblxuLy8gdGV4dCBzaXplIGhlbHBlcnNcbkBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkdGV4dC1zaXplcyB7XG5cbiAgICAvLyBmb3IgZGVmYXVsdFxuICAgIC50ZXh0LSN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgdGV4dCgkbmFtZSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgLnRleHQtI3skbmFtZX0tZm9yLXNtYWxsLW9ubHkge1xuICAgICAgICBAaW5jbHVkZSB0ZXh0KCRuYW1lLCB0cnVlLCAkc21hbGwtb25seSk7XG4gICAgfVxuXG4gICAgLnRleHQtI3skbmFtZX0tZm9yLW1lZGl1bS11cCB7XG4gICAgICAgIEBpbmNsdWRlIHRleHQoJG5hbWUsIHRydWUsICRtZWRpdW0tdXApO1xuICAgIH1cblxuICAgIC50ZXh0LSN7JG5hbWV9LWZvci1tZWRpdW0tb25seSB7XG4gICAgICAgIEBpbmNsdWRlIHRleHQoJG5hbWUsIHRydWUsICRtZWRpdW0tb25seSk7XG4gICAgfVxuXG4gICAgLnRleHQtI3skbmFtZX0tZm9yLWxhcmdlLXVwIHtcbiAgICAgICAgQGluY2x1ZGUgdGV4dCgkbmFtZSwgdHJ1ZSwgJGxhcmdlLXVwKTtcbiAgICB9XG59XG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBUZXh0IEFsaWdubWVudFxubmFtZTogYi10ZXh0LWFsaWdubWVudFxuY2F0ZWdvcnk6IFR5cG9ncmFwaHkgLSBUZXh0IChhbmQgaGVscGVycylcbnNlbGVjdG9yczpcbiAgICAtIC50ZXh0LWxlZnRcbiAgICAtIC50ZXh0LXJpZ2h0XG4gICAgLSAudGV4dC1jZW50ZXJcbiAgICAtIC50ZXh0LWp1c3RpZnlcbnNlbGVjdG9yX3R5cGU6IHRleHRcbi0tLVxuXG5UaGlzIGFsaWducyB0ZXh0IGluc2lkZSBlbGVtZW50cy5cblxuYC50ZXh0LWxlZnRgXG5gLnRleHQtcmlnaHRgXG5gLnRleHQtY2VudGVyYFxuYC50ZXh0LWp1c3RpZnlgXG5cbiMjIyBSZXNwb25zaXZlIEhlbHBlcnNcblxuKipUT0RPOioqIFRoZXNlIHN0b2NrIEZvdW5kYXRpb24gaGVscGVycyBhcmUgY29uZnVzaW5nIGFuZCBhbm5veWluZyBuYW1pbmctXG53aXNlLCBidXQgdGhleSBleGlzdC4gWW91IGNhbiBzZXQgdGV4dCBhbGlnbW5tZW50IHZpYSBicmVha3BvaW50cy4gSSBtaWdodFxuY2hhbmdlIHRoZSBuYW1pbmcgdG8gYmUgbW9yZSBjb25zaXN0ZW50IHdpdGggdGhlIG90aGVyIG5hbWVkIHN0dWZmLiBJbnN0ZWFkIG9mXG5gLnNtYWxsLXRleHQtbWVkaXVtYCwgd2lsbCBtYWtlIGl0IGAudGV4dC1sZWZ0LWZvci1tZWRpdW0tdXBgLlxuXG5cbnwgbGVmdCAgICAgICAgICAgICAgICAgICB8IHJpZ2h0ICAgICAgICAgICAgICAgICAgIHwgY2VudGVyICAgICAgICAgICAgICAgICAgIHwganVzdGlmeSAgICAgICAgICAgICAgICAgICAgfFxufC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG58IC5zbWFsbC10ZXh0LWxlZnQgICAgICAgfCAuc21hbGwtdGV4dC1yaWdodCAgICAgICB8IC5zbWFsbC10ZXh0LWNlbnRlciAgICAgICB8IC5zbWFsbC10ZXh0LWp1c3RpZnkgICAgICAgIHxcbnwgLnNtYWxsLW9ubHktdGV4dC1sZWZ0ICB8IC5zbWFsbC1vbmx5LXRleHQtcmlnaHQgIHwgLnNtYWxsLW9ubHktdGV4dC1jZW50ZXIgIHwgLnNtYWxsLW9ubHktdGV4dC1qdXN0aWZ5ICAgfFxufCAubWVkaXVtLXRleHQtbGVmdCAgICAgIHwgLm1lZGl1bS10ZXh0LXJpZ2h0ICAgICAgfCAubWVkaXVtLXRleHQtY2VudGVyICAgICAgfCAubWVkaXVtLXRleHQtanVzdGlmeSAgICAgICB8XG58IC5tZWRpdW0tb25seS10ZXh0LWxlZnQgfCAubWVkaXVtLW9ubHktdGV4dC1yaWdodCB8IC5tZWRpdW0tb25seS10ZXh0LWNlbnRlciB8IC5tZWRpdW0tb25seS10ZXh0LWp1c3RpZnkgIHxcbnwgLmxhcmdlLXRleHQtbGVmdCAgICAgICB8IC5sYXJnZS10ZXh0LXJpZ2h0ICAgICAgIHwgLmxhcmdlLXRleHQtY2VudGVyICAgICAgIHwgLmxhcmdlLXRleHQtanVzdGlmeSAgICAgICAgfFxufCAubGFyZ2Utb25seS10ZXh0LWxlZnQgIHwgLmxhcmdlLW9ubHktdGV4dC1yaWdodCAgfCAubGFyZ2Utb25seS10ZXh0LWNlbnRlciAgfCAubGFyZ2Utb25seS10ZXh0LWp1c3RpZnkgICB8XG5cbiovXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBIZWFkaW5nIFNpemVzXG5uYW1lOiBhLWhlYWRpbmctc2l6ZXNcbmNhdGVnb3J5OiBUeXBvZ3JhcGh5IC0gSGVhZGluZ3MgKGFuZCBoZWxwZXJzKVxuc2VsZWN0b3JzOlxuICAgIC0gLmhlYWRpbmctc21hbGxlc3RcbiAgICAtIC5oZWFkaW5nLXNtYWxsZXJcbiAgICAtIC5oZWFkaW5nLXNtYWxsXG4gICAgLSAuaGVhZGluZy1ub3JtYWxcbiAgICAtIC5oZWFkaW5nLWxhcmdlXG4gICAgLSAuaGVhZGluZy1sYXJnZXJcbiAgICAtIC5oZWFkaW5nLWxhcmdlc3RcbnNlbGVjdG9yX3R5cGU6IHRleHRcbi0tLVxuXG5BcHBseSB0aGVzZSBjbGFzc2VzIHRvIGhlYWRpbmdzIHRvIG1hbmlwdWxhdGUgdGhlIHNpemVzLlxuKipOb3RlOioqIEFsbCBoZWFkaW5ncyBgaDEsIGgyLCBoMywgaDQsIGg1LCBoNmAgc2hvdWxkIGhhdmUgYVxuYC5oZWFkaW5nLSpgIGNsYXNzIGF0dGFjaGVkLlxuXG5gLmhlYWRpbmctc21hbGxlc3RgICgxMnB4KVxuYC5oZWFkaW5nLXNtYWxsZXIgYCAoMTRweClcbmAuaGVhZGluZy1zbWFsbCAgIGAgKDE2cHgpXG5gLmhlYWRpbmctbm9ybWFsICBgICgxOHB4KVxuYC5oZWFkaW5nLWxhcmdlICAgYCAoMjRweClcbmAuaGVhZGluZy1sYXJnZXIgIGAgKDMwcHgpXG5gLmhlYWRpbmctbGFyZ2VzdCBgICg0NXB4KVxuXG5gYGBodG1sX2V4YW1wbGVcbjxoMiBjbGFzcz1cImhlYWRpbmctc21hbGxlc3RcIj5UaGlzIGlzIGEgaGVhZGluZyB3aXRoIC5oZWFkaW5nLXNtYWxsZXN0IGNsYXNzPC9oMj5cbjxoMiBjbGFzcz1cImhlYWRpbmctc21hbGxlclwiPlRoaXMgaXMgYSBoZWFkaW5nIHdpdGggLmhlYWRpbmctc21hbGxlciBjbGFzczwvaDI+XG48aDIgY2xhc3M9XCJoZWFkaW5nLXNtYWxsXCI+VGhpcyBpcyBhIGhlYWRpbmcgd2l0aCAuaGVhZGluZy1zbWFsbCBjbGFzczwvaDI+XG48aDIgY2xhc3M9XCJoZWFkaW5nLW5vcm1hbFwiPlRoaXMgaXMgYSBoZWFkaW5nIHdpdGggLmhlYWRpbmctbm9ybWFsIGNsYXNzPC9oMj5cbjxoMiBjbGFzcz1cImhlYWRpbmctbGFyZ2VcIj5UaGlzIGlzIGEgaGVhZGluZyB3aXRoIC5oZWFkaW5nLWxhcmdlIGNsYXNzPC9oMj5cbjxoMiBjbGFzcz1cImhlYWRpbmctbGFyZ2VyXCI+VGhpcyBpcyBhIGhlYWRpbmcgd2l0aCAuaGVhZGluZy1sYXJnZXIgY2xhc3M8L2gyPlxuPGgyIGNsYXNzPVwiaGVhZGluZy1sYXJnZXN0XCI+VGhpcyBpcyBhIGhlYWRpbmcgd2l0aCAuaGVhZGluZy1sYXJnZXN0IGNsYXNzPC9oMj5cbmBgYFxuXG4jIyMgUmVzcG9uc2l2ZSBIZWxwZXJzXG5cbk5vdCBvbmx5IGRvIHdlIGhhdmUgdGhlIGdlbmVyYWwgaGVhZGluZyBzaXplIGNsYXNzZXMgYWJvdmUsIHlvdSBjYW4gaXNvbGF0ZSB0aGVcbnNpemVzIGJ5IG9uZSBvciBhIHJhbmdlIG9mIG91ciAzIG1haW4gYnJlYWtwb2ludHMuIFRoZXNlIHNob3VsZCBiZSBhbGwgdGhlXG5vbmVzIHlvdSBuZWVkIHRvIGNoYW5nZSB0aGUgc2l6ZSBvZiBoZWFkaW5nIGFjY29yZGluZyB0byBzY3JlZW4gc2l6ZTpcblxuXG58IGZvciBzbWFsbCBvbmx5ICAgICAgICAgICAgICAgICAgICB8ICAgZm9yIG1lZGl1bSB1cCAgICAgICAgICAgICAgICAgfCBmb3IgbWVkaXVtIG9ubHkgICAgICAgICAgICAgICAgICAgfCBmb3IgbGFyZ2UgdXAgICAgICAgICAgICAgICAgICAgICAgfFxufC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXxcbnwgLmhlYWRpbmctc21hbGxlc3QtZm9yLXNtYWxsLW9ubHkgIHwgLmhlYWRpbmctc21hbGxlc3QtZm9yLW1lZGl1bS11cCB8IC5oZWFkaW5nLXNtYWxsZXN0LWZvci1tZWRpdW0tb25seSB8IC5oZWFkaW5nLXNtYWxsZXN0LWZvci1tZWRpdW0tb25seSB8XG58IC5oZWFkaW5nLXNtYWxsZXItZm9yLXNtYWxsLW9ubHkgICB8IC5oZWFkaW5nLXNtYWxsZXItZm9yLW1lZGl1bS11cCAgfCAuaGVhZGluZy1zbWFsbGVyLWZvci1tZWRpdW0tb25seSAgfCAuaGVhZGluZy1zbWFsbGVyLWZvci1tZWRpdW0tb25seSAgfFxufCAuaGVhZGluZy1zbWFsbC1mb3Itc21hbGwtb25seSAgICAgfCAuaGVhZGluZy1zbWFsbC1mb3ItbWVkaXVtLXVwICAgIHwgLmhlYWRpbmctc21hbGwtZm9yLW1lZGl1bS1vbmx5ICAgIHwgLmhlYWRpbmctc21hbGwtZm9yLW1lZGl1bS1vbmx5ICAgIHxcbnwgLmhlYWRpbmctbm9ybWFsLWZvci1zbWFsbC1vbmx5ICAgIHwgLmhlYWRpbmctbm9ybWFsLWZvci1tZWRpdW0tdXAgICB8IC5oZWFkaW5nLW5vcm1hbC1mb3ItbWVkaXVtLW9ubHkgICB8IC5oZWFkaW5nLW5vcm1hbC1mb3ItbWVkaXVtLW9ubHkgICB8XG58IC5oZWFkaW5nLWxhcmdlLWZvci1zbWFsbC1vbmx5ICAgICB8IC5oZWFkaW5nLWxhcmdlLWZvci1tZWRpdW0tdXAgICAgfCAuaGVhZGluZy1sYXJnZS1mb3ItbWVkaXVtLW9ubHkgICAgfCAuaGVhZGluZy1sYXJnZS1mb3ItbWVkaXVtLW9ubHkgICAgfFxufCAuaGVhZGluZy1sYXJnZXItZm9yLXNtYWxsLW9ubHkgICAgfCAuaGVhZGluZy1sYXJnZXItZm9yLW1lZGl1bS11cCAgIHwgLmhlYWRpbmctbGFyZ2VyLWZvci1tZWRpdW0tb25seSAgIHwgLmhlYWRpbmctbGFyZ2VyLWZvci1tZWRpdW0tb25seSAgIHxcbnwgLmhlYWRpbmctbGFyZ2VzdC1mb3Itc21hbGwtb25seSAgIHwgLmhlYWRpbmctbGFyZ2VzdC1mb3ItbWVkaXVtLXVwICB8IC5oZWFkaW5nLWxhcmdlc3QtZm9yLW1lZGl1bS1vbmx5ICB8IC5oZWFkaW5nLWxhcmdlc3QtZm9yLW1lZGl1bS1vbmx5ICB8XG5cbiMjIyBNaXhpblxuXG5TZWUgW1Nhc3Nkb2MgZG9jdW1lbnRhdGlvbl0oL3Nhc3Nkb2MvI21peGluLWhlYWRpbmcpXG4qL1xuXG4vLyBoZWFkaW5nIHNpemUgaGVscGVyc1xuQGVhY2ggJG5hbWUsICRzaXplIGluICR0ZXh0LXNpemVzIHtcblxuICAgIC8vIGZvciBkZWZhdWx0XG4gICAgLmhlYWRpbmctI3skbmFtZX0ge1xuICAgICAgICBAaW5jbHVkZSBoZWFkaW5nKCRuYW1lLCB0cnVlKTtcbiAgICB9XG5cbiAgICAuaGVhZGluZy0jeyRuYW1lfS1mb3Itc21hbGwtb25seSB7XG4gICAgICAgIEBpbmNsdWRlIGhlYWRpbmcoJG5hbWUsIHRydWUsICRzbWFsbC1vbmx5KTtcbiAgICB9XG5cbiAgICAuaGVhZGluZy0jeyRuYW1lfS1mb3ItbWVkaXVtLXVwIHtcbiAgICAgICAgQGluY2x1ZGUgaGVhZGluZygkbmFtZSwgdHJ1ZSwgJG1lZGl1bS11cCk7XG4gICAgfVxuXG4gICAgLmhlYWRpbmctI3skbmFtZX0tZm9yLW1lZGl1bS1vbmx5IHtcbiAgICAgICAgQGluY2x1ZGUgaGVhZGluZygkbmFtZSwgdHJ1ZSwgJG1lZGl1bS1vbmx5KTtcbiAgICB9XG5cbiAgICAuaGVhZGluZy0jeyRuYW1lfS1mb3ItbGFyZ2UtdXAge1xuICAgICAgICBAaW5jbHVkZSBoZWFkaW5nKCRuYW1lLCB0cnVlLCAkbGFyZ2UtdXApO1xuICAgIH1cbn1cblxuLypkb2Ncbi0tLVxudGl0bGU6IFNtYWxsIEhlYWRpbmcgU2VnbWVudHNcbm5hbWU6IGItc21hbGwtaGVhZGVyLXNlZ21lbnRzXG5jYXRlZ29yeTogVHlwb2dyYXBoeSAtIEhlYWRpbmdzIChhbmQgaGVscGVycylcbi0tLVxuXG5JbnNlcnRpbmcgYSBgPHNtYWxsPmAgZWxlbWVudCBpbnRvIGEgaGVhZGluZyB3aWxsIHNjYWxlIHRoZSBoZWFkaW5nIGZvbnRcbnNpemUgZG93biBmb3IgYW4gaW5saW5lIGVsZW1lbnQsIGFsbG93aW5nIHlvdSB0byB1c2UgdGhpcyBmb3Igc3VidGl0bGVzIG9yIG90aGVyXG5zZWNvbmRhcnkgaGVhZGluZyB0ZXh0LlxuXG5gYGBodG1sX2V4YW1wbGVcbjxoMiBjbGFzcz1cImhlYWRpbmctbm9ybWFsXCI+Tm9ybWFsIGhlYWRpbmcgd2l0aCBhIDxzbWFsbD5zbWFsbCBzZWdtZW50Ljwvc21hbGw+PC9oMz5cbjxoMiBjbGFzcz1cImhlYWRpbmctbGFyZ2VcIj5MYXJnZSBoZWFkaW5nICB3aXRoIGEgPHNtYWxsPnNtYWxsIHNlZ21lbnQuPC9zbWFsbD48L2g0PlxuPGgyIGNsYXNzPVwiaGVhZGluZy1sYXJnZXJcIj5MYXJnZXIgaGVhZGluZyAgd2l0aCBhIDxzbWFsbD5zbWFsbCBzZWdtZW50Ljwvc21hbGw+PC9oND5cbjxoMiBjbGFzcz1cImhlYWRpbmctbGFyZ2VzdFwiPkxhcmdlc3QgaGVhZGluZyAgd2l0aCBhIDxzbWFsbD5zbWFsbCBzZWdtZW50Ljwvc21hbGw+PC9oND5cbmBgYFxuKi9cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gICAgc3VwIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjVlbTsgLy8gSW4gZW1zIHNvIHRoYXQgaXQncyByZWxhdGl2ZSB0byB0aGUgaGVhZGluZyBzaXplXG4gICAgfVxufVxuXG4vKmRvY1xuLS0tXG50aXRsZTogSGVhZGluZyBTcGVjaWZpYyBIZWxwZXJzXG5uYW1lOiBjLWhlYWRpbmctc3BlY2lmaWMtaGVscGVyc1xuY2F0ZWdvcnk6IFR5cG9ncmFwaHkgLSBIZWFkaW5ncyAoYW5kIGhlbHBlcnMpXG5zZWxlY3RvcnM6XG4gICAgLSAuaGVhZGluZy1saWdodFxuc2VsZWN0b3JfdHlwZTogdGV4dFxuLS0tXG5cblNvbWV0aW1lcyB5b3Ugd2FudCB0byBkZWJvbGQgYSBoZWFkaW5nLiBVc2U6IGAuaGVhZGluZy1saWdodGAgKGZvbnQtd2VpZ2h0OiA0MDApXG5cbmBgYGh0bWxfZXhhbXBsZVxuPGgzIGNsYXNzPVwiaGVhZGluZy1ub3JtYWxcIj5UaGlzIGlzIGEgZGVmYXVsdCBoZWFkaW5nPC9oMj5cbjxoMyBjbGFzcz1cImhlYWRpbmctbm9ybWFsIGhlYWRpbmctbGlnaHRcIj5UaGlzIGlzIGEgZGVib2xkZWQgaGVhZGluZzwvaDI+XG5gYGBcblxuKi9cblxuLmhlYWRpbmctbGlnaHQge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDAgIWltcG9ydGFudDtcbn1cblxuLmhlYWRpbmctbGlnaHRlciB7XG4gICAgZm9udC13ZWlnaHQ6IDMwMCAhaW1wb3J0YW50O1xufVxuXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBUZXh0IENvbG9yXG5uYW1lOiBhLXRleHQtY29sb3JcbmNhdGVnb3J5OiBUeXBvZ3JhcGh5IC0gR2VuZXJhbCBIZWxwZXJzXG5zZWxlY3RvcnM6XG4gICAgLSAudGV4dC1tdXRlZFxuICAgIC0gLnRleHQtY2FwdGlvblxuICAgIC0gLnRleHQtY29hbFxuICAgIC0gLnRleHQtc3RlZWxcbiAgICAtIC50ZXh0LWlyb25cbiAgICAtIC50ZXh0LWJsYWNrXG4gICAgLSAudGV4dC1qZXRcbiAgICAtIC50ZXh0LWFib3ZlLWF2ZXJhZ2VcbiAgICAtIC50ZXh0LWF2ZXJhZ2VcbiAgICAtIC50ZXh0LWJlbG93LWF2ZXJhZ2VcbiAgICAtIC50ZXh0LWFsZXJ0XG4gICAgLSAudGV4dC13aGl0ZVxuICAgIC0gLnRleHQtbGlnaHQtcHVycGxlXG4gICAgLSAudGV4dC1saWdodC1ncmF5XG5zZWxlY3Rvcl90eXBlOiB0ZXh0XG4tLS1cblxuRGVmYXVsdCB0ZXh0IGNvbG9yIGlzIGAjMzMzMzMzYC4gWW91IGNhbiBvdmVycmlkZSB0aGUgZGVmYXVsdCBjb2xvciBvbiBhbnkgdGV4dCBlbGVtZW50IHdpdGg6XG5cblxufCBjbGFzc25hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGV4YW1wbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXxcbnwgLnRleHQtbXV0ZWQgICAgICAgICAgICAgICAgICAgICAgICAgfCA8c3BhbiBjbGFzcz1cInRleHQtbXV0ZWRcIj5NdXRlZCBncmF5IHRleHQgKGFsdW1pbnVtIG9yICM5OTk5OTkpIHRoYXQgaXMgdXNlZCBhIHRvbjwvc3Bhbj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IC50ZXh0LWNhcHRpb24gICAgICAgICAgICAgICAgICAgICAgIHwgPHNwYW4gY2xhc3M9XCJ0ZXh0LWNhcHRpb25cIj5EYXJrZXIgKGp1bWJvIG9yICM4ODg4ODgpIHRoYW4gLnRleHQtbXV0ZWQsIHVzZWQgZm9yIGNhcHRpb24gdGV4dDwvc3Bhbj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCAudGV4dC1jb2FsICAgICAgICAgICAgICAgICAgICAgICAgICB8IDxzcGFuIGNsYXNzPVwidGV4dC1jb2FsXCI+U2xpZ2h0bHkgZGFya2VyIGdyYXkgKGNoYXJjb2FsIG9yICM1NTU1NTUpIGlmIHdlIG11c3Q8L3NwYW4+XG58IC50ZXh0LXN0ZWVsICAgICAgICAgICAgICAgICAgICAgICAgIHwgPHNwYW4gY2xhc3M9XCJ0ZXh0LXN0ZWVsXCI+IFNsaWdodGx5IGRhcmtlciB0aGFuIGNvYWwgZ3JheSB0ZXh0ICgkc3RlZWwgb3IgIzY2NikgdGhlIG5ldyBzdWJoZWFkaW5nIGNvbG9yPC9zcGFuPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCAudGV4dC1ibGFjayAgICAgICAgICAgICAgICAgICAgICAgICB8IDxzcGFuIGNsYXNzPVwidGV4dC1ibGFja1wiPkJsYWNrICgjMzMzKSB0ZXh0IHVzZWQgZm9yIHJhaWwgbGlua3MgaW4gbmV3czwvc3Bhbj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgLnRleHQtamV0ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA8c3BhbiBjbGFzcz1cInRleHQtamV0XCI+SmV0ICgjMjIyKSB0ZXh0IHVzZWQgZm9yIHNwb25zb3JlZCBsYWJlbCB0ZXh0PC9zcGFuPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCAudGV4dC1pcm9uICAgICAgICAgICAgICAgICAgICAgICAgICB8IDxzcGFuIGNsYXNzPVwidGV4dC1pcm9uXCI+R3JheSAoY2hhcmNvYWwgb3IgIzMzMzMzMykgdXNlZCBpbiB0ZXh0IG92ZXIgYmxhY2sgYmFja2dyb3VuZHM8L3NwYW4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgLnRleHQtYWJvdmUtYXZlcmFnZSAgICAgICAgICAgICAgICAgfCA8c3BhbiBjbGFzcz1cInRleHQtYWJvdmUtYXZlcmFnZVwiPkNvbnZleXMgYWJvdmUgYXZlcmFnZSwgcG9zaXRpdmUgb3IgZ29vZCAoZ3JlZW4tcHJvIG9yICMwYWJiYTQpPC9zcGFuPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IC50ZXh0LWF2ZXJhZ2UgICAgICAgICAgICAgICAgICAgICAgIHwgPHNwYW4gY2xhc3M9XCJ0ZXh0LWF2ZXJhZ2VcIj5Db252ZXlzIGF2ZXJhZ2UsIG5ldXRyYWwgb3IgQyBzdHVkZW50IChvcmFuZ2UtbGlnaHQgb3IgI2ZmYzE0ZSk8L3NwYW4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCAudGV4dC1iZWxvdy1hdmVyYWdlIG9yIC50ZXh0LWFsZXJ0ICB8IDxzcGFuIGNsYXNzPVwidGV4dC1iZWxvdy1hdmVyYWdlXCI+Q29udmV5cyBiZWxvdyBhdmVyYWdlLCBuZWdhdGl2ZSBvciBiYWQ7IHVzZSAudGV4dC1hbGVydCBpbiBvdGhlciBjYXNlcyAocmVkIG9yICNkMTQ1M2QpPC9zcGFuPiAgICAgICAgICAgICAgICAgIHxcbnwgLnRleHQtd2hpdGUgICAgICAgICAgICAgICAgICAgICAgICAgfCA8ZGl2IHN0eWxlPVwicGFkZGluZzogMnB4IDZweDtcIiBjbGFzcz1cInBhbmVsIGJsb2NrLWZsdXNoIHRleHQtd2hpdGVcIj5XaGl0ZSAoI2ZmZmZmZikgdGV4dCwgaGFuZHkgZm9yIG92ZXJsYXlpbmcgaW1hZ2VzIGFuZCBkYXJrIGJhY2tncm91bmRzPC9kaXY+IHxcbnwgLnRleHQtbGlnaHQtcHVycGxlICAgICAgICAgICAgICAgICAgfCA8c3BhbiBjbGFzcz1cInRleHQtbGlnaHQtcHVycGxlXCI+TGlnaHQgcHVycGxlIHRleHQgKCNjOWRiZjUpIGlzIHVzZWQgZm9yIG92ZXJsaW5lcyBpbiBzdXBlcmhlcm9lczwvc3Bhbj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IC50ZXh0LWxpZ2h0LWdyYXkgICAgICAgICAgICAgICAgICAgIHwgPHNwYW4gY2xhc3M9XCJ0ZXh0LWxpZ2h0LWdyYXlcIj5MaWdodCBncmF5ICgjYzBjYWRkKSBpcyB1c2VkIGluIHRoZSB0b3AtYmFyPC9zcGFuPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCAudGV4dC1saW5rLWJsdWUtbGlnaHQgICAgICAgICAgICAgICB8IDxzcGFuIGNsYXNzPVwidGV4dC1saW5rLWJsdWUtbGlnaHRcIj5MaWdodCBibHVlIHRoYXQgbG9va3MgbGlrZSBhIGxpbms8L3NwYW4+XG58IC50ZXh0LXN0ZWVsLWJsdWUtZGFyayAgICAgICAgICAgICAgIHwgPHNwYW4gY2xhc3M9XCJ0ZXh0LXN0ZWVsLWJsdWUtZGFyayBiZy1zdGVlbC1ibHVlLWxpZ2h0XCI+VG8gZ28gd2l0aCB0aGluZ3Mgb24gYSBzdGVlbC1ibHVlLWxpZ2h0IGJhY2tncm91bmQ8L3NwYW4+XG58IC50ZXh0LXByaW1hcnktY29sb3IgICAgICAgICAgICAgICAgIHwgPHNwYW4gY2xhc3M9XCJ0ZXh0LXByaW1hcnktY29sb3JcIj5XaGVuIHlvdSB3YW50IHlvdXIgdGV4dCB0byBtYXRjaCB5b3VyIHByaW1hcnkgY29sb3IgZWxlbWVudHM8L3NwYW4+XG5cbiovXG5cbkBtaXhpbiB0ZXh0LXN0eWxlKCRuYW1lKSB7XG4gICAgLnRleHQtI3skbmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG5cbiAgICBAZWFjaCAkYnJlYWtwb2ludCwgJHZhciBpbiAkYnJlYWtwb2ludC12YXJpYWJsZXMge1xuICAgICAgICAudGV4dC0jeyRuYW1lfS1mb3ItI3skYnJlYWtwb2ludH0ge1xuICAgICAgICAgICAgQG1lZGlhICN7JHZhcn0ge1xuICAgICAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4udGV4dC1tdXRlZCB7XG4gICAgY29sb3I6ICRhbHVtaW51bSAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1jYXB0aW9uIHtcbiAgICBjb2xvcjogJGp1bWJvICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LWNvYWwge1xuICAgIGNvbG9yOiAkY2hhcmNvYWwgIWltcG9ydGFudDtcbn1cbi50ZXh0LXN0ZWVsIHtcbiAgICBjb2xvcjogJHN0ZWVsICFpbXBvcnRhbnQ7XG59XG4udGV4dC1pcm9uIHtcbiAgICBjb2xvcjogJGlyb24gIWltcG9ydGFudDtcbn1cblxuLnRleHQtYmxhY2ssXG4udGV4dC1ibGFjayA+IGEgeyAvLyBpbiBjYXNlIHlvdSBjYW5ub3QgZWFzaWx5IGFwcGx5IHRvIHRoZSBhIHRhZyBsaWtlIGluIG1lZGlhIG9iamVjdCBidWlsZGVyXG4gICAgY29sb3I6ICRvaWwgIWltcG9ydGFudDtcbn1cblxuLnRleHQtamV0IHtcbiAgICBjb2xvcjogJGpldCAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1hYm92ZS1hdmVyYWdlIHtcbiAgICBjb2xvcjogJGdyZWVuLXBybyAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1hdmVyYWdlIHtcbiAgICBjb2xvcjogJG9yYW5nZS1saWdodCAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1iZWxvdy1hdmVyYWdlLFxuLnRleHQtYWxlcnQge1xuICAgIGNvbG9yOiAkcmVkICFpbXBvcnRhbnQ7XG59XG5cbkBpbmNsdWRlIHRleHQtc3R5bGUoJ3doaXRlJykge1xuICAgIGNvbG9yOiAkd2hpdGUgIWltcG9ydGFudDtcbn1cblxuLnRleHQtbGlnaHQtcHVycGxlIHtcbiAgICBjb2xvcjogJGxpZ2h0LXB1cnBsZTtcbn1cblxuLnRleHQtbGlnaHQtZ3JheSB7XG4gICAgY29sb3I6ICRsaWdodC1ncmF5O1xufVxuXG4udGV4dC1kYXJrLW9yYW5nZSB7XG4gICAgY29sb3I6ICRvcmFuZ2UtZGFyaztcbn1cblxuLnRleHQtbGluay1ibHVlLWxpZ2h0IHtcbiAgICBjb2xvcjogJGxpbmstYmx1ZS1saWdodCAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1wcmltYXJ5LWNvbG9yIHtcbiAgICBjb2xvcjogJHByaW1hcnktY29sb3IgIWltcG9ydGFudDtcbn1cblxuLnRleHQtc3RlZWwtYmx1ZS1kYXJrIHtcbiAgICBjb2xvcjogJHN0ZWVsLWJsdWUtZGFyayAhaW1wb3J0YW50O1xufVxuXG4vKmRvY1xuLS0tXG50aXRsZTogVGV4dCBUcmFuc2Zvcm1hdGlvbnNcbm5hbWU6IGItdGV4dC10cmFuc2Zvcm1hdGlvbnNcbmNhdGVnb3J5OiBUeXBvZ3JhcGh5IC0gR2VuZXJhbCBIZWxwZXJzXG5zZWxlY3RvcnM6XG4gICAgLSAudGV4dC11cHBlcmNhc2VcbiAgICAtIC50ZXh0LXVwcGVyY2FzZS1mb3Itc21hbGwtb25seVxuICAgIC0gLnRleHQtc2VtaXN0cm9uZ1xuICAgIC0gLnRleHQtc3Ryb25nXG4gICAgLSAudGV4dC1zdHJvbmdlclxuICAgIC0gLnRleHQtd2Vha1xuICAgIC0gLnRleHQtZW1waGFzaXplZFxuICAgIC0gLnRleHQtc2hhZG93XG4gICAgLSAudGV4dC1zdHJvbmctc2hhZG93XG4gICAgLSAudGV4dC1zdHJpa2V0aHJvdWdoXG5zZWxlY3Rvcl90eXBlOiB0ZXh0XG4tLS1cblxuQSBmZXcgaGVscGVycyB0byB0cmFuc2Zvcm0gdGhlIHN0eWxpbmcgb2YgdGV4dCBzcGVjaWZpY2FsbHk6XG5cblxufCBjbGFzc25hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGV4YW1wbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG58IC50ZXh0LXVwcGVyY2FzZSAgICAgICAgICAgICAgICAgICAgIHwgPHNwYW4gY2xhc3M9XCJ0ZXh0LXVwcGVyY2FzZVwiPlRoaXMgd2lsbCB1cHBlcmNhc2UgYW55IHRleHQ8L3NwYW4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IC50ZXh0LXNlbWlzdHJvbmcgICAgICAgICAgICAgICAgICAgIHwgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmdcIj5UaGlzIGlzIHNlbWlzdHJvbmcgKG9yIHNlbWlib2xkKSB0ZXh0PC9zcGFuPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IC50ZXh0LXN0cm9uZyBvciBgPHN0cm9uZyAvPmAgICAgICAgIHwgPHNwYW4gY2xhc3M9XCJ0ZXh0LXN0cm9uZ1wiPlRoaXMgYm9sZHMgdGV4dCB0byBhIHdlaWdodCBvZiA1MDAsIGEgY29tbW9ubHkgdXNlZCBib2xkIHdlaWdodDwvc3Bhbj4gPHN0cm9uZz4oc2FtZSBhcyBzdHJvbmcgdGFnKTwvc3Ryb25nPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IC50ZXh0LXN0cm9uZ2VyICAgICAgICAgICAgICAgICAgICAgIHwgPHNwYW4gY2xhc3M9XCJ0ZXh0LXN0cm9uZ2VyXCI+VGhpcyBib2xkcyB0ZXh0IGV2ZW4gbW9yZSB0byBhIG1heCB3ZWlnaHQgb2YgNzAwPC9zcGFuPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IC50ZXh0LXdlYWsgICAgICAgICAgICAgICAgICAgICAgICAgIHwgPHNwYW4gY2xhc3M9XCJ0ZXh0LXdlYWtcIj5UaGlzIGxpZ2h0ZW5zIHRleHQgdG8gdGhlIHdlYWtlc3QodGhpbm5lc3QpIHdlaWdodCBvZiAzMDA8L3NwYW4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IC50ZXh0LWVtcGhhc2l6ZWQgb3IgYDxlbSAvPmAgICAgICAgIHwgPHNwYW4gY2xhc3M9XCJ0ZXh0LWVtcGhhc2l6ZWRcIj5UaGlzIG1ha2VzIHRleHQgbG9vayBpdGFsaWMsIGFsc28gZW1waGFzaXplZDwvc3Bhbj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IC50ZXh0LXVuZGVybGluZSAgICAgICAgICAgICAgICAgICAgIHwgPHNwYW4gY2xhc3M9XCJ0ZXh0LXVuZGVybGluZVwiPlRleHQgd2l0aCB1bmRlcmxpbmU8L3NwYW4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IC50ZXh0LXN0cmlrZXRocm91Z2ggICAgICAgICAgICAgICAgIHwgPHNwYW4gY2xhc3M9XCJ0ZXh0LXN0cmlrZXRocm91Z2hcIj5UZXh0IHdpdGggc3RyaWtldGhyb3VnaDwvc3Bhbj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IC50ZXh0LXNoYWRvdyAgICAgICAgICAgICAgICAgICAgICAgIHwgPGRpdiBzdHlsZT1cInBhZGRpbmc6IDJweCA2cHg7XCIgY2xhc3M9XCJwYW5lbCBibG9jay1mbHVzaCB0ZXh0LXdoaXRlIHRleHQtc2hhZG93XCI+VGhpcyBhZGRzIGEgc2hhZG93IHRvIHVzdWFsbHkgd2hpdGUgdGV4dCBvbiBvdmVybGF5cyBvZnRlbiBzZWVuIGluIGhlcm8gdW5pdHM8L2Rpdj4gIHxcbnwgLnRleHQtc3Ryb25nLXNoYWRvdyAgICAgICAgICAgICAgICAgfCA8ZGl2IHN0eWxlPVwicGFkZGluZzogMnB4IDZweDtcIiBjbGFzcz1cInBhbmVsIGJsb2NrLWZsdXNoIHRleHQtd2hpdGUgdGV4dC1zdHJvbmctc2hhZG93XCI+QSBzdHJvbmdlciBzaGFkb3csIGdyZWF0IGZvciBpbWFnZSBvdmVybGF5czwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuXG4qL1xuXG4udGV4dC11cHBlcmNhc2Uge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWltcG9ydGFudDtcbn1cblxuQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICAudGV4dC11cHBlcmNhc2UtZm9yLXNtYWxsLW9ubHkge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLnRleHQtc2VtaXN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1zZW1pYm9sZCAhaW1wb3J0YW50XG59XG5cbi50ZXh0LXN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1tZWRpdW0tYm9sZCAhaW1wb3J0YW50XG59XG5cbkBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgLnRleHQtc3Ryb25nLWZvci1zbWFsbC1vbmx5IHtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1tZWRpdW0tYm9sZCAhaW1wb3J0YW50XG4gICAgfVxufVxuXG5zdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbWVkaXVtLWJvbGQ7XG59XG5cbmIgcCB7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xufVxuXG4udGV4dC1zdHJvbmdlciB7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LXdlYWsge1xuICAgIGZvbnQtd2VpZ2h0OiAzMDAgIWltcG9ydGFudDtcbn1cblxuLnRleHQtZW1waGFzaXplZCB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG5AaW5jbHVkZSB0ZXh0LXN0eWxlKCdzaGFkb3cnKSB7XG4gICAgdGV4dC1zaGFkb3c6IDBweCAxcHggMnB4IHJnYmEoMCwwLDAsMC41KSAhaW1wb3J0YW50O1xufVxuXG5AaW5jbHVkZSB0ZXh0LXN0eWxlKCdzdHJvbmctc2hhZG93Jykge1xuICAgIHRleHQtc2hhZG93OiAycHggMnB4IDNweCByZ2JhKDAsMCwwLDEpICFpbXBvcnRhbnQ7XG59XG5cbi50ZXh0LXVuZGVybGluZSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbn1cblxuLnRleHQtc3RyaWtldGhyb3VnaCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2ggIWltcG9ydGFudDtcbn1cblxuLypkb2Ncbi0tLVxudGl0bGU6IExpbmUgSGVpZ2h0IE1vZGlmaWVycyAoTGVhZGluZylcbm5hbWU6IGMtbGluZS1oZWlnaHQtbW9kaWZpZXJzXG5jYXRlZ29yeTogVHlwb2dyYXBoeSAtIEdlbmVyYWwgSGVscGVyc1xuc2VsZWN0b3JzOlxuICAgIC0gLnRleHQtdGlnaHRlc3RcbiAgICAtIC50ZXh0LXRpZ2h0ZXJcbiAgICAtIC50ZXh0LXRpZ2h0XG4gICAgLSAudGV4dC1sb29zZVxuICAgIC0gLnRleHQtbG9vc2VyXG4gICAgLSAudGV4dC1sb29zZXN0XG5zZWxlY3Rvcl90eXBlOiB0ZXh0XG4tLS1cblxuQSBmZXcgaGVscGVycyB0byB0aWdodGVuIG9yIGxvb3NlbiBiZXR3ZWVuIHRleHQgKihub3QgdG8gYmUgY29uZnVzZWQgd2l0aCAuYmxvY2stdGlnaHQgb3IgLnBhZC1sb29zZSwgdGhvc2UgYXJlIGZvciBwYWRkaW5nIGFuZCBtYXJnaW5zKToqXG5cbmAudGV4dC10aWdodGVzdGAgKGxpbmUtaGVpZ2h0OiAxKVxuYC50ZXh0LXRpZ2h0ZXJgIChsaW5lLWhlaWdodDogMS4xNjY2NjY2NylcbmAudGV4dC10aWdodGAgKGxpbmUtaGVpZ2h0OiAxLjMzMzMzMzQpXG5gZGVmYXVsdGAgKGxpbmUtaGVpZ2h0OiAxLjUpXG5gLnRleHQtbG9vc2VgIChsaW5lLWhlaWdodDogMS42NjY2NjY3KVxuYC50ZXh0LWxvb3NlcmAgKGxpbmUtaGVpZ2h0OiAxLjgzMzMzMzMzNClcbmAudGV4dC1sb29zZXN0YCAobGluZS1oZWlnaHQ6IDIpXG5cbmBgYCBodG1sX2V4YW1wbGVcbjxwIGNsYXNzPVwidGV4dC10aWdodGVzdFwiPlxuICAgIFRoaXMgdGV4dCBpcyA8c3Ryb25nPlRJR0hURVNUPC9zdHJvbmc+IHdpdGggYSBsaW5lLWhlaWdodCBzZXQgdG8gPGVtPjE8L2VtPiAtIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LiBDdWxwYSBtb2xsaXRpYSBpbnZlbnRvcmUgc3VudCBtb2RpIHJhdGlvbmUgZWl1cywgc2FwaWVudGUgZGlzdGluY3RpbyBtb2xlc3RpYXMsIGEgcmVjdXNhbmRhZSB2b2x1cHRhdGVzIHJlcHVkaWFuZGFlIGluIG1heGltZSBtYWduYW0gYWNjdXNhbnRpdW0gc29sdXRhLiBTb2x1dGEgbmVzY2l1bnQsIHJlaWNpZW5kaXM/XG48L3A+XG5cbjxwIGNsYXNzPVwidGV4dC10aWdodGVyXCI+XG4gICAgVGhpcyB0ZXh0IGlzIDxzdHJvbmc+VElHSFRFUjwvc3Ryb25nPiB3aXRoIGEgbGluZS1oZWlnaHQgc2V0IHRvIDxlbT4xLjE2NzwvZW0+IC0gTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQuIEN1bHBhIG1vbGxpdGlhIGludmVudG9yZSBzdW50IG1vZGkgcmF0aW9uZSBlaXVzLCBzYXBpZW50ZSBkaXN0aW5jdGlvIG1vbGVzdGlhcywgYSByZWN1c2FuZGFlIHZvbHVwdGF0ZXMgcmVwdWRpYW5kYWUgaW4gbWF4aW1lIG1hZ25hbSBhY2N1c2FudGl1bSBzb2x1dGEuIFNvbHV0YSBuZXNjaXVudCwgcmVpY2llbmRpcz9cbjwvcD5cblxuPHAgY2xhc3M9XCJ0ZXh0LXRpZ2h0XCI+XG4gICAgVGhpcyB0ZXh0IGlzIDxzdHJvbmc+VElHSFQ8L3N0cm9uZz4gd2l0aCBhIGxpbmUtaGVpZ2h0IHNldCB0byA8ZW0+MS4zMzwvZW0+IC0gTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQuIEN1bHBhIG1vbGxpdGlhIGludmVudG9yZSBzdW50IG1vZGkgcmF0aW9uZSBlaXVzLCBzYXBpZW50ZSBkaXN0aW5jdGlvIG1vbGVzdGlhcywgYSByZWN1c2FuZGFlIHZvbHVwdGF0ZXMgcmVwdWRpYW5kYWUgaW4gbWF4aW1lIG1hZ25hbSBhY2N1c2FudGl1bSBzb2x1dGEuIFNvbHV0YSBuZXNjaXVudCwgcmVpY2llbmRpcz9cbjwvcD5cblxuPHA+XG4gICAgVGhpcyB0ZXh0IGlzIGhhcyBhIDxzdHJvbmc+Tk9STUFMPC9zdHJvbmc+IHdpdGggbGluZS1oZWlnaHQgb2YgPGVtPjEuNTwvZW0+IC0gTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQuIEN1bHBhIG1vbGxpdGlhIGludmVudG9yZSBzdW50IG1vZGkgcmF0aW9uZSBlaXVzLCBzYXBpZW50ZSBkaXN0aW5jdGlvIG1vbGVzdGlhcywgYSByZWN1c2FuZGFlIHZvbHVwdGF0ZXMgcmVwdWRpYW5kYWUgaW4gbWF4aW1lIG1hZ25hbSBhY2N1c2FudGl1bSBzb2x1dGEuIFNvbHV0YSBuZXNjaXVudCwgcmVpY2llbmRpcz9cbjwvcD5cblxuPHAgY2xhc3M9XCJ0ZXh0LWxvb3NlXCI+XG4gICAgVGhpcyB0ZXh0IGlzIDxzdHJvbmc+TE9PU0U8L3N0cm9uZz4gd2l0aCBhIGxpbmUtaGVpZ2h0IHNldCB0byA8ZW0+MS42NzwvZW0+IC0gTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQuIEN1bHBhIG1vbGxpdGlhIGludmVudG9yZSBzdW50IG1vZGkgcmF0aW9uZSBlaXVzLCBzYXBpZW50ZSBkaXN0aW5jdGlvIG1vbGVzdGlhcywgYSByZWN1c2FuZGFlIHZvbHVwdGF0ZXMgcmVwdWRpYW5kYWUgaW4gbWF4aW1lIG1hZ25hbSBhY2N1c2FudGl1bSBzb2x1dGEuIFNvbHV0YSBuZXNjaXVudCwgcmVpY2llbmRpcz9cbjwvcD5cblxuPHAgY2xhc3M9XCJ0ZXh0LWxvb3NlclwiPlxuICAgIFRoaXMgdGV4dCBpcyA8c3Ryb25nPkxPT1NFUjwvc3Ryb25nPiB3aXRoIGEgbGluZS1oZWlnaHQgc2V0IHRvIDxlbT4xLjg0PC9lbT4gLSBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdC4gQ3VscGEgbW9sbGl0aWEgaW52ZW50b3JlIHN1bnQgbW9kaSByYXRpb25lIGVpdXMsIHNhcGllbnRlIGRpc3RpbmN0aW8gbW9sZXN0aWFzLCBhIHJlY3VzYW5kYWUgdm9sdXB0YXRlcyByZXB1ZGlhbmRhZSBpbiBtYXhpbWUgbWFnbmFtIGFjY3VzYW50aXVtIHNvbHV0YS4gU29sdXRhIG5lc2NpdW50LCByZWljaWVuZGlzP1xuPC9wPlxuXG48cCBjbGFzcz1cInRleHQtbG9vc2VzdFwiPlxuICAgIFRoaXMgdGV4dCBpcyA8c3Ryb25nPkxPT1NFU1Q8L3N0cm9uZz4gd2l0aCBhIGxpbmUtaGVpZ2h0IHNldCB0byA8ZW0+MjwvZW0+IC0gTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQuIEN1bHBhIG1vbGxpdGlhIGludmVudG9yZSBzdW50IG1vZGkgcmF0aW9uZSBlaXVzLCBzYXBpZW50ZSBkaXN0aW5jdGlvIG1vbGVzdGlhcywgYSByZWN1c2FuZGFlIHZvbHVwdGF0ZXMgcmVwdWRpYW5kYWUgaW4gbWF4aW1lIG1hZ25hbSBhY2N1c2FudGl1bSBzb2x1dGEuIFNvbHV0YSBuZXNjaXVudCwgcmVpY2llbmRpcz9cbjwvcD5cblxuYGBgXG4qL1xuXG4udGV4dC10aWdodGVzdCB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi50ZXh0LXRpZ2h0ZXIge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE2NjY2NjY2Nztcbn1cblxuLnRleHQtdGlnaHQge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjMzMzMzMzMzNDtcbn1cblxuLy8gZGVmYXVsdCBpcyBoYW5kbGVkIGluIEZvdW5kYXRpb24gaW4gX3NldHRpbmdzLnNjc3NcblxuLnRleHQtbG9vc2Uge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY2NjY2NjY2Nztcbn1cblxuLnRleHQtbG9vc2VyIHtcbiAgICBsaW5lLWhlaWdodDogMS44MzMzMzMzMzQ7XG59XG5cbi50ZXh0LWxvb3Nlc3Qge1xuICAgIGxpbmUtaGVpZ2h0OiAyO1xufVxuXG4vKmRvY1xuLS0tXG50aXRsZTogTGV0dGVyIFNwYWNpbmcgTW9kaWZpZXJzXG5uYW1lOiBjLWxldHRlci1zcGFjaW5nLW1vZGlmaWVyc1xuY2F0ZWdvcnk6IFR5cG9ncmFwaHkgLSBHZW5lcmFsIEhlbHBlcnNcbnNlbGVjdG9yczpcbiAgICAtIC5sZXR0ZXJzLXNwb25zb3JlZC1sYWJlbFxuICAgIC0gLmxldHRlcnMtbG9vc2VcbiAgICAtIC5sZXR0ZXJzLWxvb3NlclxuICAgIC0gLmxldHRlcnMtbG9vc2VzdFxuc2VsZWN0b3JfdHlwZTogdGV4dFxuLS0tXG5cbkEgZmV3IGhlbHBlcnMgdG8gbG9vc2VuIGxldHRlciBzcGFjaW5nXG5cbmAubGV0dGVycy1zcG9uc29yZWQtbGFiZWxgIChsZXR0ZXItc3BhY2luZzogMC4wOHJlbSlcbmAubGV0dGVycy1sb29zZWAgKGxldHRlci1zcGFjaW5nOiAxcHgpXG5gLmxldHRlcnMtbG9vc2VyYCAobGV0dGVyLXNwYWNpbmc6IDNweClcbmAubGV0dGVycy1sb29zZXN0YCAobGV0dGVyLXNwYWNpbmc6IDVweClcblxuYGBgIGh0bWxfZXhhbXBsZVxuPHAgY2xhc3M9XCJsZXR0ZXJzLXNwb25zb3JlZC1sYWJlbFwiPlxuICAgIFRoZXNlIGxldHRlcnMgYXJlIDxzdHJvbmc+c3BvbnNvcmVkLWxhYmVsPC9zdHJvbmc+IHdpdGggYSBsZXR0ZXItc3BhY2luZyBzZXQgdG8gPGVtPjAuMDhyZW08L2VtPiBhbmQgaXMgdXNlZCBmb3Igc3BvbnNvcmVkIG1lZGlhIGxhYmVscyBvbiBzdXBlcmhlcm9zLlxuPC9wPlxuXG48cCBjbGFzcz1cImxldHRlcnMtbG9vc2VcIj5cbiAgICBUaGVzZSBsZXR0ZXJzIGFyZSA8c3Ryb25nPkxPT1NFPC9zdHJvbmc+IHdpdGggYSBsZXR0ZXItc3BhY2luZyBzZXQgdG8gPGVtPjFweDwvZW0+LlxuPC9wPlxuXG48cCBjbGFzcz1cImxldHRlcnMtbG9vc2VyXCI+XG4gICAgVGhlc2UgbGV0dGVycyBhcmUgPHN0cm9uZz5MT09TRVI8L3N0cm9uZz4gd2l0aCBhIGxldHRlci1zcGFjaW5nIHNldCB0byA8ZW0+M3B4PC9lbT5cbjwvcD5cblxuPHAgY2xhc3M9XCJ0ZXh0LWxvb3Nlc3RcIj5cbiAgICBUaGVzZSBsZXR0ZXJzIGFyZSB0aGUgPHN0cm9uZz5MT09TRVNUPC9zdHJvbmc+IHdpdGggYSBsZXR0ZXItc3BhY2luZyBzZXQgdG8gPGVtPjVweDwvZW0+XG48L3A+XG5cbmBgYFxuKi9cblxuLmxldHRlcnMtc3BvbnNvcmVkLWxhYmVsIHtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wOHJlbTtcbn1cblxuLmxldHRlcnMtbG9vc2Uge1xuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG59XG5cbi5sZXR0ZXJzLWxvb3NlciB7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDNweDtcbn1cblxuLmxldHRlcnMtbG9vc2VzdCB7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDVweDtcbn1cblxuLypkb2Ncbi0tLVxudGl0bGU6IE5vd3JhcFxubmFtZTogZC1ub3dyYXBcbmNhdGVnb3J5OiBUeXBvZ3JhcGh5IC0gR2VuZXJhbCBIZWxwZXJzXG5zZWxlY3RvcnM6XG4gICAgLSAudGV4dC1ub3dyYXBcbnNlbGVjdG9yX3R5cGU6IHRleHRcbi0tLVxuXG5TZXQgYC50ZXh0LW5vd3JhcGAgdG8gcHJldmVudCB0ZXh0IGZyb20gd3JhcHBpbmcuIEhlbHBmdWwgaW4gdGFibGUgaGVhZGluZyBzaXR1YXRpb25zLlxuXG4qL1xuXG4udGV4dC1ub3dyYXAge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDtcbn1cblxuLypkb2Ncbi0tLVxudGl0bGU6IExpbmtzXG5uYW1lOiBhLWxpbmtzXG5jYXRlZ29yeTogVHlwb2dyYXBoeSAtIExpbmtzICYgVGFnc1xuc2VsZWN0b3JzOlxuICAgIC0gLmRvdHRlZFxuICAgIC0gLmhvdmVyLW11dGVkXG4gICAgLSAuaG92ZXItY29hbFxuICAgIC0gLmhvdmVyLXNtb2tlXG4gICAgLSAuaG92ZXItYmxhY2tcbiAgICAtIC5ob3Zlci1saWdodC1ncmF5XG5zZWxlY3Rvcl90eXBlOiB0ZXh0XG4tLS1cblxufCBjbGFzc25hbWUgICAgIHwgZXhhbXBsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufC0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG58IGA8YSAvPmAgICAgICAgICB8IEhlcmUgaXMgYSA8YSBocmVmPVwiXCI+ZGVmYXVsdCBsaW5rPC9hPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCAudGV4dC1ibGFjayAgICAgfCBIZXJlIGlzIGEgPGEgY2xhc3M9XCJ0ZXh0LWJsYWNrXCIgaHJlZj1cIlwiPnRyaWNreSBibGFjayBsaW5rPC9hPiB1c2VkIGluIG5ld3MgcmFpbHMgfFxufCAuZG90dGVkICAgICAgICAgfCBIZXJlIGlzIGEgPGEgY2xhc3M9XCJkb3R0ZWRcIiBocmVmPVwiXCI+ZG90dGVkIGxpbms8L2E+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCAuaG92ZXItbXV0ZWQgICAgfCBIZXJlIGlzIGEgPGEgY2xhc3M9XCJob3Zlci1tdXRlZFwiIGhyZWY9XCJcIj5ob3ZlciBtdXRlZDwvYT4gICAgICAgICAgICAgICAgICAgICAgICAgfFxufCAuaG92ZXItc21va2UgICAgfCBIZXJlIGlzIGEgPGEgY2xhc3M9XCJob3Zlci1zbW9rZVwiIGhyZWY9XCJcIj5ob3ZlciBzbW9rZTwvYT4gICAgICAgICAgICAgICAgICAgICAgICAgfFxufCAuaG92ZXItY29hbCAgICAgfCBIZXJlIGlzIGEgPGEgY2xhc3M9XCJob3Zlci1jb2FsXCIgaHJlZj1cIlwiPmhvdmVyIGNvYWw8L2E+ICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCAuaG92ZXItZ2FpbnNib3JvfCBIZXJlIGlzIGEgPGEgY2xhc3M9XCJob3Zlci1nYWluc2Jvcm9cIiBocmVmPVwiXCI+aG92ZXIgZ2FpbnNib3JvPC9hPiAgICAgICAgICAgICAgICAgfFxufCAuaG92ZXItYmxhY2sgICAgfCBIZXJlIGlzIGEgPGEgY2xhc3M9XCJob3Zlci1ibGFja1wiIGhyZWY9XCJcIj5ob3ZlciBibGFjazwvYT4gICAgICAgICAgICAgICAgICAgICAgICAgfFxuXG5gYGBodG1sX2V4YW1wbGU/a2l0Y2hlbi1zaW5rPXRydWVcbjx1bD5cbiAgICA8bGk+SGVyZSBpcyA8YSBocmVmPVwiaHR0cDovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PXpUMmFWb1VrU0RnXCI+YW4gZXhhbXBsZTwvYT4gb2Ygb3VyIHN0YW5kYXJkIGxpbmsgc3R5bGU8L2xpPlxuICAgIDxsaT5IZXJlIGlzIDxhIGNsYXNzPVwidGV4dC1ibGFja1wiIGhyZWY9XCJcIj5hIGhhcmQgdG8gdGVsbCBibGFjayBsaW5rPC9hPiB1c2VkIGluIG5ld3MgcmFpbHMuPC9saT5cbiAgICA8bGk+SGVyZSBpcyA8YSBjbGFzcz1cImRvdHRlZFwiIGhyZWY9XCJcIj5hIGRvdHRlZCBsaW5rPC9hPiB1c2VkIGluIHNvbWUgbW9kdWxlczwvbGk+XG4gICAgPGxpPkhlcmUgaXMgPGEgY2xhc3M9XCJ0ZXh0LW11dGVkIGhvdmVyLWNvYWxcIiBocmVmPVwiXCI+YSBtdXRlZCBsaW5rIHdpdGggY29hbCBob3ZlcjwvYT4gdXNlZCBpbiBzb21lIG1vZHVsZXM8L2xpPlxuPC91bD5cbmBgYFxuXG4qL1xuXG5hLmRvdHRlZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IGRvdHRlZCBsaWdodGVuKCRvcmFuZ2UtZGFyaywgMjUlKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMi41cHg7XG4gICAgY29sb3I6ICRvaWw7XG59XG5cbi5ob3Zlci1tdXRlZDpob3ZlciB7XG4gICAgY29sb3I6ICRhbHVtaW51bSAhaW1wb3J0YW50O1xufVxuXG4uaG92ZXItc21va2U6aG92ZXIge1xuICAgIGNvbG9yOiAkc21va2UgIWltcG9ydGFudDtcbn1cblxuLmhvdmVyLWNvYWw6aG92ZXIge1xuICAgIGNvbG9yOiAkY2hhcmNvYWwgIWltcG9ydGFudDtcbn1cblxuLmhvdmVyLWdhaW5zYm9ybzpob3ZlciB7XG4gICAgY29sb3I6ICRnYWluc2Jvcm8gIWltcG9ydGFudDtcbn1cblxuLmhvdmVyLWJsYWNrOmhvdmVyIHtcbiAgICBjb2xvcjogJGJsYWNrICFpbXBvcnRhbnQ7XG59XG4ubm8taG92ZXJ7XG4gICAgY3Vyc29yOiBkZWZhdWx0ICFpbXBvcnRhbnRcbn1cblxuLmhvdmVyLWxpZ2h0LWdyYXk6aG92ZXIge1xuICAgIGNvbG9yOiAkbGlnaHQtZ3JheSAhaW1wb3J0YW50O1xufVxuXG4vL1NvbHV0aW9uIHRvIHByZXZlbnQgbGlua3MgaW4gYXJ0aWNsZXMgZnJvbSBiZWluZyB1bmRlcmxpbmVkLlxudVtkYXRhLXJ0ZTItc2FuaXRpemU9XCJ1bmRlcmxpbmVcIl17IHRleHQtZGVjb3JhdGlvbjogbm9uZX1cbi8qZG9jXG4tLS1cbnRpdGxlOiBUYWdzXG5uYW1lOiBiLXRhZ3NcbmNhdGVnb3J5OiBUeXBvZ3JhcGh5IC0gTGlua3MgJiBUYWdzXG5zZWxlY3RvcnM6XG4gICAgLSAudGFnc1xuc2VsZWN0b3JfdHlwZTogdGV4dFxuLS0tXG5cblRoaXMgY2xhc3MgaXMgZm9yIHRoZSBzdHlsaW5nIG9mIHRhZ3MgYXQgdGhlIGJvdHRvbSBvZiBhcnRpY2xlcy5cblxuYGBgaHRtbF9leGFtcGxlP2tpdGNoZW4tc2luaz10cnVlXG48cCBjbGFzcz1cInRhZ3NcIj5UYWdzOiA8YSBocmVmPVwiI1wiIGFsdD1cIlwiPmNhcmVlcnM8L2E+LDxhIGhyZWY9XCIjXCIgYWx0PVwiXCI+IG1vbmV5PC9hPiw8YSBocmVmPVwiI1wiIGFsdD1cIlwiPiByZXN1bWVzPC9hPiwgPGEgaHJlZj1cIiNcIiBhbHQ9XCJcIj5qb2Igc2VhcmNoaW5nPC9hPjwvcD5cbmBgYFxuXG4qL1xuXG4udGFncyB7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1tZWRpdW07XG4gICAgZm9udC1zaXplOiAkdGV4dC1zbWFsbDtcblxuICAgICYgPiBhIHtcbiAgICAgICAgY29sb3I6ICRvaWw7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJGFsdW1pbnVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBCbG9ja3F1b3Rlc1xubmFtZTogYi1jbXMtY3VzdG9tLXF1b3RlXG5jYXRlZ29yeTogVHlwb2dyYXBoeSAtIE90aGVyXG5zZWxlY3RvcnM6XG4gICAgLSAuY21zLWN1c3RvbS1xdW90ZVxuc2VsZWN0b3JfdHlwZTogdGV4dFxuLS0tXG5cblRoaXMgaXMgc3BlY2lhbCBzdHlsaW5nIGZvciBibG9ja3F1b3RlcyBhZGRlZCBpbiB0aGUgQ01TIHJpY2ggdGV4dCBlZGl0b3IuXG5cbmBgYGh0bWxfZXhhbXBsZT9raXRjaGVuLXNpbms9dHJ1ZVxuPGRpdiBjbGFzcz1cImNtcy1jdXN0b20tcXVvdGVcIj5EYXZpZCBBLiBHcmFoYW0gYXQgVGhlIEF0bGFudGljIGFsc28gPGEgY2xhc3M9XCJcIiBocmVmPVwiaHR0cDovL3d3dy50aGVhdGxhbnRpYy5jb20vbm90ZXMvMjAxNi8wMS9zYW5kZXJzLWFtZXJpY2EvNDI1MDQzL1wiPnByYWlzZXM8L2E+IFNhbmRlcnMgZm9yIHRyeWluZyB0byBhdm9pZCBuZWdhdGl2aXR5LiBTcGVha2luZyBhYm91dCB0aGUgYWQgb3ZlcmFsbCwgR3JhaGFtIG9ic2VydmVzLCBcIkl0J3MgYSBwcmV0dHkgZ3JlYXQgc3BvdCwgd2l0aCBsb3RzIG9mIHdhcm0gZnV6emllcy5cIiBIb3dldmVyLCBHcmFoYW0gYXJndWVzIHRoYXQgdGhlIGFkIGNvdWxkIGhhdmUgc2hvd24gbW9yZSByYWNpYWwgZGl2ZXJzaXR5OiBcIlN0aWxsLCBpdCdzIGhhcmQgbm90IHRvIG5vdGljZSBob3cgd2hpdGUgdGhlIGFkIGlzIOKAkyBJIGNvdW50ZWQgcGVyaGFwcyBoYWxmIGEgZG96ZW4gcGVvcGxlIG9mIGNvbG9yIGluIHRoZSBzcG90LlwiIEdyYWhhbSBub3RlcyB0aGF0IFwiSW93YSBhbmQgTmV3IEhhbXBzaGlyZSBEZW1vY3JhdHMgYXJlIGhlYXZpbHkgd2hpdGVcIiBidXQgc2F5cyB0aGF0IHRoZSBhZCBkb2VzIG5vdCBhcHBlYWwgdG8gdGhlIFwiYnJvYWRlciBEZW1vY3JhdGljIGVsZWN0b3JhdGUsXCIgZXNwZWNpYWxseSB0aGUgQWZyaWNhbi1BbWVyaWNhbiBhbmQgTGF0aW5vIGNvbW11bml0aWVzLjwvZGl2PlxuPGRpdiBjbGFzcz1cImNtcy1jdXN0b20tcXVvdGVcIj5Ib3QgQWlyJ3MgQWxsYWhwdW5kaXQgPGEgaHJlZj1cImh0dHA6Ly9ob3RhaXIuY29tL2FyY2hpdmVzLzIwMTYvMDEvMjEvdGhlLW1lZGlhcy1nb3QtYS1mZXZlci1hbmQtdGhlLW9ubHktcHJlc2NyaXB0aW9uLWlzLXRoaXMtbmV3LWJlcm5pZS1zYW5kZXJzLWFkL1wiIHRpdGxlPVwiTGluazogaHR0cDovL2hvdGFpci5jb20vYXJjaGl2ZXMvMjAxNi8wMS8yMS90aGUtbWVkaWFzLWdvdC1hLWZldmVyLWFuZC10aGUtb25seS1wcmVzY3JpcHRpb24taXMtdGhpcy1uZXctYmVybmllLXNhbmRlcnMtYWQvXCI+ZmluZHM8L2E+Jm5ic3A7dGhhdCB0aGUgYWQgZGVzZXJ2ZXMgdGhlIGF0dGVudGlvbiBpdCBoYXMgZ2FybmVyZWQuIEhlIHByYWlzZXMgU2FuZGVycyBmb3IgYmVpbmcgYWJsZSB0byBzdWNjZXNzZnVsbHkgY29udmV5IGhpcyBtZXNzYWdlIHRocm91Z2ggXCJhdG1vc3BoZXJlXCIgcmF0aGVyIHRoYW4gbmFycmF0aW9uLiBBbGxhaHB1bmRpdCB3cml0ZXMsIFwiVGhlIHBvcHVsaXN0IGNvbnRyYXN0IHdpdGggSGlsbGFyeSBpcyBzbyBvYnZpb3VzIHRoYXQgU2FuZGVycyBkb2Vzbid0IGV2ZW4gYWxsdWRlIHRvIGhlciBoZXJlLlwiIEhlIGFsc28gb2JzZXJ2ZXMgdGhhdCBTYW5kZXJzIG1hbmFnZXMgdG8gY29udHJhc3QgaGltc2VsZiB3aXRoIE9iYW1hLiBcIlRoZSBPYmFtYSBtb3ZlbWVudCB3YXMgdWx0aW1hdGVseSBhYm91dCBPYmFtYSBhbmQgaGlzIGN1bHQgb2YgcGVyc29uYWxpdHkuIFRoZSBTYW5kZXJzIG1vdmVtZW50IGlzIGJlaW5nIHNvbGQsIGhvd2V2ZXIgaW1wbGljaXRseSwgYXMgYSByZWFjdGlvbiB0byB0aGF0LCBkZXZvbHZpbmcgdGhlIHNwaXJpdCBvZiBsaWJlcmFsaXNtIGJhY2sgdG8gdGhlIHBlb3BsZSBhZnRlciBlbnNocmluaW5nIGl0IGluIGEgbGVhZGVyIHdobyBkaXNhcHBvaW50ZWQgc29tZSBwcm9ncmVzc2l2ZXMgd2hlbiBoZSB3YXNuJ3QgcmFkaWNhbCBlbm91Z2guXCIgTGlrZSBHcmFoYW0sIGhlIHBvaW50cyBvdXQgdGhhdCB0aGUgYWQgaXMgXCJoZWF2eSBvbiB3aGl0ZSBwZW9wbGUsXCIgdGhvdWdoLjwvZGl2PlxuYGBgXG5cbiovXG5cbi5jbXMtY3VzdG9tLXF1b3RlIHtcbiAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkICRsaW5rLWJsdWUtbGlnaHQ7XG4gICAgbWFyZ2luLWxlZnQ6IDI1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7XG5cbiAgICAmICsgLmNtcy1jdXN0b20tcXVvdGUge1xuICAgICAgICBwYWRkaW5nLXRvcDogMjVweDtcbiAgICAgICAgbWFyZ2luLXRvcDogLTI1cHg7XG4gICAgfVxufVxuXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBBdXRvIEVsbGlwc2lzXG5uYW1lOiBhdXRvLWVsbGlwc2lzXG5jYXRlZ29yeTogVHlwb2dyYXBoeSAtIEdlbmVyYWwgSGVscGVyc1xuc2VsZWN0b3JzOlxuc2VsZWN0b3JfdHlwZTogdGV4dFxuLS0tXG5cbkF1dG9tYXRpY2FsbHkgaW5zZXJ0cyBhbiBlbGxpcHNpcyBhdCB0aGUgZW5kIG9mIHNvbWUgdGV4dCBpZiBpdCBvdmVyZmxvd3MuICBBIGN1c3RvbSBoZWlnaHQgaXMgbmVjZXNzYXJ5LlxuQ2FyZSBtdXN0IGJlIHRha2VuIHRvIGVuc3VyZSB0aGUgaGVpZ2h0IG1hdGNoZXMgdXAgd2l0aCB0aGUgYm90dG9tIG9mIHRoZSBsYXN0IGxpbmUsIG9yIHRoZSBlbGxpcHNpcyB3aWxsIGxvb2sgZnVua3kuXG5cbkEgZ2VuZXJhbGl6YXRpb24gb2YgdGhlIHRlY2huaXF1ZSBkZXNjcmliZWQgaW4gdGhpcyBhcnRpY2xlOlxuaHR0cDovL3d3dy5tb2JpZnkuY29tL2Jsb2cvbXVsdGlsaW5lLWVsbGlwc2lzLWluLXB1cmUtY3NzL1xuXG5UaGUgU2FzcyBtaXhpbiB0aGF0IGRyaXZlcyB0aGlzIG1hY3JvIGFsc28gYWxsb3dzIGZvciBhIGN1c3RvbSBlbGxpcHNpcyBlbGVtZW50IHRvIGNyZWF0ZSBhIFwibW9yZVwiIGxpbmssIGFycm93LCBldGMuIGluc3RlYWQgb2YgXCIuLi4gXCIgYnkgcGFzc2luZyBgdHJ1ZWAgYXMgdGhlIGZpcnN0IGFyZ3VtZW50LlxuXG57JSBzZXQgZWRpdG9yX2lkID0gdXVpZCgpICV9XG5cbmBgYG51bmp1Y2tzX3RhYj9lZGl0b3ItaWQ9e3tlZGl0b3JfaWR9fVxueyUgZnJvbSBcInRlbXBsYXRlcy9jb21tb24vdXRpbHMvZWxsaXBzaXMubnVualwiIGltcG9ydCBlbGxpcHNpcyAlfVxueyUgY2FsbCBlbGxpcHNpcyg0OCkgJX1cbiAgICA8c3Bhbj5PbmUgbW9ybmluZywgd2hlbiBHcmVnb3IgU2Ftc2Egd29rZSBmcm9tIHRyb3VibGVkIGRyZWFtcywgaGUgZm91bmQgaGltc2VsZiB0cmFuc2Zvcm1lZCBpbiBoaXMgYmVkIGludG8gYSBob3JyaWJsZSB2ZXJtaW4uPC9zcGFuPlxuICAgIDxzcGFuPkhlIGxheSBvbiBoaXMgYXJtb3VyLWxpa2UgYmFjaywgYW5kIGlmIGhlIGxpZnRlZCBoaXMgaGVhZCBhIGxpdHRsZSBoZSBjb3VsZCBzZWUgaGlzIGJyb3duIGJlbGx5LCBzbGlnaHRseSBkb21lZCBhbmQgZGl2aWRlZCBieSBhcmNoZXMgaW50byBzdGlmZiBzZWN0aW9ucy48L3NwYW4+XG4gICAgPHNwYW4+VGhlIGJlZGRpbmcgd2FzIGhhcmRseSBhYmxlIHRvIGNvdmVyIGl0IGFuZCBzZWVtZWQgcmVhZHkgdG8gc2xpZGUgb2ZmIGFueSBtb21lbnQuIEhpcyBtYW55IGxlZ3MsIHBpdGlmdWxseSB0aGluIGNvbXBhcmVkIHdpdGggdGhlIHNpemUgb2YgdGhlIHJlc3Qgb2YgaGltLCB3YXZlZCBhYm91dCBoZWxwbGVzc2x5IGFzIGhlIGxvb2tlZC48L3NwYW4+XG57JSBlbmRjYWxsICV9XG5cbjxicj5cbjxicj5cblxueyUgZnJvbSBcInRlbXBsYXRlcy9jb21tb24vdXRpbHMvZWxsaXBzaXMubnVualwiIGltcG9ydCBsaW5rRWxsaXBzaXMgJX1cbnslIGNhbGwgbGlua0VsbGlwc2lzKDQ4LCAnbW9yZScsICdodHRwOi8vdXNuZXdzLmNvbScpICV9XG4gICAgPHNwYW4+T25lIG1vcm5pbmcsIHdoZW4gR3JlZ29yIFNhbXNhIHdva2UgZnJvbSB0cm91YmxlZCBkcmVhbXMsIGhlIGZvdW5kIGhpbXNlbGYgdHJhbnNmb3JtZWQgaW4gaGlzIGJlZCBpbnRvIGEgaG9ycmlibGUgdmVybWluLjwvc3Bhbj5cbiAgICA8c3Bhbj5IZSBsYXkgb24gaGlzIGFybW91ci1saWtlIGJhY2ssIGFuZCBpZiBoZSBsaWZ0ZWQgaGlzIGhlYWQgYSBsaXR0bGUgaGUgY291bGQgc2VlIGhpcyBicm93biBiZWxseSwgc2xpZ2h0bHkgZG9tZWQgYW5kIGRpdmlkZWQgYnkgYXJjaGVzIGludG8gc3RpZmYgc2VjdGlvbnMuPC9zcGFuPlxuICAgIDxzcGFuPlRoZSBiZWRkaW5nIHdhcyBoYXJkbHkgYWJsZSB0byBjb3ZlciBpdCBhbmQgc2VlbWVkIHJlYWR5IHRvIHNsaWRlIG9mZiBhbnkgbW9tZW50LiBIaXMgbWFueSBsZWdzLCBwaXRpZnVsbHkgdGhpbiBjb21wYXJlZCB3aXRoIHRoZSBzaXplIG9mIHRoZSByZXN0IG9mIGhpbSwgd2F2ZWQgYWJvdXQgaGVscGxlc3NseSBhcyBoZSBsb29rZWQuPC9zcGFuPlxueyUgZW5kY2FsbCAlfVxuYGBgXG5cbiovXG5cbkBtaXhpbiBlbGxpcHNpcy1ibG9jaygkY3VzdG9tLXZpc3VhbDogZmFsc2UsICRlbGxpcHNpcy1jdXN0b20tdmlzdWFsLXdpZHRoOiAxMjBweCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgJGhlaWdodC1zcGFjZXItd2lkdGg6IDVweDtcbiAgJGVsbGlwc2lzLXZpc3VhbC13aWR0aDogNDBweDtcblxuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAkaGVpZ2h0LXNwYWNlci13aWR0aDtcbiAgfVxuXG4gIC5lbGxpcHNpcy10ZXh0IHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLWxlZnQ6IC0kaGVpZ2h0LXNwYWNlci13aWR0aDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5lbGxpcHNpcy12aXN1YWwge1xuICAgIGNvbG9yOiBibGFjaztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbGVmdDogMTAwJTtcbiAgICBoZWlnaHQ6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAkaGVpZ2h0LXNwYWNlci13aWR0aDtcblxuICAgIEBtaXhpbiBlbGxpcHNpcy12aXN1YWwtY29udGVudCgpIHtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsMjU1LDI1NSwwKSAwJSxyZ2JhKDI1NSwyNTUsMjU1LDEpIDMwJSk7XG4gICAgICBib3R0b206IDBweDtcbiAgICAgIHJpZ2h0OiA1cHg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgQGlmICRjdXN0b20tdmlzdWFsIHtcbiAgICAgID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIEBpbmNsdWRlIGVsbGlwc2lzLXZpc3VhbC1jb250ZW50KCk7XG5cbiAgICAgICAgd2lkdGg6ICRlbGxpcHNpcy1jdXN0b20tdmlzdWFsLXdpZHRoO1xuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSBlbGxpcHNpcy12aXN1YWwtY29udGVudCgpO1xuXG4gICAgICAgIGNvbnRlbnQ6IFwiLi4uIFwiO1xuICAgICAgICB3aWR0aDogJGVsbGlwc2lzLXZpc3VhbC13aWR0aDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtY29sbGFwc2VkPVwiZmFsc2VcIl0gW2RhdGEtanMtaGFuZGxlPVwiZXhwYW5kXCJdIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJltkYXRhLWNvbGxhcHNlZD1cInRydWVcIl0gW2RhdGEtanMtaGFuZGxlPVwiY29sbGFwc2VcIl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLmVsbGlwc2lzLWJsb2NrIHtcbiAgICBAaW5jbHVkZSBlbGxpcHNpcy1ibG9jaygpO1xufVxuXG4uZWxsaXBzaXMtYmxvY2stY3VzdG9tIHtcbiAgICBAaW5jbHVkZSBlbGxpcHNpcy1ibG9jayh0cnVlKTtcbn1cblxuLy9maXggaXBob25lIHRleHQgc2l6ZSBpc3N1ZVxuYm9keSB7XG4gICAgQGluY2x1ZGUgdG8oYnAtbWVkaXVtKSB7XG4gICAgICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogbm9uZTtcbiAgICB9XG59XG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBTaW5nbGUgTGluZSBFbGxpcHNpc1xubmFtZTogc2luZ2xlLWxpbmUtZWxsaXBzaXNcbmNhdGVnb3J5OiBUeXBvZ3JhcGh5IC0gR2VuZXJhbCBIZWxwZXJzXG5zZWxlY3RvcnM6XG5zZWxlY3Rvcl90eXBlOiB0ZXh0XG4tLS1cblxuQXV0b21hdGljYWxseSBpbnNlcnRzIGFuIGVsbGlwc2lzIGF0IHRoZSBlbmQgb2YgbGluZSBvZiB0ZXh0IGlmIGl0IG92ZXJmbG93cy5cbkZ1cnRoZXIgZ3JhbnVsYXIgY29udHJvbCBvZiBsZW5ndGggY2FuIGJlIGFjaGlldmVkIHdpdGggYSBgbWF4LXdpZHRoYCBzZXQgaW5saW5lLlxuXG5gYGBodG1sX2V4YW1wbGVcbjxkaXYgY2xhc3M9XCJmbGV4LXJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsLTEyIG92ZXJmbG93LWVsbGlwc2lzXCI+XG4gICAgICAgIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9yIGluIHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQgbnVsbGEgcGFyaWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRhdCBub24gcHJvaWRlbnQsIHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0IGFuaW0gaWQgZXN0IGxhYm9ydW0uXG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwtNiBvdmVyZmxvdy1lbGxpcHNpc1wiPlxuICAgICAgICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuIER1aXMgYXV0ZSBpcnVyZSBkb2xvciBpbiByZXByZWhlbmRlcml0IGluIHZvbHVwdGF0ZSB2ZWxpdCBlc3NlIGNpbGx1bSBkb2xvcmUgZXUgZnVnaWF0IG51bGxhIHBhcmlhdHVyLiBFeGNlcHRldXIgc2ludCBvY2NhZWNhdCBjdXBpZGF0YXQgbm9uIHByb2lkZW50LCBzdW50IGluIGN1bHBhIHF1aSBvZmZpY2lhIGRlc2VydW50IG1vbGxpdCBhbmltIGlkIGVzdCBsYWJvcnVtLlxuICAgIDwvZGl2PlxuPC9kaXY+XG5gYGBcbiovXG5cbi5vdmVyZmxvdy1lbGxpcHNpcyB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwICFpbXBvcnRhbnQ7XG59XG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBIeXBoZW5hdGUgT3ZlcmZsb3cgVGV4dFxubmFtZTogaHlwaGVuYXRlLW92ZXJmbG93LXRleHRcbmNhdGVnb3J5OiBUeXBvZ3JhcGh5IC0gR2VuZXJhbCBIZWxwZXJzXG5zZWxlY3RvcnM6XG4gICAgLSAudGV4dC1vdmVyZmxvdy1oeXBoZW5hdGVcbnNlbGVjdG9yX3R5cGU6IHRleHRcbi0tLVxuXG5JZiBhIGJsb2NrIG9mIHRleHQgY2FuIG5vIGxvbmdlciBiZSBvdmVyZmxvd2VkIGJ5IHdyYXBwaW5nIHRvIGEgbmV3bGluZSBvbiB3aGl0ZXNwYWNlLCB0aGlzIHdpbGwgYnJlYWsgdGhlIG92ZXJmbG93aW5nIHdvcmQgdG8gYSBuZXdsaW5lIGFuZCBoeXBoZW5hdGUgYWZ0ZXIgdGhlIGJyZWFrLlxuXG48c3Ryb25nPklNUE9SVEFOVDogVGhpcyBhbHNvIHJlcXVpcmVzIGEgYGxhbmc9XCJlblwiYCBhdHRyaWJ1dGUgdG8gYmUgcHJlc2VudCBvbiB0aGUgZWxlbWVudCB1c2luZyB0aGlzIGNsYXNzLjwvc3Ryb25nPlxuXG5gYGBodG1sX2V4YW1wbGVcbjxkaXY+XG4gICAod2l0aG91dCBjbGFzcylcbiAgIDxwIHN0eWxlPVwicGFkZGluZzogNXB4OyBib3JkZXI6IDFweCBzb2xpZDsgd2lkdGg6IDhlbTtcIj5cbiAgICAgICBUaGlzIGlzIGEgbG9uZyBhbmQgU3VwZXJjYWxpZnJhZ2lsaXN0aWNleHBpYWxpZG9jaW91cyBzZW50ZW5jZS5cbiAgIDwvcD5cblxuICAgKHdpdGggLnRleHQtb3ZlcmZsb3ctaHlwaGVuYXRlKVxuICAgPHAgbGFuZz1cImVuXCIgY2xhc3M9XCJ0ZXh0LW92ZXJmbG93LWh5cGhlbmF0ZVwiIHN0eWxlPVwicGFkZGluZzogNXB4OyBib3JkZXI6IDFweCBzb2xpZDsgd2lkdGg6IDhlbTtcIj5cbiAgICAgICBUaGlzIGlzIGEgbG9uZyBhbmQgU3VwZXJjYWxpZnJhZ2lsaXN0aWNleHBpYWxpZG9jaW91cyBzZW50ZW5jZS5cbiAgIDwvcD5cbjwvZGl2PlxuYGBgXG4qL1xuXG4udGV4dC1vdmVyZmxvdy1oeXBoZW5hdGUge1xuICAgIGh5cGhlbnM6IGF1dG87XG59XG4iLCIvKmRvY1xuLS0tXG50aXRsZTogTGlzdCBNb2RpZmllcnNcbm5hbWU6IGYtbGlzdHNcbmNhdGVnb3J5OiBMaXN0cyAtIExpc3RzXG4tLS1cblxuU3R5bGVzIGZvciBhIG51bWJlciBvZiBkaWZmZXJlbnQgdW5vcmRlcmVkIGxpc3QgYDx1bD5gIHN0eWxlcywgYXMgd2VsbCBhcyBvcmRlcmVkIGFuZCBkZWZpbml0aW9uIGxpc3RzLlxuXG5TdHlsaW5nOiBgLmRpc2NgIGZvciB0aGUgZGVmYXVsdCBzdHlsaW5nLCBgLm5vLWJ1bGxldGAgZm9yIGxpc3Qtc3l0bGUtdHlwZTogbm9uZVxuIyMjIERpc2NcblxuYGBgaHRtbF9leGFtcGxlXG48dWwgY2xhc3M9XCJkaXNjXCI+XG4gIDxsaT5MaXN0IGl0ZW0gd2l0aCBkaXNjIGFuZCBhIG11Y2ggbG9uZ2VyIGRlc2NyaXB0aW9uIG9yIG1vcmUgY29udGVudC48L2xpPlxuICA8bGk+TGlzdCBpdGVtIHdpdGggZGlzYzwvbGk+XG4gIDxsaT5MaXN0IGl0ZW0gd2l0aCBkaXNjXG4gPC91bD5cbmBgYFxuIyMjIE5vLWJ1bGxldFxuYGBgaHRtbF9leGFtcGxlXG4gPHVsIGNsYXNzPVwibm8tYnVsbGV0XCI+XG4gICA8bGk+TGlzdCBpdGVtIHdpdGggYSBtdWNoIGxvbmdlciBkZXNjcmlwdGlvbiBvciBtb3JlIGNvbnRlbnQuPC9saT5cbiAgIDxsaT5MaXN0IGl0ZW08L2xpPlxuICAgPGxpPkxpc3QgaXRlbVxuICA8L3VsPlxuYGBgXG4qL1xuXG4vKmRvY1xuLS0tXG50aXRsZTogSW5saW5lIExpc3RzXG5uYW1lOiBnLWlubGluZS1saXN0c1xuY2F0ZWdvcnk6IExpc3RzIC0gTGlzdHNcbi0tLVxuXG5Vc2UgY2xhc3MgYC5pbmxpbmUtbGlzdGAgdG8gY3JlYXRlIGEgaG9yaXpvbnRhbCByb3cgb2YgbGlua3NcblxuVXNlIGl0IHdoZW4geW91IHdhbnQgbW9yZSBjb250cm9sIHRoYW4gc3BhY2VzIGJldHdlZW4gbGlua3MsIGxpa2UgaW4gYSBmb290ZXIuXG5cbmBgYGh0bWxfZXhhbXBsZVxuPHVsIGNsYXNzPVwiaW5saW5lLWxpc3RcIj5cbiAgPGxpPjxhIGhyZWY9XCIjXCI+TGluayAxPC9hPjwvbGk+XG4gIDxsaT48YSBocmVmPVwiI1wiPkxpbmsgMjwvYT48L2xpPlxuICA8bGk+PGEgaHJlZj1cIiNcIj5MaW5rIDM8L2E+PC9saT5cbiAgPGxpPjxhIGhyZWY9XCIjXCI+TGluayA0PC9hPjwvbGk+XG4gIDxsaT48YSBocmVmPVwiI1wiPkxpbmsgNTwvYT48L2xpPlxuPC91bD5cbmBgYFxuKi9cblxuLypkb2Ncbi0tLVxudGl0bGU6IFRvdWNoIChGcmllbmRseSlcbm5hbWU6IGgtdG91Y2gtZm9yLXNtYWxsLW9ubHlcbmNhdGVnb3J5OiBMaXN0cyAtIExpc3RzXG4tLS1cblxuVXNlIGNsYXNzIGAudG91Y2gtZm9yLXNtYWxsLW9ubHlgIHdoZW4geW91IHdhbnQgdG8gaGF2ZSBsaW5lcyBiZWxvdyB0aGUgbGkgaW4gc21hbGxcblxuVGhpcyBleGFtcGxlIGlzIGFsc28gdXNpbmcgdGhlIGAubm8tYnVsbGV0YCBjbGFzc1xuYGBgaHRtbF9leGFtcGxlXG48dWwgY2xhc3M9XCJ0b3VjaC1mb3Itc21hbGwtb25seSBuby1idWxsZXRcIj5cbiAgPGxpPjxhIGhyZWY9XCIjXCI+TGluayAxPC9hPjwvbGk+XG4gIDxsaT48YSBocmVmPVwiI1wiPkxpbmsgMjwvYT48L2xpPlxuICA8bGk+PGEgaHJlZj1cIiNcIj5MaW5rIDM8L2E+PC9saT5cbiAgPGxpPjxhIGhyZWY9XCIjXCI+TGluayA0PC9hPjwvbGk+XG4gIDxsaT48YSBocmVmPVwiI1wiPkxpbmsgNTwvYT48L2xpPlxuPC91bD5cbmBgYFxuKi9cblxuQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgLnRvdWNoLWZvci1zbWFsbC1vbmx5IHtcbiAgICBmb250LXNpemU6ICR0ZXh0LWxhcmdlO1xuICAgIGNvbG9yOiAkYW5jaG9yLWZvbnQtY29sb3I7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgIGxpe1xuICAgICAgbWFyZ2luOiAwIHJlbS1jYWxjKC0zMCk7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHN0ZWVsLWRhcms7XG4gICAgICBwYWRkaW5nOiByZW0tY2FsYygxMikgMCByZW0tY2FsYygxMikgcmVtLWNhbGMoMTUpO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgbGk6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHN0ZWVsLWRhcms7XG4gICAgfVxuXG4gICAgLmljb24ge1xuICAgICAgbWFyZ2luLXJpZ2h0OiByZW0tY2FsYygyMCk7XG4gICAgfVxuICB9XG59XG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBNb2JpbGUgTGlzdCBTdHlsaW5nXG5uYW1lOiB0LW1vYmlsZS1saXN0XG5jYXRlZ29yeTogIExpc3RzIC0gTGlzdHNcbi0tLVxuIGAuc21hbGwtbGlzdGAgZm9ybWF0cyB3aXRoIGEgc2V0IHBhZGRpbmcgZm9yIGxvb2tpbmcgbGlrZSBhIGAucHJvbW9saXN0LnRleHRgIGxpc3QgaW4gbW9iaWxlXG5cbmBgYGh0bWxfZXhhbXBsZVxuICA8ZGl2IGNsYXNzPVwic21hbGwtMTIgbWVkaXVtLTZcIj5cbiAgICAgIDxhIGNsYXNzPVwiaGVhZGluZy1ub3JtYWwgc21hbGwtbGlzdFwiIGhyZWY9XCIjXCI+QWRtaXNzaW9uczwvYT5cbiAgICAgIDxhIGNsYXNzPVwiaGVhZGluZy1ub3JtYWwgc21hbGwtbGlzdFwiIGhyZWY9XCIjXCI+UmVjb21tZW5kYXRpb24gTGV0dGVyczwvYT5cbiAgICAgIDxhIGNsYXNzPVwiaGVhZGluZy1ub3JtYWwgc21hbGwtbGlzdFwiIGhyZWY9XCIjXCI+V2FpdCBMaXN0PC9hPlxuICA8L2Rpdj5cbmBgYFxuXG5gYGBodG1sX2V4YW1wbGVcbjx1bCBjbGFzcz1cImlubGluZS1saXN0IHNtYWxsLTEyXCI+XG4gIDxsaT48YSBocmVmPVwiI1wiPkxpbmsgMTwvYT48L2xpPlxuICA8bGk+PGEgaHJlZj1cIiNcIj5MaW5rIDI8L2E+PC9saT5cbiAgPGxpPjxhIGhyZWY9XCIjXCI+TGluayAzPC9hPjwvbGk+XG4gIDxsaT48YSBocmVmPVwiI1wiPkxpbmsgNDwvYT48L2xpPlxuICA8bGk+PGEgaHJlZj1cIiNcIj5MaW5rIDU8L2E+PC9saT5cbjwvdWw+XG5gYGBcbiovXG5cbi5pbmxpbmUtbGlzdCB7XG4gIG1hcmdpbjogMCAwIDFyZW0gJGlubGluZS1saXN0LWRlZmF1bHQtZmxvYXQtbWFyZ2luOyAvLyBmaXggZm91bmRhdGlvbiBidWdcbn1cblxuLnNtYWxsLWxpc3Qge1xuICAgIHBhZGRpbmc6IHJlbS1jYWxjKDE1KSByZW0tY2FsYyg3KSByZW0tY2FsYygxNSkgMDtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDEyLjUpIHJlbS1jYWxjKDcpIHJlbS1jYWxjKDEyLjUpIDA7XG4gICAgfVxufVxuXG4uaW5saW5lLWxpc3Quc21hbGwtbGlzdCA+IGxpIHtcbiAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBwYWRkaW5nOiByZW0tY2FsYygxNSkgcmVtLWNhbGMoNykgcmVtLWNhbGMoMTUpIDA7XG4gIH1cbn1cblxuLypkb2Ncbi0tLVxudGl0bGU6IFJhbmtpbmdzIExpc3Rcbm5hbWU6IHJhbmtpbmdzLWxpc3RcbmNhdGVnb3J5OiBMaXN0cyAtIExpc3RzXG5hdXRob3JzOiBDb3JleSBIdXR0b25cbnRlbXBsYXRlOlxuICAgIHJhbmtpbmdzOlxuICAgICAgICAtXG4gICAgICAgICAgICBuYW1lOiBcIkJlc3QgRGlldHMgT3ZlcmFsbFwiXG4gICAgICAgICAgICByYW5rOiBcIiMxXCJcbiAgICAgICAgICAgIHVybDogXCIvd2VsbG5lc3MvZGlldHMvYmVzdC1vdmVyYWxsLWRpZXRzXCJcbiAgICAgICAgLVxuICAgICAgICAgICAgbmFtZTogXCJCZXN0IFdlaWdodC1Mb3NzIERpZXRzXCJcbiAgICAgICAgICAgIHJhbms6IFwiIzEyXCJcbiAgICAgICAgICAgIHVybDogXCIvd2VsbG5lc3MvZGlldHMvYmVzdC13ZWlnaHQtbG9zcy1kaWV0c1wiXG4gICAgICAgIC1cbiAgICAgICAgICAgIG5hbWU6IFwiQmVzdCBEaWFiZXRlcyBEaWV0c1wiXG4gICAgICAgICAgICByYW5rOiBcIiMxXCJcbiAgICAgICAgICAgIHVybDogXCIvd2VsbG5lc3MvZGlldHMvYmVzdC1kaWFiZXRlcy1kaWV0c1wiXG4gICAgICAgIC1cbiAgICAgICAgICAgIG5hbWU6IFwiQmVzdCBEaWV0cyBmb3IgSGVhbHRoeSBFYXRpbmdcIlxuICAgICAgICAgICAgcmFuazogXCIjM1wiXG4gICAgICAgICAgICB1cmw6IFwiL3dlbGxuZXNzL2RpZXRzL2Jlc3QtZGlldHMtZm9yLWhlYWx0aHktZWF0aW5nXCJcbiAgICAgICAgLVxuICAgICAgICAgICAgbmFtZTogXCJCZXN0IERpZXRzIGZvciBIZWFydCBIZWFsdGhcIlxuICAgICAgICAgICAgcmFuazogXCIjOFwiXG4gICAgICAgICAgICB1cmw6IFwiL3dlbGxuZXNzL2RpZXRzL2Jlc3QtZGlldHMtZm9yLWhlYXJ0LWhlYWx0aFwiXG4gICAgICAgIC1cbiAgICAgICAgICAgIG5hbWU6IFwiRWFzaWVzdCBEaWV0cyB0byBGb2xsb3dcIlxuICAgICAgICAgICAgcmFuazogXCIjMVwiXG4gICAgICAgICAgICB1cmw6IFwiL3dlbGxuZXNzL2RpZXRzL2Vhc2llc3QtZGlldHMtdG8tZm9sbG93XCJcbi0tLVxuXG5BIHNpbXBsZSBsaXN0IGZvciByYW5raW5ncywgd2l0aCBiYWRnZSBpY29ucyBhcyBidWxsZXRzLlxuXG5gYGBudW5qdWNrc190YWI/ZWRpdG9yLWlkPXt7dXVpZCgpfX1cbnslIGZyb20gXCJ0ZW1wbGF0ZXMvY29tbW9uL2xpc3QvcmFua2luZ3MubnVualwiIGltcG9ydCByYW5raW5nc0xpc3QgJX1cbnt7IHJhbmtpbmdzTGlzdChyYW5raW5ncykgfX1cbmBgYFxuKi9cblxuLnJhbmtpbmdzLWxpc3QgPiBsaSA+IHN2Zy5yYW5raW5nIHtcbiAgICBtYXJnaW4tdG9wOiAtMXB4O1xufVxuXG4vKmRvY1xuLS0tXG50aXRsZTogU3F1YXJlcyBMaXN0XG5uYW1lOiBzcXVhcmVzLWxpc3RcbmNhdGVnb3J5OiBMaXN0cyAtIExpc3RzXG5hdXRob3JzOiBXZXMgRGlNaWNlbGlcbnRlbXBsYXRlOlxuICAgIHNxdWFyZXNMaXN0OlxuICAgICAgICAtXG4gICAgICAgICAgICBuYW1lOiBcIkJlc3QgRGlldHMgT3ZlcmFsbFwiXG4gICAgICAgICAgICB1cmw6IFwiL3dlbGxuZXNzL2RpZXRzL2Jlc3Qtb3ZlcmFsbC1kaWV0c1wiXG4gICAgICAgICAgICBibHVyYjogbG9yZW0gaXBzdW1cbiAgICAgICAgLVxuICAgICAgICAgICAgbmFtZTogXCJCZXN0IFdlaWdodC1Mb3NzIERpZXRzXCJcbiAgICAgICAgICAgIHVybDogXCIvd2VsbG5lc3MvZGlldHMvYmVzdC13ZWlnaHQtbG9zcy1kaWV0c1wiXG4gICAgICAgICAgICBibHVyYjogbG9yZW0gaXBzdW1cbiAgICAgICAgLVxuICAgICAgICAgICAgbmFtZTogXCJCZXN0IERpYWJldGVzIERpZXRzXCJcbiAgICAgICAgICAgIHVybDogXCIvd2VsbG5lc3MvZGlldHMvYmVzdC1kaWFiZXRlcy1kaWV0c1wiXG4gICAgICAgICAgICBibHVyYjogbG9yZW0gaXBzdW1cbiAgICAgICAgLVxuICAgICAgICAgICAgbmFtZTogXCJCZXN0IERpZXRzIGZvciBIZWFsdGh5IEVhdGluZ1wiXG4gICAgICAgICAgICB1cmw6IFwiL3dlbGxuZXNzL2RpZXRzL2Jlc3QtZGlldHMtZm9yLWhlYWx0aHktZWF0aW5nXCJcbiAgICAgICAgICAgIGJsdXJiOiBsb3JlbSBpcHN1bVxuICAgICAgICAtXG4gICAgICAgICAgICBuYW1lOiBcIkJlc3QgRGlldHMgZm9yIEhlYXJ0IEhlYWx0aFwiXG4gICAgICAgICAgICB1cmw6IFwiL3dlbGxuZXNzL2RpZXRzL2Jlc3QtZGlldHMtZm9yLWhlYXJ0LWhlYWx0aFwiXG4gICAgICAgICAgICBibHVyYjogbG9yZW0gaXBzdW1cbiAgICAgICAgLVxuICAgICAgICAgICAgbmFtZTogXCJFYXNpZXN0IERpZXRzIHRvIEZvbGxvd1wiXG4gICAgICAgICAgICB1cmw6IFwiL3dlbGxuZXNzL2RpZXRzL2Vhc2llc3QtZGlldHMtdG8tZm9sbG93XCJcbiAgICAgICAgICAgIGJsdXJiOiBsb3JlbSBpcHN1bVxuLS0tXG5cbkEgc2ltcGxlIGxpc3Qgb2YgbGlua3MgY29udGFpbmVkIHdpdGhpbiBhIGdyYXkgYm9yZGVyLlxuXG5gYGBudW5qdWNrc190YWI/ZWRpdG9yLWlkPXt7dXVpZCgpfX1cbnslIGZyb20gXCJ0ZW1wbGF0ZXMvY29tbW9uL2xpc3Qvc3F1YXJlcy5udW5qXCIgaW1wb3J0IHNxdWFyZXMgJX1cbnslIGNhbGwoaXRlbSwgY29tcG9uZW50cykgc3F1YXJlcyhzcXVhcmVzTGlzdCkgJX1cbiAgICB7eyBjb21wb25lbnRzLml0ZW1SZW5kZXJlcihpdGVtLm5hbWUsIGl0ZW0udXJsLCBpdGVtLmJsdXJiKSB9fVxueyUgZW5kY2FsbCAlfVxuYGBgXG4qL1xuXG4uc3F1YXJlcyB7XG4gIC5zcXVhcmVzLWJvcmRlcmVkIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRzdGVlbC1kYXJrO1xuICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgbWFyZ2luOiAwIDIlO1xuICAgICAgbWF4LXdpZHRoOiA0NiU7XG4gICAgICBwYWRkaW5nOiAwO1xuXG4gICAgYSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDI1KSByZW0tY2FsYygxOCk7XG4gICAgfVxuICB9XG59XG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBMaXN0IHRvIERyb3Bkb3duIFN0eWxpbmcgKEZvciBNb2JpbGUpXG5uYW1lOiBsaXN0LXRvLWRyb3Bkb3duXG5jYXRlZ29yeTogIExpc3RzIC0gTGlzdHNcbi0tLVxuIGAubGlzdC10by1kcm9wZG93bmAgZm9ybWF0cyBhIGxpc3QgdG8gYmUgYSBkcm9wZG93biBvbiBtb2JpbGUgYW5kIGxpc3Qgb24gZGVza3RvcFxuXG5gYGBodG1sX2V4YW1wbGVcblxuPGRpdiBjbGFzcz1cImxpc3QtdG8tZHJvcGRvd25cIj5cbiAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGlkPVwibGlzdC1pZFwiPlxuICA8bGFiZWwgZm9yPVwibGlzdC1pZFwiIGNsYXNzPVwiaGVhZGluZy1ub3JtYWxcIj5cbiAgICAgIExpc3QgSGVhZGluZyAoY2xpY2thYmxlIG9uIHNtYWxsKVxuICA8L2xhYmVsPlxuICA8dWwgY2xhc3M9XCJuby1idWxsZXRcIj5cbiAgICA8bGk+PGEgaHJlZj1cIiNpdGVtMVwiPml0ZW0gMTwvYT48L2xpPlxuICAgIDxsaT48YSBocmVmPVwiI2l0ZW0yXCI+aXRlbSAyPC9hPjwvbGk+XG4gICAgPGxpPjxhIGhyZWY9XCIjaXRlbTNcIj5pdGVtIDM8L2E+PC9saT5cbiAgPC91bD5cbjwvZGl2PlxuYGBgXG4qL1xuXG4ubGlzdC10by1kcm9wZG93biB7XG4gIHVsIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuXG4gICAgQGluY2x1ZGUgZnJvbShicC1tZWRpdW0pIHtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGNsaXA6IGF1dG87XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW46IGF1dG87XG4gICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgIHBhZGRpbmc6IGF1dG87XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gIH1cblxuICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgICYgKyBsYWJlbCB7XG4gICAgICAgIGN1cnNvcjogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgJiArIGxhYmVsIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cblxuICAgICY6Y2hlY2tlZCB+IHVsIHtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGNsaXA6IGF1dG87XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW46IGF1dG87XG4gICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgIHBhZGRpbmc6IGF1dG87XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gIH1cblxuICAuaWNvbiB7XG4gICAgQGluY2x1ZGUgZnJvbShicC1tZWRpdW0pIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvKmRvY1xuLS0tXG50aXRsZTogU2hhZG93IE1vZGlmaWVyc1xubmFtZTogYS1zaGFkb3ctZGVmYXVsdFxuY2F0ZWdvcnk6IFZpc3VhbCBUcmVhdG1lbnRzIC0gU2hhZG93XG5zZWxlY3RvcnM6XG4gICAgLSAuc2hhZG93LWRlZmF1bHRcbi0tLVxuXG5BZGQgYC5zaGFkb3ctZGVmYXVsdGAgbW9kaWZpZXIgdG8gYW4gZWxlbWVudCB0byB0byBnaXZlIGl0IHRoZSBkZWZhdWx0IHNoYWRvdyB0aGF0IFxuaXMgY2VudGVyZWQgYXJvdW5kIGFuIGVsZW1lbnQgd2l0aCBhIDVweCBibHVyLlxuXG5gYm94LXNoYWRvdzogMCAwIDVweCAwICNjY2NgXG5cbmBgYGh0bWxfZXhhbXBsZVxuPGRpdiBjbGFzcz1cInBhbmVsIGJvcmRlcmxlc3Mgd2hpdGUgc2hhZG93LWRlZmF1bHRcIj5UaGlzIGhhcyBhIGRlZmF1bHQgc2hhZG93PC9kaXY+XG5gYGBcblxuYC5zaGFkb3ctc3VidGxlYCBoYXMgbGlnaHRlciBzaGFkb3dcblxuYGJveC1zaGFkb3c6IDAgMCA1cHggMCAjZWVlYFxuXG5gYGBodG1sX2V4YW1wbGVcbjxkaXYgY2xhc3M9XCJwYW5lbCBib3JkZXJsZXNzIHdoaXRlIHNoYWRvdy1zdWJ0bGVcIj5UaGlzIGhhcyBhIC5zaGFkb3ctc3VidGxlPC9kaXY+XG5gYGBcblxuYC5zaGFkb3ctZGFya2AgaGFzIGRhcmtlciBzaGFkb3dcblxuYGJveC1zaGFkb3c6IDAgMCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuNSlgXG5cbmBgYGh0bWxfZXhhbXBsZVxuPGRpdiBjbGFzcz1cInBhbmVsIGJvcmRlcmxlc3Mgd2hpdGUgc2hhZG93LWRhcmtcIj5UaGlzIGhhcyBhIC5zaGFkb3ctZGFyazwvZGl2PlxuYGBgXG5cbmAuc2hhZG93LXRpZ2h0YCBoYXMgbGVzcyBibHVyXG5cbmBib3gtc2hhZG93OiAwIDAgM3B4IDAgI2NjY2BcblxuYGBgaHRtbF9leGFtcGxlXG48ZGl2IGNsYXNzPVwicGFuZWwgYm9yZGVybGVzcyB3aGl0ZSBzaGFkb3ctdGlnaHRcIj5UaGlzIGhhcyBhIC5zaGFkb3ctdGlnaHQ8L2Rpdj5cbmBgYFxuXG5gLnNoYWRvdy1sb3dgIGlzIHNoaWZ0ZWQgZG93biBzbGlnaHRseVxuXG5gYm94LXNoYWRvdzogMCAzcHggNXB4IDAgI2NjY2BcblxuYGBgaHRtbF9leGFtcGxlXG48ZGl2IGNsYXNzPVwicGFuZWwgYm9yZGVybGVzcyB3aGl0ZSBzaGFkb3ctbG93XCI+VGhpcyBoYXMgYSAuc2hhZG93LWxvdzwvZGl2PlxuYGBgXG5gYGBodG1sX2V4YW1wbGVcbjxkaXYgY2xhc3M9XCJwYW5lbCBib3JkZXJsZXNzIHdoaXRlIHNoYWRvdy1ub25lXCI+VGhpcyBoYXMgYSAuc2hhZG93LW5vbmU8L2Rpdj5cbmAuc2hhZG93LW5vbmVgIG5vIHNoYWRvdzsgdXNlZCB0byBvdmVycmlkZSBoZXJvIHNoYWRvdyBjbGFzcy4gXG5gYm94LXNoYWRvdzogbm9uZTtgXG5gYGBcbiovXG5cbkBtaXhpbiBzaGFkb3ctc3R5bGUoJG5hbWUpIHtcbiAgICAuc2hhZG93LSN7JG5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgQGVhY2ggJGJyZWFrcG9pbnQsICR2YXIgaW4gJGJyZWFrcG9pbnQtdmFyaWFibGVzIHtcbiAgICAgICAgLnNoYWRvdy0jeyRuYW1lfS1mb3ItI3skYnJlYWtwb2ludH0ge1xuICAgICAgICAgICAgQG1lZGlhICN7JHZhcn0ge1xuICAgICAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uc2hhZG93LWRlZmF1bHQge1xuICAgIEBpbmNsdWRlIGJveC1zaGFkb3coMCwgMCwgNXB4LCAwLCAjY2NjLCBmYWxzZSk7XG59XG5cbi5zaGFkb3ctc3VidGxlIHtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KDAsIDAsIDVweCwgMCwgI2VlZSwgZmFsc2UpO1xufVxuXG5AaW5jbHVkZSBzaGFkb3ctc3R5bGUoJ2RhcmsnKSB7XG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdygwLCAwLCA1cHgsIDAsIHJnYmEoMCwgMCwgMCwgMC41KSwgZmFsc2UpO1xufVxuXG4uc2hhZG93LXRpZ2h0IHtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KDAsIDAsIDJweCwgMCwgI2NjYywgZmFsc2UpO1xufVxuXG4uc2hhZG93LWxvdyB7XG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdygwLCAzcHgsIDVweCwgMCwgI2NjYywgZmFsc2UpO1xufVxuLnNoYWRvdy1ub25le1xuICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7IFxufVxuIiwiLypkb2Ncbi0tLVxudGl0bGU6IFJvdW5kIE1vZGlmaWVyc1xubmFtZTogYS1yb3VuZC1oZWxwZXJcbmNhdGVnb3J5OiBWaXN1YWwgVHJlYXRtZW50cyAtIFJvdW5kXG5zZWxlY3RvcnM6XG4gICAgLSAucm91bmRcbi0tLVxuXG5BZGQgYC5yb3VuZGAgbW9kaWZpZXIgdG8gYW4gZWxlbWVudCB0byBtYWtlIGl0IHJvdW5kLlxuXG5gYGBodG1sX2V4YW1wbGVcbjxpbWcgY2xhc3M9XCJyb3VuZFwiIHNyYz1cImh0dHA6Ly9wbGFjZWhvbGQuaXQvMTgweDE4MFwiIGFsdD1cIi4uLlwiIGhlaWdodD1cIjkwXCIgd2lkdGg9XCI5MFwiPlxuYGBgXG5cbiovXG5cbi5yb3VuZCB7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlICFpbXBvcnRhbnQ7XG59XG4iLCIvKmRvY1xuLS0tXG50aXRsZTogSWNvbnNcbm5hbWU6IGEtaWNvbnNcbmNhdGVnb3J5OiBJY29ucyAmIEltYWdlcyAtIFNWRyBJY29uc1xuc2VsZWN0b3JzOlxuICAgIC0gLmljb25cbnNlbGVjdG9yX3R5cGU6IGNvbXBvbmVudFxuLS0tXG5cblNWRyBpY29ucyBhcmUgZWFzeSB0byBpbmNsdWRlIGFuZCBzdHlsZS5cblxuICBZb3UgY2FuIGltcG9ydCBhbmQgdXNlIHRoZSBJY29uIE1hY3JvIGRlc2NyaWJlZCBiZWxvdzogYHN2Z0ljb24oaWNvbk5hbWUsIGNvbG9yPScnKWBcblxuVGhlIGdlbmVyYXRlZCBtYXJrdXAgbG9va3MgbGlrZTpcblxuICBgPHN2ZyBjbGFzcz1cImljb25cIj48dXNlIHhsaW5rOmhyZWY9XCIvc3RhdGljL3Nwcml0ZXMvc3ZnL3Nwcml0ZS5zeW1ib2wuc3ZnI05BTUVcIiAvPjwvc3ZnPmBcblxuSXQgd2lsbCBtYWtlIGEgY2FsbCB0byBhbiAqZXh0ZXJuYWwgc3ZnIHNwcml0ZSBmaWxlKiBvbiBzdGF0aWMgYW5kIHJldHVybiB0aGUgaWNvbiB0aGF0XG5tYXRjaGVzIHRoZSBoYXNobWFyayBmcmFnbWVudCBpZCBhcHBlbmRlZCB0byB0aGUgdXJsLCBpLmUgYCNOQU1FYCBhYm92ZS5cblRvIHNlZSBhIGxpc3Qgb2YgaWNvbnMgd2UgY2FuIHVzZSwgdGFrZSBhIGxvb2sgYXQgdGhlIFtkaXJlY3RvcnldKCNjLWdsb2JhbC1pY29ucykgYmVsb3cuXG5cbk5vdGU6IEludGVybmV0IEV4cGxvcmVyIGRvZXNuJ3Qgc3VwcG9ydCBgPHVzZT5gIHdpdGggYW4gZXh0ZXJuYWwgc291cmNlIGF0IGFsbFxuKGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vc3ZnLXVzZS13aXRoLWV4dGVybmFsLXJlZmVyZW5jZS10YWtlLTIvKSwgc28gd2VcbmFyZSBydW5uaW5nIHRoZSBcInN2ZzRldmVyeWJvZHlcIiBKUyB0b29sIHRoYXQgaW5saW5lcyBleHRlcm5hbCBTVkdcbmNvbnRlbnQgd2l0aCBhamF4IGluIGJyb3dzZXJzIHRoYXQgbmVlZCBpdCAoaHR0cHM6Ly9naXRodWIuY29tL2pvbmF0aGFudG5lYWwvc3ZnNGV2ZXJ5Ym9keSkuXG5cbkEgYmFzaWMgc3ZnIGljb24gd2l0aCBjbGFzcyBvZiBgLmljb25gIHdpbGwgZGVmYXVsdCB0byBgYmxhY2tgIGFuZCBgMS41cmVtYCBzcXVhcmUuXG5IZXJlIGlzIGFuIGV4YW1wbGUgb2YgYW4gc3ZnIGljb24gY2FsbGVkIGBzZWFyY2hgIGFuZCB0aGUgbWFya3VwIHRvIHVzZS5cblxuYGBgaHRtbF9leGFtcGxlXG48cD48c3ZnIGNsYXNzPVwiaWNvblwiPjx1c2UgeGxpbms6aHJlZj1cIi9zdGF0aWMvc3ByaXRlcy9zdmcvc3ByaXRlLnN5bWJvbC5zdmcjc2VhcmNoXCIgLz48L3N2Zz4gc2VhcmNoIGljb24hPC9wPlxuYGBgXG4qL1xuXG4vKmRvY1xuLS0tXG50aXRsZTogU3R5bGluZyBJY29uc1xubmFtZTogYi1zdHlsaW5nLWljb25zXG5jYXRlZ29yeTogSWNvbnMgJiBJbWFnZXMgLSBTVkcgSWNvbnNcbnNlbGVjdG9yczpcbiAgICAtIC5pY29uLmxpbmtcbiAgICAtIC5pY29uLm5vbGlua1xuICAgIC0gLmljb24ubXV0ZWRcbiAgICAtIC5pY29uLnByb1xuICAgIC0gLmljb24uY29uXG4gICAgLSAuaWNvbi5iYWRnZVxuICAgIC0gLmljb24udGlueVxuICAgIC0gLmljb24uc21hbGxlc3RcbiAgICAtIC5pY29uLnNtYWxsZXJcbiAgICAtIC5pY29uLnNtYWxsXG4gICAgLSAuaWNvbi5tZWRpdW1cbiAgICAtIC5pY29uLmxhcmdlXG4gICAgLSAuaWNvbi5sYXJnZXJcbiAgICAtIC5pY29uLmxhcmdlc3RcbiAgICAtIC5pY29uLngtbGFyZ2VcbiAgICAtIC5pY29uLngtbGFyZ2VyXG4gICAgLSAuaWNvbi54LWxhcmdlc3RcbiAgICAtIC5pY29uLmhvdmVyLWJsYWNrXG4tLS1cblxuKipPcHRpb25zKipcblxufCBEZWZhdWx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgY2xhc3NOYW1lICAgICB8XG58LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXxcbnwgPHN2ZyBjbGFzcz1cImljb25cIj48dXNlIHhsaW5rOmhyZWY9XCIvc3RhdGljL3Nwcml0ZXMvc3ZnL3Nwcml0ZS5zeW1ib2wuc3ZnI2NvbXBhc3NcIiAvPjwvc3ZnPiAgICAgfCBpY29uICAgICAgICAgIHxcblxufCBDb2xvcnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBjbGFzc05hbWUgICAgICB8XG58LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLXxcbnwgPHN2ZyBjbGFzcz1cImljb24gbGlua1wiPjx1c2UgeGxpbms6aHJlZj1cIi9zdGF0aWMvc3ByaXRlcy9zdmcvc3ByaXRlLnN5bWJvbC5zdmcjY29tcGFzc1wiIC8+PC9zdmc+ICAgICAgICB8IGxpbmsgICAgICAgICAgIHxcbnwgPHN2ZyBjbGFzcz1cImljb24gbm9saW5rXCI+PHVzZSB4bGluazpocmVmPVwiL3N0YXRpYy9zcHJpdGVzL3N2Zy9zcHJpdGUuc3ltYm9sLnN2ZyNjb21wYXNzXCIgLz48L3N2Zz4gICAgICB8IG5vbGluayBvciBtdXRlZHxcbnwgPHN2ZyBjbGFzcz1cImljb24gcHJvXCI+PHVzZSB4bGluazpocmVmPVwiL3N0YXRpYy9zcHJpdGVzL3N2Zy9zcHJpdGUuc3ltYm9sLnN2ZyNjaGVjay1wcm9cIiAvPjwvc3ZnPiAgICAgICB8IHBybyAgICAgICAgICAgIHxcbnwgPHN2ZyBjbGFzcz1cImljb24gY29uXCI+PHVzZSB4bGluazpocmVmPVwiL3N0YXRpYy9zcHJpdGVzL3N2Zy9zcHJpdGUuc3ltYm9sLnN2ZyN4LWNvblwiIC8+PC9zdmc+ICAgICAgICAgICB8IGNvbiAgICAgICAgICAgIHwgXG58IDxzdmcgY2xhc3M9XCJpY29uIGJhZGdlXCI+PHVzZSB4bGluazpocmVmPVwiL3N0YXRpYy9zcHJpdGVzL3N2Zy9zcHJpdGUuc3ltYm9sLnN2ZyNtaW5pLWJhZGdlXCIgLz48L3N2Zz4gICAgfCBiYWRnZSAgICAgICAgICB8XG58IDxzdmcgY2xhc3M9XCJpY29uIHdoaXRlXCI+PHVzZSB4bGluazpocmVmPVwiL3N0YXRpYy9zcHJpdGVzL3N2Zy9zcHJpdGUuc3ltYm9sLnN2ZyNtaW5pLWJhZGdlXCIgLz48L3N2Zz4gICAgfCB3aGl0ZSAgICAgICAgICB8XG58IDxzdmcgY2xhc3M9XCJpY29uIGNvYWxcIj48dXNlIHhsaW5rOmhyZWY9XCIvc3RhdGljL3Nwcml0ZXMvc3ZnL3Nwcml0ZS5zeW1ib2wuc3ZnI21pbmktYmFkZ2VcIiAvPjwvc3ZnPiAgICAgfCBjb2FsICAgICAgICAgICB8XG58IDxzdmcgY2xhc3M9XCJpY29uIGlyb25cIj48dXNlIHhsaW5rOmhyZWY9XCIvc3RhdGljL3Nwcml0ZXMvc3ZnL3Nwcml0ZS5zeW1ib2wuc3ZnI21pbmktYmFkZ2VcIiAvPjwvc3ZnPiAgICAgfCBpcm9uICAgICAgICAgICB8XG58IDxzdmcgY2xhc3M9XCJpY29uIHN0ZWVsXCI+PHVzZSB4bGluazpocmVmPVwiL3N0YXRpYy9zcHJpdGVzL3N2Zy9zcHJpdGUuc3ltYm9sLnN2ZyNtaW5pLWJhZGdlXCIgLz48L3N2Zz4gICAgfCBzdGVlbCAoZm9yIGdsb2JhbCBvZmYtY2FudmFzIGljb25zKSB8XG58IDxzdmcgY2xhc3M9XCJpY29uIGFsdW1pbnVtXCI+PHVzZSB4bGluazpocmVmPVwiL3N0YXRpYy9zcHJpdGVzL3N2Zy9zcHJpdGUuc3ltYm9sLnN2ZyNtaW5pLWJhZGdlXCIgLz48L3N2Zz4gfCBhbHVtaW51bSAgICAgICB8XG5cbnwgU2l6ZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGNsYXNzTmFtZSB8XG58LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tfFxufCA8c3ZnIGNsYXNzPVwiaWNvbiB0aW55XCI+PHVzZSB4bGluazpocmVmPVwiL3N0YXRpYy9zcHJpdGVzL3N2Zy9zcHJpdGUuc3ltYm9sLnN2ZyNjb21wYXNzXCIgLz48L3N2Zz4gICAgICB8IHRpbnkgICAgICB8XG58IDxzdmcgY2xhc3M9XCJpY29uIHNtYWxsZXN0XCI+PHVzZSB4bGluazpocmVmPVwiL3N0YXRpYy9zcHJpdGVzL3N2Zy9zcHJpdGUuc3ltYm9sLnN2ZyNjb21wYXNzXCIgLz48L3N2Zz4gIHwgc21hbGxlc3QgIHxcbnwgPHN2ZyBjbGFzcz1cImljb24gc21hbGxlclwiPjx1c2UgeGxpbms6aHJlZj1cIi9zdGF0aWMvc3ByaXRlcy9zdmcvc3ByaXRlLnN5bWJvbC5zdmcjY29tcGFzc1wiIC8+PC9zdmc+ICAgfCBzbWFsbGVyICAgfFxufCA8c3ZnIGNsYXNzPVwiaWNvbiBzbWFsbFwiPjx1c2UgeGxpbms6aHJlZj1cIi9zdGF0aWMvc3ByaXRlcy9zdmcvc3ByaXRlLnN5bWJvbC5zdmcjY29tcGFzc1wiIC8+PC9zdmc+ICAgICB8IHNtYWxsICAgICB8XG58IDxzdmcgY2xhc3M9XCJpY29uIHNtYWxsXCI+PHVzZSB4bGluazpocmVmPVwiL3N0YXRpYy9zcHJpdGVzL3N2Zy9zcHJpdGUuc3ltYm9sLnN2ZyNjb21wYXNzXCIgLz48L3N2Zz4gICAgIHwgc21hbGwgICAgIHxcbnwgPHN2ZyBjbGFzcz1cImljb24gbWVkaXVtXCI+PHVzZSB4bGluazpocmVmPVwiL3N0YXRpYy9zcHJpdGVzL3N2Zy9zcHJpdGUuc3ltYm9sLnN2ZyNjb21wYXNzXCIgLz48L3N2Zz4gICAgfCBtZWRpdW0gICAgfFxufCA8c3ZnIGNsYXNzPVwiaWNvbiBsYXJnZVwiPjx1c2UgeGxpbms6aHJlZj1cIi9zdGF0aWMvc3ByaXRlcy9zdmcvc3ByaXRlLnN5bWJvbC5zdmcjY29tcGFzc1wiIC8+PC9zdmc+ICAgICB8IGxhcmdlICAgICB8XG58IDxzdmcgY2xhc3M9XCJpY29uIGxhcmdlclwiPjx1c2UgeGxpbms6aHJlZj1cIi9zdGF0aWMvc3ByaXRlcy9zdmcvc3ByaXRlLnN5bWJvbC5zdmcjY29tcGFzc1wiIC8+PC9zdmc+ICAgIHwgbGFyZ2VyICAgIHxcbnwgPHN2ZyBjbGFzcz1cImljb24gbGFyZ2VzdFwiPjx1c2UgeGxpbms6aHJlZj1cIi9zdGF0aWMvc3ByaXRlcy9zdmcvc3ByaXRlLnN5bWJvbC5zdmcjY29tcGFzc1wiIC8+PC9zdmc+ICAgfCBsYXJnZXN0ICAgfFxufCA8c3ZnIGNsYXNzPVwiaWNvbiB4LWxhcmdlXCI+PHVzZSB4bGluazpocmVmPVwiL3N0YXRpYy9zcHJpdGVzL3N2Zy9zcHJpdGUuc3ltYm9sLnN2ZyNjb21wYXNzXCIgLz48L3N2Zz4gICB8IHgtbGFyZ2UgICB8XG58IDxzdmcgY2xhc3M9XCJpY29uIHgtbGFyZ2VyXCI+PHVzZSB4bGluazpocmVmPVwiL3N0YXRpYy9zcHJpdGVzL3N2Zy9zcHJpdGUuc3ltYm9sLnN2ZyNjb21wYXNzXCIgLz48L3N2Zz4gIHwgeC1sYXJnZXIgIHxcbnwgPHN2ZyBjbGFzcz1cImljb24geC1sYXJnZXN0XCI+PHVzZSB4bGluazpocmVmPVwiL3N0YXRpYy9zcHJpdGVzL3N2Zy9zcHJpdGUuc3ltYm9sLnN2ZyNjb21wYXNzXCIgLz48L3N2Zz4gfCB4LWxhcmdlc3QgfFxuXG58IFJvdGF0aW9uICYgRmxpcHBpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgY2xhc3NOYW1lICAgICAgIHxcbnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfFxufCA8c3ZnIGNsYXNzPVwiaWNvbiByb3RhdGUtNDVcIj48dXNlIHhsaW5rOmhyZWY9XCIvc3RhdGljL3Nwcml0ZXMvc3ZnL3Nwcml0ZS5zeW1ib2wuc3ZnI2Fycm93LWJ1dHRvblwiIC8+PC9zdmc+ICAgfCByb3RhdGUtNDUgICAgICAgfFxufCA8c3ZnIGNsYXNzPVwiaWNvbiByb3RhdGUtOTBcIj48dXNlIHhsaW5rOmhyZWY9XCIvc3RhdGljL3Nwcml0ZXMvc3ZnL3Nwcml0ZS5zeW1ib2wuc3ZnI2Fycm93LWJ1dHRvblwiIC8+PC9zdmc+ICAgfCByb3RhdGUtOTAgICAgICAgfFxufCA8c3ZnIGNsYXNzPVwiaWNvbiByb3RhdGUtMTgwXCI+PHVzZSB4bGluazpocmVmPVwiL3N0YXRpYy9zcHJpdGVzL3N2Zy9zcHJpdGUuc3ltYm9sLnN2ZyNhcnJvdy1idXR0b25cIiAvPjwvc3ZnPiAgfCByb3RhdGUtMTgwICAgICAgfFxufCA8c3ZnIGNsYXNzPVwiaWNvbiByb3RhdGUtMjcwXCI+PHVzZSB4bGluazpocmVmPVwiL3N0YXRpYy9zcHJpdGVzL3N2Zy9zcHJpdGUuc3ltYm9sLnN2ZyNhcnJvdy1idXR0b25cIiAvPjwvc3ZnPiAgfCByb3RhdGUtMjcwICAgICAgfFxufCA8c3ZnIGNsYXNzPVwiaWNvbiBmbGlwLWhvcml6b250YWxcIj48dXNlIHhsaW5rOmhyZWY9XCIvc3RhdGljL3Nwcml0ZXMvc3ZnL3Nwcml0ZS5zeW1ib2wuc3ZnI3RyYXZlbFwiIC8+PC9zdmc+ICAgfCBmbGlwLWhvcml6b250YWwgfFxufCA8c3ZnIGNsYXNzPVwiaWNvbiBmbGlwLXZlcnRpY2FsXCI+PHVzZSB4bGluazpocmVmPVwiL3N0YXRpYy9zcHJpdGVzL3N2Zy9zcHJpdGUuc3ltYm9sLnN2ZyNjYXJzXCIgLz48L3N2Zz4gICAgICAgfCBmbGlwLXZlcnRpY2FsICAgfFxuXG5Ob3RlOiBJZiB5b3Ugd2lzaCB0byBhZGQgdGhlIGAucm90YXRlLSpgIGNsYXNzZXMgZHluYW1pY2FsbHkgdG8gdGhlIGljb24gYW5kXG5oYXZlIGl0IGFuaW1hdGUgdGhlIGNoYW5nZSBvZiByb3RhdGlvbiBzdGF0ZSwgYWRkIHRoZSBgLmFuaW1hdGUtcm90YXRpb25gXG5jbGFzcyB0byB5b3VyIGljb24gdG8gcHJvdmlkZSBhIHRyYW5zaXRpb24uIEl0IHNob3VsZCBiZSBiZWZvcmUgYW55IGAucm90YXRlLSpgXG5jbGFzc2VzIG9uIHlvdXIgaWNvbi5cblxuKi9cblxuLypkb2Ncbi0tLVxudGl0bGU6IEljb24gQ29udGFpbmVyIFN0eWxpbmdcbm5hbWU6IGMtaWNvbi1jb250YWluZXItc3R5bGluZ1xuY2F0ZWdvcnk6IEljb25zICYgSW1hZ2VzIC0gU1ZHIEljb25zXG5zZWxlY3RvcnM6XG4gICAgLSAuYmFja2dyb3VuZC1ibHVlXG4gICAgLSAuYmFja2dyb3VuZC1ncmVlblxuICAgIC0gLmJhY2tncm91bmQtcmVkXG4gICAgLSAuYmFja2dyb3VuZC1kYXJrXG5zZWxlY3Rvcl90eXBlOiBjb21wb25lbnRcbi0tLVxuXG5BZGQgdGhlc2UgbW9kaWZpZXJzIGFsb25nIHdpdGggb3B0aW9uYWwgYC5yb3VuZGAgbW9kaWZpZXIgdG8gYWNoaWV2ZSB0aGlzIGxvb2s6XG5DdXJyZW50bHkgaXQgaGFzIHNvbWUgc2l6aW5nIGNvdXBsZWQgdG8gYnJlYWtwb2ludHMgYnV0IG1pZ2h0IGJlIGFic3RyYWN0ZWQgb3V0XG5pbiB0aGUgZnV0dXJlLlxuXG5gLmJhY2tncm91bmQtYmx1ZWBcbmAuYmFja2dyb3VuZC1ibHVlLnJvdW5kYFxuYC5iYWNrZ3JvdW5kLWdyZWVuLnJvdW5kYFxuYC5iYWNrZ3JvdW5kLXJlZC5yb3VuZGBcbmAuYmFja2dyb3VuZC1kYXJrLnJvdW5kYFxuXG5gYGBodG1sX2V4YW1wbGVcbjxzdmcgY2xhc3M9XCJpY29uIGJhY2tncm91bmQtYmx1ZSB3aGl0ZVwiPjx1c2UgeGxpbms6aHJlZj1cIi9zdGF0aWMvc3ByaXRlcy9zdmcvc3ByaXRlLnN5bWJvbC5zdmcjYmFyLWNoYXJ0XCIgLz48L3N2Zz5cbjxzdmcgY2xhc3M9XCJpY29uIGJhY2tncm91bmQtYmx1ZSByb3VuZCB3aGl0ZVwiPjx1c2UgeGxpbms6aHJlZj1cIi9zdGF0aWMvc3ByaXRlcy9zdmcvc3ByaXRlLnN5bWJvbC5zdmcjYmFyLWNoYXJ0XCIgLz48L3N2Zz5cbjxzdmcgY2xhc3M9XCJpY29uIGJhY2tncm91bmQtZ3JlZW4gcm91bmQgd2hpdGVcIj48dXNlIHhsaW5rOmhyZWY9XCIvc3RhdGljL3Nwcml0ZXMvc3ZnL3Nwcml0ZS5zeW1ib2wuc3ZnI2xpbmUtY2hhcnRcIiAvPjwvc3ZnPlxuPHN2ZyBjbGFzcz1cImljb24gYmFja2dyb3VuZC1yZWQgcm91bmQgd2hpdGVcIj48dXNlIHhsaW5rOmhyZWY9XCIvc3RhdGljL3Nwcml0ZXMvc3ZnL3Nwcml0ZS5zeW1ib2wuc3ZnI2FyZWEtY2hhcnRcIiAvPjwvc3ZnPlxuPHN2ZyBjbGFzcz1cImljb24gYmFja2dyb3VuZC1kYXJrIHJvdW5kIHdoaXRlXCI+PHVzZSB4bGluazpocmVmPVwiL3N0YXRpYy9zcHJpdGVzL3N2Zy9zcHJpdGUuc3ltYm9sLnN2ZyNsYXdcIiAvPjwvc3ZnPlxuYGBgXG5cbiovXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBJY29uIERpcmVjdG9yeVxubmFtZTogZC1nbG9iYWwtaWNvbnNcbmNhdGVnb3J5OiBJY29ucyAmIEltYWdlcyAtIFNWRyBJY29uc1xuLS0tXG5cbkhlcmUgYXJlIHRoZSBpY29ucyB3ZSBoYXZlIHNvIGZhci4uLlxuXG5gYGBodG1sX2V4YW1wbGU/a2l0Y2hlbi1zaW5rPXRydWVcbjx1bCBjbGFzcz1cInNtYWxsLWJsb2NrLWdyaWQtNlwiPlxueyUtIGZvciBuYW1lIGluIGljb25zICV9XG4gIDxsaT48c3ZnIGNsYXNzPVwiaWNvblwiPjx1c2UgeGxpbms6aHJlZj1cInt7c3RhdGljX3JlbW90ZV9wYXRofX0vc3ByaXRlcy9zdmcvc3ByaXRlLnN5bWJvbC5zdmd7eycjJyArIG5hbWV9fVwiIC8+PC9zdmc+IHt7bmFtZX19PC9saT5cbnslLSBlbmRmb3IgJX1cbjwvdWw+XG5gYGBcbiovXG5cbi8vIHNvcnJ5IGZvciB0aGUgc3ZnIGVsZW1lbnQgc2VsZWN0b3IuIEl0IGlzIG5lY2Vzc2FyeSB0byBkaWZmZXJlbnRpYXRlIHRoZVxuLy8gaWNvbiBjbGFzcyBmcm9tIEZvdW5kYXRpb24ncyAuaWNvbi1iYXIgY29tcG9uZW50XG4uaWNvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZpbGw6ICMwMDA7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB3aWR0aDogcmVtLWNhbGMoMjApO1xuICAgIGhlaWdodDogcmVtLWNhbGMoMjApO1xuXG4gICAgLmxhYmVsID4gJiB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAvLyBzb21lIGljb25zIG5lZWQgdG8gbW92ZSB1cCBqdXN0IGEgdGlueSBiaXRcbiAgICAmLm51ZGdlLXVwIHtcbiAgICAgICBtYXJnaW4tdG9wOiAtM3B4O1xuICAgIH1cbn1cblxuLmljb24uZmxpcHBlZCB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoLTEpO1xuICB0cmFuc2Zvcm06IHNjYWxlWCgtMSk7XG4gIGZpbHRlcjogRmxpcEg7XG59XG5cbi5pY29ue1xuICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkaWNvbi1zaXplcyB7XG4gICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICAgICAgfVxuICAgICAgICAkbjogJG5hbWU7XG4gICAgICAgIC8vIG9ubHkgY3JlYXRlIGJyZWFrcG9pbnQgY2xhc3NlcyBmb3IgY29tbW9uIGljb24gc2l6ZXNcbiAgICAgICAgQGlmICRuID09ICdzbWFsbCcgb3IgJG4gPT0gJ21lZGl1bScgb3IgJG4gPT0gJ2xhcmdlJyB7XG4gICAgICAgICAgICBAZWFjaCAkYnJlYWtwb2ludCwgJHZhciBpbiAkYnJlYWtwb2ludC12YXJpYWJsZXMge1xuICAgICAgICAgICAgICAgICYuI3skbn0tZm9yLSN7JGJyZWFrcG9pbnR9IHtcbiAgICAgICAgICAgICAgICAgICAgQG1lZGlhICN7JHZhcn0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gY29sb3JzXG4uaWNvbi5saW5rIHtcbiAgICBmaWxsOiAkbGluay1ibHVlLWxpZ2h0O1xufVxuXG4uaWNvbi5saW5rLWhvdmVyOmhvdmVyIHsgLy8gQXBwbGllcyB0aGUgbGluayBibHVlIGZpbGwgb24gaG92ZXIgb25seVxuICAgIEBleHRlbmQgLmljb24ubGluaztcbiAgICB0cmFuc2l0aW9uOiBmaWxsIDMwMG1zO1xufVxuXG4uaWNvbi5ub2xpbmssXG4uaWNvbi5tdXRlZCB7XG4gIGZpbGw6ICRhbHVtaW51bTtcbn1cblxuLmljb24uaG92ZXItYmxhY2s6aG92ZXIge1xuICBmaWxsOiAkYmxhY2s7XG59XG4uaWNvbi5wcm8ge1xuICAgIGZpbGw6ICRncmVlbi1wcm87XG59XG5cbi5pY29uLmNvbiB7XG4gICAgZmlsbDogJHJlZC1jb247XG59XG5cbi5pY29uLndhcm4ge1xuICAgIGZpbGw6ICRvcmFuZ2UtZGFyaztcbn1cblxuLmljb24uYmFkZ2Uge1xuICAgIGZpbGw6ICRvcmFuZ2UtbGlnaHQ7XG59XG5cbi5pY29uLndoaXRlIHtcbiAgICBmaWxsOiAjZmZmZmZmO1xufVxuXG4uaWNvbi5jb2FsIHtcbiAgICBmaWxsOiAkY2hhcmNvYWw7XG59XG5cbi5pY29uLmlyb24ge1xuICAgIGZpbGw6ICRpcm9uO1xufVxuXG4uaWNvbi5zdGVlbCB7XG4gICAgZmlsbDogJGxpZ2h0LWdyYXk7XG59XG5cbi5pY29uLmFsdW1pbnVtIHtcbiAgICBmaWxsOiAkYWx1bWludW07XG59XG5cbi5pY29uLmFuaW1hdGUtcm90YXRpb24ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246ICRhbmltYXRpb24tZHVyYXRpb247XG59XG4uaWNvbi5yb3RhdGUtNDUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xufVxuLmljb24ucm90YXRlLTkwIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbn1cbi5pY29uLnJvdGF0ZS0xMzUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcbiAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpO1xufVxuLmljb24ucm90YXRlLTE4MCB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG59XG4uaWNvbi5yb3RhdGUtMjI1IHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDIyNWRlZyk7XG4gICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDIyNWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMjI1ZGVnKTtcbn1cbi5pY29uLnJvdGF0ZS0yNzAge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTtcbiAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xufVxuLmljb24ucm90YXRlLTMxNSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzMTVkZWcpO1xuICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgzMTVkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDMxNWRlZyk7XG59XG4uaWNvbi5mbGlwLWhvcml6b250YWwge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7XG4gICAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMSwgLTEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoLTEsIDEpO1xufVxuLmljb24uZmxpcC12ZXJ0aWNhbCB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTtcbiAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7XG59XG5cbiViYWNrZ3JvdW5kLXB1Y2tzIHtcbiAgLy8gc2xpZ2h0IGN1c3RvbSBzaXplIHNpbmNlIHRoZSBvbmx5IGV4aXN0aW5nIGltcGxlbWVudGF0aW9uXG4gIC8vIGlzIGN1cnJlbnRseSBpbiB0aGUgSW52ZXN0aW5nIGhwLCBob3BlZnVsbHkgdGhleSBhcmUgdGhlIHNhbWUgYWNyb3NzIHByb2plY3RzXG4gIHdpZHRoOiByZW0tY2FsYyg1NCk7XG4gIGhlaWdodDogcmVtLWNhbGMoNTQpO1xuICBwYWRkaW5nOiA4cHg7XG4gIEBpbmNsdWRlIGZyb20oYnAtbWVkaXVtKSB7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICB3aWR0aDogcmVtLWNhbGMoNjgpO1xuICAgIGhlaWdodDogcmVtLWNhbGMoNjgpO1xuICB9XG4gIGJvcmRlcjogM3B4IHNvbGlkICNmZmY7XG4gIEBpbmNsdWRlIGJveC1zaGFkb3coMHB4LCAxcHgsIDFweCwgMCwgI2FhYSwgZmFsc2UpO1xufVxuXG4uaWNvbi5iYWNrZ3JvdW5kLWJsdWUge1xuICBiYWNrZ3JvdW5kOiAkbGluay1ibHVlLWxpZ2h0O1xuICBAZXh0ZW5kICViYWNrZ3JvdW5kLXB1Y2tzO1xufVxuXG4uaWNvbi5iYWNrZ3JvdW5kLWdyZWVuIHtcbiAgYmFja2dyb3VuZDogJGdyZWVuLXBybztcbiAgQGV4dGVuZCAlYmFja2dyb3VuZC1wdWNrcztcbn1cblxuLmljb24uYmFja2dyb3VuZC1yZWQge1xuICBiYWNrZ3JvdW5kOiAkcmVkO1xuICBAZXh0ZW5kICViYWNrZ3JvdW5kLXB1Y2tzO1xufVxuXG4uaWNvbi5iYWNrZ3JvdW5kLWRhcmsge1xuICBiYWNrZ3JvdW5kOiAkYmx1ZS1kYXJrO1xuICBAZXh0ZW5kICViYWNrZ3JvdW5kLXB1Y2tzO1xufVxuXG4uaWNvbi5iYWNrZ3JvdW5kLW9yYW5nZSB7XG4gIGJhY2tncm91bmQ6ICNmOGFiMWQ7XG4gIEBleHRlbmQgJWJhY2tncm91bmQtcHVja3M7XG59XG5cblxuLypkb2Ncbi0tLVxudGl0bGU6IFNWRyBJY29uIFJhdGluZ1xubmFtZTogYS1zdmctcmF0aW5nc1xuY2F0ZWdvcnk6IEljb25zICYgSW1hZ2VzIC0gU1ZHIEljb25zXG5hdXRob3JzOiBQYWJsbyBMYXpvXG4tLS1cblxuQSBudW5qdWNrcyBtYWNybyBmb3IgY3JlYXRpbmcgY3VzdG9tIHN2ZyBpY29uIHJhdGluZ3MuPGJyPlxueyUgcmF3ICV9XG4gICAgMSkgSW1wb3J0IHRoZSBtYWNybzxicj5cbiAgICB7JSBmcm9tIFwidGVtcGxhdGVzL2NvbW1vbi91dGlscy9pY29uLm51bmpcIiBpbXBvcnQgcmF0aW5nICV9PGJyPlxuICAgIDIpIENhbGwgaXQ8YnI+XG4gICAgcmF0aW5nKHNjb3JlPTIuNSk8YnI+XG57JSBlbmRyYXcgJX1cblxuYGBgaHRtbF9leGFtcGxlXG57JSBmcm9tIFwidGVtcGxhdGVzL2NvbW1vbi91dGlscy9pY29uLm51bmpcIiBpbXBvcnQgcmF0aW5nICV9XG57eyByYXRpbmcoc2NvcmU9Mi41KSB9fVxuPHA+XG5zY29yZT0yLjVcbjwvcD5cbnt7IHJhdGluZyhzY29yZT03LjgsIG1heD0xMCwgaWNvbj1cInRyYXZlbFwiLCBjbGFzc2VzPVwibGFyZ2VcIiwgZmlsbD1cIiMwQUJCQTRcIikgfX1cbjxwPlxuc2NvcmU9Ny44LCBtYXg9MTAsIGljb249XCJ0cmF2ZWxcIiwgY2xhc3Nlcz1cImxhcmdlXCIsIGZpbGw9XCIjMEFCQkE0XCJcbjwvcD5cbnt7IHJhdGluZyhzY29yZT0yLjIsIG1heD02LCBpY29uPVwibWFydGluaVwiLCBjbGFzc2VzPVwibGFyZ2VyIHJvdGF0ZS00NVwiLCBmaWxsPVwiI0VBOEVDQ1wiLCBiZz1cIiNBNUQyRkZcIikgfX1cbjxwPlxuc2NvcmU9Mi4yLCBtYXg9NiwgaWNvbj1cIm1hcnRpbmlcIiwgY2xhc3Nlcz1cImxhcmdlciByb3RhdGUtNDVcIiwgZmlsbD1cIiNFQThFQ0NcIiwgYmc9XCIjQTVEMkZGXCJcbjwvcD5cbnt7IHJhdGluZyhzY29yZT03LjgsIG1heD0xMCwgaWNvbj1cInN0YXJcIiwgY2xhc3Nlcz1cImxhcmdlc3RcIiwgZmlsbD1cIiNGMzY1NjVcIikgfX1cbjxwPlxuc2NvcmU9Ny44LCBtYXg9MTAsIGljb249XCJzdGFyXCIsIGNsYXNzZXM9XCJsYXJnZXN0XCIsIGZpbGw9XCIjRjM2NTY1XCJcbjwvcD5cbmBgYFxuXG58IHBhcmFtZXRlciAgICB8IHB1cnBvc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGRlZmF1bHQgICAgICAgICAgICB8XG58LS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS18XG58IGBzY29yZWAgICAgICB8IG51bWJlciBzY29yZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAgICB8XG58IGBtYXhgICAgICAgICB8IG1heGltdW0gc2NvcmUgKG51bWJlciBvZiBpY29ucykgICAgICAgICAgICB8IDUgICAgICAgICAgICAgICAgICB8XG58IGBpY29uYCAgICAgICB8IHN2ZyBpY29uIGNsYXNzICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFwic3Rhci1yYXRpbmdcIiAgICAgIHxcbnwgYGNsYXNzZXNgICAgIHwgaWNvbiBjbGFzc2VzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXCJcIiAgICAgICAgICAgICAgICAgfFxufCBgZmlsbGAgICAgICAgfCBpY29uIGZpbGwgY29sb3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcInJnYigyNiw5NiwxODMpXCIgICB8XG58IGBiZ2AgICAgICAgICB8IGljb24gYmFja2dyb3VuZCBjb2xvciAgICAgICAgICAgICAgICAgICAgICB8IFwicmdiKDIwMCwyMDAsMjAwKVwiIHxcblxuKi9cbi5zdmctcmF0aW5nIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgc3ZnIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNXB4O1xuICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgIGZpbGw6IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICAgICAgJi5tZWRpdW0tbGFyZ2Uge1xuICAgICAgICAgICAgd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNXB4O1xuICAgICAgICB9XG4gICAgICAgICYubGFyZ2Uge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNnB4O1xuICAgICAgICB9XG4gICAgICAgICYubGFyZ2VyIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLThweDtcbiAgICAgICAgfVxuICAgICAgICAmLmxhcmdlc3Qge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMTBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4vKmRvY1xuLS0tXG50aXRsZTogU1ZHIEljb24gTWFjcm9cbm5hbWU6IGUtc3ZnLWljb24tbWFjcm9cbmNhdGVnb3J5OiBJY29ucyAmIEltYWdlcyAtIFNWRyBJY29uc1xuYXV0aG9yczogV2VzIERlTWljZWxpXG4tLS1cblxuQSBudW5qdWNrcyBtYWNybyBmb3IgY3JlYXRpbmcgc3ZnIGljb25zIHdpdGggbWluaW1hbCB0ZXh0XG5cbjEpIEltcG9ydCB0aGUgbWFjcm8gaW50byB0aGUgdGVtcGxhdGVcbmAgZnJvbSBcInRlbXBsYXRlcy9jb21tb24vdXRpbHMvaWNvbi5udW5qXCIgaW1wb3J0IHN2Z0ljb24gYFxuXG4yKSBDYWxsIGl0LCB3aGVyZSBjb2xvciBjYW4gYnkgYSBzdHJpbmcgYW55IG90aGVyIG1vZGlmaWVycyB5b3Ugd2FudCB0byBhZGRcbmBzdmdJY29uKGljb25OYW1lLCBjb2xvcj0nJylgXG5cbmBgYGh0bWxfZXhhbXBsZVxueyUgZnJvbSBcInRlbXBsYXRlcy9jb21tb24vdXRpbHMvaWNvbi5udW5qXCIgaW1wb3J0IHN2Z0ljb24gJX1cbjxwPiBZb3UgY2FuIHNlZSB0aGUgaWNvbiBoZXJlOiB7eyBzdmdJY29uKCd6b29tJywgJ2xpbmsnKSB9fSA8L3A+XG48cD4gcGFyYW1ldGVycyBwYXNzZWQ6IGljb25OYW1lPXpvb20sIGNvbG9yPWxpbmsgPC9wPlxuYGBgXG5cbnwgcGFyYW1ldGVyICAgIHwgcHVycG9zZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZGVmYXVsdCAgICAgICAgICAgIHxcbnwtLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLXxcbnwgYGljb25OYW1lYCAgIHwgbmFtZSBmcm9tIGluIGljb24gZGlyZWN0b3J5ICAgICAgICAgICAgICAgIHwgMCAgICAgICAgICAgICAgICAgIHxcbnwgYGNvbG9yYCAgICAgIHwgaWNvbiBtb2RpZnlpbmcgY2xhc3NlcyAgICAgICAgICAgICAgICAgICAgIHwgNSAgICAgICAgICAgICAgICAgIHxcblxuKi9cblxuXG4vKmRvY1xuLS0tXG50aXRsZTogSWNvbnNcbm5hbWU6IHotbWFwLWljb25zXG5jYXRlZ29yeTogSWNvbnMgJiBJbWFnZXMgLSBNYXAgTWFya2Vyc1xuc2VsZWN0b3JzOlxuLS0tXG5cblRoZXNlIHBhcnRpY3VsYXIgaWNvbnMgYXJlIG1haW5seSBmb3IgdXNlIG9uIG91ciBsZWFmbGV0LmpzIG1hcHMuIEJ1dCBjb3VsZFxuYmUgdXNlZCBhbnl3aGVyZSByZWFsbHkuXG5cbmBgYGh0bWxfZXhhbXBsZVxuPGRpdiBjbGFzcz1cImljb24tbWFwcy1tYXJrZXJNYXAgYmx1ZVwiPjxzcGFuPmE8L3NwYW4+PC9kaXY+XG48ZGl2IGNsYXNzPVwiaWNvbi1tYXBzLW1hcmtlck1hcCBibHVlXCI+PHNwYW4+Yjwvc3Bhbj48L2Rpdj5cbjxkaXYgY2xhc3M9XCJpY29uLW1hcHMtbWFya2VyTWFwIGJsdWVcIj48c3Bhbj5jPC9zcGFuPjwvZGl2PlxuPGRpdiBjbGFzcz1cImljb24tbWFwcy1tYXJrZXJNYXAgb3JhbmdlXCI+PHNwYW4+YTwvc3Bhbj48L2Rpdj5cbjxkaXYgY2xhc3M9XCJpY29uLW1hcHMtbWFya2VyTWFwIG9yYW5nZVwiPjxzcGFuPmI8L3NwYW4+PC9kaXY+XG48ZGl2IGNsYXNzPVwiaWNvbi1tYXBzLW1hcmtlck1hcCBvcmFuZ2VcIj48c3Bhbj5jPC9zcGFuPjwvZGl2PlxuPGRpdiBjbGFzcz1cImljb24tbWFwcy1tYXJrZXJNYXAgYmx1ZSBvcmFuZ2UgbGFyZ2VcIj48c3Bhbj4xNTwvc3Bhbj48L2Rpdj5cbmBgYFxuXG4qL1xuLmljb24tbWFwcy1tYXJrZXJNYXAge1xuICBib3gtc2hhZG93OiAtMXB4IDFweCA1cHggIzMzMztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIHNwYW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGVmdDogMHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB0b3A6IDBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gICYudHJhbnNwYXJlbnQge1xuICAgIG9wYWNpdHk6IDAuNzUgIWltcG9ydGFudDtcbiAgfVxuXG4gICYuc21hbGwge1xuICAgIGhlaWdodDogMjBweDtcbiAgICB3aWR0aDogMjBweDtcblxuICAgICYuY2VudGVyZWQge1xuICAgICAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICAgICAgbWFyZ2luLXRvcDogLTEwcHg7XG4gICAgfVxuXG4gICAgc3BhbiB7XG4gICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICB9XG4gIH1cblxuICAmLmxhcmdlIHtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgd2lkdGg6IDQwcHg7XG5cbiAgICAmLmNlbnRlcmVkIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMjBweDtcbiAgICAgIG1hcmdpbi10b3A6IC0yMHB4O1xuICAgIH1cblxuICAgIHNwYW4ge1xuICAgICAgbGluZS1oZWlnaHQ6IDM0cHg7XG4gICAgfVxuICB9XG5cbiAgJi5ibHVlIHtcbiAgICBAZXh0ZW5kIC5pY29uLmJhY2tncm91bmQtYmx1ZTtcbiAgICBAZXh0ZW5kIC5yb3VuZDtcbiAgfVxuXG4gICYub3JhbmdlIHtcbiAgICBAZXh0ZW5kIC5pY29uLmJhY2tncm91bmQtb3JhbmdlO1xuICAgIEBleHRlbmQgLnJvdW5kO1xuICB9XG5cbiAgJi5ibHVlLm9yYW5nZSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDY1ZGVnLCAkbGluay1ibHVlLWxpZ2h0IDAlLCAkbGluay1ibHVlLWxpZ2h0IDUwJSwgI2Y4YWIxZCA1MCUsICNmOGFiMWQgMTAwJSk7XG4gIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU3R5bGVzIGZvciB0aGUgbGVhZmxldCBjbHVzdGVyIHBsdWdpblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLmxlYWZsZXQtY2x1c3Rlci1hbmltIC5sZWFmbGV0LW1hcmtlci1pY29uLCAubGVhZmxldC1jbHVzdGVyLWFuaW0gLmxlYWZsZXQtbWFya2VyLXNoYWRvdyB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC4zcyBlYXNlLW91dCwgb3BhY2l0eSAwLjNzIGVhc2UtaW47XG4gIC1tb3otdHJhbnNpdGlvbjogLW1vei10cmFuc2Zvcm0gMC4zcyBlYXNlLW91dCwgb3BhY2l0eSAwLjNzIGVhc2UtaW47XG4gIC1vLXRyYW5zaXRpb246IC1vLXRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0LCBvcGFjaXR5IDAuM3MgZWFzZS1pbjtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQsIG9wYWNpdHkgMC4zcyBlYXNlLWluO1xufVxuXG4ubGVhZmxldC1jbHVzdGVyLXNwaWRlci1sZWcge1xuICAvKiBzdHJva2UtZGFzaG9mZnNldCAoZHVyYXRpb24gYW5kIGZ1bmN0aW9uKSBzaG91bGQgbWF0Y2ggd2l0aCBsZWFmbGV0LW1hcmtlci1pY29uIHRyYW5zZm9ybSBpbiBvcmRlciB0byB0cmFjayBpdCBleGFjdGx5ICovXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC1zdHJva2UtZGFzaG9mZnNldCAwLjNzIGVhc2Utb3V0LCAtd2Via2l0LXN0cm9rZS1vcGFjaXR5IDAuM3MgZWFzZS1pbjtcbiAgLW1vei10cmFuc2l0aW9uOiAtbW96LXN0cm9rZS1kYXNob2Zmc2V0IDAuM3MgZWFzZS1vdXQsIC1tb3otc3Ryb2tlLW9wYWNpdHkgMC4zcyBlYXNlLWluO1xuICAtby10cmFuc2l0aW9uOiAtby1zdHJva2UtZGFzaG9mZnNldCAwLjNzIGVhc2Utb3V0LCAtby1zdHJva2Utb3BhY2l0eSAwLjNzIGVhc2UtaW47XG4gIHRyYW5zaXRpb246IHN0cm9rZS1kYXNob2Zmc2V0IDAuM3MgZWFzZS1vdXQsIHN0cm9rZS1vcGFjaXR5IDAuM3MgZWFzZS1pbjtcbn1cbiIsIi8qZG9jXG4tLS1cbnRpdGxlOiBTcGlubmVyc1xubmFtZTogYS1zcGlubmVyc1xuY2F0ZWdvcnk6IEljb25zICYgSW1hZ2VzIC0gU3Bpbm5lcnNcbi0tLVxuXG5PdXIgc3Bpbm5lciBpcyBjcmVhdGVkIGVudGlyZWx5IHZpYSBDU1MuIFRvIHNob3cgb25lLCBzaW1wbHkgY3JlYXRlIGEgZGl2IGFuZCBhZGRcbnRoZSBgLnVzbi1zcGlubmVyYCBjbGFzcyB0byBpdC4gVGhlIGRlZmF1bHQgZGltZW5zaW9ucyB3aWxsIGJlIDEwMHgxMDAsIGJ1dCB5b3VcbmNhbiByZXNpemUgdGhlIGRpdiB0byBhbnkgc3F1YXJlIGRpbWVuc2lvbnMgeW91IHdhbnQgdXNpbmcgQ1NTLlxuXG5gYGBodG1sX2V4YW1wbGVcbjxkaXYgY2xhc3M9XCJmbGV4LXJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsLTEyIGZsZXgtbWVkaXVtLTMgdGV4dC1jZW50ZXIgYm9yZGVyXCIgc3R5bGU9XCJwYWRkaW5nLXRvcDogMnJlbTsgcGFkZGluZy1ib3R0b206IDJyZW07XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c24tc3Bpbm5lclwiIHN0eWxlPVwid2lkdGg6IDUwcHg7IGhlaWdodDogNTBweDtcIj48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPHByZT4udXNuLXNwaW5uZXI8L3ByZT5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsLTEyIGZsZXgtbWVkaXVtLTMgdGV4dC1jZW50ZXJcIiBzdHlsZT1cInBhZGRpbmctdG9wOiAycmVtOyBwYWRkaW5nLWJvdHRvbTogMnJlbTsgYmFja2dyb3VuZC1jb2xvcjogIzMzM1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNuLXNwaW5uZXIgd2hpdGVcIiBzdHlsZT1cIndpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7XCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxwcmUgY2xhc3M9XCJ0ZXh0LXdoaXRlXCI+LnVzbi1zcGlubmVyLndoaXRlPC9wcmU+XG4gICAgPC9kaXY+XG48L2Rpdj5cbmBgYFxuXG4qKlNpemVzKipcblxuQSBmZXcgcHJlc2V0IHNpemluZyBjbGFzc2VzIGluIGNhc2UgdGhleSdyZSB1c2VmdWwuXG5cbnwgU2l6ZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgY2xhc3NOYW1lIHxcbnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLXxcbnwgPGRpdiBjbGFzcz1cInVzbi1zcGlubmVyIHNtYWxsXCI+PC9kaXY+ICAgICAgfCBzbWFsbCAgICAgfFxufCA8ZGl2IGNsYXNzPVwidXNuLXNwaW5uZXIgbWVkaXVtXCI+PC9kaXY+ICAgICB8IG1lZGl1bSAgICB8XG58IDxkaXYgY2xhc3M9XCJ1c24tc3Bpbm5lciBsYXJnZVwiPjwvZGl2PiAgICAgIHwgbGFyZ2UgICAgIHxcblxuKi9cblxuXG5Aa2V5ZnJhbWVzIHVzbi1zcGlubmVyIHtcbiAgICBmcm9tIHsgdHJhbnNmb3JtOiByb3RhdGUoMCk7IH1cbiAgICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH1cbn1cblxuLnVzbi1zcGlubmVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDEwMHB4O1xuICAgIGhlaWdodDogMTAwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIC8vIENvbnRlbnQgaXMgYW4gaW5saW5lIFNWRyBpbWFnZSwgVVJJIGVuY29kZWQuIFRvIGVkaXQsIGRlY29kZSB0aGUgZW5jb2RlZFxuICAgICAgICAvLyBwb3J0aW9uLCBtYWtlIGNoYW5nZXMsIHRoZW4gcmUtZW5jb2RlLlxuICAgICAgICBjb250ZW50OiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDEwMCUyMDEwMCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIybm9uZSUyMiUyMHN0cm9rZSUzRCUyMiUyM0M5QzlDOSUyMiUyMHN0cm9rZS13aWR0aCUzRCUyMjE0JTIyJTIwZCUzRCUyMk05MyUyQzUwJTIwYTQzJTJDNDMlMjAwJTIwMCUyQzAlMjAtMTIuNTklMkMtMzAuNDElMjIvJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjJub25lJTIyJTIwc3Ryb2tlJTNEJTIyJTIzQzlDOUM5JTIyJTIwc3Ryb2tlLXdpZHRoJTNEJTIyMTQlMjIlMjBkJTNEJTIyTTclMkM1MCUyMGE0MyUyQzQzJTIwMCUyMDAlMkMwJTIwMTIuNTklMkMzMC40MSUyMi8lM0UlM0NwYXRoJTIwZmlsbCUzRCUyMm5vbmUlMjIlMjBzdHJva2UlM0QlMjIlMjNEOUQ5RDklMjIlMjBzdHJva2Utd2lkdGglM0QlMjIxNCUyMiUyMGQlM0QlMjJNNTAlMkM5MyUyMGE0MyUyQzQzJTIwMCUyMDAlMkMxJTIwLTMwLjQxJTJDLTEyLjU5JTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIybm9uZSUyMiUyMHN0cm9rZSUzRCUyMiUyM0Q5RDlEOSUyMiUyMHN0cm9rZS13aWR0aCUzRCUyMjE0JTIyJTIwZCUzRCUyMk01MCUyQzclMjBhNDMlMkM0MyUyMDAlMjAwJTJDMSUyMDMwLjQxJTJDMTIuNTklMjIvJTNFJTNDL3N2ZyUzRSUwQScpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7IC8vIHNvIHRoYXQgd2UgY2FuIG1ha2UgdGhlIHNwaW5uZXIgc21hbGxlciB0aGFuIHRoZSBkZWZhdWx0IGxpbmUgaGVpZ2h0XG4gICAgICAgIGFuaW1hdGlvbi1uYW1lOiB1c24tc3Bpbm5lcjtcbiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAzcztcbiAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDEwMCUyMDEwMCUyMiUzRSUzQ3BhdGglMjBmaWxsJTNEJTIybm9uZSUyMiUyMHN0cm9rZSUzRCUyMiUyMzFBNjFBNyUyMiUyMHN0cm9rZS13aWR0aCUzRCUyMjE0JTIyJTIwZCUzRCUyMk01MCUyQzclMjBhNDMlMkM0MyUyMDAlMjAwJTJDMCUyMC00MyUyQzQzJTIyLyUzRSUzQ3BhdGglMjBmaWxsJTNEJTIybm9uZSUyMiUyMHN0cm9rZSUzRCUyMiUyMzFBNjFBNyUyMiUyMHN0cm9rZS13aWR0aCUzRCUyMjE0JTIyJTIwZCUzRCUyMk01MCUyQzkzJTIwYTQzJTJDNDMlMjAwJTIwMCUyQzAlMjA0MyUyQy00MyUyMi8lM0UlM0Mvc3ZnJTNFJyk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHVzbi1zcGlubmVyO1xuICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDEuNXM7XG4gICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAmLndoaXRlIHtcbiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHdoaXRlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgIH1cblxuICAgICYuc21hbGwge1xuICAgICAgICB3aWR0aDogMXJlbTtcbiAgICAgICAgaGVpZ2h0OiAxcmVtO1xuICAgIH1cblxuICAgICYubWVkaXVtIHtcbiAgICAgICAgd2lkdGg6IDNyZW07XG4gICAgICAgIGhlaWdodDogM3JlbTtcbiAgICB9XG5cbiAgICAmLmxhcmdlIHtcbiAgICAgICAgd2lkdGg6IDZyZW07XG4gICAgICAgIGhlaWdodDogNnJlbTtcbiAgICB9XG59XG4iLCIvKmRvY1xuLS0tXG50aXRsZTogQm9yZGVyIEhlbHBlcnNcbm5hbWU6IGEtYm9yZGVyLWhlbHBlcnNcbmNhdGVnb3J5OiBWaXN1YWwgVHJlYXRtZW50cyAtIEJvcmRlclxuc2VsZWN0b3JzOlxuICAgIC0gLmJvcmRlci1ib3R0b21cbiAgICAtIC5ib3JkZXItYm90dG9tLWZvci1zbWFsbC1vbmx5XG4gICAgLSAuYm9yZGVyLWJvdHRvbS1mb3ItbWVkaXVtLXVwXG4gICAgLSAuYm9yZGVyLWJvdHRvbS1mb3ItbWVkaXVtLW9ubHlcbiAgICAtIC5ib3JkZXItYm90dG9tLWZvci1sYXJnZS11cFxuICAgIC0gLmJvcmRlci1ib3R0b20tbm9uZVxuICAgIC0gLmJvcmRlci10b3BcbiAgICAtIC5ib3JkZXItdG9wLW5vbmVcbiAgICAtIC5ib3JkZXItbGVmdFxuICAgIC0gLmJvcmRlci1yaWdodFxuICAgIC0gLmJvcmRlcmVkLWJvdHRvbVxuICAgIC0gLmJvcmRlci10aGlja1xuICAgIC0gLmJvcmRlci1jdXJ2ZWRcbnNlbGVjdG9yX3R5cGU6IGxheW91dFxuLS0tXG5cblVzdWFsbHkgd2UgYXBwbHkgYm9yZGVyIHRvIHRoZSBib3R0b20gb2YgYW4gZWxlbWVudCB3aXRoIHRoZSBmb2xsb3dpbmdcbmhlbHBlcnMuIFRoaXMgcHJvdmlkZXMgYSB2ZXJ5IGZsZXhpYmxlIHN5c3RlbSBpZiB1c2VkIGluIGNvbmp1Y3Rpb24gd2l0aCBcblsucGFkLV1bYi1wYWRkaW5nLWhlbHBlcnNdIGFuZCBbLmJsb2NrLV1bYS1tYXJnaW4taGVscGVyc10gaGVscGVyIGNsYXNzZXMuXG5cbioqQm9yZGVyIGJvdHRvbSBoZWxwZXJzKipcblxuYC5ib3JkZXItYm90dG9tYCAgICAgICAgXG5gLmJvcmRlci1ib3R0b20tZm9yLXNtYWxsLW9ubHlgICBcbmAuYm9yZGVyLWJvdHRvbS1mb3ItbWVkaXVtLXVwYCAgICAgXG5gLmJvcmRlci1ib3R0b20tZm9yLW1lZGl1bS1vbmx5YCAgIFxuYC5ib3JkZXItYm90dG9tLWZvci1sYXJnZS11cGAgICAgXG5gLmJvcmRlci1ib3R0b20tbm9uZWBcblxuV2UgaGF2ZSBzb21lIHRvcCBib3JkZXIgaGVscGVycyAoYnV0IGhhdmUgbm90IHlldCBmb3VuZCBpdCBuZWNlc3NhcnkgdG8gaW5jbHVkZVxudGhlbSB3aXRoIHRoZSByZXNwb25zaXZlIG1vZGlmaWVycykuXG5cbioqT3RoZXIgYXZhaWxhYmxlIGJvcmRlciBoZWxwZXJzKipcblxuYC5ib3JkZXItbm9uZWBcbmAuYm9yZGVyLXRvcGAgIFxuYC5ib3JkZXItdG9wLW5vbmVgICBcbmAuYm9yZGVyLWxlZnRgICBcbmAuYm9yZGVyLXJpZ2h0YCAgXG5gLmJvcmRlci1sZWZ0LW5vbmVgXG5gLmJvcmRlci1yaWdodC1ub25lYFxuYC5ib3JkZXItdGhpY2tgXG5gLmJvcmRlci1jdXJ2ZWRgXG5cbkNoYW5nZSB0aGUgc2l6ZSBvZiB5b3VyIHZpZXdwb3J0IHRvIGdldCBhbiBpZGVhIG9mIGhvdyB0aGVzZSBoZWxwZXJzIHdvcmsgYmVsb3c6XG5cbmBgYGh0bWxfZXhhbXBsZVxuPGRpdiBjbGFzcz1cImZsZXgtcm93IGJsb2NrLWxvb3NlXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwgYmFyLWxvb3NlIGJvcmRlci1ib3R0b20gcGFkLW5vcm1hbFwiPi5ib3JkZXItYm90dG9tPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwgYmFyLWxvb3NlIGJvcmRlci1ib3R0b20tZm9yLXNtYWxsLW9ubHkgcGFkLW5vcm1hbFwiPi5ib3JkZXItYm90dG9tLWZvci1zbWFsbC1vbmx5PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwgYmFyLWxvb3NlIGJvcmRlci1ib3R0b20tZm9yLW1lZGl1bS11cCBwYWQtbm9ybWFsXCI+LmJvcmRlci1ib3R0b20tZm9yLW1lZGl1bS11cDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsIGJhci1sb29zZSBib3JkZXItYm90dG9tLWZvci1tZWRpdW0tb25seSBwYWQtbm9ybWFsXCI+LmJvcmRlci1ib3R0b20tZm9yLW1lZGl1bS1vbmx5PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwgYmFyLWxvb3NlIGJvcmRlci1ib3R0b20tZm9yLWxhcmdlLXVwIHBhZC1ub3JtYWxcIj4uYm9yZGVyLWJvdHRvbS1mb3ItbGFyZ2UtdXA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImZsZXgtcm93XCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwgYmFyLWxvb3NlIGJvcmRlci1ib3R0b20tbm9uZSBwYWQtbm9ybWFsXCI+LmJvcmRlci1ib3R0b20tbm9uZTwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsIGJhci1sb29zZSBib3JkZXItdG9wIHBhZC1ub3JtYWxcIj4uYm9yZGVyLXRvcDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsIGJhci1sb29zZSBib3JkZXItdG9wLW5vbmUgcGFkLW5vcm1hbFwiPi5ib3JkZXItdG9wLW5vbmU8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbCBiYXItbG9vc2UgYm9yZGVyLXRoaWNrIHBhZC1ub3JtYWxcIj4uYm9yZGVyLXRoaWNrPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwgYmFyLWxvb3NlIGJvcmRlciBib3JkZXItY3VydmVkIHBhZC1ub3JtYWxcIj4uYm9yZGVyLWN1cnZlZDwvZGl2PlxuPC9kaXY+XG5gYGBcbiovXG5cbi5ib3JkZXItbm9uZSB7XG4gICAgYm9yZGVyOiAwIWltcG9ydGFudDtcbn1cblxuLmJvcmRlci1sZWZ0IHtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRnYWluc2Jvcm8gIWltcG9ydGFudDtcbn1cbi5ib3JkZXItcmlnaHQge1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRnYWluc2Jvcm8gIWltcG9ydGFudDtcbn1cblxuLmJvcmRlci1sZWZ0LW5vbmUge1xuICAgIGJvcmRlci1sZWZ0OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItcmlnaHQtbm9uZSB7XG4gICAgYm9yZGVyLXJpZ2h0OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItYm90dG9tLW5vbmUtZm9yLXNtYWxsLW9ubHkge1xuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5ib3JkZXItYm90dG9tIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdhaW5zYm9ybyAhaW1wb3J0YW50O1xufVxuXG4uYm9yZGVyLWJvdHRvbS1ub25lIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5ib3JkZXItdG9wIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGdhaW5zYm9ybyAhaW1wb3J0YW50XG59XG5cbi5ib3JkZXItdG9wLW5vbmUge1xuICAgIGJvcmRlci10b3A6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuQGVhY2ggJGJyZWFrcG9pbnQsICR2YXIgaW4gJGJyZWFrcG9pbnQtdmFyaWFibGVzIHtcbiAgICAuYm9yZGVyLXRvcC1mb3ItI3skYnJlYWtwb2ludH0ge1xuICAgICAgICBAbWVkaWEgI3skdmFyfSB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGdhaW5zYm9ybyAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AZWFjaCAkYnJlYWtwb2ludCwgJHZhciBpbiAkYnJlYWtwb2ludC12YXJpYWJsZXMge1xuICAgIC5ib3JkZXItYm90dG9tLWZvci0jeyRicmVha3BvaW50fSB7XG4gICAgICAgIEBtZWRpYSAjeyR2YXJ9IHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ2FpbnNib3JvICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBlYWNoICRicmVha3BvaW50LCAkdmFyIGluICRicmVha3BvaW50LXZhcmlhYmxlcyB7XG4gICAgLmJvcmRlci1yaWdodC1mb3ItI3skYnJlYWtwb2ludH0ge1xuICAgICAgICBAbWVkaWEgI3skdmFyfSB7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkZ2FpbnNib3JvICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBlYWNoICRicmVha3BvaW50LCAkdmFyIGluICRicmVha3BvaW50LXZhcmlhYmxlcyB7XG4gICAgLmJvcmRlci1sZWZ0LWZvci0jeyRicmVha3BvaW50fSB7XG4gICAgICAgIEBtZWRpYSAjeyR2YXJ9IHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGdhaW5zYm9ybyAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uaGlkZS1ib3JkZXItZm9yLW1lZGl1bS1kb3duIHtcbiAgICBAbWVkaWEgI3skbm90LWxhcmdlLXVwfSB7XG4gICAgICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLy8gVE9ETzogV2UgcmVhbGx5IHJlYWxseSB3YW50IHRvIGtpbGwgdGhpc1xuLmJvcmRlcmVkLWJvdHRvbSB7XG4gICAgcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDI1KTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdhaW5zYm9ybztcbiAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyNSk7XG59XG5cbi5ib3JkZXIge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRnYWluc2Jvcm87XG59XG5cbi5ib3JkZXItaXJvbiB7XG4gICAgYm9yZGVyOiByZW0tY2FsYygxKSBzb2xpZCAkaXJvbjtcbn1cblxuLmJvcmRlci10aGljayB7XG4gICAgYm9yZGVyOiAycHggc29saWQgJGdhaW5zYm9ybztcbn1cblxuLmJvcmRlci1jdXJ2ZWQge1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuLnRoaWNrLWJvcmRlci10b3AtbGlnaHQtYmx1ZSB7XG4gICAgYm9yZGVyLXRvcDogNXB4IHNvbGlkICRsaW5rLWJsdWUtbGlnaHQ7XG59XG5cbi50aGljay1ib3JkZXItdG9wLWRhcmstYmx1ZSB7XG4gICAgYm9yZGVyLXRvcDogNXB4IHNvbGlkICRibHVlLWRhcms7XG59XG5cbi8vIFRoZW1pbmdcbkBtaXhpbiBkYXJrLWJvcmRlcigpIHtcbi5kYXJrIHtcbiAgICAuYm9yZGVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYmxhY2s7XG4gICAgfVxuXG4gICAgZGl2W2NsYXNzXj1cImJvcmRlci1ib3R0b21cIl0ge1xuICAgICAgICBib3JkZXItY29sb3I6ICRibGFjayAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuIiwiLypkb2Ncbi0tLVxudGl0bGU6IFJlZ3VsYXIgTGFiZWxcbm5hbWU6IGEtbGFiZWxzXG5jYXRlZ29yeTogVmlzdWFsIFRyZWF0bWVudHMgLSBMYWJlbFxuLS0tXG5cblVzZSB0aGUgY2xhc3MgYC5sYWJlbGAgdG8gY3JlYXRlIGRlZmF1bHQgbGFiZWwgbG9vayBhbmQgZmVlbC5cblxuYGBgaHRtbF9leGFtcGxlXG48c3BhbiBjbGFzcz1cImxhYmVsXCI+UmVndWxhciBMYWJlbDwvc3Bhbj5cbmBgYFxuKi9cblxuLypkb2Ncbi0tLVxudGl0bGU6IEZvdW5kYXRpb24gTW9kaWZpZXJzXG5uYW1lOiBiLWFkdmFuY2VkLWxhYmVsc1xuY2F0ZWdvcnk6IFZpc3VhbCBUcmVhdG1lbnRzIC0gTGFiZWxcbi0tLVxuXG5UaGUgbmFtaW5nIG9mIGNsYXNzIG1vZGlmaWVycyBhcmUgaW50ZW5kZWQgdG8gYmUgc2VtYW50aWMsIHJlbGF0ZWQgdG8gZnVuY3Rpb24uICBUaGV5IGFyZSB0byBiZSBhcHBsaWVkIGFzIGEgY2hhaW5lZCBjc3MgcnVsZSwgc3VjaCBhcyBgLmxhYmVsLnNlY29uZGFyeWAgcmF0aGVyIHRoYW4gYXMganVzdCBgLnNlY29uZGFyeWBcblxuVGhlc2UgYXJlIG1vZGlmaWVycyB0aGF0IGFyZSBpbmhlcml0ZWQgd2l0aCBGb3VuZGF0aW9uIGJ1dCBhcmUgbm90IGN1cnJlbnRseSB1c2VkLlxuUGxlYXNlIGRvbid0IHVzZSB0aGVtIHVubGVzcyBpdCdzIGFjdHVhbGx5IG5lZWRlZCBhcyBhIGRlc2lnbi91aSBwYXR0ZXJuLlxuXG5jb2xvciBtb2RpZmllcnM6IGAuYWxlcnRgIGAud2FybmluZ2AgYC5zdWNjZXNzYCBgLmluZm9gIGFuZCBgLnNlY29uZGFyeWBcbnNoYXBlIG1vZGlmaWVyczogYC5yb3VuZGAgYW5kYC5yYWRpdXNgXG5cbmBgYGh0bWxfZXhhbXBsZVxuPHNwYW4gY2xhc3M9XCJyYWRpdXMgc2Vjb25kYXJ5IGxhYmVsXCI+U2Vjb25kYXJ5IExhYmVsPC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJyb3VuZCBhbGVydCBsYWJlbFwiPlJvdW5kIEFsZXJ0IExhYmVsPC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJ3YXJuaW5nIGxhYmVsXCI+V2FybmluZyBMYWJlbDwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwicmFkaXVzIGxhYmVsXCI+UmFkaXVzZWQgU3VjY2VzcyBMYWJlbDwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwiaW5mbyBsYWJlbFwiPkluZm8gTGFiZWw8L3NwYW4+XG5gYGBcblxuKi9cblxuLypkb2Ncbi0tLVxudGl0bGU6IEZvdW5kYXRpb24gU2V0dGluZ3Ncbm5hbWU6IGItdXNuLXNldHRpbmdzLXVzbi1zZXR0aW5nc1xuY2F0ZWdvcnk6IFZpc3VhbCBUcmVhdG1lbnRzIC0gTGFiZWxcbi0tLVxuXG5UaGVzZSBhcmUgdGhlIGRlZmF1bHQgRm91bmRhdGlvbiBidXR0b24gdmFyaWFibGVzIHdlIGNhbiBlZGl0IGZyb21cbmBfLnNldHRpbmdzLnNjc3NgLiAgTmV3IHNldHRpbmdzIGFyZSBhZGRlZCB0byBgXy52YXJpYWJsZXMuc2Nzc2BcblxuYGBgc2Fzc19leGFtcGxlXG5AcmVmLWRvYyBMYWJlbHNcblxuYGBgXG4qL1xuXG4vKmRvY1xuLS0tXG50aXRsZTogVVNOIE1vZGlmaWVyc1xubmFtZTogYy1taXhpbi1taXhpblxuY2F0ZWdvcnk6IFZpc3VhbCBUcmVhdG1lbnRzIC0gTGFiZWxcbi0tLVxuXG5Zb3UgY2FuIGNyZWF0ZSB5b3VyIG93biBsYWJlbHMgdXNpbmcgYSBtaXhpbi5cblxuQSBjdXJyZW50IGxpc3Qgb2YgVVNOIGxhYmVsIG1vZGlmaWVycyB0aGF0IHVzZXMgdGhlIGBsYWJlbCgpYCBtaXhpbiBhcmU6XG5cbmAuYnJhbmRmdXNlYCwgYC5sb3ctbWF0Y2hgLCBgLm1vZGVyYXRlLW1hdGNoYCwgYC5tYWpvci1tYXRjaGAsIGAuZnVsbC1tYXRjaGBcblxuYGBgIGh0bWxfZXhhbXBsZVxuPHNwYW4gY2xhc3M9XCJsYWJlbCBicmFuZGZ1c2VcIj5VLlMuIE5ld3MgQnJhbmRGdXNlPC9zcGFuPlxuXG48c3BhbiBjbGFzcz1cImxhYmVsIGxvdy1tYXRjaFwiPjI1JSBNYXRjaDwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGFiZWwgbW9kZXJhdGUtbWF0Y2hcIj41MCUgTWF0Y2g8L3NwYW4+XG48c3BhbiBjbGFzcz1cImxhYmVsIG1ham9yLW1hdGNoXCI+NzUlIE1hdGNoPC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsYWJlbCBmdWxsLW1hdGNoXCI+MTAwJSBNYXRjaDwvc3Bhbj5cbmBgYFxuXG5gYGAgc2Fzc19leGFtcGxlXG4ubGFiZWwge1xuICAgICYuYnJhbmRmdXNlIHtcbiAgICAgICAgQGluY2x1ZGUgbGFiZWwoJHBhZGRpbmc6cmVtLWNhbGMoMTApLCAkYmc6JGJyYW5kZnVzZS1jb2xvciwgJHJhZGl1czowKTtcbiAgICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGZvbnQtc2l6ZTogJHRleHQtc21hbGw7XG4gICAgfVxufVxuYGBgXG4qL1xuXG4kYnJhbmRmdXNlLWNvbG9yOiAkb3JhbmdlLWxpZ2h0O1xuXG4ubGFiZWwge1xuICAgICYuZnVsbC1tYXRjaCB7XG4gICAgICAgIEBpbmNsdWRlIGxhYmVsLW1hdGNoKCRiZzokZ3JlZW4tbGlnaHQpO1xuICAgIH1cblxuICAgICYubWFqb3ItbWF0Y2gge1xuICAgICAgICBAaW5jbHVkZSBsYWJlbC1tYXRjaCgkYmc6JGdyZWVuLWRhcmspO1xuICAgIH1cblxuICAgICYubW9kZXJhdGUtbWF0Y2gge1xuICAgICAgICBAaW5jbHVkZSBsYWJlbC1tYXRjaCgkYmc6JHllbGxvdyk7XG4gICAgfVxuXG4gICAgJi5sb3ctbWF0Y2gge1xuICAgICAgICBAaW5jbHVkZSBsYWJlbC1tYXRjaCgkYmc6JG9yYW5nZS1kYXJrKTtcbiAgICB9XG5cbiAgICAmLmJyYW5kZnVzZSB7XG4gICAgICAgIEBpbmNsdWRlIGxhYmVsKCRwYWRkaW5nOnJlbS1jYWxjKDEwKSwgJGJnOiRicmFuZGZ1c2UtY29sb3IsICRyYWRpdXM6MCk7XG4gICAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBmb250LXNpemU6ICR0ZXh0LXNtYWxsO1xuICAgIH1cbn1cbiIsIi8qZG9jXG4tLS1cbnRpdGxlOiBHbG9iYWwgSGVhZGVyXG5uYW1lOiBhLWdsb2JhbC1oZWFkZXJcbmNhdGVnb3J5OiBIZWFkZXJzICYgRm9vdGVycyAtIEhlYWRlcnNcbnRlbXBsYXRlOlxuICAgIGhlYWRlcjpcbiAgICAgIG1lZ2FfbWVudTpcbiAgICAgICAgc2VhcmNoX3RlbXBsYXRlX3BhdGg6IHRlbXBsYXRlcy9wYWdlcy9uZXdzL3dpZGdldHMvc2VhcmNoLm51bmpcbiAgICAgICAgbWVudTpcbiAgICAgICAgICBjaGlsZHJlbjpcbiAgICAgICAgICAtIGxpbms6XG4gICAgICAgICAgICAgIHB1bGxfc2hvcnRfaGVhZGxpbmU6IGZhbHNlXG4gICAgICAgICAgICAgIG5ld193aW5kb3c6IGZhbHNlXG4gICAgICAgICAgICAgIGNvbnRlbnRfcmVmZXJlbmNlX2lkOiAwMDAwMDE0Mi05MjhiLWQzM2MtYWJjNi1mZjlmZTczMTAwMDBcbiAgICAgICAgICAgICAgdGV4dDogTmV3c1xuICAgICAgICAgICAgICB1cmw6IFwiLy93d3cudXNuZXdzLmNvbS9uZXdzXCJcbiAgICAgICAgICAgIHVybF9wYXR0ZXJuczogW11cbiAgICAgICAgICAtIGxpbms6XG4gICAgICAgICAgICAgIHB1bGxfc2hvcnRfaGVhZGxpbmU6IGZhbHNlXG4gICAgICAgICAgICAgIG5ld193aW5kb3c6IGZhbHNlXG4gICAgICAgICAgICAgIGNvbnRlbnRfcmVmZXJlbmNlX2lkOiAwMDAwMDE0NS1mMDdlLWQ3NWUtYTNkNy1mNDdmNzJjNDAwMDBcbiAgICAgICAgICAgICAgdGV4dDogUmFua2luZ3NcbiAgICAgICAgICAgICAgdXJsOiBcIi9yYW5raW5nc1wiXG4gICAgICAgICAgICB1cmxfcGF0dGVybnM6IFtdXG4gICAgICAgICAgY21zX3RheG9uX3Jvb3Q6IHRydWVcbiAgICAgIHNvY2lhbF9saW5rczpcbiAgICAgIC0gbmV3X3dpbmRvdzogZmFsc2VcbiAgICAgICAgdGV4dDogZmFjZWJvb2tcbiAgICAgICAgdXJsOiBcIi8vd3d3LmZhY2Vib29rLmNvbS91c25ld3NhbmR3b3JsZHJlcG9ydFwiXG4gICAgICAtIG5ld193aW5kb3c6IGZhbHNlXG4gICAgICAgIHRleHQ6IHR3aXR0ZXJcbiAgICAgICAgdXJsOiBcIi8vdHdpdHRlci5jb20vdXNuZXdzXCJcbiAgICAgIGlkOiAwMDAwMDE1Ni0yNzU5LWRmYzQtYTdmZS0yZjU5NWZhNjAwMDJcbiAgICAgIHRpdGxlOiBHZW5lcmljXG4gICAgICBsb2dpbjogZmFsc2VcbiAgICAgIG1pZ3JhdGlvbl9kYXRlOiB7fVxuc2VsZWN0b3JzOlxuICAgIC0gLmhlYWRlclxuXG4tLS1cblxuR2xvYmFsIGhlYWRlciBzaGFyZWQgYWNyb3NzIGFsbCBwYWdlcy4gSXQgc3RyZXRjaGVzIGZ1bGwtd2lkdGggYWNyb3NzIHRoZSB0b3BcbmFuZCBmZWF0dXJlcyBhICpoYW1idXJnZXIqIGljb24gdGhhdCB3aWxsIHRyaWdnZXIgYW4gb2ZmLWNhbnZhcyBwYW5lbCB3aXRoXG5zdWItbWVudXMuXG5cbi0gVVNOIExvZ28gcG9pbnRzIHRvIGhvbWVwYWdlIFxuLSBMZWZ0LW1vc3QgaXRlbSBpbiBuYXZiYXIgaXMgdGhlIFZlcnRpY2FsIG9yIFBvcnRhbCB0aXRsZSAoYGhlYWRlci50aXRsZWApIFxuLSBQYWdlcyB3aGVyZSB0aGUgYGhlYWRlci50aXRsZWAgdmFsdWUgaXMgJ0dlbmVyaWMnIGluIHRoZSBkYiB3aWxsIGZlYXR1cmUgXG4gIGdsb2JhbCBsaW5rcyBbKGV4YW1wbGUpXSgvbW9ja3MvcGFnZXMvbW9uZXkvaW52ZXN0aW5nL2FkdmljZS90b3BpYy5odG1sKVxuLSBBIGZldyB2ZXJ0aWNhbHMgd2lsbCBzaG93IGEgc2VhcmNoIGFuZCBvciBsb2dpbiBpY29uIG9uIHRoZSByaWdodFxuXG4jIyMjIE9mZi1jYW52YXMgLSBGaXJzdCBwYW5lbFxuXG5BbGwgXCJNb3JlIGZyb20gVS5TLiBOZXdzXCIgbGlua3MgYXJlIGhhcmRjb2RlZCBpbiBgZ2xvYmFsLWdlbmVyaWMtbmF2aWdhdGlvbi5udW5qYFxuXG4tIFJlcGVhdHMgdGhlIHNhbWUgbGlua3MgaW4gdGhlIG5hdmJhclxuLSBUb3AtbGV2ZWwgXCJNb3JlIGZyb20gVS5TLiBOZXdzXCIgKHZlcnRpY2FsKSBsaW5rc1xuLSBMaW5rcyB0byBVU04gbWV0YSBwYWdlc1xuLSBHbG9iYWwgc29jaWFsIGljb25zLlxuXG4jIyMjIE9mZi1jYW52YXMgLSBTZWNvbmQgcGFuZWxcbi0gT3BlbnMgd2l0aCBcIk1vcmUgZnJvbSBVLlMuIE5ld3NcIiAodmVydGljYWwpIGxpbmtzXG4tIExpbmtzIGZvciBqdXN0IHRoZSB2ZXJ0aWNhbFxuXG4qKk5vdGU6KiogVGhpcyBkb2Vzbid0IGxvb2sgcmlnaHQgZHVlIHRvIGNvbmZsaWN0cyB3aXRoIHN0eWxlZ3VpZGUgY3NzLCB3aWxsIGJlIGZpeGluZy5cblxuYGBgaHRtbF9leGFtcGxlXG48aGVhZGVyIGNsYXNzPVwiaGVhZGVyXCI+XG4gIHslIGluY2x1ZGUgXCJ0ZW1wbGF0ZXMvY29tbW9uL2dsb2JhbC1oZWFkZXIubnVualwiICV9XG48L2hlYWRlcj5cbmBgYFxuXG4jIyMjIE1lZ2EgTWVudVxuXG5XZSBoYXZlIDMgdHlwZXMgb2YgbWVnYSBtZW51cyBhbmQgdGhlIHN0eWxpbmcgZm9yIHRoZXNlIGlzIG1vc3RseSBjb250cm9sbGVkIGJ5IG1vZGlmaWVycyBvbiBgLm1lZ2EtbWVudWAuXG5cbioqVE9ETzoqKiBUaGVzZSBtZWdhLW1lbnVzIHdpbGwgaGF2ZSBhIG5hbWUgY2hhbmdlIGZvciB0aGUgMyBtb2RpZmllcnNcblxuVGhlIG1vc3Qgc2lnbmlmaWNhbnQgc3R5bGluZyBjaGFsbGVuZ2UgZm9yIHRoZXNlIGlzIHRoZSBncmF5IGJhY2tncm91bmQgc3R5bGluZ1xub2YgY2VydGFpbiBjb2x1bW5zIHdoZXJlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZXh0ZW5kcyBhbGwgdGhlIHdheSB0byB0aGUgZWRnZVxub2YgdGhlIHNjcmVlbi5cblxuMS4gYC5yYW5raW5nYCA0IG1haW4gY29sdW1ucywgbGVmdCBiYWRnZSBjb2x1bW4gaXMgZ3JheVxuMi4gYC5wcm9maWxlYCAyIG1haW4gY29sdW1ucywgcmlnaHQgc2lkZSBpcyBncmF5XG4zLiBgLmFkdmljZWAgMiBtYWluIGNvbHVtbnMsIGxlZnQgc2lkZSBpcyBncmF5XG5cbkNvbHVtbnMgdGhhdCBhcmUgZ3JheSBhcmUgY3JlYXRlZCB3aXRoIHRoZSBgLm1lZ2EtbWVudS1jb250ZW50LWZlYXR1cmVkYCBjbGFzcy5cblxuQmVsb3cgYXJlIHNvbWUgZXhhbXBsZXMgb2YgdGhlIGNvbnRlbnQgc3R5bGluZyBvZiBtZWdhIG1lbnVzLiBQbGVhc2Ugc2VlIG91clxuXG4qL1xuXG4kbG9nby1oZWlnaHQ6IDMycHg7XG4kbG9nby1zcXVhcmUtaGVpZ2h0OiA0MnB4O1xuJGhlYWRlci1zZWFyY2gtYmc6ICMxODNjNmY7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEhlYWRlciBCYXJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5oZWFkZXItbG9nbyxcbi5oZWFkZXItdGl0bGUsXG4uaGVhZGVyLWxpbmtzIHtcbiAgICBsaW5lLWhlaWdodDogJGxvZ28tc3F1YXJlLWhlaWdodDtcbiAgICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bSkge1xuICAgICAgICBsaW5lLWhlaWdodDogJGxvZ28taGVpZ2h0OyAvLyBoZWxwcyBjZW50ZXIgdGV4dCB3aXRoIGxvZ29cbiAgICB9XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgLy8gbm8gdmVydGljYWwgcGFkZGluZywgbWVzc2VzIHVwIGZsZXggbWlkZGxlIG9mIG5hdlxuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuXG4gICAgbGkge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgPiAuaGVhZGVyLWxpbms6aG92ZXIgfiAubmF2LWRyb3Bkb3duIC5uYXYtZHJvcGRvd24taW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRoaXMgcnVsZSBrZWVwcyB0aGUgbWVudSBvcGVuIHdoaWxlIHlvdSBjb250aW51ZSB0byBob3ZlciBvdmVyIGl0XG4gICAgICAgIC5uYXYtZHJvcGRvd24taW5uZXI6aG92ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRvIGdldCB0d28gYm94ZXMgdG8gYWxpZ24gYXQgdGhlaXIgY2VudGVycywgd2UgYWRqdXN0IG9uZSBwb3NpdGlvbiBieVxuICAgIC8vIHRoZSBoYWxmIGRpZmZlcmVuY2UgaW4gdGhlaXIgc2l6ZXMuICBUaGUgZm9sbG93aW5nIGZvcm11bGEgYXBwbGllczpcbiAgICAvLyAgICAgYm94Mi54ICs9IChib3gxLnNpemUueCAtIGJveDIuc2l6ZS54KSAvIDJcbiAgICAvLyBkaXN0cmlidXRpbmcgdGhlIGRpdmlzaW9uOlxuICAgIC8vICAgICBib3gyLnggKz0gYm94MS5zaXplLnggLyAyIC0gYm94Mi5zaXplLnggLyAyXG4gICAgLy8gTm93IGV4YW1pbmUgdGhlIHJ1bGVzIGJlbG93LCB0aGUgb3V0ZXIgYWRkcyA1MCUgb2YgdGhlIHBhcmVudCBib3gsXG4gICAgLy8gYW5kIHRoZSBpbm5lciBzdWJ0cmFjdHMgaGFsZiBvZiB0aGUgb3V0ZXIgc2l6ZS5cbiAgICAubmF2LWRyb3Bkb3duIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDI2MHB4O1xuXG4gICAgICAgIHotaW5kZXg6IDk5OTtcblxuICAgICAgICAubmF2LWRyb3Bkb3duLWlubmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAjMzMzO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMHB4IDNweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC43NSk7XG5cbiAgICAgICAgICAgIHBhZGRpbmc6IDEuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBsZWZ0OiAtNTAlO1xuXG4gICAgICAgICAgICAubmF2LWRyb3Bkb3duLWdyb3VwIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5kcm9wZG93bi1oZWFkZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjMzMzO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5kcm9wZG93bi1saW5rIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubmF2LWRyb3Bkb3duLWdyb3VwOmxhc3QtY2hpbGQsXG4gICAgICAgICAgICAuZHJvcGRvd24tbGluazpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzMzMztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGp1bWJvO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4vLyBubyBoYXJkY29kZWQgaGVpZ2h0XG4uaGVhZGVyIC50YWItYmFyIHtcbiAgICBoZWlnaHQ6IGluaXRpYWw7XG59XG5cbi5oZWFkZXItbGlua3MgbGkgLmhlYWRlci1saW5rIHtcbiAgICBjb2xvcjogJGxpZ2h0LWdyYXk7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cbn1cblxuLmhlYWRlci1saW5rcyBsaS5hY3RpdmUgLmhlYWRlci1saW5rIHtcbiAgICBjb2xvcjogJHdoaXRlO1xufVxuXG4uaGVhZGVyLXRpdGxlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cbi5oZWFkZXItaWNvbjpob3ZlciB7XG4gICAgZmlsbDogJGxpZ2h0LWdyYXk7XG59XG4uaGVhZGVyLXNlYXJjaCBpbnB1dCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgLy8gbm8gdmVydGljYWwgcGFkZGluZywgbWVzc2VzIHVwIGZsZXggbWlkZGxlIG9mIG5hdlxufVxuLmhlYWRlci1vdXRlciB7XG4gICAgQGluY2x1ZGUgZmxleGJveDtcbiAgICBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG4gICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cbi5oZWFkZXItaW5uZXIge1xuICAgIEBpbmNsdWRlIGZsZXhib3g7XG4gICAgQGluY2x1ZGUgZmxleCgpOyAvLyBmaWxsIGF2YWlsIHNwYWNlXG59XG4uaGVhZGVyLWJyYW5kIHtcbiAgICBAaW5jbHVkZSBmbGV4Ym94O1xuICAgIEBpbmNsdWRlIGFsaWduLXNlbGYoY2VudGVyKTtcbn1cblxuLmhlYWRlci1uYXYge1xuICAgIEBpbmNsdWRlIGZsZXhib3g7XG4gICAgQGluY2x1ZGUgZmxleCgpOyAvLyBmaWxsIGF2YWlsIHNwYWNlXG4gICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcblxuICAgIC5oZWFkZXItbGlua3MsIC5oZWFkZXItdGl0bGUge1xuICAgICAgICBAaW5jbHVkZSBmbGV4Ym94O1xuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXhib3g7XG4gICAgICAgIH1cblxuICAgICAgICAuaGVhZGVyLWxpbmsge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleGJveDtcblxuICAgICAgICAgICAgPiBzcGFuIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmbGV4Ym94O1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaGVhZGVyLWxpbmtzIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG5cbiAgICAgICAgQGluY2x1ZGUgdG8oYnAtbGFyZ2UpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IC8vIGRvbid0IHNob3cgbGlua3MgYmVsb3cgbGFyZ2VcbiAgICAgICAgfVxuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuXG4gICAgICAgICAgICAuaGVhZGVyLWxpbmsge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMC44NzVyZW07XG4gICAgICAgICAgICAgICAgJjpob3ZlciA+IHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIC00cHggMCAwICRsaW5rLWJsdWUtbGlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMjA1cHgpIHsgLy8gSEMtOSBoaWRlIGxlbmd0aHkgbmF2IGl0ZW1cbiAgICAgICAgICAgICAgICAgICAgJi5sb25nLW5hdiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uaGVhZGVyLW5hdi1pdGVtcyB7XG4gICAgQGluY2x1ZGUgZmxleGJveDtcbiAgICBAaW5jbHVkZSBmbGV4LXNocmluaygwKTtcbiAgICBAaW5jbHVkZSBmbGV4LWdyb3coMSk7XG59XG5cbi5oZWFkZXItbmF2LWNvbnRlbnQge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBMb2dvc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4ubG9nbyB7XG4gICAgaGVpZ2h0OiAkbG9nby1oZWlnaHQ7IC8vIGZvciBJRSAxMSBvbiBXaW5kb3dzIDguMVxuICAgIHdpZHRoOiAxMjBweDtcbiAgICAvLyBtYXJnaW4tdG9wOiAtMnB4OyAvLyBsaXR0bGUgbnVkZ3lcbiAgICBpbWcge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxufVxuXG4ubG9nby1zcXVhcmUge1xuICAgIGhlaWdodDogNDVweDsgLy8gZm9yIElFIDExIG9uIFdpbmRvd3MgOC4xXG4gICAgLy8gbWFyZ2luLXRvcDogLTJweDsgLy8gbGl0dGxlIG51ZGd5XG4gICAgaW1nIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gSGVhZGVyIFNlYXJjaCBFeHBhbmRlclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4uaGVhZGVyLXNlYXJjaCB7XG4gICAgaGVpZ2h0OiAkdGFiYmFyLWhlaWdodDtcbn1cbi8vIFRPRE86IFRoZXNlIGFyZSBvdmVycmlkZXMgb2Ygc3R1ZmYgaW4gX2Zvcm0uc2NzcywgYnV0IGkgdGhpbmsgdGhleSBzaG91bGQgYmUgbW92ZWQgaGVyZVxuLmhlYWRlci1zZWFyY2ggaW5wdXRbdHlwZT1cInRleHRcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItc2VhcmNoLWJnO1xuICAgIGJvcmRlcjogMDtcbiAgICBoZWlnaHQ6ICR0YWJiYXItaGVpZ2h0O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBhZGRpbmc6IDAgMXJlbSAwIDNyZW07XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG4gICAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICAgY29sb3I6ICRsaWdodC1ncmF5O1xuICAgIH1cbiAgICAmOi1tb3otcGxhY2Vob2xkZXIgeyAvKiBGaXJlZm94IDE4LSAqL1xuICAgICAgIGNvbG9yOiAkbGlnaHQtZ3JheTsgIFxuICAgIH1cbiAgICAmOjotbW96LXBsYWNlaG9sZGVyIHsgIC8qIEZpcmVmb3ggMTkrICovXG4gICAgICAgY29sb3I6ICRsaWdodC1ncmF5OyAgXG4gICAgfVxuICAgICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHsgIFxuICAgICAgIGNvbG9yOiAkbGlnaHQtZ3JheTsgIFxuICAgIH1cbn1cblxuLmhlYWRlci1zZWFyY2ggLmlucHV0LXNlYXJjaCAuaWNvbi1zZWFyY2gtYm94IHtcbiAgICBmaWxsOiAkbGlnaHQtZ3JheTtcbiAgICBoZWlnaHQ6IHJlbS1jYWxjKDIyKTtcbiAgICB3aWR0aDogcmVtLWNhbGMoMjIpO1xuICAgIG1hcmdpbi10b3A6IC0ocmVtLWNhbGMoMTEpKTtcbiAgICBsZWZ0OiAwLjdyZW07XG59XG5cbi5qcy1oZWFkZXItc2VhcmNoLWJ1dHRvbi1zaG93LFxuLmpzLWhlYWRlci1zZWFyY2gtYnV0dG9uLWtpbGwge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAkdGFiYmFyLWhlaWdodDtcbiAgICB3aWR0aDogMS44cmVtO1xuICAgIHN2ZyB7XG4gICAgICAgIGhlaWdodDogcmVtLWNhbGMoMjIpO1xuICAgICAgICB3aWR0aDogcmVtLWNhbGMoMjIpO1xuICAgIH1cbn1cblxuLy8gaGlkZSB4IGJ5IGRlZmF1bHRcbi5qcy1oZWFkZXItc2VhcmNoLWJ1dHRvbi1raWxsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItc2VhcmNoLWJnO1xuICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICB9XG59XG5cbi5oZWFkZXItc2VhcmNoIHtcbiAgICBAaW5jbHVkZSBmbGV4KCk7IC8vIHZlcnkgaW1wb3J0YW50LCBtYWtlcyB0aGUgc2VhcmNoIGV4cGFuZCB0byBmaWxsIGF2YWlsYWJsZSBzcGFjZVxuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgQGluY2x1ZGUgdG8oYnAtbWVkaXVtKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgLy8gYWx3YXlzIGhpZGUgb24gc21hbGxcbiAgICB9XG59XG5cbi50YWItYmFyLmhhcy1zZWFyY2gtYm94IHtcblxuICAgIC8vIHNob3cgdGhlIHNlYXJjaCBib3ggYW5kIGhpZGUgdGhlIG5hdlxuICAgIC5oZWFkZXItc2VhcmNoIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgfVxuXG4gICAgLmhlYWRlci1saW5rcyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLmpzLWhlYWRlci1zZWFyY2gtYnV0dG9uLXNob3cge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5qcy1oZWFkZXItc2VhcmNoLWJ1dHRvbi1raWxsIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgICAubmF2LWhvbWV7XG4gICAgICAgIGRpc3BsYXk6bm9uZTtcbiAgICB9XG5cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gT2ZmLWNhbnZhcyBvdmVycmlkZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLnJpZ2h0LW9mZi1jYW52YXMtdG9nZ2xlIHtcbiAgICBwYWRkaW5nOiAwIHJlbS1jYWxjKDE1KSAwIHJlbS1jYWxjKDEwKTtcbn1cblxuLy8gcG9zaXRpb24gWCBidXR0b24gaW4gb2ZmLWNhbnZhc1xuLnJpZ2h0LW9mZi1jYW52YXMtbWVudSAucmlnaHQtb2ZmLWNhbnZhcy10b2dnbGUge1xuICAgIHBhZGRpbmc6IHJlbS1jYWxjKDE3KSByZW0tY2FsYygxNSk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIEBpbmNsdWRlIHotaW5kZXg7XG59XG5cbi5yaWdodC1vZmYtY2FudmFzLW1lbnUgaW5wdXRbdHlwZT1cInRleHRcIl0ge1xuICAgIHdpZHRoOiAyMjBweDtcbn1cblxudWwub2ZmLWNhbnZhcy1saXN0IHtcbiAgICBsaSBhOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgfVxuICAgIGxpIGxhYmVsIHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgIH1cbiAgICBsaSBsYWJlbC5vZmYtY2FudmFzLWhlYWRpbmcge1xuICAgICAgICBAaW5jbHVkZSBmbGV4Ym94O1xuICAgICAgICBAaW5jbHVkZSBhbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgICAgICBoZWlnaHQ6ICR0YWJiYXItaGVpZ2h0OyAvLyBzYW1lIGFzIHRhYmJhclxuICAgIH1cbiAgICAvLyBUT0RPOiBNb3ZlIHRoZXNlIG92ZXJyaWRlcyB0byBfZm9ybSBvciBtb3ZlIF9mcm9tIHNjc3MgaGVyZVxuICAgIC5pbnB1dC1zZWFyY2ggLmljb24tc2VhcmNoLWJveCB7XG4gICAgICAgIGxlZnQ6IDEuNXJlbTtcbiAgICB9XG59XG5cbi8vIGlmIG9uIGdlbmVyaWMgcGFnZSwgd2Ugb25seSBoYXZlIHRoZSBnbG9iYWwgbGlua3Ncbi8vIG5vIHNlYXJjaCwgc28gd2UgbmVlZCB0byBzcGFjZSBzdHVmZiBvdXQgZGlmZmVyZW50bHlcbi5vZmYtY2FudmFzLWdlbmVyaWMgPiBsaTpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luOiByZW0tY2FsYygxNSkgMCByZW0tY2FsYygxMCkgMDtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gTWVudSAoZmlyc3QgbWVudSB5b3Ugc2VlIG9uIGhhbWJ1cmdlciBjbGljaylcblxuLy8gaGlkZSB0aGUgYXJyb3cgb24gbGVmdCBvZiBtZW51IGl0ZW1cbi5yaWdodC1vZmYtY2FudmFzLW1lbnUgdWwub2ZmLWNhbnZhcy1saXN0IGxpLmhhcy1zdWJtZW51ID4gYTpiZWZvcmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vIHB1dCB0aGUgYXJyb3cgb24gdGhlIHJpZ2h0XG4ucmlnaHQtb2ZmLWNhbnZhcy1tZW51IHVsLm9mZi1jYW52YXMtbGlzdCBsaS5oYXMtc3VibWVudSA+IGE6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiwrtcIjtcbiAgICBtYXJnaW4tbGVmdDogMC4zcmVtO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTdWJtZW51IChzZWNvbmQgbWVudSBpZiB5b3UgZHJpbGwgZG93biBvbmUgbGV2ZWwpXG5cblxuLy8gaGlkZSBjb250ZW50IHNvIGl0IGNhbid0IGJlIHNlbGVjdGVkIHdoZW4gY2xvc2VkXG4ucmlnaHQtc3VibWVudSB7XG4gICAgJjpub3QoLm1vdmUtbGVmdCkge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2UtaW4tb3V0IDBzLCB2aXNpYmlsaXR5IDBzIGxpbmVhciAwLjVzO1xuICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2UtaW4tb3V0IDBzLCB2aXNpYmlsaXR5IDBzIGxpbmVhciAwLjVzO1xuICAgICAgICAtbW96LXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2UtaW4tb3V0IDBzLCB2aXNpYmlsaXR5IDBzIGxpbmVhciAwLjVzO1xuICAgICAgICAtby10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBlYXNlLWluLW91dCAwcywgdmlzaWJpbGl0eSAwcyBsaW5lYXIgMC41cztcbiAgICB9XG5cbiAgICAmLm1vdmUtbGVmdCB7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuXG4gICAgaDYge1xuICAgICAgICBjb2xvcjogJGxpZ2h0LWdyYXk7XG4gICAgICAgIHBhZGRpbmc6IDAuM3JlbSAwLjkzNzVyZW0gMCAwLjkzNzVyZW07XG4gICAgfVxufVxuXG4vLyBraWxsIGFueSBidWxsZXRzIGJ1dCBrZWVwIGluZGVudGluZ1xuLnJpZ2h0LXN1Ym1lbnUgdWwge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbn1cblxuLy8gc2V0IGhlaWdodCBvZiBiYWNrIGJhclxuLnJpZ2h0LXN1Ym1lbnUgLmJhY2sgPiBhIHtcbiAgICBwYWRkaW5nOiAwLjc1cmVtIHJlbS1jYWxjKDE1KTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGNvbG9yOiAkbGlnaHQtZ3JheTtcbiAgICBmb250LXNpemU6IDEzcHg7XG59XG5cbi8vIGhpZGUgdGhlIGFycm93IG9uIHRoZSByaWdodCBvZiB0aGUgbWVudSBpdGVtXG4ucmlnaHQtc3VibWVudSAuYmFjayA+IGE6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vIHB1dCB0aGUgYXJyb3cgb24gdGhlIGxlZnRcbi5yaWdodC1zdWJtZW51IC5iYWNrID4gYTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiwqtcIjtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuM3JlbTtcbn1cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyAgIGxpbmsgdG8gSG9tZSBWZXJ0aWNhbHMgICBcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4ubmF2LWhvbWV7XG5cbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjYWRkO1xufVxuLm5hdi1ob21lOmhvdmVyIHsgXG4gICAgY29sb3I6ICNGRkZGRkYgXG59XG4vLyBUaGlzIHdhcyBjcmVhdGVkIHRvIGhpZGUgXG4uaGlkZS1mb3ItbWlkLWxhcmdle1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1heC13aWR0aDogNzQuOTM3NWVtKXtcbiAgICAgICAgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaGVtaW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gZGFyay1oZWFkZXIoKSB7XG4gICAgLmRhcmsge1xuICAgICAgICAudG9wLWJhci1zZWN0aW9uIHVsIHtcbiAgICAgICAgICAgIGxpOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9wYmFyLWJnLWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxLjA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKmRvY1xuLS0tXG50aXRsZTogU3ViIE5hdlxubmFtZTogYS1zdWItbmF2XG5jYXRlZ29yeTogTmF2aWdhdGlvbiAtIFN1YiBOYXZcbnNlbGVjdG9yczpcbiAgICAtIC5zdWItbmF2XG4tLS1cblxuV2UgYXJlIG5vdCB1c2luZyBGb3VuZGF0aW9uJ3Mgc3ViLW5hdiwgdGhpcyBpcyBvdXIgb3duLiBXZSBhcmUgYWxzbyBydW5uaW5nIHRoZSBSZXNwb25zaXZlXG5OYXYgalF1ZXJ5IHBsdWdpbiBvbiBpdCBhcyB3ZWxsIHRvIHN1Y2sgYW55IG92ZXJmbG93aW5nIG5hdiBpdGVtcyBpbnRvIGEgZHJvcGRvd25cbm1lbnUuIChTZWUgW1N1YiBOYXZdW2pxdWVyeS1wbHVnaW5zLXJlc3BvbnNpdmUtbmF2XSkgTm90ZSB0aGF0IHdlIGFyZVxuZGVwZW5kaW5nIG9uIEZvdW5kYXRpb24gZm9yIHRoZSBkcm9wZG93biBmdW5jdGlvbmFsaXR5IGl0c2VsZiAoaHR0cDovL2ZvdW5kYXRpb24uenVyYi5jb20vZG9jcy9jb21wb25lbnRzL2Ryb3Bkb3duLmh0bWwpLlxuXG5Ob3RpY2UgdGhhdCBhdCB0aGUgc21hbGwgYnJlYWtwb2ludCwgdGhlIGFjdGl2ZSBzdWItbmF2IGl0ZW0gZ2V0cyBhdXRvbWF0aWNhbGx5IHJlLW9yZGVyZWQgdG9cbnRoZSBmcm9udCBvZiB0aGUgbGlzdCAodXNpbmcgZmxleGJveCkgc28gdGhhdCB0aGUgc2VsZWN0ZWQgaXRlbSBpcyBuZXZlciBoaWRkZW5cbmluc2lkZSB0aGUgZHJvcGRvd24uICBZb3UgY2FuIGRpc2FibGUgdGhpcyBiZWhhdmlvciBieSBhZGRpbmcgdGhlIG9wdGlvbmFsICduby1yZW9yZGVyJ1xuY2xhc3MgdG8gdGhlICcuc3ViLW5hdi1saW5rcycgbGlzdCBlbGVtZW50LlxuXG5gYGBodG1sX2V4YW1wbGU/a2l0Y2hlbi1zaW5rPXRydWVcbjxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwic21hbGwtMTIgY29sdW1uc1wiPlxuICAgICAgICA8ZGl2IGlkPVwic3ViLW5hdi1leGFtcGxlLTFcIiBjbGFzcz1cInN1Yi1uYXZcIj5cbiAgICAgICAgICAgIDx1bCBjbGFzcz1cInN1Yi1uYXYtbGlua3NcIj5cbiAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIvbW9ja3MvcGFnZXMvbW9uZXkvY2FyZWVycy9qb2JzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5PdmVydmlldzwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiYWN0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIvbW9ja3MvcGFnZXMvbW9uZXkvY2FyZWVycy9qb2JzL3NhbGFyeS5odG1sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5TYWxhcnk8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIi9tb2Nrcy9wYWdlcy9tb25leS9jYXJlZXJzL2pvYnMvcSZhbXA7YS5odG1sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5RJmFtcDtBPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIvbW9ja3MvcGFnZXMvbW9uZXkvY2FyZWVycy9qb2JzL3Jldmlld3MuaHRtbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+UmV2aWV3czwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiL21vY2tzL3BhZ2VzL21vbmV5L2NhcmVlcnMvam9icy9qb2ItbGlzdGluZ3MuaHRtbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+Sm9iIExpc3RpbmdzPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJtb3JlIGlzLWhpZGRlblwiIGRhdGEtZHJvcGRvd249XCJtb3JlLWRyb3Bkb3duLTFcIiBhcmlhLWNvbnRyb2xzPVwibW9yZS1kcm9wZG93bi0xXCIgYXJpYS1leHBhbmRlZD1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5Nb3JlICYjeDI1YmU7PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgaWQ9XCJtb3JlLWRyb3Bkb3duLTFcIiBjbGFzcz1cInN1Yi1uYXYtZHJvcGRvd24gZi1kcm9wZG93biB0aW55XCIgZGF0YS1kcm9wZG93bi1jb250ZW50IGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPHVsPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbmBgYFxuXG5gYGBqc19leGFtcGxlXG4kKCcjc3ViLW5hdi1leGFtcGxlLTEgLnN1Yi1uYXYtbGlua3MnKS5yZXNwb25zaXZlTmF2KCk7XG5gYGBcbiovXG5cbi8vIG1vYmlsZVxuJHN1Yi1uYXYtaGVpZ2h0OiByZW0tY2FsYygzOCk7XG4kc3ViLW5hdi1oZWlnaHQtbWlub3I6IHJlbS1jYWxjKDM0KTsgLy8gYSB0aWdodGVyIHN1Ym5hdlxuJHN1Yi1uYXYtYm9yZGVyLXRoaWNrbmVzczogMnB4O1xuJHN1Yi1uYXYtZm9udC1zaXplOiAkdGV4dC1zbWFsbDsgLy8gMTRweFxuJHN1Yi1uYXYtc3BhY2luZzogcmVtLWNhbGMoMzApO1xuXG4vLyBsYXJnZVxuJHN1Yi1uYXYtaGVpZ2h0LWxhcmdlOiByZW0tY2FsYyg2Myk7XG4kc3ViLW5hdi1mb250LXNpemUtbGFyZ2U6ICR0ZXh0LWxhcmdlOyAvLyAxOHB4XG4kc3ViLW5hdi1zcGFjaW5nLWxhcmdlOiByZW0tY2FsYyg0MCk7XG5cbi5zdWItbmF2IHtcbiAgICBAaW5jbHVkZSBmbGV4Ym94O1xuICAgIEBpbmNsdWRlIGFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgQGluY2x1ZGUganVzdGlmeS1jb250ZW50KGJldHdlZW4pO1xuXG4gICAgLXdlYmtpdC1mbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcblxuICAgIGhlaWdodDogJHN1Yi1uYXYtaGVpZ2h0O1xuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgaGVpZ2h0OiAkc3ViLW5hdi1oZWlnaHQtbGFyZ2U7XG4gICAgfVxuXG4gICAgJi5taW5vciB7XG4gICAgICAgIGhlaWdodDogJHN1Yi1uYXYtaGVpZ2h0LW1pbm9yO1xuICAgIH1cbiAgICBib3JkZXItYm90dG9tOiAkc3ViLW5hdi1ib3JkZXItdGhpY2tuZXNzIHNvbGlkICRnYWluc2Jvcm87XG59XG5cbi5zdWItbmF2LWxpbmtzIHtcbiAgICBAaW5jbHVkZSBmbGV4Ym94O1xuICAgIEBpbmNsdWRlIGZsZXgoMCwgMSwgYXV0byk7XG5cbiAgICAtd2Via2l0LWZsZXgtd3JhcDogbm93cmFwO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuXG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICB3aWR0aDogMTAwJTsgLy8gdHJ5IHRvIGZpbGwgd2hhdGV2ZXIgc3BhY2Ugd2UgaGF2ZVxuICAgIG1hcmdpbjogMDtcblxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgICBsaSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgoMCwgMCwgYXV0byk7XG5cbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcblxuICAgICAgICBoZWlnaHQ6ICRzdWItbmF2LWhlaWdodDtcbiAgICAgICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICAgICAgaGVpZ2h0OiAkc3ViLW5hdi1oZWlnaHQtbGFyZ2U7XG4gICAgICAgIH1cblxuICAgICAgICBsaW5lLWhlaWdodDogJHN1Yi1uYXYtaGVpZ2h0O1xuICAgICAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHN1Yi1uYXYtaGVpZ2h0LWxhcmdlO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1pbm9yICYge1xuICAgICAgICAgICAgaGVpZ2h0OiAkc3ViLW5hdi1oZWlnaHQtbWlub3I7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJHN1Yi1uYXYtaGVpZ2h0LW1pbm9yO1xuICAgICAgICB9XG5cbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkc3ViLW5hdi1zcGFjaW5nO1xuXG4gICAgICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHN1Yi1uYXYtc3BhY2luZy1sYXJnZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxpOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuXG4gICAgbGkuYWN0aXZlIHtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBjb2xvcjogJGFsdW1pbnVtO1xuICAgICAgICB9XG5cbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHN1Yi1uYXYtYm9yZGVyLXRoaWNrbmVzcyBzb2xpZCAkbGluay1ibHVlLWxpZ2h0O1xuXG4gICAgICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRzdWItbmF2LWJvcmRlci10aGlja25lc3Mgc29saWQgJGxpbmstYmx1ZS1saWdodDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFVubGVzcyB0aGVyZSBpcyBhICcubm8tcmVvcmRlcicgY2xhc3Mgb24gdGhlIHBhcmVudCwgbW92ZSBhY3RpdmUgbmF2IGl0ZW1cbiAgICAvLyB0byB0aGUgZnJvbnQgd2hlbiBvbiBzbWFsbCBkZXZpY2VzLlxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgICAgICY6bm90KC5uby1yZW9yZGVyKSB7XG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgb3JkZXI6IDI7IC8vIGluIHNtYWxsLCBub24tYWN0aXZlIGxpbmtzIGFyZSBuZXZlciBpbiBwb3NpdGlvbiAxXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxpLmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgb3JkZXI6IDE7IC8vIHB1YiBhY3RpdmUgaXRlbSBpbiBwb3NpdGlvbiAxXG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkc3ViLW5hdi1zcGFjaW5nOyAvLyBpbiBjYXNlIHRoZSBsYXN0IGNoaWxkIGJlY29tZXMgdGhlIGZpcnN0XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zdWItbmF2LWRyb3Bkb3duIHtcbiAgICBAaW5jbHVkZSB6LWluZGV4O1xuXG4gICAgYm94LXNoYWRvdzogMCAwIDAuMjVyZW0gMCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgbWFyZ2luLXRvcDogLSRzdWItbmF2LWJvcmRlci10aGlja25lc3M7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICBwYWRkaW5nLWxlZnQ6ICgkc3ViLW5hdi1oZWlnaHQtbGFyZ2UgLSAkdGV4dC1ub3JtYWwpIC8gMjtcbiAgICBwYWRkaW5nLXJpZ2h0OiAoJHN1Yi1uYXYtaGVpZ2h0LWxhcmdlIC0gJHRleHQtbm9ybWFsKSAvIDI7XG4gICAgcGFkZGluZy10b3A6ICgkc3ViLW5hdi1oZWlnaHQtbGFyZ2UgLSAkdGV4dC1ub3JtYWwpIC8gMjtcblxuICAgIHVsIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgICBmb250LXNpemU6ICR0ZXh0LW5vcm1hbDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogKCRzdWItbmF2LWhlaWdodC1sYXJnZSAtICR0ZXh0LW5vcm1hbCkgLyAyO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICRsaW5rLWJsdWUtbGlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgYTpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJGxpbmstYmx1ZS1kYXJrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbGkuYWN0aXZlIGEge1xuICAgICAgICBjb2xvcjogJGFsdW1pbnVtO1xuICAgIH1cblxuICAgIGxpOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICB9XG59XG5cbi5zdWItbmF2LWRyb3Bkb3duLS1yaWdodC1hbGlnbmVkIHtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDEwcHggIWltcG9ydGFudDtcbiAgICB6LWluZGV4OiA5OTk7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIHJpZ2h0OiA4cHggIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIHJpZ2h0OiA3cHggIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi8vIFN0eWxpbmcgZm9yIHN0aWNreSBjb250YWluZXIgd2hlbiBzdWItbmF2IHNob3VsZCBiZSBzdGlja3kuXG4uc3ViLW5hdi1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIHotaW5kZXg7XG4gICAgYmFja2dyb3VuZDogI0ZGRkZGRjtcblxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAvLyBCZWNhdXNlIHRoZSBzdWItbmF2IGxpbmtzIHVzZSBib3gtc2l6aW5nIGNvbnRlbnQtYm94IHdoZW4gZHJhd2luZ1xuICAgIC8vIHRoZWlyIGFjdGl2ZSBib3R0b20gYm9yZGVycywgd2UgYWRkIGEgbGl0dGxlIHBhZGRpbmcgYWJvdmUgdGhlbSB0b1xuICAgIC8vIGtlZXAgdGhlIHZlcnRpY2FsIGNlbnRlcmluZyBsb29raW5nIGJhbGFuY2VkLlxuICAgIHBhZGRpbmctdG9wOiAkc3ViLW5hdi1ib3JkZXItdGhpY2tuZXNzO1xuXG4gICAgLy8gRml4ZWQgaGVpZ2h0IG1hdGNoaW5nIGl0ZW0gaGVpZ2h0IHNvIHRoYXQgYm90dG9tIGJvcmRlcnMgb2YgY29udGFpbmVyIGFuZFxuICAgIC8vIG5hdiBpdGVtcyBvdmVybGFwIGV4YWN0bHksIGZvciBoaWdobGlnaHRpbmcgZWZmZWN0LlxuICAgIGhlaWdodDogJHN1Yi1uYXYtaGVpZ2h0O1xuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgaGVpZ2h0OiAkc3ViLW5hdi1oZWlnaHQtbGFyZ2U7XG4gICAgfVxuXG4gICAgLy8gU28gdGhhdCBpdGVtIGJvdHRvbSBib3JkZXJzIHdpbGwgc2hvdyB1cCBvdmVyIHRoaXMgYm90dG9tIGJvcmRlciwgYWxsb3dpbmdcbiAgICAvLyB0aGUgaGlnaGxpZ2h0aW5nIHVuZGVybGluZSBlZmZlY3QuXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi5zdWItbmF2LWNvbnRhaW5lci5zY3JvbGwtdG8tZml4ZWQtZml4ZWQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBib3JkZXItYm90dG9tOiAkc3ViLW5hdi1ib3JkZXItdGhpY2tuZXNzIHNvbGlkICRnYWluc2Jvcm87XG59XG5cbi8vIFN0eWxpbmcgZm9yIHNlYXJjaCBib3ggaW4gdGhlIG9wdGlvbmFsIHJpZ2h0LXNpemUgem9uZSBvZiB0aGUgc3ViIG5hdi5cbi8vIFRPRE86IE1ha2UgdGhlIHNlYXJjaCBib3ggYSBjb21wb25lbnQgb2YgaXRzIG93biBhbmQgYnJlYWsgdGhpcyBzdHlsaW5nIG91dFxuLy8gdG8gYSBzZXBhcmF0ZSBmaWxlLlxuLnN1Yi1uYXYtc2VhcmNoIHtcbiAgICBAaW5jbHVkZSBmbGV4KDAsIDEsIGF1dG8pO1xuXG4gICAgbWluLXdpZHRoOiByZW0tY2FsYygyNzApO1xuICAgIG1hcmdpbi1sZWZ0OiAkc3ViLW5hdi1zcGFjaW5nO1xuXG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICBtYXJnaW4tbGVmdDogJHN1Yi1uYXYtc3BhY2luZy1sYXJnZTtcbiAgICB9XG59XG4uc3ViLW5hdi1idXR0b24gYSB7XG4gICAgbWluLXdpZHRoOiByZW0tY2FsYygyMDApO1xuICAgIG1hcmdpbi10b3A6IDE4cHg7IC8vIHRoaXMgaXMgc3R1cGlkIGFuZCB0aGUgcmVhc29uIHdlIG5lZWQgdG8gcmVmYWN0b3Jcbn1cblxuLnN1Yi1uYXYtc2VhcmNoLW1vYmlsZSB7XG4gICAgQGluY2x1ZGUgei1pbmRleDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgbGVmdDogNSU7XG4gICAgYm90dG9tOiAxMHB4O1xuICAgIHdpZHRoOiA5MCU7XG4gICAgYSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBTdWIgTmF2IEVkaXRvcmlhbFxubmFtZTogYi1zdWItbmF2LWVkaXRvcmlhbFxuY2F0ZWdvcnk6IE5hdmlnYXRpb24gLSBTdWIgTmF2XG5zZWxlY3RvcnM6XG4gICAgLSAuc3ViLW5hdi5lZGl0b3JpYWxcbi0tLVxuXG5Gb3IgdXNlIGluc2lkZSBvZiBhbiBlZGl0b3JpYWwuIEFkZCB0aGUgY2xhc3MgYC5lZGl0b3JpYWxgXG5cblRoZSBmaXJzdCBpdGVtIGluIHRoZSBsaXN0IGlzIGRlc2NyaWJlcyB0aGUgZ3JvdXAgYW5kIHRoZXJlIGFyZSBib3JkZXJzIG9uIHRvcCBhbmQgYm90dG9tLlxuXG5UaGUgbmF2IGl0ZW1zIGFyZSBzcHJlYWQgYWNyb3NzIGNlbnRlcmVkIGFsb25nIHRoZSBuYXZiYXJcblxuYGBgaHRtbF9leGFtcGxlP2tpdGNoZW4tc2luaz10cnVlXG48ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgPGRpdiBjbGFzcz1cInNtYWxsLTEyIGNvbHVtbnNcIj5cbiAgICAgICAgPGRpdiBpZD1cInN1Yi1uYXYtZXhhbXBsZS0yXCIgY2xhc3M9XCJzdWItbmF2IGVkaXRvcmlhbFwiPlxuICAgICAgICAgICAgPHVsIGNsYXNzPVwic3ViLW5hdi1saW5rc1wiPlxuICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+T3ZlcnZpZXc8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIvbW9ja3MvcGFnZXMvbW9uZXkvY2FyZWVycy9qb2JzL3NhbGFyeS5odG1sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5TYWxhcnk8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIi9tb2Nrcy9wYWdlcy9tb25leS9jYXJlZXJzL2pvYnMvcSZhbXA7YS5odG1sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5RJmFtcDtBPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIvbW9ja3MvcGFnZXMvbW9uZXkvY2FyZWVycy9qb2JzL3Jldmlld3MuaHRtbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+UmV2aWV3czwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiL21vY2tzL3BhZ2VzL21vbmV5L2NhcmVlcnMvam9icy9qb2ItbGlzdGluZ3MuaHRtbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+Sm9iIExpc3RpbmdzPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJtb3JlIGlzLWhpZGRlblwiIGRhdGEtZHJvcGRvd249XCJtb3JlLWRyb3Bkb3duLTJcIiBhcmlhLWNvbnRyb2xzPVwibW9yZS1kcm9wZG93bi0yXCIgYXJpYS1leHBhbmRlZD1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjXCI+PHNwYW4+TW9yZSAmI3gyNWJlOzwvc3Bhbj48L2E+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgaWQ9XCJtb3JlLWRyb3Bkb3duLTJcIiBjbGFzcz1cInN1Yi1uYXYtZHJvcGRvd24gZi1kcm9wZG93biB0aW55XCIgZGF0YS1kcm9wZG93bi1jb250ZW50IGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPHVsPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbmBgYFxuXG5gYGBqc19leGFtcGxlXG4kKCcjc3ViLW5hdi1leGFtcGxlLTIgLnN1Yi1uYXYtbGlua3MnKS5yZXNwb25zaXZlTmF2KCk7XG5gYGBcbiovXG5cbi5zdWItbmF2LmVkaXRvcmlhbCB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRnYWluc2Jvcm87XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRnYWluc2Jvcm87XG59XG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBTdWIgTmF2IE1pbm9yXG5uYW1lOiBjLXN1Yi1uYXYtbWlub3JcbmNhdGVnb3J5OiBOYXZpZ2F0aW9uIC0gU3ViIE5hdlxuc2VsZWN0b3JzOlxuICAgIC0gLnN1Yi1uYXYubWlub3Jcbi0tLVxuXG5Tb21ldGltZXMgeW91IGhhdmUgeWV0IGFub3RoZXIgc3ViLW5hdiBpbnNpZGUgdGhlIGNvbnRlbnQgb2YgeW91ciBwYWdlLiBJdCBpcyBhIGJpdCB0aWdodGVyLlxuXG5gYGBodG1sX2V4YW1wbGVcbjxkaXYgY2xhc3M9XCJmbGV4LXJvdyBibG9jay1sb29zZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdWItbmF2IG1pbm9yXCI+XG4gICAgICAgICAgICA8dWwgY2xhc3M9XCJzdWItbmF2LWxpbmtzIG5vLXJlb3JkZXJcIj5cbiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJhY3RpdmVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPk92ZXJ2aWV3PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5TYWxhcnk8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlEmQTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiI1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+UmV2aWV3czwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiI1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+Sm9iIExpc3RpbmdzPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5gYGBcbiovXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBTY3JvbGxpbmcgU3ViIE5hdlxubmFtZTogYi1zdWItbmF2LW1pbm9yXG5jYXRlZ29yeTogTmF2aWdhdGlvbiAtIFN1YiBOYXZcbnNlbGVjdG9yczpcbiAgICAtIC5zY3JvbGxpbmctc3ViLW5hdlxudGVtcGxhdGU6XG4gICAgc3VibmF2U2Nyb2xsaW5nOlxuICAgICAgICBpdGVtczpcbiAgICAgICAgLSAgIGFjdGl2ZTogdHJ1ZVxuICAgICAgICAgICAgbmFtZTogT3ZlcnZpZXdcbiAgICAgICAgICAgIHVybDogXCIjXCJcbiAgICAgICAgLSAgIGFjdGl2ZTogZmFsc2VcbiAgICAgICAgICAgIG5hbWU6IEludGVyYWN0aXZlIENoYXJ0XG4gICAgICAgICAgICB1cmw6IFwiI1wiXG4gICAgICAgIC0gICBhY3RpdmU6IGZhbHNlXG4gICAgICAgICAgICBuYW1lOiBQZXJmb3JtYW5jZVxuICAgICAgICAgICAgdXJsOiBcIiNcIlxuICAgICAgICAtICAgYWN0aXZlOiBmYWxzZVxuICAgICAgICAgICAgbmFtZTogSG9sZGluZ3NcbiAgICAgICAgICAgIHVybDogXCIjXCJcbiAgICAgICAgLSAgIGFjdGl2ZTogZmFsc2VcbiAgICAgICAgICAgIG5hbWU6IENvc3RzIGFuZCBGZWVzXG4gICAgICAgICAgICB1cmw6IFwiI1wiXG4gICAgICAgIC0gICBhY3RpdmU6IGZhbHNlXG4gICAgICAgICAgICBuYW1lOiBSaXNrXG4gICAgICAgICAgICB1cmw6IFwiI1wiXG4tLS1cblxuVGhpcyBzdWJuYXYgaXMgZ2VuZXJhbGx5IHRoZSBzYW1lIGFzIHRoZSBmaXJzdCBvbmUsIGV4Y2VwdCB0aGF0IGl0IGRvZXNuJ3QgdXNlIEpTIHRvIHNvYWsgb3ZlcmZsb3dpbmdcbml0ZW1zIGludG8gYSBcIk1vcmVcIiBtZW51LiAgV2hlbiB0aGVyZSBhcmUgdG9vIG1hbnkgaXRlbXMsIHRoZSB1c2VyIGNhbiBzY3JvbGwgaG9yaXpvbnRhbGx5LCBnZW5lcmFsbHlcbmJlc3QgZm9yIHRvdWNoIGRldmljZXMuXG5cbk5vdGUgdGhhdCB0aGlzIGNvbXBvbmVudCBoYXMgaXRzIG93biBkYXRhIG9iamVjdCwgYHN1Ym5hdlNjcm9sbGluZ2AsIGJ1dCBieSBkZWZhdWx0IGl0IHB1bGxzIGl0cyBpdGVtc1xuZnJvbSB0aGUgYHN1Ym5hdmAgdmFyaWFibGUsIGZvciBjb21wYXRpYmlsaXR5IHdpdGggdGhlIHByZXZpb3VzIHN1Ym5hdi5cblxueyUgc2V0IGVkaXRvcl9pZCA9IHV1aWQoKSAlfVxuXG5gYGBudW5qdWNrc190YWI/ZWRpdG9yLWlkPXt7ZWRpdG9yX2lkfX1cbnslIGluY2x1ZGUgXCJ0ZW1wbGF0ZXMvY29tbW9uL3N1Yi1uYXYvc2Nyb2xsaW5nLm51bmpcIiAlfVxuYGBgXG4qL1xuXG4uc2Nyb2xsaW5nLXN1Yi1uYXYuc3ViLW5hdi1jb250YWluZXIge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAuc3ViLW5hdi1zY3JvbGxlciB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICB9XG4gICAgLnN1Yi1uYXYtYm9yZGVyIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNEREREREQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG4gICAgLnN1Yi1uYXYge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAvL21hcmdpbi1ib3R0b206IC0ycHg7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICAvL2dpdmUgdGhlIHNjcm9sbGluZyBhcmVhIHNvbWUgcGFkZGluZyBvbiB0aGUgcmlnaHQgc2lkZVxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICAgICAgICAvLyB0aGlzIHByZXZlbnRzIGV4dHJhIHNwYWNlIGJlbG93IHRoaXMgZWxlbWVudCwgZ2l2ZW4gdGhhdCB3ZSBoYXZlIGRpc3BsYXk6IGlubGluZS1ibG9ja1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXG4gICAgICAgIC5zdWItbmF2LWxpbmtzIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjREREREREO1xuICAgICAgICAgICAgLy8gdG8gZW5zdXJlIHRoYXQgdGhlIGJsdWUgXCJhY3RpdmVcIiBib3JkZXIgb24gdGhlIGxpbmtzIG92ZXJsYXBzIHRoZSBncmF5IGJvcmRlciBzcGFubmluZyB0aGUgc3VibmF2XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAtMnB4O1xuICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG5cbiAgICAgICAgICAgIGxpLmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLTJweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuc3ViLW5hdi1yaWdodCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRvcDogMTVweDtcbiAgICB9XG5cbiAgICBAbWl4aW4gc3VibmF2LWZhZGUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgdG9wOiAwO1xuXG4gICAgICAgIHdpZHRoOiAyNXB4O1xuICAgICAgICBoZWlnaHQ6IDQwcHg7ICAgICAgICBcbiAgICB9XG4gICAgLmZhZGUtbGVmdCB7XG4gICAgICAgIEBpbmNsdWRlIHN1Ym5hdi1mYWRlO1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LDI1NSwyNTUsMSkgMCUsIHJnYmEoMjU1LDI1NSwyNTUsMCkgMTAwJSk7XG4gICAgICAgIGxlZnQ6IDBweDtcbiAgICB9XG4gICAgLmZhZGUtcmlnaHQge1xuICAgICAgICBAaW5jbHVkZSBzdWJuYXYtZmFkZTtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsIHJnYmEoMjU1LDI1NSwyNTUsMSkgMCUsIHJnYmEoMjU1LDI1NSwyNTUsMCkgMTAwJSk7XG4gICAgICAgIHJpZ2h0OiAwcHg7XG4gICAgfVxuICAgICYuc2Nyb2xsLWJlZ2lubmluZyAuZmFkZS1sZWZ0LFxuICAgICYuc2Nyb2xsLWVuZCAuZmFkZS1yaWdodCwge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC8vIHNjcm9sbHRvZml4ZWQgcGx1Z2luIGNyZWF0ZXMgYSBzcGFjZXIgYXMgYSBzaWJsaW5nXG4gICAgLy8gaGlkZSBpdCB1bnRpbCBKUyBtYWtlcyBpdCBkaXNwbGF5OiBibG9ja1xuICAgICsgLmlkLWxlc3Mtc3RpY2t5IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG4vLyB3ZSBoYXZlIHRvIGNsZWFyIHRoZSBib3JkZXIgd2hlbiB0aGUgc3VibmF2IGlzIHN0aWNraW5nIGVsc2Ugd2UgZ2V0IGRvdWJsZSBib3JkZXJzXG4uc2Nyb2xsLXRvLWZpeGVkLWZpeGVkIHtcbiAgICAuc3ViLW5hdi1zY3JvbGxlciB7XG4gICAgICAgIC8vIHRoaXMgbWFrZXMgdGhlIGJvcmRlci1ib3R0b20gZmx1c2ggd2l0aCB0aGUgcGFyZW50XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC0ycHg7XG5cbiAgICAgICAgLy8gaGVyZSB3ZSByZXNldCBhIGJ1bmNoIG9mIHRoZSBib3JkZXIgc3R1ZmYgYmVjYXVzZSB0aGUgc3VibmF2IGNvbnRhaW5lciBoYXMgYSBib3JkZXItYm90dG9tXG4gICAgICAgIC8vICB0aGF0IHNwYW5zIHRoZSBlbnRpcmUgd2lkdGggb2YgdGhlIGRvY3VtZW50LCBidXQgb25seSBvbiBzdGlja3ktbW9kZVxuICAgICAgICAuc3ViLW5hdi1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG4gICAgICAgIC5zdWItbmF2IHtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIC8vbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgICAgICAgLnN1Yi1uYXYtbGlua3Mge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIHRoaXMgcG9zaXRpb25zIHRoZSBqdW1wIHRhcmdldHMgYSBsaXR0bGUgYWJvdmUgdGhlIGFyZWEgdGhleSdkIG5vcm1hbGx5IGJlIHBsYWNlZCBiZWNhdXNlIHRoZSBzdWJuYXZcbi8vICAgc3RpY2tzIGFuZCBjb3ZlcnMgdGhlIHVwcGVyIHBhcnQgb2YgdGhlIHNjcmVlbiwgdGh1cyB3ZSBuZWVkIHRvIG9mZnNldCBpdCBhIGxpdHRsZSBiaXRcbi5qdW1wLXRhcmdldCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICB0b3A6IC04MHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgICAgIHRvcDogLTYwcHg7XG4gICAgfVxufVxuIiwiLy8gQmFzZSBjb2xvcnMgZm9yIGZvb3RlciBiYXJcbiRmb290ZXJiYXItY29sb3ItYmFzZTogJGJsdWUtZGFyaztcbiRmb290ZXJiYXItbGluay1jb2xvcjogJHdoaXRlO1xuXG4vKmRvY1xuLS0tXG50aXRsZTogRm9vdGVyIEJhclxubmFtZTogYS1mb290ZXItYmFyXG5jYXRlZ29yeTogSGVhZGVycyAmIEZvb3RlcnMgLSBGb290ZXJzXG5zZWxlY3RvcnM6XG4gICAgLSAuZm9vdGVyLWJhclxuLS0tXG5cblRoaXMgRm9vdGVyIEJhciBzZXJ2ZXMgYXMgdGhlIGJvdHRvbSBuYXZpZ2F0aW9uIGZvciBVU04gKGF0IGxlYXN0IGF0IHRoZSBcInByb2R1Y3RcbmxldmVsXCIpLlxuXG5Mb2dvIGFuZCBzb21lIGxpbmtzIGFyZSBOT1QgcHJlc2VudCBpbiBtb2JpbGUuXG5cblxuYGBgaHRtbF9leGFtcGxlXG5cbnslIGluY2x1ZGUgXCJ0ZW1wbGF0ZXMvY29tbW9uL2dsb2JhbC1mb290ZXIubnVualwiICV9XG5cbmBgYFxuKi9cblxuLmZvb3Rlci1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZm9vdGVyYmFyLWNvbG9yLWJhc2U7XG4gIHBhZGRpbmc6IHJlbS1jYWxjKDE1KSAwO1xuXG4gIC8vIFRvZG86IEhvdyBkbyB5b3UgcmVhbGx5IHdhbnQgdG8gYWxpZ24gbGVmdCBzaWRlIGluIHNtYWxsIHZpZXdcbiAgbGkubWFyZ2luLTE1LWZvci1zbWFsbCB7XG4gICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gIH1cblxuICBAbWVkaWEgI3skbWVkaXVtfSB7XG4gICAgbGkubWFyZ2luLTIyLWZvci1tZWRpdW0ge1xuICAgICAgbWFyZ2luLWxlZnQ6IDEuMzc1cmVtO1xuICAgIH1cbiAgfVxuXG4gIC8vIExlZnQgYWxpZ24gZmlyc3QgZGl2cyBmb3IgbWVkaXVtLXVwIGZyb20gZmF0IGZvb3RlciBiZWxvd1xuICAucGFkZGluZy0wIHtcbiAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgIEBtZWRpYSAjeyRsYXJnZX0ge1xuICAgICAgICBwYWRkaW5nOiAwIDE1cHg7XG4gICAgICB9XG4gIH1cbn1cblxuLmZvb3Rlci1iYXItc2VjdGlvbiB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG4vL1N0eWxpbmcgZm9yIHRoZSBuYXYgbGlua3Ncbi5mb290ZXItYmFyLXNlY3Rpb24gdWwge1xuICBsaSA+IGEge1xuICAgICAgY29sb3I6ICRsaWdodC1ncmF5O1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgIH1cbiAgfVxufVxuXG4uZm9vdGVyLWJhci1zZWN0aW9uIHVsLnRleHQtc21hbGxlciB7XG4gIGxpLFxuICBsaSA+IGEge1xuICAgICAgY29sb3I6ICRhbHVtaW51bTtcbiAgfVxuXG4gIGxpID4gYSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgfVxuICB9XG5cbn1cblxuLypkb2Ncbi0tLVxudGl0bGU6IEZvdW5kYXRpb24gRm9vdGVyLWJhciBTZXR0aW5nc1xubmFtZTogYi1mb290ZXJiYXItdXNuLXNldHRpbmdzXG5jYXRlZ29yeTogSGVhZGVycyAmIEZvb3RlcnMgLSBGb290ZXJzXG4tLS1cblxuVGhlc2UgYXJlIHRoZSBkZWZhdWx0IEZvdW5kYXRpb24gYnV0dG9uIHZhcmlhYmxlcyB3ZSBjYW4gZWRpdCBmcm9tIGBfLnNldHRpbmdzLnNjc3NgXG5cbmBgYHNhc3NfZXhhbXBsZVxuQHJlZi1kb2MgRm9vdGVyIEJhclxuXG5gYGBcbiovXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBNZWdhIEZvb3RlclxubmFtZTogZC1mb290ZXItbWVnYVxuY2F0ZWdvcnk6IEhlYWRlcnMgJiBGb290ZXJzIC0gTWVnYSBGb290ZXIgKGRlcHJlY2F0ZWQpXG5zZWxlY3RvcnM6XG4gICAgLSAuZm9vdGVyLW1lZ2Fcbi0tLVxuXG5UaGlzIG1lZ2EgZm9vdGVyIGlzIGFuIG1hZGUgdXAgb2YgMSBtZWRpYS1zdGFja2VkIG9iamVjdCBhbmQgMiBUb3VjaCAoRnJpZW5kbHkpIExpc3QgY29tcG9uZW50cy5cblRoaXMgaXMganVzdCBhbmQgZXhhbXBsZSBmcm9tIHRoZSBKb2JzIFNlYXJjaCBmb290ZXI7IHRoaXMgY2FuIGJlIGN1c3RvbWl6ZWQgdG8gcGFnZSBuZWVkcy5cblxuYGBgaHRtbF9leGFtcGxlXG5cbnslIGluY2x1ZGUgXCJ0ZW1wbGF0ZXMvY29tbW9uL21lZ2EtZm9vdGVyL2pvYnMubnVualwiICV9XG5cbmBgYFxuKi9cblxuLmZvb3Rlci1tZWdhIHtcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtYmx1ZTtcblxuLy8gTG9nb1xuICAubG9nb19yYW5raW5ncyB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDgwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cblxuLy8gSGVhZGluZ3NcbiAgaDMge1xuICAgIHBhZGRpbmc6IHJlbS1jYWxjKDI0KSAwIHJlbS1jYWxjKDEyKSAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW1lZGl1bTtcbiAgICBmb250LXNpemU6ICRoZWFkaW5nLWxhcmdlO1xuICB9XG5cbi8vIEJlc3QgSm9iIFJhbmtpbmdzXG4gIGhyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuLy8gU3R5bGluZyB0byBlbXVsYXRlIHRvdWNoIGZyaWVuZGx5IGxpc3RzXG4gIC5tZWRpYS1zdGFja2VkIHtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgaDMge1xuICAgICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDI0KTtcbiAgICAgIHBhZGRpbmctbGVmdDogcmVtLWNhbGMoMTUpO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzdGVlbC1kYXJrO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgY29sb3I6ICRhbHVtaW51bTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgZm9udC1zaXplOiAkdGV4dC1zbWFsbDtcbiAgICB9XG5cbiAgICAubWVkaWEge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHN0ZWVsLWRhcms7XG4gICAgICBwYWRkaW5nOiByZW0tY2FsYygxNSk7XG4gICAgfVxuXG4gICAgLm1lZGlhLWJvZHksXG4gICAgKiB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gIH1cblxuLy8gVGFibGV0LURlc2t0b3BcbiAgQG1lZGlhICN7JG1lZGl1bX0ge1xuICAgIC8vIExlZnQgYWxpZ24gZmlyc3QgZGl2cyBmb3IgbWVkaXVtLXVwXG4gICAgLnBhZGRpbmctMC1tZWRpdW0tdXAge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiByZW0tY2FsYygxMik7XG4gICAgfVxuXG4gICAgaHIge1xuICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoMjIpO1xuICAgIH1cblxuICAgIC8vIFRvcCBhbGlnbiBoZWFkaW5ncyBmb3IgbWVkaXVtLXVwXG4gICAgaDUge1xuICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoLTMpO1xuICAgICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1tZWRpdW07XG4gICAgfVxuXG4gICAgaDMge1xuICAgICAgcGFkZGluZzogcmVtLWNhbGMoNDQpIDAgcmVtLWNhbGMoMzIpIHJlbS1jYWxjKDE1KTtcbiAgICAgIGZvbnQtc2l6ZTogJGhlYWRpbmctbGFyZ2VyO1xuICAgIH1cblxuICAgIHVsIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjc1O1xuICAgIH1cblxuICAgIC8vIEZpbmQgdGhlIEJlc3QgSm9icyBzZWN0aW9uXG4gICAgLm1lZGlhLXN0YWNrZWQge1xuXG4gICAgICBwIHtcbiAgICAgICAgZm9udC1zaXplOiAkdGV4dC1sYXJnZTtcbiAgICAgIH1cblxuICAgICAgaDMsIC5tZWRpYSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5tZWRpYSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0tY2FsYygxMik7XG4gICAgICB9XG5cbiAgICAgIGgzIHtcbiAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoNDQpIDAgcmVtLWNhbGMoMzIpIHJlbS1jYWxjKDE1KTtcbiAgICAgIH1cblxuICAgICAgaDUge1xuICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygxNSkgMCByZW0tY2FsYyg4KSAwO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogJGhlYWRpbmctbGFyZ2U7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICBjb2xvcjogJG9pbDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAubWVkaWEtb2JqZWN0IHtcbiAgICAgICAgd2lkdGg6IDQyJTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgfVxuXG4gICAgICAubWVkaWEtYm9keSB7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLypkb2Ncbi0tLVxudGl0bGU6IEZhdCBGb290ZXJcbm5hbWU6IGEtZmF0LWZvb3RlclxuY2F0ZWdvcnk6IEhlYWRlcnMgJiBGb290ZXJzIC0gRmF0IEZvb3RlclxuYXV0aG9yczogV2lsbCBGZXJndXNvbiwgV2VzIERpTWljZWxpXG5zZWxlY3RvcnM6XG4gICAgLSAuZmF0LWZvb3RlclxudGVtcGxhdGU6XG4tLS1cblxuR2V0dGluZyBTdGFydGVkXG49PT09PT09PT09PT09PT1cblxuVGhlIGZhdEZvb3RlciBtYWNybyByZW5kZXJzIHRoZSBmcmFtZXdvcmsgSFRNTCBhbmQgcGFzc2VzIHRoZSBjYWxsZXIgYSBkaWN0aW9uYXJ5IG9mIG1hY3JvcyB0aGF0IGJ1aWxkIGNoaWxkIGNvbXBvbmVudHMuICBFYWNoIGNoaWxkIGNvbXBvbmVudCBtYXkgcmVwZWF0IHRoZSBzYW1lIHBhdHRlcm4uXG5cbkV4YW1wbGUgdXNhZ2U6XG5cbnslIHNldCBlZGl0b3JfaWQgPSB1dWlkKCkgJX1cblxuYGBgbnVuanVja3NfdGFiP2VkaXRvci1pZD17e2VkaXRvcl9pZH19XG5cbnslIGZyb20gXCJ0ZW1wbGF0ZXMvY29tbW9uL21lbnUvbWVudS1idWlsZGVyLm51bmpcIiBpbXBvcnQgZm9vdGVyIGFzIGZhdEZvb3RlciAlfVxuXG57JSBjYWxsKGZhdEZvb3RlckNvbXBvbmVudHMpIGZhdEZvb3RlcigpICV9XG4gICAgeyUgY2FsbChzZWFyY2hDb21wb25lbnRzKSBmYXRGb290ZXJDb21wb25lbnRzLnNlYXJjaChcbiAgICAgICAgaGVhZGVyPSdTZWFyY2ggdGhlIEJlc3QgSm9icycsXG4gICAgICAgIGJsdXJiPSdVLlMuIE5ld3MgaGFzIGFuYWx5emVkIFtbTlVNQkVSXV0gam9icyBvdmVyIFtbSU5EVVNUUklFU11dIGFuZCBjYXRlZ29yaWVzLiAgVXNlIG91ciBhZHZhbmNlZCBzZWFyY2ggdG9vbCB0byBmaW5kIHRoZSBqb2JzIHRoYXQgYXJlIHJpZ2h0IGZvciB5b3UuJ1xuICAgICAgICApICV9XG5cbiAgICAgICAge3sgc2VhcmNoQ29tcG9uZW50cy5zZWFyY2hCb3gocGxhY2Vob2xkZXI9J1B1dCBhIGpvYiBoZXJlLCB5b3Uga251Y2tsZWhlYWQhJykgfX1cbiAgICB7JSBlbmRjYWxsICV9XG5cbiAgICB7JSBjYWxsKHJhbmtpbmdzQ29tcG9uZW50cykgZmF0Rm9vdGVyQ29tcG9uZW50cy5yYW5raW5ncyhcbiAgICAgICAgaGVhZGVyPSdDYXJlZXIgUmFua2luZ3MnXG4gICAgICAgICkgJX1cblxuICAgICAgICB7eyByYW5raW5nc0NvbXBvbmVudHMuYmFkZ2UoXG4gICAgICAgICAgICBpbWdTcmM9J2h0dHA6Ly93d3cudXNuZXdzLmNvbS9jbXNtZWRpYS80Yy84Ny8xOWI2YmI3OTRiOTBiMzg2ZjM1OTk4ZDNjNjdiLzE1MTIyOC1iZXN0ZGlldHNnZW5lcmljLWRlc2lnbi5wbmcnLFxuICAgICAgICAgICAgbWV0aG9kb2xvZ3lMYWJlbD0nSG93IFdlIFJhbmsgSm9icycsXG4gICAgICAgICAgICBtZXRob2RvbG9neVVybD0nIydcbiAgICAgICAgICAgICkgfX1cblxuICAgICAgICB7eyByYW5raW5nc0NvbXBvbmVudHMudG9wUmFua2luZ3MoXG4gICAgICAgICAgICBoZWFkZXI9JzEwMCBCZXN0IEpvYnMnLFxuICAgICAgICAgICAgcmFua2luZ3M9W3tcIm5hbWVcIjogXCJEZW50aXN0XCIsIFwidXJsXCI6IFwiI1wiLCBcInJhbmtcIjogMX1dLFxuICAgICAgICAgICAgZnVsbExpc3RVcmw9JyMnXG4gICAgICAgICAgICApIH19XG5cbiAgICAgICAge3sgcmFua2luZ3NDb21wb25lbnRzLnRvcExpbmtzKFxuICAgICAgICAgICAgaGVhZGVyPSdCZXN0IEpvYnMgYnkgSW5kdXN0cnknLFxuICAgICAgICAgICAgbGlua3M9W3tcIm5hbWVcIjogXCIxMDAgQmVzdCBKb2JzXCIsIFwidXJsXCI6IFwiI1wifV0sXG4gICAgICAgICAgICBtb3JlTGFiZWw9J0FsbCBpbmR1c3RyaWVzJyxcbiAgICAgICAgICAgIG1vcmVVcmw9JyMnXG4gICAgICAgICAgICApIH19XG5cbiAgICAgICAgeyUgY2FsbChtdWx0aVJvd0NvbXBvbmVudHMpIHJhbmtpbmdzQ29tcG9uZW50cy5saW5rc011bHRpUm93KCkgJX1cbiAgICAgICAgICAgIHt7IG11bHRpUm93Q29tcG9uZW50cy5yb3coXG4gICAgICAgICAgICAgICAgaGVhZGVyPSdNb3JlIEpvYnMgUmFua2luZ3MnLFxuICAgICAgICAgICAgICAgIGxpbmtzPVt7XCJuYW1lXCI6IFwiQmVzdCBQYXlpbmcgSm9ic1wiLCBcInVybFwiOiBcIiNcIn1dXG4gICAgICAgICAgICAgICAgKSB9fVxuXG4gICAgICAgICAgICB7eyBtdWx0aVJvd0NvbXBvbmVudHMucm93KFxuICAgICAgICAgICAgICAgIGhlYWRlcj0nTW9zdCBQb3B1bGFyIEpvYnMnLFxuICAgICAgICAgICAgICAgIGxpbmtzPVt7XCJuYW1lXCI6IFwiRGlldGljaWFuIGFuZCBOdXRyaXRpb25pc3RcIiwgXCJ1cmxcIjogXCIjXCJ9XVxuICAgICAgICAgICAgICAgICkgfX1cbiAgICAgICAgeyUgZW5kY2FsbCAlfVxuICAgIHslIGVuZGNhbGwgJX1cblxuICAgIHt7IGZhdEZvb3RlckNvbXBvbmVudHMuc21hbGxSYW5raW5ncyhcbiAgICAgICAgbGlua3M9W3tcIm5hbWVcIjogXCIxMDAgQmVzdCBKb2JzXCIsIFwidXJsXCI6IFwiI1wifV0sXG4gICAgICAgIGhlYWRlcj0nQ2FyZWVyIFJhbmtpbmdzJyxcbiAgICAgICAgbW9yZVVybD0nIydcbiAgICAgICAgKSB9fVxuXG57JSBlbmRjYWxsICV9XG5cbmBgYFxuXG5IZXJlIGlzIGEgbGlzdCBvZiBjb21wb25lbnRzIGFuZCBwYXJhbWV0ZXJzOlxuXG4qKmZhdEZvb3RlcioqXG5cbnwgbmFtZSAgICAgICAgICAgICAgIHwgZGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHNpemVzICAgICAgIHxcbnwtLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXxcbnwgYHNlYXJjaGAgICAgICAgICAgIHwgTGFyZ2UgYm94IHdpdGggYSBtYWduaWZ5aW5nIGdsYXNzIGljb24gYW5kIHNlYXJjaCBvciBzZWxlY3QgZmllbGRzLiAgICAgICAgICB8IE1lZGl1bS11cCAgIHxcbnwgYHJhbmtpbmdzYCAgICAgICAgIHwgTWFwIG9mIGxpbmtzIHRvIHZhcmlvdXMgcmFua2luZyBwYWdlcy4gIENhbiBhbHNvIHJlbmRlciBhIGxhcmdlIGJhZGdlIGltYWdlLiB8IE1lZGl1bS11cCAgIHxcbnwgYHNtYWxsUmFua2luZ3NgICAgIHwgR2VuZXJpYyBsaXN0IG9mIGxpbmtzIHdoaWNoIGFwcGVhciBvbiBzbWFsbC1vbmx5LiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNtYWxsLW9ubHkgIHxcbnwgYG1lZGlhT2JqZWN0YCAgICAgIHwgTGlzdCBvZiBtZWRpYSBvYmplY3RzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNtYWxsLW9ubHkgIHxcblxufCBuYW1lICAgICAgICAgICAgICAgfCBwYXJhbWV0ZXIgIHwgcHVycG9zZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwtLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG58IGBzZWFyY2hgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCAgICAgICAgICAgICAgICAgICAgfCBgaGVhZGVyYCAgIHwgTGFyZ2UgaGVhZGluZyB0ZXh0LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgICAgICAgICAgICAgICAgICAgIHwgYGJsdXJiYCAgICB8IFNtYWxsZXIgYmx1cmIgZGlzcGxheWVkIGFib3ZlIHRoZSBzZWFyY2ggZmllbGRzLiAgICAgICB8XG58IGByYW5raW5nc2AgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCAgICAgICAgICAgICAgICAgICAgfCBgaGVhZGVyYCAgIHwgTGFyZ2UgaGVhZGluZyB0ZXh0LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgYHNtYWxsUmFua2luZ3NgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58ICAgICAgICAgICAgICAgICAgICB8IGBsaW5rc2AqICAgfCBBcnJheSBvZiBsaW5rcywgZWFjaCB3aXRoIGEgYHVybGAgYW5kIGBuYW1lYCBwcm9wZXJ0eS4gfFxufCAgICAgICAgICAgICAgICAgICAgfCBgaGVhZGVyYCAgIHwgTGFyZ2UgaGVhZGluZyB0ZXh0LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgICAgICAgICAgICAgICAgICAgIHwgYG1vcmVVcmxgICB8IFVSTCBmb3IgdGhlICdzZWUgbW9yJ2AgbGluay4gICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IGBtZWRpYU9iamVjdGAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCAgICAgICAgICAgICAgICAgICAgfCBgaGVhZGVyYCAgIHwgTGFyZ2UgaGVhZGluZyB0ZXh0LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgICAgICAgICAgICAgICAgICAgIHwgYGJsdXJiYCAgICB8IEJsdXJiIGJlbmVhdGggdGhlIGhlYWRlci4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58ICAgICAgICAgICAgICAgICAgICB8IGBpY29uYCAgICAgfCBJbWFnZSBzcmMgdG8gYmUgZGlzcGxheWVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCAgICAgICAgICAgICAgICAgICAgfCBgdXJsYCAgICAgIHwgVGFyZ2V0IFVSTCBmb3IgdGhpcyBtZWRpYSBvYmplY3QuICAgICAgICAgICAgICAgICAgICAgIHxcblxcKiA9IHJlcXVpcmVkXG5cbnslIHNldCBtZWRpYW9iamVjdF9lZGl0b3JfaWQgPSB1dWlkKCkgJX1cblxuYGBgbnVuanVja3NfdGFiP2VkaXRvci1pZD17e21lZGlhb2JqZWN0X2VkaXRvcl9pZH19XG5cbiAgICB7JSBmcm9tIFwidGVtcGxhdGVzL2NvbW1vbi9tZW51L21lbnUtYnVpbGRlci5udW5qXCIgaW1wb3J0IGZvb3RlciBhcyBmYXRGb290ZXIgJX1cblxuICAgIHslIGNhbGwoY29tcG9uZW50cykgZmF0Rm9vdGVyKCkgJX1cbiAgICAgICAge3sgY29tcG9uZW50cy5tZWRpYU9iamVjdChoZWFkZXI9J0hlYWRlciAxJywgYmx1cmI9J2NsaWNrIHRoaXMgbGluayEnLCBpY29uPSdodHRwOi8vaGVhbHRoLXVhdDMudXNuZXdzLmNvbS9zdGF0aWMvaW1nL2NpcmNsZS1iYWRnZS1pY29uLnN2ZycsIHVybD1cImh0dHA6Ly93d3cudXNuZXdzLmNvbVwiKSB9fVxuICAgICAgICB7eyBjb21wb25lbnRzLm1lZGlhT2JqZWN0KGhlYWRlcj0nSGVhZGVyIDInLCBibHVyYj0nY2xpY2sgdGhpcyBsaW5rIScsIGljb249J2h0dHA6Ly9oZWFsdGgtdWF0My51c25ld3MuY29tL3N0YXRpYy9pbWcvY2lyY2xlLXNlYXJjaC1pY29uLnN2ZycsIHVybD1cImh0dHA6Ly93d3cudXNuZXdzLmNvbVwiKSB9fVxuICAgIHslIGVuZGNhbGwgJX1cblxuYGBgXG5cbioqZmF0Rm9vdGVyLnNlYXJjaCoqXG5cbnwgbmFtZSAgICAgICAgICAgICAgIHwgZGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58LS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxufCBgc2VhcmNoQm94YCAgICAgICAgfCBUZXh0IHNlYXJjaCBmaWVsZCB3aXRoIHJlZCBidXR0b24uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgYHNlbGVjdGAgICAgICAgICAgIHwgRHJvcGRvd24gYm94IHRoYXQgbmF2aWdhdGVzIHRoZSBicm93c2VyIHRvIGRpZmZlcmVudCBwYWdlcy4gICAgICAgICAgICAgICAgICB8XG5cbnwgbmFtZSAgICAgICAgICAgICAgIHwgcGFyYW1ldGVyICAgICAgICAgIHwgcHVycG9zZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufC0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG58IGBzZWFyY2hCb3hgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgICAgICAgICAgICAgICAgICAgIHwgYGFjdGlvbmAgICAgICAgICAgIHwgRm9ybSBhY3Rpb24gdG8gYmUgc3VibWl0dGVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCAgICAgICAgICAgICAgICAgICAgfCBgYXV0b2NvbXBsZXRlYCAgICAgfCBBdXRvbXBsZXRlIHR5cGUgZm9yIGRhdGEtYXV0b2NvbXBsZXRlIGF0dHJpYnV0ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58ICAgICAgICAgICAgICAgICAgICB8IGBhdXRvY29tcGxldGVIcmVmYCB8IFVSTCBmb3Igc2VhcmNoIHBhZ2Ugd2hlbiBubyBhdXRvY29tcGxldGUgbWF0Y2ggZXhpc3RzLiAgU2hvdWxkIGNvbnRhaW4gYF9fV0lMRENBUkRfX2AuIHxcbnwgICAgICAgICAgICAgICAgICAgIHwgYHBsYWNlaG9sZGVyYCAgICAgIHwgUGxhY2Vob2xkZXIgdGV4dCBmb3IgdGV4dCBpbnB1dCBib3guICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCBgc2VsZWN0YCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58ICAgICAgICAgICAgICAgICAgICB8IGBsaW5rc2AgICAgICAgICAgICB8IExpc3Qgb2YgbWFwcyB3aXRoIG5hbWUgYW5kIHVybCBwcm9wZXJ0aWVzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgICAgICAgICAgICAgICAgICAgIHwgYGxhYmVsYCAgICAgICAgICAgIHwgTGFiZWwgdGhhdCBpcyBkaXNwbGF5ZWQgYmVmb3JlIHRoZSBzZWxlY3QgYm94LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuXFwqID0gcmVxdWlyZWRcblxueyUgc2V0IHNlYXJjaF9lZGl0b3JfaWQgPSB1dWlkKCkgJX1cblxuYGBgbnVuanVja3NfdGFiP2VkaXRvci1pZD17e3NlYXJjaF9lZGl0b3JfaWR9fVxuXG4gICAgeyUgZnJvbSBcInRlbXBsYXRlcy9jb21tb24vbWVudS9tZW51LWJ1aWxkZXIubnVualwiIGltcG9ydCBmb290ZXIgYXMgZmF0Rm9vdGVyICV9XG5cbiAgICB7JSBjYWxsKGZhdEZvb3RlckNvbXBvbmVudHMpIGZhdEZvb3RlcigpICV9XG4gICAgICAgIHslIGNhbGwoY29tcG9uZW50cykgZmF0Rm9vdGVyQ29tcG9uZW50cy5zZWFyY2goaGVhZGVyPSdBIGhlYWRlcicsIGJsdXJiPSdBIGJsdXJiJykgJX1cbiAgICAgICAgICAgIHt7IGNvbXBvbmVudHMuc2VhcmNoQm94KHBsYWNlaG9sZGVyPSdTb21lIHBsYWNlaG9sZGVyIHRleHQnKSB9fVxuICAgICAgICB7JSBlbmRjYWxsICV9XG4gICAgeyUgZW5kY2FsbCAlfVxuXG5gYGBcblxuKipmYXRGb290ZXIucmFua2luZ3MqKlxuXG58IG5hbWUgICAgICAgICAgICB8IGRlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58LS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG58IGBiYWRnZWAgICAgICAgICB8IExhcmdlIGJhZGdlIGltYWdlIHdpdGggYSBtZXRob2RvbG9neSBsaW5rIGJlbG93LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IGBvdmVyYWxsYCAgICAgICB8IExpc3Qgb2YgdG9wIHJhbmtpbmdzIGVhY2ggd2l0aCBhIHNtYWxsIGJhZGdlIGljb24uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IGBsaW5rc2AgICAgICAgICB8IEdlbmVyaWMgbGlzdCBvZiBsaW5rcyB3aXRoIGhlYWRlciBhbmQgYHNlZSBtb3JlYCBsaW5rLiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IGBsaW5rc011bHRpUm93YCB8IFNtYWxsZXIgbGlzdCBvZiBsaW5rcyB3aGljaCBjYW4gaGF2ZSBtdWx0aXBsZSBzZWN0aW9ucywgZWFjaCB3aXRoIGl0cyBvd24gaGVhZGVyLiB8XG5cbnwgbmFtZSAgICAgICAgICAgICAgIHwgcGFyYW1ldGVyICAgICAgICAgIHwgcHVycG9zZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufC0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG58IGBiYWRnZWAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgICAgICAgICAgICAgICAgICAgIHwgYGltZ1NyY2AqICAgICAgICAgIHwgSW1hZ2Ugc291cmNlIFVSTC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCAgICAgICAgICAgICAgICAgICAgfCBgbWV0aG9kb2xvZ3lMYWJlbGAgfCBUZXh0IGZvciB0aGUgbWV0aG9kb2xvZ3kgbGluay4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58ICAgICAgICAgICAgICAgICAgICB8IGBtZXRob2RvbG9neVVybGAgICB8IFVSTCBmb3IgdGhlIG1ldGhvZG9sb2d5IGxpbmsuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgYG92ZXJhbGxgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCAgICAgICAgICAgICAgICAgICAgfCBgaGVhZGVyYCogICAgICAgICAgfCBIZWFkZXIgdGV4dCBmb3IgdGhlIG92ZXJhbGwgcmFua2luZ3MgbGlzdC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58ICAgICAgICAgICAgICAgICAgICB8IGByYW5raW5nc2AqICAgICAgICB8IEFycmF5IG9mIG1hcHMsIGVhY2ggd2l0aCBgbmFtZWAsIGB1cmxgLCBhbmQgYHJhbmtgIHByb3BlcnRpZXMuICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgICAgICAgICAgICAgICAgICAgIHwgYGZ1bGxMaXN0VXJsYCAgICAgIHwgVVJMIGZvciB0aGUgJ3NlZSB0aGUgZnVsbCBsaXN0JyBsaW5rLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCBgbGlua3NgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58ICAgICAgICAgICAgICAgICAgICB8IGBoZWFkZXJgKiAgICAgICAgICB8IEhlYWRlciB0ZXh0IGRpc3BsYXllZCBhYm92ZSB0aGUgbGlua3MuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgICAgICAgICAgICAgICAgICAgIHwgYGxpbmtzYCogICAgICAgICAgIHwgQXJyYXkgb2YgbWFwcywgZWFjaCB3aXRoIGBuYW1lYCBhbmQgYHVybGAgcHJvcGVydGllcy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCAgICAgICAgICAgICAgICAgICAgfCBgbW9yZUxhYmVsYCAgICAgICAgfCBUZXh0IGZvciB0aGUgJ3NlZSBtb3JlJyBsaW5rLiAgV2lsbCBub3QgcmVuZGVyIGlmIGZhbHN5LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58ICAgICAgICAgICAgICAgICAgICB8IGBtb3JlVXJsYCAgICAgICAgICB8IFVSTCBmb3IgdGhlICdzZWUgbW9yZScgbGluay4gIFdpbGwgbm90IHJlbmRlciBpZiBmYWxzeS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgYGxpbmtzTXVsdGlSb3dgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCAgICAgICAgICAgICAgICAgICAgfCAobm9uZSkgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG5cXCogPSByZXF1aXJlZFxuXG57JSBzZXQgcmFua2luZ3NfZWRpdG9yX2lkID0gdXVpZCgpICV9XG5cbmBgYG51bmp1Y2tzX3RhYj9lZGl0b3ItaWQ9e3tyYW5raW5nc19lZGl0b3JfaWR9fVxuXG4gICAgeyUgZnJvbSBcInRlbXBsYXRlcy9jb21tb24vbWVudS9tZW51LWJ1aWxkZXIubnVualwiIGltcG9ydCBmb290ZXIgYXMgZmF0Rm9vdGVyICV9XG5cbiAgICB7JSBjYWxsKGZhdEZvb3RlckNvbXBvbmVudHMpIGZhdEZvb3RlcigpICV9XG4gICAgICAgIHslIGNhbGwoY29tcG9uZW50cykgZmF0Rm9vdGVyQ29tcG9uZW50cy5yYW5raW5ncygpICV9XG4gICAgICAgICAgICB7eyBjb21wb25lbnRzLmJhZGdlKFxuICAgICAgICAgICAgICAgIGltZ1NyYz0naHR0cDovL3d3dy51c25ld3MuY29tL2Ntc21lZGlhLzRjLzg3LzE5YjZiYjc5NGI5MGIzODZmMzU5OThkM2M2N2IvMTUxMjI4LWJlc3RkaWV0c2dlbmVyaWMtZGVzaWduLnBuZycsXG4gICAgICAgICAgICAgICAgbWV0aG9kb2xvZ3lMYWJlbD0nSG93IFdlIFJhbmsgSm9icycsXG4gICAgICAgICAgICAgICAgbWV0aG9kb2xvZ3lVcmw9JyMnXG4gICAgICAgICAgICAgICAgKSB9fVxuXG4gICAgICAgICAgICB7eyBjb21wb25lbnRzLnRvcFJhbmtpbmdzKFxuICAgICAgICAgICAgICAgIGhlYWRlcj0nMTAwIEJlc3QgSm9icycsXG4gICAgICAgICAgICAgICAgcmFua2luZ3M9W3tcIm5hbWVcIjogXCJEZW50aXN0XCIsIFwidXJsXCI6IFwiI1wiLCBcInJhbmtcIjogMX1dLFxuICAgICAgICAgICAgICAgIGZ1bGxMaXN0VXJsPScjJ1xuICAgICAgICAgICAgICAgICkgfX1cblxuICAgICAgICAgICAge3sgY29tcG9uZW50cy50b3BMaW5rcyhcbiAgICAgICAgICAgICAgICBoZWFkZXI9J0Jlc3QgSm9icyBieSBJbmR1c3RyeScsXG4gICAgICAgICAgICAgICAgbGlua3M9W3tcIm5hbWVcIjogXCIxMDAgQmVzdCBKb2JzXCIsIFwidXJsXCI6IFwiI1wifV0sXG4gICAgICAgICAgICAgICAgbW9yZUxhYmVsPSdBbGwgaW5kdXN0cmllcycsXG4gICAgICAgICAgICAgICAgbW9yZVVybD0nIydcbiAgICAgICAgICAgICAgICApIH19XG4gICAgICAgIHslIGVuZGNhbGwgJX1cbiAgICB7JSBlbmRjYWxsICV9XG5cbmBgYFxuXG4qKmZhdEZvb3Rlci5yYW5raW5ncy5saW5rc011bHRpUm93KipcblxufCBuYW1lICAgICAgICAgICAgfCBkZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufC0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxufCBgcm93YCAgICAgICAgICAgfCBJbmRpdmlkdWFsIGxpc3Qgb2YgbGlua3Mgd2l0aCBhIGhlYWRlci4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuXG58IG5hbWUgICAgICAgICAgICAgICB8IHBhcmFtZXRlciAgICAgICAgICB8IHB1cnBvc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwtLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxufCBgcm93YCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58ICAgICAgICAgICAgICAgICAgICB8IGBoZWFkZXJgKiAgICAgICAgICB8IFRleHQgZm9yIGhlYWRlci4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgICAgICAgICAgICAgICAgICAgIHwgYGxpbmtzYCogICAgICAgICAgIHwgQXJyYXkgb2YgbWFwcywgZWFjaCB3aXRoIGBuYW1lYCBhbmQgYHVybGAgcHJvcGVydGllcy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuXFwqID0gcmVxdWlyZWRcblxueyUgc2V0IHJvd19lZGl0b3JfaWQgPSB1dWlkKCkgJX1cblxuYGBgbnVuanVja3NfdGFiP2VkaXRvci1pZD17e3Jvd19lZGl0b3JfaWR9fVxuXG4gICAgeyUgZnJvbSBcInRlbXBsYXRlcy9jb21tb24vbWVudS9tZW51LWJ1aWxkZXIubnVualwiIGltcG9ydCBmb290ZXIgYXMgZmF0Rm9vdGVyICV9XG5cbiAgICB7JSBjYWxsKGZhdEZvb3RlckNvbXBvbmVudHMpIGZhdEZvb3RlcigpICV9XG4gICAgICAgIHslIGNhbGwocmFua2luZ3NDb21wb25lbnRzKSBmYXRGb290ZXJDb21wb25lbnRzLnJhbmtpbmdzKCkgJX1cbiAgICAgICAgICAgIHslIGNhbGwoY29tcG9uZW50cykgcmFua2luZ3NDb21wb25lbnRzLmxpbmtzTXVsdGlSb3coKSAlfVxuICAgICAgICAgICAgICAgIHt7IGNvbXBvbmVudHMucm93KFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXI9J01vcmUgSm9icyBSYW5raW5ncycsXG4gICAgICAgICAgICAgICAgICAgIGxpbmtzPVt7XCJuYW1lXCI6IFwiQmVzdCBQYXlpbmcgSm9ic1wiLCBcInVybFwiOiBcIiNcIn1dXG4gICAgICAgICAgICAgICAgICAgICkgfX1cbiAgICAgICAgICAgIHslIGVuZGNhbGwgJX1cbiAgICAgICAgeyUgZW5kY2FsbCAlfVxuICAgIHslIGVuZGNhbGwgJX1cblxuYGBgXG5cbiovXG5cbi5mYXQtZm9vdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1ibHVlO1xuICAgIC8vIGxlc3MgcGFkZGluZyBzbWFsbFxuICAgIHBhZGRpbmc6IDQwcHggMCAyMHB4O1xuICAgIC8vIG1vcmUgcGFkZGluZyBtZWRpdW1cbiAgICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bSkge1xuICAgICAgICBwYWRkaW5nOiA3MHB4IDA7ICBcbiAgICB9XG5cbiAgICAuY29tcG9uZW50LXNlYXJjaCB7XG4gICAgICAgIC5jYXRlZ29yeS1zZWxlY3Qge1xuICAgICAgICAgICAgLy8gcmVkdWNlIHRoZSBoZWlnaHQgYSBmZXcgcGl4ZWxzIHNvIHRoYXQgaXQncyBldmVuIHdpdGggdGhlIHJlZCBidXR0b24gdGhhdCBvY2Nhc2lvbmFsbHkgc2l0cyBiZXNpZGUgaXRcbiAgICAgICAgICAgIGhlaWdodDogMzhweDtcbiAgICAgICAgICAgIHdpZHRoOiAyMTBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmZhdC1mb290ZXIuYmx1ZS1saWdodCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWUtbGlnaHQ7XG59XG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBIaWdoZXIgRWR1Y2F0aW9uIEZhdCBGb290ZXJcbm5hbWU6IGItaGlnaGVyLWVkdWNhdGlvbi1mYXQtZm9vdGVyXG5jYXRlZ29yeTogSGVhZGVycyAmIEZvb3RlcnMgLSBGYXQgRm9vdGVyXG4tLS1cblxueyUgaW5jbHVkZSBcInRlbXBsYXRlcy9wYWdlcy9lZHVjYXRpb24vaGlnaGVyLWVkdWNhdGlvbi9jb2xsZWdlcy9fZmF0LWZvb3Rlci5udW5qXCIgJX1cblxuKi9cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLypkb2Ncbi0tLVxudGl0bGU6IEJ1dHRvblxubmFtZTogYi1idXR0b25zXG5jYXRlZ29yeTogQnV0dG9ucyAtIEJ1dHRvbnNcbnNlbGVjdG9yczpcbiAgICAtIC5idXR0b25cbnNlbGVjdG9yX3R5cGU6IGNvbXBvbmVudFxuLS0tXG5cbmBgYGh0bWxfZXhhbXBsZVxuPGEgaHJlZj1cIiNcIiBhcmlhLWxhYmVsPVwic3VibWl0IGZvcm1cIiBjbGFzcz1cImJ1dHRvblwiPkRlZmF1bHQgQnV0dG9uPC9hPlxuYGBgXG4qL1xuXG4vKmRvY1xuLS0tXG50aXRsZTogQnV0dG9uIE1vZGlmaWVyc1xubmFtZTogYy1idXR0b24tc3R5bGluZ1xuY2F0ZWdvcnk6IEJ1dHRvbnMgLSBCdXR0b25zXG5zZWxlY3RvcnM6XG4gICAgLSAuYnV0dG9uLnRpbnlcbiAgICAtIC5idXR0b24uc21hbGxcbiAgICAtIC5idXR0b24uc2Vjb25kYXJ5XG4gICAgLSAuYnV0dG9uLmFjdGlvblxuICAgIC0gLmJ1dHRvbi5zZWxlY3RcbiAgICAtIC5idXR0b24uYm9yZGVyZWRcbiAgICAtIC5idXR0b24uYm9yZGVyZWQuZGFya2VuLWhvdmVyXG4gICAgLSAuYnV0dG9uLnNtYWxsLmJvcmRlcmVkXG4gICAgLSAuYnV0dG9uLnRpbnkuYm9yZGVyZWRcbiAgICAtIC5idXR0b24ucmFkaXVzXG4gICAgLSAuYnV0dG9uLmJsb2NrXG4tLS1cbkFkZGl0aW9uYWwgY2xhc3NlcyBjYW4gYmUgYWRkZWQgdG8geW91ciBjb21wb25lbnQgdG8gY2hhbmdlIGl0cyBjb2xvciBvciBzdHlsaW5nLlxuXG5TaXplOiBgLnRpbnlgLCBgLnNtYWxsYCwgbm8gbW9kaWZpZXIgc2V0cyBpcyB0aGUgZGVmYXVsdCBzaXplLCBgLmZ1bGxgIChmb3Igc21hbGwgd2lkdGggb25seSksIChGb3VuZGF0aW9uJ3MgY3VycmVudGx5IHVudXNlZDogYC5sYXJnZWAgYC5leHBhbmRgIClcblxuU3R5bGU6IGAuYm9yZGVyZWRgLCBgLnJhZGl1c2AsIGAuc2hhZG93YCwgYC5kaXZpZGVkYCwgYC5pbWdgLCBgLnNlbGVjdGBcblxuQ29sb3IvRnVuY3Rpb246IGAuYWN0aW9uYCwgYC5kaXNhYmxlZGAsIGAuc2Vjb25kYXJ5YCwgbm8gbW9kaWZpZXJzIHNldHMgZGVmYXVsdCBjb2xvclxuXG5KYXZhc2NyaXB0OiBUaGVyZSBhcmUgc3RhdGUgY2xhc3NlcyBsaWtlIGBpcy1kaXNhYmxlZGAgdGhhdCBjYW4gYmUgYXBwbGllZC4gIEEgbGlzdCBvZiB0aGVzZSBjYW4gYmUgZm91bmQgaW4gX3N0YXRlcy5zY3NzIGluIHRoZSBWaXNpYmlsaXR5KGpzKSBzZWN0aW9uXG5cbmBgYGh0bWxfZXhhbXBsZT9raXRjaGVuLXNpbms9dHJ1ZVxuICA8IS0tIENvbG9yIENsYXNzZXMgLS0+XG4gIDxidXR0b24gaHJlZj1cIiNcIiBhcmlhLWxhYmVsPVwic3VibWl0IGZvcm1cIiBjbGFzcz1cImJ1dHRvblwiPkRlZmF1bHQ8L2J1dHRvbj5cbiAgPGJ1dHRvbiBocmVmPVwiI1wiIGFyaWEtbGFiZWw9XCJzdWJtaXQgZm9ybVwiIGNsYXNzPVwiYnV0dG9uIHNlY29uZGFyeVwiPlNlY29uZGFyeTwvYnV0dG9uPlxuICA8YnV0dG9uIGhyZWY9XCIjXCIgYXJpYS1sYWJlbD1cInN1Ym1pdCBmb3JtXCIgY2xhc3M9XCJidXR0b24gYWN0aW9uXCI+QWN0aW9uPC9idXR0b24+XG5cbiAgPCEtLSBTdHlsaW5nIENsYXNzZXMgLS0+XG4gIDxhIGhyZWY9XCIjXCIgYXJpYS1sYWJlbD1cInN1Ym1pdCBmb3JtXCIgY2xhc3M9XCJidXR0b24gYm9yZGVyZWRcIj5Cb3JkZXJlZDwvYT5cbiAgPGEgaHJlZj1cIiNcIiBhcmlhLWxhYmVsPVwic3VibWl0IGZvcm1cIiBjbGFzcz1cImJ1dHRvbiBib3JkZXJlZCBkYXJrZW4taG92ZXJcIj5Cb3JkZXJlZCB3aXRoIERhcmtlbiBIb3ZlcjwvYT5cbiAgPGEgaHJlZj1cIiNcIiBhcmlhLWxhYmVsPVwic3VibWl0IGZvcm1cIiBjbGFzcz1cImJ1dHRvbiBzbWFsbCBib3JkZXJlZFwiPlNtYWxsIEJvcmRlcmVkPC9hPlxuICA8YSBocmVmPVwiI1wiIGFyaWEtbGFiZWw9XCJzdWJtaXQgZm9ybVwiIGNsYXNzPVwiYnV0dG9uIHRpbnkgYm9yZGVyZWRcIj5UaW55IEJvcmRlcmVkPC9hPlxuICA8YSBocmVmPVwiI1wiIGFyaWEtbGFiZWw9XCJzdWJtaXQgZm9ybVwiIGNsYXNzPVwiYnV0dG9uIHJhZGl1c1wiPlJhZGl1cyBCdXR0b248L2E+XG4gIDxhIGhyZWY9XCIjXCIgYXJpYS1sYWJlbD1cInN1Ym1pdCBmb3JtXCIgY2xhc3M9XCJidXR0b24gcmFkaXVzIHNoYWRvd1wiPlNoYWRvdzwvYT5cbiAgPGEgaHJlZj1cIiNcIiBhcmlhLWxhYmVsPVwic3VibWl0IGZvcm1cIiBjbGFzcz1cImJ1dHRvbiByYWRpdXMgc2Vjb25kYXJ5IHNoYWRvd1wiPlNlY29uZGFyeSBTaGFkb3c8L2E+XG4gIDxhIGhyZWY9XCIjXCIgYXJpYS1sYWJlbD1cInN1Ym1pdCBmb3JtXCIgY2xhc3M9XCJidXR0b24gcmFkaXVzIGFjdGlvbiBzaGFkb3dcIj5BY3Rpb24gU2hhZG93PC9hPlxuICA8YSBocmVmPVwiI1wiIGFyaWEtbGFiZWw9XCJzdWJtaXQgZm9ybVwiIGNsYXNzPVwiYnV0dG9uIHNtYWxsIHJhZGl1cyBhY3Rpb24gc2hhZG93XCI+U21hbGwgU2hhZG93PC9hPlxuICA8YSBocmVmPVwiI1wiIGFyaWEtbGFiZWw9XCJzdWJtaXQgZm9ybVwiIGNsYXNzPVwiYnV0dG9uIHRpbnkgcmFkaXVzIGFjdGlvbiBzaGFkb3dcIj5UaW55IFNoYWRvdzwvYT5cbiAgPGEgaHJlZj1cIiNcIiBhcmlhLWxhYmVsPVwic3VibWl0IGZvcm1cIiBjbGFzcz1cImJ1dHRvbiBzZWNvbmRhcnkgc2VsZWN0XCI+U2VsZWN0PC9hPlxuICA8YSBocmVmPVwiI1wiIGFyaWEtbGFiZWw9XCJzdWJtaXQgZm9ybVwiIGNsYXNzPVwiYnV0dG9uIGJsb2NrXCI+QmxvY2sgTGV2ZWwgQnV0dG9uPC9hPlxuXG4gIDwhLS0gSWNvbnMgQ2xhc3Nlcy0tPlxuICA8YSBocmVmPVwiI1wiIGFyaWEtbGFiZWw9XCJzdWJtaXQgZm9ybVwiIGNsYXNzPVwiYnV0dG9uIGltZ1wiPlxuICAgIDxzdmcgY2xhc3M9XCJpY29uXCI+PHVzZSB4bGluazpocmVmPVwiL3N0YXRpYy9zcHJpdGVzL3N2Zy9zcHJpdGUuc3ltYm9sLnN2ZyN0d2l0dGVyXCIgLz48L3N2Zz5cbiAgPC9hPlxuXG4gIDwhLS0gRGlzYWJsZWQgQnV0dG9ucyAtLT5cbiAgPGJ1dHRvbiBocmVmPVwiI1wiIGFyaWEtbGFiZWw9XCJzdWJtaXQgZm9ybVwiIGNsYXNzPVwiYnV0dG9uIGRpc2FibGVkXCI+RGVmYXVsdDwvYnV0dG9uPlxuICA8YnV0dG9uIGhyZWY9XCIjXCIgYXJpYS1sYWJlbD1cInN1Ym1pdCBmb3JtXCIgY2xhc3M9XCJidXR0b24gc2Vjb25kYXJ5IGRpc2FibGVkXCI+U2Vjb25kYXJ5PC9idXR0b24+XG4gIDxidXR0b24gaHJlZj1cIiNcIiBhcmlhLWxhYmVsPVwic3VibWl0IGZvcm1cIiBjbGFzcz1cImJ1dHRvbiBhY3Rpb24gZGlzYWJsZWRcIj5BY3Rpb248L2J1dHRvbj5cbiAgPGEgaHJlZj1cIiNcIiBhcmlhLWxhYmVsPVwic3VibWl0IGZvcm1cIiBjbGFzcz1cImJ1dHRvbiByYWRpdXMgc2hhZG93IGRpc2FibGVkXCI+U2hhZG93PC9hPlxuICA8YSBocmVmPVwiI1wiIGFyaWEtbGFiZWw9XCJzdWJtaXQgZm9ybVwiIGNsYXNzPVwiYnV0dG9uIHJhZGl1cyBzZWNvbmRhcnkgc2hhZG93IGRpc2FibGVkXCI+U2Vjb25kYXJ5IFNoYWRvdzwvYT5cbiAgPGEgaHJlZj1cIiNcIiBhcmlhLWxhYmVsPVwic3VibWl0IGZvcm1cIiBjbGFzcz1cImJ1dHRvbiByYWRpdXMgYWN0aW9uIHNoYWRvdyBkaXNhYmxlZFwiPkFjdGlvbiBTaGFkb3c8L2E+XG4gIDxhIGhyZWY9XCIjXCIgYXJpYS1sYWJlbD1cInN1Ym1pdCBmb3JtXCIgY2xhc3M9XCJidXR0b24gaW1nIGRpc2FibGVkXCI+XG4gICAgPHN2ZyBjbGFzcz1cImljb25cIj48dXNlIHhsaW5rOmhyZWY9XCIvc3RhdGljL3Nwcml0ZXMvc3ZnL3Nwcml0ZS5zeW1ib2wuc3ZnI3R3aXR0ZXJcIiAvPjwvc3ZnPlxuICA8L2E+XG5cbjwhLS0gRm91bmRhdGlvbiBkZWZhdWx0LCBjdXJyZW50bHkgdW51c2VkXG48YnV0dG9uIGhyZWY9XCIjXCIgYXJpYS1sYWJlbD1cInN1Ym1pdCBmb3JtXCIgY2xhc3M9XCJidXR0b24gdGVydGlhcnlcIj5UZXJ0aWFyeTwvYnV0dG9uPlxuPGJ1dHRvbiBocmVmPVwiI1wiIGFyaWEtbGFiZWw9XCJzdWJtaXQgZm9ybVwiIGNsYXNzPVwiYnV0dG9uIHN1Y2Nlc3NcIj5TdWNjZXNzPC9idXR0b24+XG48YnV0dG9uIGhyZWY9XCIjXCIgYXJpYS1sYWJlbD1cInN1Ym1pdCBmb3JtXCIgY2xhc3M9XCJidXR0b24gYWxlcnRcIj5BbGVydDwvYnV0dG9uPlxuPGJ1dHRvbiBocmVmPVwiI1wiIGFyaWEtbGFiZWw9XCJzdWJtaXQgZm9ybVwiIGNsYXNzPVwiYnV0dG9uIGluZm9cIj5JbmZvPC9idXR0b24+XG48YSBocmVmPVwiI1wiIGFyaWEtbGFiZWw9XCJzdWJtaXQgZm9ybVwiIGNsYXNzPVwiYnV0dG9uIHJvdW5kXCI+Um91bmQgQnV0dG9uPC9hPlxuLS0+XG5gYGBcblxuWW91IGNhbiBtYWtlIGRpdmlkZWQgYnV0dG9ucyBieSBhZGRpbmcgdGhlIGAuZGl2aWRlZGAgY2xhc3MuIFRoZXkncmUgZXhwZWN0ZWQgdG8gaGF2ZSBlaXRoZXIgb25lIG9yIHR3b1xuY2hpbGRyZW4sIGVhY2ggYSBgPHNwYW4+YCBlbGVtZW50LCBtYXJraW5nIHRoZSBjb250ZW50IGRpdmlzaW9uLiBXaGVuIHRoZXJlIGFyZSB0d28gc3BhbnMsIHRoZSBmaXJzdFxud2lsbCB0YWtlIG9ubHkgdGhlIHNwYWNlIGl0IG5lZWRzLCBhbmQgdGhlIHNlY29uZCB3aWxsIGZpbGwgdGhlIHJlbWFpbmluZyBzcGFjZS4gV2hlbiB0aGVyZSBpcyBvbmx5IG9uZVxuc3BhbiwgdGhlIGJ1dHRvbiB3aWxsIGJlaGF2ZSBsaWtlIGEgbm9ybWFsIHVuZGl2aWRlZCBidXR0b24sIHNvIHRoYXQgYWRkaW5nIG9yIHJlbW92aW5nIGRpdmlkZWQgY29udGVudFxuZHluYW1pY2FsbHkgd2lsbCB3b3JrIGluIGEgZnJpZW5kbHkgd2F5LlxuXG5gYGBodG1sX2V4YW1wbGVcbjxkaXY+XG4gICAgPHNwYW4gY2xhc3M9XCJkaXNwbGF5LWlubGluZS1ibG9jayBibG9jay1ub3JtYWxcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBzaGFkb3cgcmFkaXVzIGRpdmlkZWRcIj48c3Bhbj4oMSk8L3NwYW4+PHNwYW4+RGl2aWRlZCBTaGFkb3c8L3NwYW4+PC9idXR0b24+XG4gICAgPC9zcGFuPlxuXG4gICAgPHNwYW4gY2xhc3M9XCJkaXNwbGF5LWlubGluZS1ibG9jayBibG9jay1ub3JtYWxcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBib3JkZXJlZCByYWRpdXMgZGl2aWRlZFwiPjxzcGFuPigyKTwvc3Bhbj48c3Bhbj5EaXZpZGVkIEJvcmRlcmVkPC9zcGFuPjwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cblxuICAgIDxzcGFuIGNsYXNzPVwiZGlzcGxheS1pbmxpbmUtYmxvY2sgYmxvY2stbm9ybWFsXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24gc2Vjb25kYXJ5IHJhZGl1cyBkaXZpZGVkXCI+PHNwYW4+KDMpPC9zcGFuPjxzcGFuPkRpdmlkZWQgU2Vjb25kYXJ5PC9zcGFuPjwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cblxuICAgIDxzcGFuIGNsYXNzPVwiZGlzcGxheS1pbmxpbmUtYmxvY2sgYmxvY2stbm9ybWFsXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24gYWN0aW9uIHJhZGl1cyBkaXZpZGVkXCI+PHNwYW4+KDM0MzUpPC9zcGFuPjxzcGFuPkRpdmlkZWQgQWN0aW9uPC9zcGFuPjwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cbjwvZGl2PlxuXG48YnV0dG9uIGNsYXNzPVwiYnV0dG9uIHNoYWRvdyBmdWxsLXdpZHRoIHJhZGl1cyBkaXZpZGVkXCI+PHNwYW4+KDM0MzUpPC9zcGFuPjxzcGFuPkRpdmlkZWQgRnVsbCBXaWR0aDwvc3Bhbj48L2J1dHRvbj5cbmBgYFxuXG5XaGVuIGluIGEgdWwsIHNldCB0aGUgcm9sZSAoYGxpW3JvbGU9YnV0dG9uXWApdG8gZXhwYW5kIGJ1dHRvbiB0byBmdWxsIHdpZHRoXG5cbmBgYGh0bWxfZXhhbXBsZVxuPHVsIGNsYXNzPVwibm8tYnVsbGV0XCI+XG4gICAgPGxpIHJvbGU9XCJidXR0b25cIiBhcmlhLWxhYmVsPVwiYXNrIGEgcXVlc3Rpb25cIiA+PGEgY2xhc3M9XCJidXR0b24gYm9yZGVyZWRcIiBocmVmPVwiI1wiPjxzdmcgY2xhc3M9XCJpY29uIGxpbmtcIj48dXNlIHhsaW5rOmhyZWY9XCIvc3RhdGljL3Nwcml0ZXMvc3ZnL3Nwcml0ZS5zeW1ib2wuc3ZnI3F1ZXN0aW9uXCIgLz48L3N2Zz5Bc2sgYSBRdWVzdGlvbjwvYT48L2xpPlxuPC91bD5cbmBgYFxuXG5gYGBzYXNzX2V4YW1wbGVcbi8vIFdoZW4gYnV0dG9uIGlzIGluIHVsLCB1c2UgZnVsbCB3aWR0aFxudWwgPiBsaVtyb2xlPWJ1dHRvbl0sXG5saVtyb2xlPWJ1dHRvbl0gPiAuYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cbmBgYFxuKi9cblxuW3JvbGU9YnV0dG9uXSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uc2VhcmNoLWJ1dHRvbiB7XG4gICAgJiA+IC5idXR0b24ge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxufVxuXG4uYnV0dG9uLnNlY29uZGFyeSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyAvLyBUT0RPOiB0ZW1wIHVudGlsIGZpZ3VyZSBvdXQgd2hhdCBpcyBpbiBfZ2xvYmFsXG59XG5cbi5idXR0b24uc2VsZWN0IHtcbiAgICBib3JkZXI6ICRpbnB1dC1ib3JkZXItd2lkdGggJGlucHV0LWJvcmRlci1zdHlsZSAkaW5wdXQtYm9yZGVyLWNvbG9yO1xuICAgIHBhZGRpbmctbGVmdDogMC41NjI1cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbn1cblxuLmJ1dHRvbi5hY3Rpb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhY3Rpb24tY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYWN0aW9uLXNoYWRvdy1jb2xvcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aW9uLXNoYWRvdy1jb2xvcjtcbiAgICB9XG4gICAgJi5kaXNhYmxlZDpob3ZlciwgJltkaXNhYmxlZF06aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aW9uLWNvbG9yO1xuICAgIH1cbn1cblxuLmJ1dHRvbi5ncmVlbi1wcm8ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRncmVlbi1wcm87XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdyZWVuLWZvcmVzdDtcbiAgICB9XG59XG5cbi5idXR0b24uZ3JlZW4tY2FyaWJiZWFuIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW4tY2FyaWJiZWFuO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRncmVlbi1wcm87XG4gICAgfVxufVxuXG4uYnV0dG9uLmdhaW5zYm9ybyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGdhaW5zYm9ybztcblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaXZvcnk7XG4gICAgfVxufVxuXG4uYnV0dG9uLnNhbGxpZS1tYWUtYmx1ZSB7XG4gICAgJHNhbGxpZS1tYWUtYmx1ZTogIzE2OEVDRDtcbiAgICAkc2FsbGllLW1hZS1ibHVlLWRhcms6ICMwODgwQkY7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2FsbGllLW1hZS1ibHVlO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzYWxsaWUtbWFlLWJsdWUtZGFyaztcbiAgICB9XG59XG5cbi5idXR0b24uc2hhZG93IHtcbiAgICBib3JkZXItY29sb3I6ICRwcmltYXJ5LXNoYWRvdy1jb2xvcjtcbiAgICBib3JkZXItd2lkdGg6IHJlbS1jYWxjKDEpO1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogcmVtLWNhbGMoMyk7XG5cbiAgICAvLyBSZW1vdmUgcGFkZGluZyBhZGRlZCBieSBhZGRpbmcgYm9yZGVyIHRvIGtlZXAgYnV0dG9uIHNpemVzIHRoZSBzYW1lXG4gICAgcGFkZGluZzogcmVtLWNhbGMoMTUuNSkgcmVtLWNhbGMoMjgpIHJlbS1jYWxjKDExLjUpIHJlbS1jYWxjKDI4KSA7XG5cbiAgICAmLnNtYWxsIHtcbiAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMTAuOCkgcmVtLWNhbGMoMTguNSkgcmVtLWNhbGMoNi44KSByZW0tY2FsYygxOC41KTtcbiAgICAgICAgJi5wb3N0Zml4IHtcbiAgICAgICAgICAgIC8vIFRPRE86IFRoaXMgbWFrZXMgbm8gc2Vuc2UgdG8gaGF2ZSB0byBkbywgSSBiZWxpZXZlIHRoZSBoZWlnaHRzIGZvIGFsbCB0aGVzZVxuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDI4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBlYWNoICRicmVha3BvaW50LCAkdmFyIGluICRicmVha3BvaW50LXZhcmlhYmxlcyB7XG4gICAgICAgICYuc21hbGwtZm9yLSN7JGJyZWFrcG9pbnR9IHtcbiAgICAgICAgICAgIEBtZWRpYSAjeyR2YXJ9IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygxMC44KSByZW0tY2FsYygxOC41KSByZW0tY2FsYyg2LjgpIHJlbS1jYWxjKDE4LjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi50aW55IHtcbiAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoOC4zKSByZW0tY2FsYygxMy4yKSByZW0tY2FsYyg0LjMpIHJlbS1jYWxjKDEzLjIpO1xuICAgIH1cblxuICAgICYuc2Vjb25kYXJ5IHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkc2Vjb25kYXJ5LXNoYWRvdy1jb2xvcjtcbiAgICB9XG5cbiAgICAmLmFjdGlvbiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGFjdGlvbi1zaGFkb3ctY29sb3I7XG4gICAgfVxuXG59XG5cbi5idXR0b24uYm9yZGVyZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkYW5jaG9yLWZvbnQtY29sb3I7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGFuY2hvci1mb250LWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDMpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiByZW0tY2FsYygxNC41KSByZW0tY2FsYyg3KTtcblxuICAgICYuc21hbGwge1xuICAgICAgICBwYWRkaW5nOiByZW0tY2FsYyg5LjgpIHJlbS1jYWxjKDcpO1xuICAgIH1cblxuICAgICYudGlueSB7XG4gICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDYuNzUpIHJlbS1jYWxjKDcpO1xuICAgIH1cblxuICAgICYgPiAuaWNvbiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogcmVtLWNhbGMoNSk7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAkYW5jaG9yLWZvbnQtY29sb3ItaG92ZXI7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRhbmNob3ItZm9udC1jb2xvci1ob3ZlcjtcblxuICAgICAgICAmID4gLmljb24ge1xuICAgICAgICAgICAgZmlsbDogJGFuY2hvci1mb250LWNvbG9yLWhvdmVyO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAmLmRhcmtlbi1ob3Zlcjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsLjMpO1xuICAgIH1cbn1cblxuLmJ1dHRvbi5pbWcge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbWctYmFja2dyb3VuZC1jb2xvcjtcbiAgICBwYWRkaW5nOiByZW0tY2FsYyg5KSByZW0tY2FsYygxOCk7XG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbG9yOiAkaW1nLWljb24tY29sb3I7XG5cbiAgICAmID4gLmljb24ge1xuICAgICAgICBmaWxsOiAkaW1nLWljb24tY29sb3I7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbWctaWNvbi1jb2xvcjtcbiAgICAgICAgY29sb3I6ICRpbWctYmFja2dyb3VuZC1jb2xvcjtcblxuICAgICAgICAmID4gLmljb24ge1xuICAgICAgICAgICAgZmlsbDogJGltZy1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5kaXNhYmxlZDpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbWctYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgY29sb3I6ICRpbWctaWNvbi1jb2xvcjtcblxuICAgICAgICAmID4gLmljb24ge1xuICAgICAgICAgICAgZmlsbDogJGltZy1pY29uLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uYnV0dG9uLmRpdmlkZWQge1xuICAgIEBleHRlbmQgLmZsZXg7XG4gICAgQGV4dGVuZCAuZmxleC1ub3dyYXA7XG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OiBoaWRkZW47IC8vIHRvIGNsaXAgdGhlIGJvcmRlciBwc2V1ZG8tZWxlbWVudCBjcmVhdGVkIGJlbG93XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAvLyBzaW5jZSB0aGUgYm9yZGVyIHBzZXVkbyBlbGVtZW50IHdpbGwgYmUgcmVsYXRpdmUgdG8gdGhpc1xuXG4gICAgLy8gVGhlIHR3byBpbW1lZGlhdGUgY2hpbGRyZW4gb2YgYSBkaXZpZGVkIGJ1dHRvbiBhcmUgZXhwZWN0ZWQgdG8gYmUgc3BhbnMsXG4gICAgLy8gZGVsaW5lYXRpbmcgdGhlIGNvbnRlbnQgZGl2aXNpb24uXG4gICAgPiBzcGFuIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDIgKiAkYnV0dG9uLW1lZDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMiAqICRidXR0b24tbWVkO1xuICAgIH1cblxuICAgICYuc21hbGwgPiBzcGFuIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyICogJGJ1dHRvbi1zbWw7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDIgKiAkYnV0dG9uLXNtbDtcbiAgICB9XG5cbiAgICAmLnRpbnkgPiBzcGFuIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyICogJGJ1dHRvbi10bnk7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDIgKiAkYnV0dG9uLXRueTtcbiAgICB9XG5cbiAgICAvLyBUaGUgZmlyc3QgKGFuZCBub3Qgb25seSkgc3BhbiB3aWxsIHVzZSBvbmx5IHRoZSB3aWR0aCBpdCBuZWVkcywgYW5kIHdpbGxcbiAgICAvLyBnZW5lcmF0ZSBhIGJvcmRlciBwc2V1ZG8gZWxlbWVudFxuICAgID4gc3BhbjpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkYnV0dG9uLW1lZDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGJ1dHRvbi1tZWQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogaW5oZXJpdDsgLy8gaW5oZXJpdCB0aGUgYnV0dG9uJ3MgYm9yZGVyIGNvbG9yLCBzbyB3ZSBjYW4gcGFzcyBpdCBkb3duIHRvIHRoZSBwc2V1ZG8gZWxlbWVudFxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGhlaWdodDogMjAwJTtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogMDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMnB4O1xuICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogaW5oZXJpdDsgLy8gdWx0aW1hdGVseSBpbmhlcml0aW5nIGZyb20gdGhlIGJ1dHRvbiBpdHNlbGZcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkYnV0dG9uLW1lZDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0kYnV0dG9uLW1lZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuc21hbGwgPiBzcGFuOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRidXR0b24tc21sO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkYnV0dG9uLXNtbDtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkYnV0dG9uLXNtbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYudGlueSA+IHNwYW46Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJGJ1dHRvbi10bnk7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRidXR0b24tdG55O1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRidXR0b24tdG55O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVGhlIGRpdmlkZXIgaXMgbm9ybWFsbHkgMnB4IHdpZGUsIGV4Y2VwdCBpbiB0aGUgY2FzZSBvZiB0aGUgXCIuYm9yZGVyZWRcIiBidXR0b24sXG4gICAgLy8gd2hpY2ggaGFzIGZpbmUgYm9yZGVycywgc28gd2UgZ28gZG93biB0byAxcHguXG4gICAgJi5ib3JkZXJlZCA+IHNwYW46Zmlyc3QtY2hpbGQ6YWZ0ZXIge1xuICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDFweDtcbiAgICB9XG5cbiAgICAvLyBUaGUgcmVtYWluaW5nIGNoaWxkcmVuIChvciB0aGUgb25seSBjaGlsZCwgaWYgdGhlcmUncyBvbmx5IG9uZSkgZGl2aWRlXG4gICAgLy8gYWxsIG9mIHRoZSByZW1haW5pbmcgd2lkdGggYmV0d2VlbiB0aGVtLCB1c2luZyBmbGV4XG4gICAgPiBzcGFuOm5vdCg6Zmlyc3QtY2hpbGQpLCA+IHNwYW46bGFzdC1jaGlsZCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn1cblxuLmJ1dHRvbi5ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgQGF0LXJvb3QgaW5wdXQjeyZ9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG5AbWVkaWEgI3skc21hbGwtb25seX0ge1xuICAgIC5idXR0b24uZnVsbCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn1cblxuLy8gV2hlbiBidXR0b24gaXMgaW4gdWwsIHVzZSBmdWxsIHdpZHRoXG51bCA+IGxpW3JvbGU9YnV0dG9uXSxcbmxpW3JvbGU9YnV0dG9uXSA+IC5idXR0b24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKmRvY1xuLS0tXG50aXRsZTogQWNjZXNzaWJpbGl0eVxubmFtZTogdy1hY2Nlc3NpYmlsaXR5XG5jYXRlZ29yeTogQnV0dG9ucyAtIEJ1dHRvbnNcbi0tLVxuXG5cblVzZSB0aGUgc25pcHBldCBiZWxvdyB0byBtYWtlIGJ1dHRvbnMgbW9yZSBhY2Nlc3NpYmxlLiBZb3UgY2FuIHVzZSBhblxuYGFyaWEtbGFiZWw9XCJzdWJtaXQgZm9ybVwiYCBhdHRyaWJ1dGUgdG8gZ2l2ZSBhIHNjcmVlbiByZWFkZXIgdGhlIGxpdGVyYWxcbnB1cnBvc2Ugb2YgdGhlIGJ1dHRvbiBpZiB0aGVyZSBpcyBubyB0ZXh0IGluIGl0LiBJZiB0aGVyZSBpcyBub1xuYDxhIGhyZWY9XCJcIj5gIHRoZW4gc2ltcGx5IGFkZCB0aGUgYHRhYmluZGV4PVwiMFwiYCB0byB0aGUgZGl2IG9yIHNwYW4gdG8gbWFrZVxuaXQgZm9jdXNhYmxlLlxuXG5gYGBodG1sX2V4YW1wbGVcbjxhIHJvbGU9XCJidXR0b25cIiBocmVmPVwiI1wiIGNsYXNzPVwiYnV0dG9uXCI+RGVmYXVsdCBCdXR0b248L2E+XG48YSByb2xlPVwiYnV0dG9uXCIgYXJpYS1sYWJlbD1cInN1Ym1pdCBmb3JtXCIgaHJlZj1cIiNcIiBjbGFzcz1cImJ1dHRvblwiPlN1Ym1pdDwvYT5cbjxkaXYgcm9sZT1cImJ1dHRvblwiIHRhYmluZGV4PVwiMFwiIGNsYXNzPVwiYnV0dG9uXCI+RGVmYXVsdCBCdXR0b248L2Rpdj5cbmBgYFxuKi9cblxuXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBGb3VuZGF0aW9uIFNldHRpbmdzXG5uYW1lOiB6LWZvdW5kYXRpb24tc2V0dGluZ3NcbmNhdGVnb3J5OiBCdXR0b25zIC0gQnV0dG9uc1xuLS0tXG5cblRoZXNlIGFyZSB0aGUgZGVmYXVsdCBGb3VuZGF0aW9uIGJ1dHRvbiB2YXJpYWJsZXMgd2UgY2FuIGVkaXQgZnJvbSBgXy5zZXR0aW5ncy5zY3NzYC5cblRoZXkgYXJlIG92ZXJyaWRkZW4gYnkgY29sb3JzIHNldCBpbiBgX3ZhcmlhYmxlcy5zY3NzYFxuXG5gYGBzYXNzX2V4YW1wbGVcbkByZWYtZG9jIEJ1dHRvbnNcblxuYGBgXG4qL1xuXG4vKmRvY1xuLS0tXG50aXRsZTogTWl4aW5cbm5hbWU6IHgtbWl4aW5cbmNhdGVnb3J5OiBCdXR0b25zIC0gQnV0dG9uc1xuLS0tXG5cbllvdSBjYW4gY3JlYXRlIHlvdXIgb3duIGJ1dHRvbnMgdXNpbmcgYSBtaXhpbi5cblxuYGBgc2Fzc19leGFtcGxlXG4vLyBVc2luZyB0aGUgYXZhaWxhYmxlIG9wdGlvbnNcbi5jdXN0b20tYnV0dG9uLWNsYXNzIHtcbiAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICRwYWRkaW5nLFxuICAgICAgICAvLyAkcGFkZGluZ1xuICAgICAgICAvLyBEZWZhdWx0OiAkYnV0dG9uLW1lZCBvciByZW0tY2FsYygxMilcblxuICAgICAgICAkYmcsXG4gICAgICAgIC8vIEJhY2tncm91bmQgY29sb3IuXG4gICAgICAgIC8vIFdlIGNhbiBzZXQgJGJnOmZhbHNlIGZvciBhIHRyYW5zcGFyZW50IGJhY2tncm91bmQuXG4gICAgICAgIC8vIERlZmF1bHQ6ICRwcmltYXJ5LWNvbG9yLlxuXG4gICAgICAgICRyYWRpdXMsXG4gICAgICAgIC8vIElmIHRydWUsIHNldCB0byBidXR0b24gcmFkaXVzIHdoaWNoIGlzICRnbG9iYWwtcmFkaXVzXG4gICAgICAgIC8vIG9yIGV4cGxpY2l0bHkgc2V0IHJhZGl1cyBhbW91bnQgaW4gcHggKGV4LiAkcmFkaXVzOjEwcHgpLlxuICAgICAgICAvLyBEZWZhdWx0OmZhbHNlLlxuXG4gICAgICAgICRmdWxsLXdpZHRoLFxuICAgICAgICAvLyBXZSBjYW4gc2V0ICRmdWxsLXdpZHRoOnRydWUgdG8gcmVtb3ZlIHNpZGUgcGFkZGluZyBleHRlbmQgd2lkdGguXG4gICAgICAgIC8vIERlZmF1bHQ6ZmFsc2VcblxuICAgICAgICAkZGlzYWJsZWQsXG4gICAgICAgIC8vIFdlIGNhbiBzZXQgJGRpc2FibGVkOnRydWUgdG8gY3JlYXRlIGEgZGlzYWJsZWQgdHJhbnNwYXJlbnQgYnV0dG9uLlxuICAgICAgICAvLyBEZWZhdWx0OmZhbHNlXG5cbiAgICAgICAgJGlzLWlucHV0XG4gICAgICAgIC8vICRpcy1pbnB1dCAtIDxpbnB1dD5zIGFuZCA8YnV0dG9uPnMgdGFrZSBvbiBzdHJhbmdlIHBhZGRpbmcuXG4gICAgICAgIC8vIFdlIGFkZGVkIHRoaXMgdG8gaGVscCBmaXggdGhhdC5cbiAgICAgICAgLy8gRGVmYXVsdDpmYWxzZVxuICAgICk7XG59XG5gYGBcbkhlcmUgaXMgYSBidXR0b24gd2Ugd291bGQgbmV2ZXIgdXNlLCBidXQgeW91IGNhbiBzZWUgaG93IHRvIGJ1aWxkIGl0IHdpdGggdGhlIGBidXR0b24oKWAgbWl4aW46XG5cbmBgYCBodG1sX2V4YW1wbGVcbjxidXR0b24gY2xhc3M9XCJjdXN0b20tYnV0dG9uLWNsYXNzXCI+Q3VzdG9tIEJ1dHRvbiBDbGFzcyBFeGFtcGxlPC9idXR0b24+XG5gYGBcblxuYGBgIHNhc3NfZXhhbXBsZVxuLmN1c3RvbS1idXR0b24tY2xhc3Mge1xuICAgIEBpbmNsdWRlIGJ1dHRvbigkcGFkZGluZzpyZW0tY2FsYyg1KSwgJGJnOiNCQURBNTUsICRyYWRpdXM6M3B4KTtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDEwKTtcbn1cbmBgYFxuKi9cblxuLy9kZW1vXG4uY3VzdG9tLWJ1dHRvbi1jbGFzcyB7XG4gICAgQGluY2x1ZGUgYnV0dG9uKCRwYWRkaW5nOnJlbS1jYWxjKDUpLCAkYmc6JHN0eWxlZ3VpZGUtZGVtby1jb2xvciwgJHJhZGl1czozcHgpO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTApO1xufVxuLy9lbmRkZW1vXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBMaW5raWZ5IEJ1dHRvbnNcbm5hbWU6IGQtYnV0dG9uc1xuY2F0ZWdvcnk6IEJ1dHRvbnMgLSBCdXR0b25zXG5zZWxlY3RvcnM6XG4gICAgLSAuYnV0dG9uLmxpbmtpZnlcbnNlbGVjdG9yX3R5cGU6IGNvbXBvbmVudFxuLS0tXG5cblNvbWV0aW1lcyB3ZSB3YW50IHRvIHR1cm4gYSBidXR0b24gaW50byBhIGxpbmsgZm9yIGBsYXJnZS11cGAuIERvIHRoaXMgYnkgYWRkaW5nXG5gLmxpbmtpZnlgIGFuZCBmb3IgYGxhcmdlLXVwYCBpdCBraWxscyB0aGUgYnV0dG9uIHN0eWxlcyBtYWtpbmcgaXQgbG9va1xubGlrZSBhIHJlZ3VsYXIgbGluay5cblxuYGBgaHRtbF9leGFtcGxlXG48YSBjbGFzcz1cImJ1dHRvbiBib3JkZXJlZCBsaW5raWZ5XCIgaHJlZj1cImphdmFzY3JpcHQ6IGFsZXJ0KCdQcm92aWRlIHRlbXAgb3IgcGVybWFuZW50IHVybCcpXCI+XG4gICAgU2VlIGFsbCBTdG9ja3MgUmFua2luZ3MgJmFtcDsgTGlzdHNcbiAgICA8c3BhbiBjbGFzcz1cInNob3ctZm9yLWxhcmdlLXVwIGRpc3BsYXktaW5saW5lLWZvci1sYXJnZS11cFwiPiZyYXF1bzs8L3NwYW4+XG48L2E+XG5gYGBcbiovXG5cbkBpbmNsdWRlIGZyb20oYnAtbGFyZ2UpIHtcbiAgICAuYnV0dG9uLmxpbmtpZnkge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGNvbG9yOiAkYW5jaG9yLWZvbnQtY29sb3I7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8gU2VhcmNoIElucHV0IFN0eWxlc1xuJGlucHV0LXNlYXJjaC1wYWRkaW5nOiAwIHJlbS1jYWxjKDE2KSAwIHJlbS1jYWxjKDMyKTtcbiRpbnB1dC1zZWFyY2gtaWNvbi1zaXplOiByZW0tY2FsYygxOCk7XG4kaW5wdXQtc2VhcmNoLWljb24tY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4kaW5wdXQtc2VhcmNoLWZvbnQtc2l6ZTogJHRleHQtc21hbGw7XG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBGb3Jtc1xubmFtZTogYS1mb3Jtc1xuY2F0ZWdvcnk6IEZvcm1zIC0gRm9ybXNcbi0tLVxuXG4jIyMgQnVpbGRpbmcgRm9ybXMgV2l0aCBIVE1MXG5cbkZvcm1zIGFyZSBidWlsdCB3aXRoIGEgY29tYmluYXRpb24gb2Ygc3RhbmRhcmQgZm9ybSBlbGVtZW50cywgYXMgd2VsbCBhcyB0aGUgR3JpZCAocm93cyBhbmQgY29sdW1ucykuXG5cbkZvcm0gZWxlbWVudHMgYXJlIHN0eWxlZCBiYXNlZCBvbiB0aGVpciB0eXBlIGF0dHJpYnV0ZSByYXRoZXIgdGhhbiBhIGNsYXNzLCBhbmQgY2FuIGJlIHNpemVkIGluIGEgY291cGxlIG9mIHdheXM6XG5cbi0gWW91IGNhbiBzaXplIGlucHV0cyB1c2luZyBjb2x1bW4gc2l6ZXMsIGxpa2UgYC5sYXJnZS02YCwgYC5zbWFsbC02YC5cbi0gWW91IGNhbiBjcmVhdGUgcm93IGVsZW1lbnRzIGluc2lkZSB5b3VyIGZvcm0gYW5kIHVzZSBjb2x1bW5zIGZvciB0aGUgZm9ybSwgaW5jbHVkaW5nIGlucHV0cywgbGFiZWxzIGFuZCBtb3JlLlxuUm93cyBpbnNpZGUgYSBmb3JtIGluaGVyaXQgc29tZSBzcGVjaWFsIHBhZGRpbmcgdG8gZXZlbiB1cCBpbnB1dCBzcGFjaW5nLlxuXG5UaGlzIGlzIGFuIGV4YW1wbGUgZm9ybSB3ZSd2ZSBjcmVhdGVkIHRoYXQgaXMgbGFpZCBvdXQgdXNpbmcgdGhlIGdyaWQ6XG5cbmBgYGh0bWxfZXhhbXBsZVxuICA8Zm9ybT5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibGFyZ2UtMTIgY29sdW1uc1wiPlxuICAgICAgICA8bGFiZWw+SW5wdXQgTGFiZWxcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cImxhcmdlLTEyLmNvbHVtbnNcIiAvPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImxhcmdlLTQgY29sdW1uc1wiPlxuICAgICAgICA8bGFiZWw+SW5wdXQgTGFiZWxcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cImxhcmdlLTQuY29sdW1uc1wiIC8+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsYXJnZS00IGNvbHVtbnNcIj5cbiAgICAgICAgPGxhYmVsPklucHV0IExhYmVsXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJsYXJnZS00LmNvbHVtbnNcIiAvPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibGFyZ2UtNCBjb2x1bW5zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgY29sbGFwc2VcIj5cbiAgICAgICAgICA8bGFiZWw+SW5wdXQgTGFiZWw8L2xhYmVsPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC05IGNvbHVtbnNcIj5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwic21hbGwtOS5jb2x1bW5zXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGwtMyBjb2x1bW5zXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBvc3RmaXhcIj4uY29tPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsYXJnZS0xMiBjb2x1bW5zXCI+XG4gICAgICAgIDxsYWJlbD5TZWxlY3QgQm94XG4gICAgICAgICAgPHNlbGVjdD5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJodXNrZXJcIj5IdXNrZXI8L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJzdGFyYnVja1wiPlN0YXJidWNrPC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiaG90ZG9nXCI+SG90IERvZzwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImFwb2xsb1wiPkFwb2xsbzwvb3B0aW9uPlxuICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImxhcmdlLTYgY29sdW1uc1wiPlxuICAgICAgICA8bGFiZWw+Q2hvb3NlIFlvdXIgRmF2b3JpdGU8L2xhYmVsPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNvbnRyb2wgcmFkaW9cIj5cbiAgICAgICAgICA8aW5wdXQgaWQ9XCJyYWQxXCIgbmFtZT1cInJhZGlvXCIgdHlwZT1cInJhZGlvXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNvbnRyb2wtaW5kaWNhdG9yXCI+PC9zcGFuPlxuICAgICAgICAgIFJhZGlvIDFcbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jb250cm9sIHJhZGlvXCI+XG4gICAgICAgICAgPGlucHV0IGlkPVwicmFkMlwiIG5hbWU9XCJyYWRpb1wiIHR5cGU9XCJyYWRpb1wiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jb250cm9sLWluZGljYXRvclwiPjwvc3Bhbj5cbiAgICAgICAgICBSYWRpbyAyXG4gICAgICAgIDwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsYXJnZS02IGNvbHVtbnNcIj5cbiAgICAgICAgPGxhYmVsPkNoZWNrIHRoZXNlIG91dDwvbGFiZWw+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY29udHJvbCBjaGVja2JveFwiPlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNvbnRyb2wtaW5kaWNhdG9yXCI+PC9zcGFuPlxuICAgICAgICAgICAgQ2hlY2tib3ggMVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNvbnRyb2wgY2hlY2tib3hcIj5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jb250cm9sLWluZGljYXRvclwiPjwvc3Bhbj5cbiAgICAgICAgICAgIENoZWNrYm94IDJcbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsYXJnZS0xMiBjb2x1bW5zXCI+XG4gICAgICAgIDxsYWJlbD5UZXh0YXJlYSBMYWJlbFxuICAgICAgICAgIDx0ZXh0YXJlYSBwbGFjZWhvbGRlcj1cInNtYWxsLTEyLmNvbHVtbnNcIj48L3RleHRhcmVhPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZm9ybT5cbmBgYFxuKi9cblxuLypkb2Ncbi0tLVxudGl0bGU6IEZvcm0gZWxlbWVudCBzaXplc1xubmFtZTogYi1mb3JtLWVsZW1lbnQtc2l6aW5nXG5jYXRlZ29yeTogRm9ybXMgLSBGb3Jtc1xuLS0tXG5XZSBoYXZlIGlucHV0cyB0byBtYXRjaCB0aGUgc2l6ZSBvZiBidXR0b24uIEp1c3QgYWRkIHRoZSBgLnRpbnlgLCBgLnNtYWxsYCBvciBgLm1lZGl1bWAgbW9kaWZpZXIgdG8gdGhlIGZvcm0gZWxlbWVudC5cblxuRGVmYXVsdCBzaXplcyBvZiBlbGVtZW50cyBhcmUgMzBweCBmb3IgdGlueSwgNDBweCBmb3Igc21hbGwgYW5kIDUwcHggZm9yIE1lZGl1bVxuXG5Ob3RlIHRoYXQgdGhlIGAubWVkaXVtYCBjbGFzcyBpcyByZXF1aXJlZCB0byBvdmVycmlkZSBGb3VuZGF0aW9uJ3MgZGVmYXVsdCBzaXplLlxuXG5gYGBodG1sX2V4YW1wbGU/a2l0Y2hlbi1zaW5rPXRydWVcbjxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwibGFyZ2UtNCBjb2x1bW5zXCI+XG4gICAgICAgIDxsYWJlbD5UaW55IElucHV0XG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJ0aW55XCIgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cInRpbnkgaW5wdXRcIiAvPlxuICAgICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJsYXJnZS00IGNvbHVtbnNcIj5cbiAgICAgICAgPGxhYmVsPlRpbnkgU2VsZWN0IEJveFxuICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJ0aW55XCI+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiaHVza2VyXCI+SHVza2VyPC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwic3RhcmJ1Y2tcIj5TdGFyYnVjazwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImhvdGRvZ1wiPkhvdCBEb2c8L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJhcG9sbG9cIj5BcG9sbG88L29wdGlvbj5cbiAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibGFyZ2UtNCBjb2x1bW5zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgY29sbGFwc2VcIj5cbiAgICAgICAgICAgIDxsYWJlbD5UaW55IElucHV0IHdpdGggUG9zdGZpeDwvbGFiZWw+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGwtOSBjb2x1bW5zXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwidGlueVwiIHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJ0aW55IHBvc3RmaXhcIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGwtMyBjb2x1bW5zXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aW55IHBvc3RmaXhcIj4uY29tPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwibGFyZ2UtNCBjb2x1bW5zXCI+XG4gICAgICAgIDxsYWJlbD5TbWFsbCBJbnB1dFxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwic21hbGxcIiB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwic21hbGwgaW5wdXRcIiAvPlxuICAgICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJsYXJnZS00IGNvbHVtbnNcIj5cbiAgICAgICAgPGxhYmVsPlNtYWxsIFNlbGVjdCBCb3hcbiAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwic21hbGxcIj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJodXNrZXJcIj5IdXNrZXI8L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJzdGFyYnVja1wiPlN0YXJidWNrPC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiaG90ZG9nXCI+SG90IERvZzwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImFwb2xsb1wiPkFwb2xsbzwvb3B0aW9uPlxuICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJsYXJnZS00IGNvbHVtbnNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBjb2xsYXBzZVwiPlxuICAgICAgICAgICAgPGxhYmVsPlNtYWxsIElucHV0IHdpdGggUG9zdGZpeDwvbGFiZWw+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGwtOSBjb2x1bW5zXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwic21hbGxcIiB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwic21hbGwgcG9zdGZpeFwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC0zIGNvbHVtbnNcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNtYWxsIHBvc3RmaXhcIj4uY29tPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwibGFyZ2UtNCBjb2x1bW5zXCI+XG4gICAgICAgIDxsYWJlbD5NZWRpdW0gSW5wdXRcbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cIm1lZGl1bVwiIHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJkZWZhdWx0IGlucHV0XCIgLz5cbiAgICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibGFyZ2UtNCBjb2x1bW5zXCI+XG4gICAgICAgIDxsYWJlbD5NZWRpdW0gU2VsZWN0IEJveFxuICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJtZWRpdW1cIiA+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiaHVza2VyXCI+SHVza2VyPC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwic3RhcmJ1Y2tcIj5TdGFyYnVjazwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImhvdGRvZ1wiPkhvdCBEb2c8L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJhcG9sbG9cIj5BcG9sbG88L29wdGlvbj5cbiAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibGFyZ2UtNCBjb2x1bW5zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgY29sbGFwc2VcIj5cbiAgICAgICAgICAgIDxsYWJlbD5NZWRpdW0gSW5wdXQgd2l0aCBQb3N0Zml4PC9sYWJlbD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC05IGNvbHVtbnNcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJtZWRpdW1cIiB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwicG9zdGZpeFwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC0zIGNvbHVtbnNcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lZGl1bSBwb3N0Zml4XCI+LmNvbTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuYGBgXG4qL1xuXG4vLyB2YXJpYWJsZXMgdG8gc2V0IGhlaWdodCBhbmQgZm9udC1zaXplIG9mIHRpbnkgZm9ybSBlbGVtZW50c1xuJGlucHV0LWZvbnQtc2l6ZS10aW55OiAkYnV0dG9uLWZvbnQtdG55O1xuXG4kZm9ybS1zcGFjaW5nLXRpbnk6IHJlbS1jYWxjKDEyKTtcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiRmb3JtLWhlaWdodC10aW55OiByZW0tY2FsYygzMCk7XG4kZm9ybS1oZWlnaHQtc21hbGw6IHJlbS1jYWxjKDQwKTtcbiRmb3JtLWhlaWdodC1tZWRpdW06IHJlbS1jYWxjKDUwKTtcblxuc2VsZWN0LCAuc2VsZWN0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiByZW0tY2FsYygyNCk7IC8vIHRvIG1ha2Ugcm9vbSBmb3IgdGhlIGRyb3Bkb3duIGFycm93XG59XG5cbmlucHV0LnRpbnksXG5zZWxlY3QudGlueSB7XG4gICAgaGVpZ2h0OiAkZm9ybS1oZWlnaHQtdGlueTtcbiAgICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nIDA7XG4gICAgcGFkZGluZzogJGZvcm0tc3BhY2luZy10aW55IC8gMjtcbiAgICBwYWRkaW5nLXJpZ2h0OiByZW0tY2FsYygyNCk7IC8vIHRvIG1ha2Ugcm9vbSBmb3IgdGhlIGRyb3Bkb3duIGFycm93XG4gICAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplLXRpbnk7XG59XG5cbmlucHV0LnNtYWxsLFxuc2VsZWN0LnNtYWxsIHtcbiAgICBoZWlnaHQ6ICRmb3JtLWhlaWdodC1zbWFsbDtcbiAgICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nIDA7XG4gICAgcGFkZGluZzogJGZvcm0tc3BhY2luZyAvIDI7XG4gICAgcGFkZGluZy1yaWdodDogcmVtLWNhbGMoMjQpO1xufVxuLy8gdXNlZCBmb3IgcmVwbGljYXRpbmcgZm9ybSBzcGFjaW5nIG9uIGVsZW1lbnRzIGlubGluZSB3aXRoIG90aGVyIGlucHV0c1xuZGl2LnNtYWxsLWZvcm0tc3BhY2luZyB7XG4gICAgaGVpZ2h0OiAkZm9ybS1oZWlnaHQtc21hbGw7XG4gICAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZyAwO1xuICAgIHBhZGRpbmc6ICRmb3JtLXNwYWNpbmcgLyAyO1xufVxuXG5pbnB1dC5tZWRpdW0sXG5zZWxlY3QubWVkaXVtIHtcbiAgICBoZWlnaHQ6ICRmb3JtLWhlaWdodC1tZWRpdW07XG4gICAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZyAwO1xuICAgIHBhZGRpbmc6ICRmb3JtLXNwYWNpbmcgLyAyO1xuICAgIHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDI0KTtcbn1cblxuLnByZWZpeC5zaGFkb3cgeyAvLyBPdmVycmlkZSBGb3VuZGF0aW9uJ3MgZGVmYXVsdFxuICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuXG4ucG9zdGZpeC50aW55LFxuLnByZWZpeC50aW55IHtcbiAgICBoZWlnaHQ6ICRmb3JtLWhlaWdodC10aW55O1xuICAgIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZS10aW55O1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9ybS1oZWlnaHQtdGlueTtcbiAgICAmLmJ1dHRvbiB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7IC8vIHRoaXMgdmVydCBjZW50ZXJzIGZvciBhIGJ1dHRvblxuICAgIH1cbn1cblxuLnBvc3RmaXguc21hbGwsXG4ucHJlZml4LnNtYWxsIHtcbiAgICBoZWlnaHQ6ICRmb3JtLWhlaWdodC1zbWFsbDtcbiAgICBsaW5lLWhlaWdodDogJGZvcm0taGVpZ2h0LXNtYWxsO1xuICAgICYuYnV0dG9uIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgLy8gdGhpcyB2ZXJ0IGNlbnRlcnMgZm9yIGEgYnV0dG9uXG4gICAgfVxufVxuXG4ucG9zdGZpeC5tZWRpdW0sXG4ucHJlZml4Lm1lZGl1bSB7XG4gICAgaGVpZ2h0OiAkZm9ybS1oZWlnaHQtbWVkaXVtO1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9ybS1oZWlnaHQtbWVkaXVtO1xuICAgICYuYnV0dG9uIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgLy8gdGhpcyB2ZXJ0IGNlbnRlcnMgZm9yIGEgYnV0dG9uXG4gICAgfVxufVxuXG4vKmRvY1xuLS0tXG50aXRsZTogU2VhcmNoIElucHV0XG5uYW1lOiBiLXNlYXJjaC1pbnB1dC1zZWFyY2gtaW5wdXRcbmNhdGVnb3J5OiBGb3JtcyAtIEZvcm1zXG4tLS1cblxuYGBgaHRtbF9leGFtcGxlP2tpdGNoZW4tc2luaz10cnVlXG48bGFiZWwgZm9yPVwiXCIgY2xhc3M9XCJpbnB1dC1zZWFyY2hcIj5cbiAgICA8c3ZnIGNsYXNzPVwiaWNvbi1zZWFyY2gtYm94XCI+PHVzZSB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiB4bGluazpocmVmPVwiL3N0YXRpYy9zcHJpdGVzL3N2Zy9zcHJpdGUuc3ltYm9sLnN2ZyNzZWFyY2hcIj48L3VzZT48L3N2Zz5cbiAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaFwiPlxuPC9sYWJlbD5cbmBgYFxuKi9cblxuLy8gbWF5YmUgcmVmYWN0b3IgaW50byBhIG1peGluIHRoYXQgdGFrZXMgaWNvbiBhbmQgZGltcyBhcyBhcmdcbi5pbnB1dC1zZWFyY2gge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5pY29uLXNlYXJjaC1ib3gge1xuICAgICAgICBAaW5jbHVkZSB6LWluZGV4O1xuICAgICAgICBmaWxsOiAkaW5wdXQtc2VhcmNoLWljb24tY29sb3I7XG4gICAgICAgIGhlaWdodDogJGlucHV0LXNlYXJjaC1pY29uLXNpemU7XG4gICAgICAgIHdpZHRoOiAkaW5wdXQtc2VhcmNoLWljb24tc2l6ZTtcbiAgICAgICAgbWFyZ2luLXRvcDogLSgkaW5wdXQtc2VhcmNoLWljb24tc2l6ZSAvIDIpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiByZW0tY2FsYyg4KTtcbiAgICB9XG5cbiAgICBpbnB1dCB7XG4gICAgICAgIC8vIGhtbSwgdGFnIHNlbGVjdG9yP1xuICAgICAgICBmb250LXNpemU6ICRpbnB1dC1zZWFyY2gtZm9udC1zaXplO1xuICAgICAgICBwYWRkaW5nOiAkaW5wdXQtc2VhcmNoLXBhZGRpbmc7XG4gICAgICAgIGhlaWdodDogcmVtLWNhbGMoMzQpO1xuICAgIH1cbn1cblxuJHNlbGVjdC1hcnJvdzogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIWmxjbk5wYjI0OUlqRXVNU0lnZUQwaU1USndlQ0lnZVQwaU1IQjRJaUIzYVdSMGFEMGlNalJ3ZUNJZ2FHVnBaMmgwUFNJemNIZ2lJSFpwWlhkQ2IzZzlJakFnTUNBMklETWlJR1Z1WVdKc1pTMWlZV05yWjNKdmRXNWtQU0p1WlhjZ01DQXdJRFlnTXlJZ2VHMXNPbk53WVdObFBTSndjbVZ6WlhKMlpTSStQSEJ2YkhsbmIyNGdjRzlwYm5SelBTSTFMams1TWl3d0lESXVPVGt5TERNZ0xUQXVNREE0TERBZ0lpOCtQQzl6ZG1jKyk7XG5zZWxlY3QsIC5zZWxlY3Qge1xuICAgIGJhY2tncm91bmQ6ICRzZWxlY3QtYXJyb3csIC13ZWJraXQtbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2IoMjM2LCAyMzYsIDIzNikgMCUsIHJnYigyNTUsIDI1NSwgMjU1KSAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuXG4uc2VsZWN0LXdoaXRlIHtcbiAgICBiYWNrZ3JvdW5kOiAkc2VsZWN0LWFycm93O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBTdGFja2VkIFJhZGlvIExpc3Rcbm5hbWU6IGItc3RhY2tlZC1yYWRpb3NcbmNhdGVnb3J5OiBGb3JtcyAtIEZvcm1zXG4tLS1cblxuV2h5IGlzIGl0IHNvIGhhcmQgdG8gZG8gYSBzdGFja2VkIHJhZGlvIGxpc3Q/IEFkZCBhIGNsYXNzIG9mIGAucmFkaW8tbGlzdGAgdG8gYVxuYHVsYC5cblxuWW91IGNhbiBhbHNvIHB1dCBhIGAuc21hbGxgIG9uIHRoZSBsYWJlbHMgdG8gY2hhbmdlIHRoZSBmb250LXNpemUgdG8gMTRweCwgdGlnaHRlbiB0aGUgcGFkZGluZyAoYW5kIG51ZGdlIHRoZSBpbnB1dCBib3ggaW50byBwbGFjZSlcbndoaWNoIHNlZW1zIHRvIGJlIHRoZSBjb21tb24gc2l6ZSBmb3IgcmFkaW8gYW5kIGNoZWNrYm94IGxpc3RzLlxuXG5gYGBodG1sX2V4YW1wbGVcbjx1bCBjbGFzcz1cInJhZGlvLWxpc3RcIj5cbiAgPGxpPlxuICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY29udHJvbCByYWRpb1wiPlxuICAgICAgPGlucHV0IGlkPVwicmFkaW8taXRlbUFcIiBuYW1lPVwicmFkaW8taXRlbVwiIHR5cGU9XCJyYWRpb1wiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNvbnRyb2wtaW5kaWNhdG9yXCI+PC9zcGFuPlxuICAgICAgUmlkaWN1bG91c2x5IGxvbmcgbGFiZWwgdGhhdCB3cmFwcyBsb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdC4gRmFjZXJlIHZlbmlhbSBtb2xlc3RpYXMgbmVjZXNzaXRhdGlidXMgdmVyaXRhdGlzIHBlcmZlcmVuZGlzIGlsbHVtIG9iY2FlY2F0aSBwYXJpYXR1ciwgaXVzdG8sIGNvbnNlcXV1bnR1ciBwZXJzcGljaWF0aXMgYW5pbWkgcXVpcyBhdCBzaXQsIHF1aWRlbSBxdWFzaSBkb2xvcmVzLCBwb3NzaW11cyBkaXN0aW5jdGlvIGNvcnBvcmlzLlxuICAgIDwvbGFiZWw+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNvbnRyb2wgcmFkaW9cIj5cbiAgICAgIDxpbnB1dCBpZD1cInJhZGlvLWl0ZW1CXCIgbmFtZT1cInJhZGlvLWl0ZW1cIiB0eXBlPVwicmFkaW9cIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jb250cm9sLWluZGljYXRvclwiPjwvc3Bhbj5cbiAgICAgIFNob3J0IGxhYmVsIHdyaXR0ZW4gYnkgYSBncm93bnVwXG4gICAgPC9sYWJlbD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY29udHJvbCByYWRpb1wiPlxuICAgICAgPGlucHV0IGlkPVwicmFkaW8taXRlbUNcIiBuYW1lPVwicmFkaW8taXRlbVwiIHR5cGU9XCJyYWRpb1wiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNvbnRyb2wtaW5kaWNhdG9yXCI+PC9zcGFuPlxuICAgICAgUmlkaWN1bG91c2x5IGxvbmcgbGFiZWwgdGhhdCB3cmFwcyBsb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdC4gRmFjZXJlIHZlbmlhbSBtb2xlc3RpYXMgbmVjZXNzaXRhdGlidXMgdmVyaXRhdGlzIHBlcmZlcmVuZGlzIGlsbHVtIG9iY2FlY2F0aSBwYXJpYXR1ciwgaXVzdG8sIGNvbnNlcXV1bnR1ciBwZXJzcGljaWF0aXMgYW5pbWkgcXVpcyBhdCBzaXQsIHF1aWRlbSBxdWFzaSBkb2xvcmVzLCBwb3NzaW11cyBkaXN0aW5jdGlvIGNvcnBvcmlzLlxuICAgIDwvbGFiZWw+XG4gIDwvbGk+XG48L3VsPlxuXG48aDU+QSBsaXN0IHdpdGggc21hbGxlciB0ZXh0PC9oNT5cblxuPHVsIGNsYXNzPVwicmFkaW8tbGlzdFwiPlxuICA8bGk+XG4gICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jb250cm9sIHJhZGlvIHNtYWxsXCI+XG4gICAgICA8aW5wdXQgaWQ9XCJyYWRpby1pdGVtRFwiIG5hbWU9XCJyYWRpby1pdGVtMlwiIHR5cGU9XCJyYWRpb1wiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNvbnRyb2wtaW5kaWNhdG9yXCI+PC9zcGFuPlxuICAgICAgU21hbGwgdGV4dFxuICAgIDwvbGFiZWw+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNvbnRyb2wgcmFkaW8gc21hbGxcIj5cbiAgICAgIDxpbnB1dCBpZD1cInJhZGlvLWl0ZW1FXCIgbmFtZT1cInJhZGlvLWl0ZW0yXCIgdHlwZT1cInJhZGlvXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY29udHJvbC1pbmRpY2F0b3JcIj48L3NwYW4+XG4gICAgICBTbWFsbCB0ZXh0IHRleHRcbiAgICA8L2xhYmVsPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jb250cm9sIHJhZGlvIHNtYWxsXCI+XG4gICAgICA8aW5wdXQgaWQ9XCJyYWRpby1pdGVtRlwiIG5hbWU9XCJyYWRpby1pdGVtMlwiIHR5cGU9XCJyYWRpb1wiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNvbnRyb2wtaW5kaWNhdG9yXCI+PC9zcGFuPlxuICAgICAgU21hbGwgdGV4dCB0ZXh0IHRleHRcbiAgICA8L2xhYmVsPlxuICA8L2xpPlxuPC91bD5cbmBgYFxuKi9cblxuLypkb2Ncbi0tLVxudGl0bGU6IFN0YWNrZWQgQ2hlY2tib3ggTGlzdFxubmFtZTogYy1zdGFja2VkLWNoZWNrYm94ZXNcbmNhdGVnb3J5OiBGb3JtcyAtIEZvcm1zXG4tLS1cblxuQWRkIGEgY2xhc3Mgb2YgYC5jaGVja2JveC1saXN0YCB0byBhIGB1bGAuXG5cbmBgYGh0bWxfZXhhbXBsZVxuPHVsIGNsYXNzPVwiY2hlY2tib3gtbGlzdFwiPlxuICA8bGk+XG4gICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jb250cm9sIGNoZWNrYm94XCI+XG4gICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY29udHJvbC1pbmRpY2F0b3JcIj48L3NwYW4+XG4gICAgICBSaWRpY3Vsb3VzbHkgbG9uZyBsYWJlbCB0aGF0IHdyYXBzIGxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LiBGYWNlcmUgdmVuaWFtIG1vbGVzdGlhcyBuZWNlc3NpdGF0aWJ1cyB2ZXJpdGF0aXMgcGVyZmVyZW5kaXMgaWxsdW0gb2JjYWVjYXRpIHBhcmlhdHVyLCBpdXN0bywgY29uc2VxdXVudHVyIHBlcnNwaWNpYXRpcyBhbmltaSBxdWlzIGF0IHNpdCwgcXVpZGVtIHF1YXNpIGRvbG9yZXMsIHBvc3NpbXVzIGRpc3RpbmN0aW8gY29ycG9yaXMuXG4gICAgPC9sYWJlbD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY29udHJvbCBjaGVja2JveFwiPlxuICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNvbnRyb2wtaW5kaWNhdG9yXCI+PC9zcGFuPlxuICAgICAgU2hvcnQgbGFiZWwgd3JpdHRlbiBieSBhIGdyb3dudXBcbiAgICA8L2xhYmVsPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jb250cm9sIGNoZWNrYm94XCI+XG4gICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY29udHJvbC1pbmRpY2F0b3JcIj48L3NwYW4+XG4gICAgICBSaWRpY3Vsb3VzbHkgbG9uZyBsYWJlbCB0aGF0IHdyYXBzIGxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LiBGYWNlcmUgdmVuaWFtIG1vbGVzdGlhcyBuZWNlc3NpdGF0aWJ1cyB2ZXJpdGF0aXMgcGVyZmVyZW5kaXMgaWxsdW0gb2JjYWVjYXRpIHBhcmlhdHVyLCBpdXN0bywgY29uc2VxdXVudHVyIHBlcnNwaWNpYXRpcyBhbmltaSBxdWlzIGF0IHNpdCwgcXVpZGVtIHF1YXNpIGRvbG9yZXMsIHBvc3NpbXVzIGRpc3RpbmN0aW8gY29ycG9yaXMuXG4gICAgPC9sYWJlbD5cbiAgPC9saT5cbjwvdWw+XG5cbjxoNT5BIGxpc3Qgd2l0aCBzbWFsbGVyIHRleHQ8L2g1PlxuXG48dWwgY2xhc3M9XCJjaGVja2JveC1saXN0XCI+XG4gIDxsaT5cbiAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNvbnRyb2wgY2hlY2tib3ggc21hbGxcIj5cbiAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jb250cm9sLWluZGljYXRvclwiPjwvc3Bhbj5cbiAgICAgIFNtYWxsZXIgdGV4dFxuICAgIDwvbGFiZWw+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNvbnRyb2wgY2hlY2tib3ggc21hbGxcIj5cbiAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jb250cm9sLWluZGljYXRvclwiPjwvc3Bhbj5cbiAgICAgIFNtYWxsZXIgdGV4dCB0ZXh0IHRleHQgdGV4dFxuICAgIDwvbGFiZWw+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNvbnRyb2wgY2hlY2tib3ggc21hbGxcIj5cbiAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jb250cm9sLWluZGljYXRvclwiPjwvc3Bhbj5cbiAgICAgIFNtYWxsIHRleHQgdGV4dCB0ZXh0IHRleHRcbiAgICA8L2xhYmVsPlxuICA8L2xpPlxuPC91bD5cblxuYGBgXG4qL1xuXG4uY2hlY2tib3gtbGlzdCxcbi5yYWRpby1saXN0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgIGlucHV0ICsgbGFiZWwge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDIwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gICAgaW5wdXQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogM3B4O1xuICAgICAgICBtYXJnaW4tdG9wOiA0cHggXFw5O1xuICAgICAgICBtYXJnaW4tbGVmdDogLTIwcHg7XG4gICAgfVxufVxuXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBTZWxlY3QgRmllbGRzXG5uYW1lOiBjLXNlbGVjdC1maWVsZHNcbmNhdGVnb3J5OiBGb3JtcyAtIEZvcm1zXG4tLS1cblxuU29tZXRpbWVzIHlvdSBtaWdodCB3YW50IHRvIG1ha2UgYSBzZWxlY3QgZmllbGQgbG9vayBsaWtlIGxpbmsgdGV4dCwgZXNwZWNpYWxseSBvblxubW9iaWxlIGRldmljZXMgc28gdGhhdCB5b3UgY2FuIHRha2UgYWR2YW50YWdlIG9mIHRoZSBuYXRpdmUgc2VsZWN0IGNvbnRyb2wuIFVzZVxudGhlIGAubGlua2lmeWAgY2xhc3Mgb24gdGhlIHNlbGVjdCBmaWVsZCBlbGVtZW50IGZvciB0aGlzIHB1cnBvc2UuXG5cbmBgYGh0bWxfZXhhbXBsZT9raXRjaGVuLXNpbms9dHJ1ZVxuPGZvcm0+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGFyZ2UtMyBjb2x1bW5zXCI+XG4gICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwibm9ybWFsIGxpbmtpZnlcIj5cbiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwibGVzcy10cmF2ZWxlZFwiPlRoZSByb2FkIGxlc3MgdHJhdmVsZWQ8L29wdGlvbj5cbiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwibW9yZS10cmF2ZWxlZFwiPlRoZSByb2FkIG1vcmUgdHJhdmVsZWQ8L29wdGlvbj5cbiAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxhcmdlLTMgY29sdW1uc1wiPlxuICAgICAgICAgICAgPGxhYmVsPkEgZGlzYWJsZWQgc2VsZWN0IGZpZWxkXG4gICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cIm5vcm1hbFwiIGRpc2FibGVkPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+U2VsZWN0IGEgcm9hZDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwibGVzcy10cmF2ZWxlZFwiPlRoZSByb2FkIGxlc3MgdHJhdmVsZWQ8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm1vcmUtdHJhdmVsZWRcIj5UaGUgcm9hZCBtb3JlIHRyYXZlbGVkPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZm9ybT5cbmBgYFxuXG5TZWxlY3QgZmllbGQgb3B0aW9ucyBjb3VsZCBoYXZlIGxlbmd0aHkgY29udGVudC5cblxuYGBgaHRtbF9leGFtcGxlXG48Zm9ybT5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsYXJnZS0zIGNvbHVtbnNcIj5cbiAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJub3JtYWxcIj5cbiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+SXQgd2FzIGdyYXNzeSBhbmQgd2FudGVkIHdlYXI7IHRob3VnaCBhcyBmb3IgdGhhdCB0aGUgcGFzc2luZyB0aGVyZSBoYWQgd29ybiB0aGVtIHJlYWxseSBhYm91dCB0aGUgc2FtZTwvb3B0aW9uPlxuICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9mb3JtPlxuYGBgXG5cbkNvbG9yIHZhcmlhdGlvbnMuXG5cbmBgYGh0bWxfZXhhbXBsZVxuPGZvcm0+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGFyZ2UtMyBjb2x1bW5zXCI+XG4gICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwic2VsZWN0LXdoaXRlXCI+XG4gICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPkNoYXJhY3RlcnM8L29wdGlvbj5cbiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiTGVpYVwiPkxlaWE8L29wdGlvbj5cbiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiSGFuXCI+SGFuPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIkx1a2VcIj5MdWtlPC9vcHRpb24+XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Zvcm0+XG5gYGBcbiovXG5cbnNlbGVjdC5saW5raWZ5IHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBjb2xvcjogJGxpbmstYmx1ZS1saWdodDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgaGVpZ2h0OiB1bnNldDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbnNlbGVjdFtkaXNhYmxlZF0ge1xuICAgIG9wYWNpdHk6IDAuNTtcbn1cblxuLypkb2Ncbi0tLVxudGl0bGU6IElubGluZSBMYWJlbHNcbm5hbWU6IGQtaW5saW5lLWxhYmVsc1xuY2F0ZWdvcnk6IEZvcm1zIC0gRm9ybXNcbi0tLVxuXG5Tb21ldGltZXMgeW91IHdhbnQgYSBmb3JtIHdpdGggbGFiZWxzIHRvIHRoZSBsZWZ0IG9mIHlvdXIgaW5wdXRzLlxuWW91IGNhbiBwdXQgdGhlIGxhYmVsIGluc2lkZSBhIGRpZmZlcmVudCBjb2x1bW4gdG8gdGhlIGxlZnQgb2YgdGhlIGlucHV0LlxuXG5UaGVuIGFkZCBhIGNsYXNzIG9mIGAucmlnaHRgIHRvIHRoZSBsYWJlbCB0byBoYXZlIGl0IGFsaWduIHRvIHRoZSByaWdodC5cbkFkZGluZyBhIGNsYXNzIG9mIGAuaW5saW5lYCB3aWxsIGhhdmUgaXQgdmVydGljYWxseSBjZW50ZXIgYWdhaW5zdCBhbiBpbnB1dC5cblxuXG5gYGBodG1sX2V4YW1wbGU/a2l0Y2hlbi1zaW5rPXRydWVcbjxmb3JtPlxuICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgPGRpdiBjbGFzcz1cInNtYWxsLTggY29sdW1uc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGwtMyBjb2x1bW5zXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cInJpZ2h0LWxhYmVsXCIgY2xhc3M9XCJyaWdodCBpbmxpbmVcIj5MYWJlbDwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGwtOSBjb2x1bW5zXCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgaWQ9XCJyaWdodC1sYWJlbFwiIHBsYWNlaG9sZGVyPVwiSW5saW5lIFRleHQgSW5wdXRcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Zvcm0+XG5gYGBcbiovXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBGaWVsZHNldFxubmFtZTogZS1maWVsZHNldFxuY2F0ZWdvcnk6IEZvcm1zIC0gRm9ybXNcbi0tLVxuXG5XZSBkb24ndCBzZWUgdGhlbSB0b28gbXVjaCwgYnV0IG9uZSBvZiB0aGUgdXNlZnVsIGZvcm0gZWxlbWVudHMgaW5jbHVkZWQgd2l0aCBGb3VuZGF0aW9uIGlzIGA8ZmllbGRzZXQ+YC5cblRoaXMgaXMgdXNlZCBhcyBhIHdyYXBwZXIgcmlnaHQgaW5zaWRlIHRoZSBmb3JtIGVsZW1lbnQuIFJpZ2h0IGFmdGVyIHlvdSBkZWZpbmUgYSBmaWVsZHNldCwgeW91IGNhbiBpbmNsdWRlXG5hIGxlZ2VuZCB0aXRsZSBieSB1c2luZyBgPGxlZ2VuZD5gLiBIZXJlJ3Mgc29tZSBIVE1MIHRvIGhlbHAgbWFrZSBjb3B5IHBhc3RlLlxuXG5gYGBodG1sX2V4YW1wbGU/a2l0Y2hlbi1zaW5rPXRydWVcbjxmb3JtPlxuICA8ZmllbGRzZXQ+XG4gICAgPGxlZ2VuZD5GaWVsZHNldCBMZWdlbmQ8L2xlZ2VuZD5cblxuICAgIDxsYWJlbD5JbnB1dCBMYWJlbFxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJJbnB1dHMgYW5kIG90aGVyIGZvcm0gZWxlbWVudHMgZ28gaW5zaWRlLi4uXCI+XG4gICAgPC9sYWJlbD5cbiAgPC9maWVsZHNldD5cbjwvZm9ybT5cbmBgYFxuKi9cblxuLypkb2Ncbi0tLVxudGl0bGU6IFByZSBhbmQgUG9zdGZpeCBMYWJlbHMgYW5kIEFjdGlvbnNcbm5hbWU6IGYtcHJlLWFuZC1wb3N0Zml4LWxhYmVscy1hbmQtYWN0aW9uc1xuY2F0ZWdvcnk6IEZvcm1zIC0gRm9ybXNcbi0tLVxuXG5Zb3UgY2FuIHVzZSBgPGRpdiBjbGFzcz1cInJvdyBjb2xsYXBzZVwiPmAgdG8gY3JlYXRlIGxhYmVsIC8gYWN0aW9uIC8gaW5wdXQgY29tYmluYXRpb25zLlxuWW91IHVzZSB0aGUgRm91bmRhdGlvbiBjb2x1bW5zIHRvIGRlZmluZSB0aGUgc2l6ZSBvZiB0aGUgcHJlL3Bvc3RmaXhcbmA8c3BhbiBjbGFzcz1cInBvc3RmaXhcIj5gIG9yIGA8c3BhbiBjbGFzcz1cInByZWZpeFwiPmAuXG5cbllvdSBjYW4gYWxzbyBnaXZlIGEgYnV0dG9uIC8gaW5wdXQgcGFpciBhIHJhZGl1cyBvciBhIHJvdW5kZWQgZWRnZSBieSBhZGRpbmcgdGhlXG5jbGFzc2VzIGBwcmVmaXgtcmFkaXVzLCBwb3N0Zml4LXJhZGl1cywgcHJlZml4LXJvdW5kIG9yIHBvc3RmaXgtcm91bmRgIHRvIHRoZSByb3dcbnRoYXQgY29udGFpbnMgdGhlIGVsZW1lbnRzLiBGb3IgZXhhbXBsZSwgYDxkaXYgY2xhc3M9XCJyb3cgY29sbGFwc2UgcG9zdGZpeC1yb3VuZFwiPmBcbndpbGwgYWRkIGEgcm91bmRlZCBlZGdlIHRvIHRoZSBsZWZ0IHNpZGUgb2YgdGhlIGlucHV0IGZpZWxkLCBhbmQgdG8gdGhlIHJpZ2h0IHNpZGVcbm9mIHRoZSBidXR0b24sIGNyZWF0aW5nIGEgY29oZXNpdmUgcm91bmRlZCBpbnB1dC5cblxuWW91J2xsIG5vdGljZSB0aGF0IG9uIHRoZSBsYXN0IHBvc3RmaXggZWxlbWVudCwgd2UndmUgaW5jbHVkZWQgdGhlIGNsYXNzIG9mIGAucmFkaXVzYC5cblRoaXMgYWRkcyB0aGUgYm9yZGVyIHJhZGl1cyBvbiB0aGUgYXBwcm9wcmlhdGUgZWRnZSBkZXBlbmRpbmcgb24gd2hldGhlciBpdCdzIGEgcHJlZml4IG9yIGEgcG9zdGZpeCBlbGVtZW50LlxuWW91IGNhbiBldmVuIGluY2x1ZGUgYnV0dG9ucyB3aXRoIHRoZXNlIHN0eWxlcywganVzdCBhcHBseSB0aGUgYC5idXR0b25gIGFzIHdlbGwgYXMgdGhlIHByZS9wb3N0Zml4IGNsYXNzLlxuXG5Zb3UgY2FuIGFsc28gaGF2ZSB0aW55IHByZSBhbmQgcG9zdGZpeCBsYWJlbHMgYW5kIGFjdGlvbnMgYnkgYWRkaW5nIHRoZSBgLnRpbnlgIGNsYXNzIHRvIHRoZSBidXR0b24gb3IgaW5wdXQuXG5cbmBgYGh0bWxfZXhhbXBsZVxuICA8Zm9ybT5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic21hbGwtMyBsYXJnZS0yIGNvbHVtbnNcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwcmVmaXhcIj5odHRwOi8vPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic21hbGwtOSBsYXJnZS0xMCBjb2x1bW5zXCI+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgeW91ciBVUkwuLi5cIj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsYXJnZS0xMiBjb2x1bW5zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgY29sbGFwc2VcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGwtMTAgY29sdW1uc1wiPlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJIZXggVmFsdWVcIj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGwtMiBjb2x1bW5zXCI+XG4gICAgICAgICAgICA8YSBocmVmPVwiI1wiIGNsYXNzPVwiYnV0dG9uIHBvc3RmaXhcIj5HbzwvYT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibGFyZ2UtNiBjb2x1bW5zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgY29sbGFwc2UgcHJlZml4LXJhZGl1c1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC0zIGNvbHVtbnNcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHJlZml4XCI+TGFiZWw8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsLTkgY29sdW1uc1wiPlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJWYWx1ZVwiPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImxhcmdlLTYgY29sdW1uc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGNvbGxhcHNlIHBvc3RmaXgtcmFkaXVzXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsLTkgY29sdW1uc1wiPlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJWYWx1ZVwiPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC0zIGNvbHVtbnNcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicG9zdGZpeFwiPkxhYmVsPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsYXJnZS02IGNvbHVtbnNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBjb2xsYXBzZSBwcmVmaXgtcm91bmRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGwtMyBjb2x1bW5zXCI+XG4gICAgICAgICAgICA8YSBocmVmPVwiI1wiIGNsYXNzPVwiYnV0dG9uIHByZWZpeFwiPkdvPC9hPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC05IGNvbHVtbnNcIj5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiVmFsdWVcIj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsYXJnZS02IGNvbHVtbnNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBjb2xsYXBzZSBwb3N0Zml4LXJvdW5kXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsLTkgY29sdW1uc1wiPlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJWYWx1ZVwiPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC0zIGNvbHVtbnNcIj5cbiAgICAgICAgICAgIDxhIGhyZWY9XCIjXCIgY2xhc3M9XCJidXR0b24gcG9zdGZpeFwiPkdvPC9hPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Zvcm0+XG5cbjwhLS0gdGlueSBwcmUgYW5kIHBvc3RmaXhlcyAtLT5cbiAgPGZvcm0+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImxhcmdlLTYgY29sdW1uc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGNvbGxhcHNlXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsLTMgY29sdW1uc1wiPlxuICAgICAgICAgICAgPGEgaHJlZj1cIiNcIiBjbGFzcz1cImJ1dHRvbiB0aW55IHNoYWRvdyBhY3Rpb24gcmFkaXVzIHByZWZpeFwiPkdvPC9hPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC05IGNvbHVtbnNcIj5cbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cInRpbnlcIiB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiVmFsdWVcIj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsYXJnZS02IGNvbHVtbnNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBjb2xsYXBzZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbC05IGNvbHVtbnNcIj5cbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cInRpbnlcIiB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiVmFsdWVcIj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGwtMyBjb2x1bW5zXCI+XG4gICAgICAgICAgICA8YSBocmVmPVwiI1wiIGNsYXNzPVwiYnV0dG9uIHRpbnkgc2hhZG93IGFjdGlvbiByYWRpdXMgcG9zdGZpeFwiPkdvPC9hPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Zvcm0+XG5gYGBcbiovXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBOb3RpY2Vcbm5hbWU6IGYtbm90aWNlXG5jYXRlZ29yeTogRm9ybXMgLSBGb3Jtc1xuLS0tXG5cbkFkZCBhIGNsYXNzIG9mIGAubm90aWNlYCB0byBnaXZlIGEgdGV4dCBmaWVsZCBhIG5vdGljZWFibGUgbGlnaHQgeWVsbG93IGJhY2tncm91bmQuXG5cbmBgYGh0bWxfZXhhbXBsZVxuPGZvcm0+XG4gICAgPGRpdj5cbiAgICAgICAgPGxhYmVsPkEgTm90aWNlYWJsZSBGaWVsZFxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJub3RpY2VcIi8+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2PlxuICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJub3RpY2VcIiBwbGFjZWhvbGRlcj1cIlNwZWNpYWwgaW5mby4uLlwiPjwvdGV4dGFyZWE+XG4gICAgPC9kaXY+XG48L2Zvcm0+XG5gYGBcbiovXG5cbmlucHV0W3R5cGU9dGV4dF0ubm90aWNlLCB0ZXh0YXJlYS5ub3RpY2Uge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLXllbGxvdztcbn1cblxuLypkb2Ncbi0tLVxudGl0bGU6IEVycm9yIFN0YXRlc1xubmFtZTogZy1lcnJvci1zdGF0ZXNcbmNhdGVnb3J5OiBGb3JtcyAtIEZvcm1zXG4tLS1cblxuYGBgaHRtbF9leGFtcGxlXG4gIDxmb3JtPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsYXJnZS02IGNvbHVtbnNcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZXJyb3JcIj5FcnJvclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZXJyb3JcIiAvPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8c21hbGwgY2xhc3M9XCJlcnJvclwiPkludmFsaWQgZW50cnk8L3NtYWxsPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibGFyZ2UtNiBjb2x1bW5zIGVycm9yXCI+XG4gICAgICAgIDxsYWJlbD5Bbm90aGVyIEVycm9yXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJlcnJvclwiLz5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPHNtYWxsIGNsYXNzPVwiZXJyb3JcIj5JbnZhbGlkIGVudHJ5PC9zbWFsbD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDx0ZXh0YXJlYSBjbGFzcz1cImVycm9yXCIgcGxhY2Vob2xkZXI9XCJNZXNzYWdlLi4uXCI+PC90ZXh0YXJlYT5cbiAgICA8c21hbGwgY2xhc3M9XCJlcnJvclwiPkludmFsaWQgZW50cnk8L3NtYWxsPlxuICA8L2Zvcm0+XG5gYGBcbiovXG5cbmlucHV0LmVycm9yIHtcbiAgICBib3JkZXItY29sb3I6ICRyZWQtY29uICFpbXBvcnRhbnQ7XG59XG5cbmlucHV0W3R5cGU9dGV4dF0uZXJyb3IsXG5pbnB1dFt0eXBlPWVtYWlsXS5lcnJvcixcbmlucHV0W3R5cGU9cGFzc3dvcmRdLmVycm9yIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGluay1lcnJvcjtcbn1cblxuc21hbGwuZXJyb3IsIC5lcnJvciBzbWFsbC5lcnJvciB7XG4gIGNvbG9yOiAkcmVkLWNvbjtcbn1cblxuLypkb2Ncbi0tLVxudGl0bGU6IEZvdW5kYXRpb24gU2V0dGluZ3Ncbm5hbWU6IGgtdXNuLXNldHRpbmdzXG5jYXRlZ29yeTogRm9ybXMgLSBGb3Jtc1xuLS0tXG5cblRoZXNlIGFyZSB0aGUgZGVmYXVsdCBGb3VuZGF0aW9uIGZvcm0gcmVsYXRlZCB2YXJpYWJsZXMgd2UgY2FuIGVkaXQgZnJvbSBgXy5zZXR0aW5ncy5zY3NzYFxuQW55IHRoYXQgYXJlIGNvbW1lbnRlZCBpbiBoYXZlIGJlZW4gYWx0ZXJlZCBmb3IgVVNOLiAgQWRkIG5ldyB0aGluZ3MgdG8gYF8udmFyaWFibGVzLnNjc3NgXG5cbmBgYHNhc3NfZXhhbXBsZVxuQHJlZi1kb2MgRm9ybXNcblxuYGBgXG4qL1xuXG4vKmRvY1xuLS0tXG50aXRsZTogTWl4aW5zXG5uYW1lOiBpLW1peGluc1xuY2F0ZWdvcnk6IEZvcm1zIC0gRm9ybXNcbi0tLVxuXG5Zb3UgY2FuIGNyZWF0ZSB5b3VyIG93biBmb3JtcyB1c2luZyBvdXIgU2FzcyBtaXhpbnMuXG5Zb3UgY2FuIHVzZSB0aGUgYHByZWZpeC1wb3N0Zml4LWJhc2UoKWAgYW5kIGBwcmVmaXgoKWAgbWl4aW4gdG8gY3JlYXRlIHlvdXIgb3duIGZvcm0sIGxpa2Ugc286XG5cbkhlcmUgaXMgYSBmb3JtIGNvbnRyb2wgd2Ugd291bGQgbmV2ZXIgdXNlLCBidXQgeW91IGNhbiBzZWUgaG93IHRvIGJ1aWxkIGl0IHdpdGggdGhlIGBwcmVmaXgtcG9zdGZpeC1iYXNlKClgXG5hbmQgdGhlIGBncmlkLWNvbHVtbigpYCBtaXhpbjpcblxuYGBgIGh0bWxfZXhhbXBsZVxuICA8Zm9ybT5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImN1c3RvbS1wcmVmaXgtY2xhc3NcIj5MYWJlbDwvc3Bhbj5cbiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiY3VzdG9tLWlucHV0LWNsYXNzXCIgcGxhY2Vob2xkZXI9XCJWYWx1ZVwiPlxuICAgIDwvZGl2PlxuICA8L2Zvcm0+XG5gYGBcblxuXG5gYGBzYXNzX2V4YW1wbGVcbi5jdXN0b20tcHJlZml4LWNsYXNzIHtcbiAgQGluY2x1ZGUgcHJlZml4LXBvc3RmaXgtYmFzZSgpO1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbihcbiAgICAkY29sdW1uczozLFxuICAgICRmbG9hdDpsZWZ0XG4gICk7XG59XG5cbmlucHV0W3R5cGU9XCJ0ZXh0XCJdLmN1c3RvbS1pbnB1dC1jbGFzcyB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOjkpO1xufVxuYGBgXG4qL1xuXG4vL2RlbW9cbi5jdXN0b20tcHJlZml4LWNsYXNzIHtcbiAgICBAaW5jbHVkZSBwcmVmaXgtcG9zdGZpeC1iYXNlKCk7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oXG4gICAgJGNvbHVtbnM6IDMsXG4gICAgJGZsb2F0OiBsZWZ0XG4gICAgKTtcbiAgICBiYWNrZ3JvdW5kOiAkc3R5bGVndWlkZS1kZW1vLWNvbG9yO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRzdHlsZWd1aWRlLWRlbW8tY29sb3I7XG59XG5cbmlucHV0W3R5cGU9XCJ0ZXh0XCJdLmN1c3RvbS1pbnB1dC1jbGFzcyB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oJGNvbHVtbnM6IDkpO1xufVxuXG4vL2VuZGRlbW9cblxuLypkb2Ncbi0tLVxudGl0bGU6IENoZWNrYm94ZXMgYW5kIFJhZGlvc1xubmFtZTogYi1jdXN0b20tY2hlY2tib3hlcy1hbmQtcmFkaW9zXG5jYXRlZ29yeTogRm9ybXMgLSBGb3Jtc1xuLS0tXG5cblRoZXNlIGFyZSBjc3Mgb25seSBjdXN0b20gY2hlY2tib3ggYW5kIHJhZGlvIGJ1dHRvbnMuXG5Zb3UgaGF2ZSB0aGUgY2hvaWNlIG9mIG1vZGlmeWluZyB0aGUgc3ZnIGltYWdlIGluc2lkZSB0aGUgY29udHJvbCB3aXRoIGAuZm9ybS1jb250cm9sLXhgIG9yIGAuZm9ybS1jb250cm9sLWRhc2hgLlxuXG5UbyBjcmVhdGUgYSBkaXNhYmxlZCBjaGVja2JveCBvciByYWRpbyBidXR0b24sIHNpbXBseSBhZGQgdGhlICdkaXNhYmxlZCcgYXR0cmlidXRlIHRvIHRoZVxuaW5wdXQgZWxlbWVudCBsaWtlIHVzdWFsLlxuXG5gYGBodG1sX2V4YW1wbGU/a2l0Y2hlbi1zaW5rPXRydWVcblxuICAgIDxoNT5DaGVja2JveGVzPC9oNT5cbiAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNvbnRyb2wgY2hlY2tib3hcIj5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGNoZWNrZWQ9XCJjaGVja2VkXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jb250cm9sLWluZGljYXRvclwiPjwvc3Bhbj5cbiAgICAgICAgcmVndWxhciBjaGVja2JveFxuICAgIDwvbGFiZWw+XG4gICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC14IGNoZWNrYm94XCI+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBjaGVja2VkPVwiY2hlY2tlZFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY29udHJvbC1pbmRpY2F0b3JcIj48L3NwYW4+XG4gICAgICAgIGNoZWNrYm94IHdpdGggw5dcbiAgICA8L2xhYmVsPlxuICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtZGFzaCBjaGVja2JveFwiPlxuICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgY2hlY2tlZD1cImNoZWNrZWRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNvbnRyb2wtaW5kaWNhdG9yXCI+PC9zcGFuPlxuICAgICAgICBDaGVjayB0aGlzIGN1c3RvbSBjaGVja2JveCB3aXRoIC1cbiAgICA8L2xhYmVsPlxuICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY29udHJvbCBjaGVja2JveFwiPlxuICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgZGlzYWJsZWQvPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY29udHJvbC1pbmRpY2F0b3JcIj48L3NwYW4+XG4gICAgICAgIERpc2FibGVkIGNoZWNrYm94XG4gICAgPC9sYWJlbD5cblxuICAgIDxicj5cblxuICAgIDxoNT5SYWRpb3M8L2g1PlxuICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY29udHJvbCByYWRpb1wiPlxuICAgICAgICA8aW5wdXQgaWQ9XCJyYWRpbzFcIiBuYW1lPVwicmFkaW9BXCIgdHlwZT1cInJhZGlvXCIgY2hlY2tlZD1cImNoZWNrZWRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNvbnRyb2wtaW5kaWNhdG9yXCI+PC9zcGFuPlxuICAgICAgICByYWRpb1xuICAgIDwvbGFiZWw+XG4gICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jb250cm9sIHJhZGlvXCI+XG4gICAgICAgIDxpbnB1dCBpZD1cInJhZGlvMlwiIG5hbWU9XCJyYWRpb0FcIiB0eXBlPVwicmFkaW9cIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNvbnRyb2wtaW5kaWNhdG9yXCI+PC9zcGFuPlxuICAgICAgICByYWRpb1xuICAgIDwvbGFiZWw+XG4gICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jb250cm9sIHJhZGlvXCI+XG4gICAgICAgIDxpbnB1dCBpZD1cInJhZGlvM1wiIG5hbWU9XCJyYWRpb0FcIiB0eXBlPVwicmFkaW9cIiBkaXNhYmxlZD5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNvbnRyb2wtaW5kaWNhdG9yXCI+PC9zcGFuPlxuICAgICAgICBkaXNhYmxlZCByYWRpb1xuICAgIDwvbGFiZWw+XG5cbiAgICA8YnI+XG5cbiAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLXggcmFkaW9cIj5cbiAgICAgIDxpbnB1dCBpZD1cInJhZGlvM1wiIG5hbWU9XCJyYWRpb0JcIiB0eXBlPVwicmFkaW9cIiBjaGVja2VkPVwiY2hlY2tlZFwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNvbnRyb2wtaW5kaWNhdG9yXCI+PC9zcGFuPlxuICAgICAgcmFkaW8gd2l0aCDDl1xuICAgIDwvbGFiZWw+XG4gICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC14ICByYWRpb1wiPlxuICAgICAgPGlucHV0IGlkPVwicmFkaW80XCIgbmFtZT1cInJhZGlvQlwiIHR5cGU9XCJyYWRpb1wiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNvbnRyb2wtaW5kaWNhdG9yXCI+PC9zcGFuPlxuICAgICAgcmFkaW8gd2l0aCDDl1xuICAgIDwvbGFiZWw+XG5cbiAgICA8YnI+XG5cbiAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLWRhc2ggcmFkaW9cIj5cbiAgICAgIDxpbnB1dCBpZD1cInJhZGlvNVwiIG5hbWU9XCJyYWRpb0NcIiB0eXBlPVwicmFkaW9cIiBjaGVja2VkPVwiY2hlY2tlZFwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNvbnRyb2wtaW5kaWNhdG9yXCI+PC9zcGFuPlxuICAgICAgcmFkaW8gd2l0aCAtXG4gICAgPC9sYWJlbD5cbiAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLWRhc2ggcmFkaW9cIj5cbiAgICAgIDxpbnB1dCBpZD1cInJhZGlvNlwiIG5hbWU9XCJyYWRpb0NcIiB0eXBlPVwicmFkaW9cIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jb250cm9sLWluZGljYXRvclwiPjwvc3Bhbj5cbiAgICAgIHJhZGlvIHdpdGggLVxuICAgIDwvbGFiZWw+XG5cbmBgYFxuXG4jIyMgUmFkaW8gdGlsZXNcblxuVGhlc2UgYXJlIGNzcyBvbmx5IHRpbGVzIGJ1aWx0IG9uIHRvcCBvZiByYWRpbyBpbnB1dHMuXG5cbmBgYGh0bWxfZXhhbXBsZT9raXRjaGVuLXNpbms9dHJ1ZVxuICAgIDxkaXYgY2xhc3M9XCJyYWRpby10aWxlLWdyb3VwXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1jb250YWluZXJcIj5cbiAgICAgICAgICA8aW5wdXQgaWQ9XCJyYWRpby10aWxlLTFcIiBjbGFzcz1cInJhZGlvLWJ1dHRvblwiIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJyYWRpby10aWxlXCIgdmFsdWU9XCJidXlcIiAvPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyYWRpby10aWxlXCI+XG4gICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJpY29uXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNjQgNjRcIj48dGl0bGU+S2V5PC90aXRsZT48cGF0aCBkPVwiTTUxLjc2LDM5LjQ0cTAsLjQzLTEuMjMsMS42NnQtMS42NiwxLjIzYTEuNDUsMS40NSwwLDAsMS0uNzItLjRxLS40OS0uNC0uOTItLjgzdC0xLTFsLS42Mi0uNjUtMi40MSwyLjQxLDUuNTIsNS41MmEyLjMyLDIuMzIsMCwwLDEsLjcsMS43MSwzLjQyLDMuNDIsMCwwLDEtMywzLDIuMzMsMi4zMywwLDAsMS0xLjcxLS43TDI3LjkxLDM0LjU0YTE1LjE2LDE1LjE2LDAsMCwxLTkuMTcsMy4yOUE4LjgyLDguODIsMCwwLDEsOS41LDI4LjU5YTE0LjczLDE0LjczLDAsMCwxLDIuMzktNy44NiwxOS4wOSwxOS4wOSwwLDAsMSw2LjIzLTYuMjNBMTQuNzMsMTQuNzMsMCwwLDEsMjYsMTIuMTJhOC44Miw4LjgyLDAsMCwxLDkuMjQsOS4yNCwxNS4xNywxNS4xNywwLDAsMS0zLjI5LDkuMTdsOC45MSw4LjkxTDQzLjI1LDM3bC0uNjUtLjYycS0uNTgtLjU0LTEtMXQtLjgzLS45MmExLjQ1LDEuNDUsMCwwLDEtLjQtLjcycTAtLjQzLDEuMjMtMS42NnQxLjY2LTEuMjNhLjguOCwwLDAsMSwuNTguMjVMNDUsMzIuMjlsMi4wNiwycTEuMDUsMSwyLjE3LDIuMTZ0MS44MywyUTUxLjc2LDM5LjI0LDUxLjc2LDM5LjQ0Wk0yOSwyNS4xOGE0Ljg1LDQuODUsMCwwLDAsMC02LjgzLDQuODUsNC44NSwwLDAsMC02LjgzLDAsNC42NSw0LjY1LDAsMCwwLTEuNDEsMy40Miw0LjkxLDQuOTEsMCwwLDAsLjQ4LDIuMDgsNC45Miw0LjkyLDAsMCwwLTIuMDgtLjQ4LDQuODMsNC44MywwLDAsMC0zLjQyLDguMjQsNC44NSw0Ljg1LDAsMCwwLDYuODMsMEE0LjY1LDQuNjUsMCwwLDAsMjQsMjguMTlhNC45Miw0LjkyLDAsMCwwLS40OC0yLjA4LDQuOTEsNC45MSwwLDAsMCwyLjA4LjQ4QTQuNjUsNC42NSwwLDAsMCwyOSwyNS4xOFpcIi8+PC9zdmc+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwicmFkaW8tdGlsZS0xXCIgY2xhc3M9XCJyYWRpby10aWxlLWxhYmVsXCI+SSdtIEJ1eWluZzwvbGFiZWw+XG4gICAgICAgICAgPC9kaXY+PCEtLSAvLnJhZGlvLXRpbGUgLS0+XG4gICAgICAgIDwvZGl2PjwhLS0gLy5pbnB1dC1jb250YWluZXIgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1jb250YWluZXJcIj5cbiAgICAgICAgICA8aW5wdXQgaWQ9XCJyYWRpby10aWxlLTJcIiBjbGFzcz1cInJhZGlvLWJ1dHRvblwiIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJyYWRpby10aWxlXCIgdmFsdWU9XCJzZWxsXCIgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicmFkaW8tdGlsZVwiPlxuICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiaWNvblwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiB2aWV3Qm94PVwiMCAwIDY0IDY0XCIgZW5hYmxlLWJhY2tncm91bmQ9XCJuZXcgMCAwIDY0IDY0XCIgeG1sOnNwYWNlPVwicHJlc2VydmVcIj48Zz48cGF0aCBkPVwiTTUyLjksMTUuM2wtMjkuMSwwVjEwbC00LTIuNmwtNCwyLjZ2NS4zaC01LjN2Ny45aDUuM3YyNy44aDcuOVYyMy4zaDYuNnY1LjNoLTR2MTUuOWgyNS4xVjI4LjZoLTR2LTUuM1xuICAgIGg1LjNsMi42LTRMNTIuOSwxNS4zeiBNMzMsMjguNnYtNS4zaDExLjl2NS4zSDMzelwiLz48L2c+PC9zdmc+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwicmFkaW8tdGlsZS0yXCIgY2xhc3M9XCJyYWRpby10aWxlLWxhYmVsXCI+SSdtIFNlbGxpbmc8L2xhYmVsPlxuICAgICAgICAgIDwvZGl2PjwhLS0gLy5yYWRpby10aWxlIC0tPlxuICAgICAgICA8L2Rpdj48IS0tIC8uaW5wdXQtY29udGFpbmVyIC0tPlxuICAgIDwvZGl2PjwhLS0gLy5yYWRpby10aWxlLWdyb3VwIC0tPlxuYGBgXG5cbiovXG5cbi8qXG4gKiBDaGVja2JveGVzIGFuZCByYWRpb3NcbiAqL1xuXG4uZm9ybS1jb250cm9sIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogMjdweDtcbiAgY29sb3I6ICM1NTU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTYpO1xufVxuXG4vLyBzbWFsbCBtb2RpZmllclxuLmZvcm0tY29udHJvbC5zbWFsbCB7XG4gIEBpbmNsdWRlIHRleHQoJ3NtYWxsJyk7XG4gIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDgpO1xufVxuXG4vLyBmb3IgaG9yaXpvbnRhbCBjb250cm9sc1xuLmZvcm0tY29udHJvbCArIC5mb3JtLWNvbnRyb2wge1xuICBtYXJnaW4tbGVmdDogcmVtLWNhbGMoMTYpO1xufVxuLmZvcm0tY29udHJvbCBpbnB1dCB7XG4gIEBpbmNsdWRlIHotaW5kZXg7IC8qIFB1dCB0aGUgaW5wdXQgYmVoaW5kIHRoZSBsYWJlbCBzbyBpdCBkb2Vzbid0IG92ZXJsYXkgdGV4dCAqL1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG9wYWNpdHk6IDA7XG59XG4uZm9ybS1jb250cm9sLWluZGljYXRvciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAzcHg7XG4gIGxlZnQ6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICAvLyBjb3VsZCBiZSByZW1zIGJ1dCBpdCBtYWtlcyB0aGluZ3MgY29tcGxpY2F0ZWRcbiAgd2lkdGg6ICAxN3B4O1xuICBoZWlnaHQ6IDE3cHg7XG4gIEBpbmNsdWRlIGJveC1zaGFkb3coMHB4LCAxcHgsIDFweCwgLTFweCwgcmdiYSgwLCAwLCAwLCAxKSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjJyZW07XG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgYm9yZGVyOiAxcHggc29saWQgI0I1QjVCNTsgLy8gY2hvb3NlIGEgdmFyaWFibGVcbiAgY29sb3I6ICNlZWU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1zaXplOiA1MCUgNTAlO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4vLyBDb2xsZWdlIEFkbWlzc2lvbnMgTmV3c2xldHRlciBzaWdudXAgZm9ybVxuLmFkbWlzc2lvbnMtc2lnbnVwLWZvcm0ge1xuICAgICRoZWFkaW5nLWhlaWdodDogNTBweDtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBAaW5jbHVkZSBmcm9tKGJwLXNtYWxsKSB7XG4gICAgICAgIHRvcDogMCAhaW1wb3J0YW50O1xuICAgICAgICBib3R0b206IDAgIWltcG9ydGFudDtcbiAgICAgICAgLmFkbWlzc2lvbnMtc2lnbnVwLWZvcm0tYmFyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDIwKSByZW0tY2FsYygxNSk7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xNXB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIGZyb20oYnAtbWVkaXVtKSB7XG4gICAgICAgIGJvdHRvbTogaW5pdGlhbCAhaW1wb3J0YW50O1xuICAgICAgICB0b3A6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgICBtYXgtd2lkdGg6IDcwMHB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiA4MCU7XG4gICAgICAgIC5hZG1pc3Npb25zLXNpZ251cC1mb3JtLWJhciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogaW5pdGlhbDtcbiAgICAgICAgICAgIGxlZnQ6IGluaXRpYWw7XG4gICAgICAgICAgICByaWdodDogaW5pdGlhbDtcbiAgICAgICAgICAgIGJvdHRvbTogaW5pdGlhbDtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDMwKTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMTVweDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLTE1cHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgPiBkaXY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLTFweDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGhlaWdodDogJGhlYWRpbmctaGVpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMzE2M0FGO1xuICAgICAgICB6LWluZGV4OiAxMDAxO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgID4gaDIge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6NTBweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5mb3JtLWNvbnRlbnQge1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogcmVtLWNhbGMoMTUpO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0tY2FsYygxNSk7XG4gICAgfVxuICAgIC5hZG1pc3Npb25zLXNpZ251cC1mb3JtLWJhciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmNGY0ZjQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2RkZDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIH1cbiAgICAucGFuZWwge1xuICAgICAgICBib3JkZXItd2lkdGg6IDFweCAwIDAgMDtcbiAgICB9XG59XG5cbi8qXG4gKiBSYWRpbyB0aWxlc1xuICovXG5cbiR0aWxlLWNvbG9yOiAkYmx1ZTtcbi5yYWRpby10aWxlLWdyb3VwIHtcbiAgZGlzcGxheTpmbGV4OyBmbGV4LXdyYXA6d3JhcDsganVzdGlmeS1jb250ZW50OmNlbnRlcjtcblxuICAvLyBzZXQgZGltZW5zaW9ucyAodGlsZSBzaXplKSBmb3IgaW52aXNpYmxlIGNvbnRhaW5lclxuICAuaW5wdXQtY29udGFpbmVyIHtcblxuICAgIHBvc2l0aW9uOnJlbGF0aXZlOyBoZWlnaHQ6My41cmVtOyB3aWR0aDoxMDAlOyBtYXJnaW46MXJlbTtcbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7IGhlaWdodDo4Ljc0cmVtOyB3aWR0aDoxMHJlbSB9XG5cbiAgICAvLyBtYWtlIGFjdHVhbCByYWRpbyBpbnB1dCBpbnZpc2libGVcbiAgICAvLyBhbmQgc3RyZXRjaCB0byBmaWxsIGNvbnRhaW5lclxuICAgIC5yYWRpby1idXR0b24ge1xuICAgICAgb3BhY2l0eTowOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IGxlZnQ6MDsgaGVpZ2h0OjEwMCU7IHdpZHRoOjEwMCU7IG1hcmdpbjowOyBjdXJzb3I6cG9pbnRlcjtcbiAgICB9XG5cbiAgICAvLyBkZWZhdWx0IHRpbGUgc3R5bGVzXG4gICAgLnJhZGlvLXRpbGUge1xuICAgICAgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpyb3c7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IGJvcmRlcjoxcHggc29saWQgJHRpbGUtY29sb3I7IGJvcmRlci1yYWRpdXM6MnB4OyBwYWRkaW5nOjFyZW07IHRyYW5zaXRpb246dHJhbnNmb3JtIDMwMG1zIGVhc2U7XG4gICAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgfVxuICAgIH1cbiAgICBzdmcuaWNvbiB7XG4gICAgICBmaWxsOiR0aWxlLWNvbG9yOyBtYXJnaW4tdG9wOiAzcHg7IG1hcmdpbi1yaWdodDozcHg7IGhlaWdodDoxLjVyZW07IHdpZHRoOjEuNXJlbTsgLyogLmljb24ubWVkaXVtICovXG4gICAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7IG1hcmdpbi10b3A6IDA7IG1hcmdpbi1yaWdodDogMDsgaGVpZ2h0OjNyZW07IHdpZHRoOjNyZW07IH0gLyogLmljb24ubGFyZ2VyICovXG4gICAgfVxuICAgIC5yYWRpby10aWxlLWxhYmVsIHtcbiAgICAgIHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MC43NXJlbTsgY29sb3I6JHRpbGUtY29sb3I7XG4gICAgfVxuICAgIHN2Zy5pY29uICsgLnJhZGlvLXRpbGUtbGFiZWwge1xuICAgICAgZm9udC1zaXplOjFyZW07IG1hcmdpbi10b3A6JGJsb2NrLXRpZ2h0ZXI7XG4gICAgfVxuXG4gICAgLy8gYWN0aXZlIHRpbGUgc3R5bGVzXG4gICAgLnJhZGlvLWJ1dHRvbjpjaGVja2VkICsgLnJhZGlvLXRpbGUsIC5yYWRpby1idXR0b246aG92ZXIgKyAucmFkaW8tdGlsZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiR0aWxlLWNvbG9yOyBib3JkZXI6MnB4IHNvbGlkICR0aWxlLWNvbG9yOyBjb2xvcjp3aGl0ZTtcbiAgICAgIHN2Zy5pY29uIHtcbiAgICAgICAgZmlsbDp3aGl0ZTsgYmFja2dyb3VuZC1jb2xvcjokdGlsZS1jb2xvcjtcbiAgICAgIH1cbiAgICAgIC5yYWRpby10aWxlLWxhYmVsIHtcbiAgICAgICAgY29sb3I6d2hpdGU7IGJhY2tncm91bmQtY29sb3I6JHRpbGUtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIG51ZGdlcyBjaGVja2JveCBhIGJpdCBpZiBzbWFsbCBtb2RpZmllciBpcyB1c2VkXG4uZm9ybS1jb250cm9sLnNtYWxsIC5mb3JtLWNvbnRyb2wtaW5kaWNhdG9yIHtcbiAgdG9wOiAuMDVyZW07XG59XG4vKiBIb3ZlciBzdGF0ZSAqL1xuLyogVW5jb21tZW50IGlmIHlvdSBuZWVkIGl0LCBidXQgYmUgYXdhcmUgb2YgdGhlIHN0aWNreSBpT1Mgc3RhdGVzLlxuLmZvcm0tY29udHJvbDpob3ZlciAuZm9ybS1jb250cm9sLWluZGljYXRvciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xufVxuKi9cblxuLyogRm9jdXMgKi9cbi5mb3JtLWNvbnRyb2wgaW5wdXQ6Zm9jdXMgfiAuZm9ybS1jb250cm9sLWluZGljYXRvciB7XG4gIC8vYm94LXNoYWRvdzogMCAwIDAgLjA3NXJlbSAjZmZmLCAwIDAgMCAuMnJlbSAjMDA3NGQ5O1xufVxuXG4vKiBDaGVja2VkIHN0YXRlICovXG4uZm9ybS1jb250cm9sIGlucHV0OmNoZWNrZWQgfiAuZm9ybS1jb250cm9sLWluZGljYXRvciB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgYm9yZGVyOiAxcHggc29saWQgJGJsdWU7IC8vIGNob29zZSBhIHZhcmlhYmxlXG59XG5cbi8qIEFjdGl2ZSAqL1xuLmZvcm0tY29udHJvbCBpbnB1dDpub3QoW2Rpc2FibGVkXSk6YWN0aXZlIH4gLmZvcm0tY29udHJvbC1pbmRpY2F0b3Ige1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG59XG5cbi8qIERpc2FibGVkICovXG4uZm9ybS1jb250cm9sIGlucHV0W2Rpc2FibGVkXSB+IC5mb3JtLWNvbnRyb2wtaW5kaWNhdG9yLCAuaHMtZm9ybSBzZWxlY3RbZGlzYWJsZWRdIHtcbiAgICBvcGFjaXR5OiAwLjU7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKiBDaGVja2JveCBtb2RpZmllcnMgKi9cbi5jaGVja2JveCAuZm9ybS1jb250cm9sLWluZGljYXRvciB7XG4gIGJvcmRlci1yYWRpdXM6IC4ycmVtO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgLy8gc28gdGhhdCB0aGUgZW5jbG9zaW5nIGxhYmVsIGNhbiBoYXZlIHRoZSBldmVudHMgYW5kIG1hbmlwdWxhdGUgdGhlIGhpZGRlbiBpbnB1dCBlbGVtZW50XG4gIGJhY2tncm91bmQtc2l6ZTogOXB4IDlweDsgLy8gc2xpZ2h0bHkgbGFyZ2VyIGltYWdlIHNpemVcbn1cbi5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmZvcm0tY29udHJvbC1pbmRpY2F0b3Ige1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejROQ2p3aExTMGdSMlZ1WlhKaGRHOXlPaUJCWkc5aVpTQkpiR3gxYzNSeVlYUnZjaUF4Tnk0eExqQXNJRk5XUnlCRmVIQnZjblFnVUd4MVp5MUpiaUF1SUZOV1J5QldaWEp6YVc5dU9pQTJMakF3SUVKMWFXeGtJREFwSUNBdExUNE5DandoUkU5RFZGbFFSU0J6ZG1jZ1VGVkNURWxESUNJdEx5OVhNME12TDBSVVJDQlRWa2NnTVM0eEx5OUZUaUlnSW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTDBkeVlYQm9hV056TDFOV1J5OHhMakV2UkZSRUwzTjJaekV4TG1SMFpDSStEUW84YzNabklIWmxjbk5wYjI0OUlqRXVNU0lnYVdROUlreGhlV1Z5WHpFaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2VHMXNibk02ZUd4cGJtczlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1RrdmVHeHBibXNpSUhnOUlqQndlQ0lnZVQwaU1IQjRJZzBLQ1NCMmFXVjNRbTk0UFNJd0lEQWdPQ0E0SWlCbGJtRmliR1V0WW1GamEyZHliM1Z1WkQwaWJtVjNJREFnTUNBNElEZ2lJSGh0YkRwemNHRmpaVDBpY0hKbGMyVnlkbVVpUGcwS1BIQmhkR2dnWm1sc2JEMGlJMFpHUmtaR1JpSWdaRDBpVFRZdU5Dd3hURFV1Tnl3eExqZE1NaTQ1TERRdU5Vd3lMakVzTXk0M1RERXVOQ3d6VERBc05DNDBiREF1Tnl3d0xqZHNNUzQxTERFdU5Xd3dMamNzTUM0M2JEQXVOeTB3TGpkc015NDFMVE11Tld3d0xqY3RNQzQzVERZdU5Dd3hURFl1TkN3eGVpSU5DZ2t2UGcwS1BDOXpkbWMrRFFvPSk7XG59XG5cbi8vIENvbG9ycyB0aGUgY2hlY2tib3ggbGFiZWwgdGV4dCBibHVlIG9uIGhvdmVyXG4uY2hlY2tib3guaG92ZXIge1xuICAgICoge1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAzMDBtcztcbiAgICB9XG5cbiAgICAmOmhvdmVyICoge1xuICAgICAgICBjb2xvcjogJGxpbmstYmx1ZS1saWdodCAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLyogUmFkaW8gbW9kaWZpZXJzICovXG4ucmFkaW8gLmZvcm0tY29udHJvbC1pbmRpY2F0b3Ige1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyAvLyBzbyB0aGF0IHRoZSBlbmNsb3NpbmcgbGFiZWwgY2FuIGhhdmUgdGhlIGV2ZW50cyBhbmQgbWFuaXB1bGF0ZSB0aGUgaGlkZGVuIGlucHV0IGVsZW1lbnRcbn1cbi5yYWRpbyBpbnB1dDpjaGVja2VkIH4gLmZvcm0tY29udHJvbC1pbmRpY2F0b3Ige1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejROQ2p3aExTMGdSMlZ1WlhKaGRHOXlPaUJCWkc5aVpTQkpiR3gxYzNSeVlYUnZjaUF4Tnk0eExqQXNJRk5XUnlCRmVIQnZjblFnVUd4MVp5MUpiaUF1SUZOV1J5QldaWEp6YVc5dU9pQTJMakF3SUVKMWFXeGtJREFwSUNBdExUNE5DandoUkU5RFZGbFFSU0J6ZG1jZ1VGVkNURWxESUNJdEx5OVhNME12TDBSVVJDQlRWa2NnTVM0eEx5OUZUaUlnSW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTDBkeVlYQm9hV056TDFOV1J5OHhMakV2UkZSRUwzTjJaekV4TG1SMFpDSStEUW84YzNabklIWmxjbk5wYjI0OUlqRXVNU0lnYVdROUlreGhlV1Z5WHpFaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2VHMXNibk02ZUd4cGJtczlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1RrdmVHeHBibXNpSUhnOUlqQndlQ0lnZVQwaU1IQjRJZzBLQ1NCMmFXVjNRbTk0UFNJd0lEQWdPQ0E0SWlCbGJtRmliR1V0WW1GamEyZHliM1Z1WkQwaWJtVjNJREFnTUNBNElEZ2lJSGh0YkRwemNHRmpaVDBpY0hKbGMyVnlkbVVpUGcwS1BIQmhkR2dnWm1sc2JEMGlJMFpHUmtaR1JpSWdaRDBpVFRRc01VTXlMak1zTVN3eExESXVNeXd4TERSek1TNHpMRE1zTXl3emN6TXRNUzR6TERNdE0xTTFMamNzTVN3MExERjZJaTgrRFFvOEwzTjJaejROQ2c9PSk7XG59XG5cbi8qIEFsdGVybmF0ZWx5LCB1c2UgYW5vdGhlciBjaGFyYWN0ZXIgKi9cbi5mb3JtLWNvbnRyb2wteCBpbnB1dDpjaGVja2VkIH4gLmZvcm0tY29udHJvbC1pbmRpY2F0b3Ige1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejROQ2p3aExTMGdSMlZ1WlhKaGRHOXlPaUJCWkc5aVpTQkpiR3gxYzNSeVlYUnZjaUF4Tnk0eExqQXNJRk5XUnlCRmVIQnZjblFnVUd4MVp5MUpiaUF1SUZOV1J5QldaWEp6YVc5dU9pQTJMakF3SUVKMWFXeGtJREFwSUNBdExUNE5DandoUkU5RFZGbFFSU0J6ZG1jZ1VGVkNURWxESUNJdEx5OVhNME12TDBSVVJDQlRWa2NnTVM0eEx5OUZUaUlnSW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTDBkeVlYQm9hV056TDFOV1J5OHhMakV2UkZSRUwzTjJaekV4TG1SMFpDSStEUW84YzNabklIWmxjbk5wYjI0OUlqRXVNU0lnYVdROUlreGhlV1Z5WHpFaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2VHMXNibk02ZUd4cGJtczlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1RrdmVHeHBibXNpSUhnOUlqQndlQ0lnZVQwaU1IQjRJZzBLQ1NCM2FXUjBhRDBpT0hCNElpQm9aV2xuYUhROUlqaHdlQ0lnZG1sbGQwSnZlRDBpTUNBd0lEZ2dPQ0lnWlc1aFlteGxMV0poWTJ0bmNtOTFibVE5SW01bGR5QXdJREFnT0NBNElpQjRiV3c2YzNCaFkyVTlJbkJ5WlhObGNuWmxJajROQ2p4d1lYUm9JR1pwYkd3OUlpTkdSa1pHUmtZaUlHUTlJazB4TGpRc01Fd3dMREV1Tkd3d0xqY3NNQzQzYkRFdU9Dd3hMamhNTUM0M0xEVXVOMHd3TERZdU5Hd3hMalFzTVM0MGJEQXVOeTB3TGpkc01TNDRMVEV1T0d3eExqZ3NNUzQ0YkRBdU55d3dMamRzTVM0MExURXVORXczTGpFc05TNDNEUW9KVERVdU15d3pMamxzTVM0NExURXVPR3d3TGpjdE1DNDNURFl1TkN3d1REVXVOeXd3TGpkTU15NDVMREl1TlV3eUxqRXNNQzQzUXpJdU1Td3dMamNzTVM0MExEQXNNUzQwTERCNklpOCtEUW84TDNOMlp6NE5DZz09KTtcbn1cbi5mb3JtLWNvbnRyb2wtZGFzaCBpbnB1dDpjaGVja2VkIH4gLmZvcm0tY29udHJvbC1pbmRpY2F0b3Ige1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejROQ2p3aExTMGdSMlZ1WlhKaGRHOXlPaUJCWkc5aVpTQkpiR3gxYzNSeVlYUnZjaUF4Tnk0eExqQXNJRk5XUnlCRmVIQnZjblFnVUd4MVp5MUpiaUF1SUZOV1J5QldaWEp6YVc5dU9pQTJMakF3SUVKMWFXeGtJREFwSUNBdExUNE5DandoUkU5RFZGbFFSU0J6ZG1jZ1VGVkNURWxESUNJdEx5OVhNME12TDBSVVJDQlRWa2NnTVM0eEx5OUZUaUlnSW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTDBkeVlYQm9hV056TDFOV1J5OHhMakV2UkZSRUwzTjJaekV4TG1SMFpDSStEUW84YzNabklIWmxjbk5wYjI0OUlqRXVNU0lnYVdROUlreGhlV1Z5WHpFaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2VHMXNibk02ZUd4cGJtczlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1RrdmVHeHBibXNpSUhnOUlqQndlQ0lnZVQwaU1IQjRJZzBLQ1NCM2FXUjBhRDBpT0hCNElpQm9aV2xuYUhROUlqaHdlQ0lnZG1sbGQwSnZlRDBpTUNBd0lEZ2dPQ0lnWlc1aFlteGxMV0poWTJ0bmNtOTFibVE5SW01bGR5QXdJREFnT0NBNElpQjRiV3c2YzNCaFkyVTlJbkJ5WlhObGNuWmxJajROQ2p4d1lYUm9JR1pwYkd3OUlpTkdSa1pHUmtZaUlHUTlJazB3TEROMk1tZzRWak5JTUhvaUx6NE5Dand2YzNablBnMEspXG59XG4iLCIvKmRvY1xuLS0tXG50aXRsZTogQmFzaWMgQWNjb3JkaW9uXG5uYW1lOiBhLWJhc2ljXG5jYXRlZ29yeTogU2xpZGVzaG93cyAmIEFjY29yZGlvbnMgLSBBY2NvcmRpb25cbnNlbGVjdG9yczpcbiAgICAtIC5hY2NvcmRpb25cbi0tLVxuXG5Zb3UgY2FuIGNyZWF0ZSBhbiBhY2NvcmRpb24gdXNpbmcgbWluaW1hbCBtYXJrdXAuIEl0IHJlcXVpcmVzIHRoZSB1c2Ugb2YgYSBgdWxgIG9yIGBkbGAgdG8gd29yay5cblxuSWYgeW91IGFkZCBhIGNsYXNzIG9mIGAubm9wYWRgIHRvIHRoZSBhY2NvcmRpb24gaXQgd2lsbCByZW1vdmUgcGFkZGluZyBzbyB0aGF0IHlvdSBjYW4gcHV0XG5wYW5lbHMgaW5zaWRlIG9yIGhhdmUgZWRnZSB0byBlZGdlIGRpdmlkaW5nIGJvcmRlcnMuICBJZiB5b3UgYWRkIGEgY2xhc3Mgb2YgYC5mdWxsd2lkdGgtYWNjb3JkaW9uYCB0aGVuIHRoZSBhY2NvcmRpb24gd2lsbCBhcHBlYXIgZnVsbC13aWR0aCBvbiBtb2JpbGUgdXNpbmcgbmVnYXRpdmUgbWFyZ2lucy5cblxuYGBgaHRtbF9leGFtcGxlP2tpdGNoZW4tc2luaz10cnVlXG48dWwgY2xhc3M9XCJuby1idWxsZXQgYWNjb3JkaW9uIGJsb2NrLWxvb3NlclwiIGRhdGEtYWNjb3JkaW9uPlxuICA8bGkgY2xhc3M9XCJhY2NvcmRpb24tbmF2aWdhdGlvblwiPlxuICAgIDxhIGhyZWY9XCIjcGFuZWwxYVwiPkFjY29yZGlvbiAxPC9hPlxuICAgIDxkaXYgaWQ9XCJwYW5lbDFhXCIgY2xhc3M9XCJjb250ZW50IGFjdGl2ZVwiPlxuICAgICAgUGFuZWwgMS4gTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LlxuICAgIDwvZGl2PlxuICA8L2xpPlxuICA8bGkgY2xhc3M9XCJhY2NvcmRpb24tbmF2aWdhdGlvblwiPlxuICAgIDxhIGhyZWY9XCIjcGFuZWwyYVwiPkFjY29yZGlvbiAyPC9hPlxuICAgIDxkaXYgaWQ9XCJwYW5lbDJhXCIgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgICBQYW5lbCAyLiBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuIFV0IGVuaW0gYWQgbWluaW0gdmVuaWFtLCBxdWlzIG5vc3RydWQgZXhlcmNpdGF0aW9uIHVsbGFtY28gbGFib3JpcyBuaXNpIHV0IGFsaXF1aXAgZXggZWEgY29tbW9kbyBjb25zZXF1YXQuXG4gICAgPC9kaXY+XG4gIDwvbGk+XG4gIDxsaSBjbGFzcz1cImFjY29yZGlvbi1uYXZpZ2F0aW9uXCI+XG4gICAgPGEgaHJlZj1cIiNwYW5lbDNhXCI+QWNjb3JkaW9uIDM8L2E+XG4gICAgPGRpdiBpZD1cInBhbmVsM2FcIiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgICAgIFBhbmVsIDMuIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC5cbiAgICA8L2Rpdj5cbiAgPC9saT5cbjwvdWw+XG5cbjxwPmAuYWNjb3JkaW9uLmJvcmRlcmVkYDwvcD5cbjx1bCBjbGFzcz1cIm5vLWJ1bGxldCBhY2NvcmRpb24gYm9yZGVyZWRcIiBkYXRhLWFjY29yZGlvbj5cbiAgPGxpIGNsYXNzPVwiYWNjb3JkaW9uLW5hdmlnYXRpb24gYm9yZGVyLWJvdHRvbVwiPlxuICAgIDxhIGhyZWY9XCIjcGFuZWxicmRhXCI+QWNjb3JkaW9uIDE8L2E+XG4gICAgPGRpdiBpZD1cInBhbmVsYnJkYVwiIGNsYXNzPVwiY29udGVudCBhY3RpdmVcIj5cbiAgICAgIFBhbmVsIDEuIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1hZ25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNlcXVhdC5cbiAgICA8L2Rpdj5cbiAgPC9saT5cbiAgPGxpIGNsYXNzPVwiYWNjb3JkaW9uLW5hdmlnYXRpb24gYm9yZGVyLWJvdHRvbVwiPlxuICAgIDxhIGhyZWY9XCIjcGFuZWxicmRiXCI+QWNjb3JkaW9uIDI8L2E+XG4gICAgPGRpdiBpZD1cInBhbmVsYnJkYlwiIGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgUGFuZWwgMi4gTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLiBVdCBlbmltIGFkIG1pbmltIHZlbmlhbSwgcXVpcyBub3N0cnVkIGV4ZXJjaXRhdGlvbiB1bGxhbWNvIGxhYm9yaXMgbmlzaSB1dCBhbGlxdWlwIGV4IGVhIGNvbW1vZG8gY29uc2VxdWF0LlxuICAgIDwvZGl2PlxuICA8L2xpPlxuXG48L3VsPlxuYGBgXG4qL1xuXG4uYWNjb3JkaW9uLm5vcGFkIC5jb250ZW50IHtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4uYWNjb3JkaW9uLmZ1bGx3aWR0aC1hY2NvcmRpb24ge1xuICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xuICAgIG1hcmdpbi1sZWZ0OiAtMXJlbSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogLTFyZW0gIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKmRvY1xuLS0tXG50aXRsZTogU2VhcmNoIEFjY29yZGlvblxubmFtZTogYi1zZWFyY2gtYWNjb3JkaW9uXG5jYXRlZ29yeTogU2xpZGVzaG93cyAmIEFjY29yZGlvbnMgLSBBY2NvcmRpb25cbi0tLVxuXG5IZXJlIGlzIGFuIGV4YW1wbGUgb2YgdGhlIGFjY29yZGlvbiBjb21wb25lbnQgYmVpbmcgdXNlZCBpbiBzZWFyY2guIFRoaXMgaXMgbm90XG5hbiBleHRlbnNpb24gb2YgdGhlIGFjY29yZGlvbi4gSXQgaXMganVzdCBhbiBleGFtcGxlIG9mIHRoaXMgY29tcG9uZW50IGJlaW5nXG51c2VkIHdpdGhpbiBhbm90aGVyIGNvbXBvbmVudC5cblxuKlR3byB0aGluZ3MgdG8ga2VlcCBpbiBtaW5kOiogVGhlIGFjY29yZGlvbiBodG1sIG5lZWRzIHRvIGJlIGluc2lkZSBhIGRpdiB3aXRoXG5jbGFzcyBvZiBgLnNlYXJjaENvbnRyb2xgIGFuZCBhIGNsYXNzIG9mIGAuc2VhcmNoQ29udHJvbF9hY2NvcmRpb25gIG5lZWRzIHRvIGJlXG5hZGRlZCB0byB0aGUgYHVsYC5cblxuQWdhaW4sIHRoaXMgaXMgbm90IGFuIGV4dGVuc2lvbiBvZiB0aGUgdGhlIGFjY29yZGlvbiBjb21wb25lbnQsIHBsZWFzZSByZWZlciB0b1xudGhlIHNlYXJjaCBjb21wb25lbnQgZm9yIG1vcmUgaW5mb3JtYXRpb24uIEkgc2hvdWxkbid0IGV2ZW4gcHV0IHRoaXMgaGVyZS5cblxuYGBgaHRtbF9leGFtcGxlXG48ZGl2IGNsYXNzPVwic2VhcmNoQ29udHJvbFwiPlxuICA8IS0tIFVzdWFsbHkgdGhlcmUgaXMgb3RoZXIgY3JhcCBpbiB0aGUgc2VhcmNoQ29udHJvbCAtLT5cbiAgPHVsIGNsYXNzPVwiYWNjb3JkaW9uIHNlYXJjaENvbnRyb2xfYWNjb3JkaW9uXCIgZGF0YS1hY2NvcmRpb24gZGF0YS1vcHRpb25zPVwibXVsdGlfZXhwYW5kOiB0cnVlXCI+XG4gICAgPGxpIGNsYXNzPVwiYWNjb3JkaW9uLW5hdmlnYXRpb24gc2VhcmNoQ29udHJvbF9mYWNldFwiPlxuICAgICAgPGEgaHJlZj1cIiNlZHVjYXRpb25cIiBjbGFzcz1cInNlYXJjaENvbnRyb2xfZmFjZXRfaGVhZGluZ1wiPkVkdWNhdGlvbiA8c3ZnIGNsYXNzPVwiaWNvbiByaWdodCBzZWFyY2hDb250cm9sX2ZhY2V0X2hlYWRpbmdfaWNvbi10b2dnbGVcIj48dXNlIHhsaW5rOmhyZWY9XCIvc3RhdGljL3Nwcml0ZXMvc3ZnL3Nwcml0ZS5zeW1ib2wuc3ZnI2NoZXZyb25cIiAvPjwvc3ZnPjwvYT5cbiAgICAgIDxkaXYgaWQ9XCJlZHVjYXRpb25cIiBjbGFzcz1cImNvbnRlbnQgc2VhcmNoQ29udHJvbF9mYWNldF9jb250ZW50XCI+XG4gICAgICAgIDxwIGNsYXNzPVwiYmxvY2stZmx1c2hcIj48aW5wdXQgaWQ9XCJjaGVja2JveDFcIiB0eXBlPVwiY2hlY2tib3hcIj48bGFiZWwgZm9yPVwiY2hlY2tib3gxXCI+Q2hlY2tib3ggMTwvbGFiZWw+PC9wPlxuICAgICAgICA8cCBjbGFzcz1cImJsb2NrLWZsdXNoXCI+PGlucHV0IGlkPVwiY2hlY2tib3gyXCIgdHlwZT1cImNoZWNrYm94XCI+PGxhYmVsIGZvcj1cImNoZWNrYm94MlwiPkNoZWNrYm94IDI8L2xhYmVsPjwvcD5cbiAgICAgICAgPHAgY2xhc3M9XCJibG9jay1mbHVzaFwiPjxpbnB1dCBpZD1cImNoZWNrYm94MVwiIHR5cGU9XCJjaGVja2JveFwiPjxsYWJlbCBmb3I9XCJjaGVja2JveDFcIj5DaGVja2JveCAxPC9sYWJlbD48L3A+XG4gICAgICAgIDxwIGNsYXNzPVwiYmxvY2stZmx1c2hcIj48aW5wdXQgaWQ9XCJjaGVja2JveDFcIiB0eXBlPVwiY2hlY2tib3hcIj48bGFiZWwgZm9yPVwiY2hlY2tib3gxXCI+Q2hlY2tib3ggMTwvbGFiZWw+PC9wPlxuICAgICAgICA8cCBjbGFzcz1cImJsb2NrLWZsdXNoXCI+PGlucHV0IGlkPVwiY2hlY2tib3gxXCIgdHlwZT1cImNoZWNrYm94XCI+PGxhYmVsIGZvcj1cImNoZWNrYm94MVwiPkNoZWNrYm94IDE8L2xhYmVsPjwvcD5cbiAgICAgICAgPHAgY2xhc3M9XCJibG9jay1mbHVzaFwiPjxpbnB1dCBpZD1cImNoZWNrYm94MVwiIHR5cGU9XCJjaGVja2JveFwiPjxsYWJlbCBmb3I9XCJjaGVja2JveDFcIj5DaGVja2JveCAxPC9sYWJlbD48L3A+XG4gICAgICAgIDxwIGNsYXNzPVwiYmxvY2stZmx1c2hcIj48aW5wdXQgaWQ9XCJjaGVja2JveDFcIiB0eXBlPVwiY2hlY2tib3hcIj48bGFiZWwgZm9yPVwiY2hlY2tib3gxXCI+Q2hlY2tib3ggMTwvbGFiZWw+PC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9saT5cbiAgICA8bGkgY2xhc3M9XCJhY2NvcmRpb24tbmF2aWdhdGlvbiBzZWFyY2hDb250cm9sX2ZhY2V0XCI+XG4gICAgICA8YSBocmVmPVwiI2V4cGVyaWVuY2VcIiBjbGFzcz1cInNlYXJjaENvbnRyb2xfZmFjZXRfaGVhZGluZ1wiPkV4cGVyaWVuY2UgPHN2ZyBjbGFzcz1cImljb24gcmlnaHQgc2VhcmNoQ29udHJvbF9mYWNldF9oZWFkaW5nX2ljb24tdG9nZ2xlXCI+PHVzZSB4bGluazpocmVmPVwiL3N0YXRpYy9zcHJpdGVzL3N2Zy9zcHJpdGUuc3ltYm9sLnN2ZyNjaGV2cm9uXCIgLz48L3N2Zz48L2E+XG4gICAgICA8ZGl2IGlkPVwiZXhwZXJpZW5jZVwiIGNsYXNzPVwiY29udGVudCBzZWFyY2hDb250cm9sX2ZhY2V0X2NvbnRlbnRcIj5cbiAgICAgICAgICA8cD5GdXR1cmUgaG9tZSBvZiBleHBlcmllbmNlPC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9saT5cbiAgICA8bGkgY2xhc3M9XCJhY2NvcmRpb24tbmF2aWdhdGlvbiBzZWFyY2hDb250cm9sX2ZhY2V0XCI+XG4gICAgICA8YSBocmVmPVwiI3NhbGFyeVwiIGNsYXNzPVwic2VhcmNoQ29udHJvbF9mYWNldF9oZWFkaW5nXCI+U2FsYXJ5IDxzdmcgY2xhc3M9XCJpY29uIHJpZ2h0IHNlYXJjaENvbnRyb2xfZmFjZXRfaGVhZGluZ19pY29uLXRvZ2dsZVwiPjx1c2UgeGxpbms6aHJlZj1cIi9zdGF0aWMvc3ByaXRlcy9zdmcvc3ByaXRlLnN5bWJvbC5zdmcjY2hldnJvblwiIC8+PC9zdmc+PC9hPlxuICAgICAgPGRpdiBpZD1cInNhbGFyeVwiIGNsYXNzPVwiY29udGVudCBzZWFyY2hDb250cm9sX2ZhY2V0X2NvbnRlbnRcIj5cbiAgICAgICAgICA8cD5GdXR1cmUgaG9tZSBvZiBTYWxhcnk8L3A+XG4gICAgICA8L2Rpdj5cbiAgICA8L2xpPlxuICAgIDxsaSBjbGFzcz1cImFjY29yZGlvbi1uYXZpZ2F0aW9uIHNlYXJjaENvbnRyb2xfZmFjZXRcIj5cbiAgICAgIDxhIGhyZWY9XCIjc2tpbGxzXCIgY2xhc3M9XCJzZWFyY2hDb250cm9sX2ZhY2V0X2hlYWRpbmdcIj5Ta2lsbHMgPHN2ZyBjbGFzcz1cImljb24gcmlnaHQgc2VhcmNoQ29udHJvbF9mYWNldF9oZWFkaW5nX2ljb24tdG9nZ2xlXCI+PHVzZSB4bGluazpocmVmPVwiL3N0YXRpYy9zcHJpdGVzL3N2Zy9zcHJpdGUuc3ltYm9sLnN2ZyNjaGV2cm9uXCIgLz48L3N2Zz48L2E+XG4gICAgICA8ZGl2IGlkPVwic2tpbGxzXCIgY2xhc3M9XCJjb250ZW50IHNlYXJjaENvbnRyb2xfZmFjZXRfY29udGVudFwiPlxuICAgICAgICBGdXR1cmUgaG9tZSBvZiBTa2lsbHNcbiAgICAgIDwvZGl2PlxuICAgIDwvbGk+XG4gICAgPGxpIGNsYXNzPVwiYWNjb3JkaW9uLW5hdmlnYXRpb24gc2VhcmNoQ29udHJvbF9mYWNldFwiPlxuICAgICAgPGEgaHJlZj1cIiNyYW5raW5nc1wiIGNsYXNzPVwic2VhcmNoQ29udHJvbF9mYWNldF9oZWFkaW5nXCI+UmFua2luZ3MgPHN2ZyBjbGFzcz1cImljb24gcmlnaHQgc2VhcmNoQ29udHJvbF9mYWNldF9oZWFkaW5nX2ljb24tdG9nZ2xlXCI+PHVzZSB4bGluazpocmVmPVwiL3N0YXRpYy9zcHJpdGVzL3N2Zy9zcHJpdGUuc3ltYm9sLnN2ZyNjaGV2cm9uXCIgLz48L3N2Zz48L2E+XG4gICAgICA8ZGl2IGlkPVwicmFua2luZ3NcIiBjbGFzcz1cImNvbnRlbnQgc2VhcmNoQ29udHJvbF9mYWNldF9jb250ZW50XCI+XG4gICAgICAgIEZ1dHVyZSBob21lIG9mIFJhbmtpbmdzXG4gICAgICA8L2Rpdj5cbiAgICA8L2xpPlxuICA8L3VsPlxuPC9kaXY+XG5gYGBcbiovXG5cblxuLy8gVXNpbmcgbW9kZXJuaXpyJ3MgJ25vLWpzJyBjbGFzcywgd2UgY2FuIHN0eWxlIGZvciB3aGVuIGphdmFzY3JpcHQgaXMgbm90IHJ1bm5pbmcsXG4vLyBhbmQgZm9yY2UgYWxsIGFjY29yZGlvbiBzZWN0aW9ucyB0byBiZSBvcGVuIGluIHRoYXQgY2FzZSwgc28gdGhhdCBwYWdlcyBhcmUgc3RpbGxcbi8vIHVzYWJsZS5cbmh0bWwubm8tanMgLmFjY29yZGlvbiAuYWNjb3JkaW9uLW5hdmlnYXRpb24gPiAuY29udGVudCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBDaGV2cm9uIEFjY29yZGlvblxubmFtZTogYy1jaGV2cm9uLWFjY29yZGlvblxuY2F0ZWdvcnk6IFNsaWRlc2hvd3MgJiBBY2NvcmRpb25zIC0gQWNjb3JkaW9uXG50ZW1wbGF0ZTpcbiAgICBhY2NvcmRpb25zOlxuICAgIC0gbmFtZTogXCJbbmFtZV1cIlxuICAgICAgaXRlbXM6XG4gICAgICAgIC0gbmFtZTogXCJbaXRlbS5uYW1lXVwiXG4gICAgICAgICAgdXJsOiBcIiNcIlxuICAgICAgICAtIG5hbWU6IFwiW2l0ZW0ubmFtZV1cIlxuICAgICAgICAgIHVybDogXCIjXCJcbiAgICAgICAgLSBuYW1lOiBcIltpdGVtLm5hbWVdXCJcbiAgICAgICAgICB1cmw6IFwiI1wiXG4gICAgICAgIC0gbmFtZTogXCJbaXRlbS5uYW1lXVwiXG4gICAgICAgICAgdXJsOiBcIiNcIlxuICAgIC0gbmFtZTogXCJbbmFtZV1cIlxuICAgICAgaXRlbXM6XG4gICAgICAgIC0gbmFtZTogXCJbaXRlbS5uYW1lXVwiXG4gICAgICAgICAgdXJsOiBcIiNcIlxuICAgICAgICAtIG5hbWU6IFwiW2l0ZW0ubmFtZV1cIlxuICAgICAgICAgIHVybDogXCIjXCJcbiAgICAgICAgLSBuYW1lOiBcIltpdGVtLm5hbWVdXCJcbiAgICAgICAgICB1cmw6IFwiI1wiXG4gICAgICAgIC0gbmFtZTogXCJbaXRlbS5uYW1lXVwiXG4gICAgICAgICAgdXJsOiBcIiNcIlxuICAgIC0gbmFtZTogXCJbbmFtZV1cIlxuICAgICAgaXRlbXM6XG4gICAgICAgIC0gbmFtZTogXCJbaXRlbS5uYW1lXVwiXG4gICAgICAgICAgdXJsOiBcIiNcIlxuICAgICAgICAtIG5hbWU6IFwiW2l0ZW0ubmFtZV1cIlxuICAgICAgICAgIHVybDogXCIjXCJcbiAgICAgICAgLSBuYW1lOiBcIltpdGVtLm5hbWVdXCJcbiAgICAgICAgICB1cmw6IFwiI1wiXG4gICAgICAgIC0gbmFtZTogXCJbaXRlbS5uYW1lXVwiXG4gICAgICAgICAgdXJsOiBcIiNcIlxuLS0tXG5cbkFub3RoZXIgYWNjb3JkaW9uIHN0eWxlLCBjbG9uaW5nIHRoZSBsb29rIG9mIHRoZSBzZWFyY2ggYXBwcy4gIFRoaXMgb25lIGlzIGEgbWFjcm8gZm9yIGhhbmR5IHJlLXVzZS5cblxueyUgc2V0IGVkaXRvcl9pZCA9IHV1aWQoKSAlfVxuYGBgbnVuanVja3NfdGFiP2VkaXRvci1pZD17e2VkaXRvcl9pZH19XG57JSBmcm9tIFwidGVtcGxhdGVzL2NvbW1vbi9saXN0L2NoZXZyb24tYWNjb3JkaW9uLm51bmpcIiBpbXBvcnQgY2hldnJvbkFjY29yZGlvbiAlfVxue3sgY2hldnJvbkFjY29yZGlvbihhY2NvcmRpb25zKSB9fVxuYGBgXG5cbiovXG5cbi5jaGV2cm9uLWFjY29yZGlvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG5cbiAgICAuYWNjb3JkaW9uLW5hdmlnYXRpb24gPiAuY2hldnJvbi1hY2NvcmRpb24taGVhZGluZyxcbiAgICAuYWNjb3JkaW9uLW5hdmlnYXRpb24gPiAuY2hldnJvbi1hY2NvcmRpb24taGVhZGluZzpob3ZlcixcbiAgICAuYWNjb3JkaW9uLW5hdmlnYXRpb24uYWN0aXZlID4gLmNoZXZyb24tYWNjb3JkaW9uLWhlYWRpbmcge1xuICAgICAgICBAaW5jbHVkZSBoZWFkaW5nKCdub3JtYWwnKTtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIH1cblxuICAgIC5hY2NvcmRpb24tbmF2aWdhdGlvbiB7XG4gICAgICAgID4gLmNoZXZyb24tYWNjb3JkaW9uLWNvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaGV2cm9uLWFjY29yZGlvbi1pY29uLXRvZ2dsZSB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjI1cztcbiAgICAgICAgICAgIGZpbGw6ICM0QjRCNEM7XG4gICAgICAgICAgICBoZWlnaHQ6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLmFjdGl2ZSAuY2hldnJvbi1hY2NvcmRpb24taWNvbi10b2dnbGUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qZG9jXG4tLS1cbnRpdGxlOiBBcnRpY2xlIFRhYmxlXG5uYW1lOiBhLXRhYmxlXG5jYXRlZ29yeTogRGF0YSBQYXR0ZXJucyAtIFRhYmxlc1xudGVtcGxhdGU6XG4gIGhlYWRlcnM6XG4gICAgICAtIFNjaG9vbCBOYW1lIChTdGF0ZSlcbiAgICAgIC0gUGVyY2VudCBvZiBVbmRlcmdyYWRzIEdyYWR1YXRpbmcgd2l0aCBJbnRlcm5zaGlwIEV4cGVyaWVuY2VcbiAgICAgIC0gVS5TLiBOZXdzIFJhbmtcbiAgcm93czpcbiAgICAgIC1cbiAgICAgICAgLSA8YSBocmVmPVwiI1wiPkJlbm5pbmd0b24gQ29sbGVnZSAoVlQpPC9hPlxuICAgICAgICAtIDxzcGFuIGNsYXNzPVwic2hvdy1tb2JpbGUtb25seSB0ZXh0LW11dGVkXCI+UGVyY2VudCBvZiBVbmRlcmdyYWRzIEdyYWR1YXRpbmcgd2l0aCBJbnRlcm5zaGlwIEV4cGVyaWVuY2U6PC9zcGFuPiAxMDAlXG4gICAgICAgIC0gPHN0cm9uZz4jODkgKHRpZSk8L3N0cm9uZz4gaW4gPGEgaHJlZj1cIiNcIiBjbGFzcz1cImRvdHRlZCBzaG93LWZvci1tZWRpdW0tdXBcIj5OYXRpb25hbCBMaWJlcmFsIEFydHMgQ29sbGVnZXM8L2E+PHNwYW4gY2xhc3M9XCJoaWRlLWZvci1tZWRpdW0tdXBcIj5OYXRpb25hbCBMaWJlcmFsIEFydHMgQ29sbGVnZXM8L3NwYW4+XG4gICAgICAtXG4gICAgICAgIC0gPGEgaHJlZj1cIiNcIj5FbG1pcmEgQ29sbGVnZSAoTlkpPC9hPlxuICAgICAgICAtIDxzcGFuIGNsYXNzPVwic2hvdy1tb2JpbGUtb25seSB0ZXh0LW11dGVkXCI+UGVyY2VudCBvZiBVbmRlcmdyYWRzIEdyYWR1YXRpbmcgd2l0aCBJbnRlcm5zaGlwIEV4cGVyaWVuY2U6PC9zcGFuPiAxMDAlXG4gICAgICAgIC0gPHN0cm9uZz4jOSAodGllKTwvc3Ryb25nPiBpbiA8YSBocmVmPVwiI1wiIGNsYXNzPVwiZG90dGVkIHNob3ctZm9yLW1lZGl1bS11cFwiPlJlZ2lvbmFsIENvbGxlZ2VzIChOb3J0aCk8L2E+PHNwYW4gY2xhc3M9XCJoaWRlLWZvci1tZWRpdW0tdXBcIj5SZWdpb25hbCBDb2xsZWdlcyAoTm9ydGgpPC9zcGFuPlxuICAgICAgLSBhZEhlcmVcbiAgICAgIC1cbiAgICAgICAgLSA8YSBocmVmPVwiI1wiPkhhcnJpc2J1cmcgVW5pdmVyc2l0eSBvZiBTY2llbmNlIGFuZCBUZWNobm9sb2d5IChQQSk8L2E+XG4gICAgICAgIC0gPHNwYW4gY2xhc3M9XCJzaG93LW1vYmlsZS1vbmx5IHRleHQtbXV0ZWRcIj5QZXJjZW50IG9mIFVuZGVyZ3JhZHMgR3JhZHVhdGluZyB3aXRoIEludGVybnNoaXAgRXhwZXJpZW5jZTo8L3NwYW4+IDEwMCVcbiAgICAgICAgLSA8c3Ryb25nPlJOUDwvc3Ryb25nPiBpbiA8YSBocmVmPVwiI1wiIGNsYXNzPVwiZG90dGVkIHNob3ctZm9yLW1lZGl1bS11cFwiPk5hdGlvbmFsIExpYmVyYWwgQXJ0cyBDb2xsZWdlczwvYT48c3BhbiBjbGFzcz1cImhpZGUtZm9yLW1lZGl1bS11cFwiPk5hdGlvbmFsIExpYmVyYWwgQXJ0cyBDb2xsZWdlczwvc3Bhbj5cbi0tLVxuXG5Zb3UgY2FuIGNyZWF0ZSBhIHRhYmxlIHVzaW5nIG1pbmltYWwgbWFya3VwLiAgQXQgbW9iaWxlIHNpemUsIGFkcyBhcmUgc29tZXRpbWVzIGluc2VydGVkIGJldHdlZW4gcm93cy5cblxuYGBgaHRtbF9leGFtcGxlP2tpdGNoZW4tc2luaz10cnVlXG5cbnslIGluY2x1ZGUgXCJ0ZW1wbGF0ZXMvY29tbW9uL3RhYmxlLm51bmpcIiAlfVxuXG5gYGBcblxuKi9cblxuLypkb2Ncbi0tLVxudGl0bGU6IEFsdGVybmF0ZSBEaXNwbGF5c1xubmFtZTogYS10YWJsZS1kYXRhXG5jYXRlZ29yeTogRGF0YSBQYXR0ZXJucyAtIFRhYmxlc1xudGVtcGxhdGU6XG4gIGV4dHJhQ2xhc3M6IGZ1bGwtcm93XG4gIGhlYWRlcnM6XG4gICAgICAtIENvbXBhbnlcbiAgICAgIC0gPGRpdiBjbGFzcz1cImJsb2NrLXRpZ2h0ZXJcIj5QcmljZTwvZGl2PiA8c3BhbiBjbGFzcz1cImxlZnQgdGV4dC1tdXRlZCB0ZXh0LXNtYWxsZXJcIj5VU0Q8L3NwYW4+XG4gICAgICAtIDxkaXYgY2xhc3M9XCJibG9jay10aWdodGVyXCI+UmV0dXJuczwvZGl2PiA8c3BhbiBjbGFzcz1cImxlZnQgdGV4dC1tdXRlZCB0ZXh0LXNtYWxsZXJcIj4xLXllYXI8L3NwYW4+XG4gICAgICAtIDxkaXYgY2xhc3M9XCJibG9jay10aWdodGVyXCI+UmV0dXJuczwvZGl2PiA8c3BhbiBjbGFzcz1cImxlZnQgdGV4dC1tdXRlZCB0ZXh0LXNtYWxsZXJcIj41LXllYXI8L3NwYW4+XG4gIHJvd3M6XG4gICAgICAtXG4gICAgICAgIC0gPGRpdiBjbGFzcz1cImJsb2NrLXRpZ2h0ZXJcIj48YSBocmVmPVwiI1wiPk1pY3Jvc29mdCBDb3JwLjwvYT48L2Rpdj4gPHNwYW4gY2xhc3M9XCJsZWZ0IHRleHQtbXV0ZWQgdGV4dC1zbWFsbGVyXCI+TUZTVDwvc3Bhbj5cbiAgICAgICAgLSAxMDIuMzJcbiAgICAgICAgLSA8c3BhbiBjbGFzcz1cInN0b2NrLXRyZW5kIHRleHQtbm9ybWFsIHVwXCI+Mi4xMjwvc3Bhbj5cbiAgICAgICAgLSA8c3BhbiBjbGFzcz1cInN0b2NrLXRyZW5kIHRleHQtbm9ybWFsIHVwXCI+MTIuMzQ8L3NwYW4+XG4gICAgICAtXG4gICAgICAgIC0gPGRpdiBjbGFzcz1cImJsb2NrLXRpZ2h0ZXJcIj48YSBocmVmPVwiI1wiPkVNQyBDb3JwLjwvYT48L2Rpdj4gPHNwYW4gY2xhc3M9XCJsZWZ0IHRleHQtbXV0ZWQgdGV4dC1zbWFsbGVyXCI+RU1DPC9zcGFuPlxuICAgICAgICAtIDIzLjQ1XG4gICAgICAgIC0gPHNwYW4gY2xhc3M9XCJzdG9jay10cmVuZCB0ZXh0LW5vcm1hbCBkb3duXCI+Mi4xMjwvc3Bhbj5cbiAgICAgICAgLSA8c3BhbiBjbGFzcz1cInN0b2NrLXRyZW5kIHRleHQtbm9ybWFsIGRvd25cIj4xMi4zNDwvc3Bhbj5cbiAgICAgIC1cbiAgICAgICAgLSA8ZGl2IGNsYXNzPVwiYmxvY2stdGlnaHRlclwiPjxhIGhyZWY9XCIjXCI+TGVub3ZvIEdyb3VwPC9hPjwvZGl2PiA8c3BhbiBjbGFzcz1cImxlZnQgdGV4dC1tdXRlZCB0ZXh0LXNtYWxsZXJcIj5MTlZHUDwvc3Bhbj5cbiAgICAgICAgLSA2Mi4xMlxuICAgICAgICAtIDxzcGFuIGNsYXNzPVwic3RvY2stdHJlbmQgdGV4dC1ub3JtYWwgdXBcIj4yLjEyPC9zcGFuPlxuICAgICAgICAtIDxzcGFuIGNsYXNzPVwic3RvY2stdHJlbmQgdGV4dC1ub3JtYWwgdXBcIj4xMi4zNDwvc3Bhbj5cbiAgICAgIC1cbiAgICAgICAgLSA8ZGl2IGNsYXNzPVwiYmxvY2stdGlnaHRlclwiPjxhIGhyZWY9XCIjXCI+UXVhbnR1bSBDb3JwLjwvYT48L2Rpdj4gPHNwYW4gY2xhc3M9XCJsZWZ0IHRleHQtbXV0ZWQgdGV4dC1zbWFsbGVyXCI+UVRDPC9zcGFuPlxuICAgICAgICAtIDMxLjQ3XG4gICAgICAgIC0gPHNwYW4gY2xhc3M9XCJzdG9jay10cmVuZCB0ZXh0LW5vcm1hbCB1cFwiPjIuMTI8L3NwYW4+XG4gICAgICAgIC0gPHNwYW4gY2xhc3M9XCJzdG9jay10cmVuZCB0ZXh0LW5vcm1hbCB1cFwiPjEyLjM0PC9zcGFuPlxuLS0tXG5cblNvbWV0aW1lcyB3ZSBoYXZlIHRhYmxlcyB3aXRob3V0IGludGVybmFsIGJvcmRlcnMgZm9yIGEgcm93LlxuXG5gYGBodG1sX2V4YW1wbGVcblxueyUgaW5jbHVkZSBcInRlbXBsYXRlcy9jb21tb24vdGFibGUubnVualwiICV9XG5cbmBgYFxuXG4qL1xuXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBVbnN0eWxlZCBUYWJsZVxubmFtZTogYi11bnN0eWxlZC10YWJsZVxuY2F0ZWdvcnk6IERhdGEgUGF0dGVybnMgLSBUYWJsZXNcbnRlbXBsYXRlOlxuICBzdG9jazpcbiAgICBBc2s6IDExNS43NFxuICAgIEFza0RhdGU6IFwiMTEvMTIvMjAxNVwiXG4gICAgQXNrU2l6ZTogMTEwMFxuICAgIEFza1RpbWU6IFwiNDowMjowMCBQTVwiXG4gICAgQmlkOiAxMTUuNzNcbiAgICBCaWREYXRlOiBcIjExLzEyLzIwMTVcIlxuICAgIEJpZFNpemU6IDExMDBcbiAgICBCaWRUaW1lOiBcIjQ6MDI6MDAgUE1cIlxuICAgIENoYW5nZUZyb21QcmV2aW91c0Nsb3NlOiAtMC4zOVxuICAgIENsb3NlOiAxMTUuNzJcbiAgICBDdXJyZW5jeTogXCJVU0RcIlxuICAgIERhdGU6IFwiMTEvMTIvMjAxNVwiXG4gICAgRGVsYXk6IDAuMDMxMjI1N1xuICAgIEhpZ2g6IDExNi44MlxuICAgIEhpZ2g1MldlZWtzOiAxMzQuNTRcbiAgICBJZGVudGl0eTogXCJSZXF1ZXN0XCJcbiAgICBMYXN0OiAxMTUuNzJcbiAgICBMYXN0U2l6ZTogOTczODg1XG4gICAgTG93OiAxMTUuNjVcbiAgICBMb3c1MldlZWtzOiA5MlxuICAgIE1lc3NhZ2U6IFwiRGVsYXkgdGltZXMgYXJlIDE1IG1pbnMgZm9yIE5BU0RBUS5cIlxuICAgIE9wZW46IDExNi4yNlxuICAgIE91dGNvbWU6IFwiU3VjY2Vzc1wiXG4gICAgUGVyY2VudENoYW5nZUZyb21QcmV2aW91c0Nsb3NlOiAtMC4zMzZcbiAgICBQcmV2aW91c0Nsb3NlOiAxMTYuMTFcbiAgICBQcmV2aW91c0Nsb3NlRGF0ZTogXCIxMS8xMS8yMDE1XCJcbiAgICBTZWN1cml0eToge0NJSzogXCIwMDAwMzIwMTkzXCIsIENVU0lQOiBudWxsLCBTeW1ib2w6IFwiQUFQTFwiLCBJU0lOOiBudWxsLCBWYWxvcmVuOiBcIjkwODQ0MFwiLCBOYW1lOiBcIkFwcGxlIEluY1wiLOKApn1cbiAgICBUaW1lOiBcIjQ6MDA6MDAgUE1cIlxuICAgIFRyYWRpbmdIYWx0ZWQ6IGZhbHNlXG4gICAgVVRDT2Zmc2V0OiAtNVxuICAgIFZvbHVtZTogMzI1MjU1Nzlcbi0tLVxuXG5IZXJlIGlzIGEgdXNlIGNhc2UgZm9yIGEgY29tcGxldGVseSB1bnN0eWxlZCB0YWJsZVxuXG5gYGBodG1sX2V4YW1wbGVcbnslaW5jbHVkZSAndGVtcGxhdGVzL3BhZ2VzL21vbmV5L2ludmVzdGluZy9jb21tb24vX3N0b2NrLW92ZXJ2aWV3LWhlYWRlci5udW5qJyAlfVxuYGBgXG5cbiovXG5cbi50YWJsZS51bnN0eWxlZCB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlcjogMDtcbiAgdGQge1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cblxuXG4vKmRvY1xuLS0tXG50aXRsZTogRm91bmRhdGlvbiBTZXR0aW5nc1xubmFtZTogYi11c24tdGFibGUtc2V0dGluZ3NcbmNhdGVnb3J5OiBEYXRhIFBhdHRlcm5zIC0gVGFibGVzXG4tLS1cblxuVGhlc2UgYXJlIHRoZSBkZWZhdWx0IEZvdW5kYXRpb24gdGFibGUgdmFyaWFibGVzIHdlIGNhbiBlZGl0IGZyb21cbmBfLnNldHRpbmdzLnNjc3NgLlxuXG5gYGBzYXNzX2V4YW1wbGVcblxuQHJlZi1kb2MgVGFibGVzXG5cbmBgYFxuKi9cblxuLnNob3ctbW9iaWxlLW9ubHkge1xuICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi50YWJsZSB7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICB3aWR0aDogMTAwdnc7XG4gICAgbWFyZ2luLWxlZnQ6IHJlbS1jYWxjKC0xNSk7XG4gICAgbWFyZ2luLXJpZ2h0OiByZW0tY2FsYygtMTUpO1xuXG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuXG4gICAgICAgIC5oaWRlLXJvdy1mb3ItbWVkaXVtLXVwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICB0ciB0aCB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAxcHggNHB4IDVweCAwIHJnYmEoMjIxLDIyMSwyMjEsMC43KTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRnYWluc2Jvcm87XG4gICAgICAgIH1cblxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkZ2FpbnNib3JvO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICB0ZCwgdGgge1xuICAgICAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIDEuMjVyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCgubm8tY29sbGFwc2UpIHtcbiAgICAgICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcblxuICAgICAgICAgICAgdGhlYWQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjRkZGO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDE5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggcmdiKDIzNSwgMjM1LCAyMzUpO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDEwKTtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm5vdCgubm8tY29sbGFwc2UtY29scykge1xuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdHIge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRkLmFsaWduLXJpZ2h0IHtcbiAgICAgICAgICAgICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubm8tY29sbGFwc2UtbWFyZ2lucyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICYuZnVsbC1yb3cge1xuICAgICAgICB0ciB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkZ2FpbnNib3JvO1xuICAgICAgICB9XG4gICAgICAgIHRoLCB0ZCB7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnNpbXBsZSB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcblxuICAgICAgICB0ciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ2FpbnNib3JvO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICB0aCwgdGQge1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgcGFkZGluZzogMjBweCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICAgICAgICAgIHRoLCB0ZCB7XG4gICAgICAgICAgICAgICAgJi5oZWFkZXItY29sIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5zaW1wbGUtc21hbGwge1xuICAgICAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgICAgICB0ciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGVhY2ggJGJyZWFrcG9pbnQsICR2YXIgaW4gJGJyZWFrcG9pbnQtdmFyaWFibGVzIHtcbiAgICAgICAgQG1lZGlhICN7JHZhcn0ge1xuICAgICAgICAgICAgJi5oaWRlLWJvcmRlcnMtZm9yLSN7JGJyZWFrcG9pbnR9IHtcbiAgICAgICAgICAgICAgICB0ciwgdGgsIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5yb3ctcGFkLW1lZGl1bSB7XG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYygxMik7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoMTIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5ub3QtaW50ZXJjYWxhdGVkIHtcbiAgICAgICAgdHI6bnRoLW9mLXR5cGUoZXZlbikge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRkLmFsaWduLXJpZ2h0IHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cblxuICAgICYud2lkdGgtYXV0byB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuXG4gICAgJi5lbWJlZGRlZCB7XG4gICAgICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgICAgIHRyIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkZ2FpbnNib3JvO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aCwgdGQge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgICAgICAgICB0ciB7XG4gICAgICAgICAgICAgICAgdGQ6bm90KC5pdGVtLXJhbmspIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRkOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0ZC5zaWx2ZXItZ3JheSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzaWx2ZXItZ3JheTtcbiAgICB9XG59XG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBGbGV4IFRhYmxlXG5uYW1lOiBjLWZsZXgtdGFibGVcbmNhdGVnb3J5OiBEYXRhIFBhdHRlcm5zIC0gVGFibGVzXG4tLS1cblxuVGhpcyB0YWJsZSBpcyBmb3Igb25lIG9mIG91ciBjb21tb24gdGFibGUgcGF0dGVybnMsIHdoZXJlIGEgdGFibGUgYmVoYXZlcyBub3JtYWxseVxuZm9yIG1lZGl1bS11cCwgYnV0IGNlbGxzIG5lZWQgdG8gc3RhY2sgYW5kL29yIHNoYXJlIHNwYWNlIG5pY2VseSBhdCB0aGUgc21hbGwgYnJlYWtwb2ludC4gRmxleGJveCBzdHlsaW5nXG5nZXRzIGFwcGxpZWQgYXQgdGhlIHNtYWxsIGJyZWFrcG9pbnQgdG8gYWNjb21wbGlzaCB0aGlzLiBBcHBseSBgLmZsZXgtdGFibGVgIGluc3RlYWRcbm9mIGAudGFibGVgIHRvIHRoZSBgdGFibGVgIGVsZW1lbnQgdG8gdXNlIHRoaXMgc3R5bGUuXG5cbkJ5IGRlZmF1bHQgY2VsbHMgd2lsbCBzaGFyZSBzcGFjZSBldmVubHkgYXQgdGhlIHNtYWxsIGJyZWFrcG9pbnQsIGJ1dCBpZiB5b3UnZCBsaWtlXG5vbmUgb3IgbW9yZSBjZWxscyB0byB0YWtlIHRoZSBlbnRpcmUgd2lkdGgsIHNpbXBseSBhZGQgYC5mdWxsLXdpZHRoYCB0byB0aG9zZSBgdGRgIGVsZW1lbnRzLlxuXG5Ucnkgdmlld2luZyB0aGUgdGFibGUgYmVsb3cgYXQgdGhlIHNtYWxsIGJyZWFrcG9pbnQgZm9yIGFuIGV4YW1wbGUuXG5cbmBgYGh0bWxfZXhhbXBsZT9raXRjaGVuLXNpbms9dHJ1ZVxuPHRhYmxlIGNsYXNzPVwiZmxleC10YWJsZVwiPlxuICAgIDx0aGVhZD5cbiAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRoPkRpc3RyaWN0PC90aD5cbiAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1lZGl1bS10ZXh0LXJpZ2h0XCI+Q29sbGVnZSBSZWFkaW5lc3M8L3RoPlxuICAgICAgICAgICAgPHRoIGNsYXNzPVwibWVkaXVtLXRleHQtcmlnaHRcIj5NYXRoZW1hdGljcyBQcm9maWNpZW5jeTwvdGg+XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJtZWRpdW0tdGV4dC1yaWdodFwiPkVuZ2xpc2ggUHJvZmljaWVuY3k8L3RoPlxuICAgICAgICA8L3RyPlxuICAgIDwvdGhlYWQ+XG5cbiAgICA8dGJvZHk+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInRhYmxlLWhlYWRlci1zbWFsbCB0ZXh0LWxhcmdlLWZvci1zbWFsbC1vbmx5IGZ1bGwtd2lkdGhcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmxvY2stdGlnaHQgYmxvY2stbG9vc2UtZm9yLXNtYWxsLW9ubHlcIj5cbiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIi9lZHVjYXRpb24vYmVzdC1oaWdoLXNjaG9vbHMvbmV3LXlvcmsvZGlzdHJpY3RzL2FkZGlzb24tY2VudHJhbC1zY2hvb2wtZGlzdHJpY3QtMTEwNzc4XCIgY2xhc3M9XCJ0ZXh0LWxhcmdlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBBZGRpc29uIENlbnRyYWwgU2Nob29sIERpc3RyaWN0XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zbWFsbCB0ZXh0LW11dGVkIGhpZGUtZm9yLXNtYWxsLW9ubHlcIj5cbiAgICAgICAgICAgICAgICAgICAgMSBzY2hvb2wgaW4gZGlzdHJpY3RcbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJ0YWJsZS1kYXRhLXNtYWxsIGxlZnQtZm9yLXNtYWxsLW9ubHkgbWVkaXVtLXRleHQtcmlnaHRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zbWFsbGVzdCB0ZXh0LXN0cm9uZyB0ZXh0LW11dGVkIHRleHQtdXBwZXJjYXNlIHNob3ctZm9yLXNtYWxsLW9ubHlcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDZweFwiPkNvbGxlZ2UgUmVhZGluZXNzPC9kaXY+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwidGFibGUtZGF0YS1zbWFsbCBsZWZ0LWZvci1zbWFsbC1vbmx5IG1lZGl1bS10ZXh0LXJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgNjclXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc21hbGxlc3QgdGV4dC1zdHJvbmcgdGV4dC1tdXRlZCB0ZXh0LXVwcGVyY2FzZSBzaG93LWZvci1zbWFsbC1vbmx5XCIgc3R5bGU9XCJtYXJnaW4tdG9wOiA2cHhcIj5NYXRoZW1hdGljcyBQcm9maWNpZW5jeTwvZGl2PlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInRhYmxlLWRhdGEtc21hbGwgbGVmdC1mb3Itc21hbGwtb25seSBtZWRpdW0tdGV4dC1yaWdodFwiPlxuICAgICAgICAgICAgICAgIDY0JVxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNtYWxsZXN0IHRleHQtc3Ryb25nIHRleHQtbXV0ZWQgdGV4dC11cHBlcmNhc2Ugc2hvdy1mb3Itc21hbGwtb25seVwiIHN0eWxlPVwibWFyZ2luLXRvcDogNnB4XCI+RW5nbGlzaCBQcm9maWNpZW5jeTwvZGl2PlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwidGFibGUtaGVhZGVyLXNtYWxsIHRleHQtbGFyZ2UtZm9yLXNtYWxsLW9ubHkgZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJibG9jay10aWdodCBibG9jay1sb29zZS1mb3Itc21hbGwtb25seVwiPlxuICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiL2VkdWNhdGlvbi9iZXN0LWhpZ2gtc2Nob29scy9uZXcteW9yay9kaXN0cmljdHMvYWRpcm9uZGFjay1jZW50cmFsLXNjaG9vbC1kaXN0cmljdC0xMDg3NjdcIiBjbGFzcz1cInRleHQtbGFyZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEFkaXJvbmRhY2sgQ2VudHJhbCBTY2hvb2wgRGlzdHJpY3RcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNtYWxsIHRleHQtbXV0ZWQgaGlkZS1mb3Itc21hbGwtb25seVwiPlxuICAgICAgICAgICAgICAgICAgICAxIHNjaG9vbCBpbiBkaXN0cmljdFxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInRhYmxlLWRhdGEtc21hbGwgbGVmdC1mb3Itc21hbGwtb25seSBtZWRpdW0tdGV4dC1yaWdodFwiPlxuICAgICAgICAgICAgICAgICAgICAxNC4wXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc21hbGxlc3QgdGV4dC1zdHJvbmcgdGV4dC1tdXRlZCB0ZXh0LXVwcGVyY2FzZSBzaG93LWZvci1zbWFsbC1vbmx5XCIgc3R5bGU9XCJtYXJnaW4tdG9wOiA2cHhcIj5Db2xsZWdlIFJlYWRpbmVzczwvZGl2PlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInRhYmxlLWRhdGEtc21hbGwgbGVmdC1mb3Itc21hbGwtb25seSBtZWRpdW0tdGV4dC1yaWdodFwiPlxuICAgICAgICAgICAgICAgIDc4JVxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNtYWxsZXN0IHRleHQtc3Ryb25nIHRleHQtbXV0ZWQgdGV4dC11cHBlcmNhc2Ugc2hvdy1mb3Itc21hbGwtb25seVwiIHN0eWxlPVwibWFyZ2luLXRvcDogNnB4XCI+TWF0aGVtYXRpY3MgUHJvZmljaWVuY3k8L2Rpdj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJ0YWJsZS1kYXRhLXNtYWxsIGxlZnQtZm9yLXNtYWxsLW9ubHkgbWVkaXVtLXRleHQtcmlnaHRcIj5cbiAgICAgICAgICAgICAgICA4OCVcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zbWFsbGVzdCB0ZXh0LXN0cm9uZyB0ZXh0LW11dGVkIHRleHQtdXBwZXJjYXNlIHNob3ctZm9yLXNtYWxsLW9ubHlcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDZweFwiPkVuZ2xpc2ggUHJvZmljaWVuY3k8L2Rpdj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInRhYmxlLWhlYWRlci1zbWFsbCB0ZXh0LWxhcmdlLWZvci1zbWFsbC1vbmx5IGZ1bGwtd2lkdGhcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmxvY2stdGlnaHQgYmxvY2stbG9vc2UtZm9yLXNtYWxsLW9ubHlcIj5cbiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIi9lZHVjYXRpb24vYmVzdC1oaWdoLXNjaG9vbHMvbmV3LXlvcmsvZGlzdHJpY3RzL2FmdG9uLWNlbnRyYWwtc2Nob29sLWRpc3RyaWN0LTEwMjg4OFwiIGNsYXNzPVwidGV4dC1sYXJnZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQWZ0b24gQ2VudHJhbCBTY2hvb2wgRGlzdHJpY3RcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNtYWxsIHRleHQtbXV0ZWQgaGlkZS1mb3Itc21hbGwtb25seVwiPlxuICAgICAgICAgICAgICAgICAgICAxIHNjaG9vbCBpbiBkaXN0cmljdFxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInRhYmxlLWRhdGEtc21hbGwgbGVmdC1mb3Itc21hbGwtb25seSBtZWRpdW0tdGV4dC1yaWdodFwiPlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc21hbGxlc3QgdGV4dC1zdHJvbmcgdGV4dC1tdXRlZCB0ZXh0LXVwcGVyY2FzZSBzaG93LWZvci1zbWFsbC1vbmx5XCIgc3R5bGU9XCJtYXJnaW4tdG9wOiA2cHhcIj5Db2xsZWdlIFJlYWRpbmVzczwvZGl2PlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInRhYmxlLWRhdGEtc21hbGwgbGVmdC1mb3Itc21hbGwtb25seSBtZWRpdW0tdGV4dC1yaWdodFwiPlxuICAgICAgICAgICAgICAgIDc2JVxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNtYWxsZXN0IHRleHQtc3Ryb25nIHRleHQtbXV0ZWQgdGV4dC11cHBlcmNhc2Ugc2hvdy1mb3Itc21hbGwtb25seVwiIHN0eWxlPVwibWFyZ2luLXRvcDogNnB4XCI+TWF0aGVtYXRpY3MgUHJvZmljaWVuY3k8L2Rpdj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJ0YWJsZS1kYXRhLXNtYWxsIGxlZnQtZm9yLXNtYWxsLW9ubHkgbWVkaXVtLXRleHQtcmlnaHRcIj5cbiAgICAgICAgICAgICAgICA4NSVcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zbWFsbGVzdCB0ZXh0LXN0cm9uZyB0ZXh0LW11dGVkIHRleHQtdXBwZXJjYXNlIHNob3ctZm9yLXNtYWxsLW9ubHlcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDZweFwiPkVuZ2xpc2ggUHJvZmljaWVuY3k8L2Rpdj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgPC90Ym9keT5cbjwvdGFibGU+XG5gYGBcbiovXG5cbnRhYmxlLmpvYnMge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG5cbiAgICB0aCwgdGQge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgfVxuXG4gICAgdGQge1xuICAgICAgICBmb250LXNpemU6ICR0ZXh0LW5vcm1hbDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB9XG5cbiAgICB0ciB7XG4gICAgICAgIGJvcmRlcjogbm9uZSFpbXBvcnRhbnQ7XG4gICAgICAgICY6bnRoLW9mLXR5cGUoZXZlbikge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bnRoLW9mLXR5cGUob2RkKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc21va2UtZ3JheTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmZsZXgtdGFibGUge1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcblxuICAgIHRoLCB0ZCB7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gMC44NzVyZW07XG4gICAgfVxuXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIHRoZWFkIHtcbiAgICAgICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICB0aCB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAxcHggNHB4IDVweCAwIHJnYmEoMjIxLDIyMSwyMjEsMC43KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRyIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRnYWluc2Jvcm87XG5cbiAgICAgICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXhib3g7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4LXdyYXAod3JhcCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuXG4gICAgICAgICAgICAvLyBGb3VuZGF0aW9uIGFscmVhZHkgcHV0cyBhIGJhY2tncm91bmQgY29sb3Igb24gLmV2ZW4gcm93cywgYnV0IGluIGNhc2VcbiAgICAgICAgICAgIC8vIHdlIHdhbnQgdG8gY29tcGxldGVseSBvdmVycmlkZSB3aGF0J3Mgb2RkIGFuZCB3aGF0J3MgZXZlbiwgdGhpcyBsZXRzXG4gICAgICAgICAgICAvLyB1cyBwdXQgLm9kZCBhbmQgLmV2ZW4gb24gd2hhdGV2ZXIgcm93cyB3ZSB3YW50IHRvIGNhbGwgb2RkIGFuZCBldmVuLlxuICAgICAgICAgICAgLy8gVXNlZnVsIHdoZW4gaGlkaW5nIHJvd3MgY29udGFpbmluZyBhZHMgYXQgdmFyaW91cyBicmVha3BvaW50cywgZm9yXG4gICAgICAgICAgICAvLyBleGFtcGxlLlxuICAgICAgICAgICAgJi5vZGQsXG4gICAgICAgICAgICAmOm50aC1vZi10eXBlKGV2ZW4pLm9kZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICAgICAgICAgJi5oaWRlLXJvdy1mb3ItbGFyZ2UtdXAge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0ZCB7XG4gICAgICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4KDEpO1xuXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuXG4gICAgICAgICAgICAmLmZsZXgtdGFibGUtY2VsbC1mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmbGV4KDEsIDEsIDEwMCUpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuLypkb2Ncbi0tLVxudGl0bGU6IFBhbmVsIFRhYmxlXG5uYW1lOiBjLXBhbmVsLXRhYmxlXG5jYXRlZ29yeTogRGF0YSBQYXR0ZXJucyAtIFRhYmxlc1xuLS0tXG5cblRoaXMgbWFrZXMgdGhlIHRhYmxlIGluIHNtYWxsIGxvb2sgbGlrZSBzdGFja2VkIHBhbmVscyBvZiBhbHRlcm5hdGluZyBjb2xvcnNcblxuYGBgaHRtbF9leGFtcGxlP2tpdGNoZW4tc2luaz10cnVlXG48dGFibGUgY2xhc3M9XCJwYW5lbC10YWJsZVwiPlxuICAgIDx0aGVhZD5cbiAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRoPkRpc3RyaWN0PC90aD5cbiAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1lZGl1bS10ZXh0LXJpZ2h0XCI+Q29sbGVnZSBSZWFkaW5lc3M8L3RoPlxuICAgICAgICAgICAgPHRoIGNsYXNzPVwibWVkaXVtLXRleHQtcmlnaHRcIj5NYXRoZW1hdGljcyBQcm9maWNpZW5jeTwvdGg+XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJtZWRpdW0tdGV4dC1yaWdodFwiPkVuZ2xpc2ggUHJvZmljaWVuY3k8L3RoPlxuICAgICAgICA8L3RyPlxuICAgIDwvdGhlYWQ+XG5cbiAgICA8dGJvZHk+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInRhYmxlLWhlYWRlci1zbWFsbCB0ZXh0LWxhcmdlLWZvci1zbWFsbC1vbmx5IGZ1bGwtd2lkdGhcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmxvY2stdGlnaHQgYmxvY2stbG9vc2UtZm9yLXNtYWxsLW9ubHlcIj5cbiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIi9lZHVjYXRpb24vYmVzdC1oaWdoLXNjaG9vbHMvbmV3LXlvcmsvZGlzdHJpY3RzL2FkZGlzb24tY2VudHJhbC1zY2hvb2wtZGlzdHJpY3QtMTEwNzc4XCIgY2xhc3M9XCJ0ZXh0LWxhcmdlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBBZGRpc29uIENlbnRyYWwgU2Nob29sIERpc3RyaWN0XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zbWFsbCB0ZXh0LW11dGVkIGhpZGUtZm9yLXNtYWxsLW9ubHlcIj5cbiAgICAgICAgICAgICAgICAgICAgMSBzY2hvb2wgaW4gZGlzdHJpY3RcbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJ0YWJsZS1kYXRhLXNtYWxsIGxlZnQtZm9yLXNtYWxsLW9ubHkgbWVkaXVtLXRleHQtcmlnaHRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zbWFsbGVzdCB0ZXh0LXN0cm9uZyB0ZXh0LW11dGVkIHRleHQtdXBwZXJjYXNlIHNob3ctZm9yLXNtYWxsLW9ubHlcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDZweFwiPkNvbGxlZ2UgUmVhZGluZXNzPC9kaXY+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwidGFibGUtZGF0YS1zbWFsbCBsZWZ0LWZvci1zbWFsbC1vbmx5IG1lZGl1bS10ZXh0LXJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgNjclXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc21hbGxlc3QgdGV4dC1zdHJvbmcgdGV4dC1tdXRlZCB0ZXh0LXVwcGVyY2FzZSBzaG93LWZvci1zbWFsbC1vbmx5XCIgc3R5bGU9XCJtYXJnaW4tdG9wOiA2cHhcIj5NYXRoZW1hdGljcyBQcm9maWNpZW5jeTwvZGl2PlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInRhYmxlLWRhdGEtc21hbGwgbGVmdC1mb3Itc21hbGwtb25seSBtZWRpdW0tdGV4dC1yaWdodFwiPlxuICAgICAgICAgICAgICAgIDY0JVxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNtYWxsZXN0IHRleHQtc3Ryb25nIHRleHQtbXV0ZWQgdGV4dC11cHBlcmNhc2Ugc2hvdy1mb3Itc21hbGwtb25seVwiIHN0eWxlPVwibWFyZ2luLXRvcDogNnB4XCI+RW5nbGlzaCBQcm9maWNpZW5jeTwvZGl2PlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwidGFibGUtaGVhZGVyLXNtYWxsIHRleHQtbGFyZ2UtZm9yLXNtYWxsLW9ubHkgZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJibG9jay10aWdodCBibG9jay1sb29zZS1mb3Itc21hbGwtb25seVwiPlxuICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiL2VkdWNhdGlvbi9iZXN0LWhpZ2gtc2Nob29scy9uZXcteW9yay9kaXN0cmljdHMvYWRpcm9uZGFjay1jZW50cmFsLXNjaG9vbC1kaXN0cmljdC0xMDg3NjdcIiBjbGFzcz1cInRleHQtbGFyZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEFkaXJvbmRhY2sgQ2VudHJhbCBTY2hvb2wgRGlzdHJpY3RcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNtYWxsIHRleHQtbXV0ZWQgaGlkZS1mb3Itc21hbGwtb25seVwiPlxuICAgICAgICAgICAgICAgICAgICAxIHNjaG9vbCBpbiBkaXN0cmljdFxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInRhYmxlLWRhdGEtc21hbGwgbGVmdC1mb3Itc21hbGwtb25seSBtZWRpdW0tdGV4dC1yaWdodFwiPlxuICAgICAgICAgICAgICAgICAgICAxNC4wXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc21hbGxlc3QgdGV4dC1zdHJvbmcgdGV4dC1tdXRlZCB0ZXh0LXVwcGVyY2FzZSBzaG93LWZvci1zbWFsbC1vbmx5XCIgc3R5bGU9XCJtYXJnaW4tdG9wOiA2cHhcIj5Db2xsZWdlIFJlYWRpbmVzczwvZGl2PlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInRhYmxlLWRhdGEtc21hbGwgbGVmdC1mb3Itc21hbGwtb25seSBtZWRpdW0tdGV4dC1yaWdodFwiPlxuICAgICAgICAgICAgICAgIDc4JVxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNtYWxsZXN0IHRleHQtc3Ryb25nIHRleHQtbXV0ZWQgdGV4dC11cHBlcmNhc2Ugc2hvdy1mb3Itc21hbGwtb25seVwiIHN0eWxlPVwibWFyZ2luLXRvcDogNnB4XCI+TWF0aGVtYXRpY3MgUHJvZmljaWVuY3k8L2Rpdj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJ0YWJsZS1kYXRhLXNtYWxsIGxlZnQtZm9yLXNtYWxsLW9ubHkgbWVkaXVtLXRleHQtcmlnaHRcIj5cbiAgICAgICAgICAgICAgICA4OCVcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zbWFsbGVzdCB0ZXh0LXN0cm9uZyB0ZXh0LW11dGVkIHRleHQtdXBwZXJjYXNlIHNob3ctZm9yLXNtYWxsLW9ubHlcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDZweFwiPkVuZ2xpc2ggUHJvZmljaWVuY3k8L2Rpdj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInRhYmxlLWhlYWRlci1zbWFsbCB0ZXh0LWxhcmdlLWZvci1zbWFsbC1vbmx5IGZ1bGwtd2lkdGhcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmxvY2stdGlnaHQgYmxvY2stbG9vc2UtZm9yLXNtYWxsLW9ubHlcIj5cbiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIi9lZHVjYXRpb24vYmVzdC1oaWdoLXNjaG9vbHMvbmV3LXlvcmsvZGlzdHJpY3RzL2FmdG9uLWNlbnRyYWwtc2Nob29sLWRpc3RyaWN0LTEwMjg4OFwiIGNsYXNzPVwidGV4dC1sYXJnZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQWZ0b24gQ2VudHJhbCBTY2hvb2wgRGlzdHJpY3RcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNtYWxsIHRleHQtbXV0ZWQgaGlkZS1mb3Itc21hbGwtb25seVwiPlxuICAgICAgICAgICAgICAgICAgICAxIHNjaG9vbCBpbiBkaXN0cmljdFxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInRhYmxlLWRhdGEtc21hbGwgbGVmdC1mb3Itc21hbGwtb25seSBtZWRpdW0tdGV4dC1yaWdodFwiPlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc21hbGxlc3QgdGV4dC1zdHJvbmcgdGV4dC1tdXRlZCB0ZXh0LXVwcGVyY2FzZSBzaG93LWZvci1zbWFsbC1vbmx5XCIgc3R5bGU9XCJtYXJnaW4tdG9wOiA2cHhcIj5Db2xsZWdlIFJlYWRpbmVzczwvZGl2PlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cInRhYmxlLWRhdGEtc21hbGwgbGVmdC1mb3Itc21hbGwtb25seSBtZWRpdW0tdGV4dC1yaWdodFwiPlxuICAgICAgICAgICAgICAgIDc2JVxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNtYWxsZXN0IHRleHQtc3Ryb25nIHRleHQtbXV0ZWQgdGV4dC11cHBlcmNhc2Ugc2hvdy1mb3Itc21hbGwtb25seVwiIHN0eWxlPVwibWFyZ2luLXRvcDogNnB4XCI+TWF0aGVtYXRpY3MgUHJvZmljaWVuY3k8L2Rpdj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJ0YWJsZS1kYXRhLXNtYWxsIGxlZnQtZm9yLXNtYWxsLW9ubHkgbWVkaXVtLXRleHQtcmlnaHRcIj5cbiAgICAgICAgICAgICAgICA4NSVcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zbWFsbGVzdCB0ZXh0LXN0cm9uZyB0ZXh0LW11dGVkIHRleHQtdXBwZXJjYXNlIHNob3ctZm9yLXNtYWxsLW9ubHlcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDZweFwiPkVuZ2xpc2ggUHJvZmljaWVuY3k8L2Rpdj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgPC90Ym9keT5cbjwvdGFibGU+XG5gYGBcbiovXG5cbi50YWJsZS5wYW5lbC10YWJsZSB7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcblxuICAgIEBpbmNsdWRlIHRvKGJwLW1lZGl1bSl7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlcjogcmVtLWNhbGMoMSkgc29saWQgJGdhaW5zYm9ybztcbiAgICB9XG5cbiAgICAmOm5vdCgubm8tY29sbGFwc2UpIHtcbiAgICAgICAgdHIuZXZlbiwgLmV2ZW4gdGQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNub3c7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmIHRoLCAmIHRkIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBmb250LXNpemU6ICR0ZXh0LW5vcm1hbDtcbiAgICAgICAgY29sb3I6ICRvaWw7XG4gICAgfVxuXG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICAgICAgJjpub3QoLm5vLWNvbGxhcHNlKSB7XG4gICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJiB7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAgIC50YWJsZS1jb2x1bW4td2lkdGgtbWQge1xuICAgICAgICAgICAgd2lkdGg6IDEwJTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLnRhYmxlLWNvbHVtbi13aWR0aC1sZyB7XG4gICAgICAgICAgICB3aWR0aDogMTUlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxNSU7XG4gICAgICAgIH1cblxuXG4gICAgfVxufVxuXG5cblxuLnRhYmxlW2RhdGEtanMtaWQ9XCJwcm9jZWR1cmUtdm9sdW1lXCJdIHtcbiAgICB0Zm9vdCB7XG4gICAgICAgIEBpbmNsdWRlIHRvKGJwLW1lZGl1bSl7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICB9XG4gICAgICAgIHRyIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWJlYmViO1xuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ViZWJlYiAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4vLyBUT0RPOiBkb24ndCBxdWl0ZSBrbm93IHdoZXJlIHRvIHB1dCB0aGlzLCB3ZSBuZWVkIHRvIGRpc2N1c3Ncbi8vIFRoaXMgaXMgdmVyeSBzcGVjaWZpYywgbmVlZHMgdGhvdWdodFxuLnRhYmxlLnN0b2NrIHtcblxuLy8gaWYgdGhlIHRhYmxlIGhhcyB0aGUgXCJjaGFydFwiIG1vZGlmaWVyLCB3ZSBuZWVkIHRvIGhpZGUgc29tZSBjb2x1bW5zIHBlciB0aGUgbW9ja1xuICAmLmNoYXJ0LXBhZ2UuaG9sZGluZ3Mge1xuICAgIC5jb2x1bW4tMiwgLmNvbHVtbi00IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgdGQge1xuICAgIHBhZGRpbmc6ICR0YWJsZS1oZWFkLXBhZGRpbmc7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgfVxuXG4gIEBpbmNsdWRlIHRvKGJwLW1lZGl1bSkge1xuICAgIHRib2R5IHRyIHtcbiAgICAgIGNsZWFyOiBsZWZ0O1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgKyB0ciB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkZ2FpbnNib3JvO1xuICAgICAgfVxuXG5cbiAgICAgIC8vIGZhdXggaGVhZGVyIGZvciBzbWFsbFxuICAgICAgLy8gbmVlZHMgdG9wIHBhZGRpbmcgZXF1YWwgdG8gdGQgYm90dG9tIHBhZGRpbmdcbiAgICAgIC50YWJsZS1oZWFkZXItc21hbGwge1xuICAgICAgICBwYWRkaW5nOiAyNHB4IDAgMCAxMnB4O1xuICAgICAgfVxuICAgICAgLy8gdGhpcyBpcyBmb3IgYSAzIGNvbHVtbnNcbiAgICAgIHRkLnRhYmxlLWRhdGEtc21hbGwge1xuICAgICAgICB3aWR0aDogMzMuMzMzMzMzMyU7XG4gICAgICAgIHBhZGRpbmc6IDEycHggMTJweCAyNHB4O1xuICAgICAgfVxuICAgICAgLy8gcmVtb3ZlIHBhZGRpbmcgb24gdGhlIGVuZHNcbiAgICAgIHRkLnRhYmxlLWRhdGEtc21hbGwuZmlyc3Qge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgICB0ZC50YWJsZS1kYXRhLXNtYWxsLmxhc3Qge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBidWlsZGluZyBvdXQgYSBtb3JlLWdlbmVyaWMgdmVyc2lvbiBvZiAuc3RvY2sgYWJvdmVcbi50YWJsZS5kYXRhIHtcbiAgdGQge1xuICAgIHBhZGRpbmc6ICR0YWJsZS1oZWFkLXBhZGRpbmc7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgfVxuXG4gIHRoOm5vdCg6Zmlyc3QtY2hpbGQpLFxuICB0ZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cblxuICBAaW5jbHVkZSB0byhicC1tZWRpdW0pIHtcbiAgICAmLmNvbGxhcHNpYmxlIHtcbiAgICAgIHRib2R5IHRyIHtcbiAgICAgICAgY2xlYXI6IGxlZnQ7XG4gICAgICAgIGJvcmRlcjogMDtcblxuICAgICAgICArIHRyIHtcbiAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGdhaW5zYm9ybztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRkIHtcbiAgICAgICAgICBwYWRkaW5nOiAxMnB4IDEycHggMjRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRoaXMgc3BlY2lmaWNhbGx5IGFwcGxpZXMgdG8gdGhlIGxhc3QgMyA8dGQ+IGVsZW1lbnRzLCBvbmx5IGlmIHRoZXJlIGFyZSBleGFjdGx5IDQgd2l0aGluIHRoZSByb3dcbiAgICAgICAgLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy84NzIwOTMxL2Nhbi1jc3MtZGV0ZWN0LXRoZS1udW1iZXItb2YtY2hpbGRyZW4tYW4tZWxlbWVudC1oYXNcbiAgICAgICAgdGQ6bnRoLWNoaWxkKDIpOm50aC1sYXN0LWNoaWxkKDMpLFxuICAgICAgICB0ZDpudGgtY2hpbGQoMik6bnRoLWxhc3QtY2hpbGQoMykgKyB0ZCxcbiAgICAgICAgdGQ6bnRoLWNoaWxkKDIpOm50aC1sYXN0LWNoaWxkKDMpICsgdGQgKyB0ZCB7XG4gICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgd2lkdGg6IDMzLjMzMzMlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gYWRkIHBhZGRpbmctdG9wIHRvIHRoZSBoZWFkZXJcbiAgICAgICAgdGQ6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIHBhZGRpbmc6IDI0cHggMCAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0aGUgdmVyeSBmaXJzdCByb3cgc2hvdWxkbid0IGhhdmUgcGFkZGluZy10b3Agb24gdGhlIGhlYWRlclxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyByZW1vdmUgcGFkZGluZyBmcm9tIHRoZSBlbmRzXG4gICAgICAgIHRkOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgdGQ6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyB0aGUgc2VjdG9yIHdlaWdodCB0YWJsZSBvbiBmdW5kcy9FVEZzXG4uYmFyLWNoYXJ0LXRhYmxlIHtcbiAgLnRhYmxlIHtcbiAgICAkcm93SGVpZ2h0OiA0MHB4O1xuXG4gICAgdHIge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG4gICAgfVxuXG4gICAgdGhlYWQge1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgdHIsIHRoIHtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cblxuICAgICAgdGgge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRmb290IHtcbiAgICAgIHRyIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgdGQge1xuICAgICAgICBwYWRkaW5nLXRvcDogNXB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5iYXItY2hhcnQtdGFibGUtbGFiZWwge1xuICAgICAgd2lkdGg6IDE4MHB4O1xuICAgIH1cblxuICAgIC5iYXItY2hhcnQtdGFibGUtcGN0LFxuICAgIC5iYXItY2hhcnQtdGFibGUtbGFiZWwge1xuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMXB4IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYmFyLWNoYXJ0LXRhYmxlLXBjdCB7XG4gICAgICB3aWR0aDogMTAwcHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4O1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICAgID4gZGl2IHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYmFyLWNoYXJ0LXRhYmxlLWNoYXJ0LWFyZWEge1xuICAgICAgLy8gdGhpcyBrZWVwcyB0aGUgYmVuY2htYXJrIGFycm93cyBmcm9tIG92ZXJmbG93aW5nXG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAuYmFyLWNoYXJ0LXRhYmxlLWFycm93IHtcbiAgICAgIGhlaWdodDogMTBweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHdpZHRoOiAyMHB4O1xuICAgIH1cblxuICAgIC5iYXItY2hhcnQtdGFibGUtYmFyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRsaW5rLWJsdWUtbGlnaHQ7XG4gICAgICBoZWlnaHQ6IDU4cHg7IC8vIHR3byBsaW5lcyBoaWdoXG4gICAgfVxuXG4gICAgLmJhci1jaGFydC10YWJsZS1vdmVybGF5LXBjdCB7XG4gICAgICBsZWZ0OiAxMHB4O1xuICAgICAgbWFyZ2luLXRvcDogLTEwcHg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICB9XG5cbiAgICAuYmFyLWNoYXJ0LXRhYmxlLXJvdyB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNkZGQ7XG4gICAgfVxuICB9IC8vIGVuZCAudGFibGVcblxuICAubGVnZW5kLXNxdWFyZSB7XG4gICAgYmFja2dyb3VuZDogJGxpbmstYmx1ZS1saWdodDtcbiAgfVxuXG4gIC5sZWdlbmQtZ3JvdXAgLmxlZ2VuZC10cmlhbmdsZSB7XG4gICAgdG9wOiA4cHg7XG4gICAgd2lkdGg6IDE2cHg7XG4gIH1cblxuICAubGVnZW5kLXRyaWFuZ2xlLFxuICAuYmFyLWNoYXJ0LXRhYmxlLWFycm93IHN2ZyB7XG4gICAgZmlsbDogI2ZmYzE0ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufSAvLyBlbmQgLmJhci1jaGFydC10YWJsZVxuXG50YWJsZS50YWJsZS5ob3NwaXRhbHMge1xuICAgID50aGVhZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgID50ciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICM5OTk5OTk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgPnRib2R5IHtcbiAgICAgICAgLnNjb3JlY2FyZC1saW5rIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRvKGJwLW1lZGl1bSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG4gICAgICAgID50ciB7XG4gICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6MnJlbTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDQwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgICAgICAuc2NvcmVjYXJkLWxpbmsge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzJjN2VmMDtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuMjVzIGVhc2UtaW47XG4gICAgICAgICAgICAgICAgICAgIC1tb3otdHJhbnNpdGlvbjogb3BhY2l0eSAuMjVzIGVhc2UtaW47XG4gICAgICAgICAgICAgICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAuMjVzIGVhc2UtaW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzk5OTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgIEBpbmNsdWRlIHRvKGJwLXNtYWxsLXdpZGVzdCl7XG4gICAgICAgID50Ym9keSA+dHIgdGR7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDc1cHg7XG4gICAgICAgICAgICAudGV4dC1sYXJnZXtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDFyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGR7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMzBweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBTdGlja3ktY29sdW1uIFRhYmxlXG5uYW1lOiBkLXN0aWNreS1jb2x1bW4tdGFibGVcbmNhdGVnb3J5OiBEYXRhIFBhdHRlcm5zIC0gVGFibGVzXG4tLS1cblxuVGhpcyB3aWxsIHNldCB0aGUgZmlyc3QgY29sdW1uIG9mIGEgdGFibGUgYW5kIG1ha2UgaXQgc3RpY2suXG5cblJvd3MgYmV5b25kIHRoZSBmaXJzdCB0aHJlZSB3aWxsIGNvbGxhcHNlIHVubGVzcyB0aGVyZSBhcmUgZXhhY3RseSBmb3VyLlxuXG57JSBzZXQgZWRpdG9yX2lkID0gdXVpZCgpICV9XG5cbmBgYG51bmp1Y2tzX3RhYj9lZGl0b3ItaWQ9e3tlZGl0b3JfaWR9fVxueyUgc2V0IHRhYmxlQm9keSAlfVxuICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIHVuc3R5bGVkIGxlZ2VuZC10YWJsZSBmdWxsLXdpZHRoIG5vLWNvbGxhcHNlLWNvbHMgY29sbGFwc2Utcm93c1wiPlxuICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgeyUgZm9yIGkgaW4gcmFuZ2UoMTApICV9XG4gICAgICAgICAgICAgICAgPHRkPkhlYWRlcjwvdGQ+XG4gICAgICAgICAgICAgICAgeyUgZW5kZm9yICV9XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgeyUgZm9yIGkgaW4gcmFuZ2UoMTApICV9XG4gICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgeyUgZm9yIGkgaW4gcmFuZ2UoMTApICV9XG4gICAgICAgICAgICAgICAgPHRkPlJvdyBEYXRhPC90ZD5cbiAgICAgICAgICAgICAgICB7JSBlbmRmb3IgJX1cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICB7JSBlbmRmb3IgJX1cbiAgICAgICAgICAgIDx0ciBkYXRhLXN0aWNreS10YWJsZT1cInNob3ctbW9yZVwiPlxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInNpbHZlci1ncmF5XCI+XG4gICAgICAgICAgICAgICAgICAgIDxhIGRhdGEtc3RpY2t5LXRhYmxlPVwid2hlbi1jb2xsYXBzZWRcIj5TaG93IE1vcmU8L2E+XG4gICAgICAgICAgICAgICAgICAgIDxhIGRhdGEtc3RpY2t5LXRhYmxlPVwid2hlbi1leHBhbmRlZFwiPlNob3cgRmV3ZXI8L2E+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICB7JSBmb3IgaSBpbiByYW5nZSg5KSAlfVxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInNpbHZlci1ncmF5XCI+PC90ZD5cbiAgICAgICAgICAgICAgICB7JSBlbmRmb3IgJX1cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvdGJvZHk+XG4gICAgPC90YWJsZT5cbnslIGVuZHNldCAlfVxuXG57JSBtYWNybyBzdGlja3lUYWJsZSh0YWJsZUh0bWwsIGNvbGxhcHNlUm93cykgJX1cbiAgICB7JSBpbmNsdWRlIFwidGVtcGxhdGVzL2NvbW1vbi91dGlscy9zdGlja3ktdGFibGUubnVualwiICAlfVxueyUgZW5kbWFjcm8gJX1cbnt7IHN0aWNreVRhYmxlKHRhYmxlQm9keSwgdHJ1ZSkgfX1cbmBgYFxuKi9cblxuLnN0aWNreS10YWJsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJi5hY3RpdmUge1xuICAgICAgICA+ICo6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgLy8gdGhlIHNoYWRvdyB0aGF0IHNpdHMgYmVzaWRlIHRoZSBzdGlja3kgY29sdW1uXG4gICAgICAgICAgICB0aDpmaXJzdC1jaGlsZDo6YWZ0ZXIsXG4gICAgICAgICAgICB0ZDpmaXJzdC1jaGlsZDo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLDAsMCwwLjI1KSwgcmdiYSgwLDAsMCwwLjI1KSAyMCUsIHRyYW5zcGFyZW50KTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDZweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgID4gKjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgICAgIC8vIHRoaXMgY29tYmluZWQgd2l0aCB6LWluZGV4OjEgb24gdGhlIHN0aWNraW5nIGVsZW1lbnQgbWFrZSBpdCB3b3JrIG9uIGlPU1xuICAgICAgICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdGhpcyBsaW1pdHMgdGhlIHRvdGFsIHNpemUgb2YgdGhlIHN0aWNreSBjb2x1bW5cbiAgICAgICAgdGg6Zmlyc3QtY2hpbGQsXG4gICAgICAgIHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTUwcHg7XG4gICAgICAgIH1cblxuICAgICAgICB0aDpudGgtY2hpbGQoMiksXG4gICAgICAgIHRkOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0YWJsZSB7XG4gICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICB0ciwgdGQge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIC8vIHRoaXMgaXMgcGFpcmVkIHdpdGggLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmcgYWJvdmVcbiAgICAgICAgei1pbmRleDogMTtcblxuICAgICAgICB0YWJsZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgdGg6Zmlyc3QtY2hpbGQsXG4gICAgICAgIHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIC8vIFRoaXMgcnVsZSBjb3JyZWN0cyBhIGJ1ZyBpbiBGaXJlZm94IHdoZXJlIHRoZSBiYWNrZ3JvdW5kIGlzIHBhaW50ZWQgb3ZlciBib3JkZXJzLFxuICAgICAgICAgICAgLy8gd2hlcmUgdGhlIHRkIGlzIHBvc2l0aW9uOnJlbGF0aXZlIGFuZCB0aGUgdGFibGUgaXMgc2V0IHRvIGNvbGxhcHNlZCBib3JkZXJzLlxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIFdlIGNhbid0IGNsZWFyIHRoZSBiYWNrZ3JvdW5kIGJlY2F1c2Ugd2UgbmVlZCB0aGUgc3RpY2t5IGNvbHVtbiB0byBibG9jayBvdXQgdGhlXG4gICAgICAgICAgICAvLyBzY3JvbGxpbmcgY29udGVudCB0aGF0IHJ1bnMgdW5kZXJuZWF0aCBpdC5cbiAgICAgICAgICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICB0aDpub3QoOmZpcnN0LWNoaWxkKSxcbiAgICAgICAgdGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gbWFrZSBzdXJlIHdlIGNhbid0IHNlZSBhbnkgY29udGVudCB3aGVuIHdlIGRyYWcgdGhlIHRhYmxlIHBhc3QgdGhlIGVuZFxuICAgID4gKjpsYXN0LWNoaWxkIHtcbiAgICAgICAgdGg6Zmlyc3QtY2hpbGQsXG4gICAgICAgIHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuY29sbGFwc2Utcm93cyB7XG4gICAgICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgICAgIFtkYXRhLXN0aWNreS10YWJsZT1cInNob3ctbW9yZVwiXSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgICAgICAgICAmOm5vdCguZXhwYW5kZWQpIHtcbiAgICAgICAgICAgICAgICB0aGVhZCt0Ym9keSB0cjpudGgtY2hpbGQoMykgfiB0cjpub3QoW2RhdGEtc3RpY2t5LXRhYmxlPVwic2hvdy1tb3JlXCJdKSxcbiAgICAgICAgICAgICAgICAgICAgICB0Ym9keSB0cjpudGgtY2hpbGQoNCkgfiB0cjpub3QoW2RhdGEtc3RpY2t5LXRhYmxlPVwic2hvdy1tb3JlXCJdKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gc2hvdyB0aGUgbGFzdCBpdGVtIGluc3RlYWQgb2YgdGhlIHNob3ctbW9yZSByb3cgaWYgd2UgaGF2ZSB0aGUgZXhhY3QgY291bnRcbiAgICAgICAgICAgICAgICB0aGVhZCt0Ym9keSB0cjpudGgtY2hpbGQoMSk6bnRoLWxhc3QtY2hpbGQoNSkgKyB0ciArIHRyICsgdHIsXG4gICAgICAgICAgICAgICAgICAgICAgdGJvZHkgdHI6bnRoLWNoaWxkKDEpOm50aC1sYXN0LWNoaWxkKDYpICsgdHIgKyB0ciArIHRyICsgdHIge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gaGlkZSB0aGUgc2hvdy1tb3JlIHJvdyBpZiB0aGVyZSBhcmUgNCByb3dzIG9yIGxlc3NcbiAgICAgICAgICAgICAgICB0aGVhZCt0Ym9keSB0cjpudGgtY2hpbGQoLTFuKzQpICsgW2RhdGEtc3RpY2t5LXRhYmxlPVwic2hvdy1tb3JlXCJdLFxuICAgICAgICAgICAgICAgICAgICAgIHRib2R5IHRyOm50aC1jaGlsZCgtMW4rNSkgKyBbZGF0YS1zdGlja3ktdGFibGU9XCJzaG93LW1vcmVcIl0ge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIFtkYXRhLXN0aWNreS10YWJsZT1cIndoZW4tZXhwYW5kZWRcIl0ge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5leHBhbmRlZCB7XG4gICAgICAgICAgICAgICAgW2RhdGEtc3RpY2t5LXRhYmxlPVwid2hlbi1jb2xsYXBzZWRcIl0ge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxufVxuXG4vLyBhIHNpbXBsZSBzb3J0YWJsZSB0YWJsZSBmb3IgNTI5IHN0YXRlIHBhZ2VzXG4udGFibGUtNTI5cyB7XG4gICAgLy8gdGhlIHNvcnRpbmcgY29udHJvbHMgdGhhdCBsaWUgYWJvdmUgdGhlIHRhYmxlIG9uIG1vYmlsZVxuICAgIC5tb2JpbGUtY29udHJvbHMgKltkYXRhLXNvcnQtY29sdW1uXSB7XG4gICAgICAgIGNvbG9yOiAkbGluay1ibHVlLWxpZ2h0O1xuXG4gICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgICAgfVxuICAgIH1cblxuICAgIC50YWJsZSAqW2RhdGEtc29ydC1jb2x1bW5dIHtcbiAgICAgICAgLy8gcmVsYXRpdmUgc28gd2UgY2FuIHBvc2l0aW9uIHRoZSBzb3J0aW5nIGluZGljYXRvciBhcnJvd3NcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcgJztcbiAgICAgICAgICAgIHdpZHRoOiAwOyBcbiAgICAgICAgICAgIGhlaWdodDogMDsgXG4gICAgICAgICAgICBib3JkZXItbGVmdDogNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiA1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiA1cHggc29saWQgI2NjYztcblxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiA2cHg7XG4gICAgICAgICAgICByaWdodDogMzVweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuYWN0aXZlOmJlZm9yZSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiA1cHggc29saWQgYmxhY2s7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzd2l0Y2ggZGlyZWN0aW9uIGZvciBkZXNjZW5kaW5nIGFycm93c1xuICAgICAgICAmW2RhdGEtc29ydGFibGU9XCJkZXNjXCJdIHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IDVweCBzb2xpZCAjY2NjO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmFjdGl2ZTpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogNXB4IHNvbGlkIGJsYWNrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnRhYmxlIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICAgICAgdHIgdGQuYWxpZ24tcmlnaHQsXG4gICAgICAgICAgICB0aCB0ZC5hbGlnbi1yaWdodCB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xuICAgICAgICAgICAgdGJvZHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAgICAgdHIge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAudGFibGUtdmFsdWUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdG8oYnAtbWVkaXVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBlYWNoICRjb3VudCBpbiAoMSwyLDMsNCw1LDYsNyw4LDksMTApIHtcbiAgICAuaGlkZS1hZnRlci0jeyRjb3VudH06bm90KC5zaG93LWFsbCkgPiAqOm50aC1jaGlsZCgjeyRjb3VudH0pIH4gKiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuIiwiLy8gTWVkaWEgb2JqZWN0c1xuLy8gU291cmNlOiBodHRwOi8vc3R1YmJvcm5lbGxhLm9yZy9jb250ZW50Lz9wPTQ5N1xuLy8gQWRhcHRlZCBmcm9tIGJvb3RzdHJhcCBmb3IgdXNlIHdpdGggRm91bmRhdGlvbiBcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBNZWRpYSBPYmplY3Rcbm5hbWU6IGEtbWVkaWEtb2JqZWN0XG5jYXRlZ29yeTogTWVkaWEgT2JqZWN0cyAtIEdlbmVyaWMgTWVkaWEgT2JqZWN0XG5zZWxlY3RvcnM6XG4gICAgLSAubWVkaWFcbi0tLVxuXG5BYnN0cmFjdCBvYmplY3Qgc3R5bGVzIGZvciBidWlsZGluZyB2YXJpb3VzIHR5cGVzIG9mIGNvbXBvbmVudHMgKGxpa2UgYmxvZ1xuY29tbWVudHMsIFR3ZWV0cywgZXRjKSAgdGhhdCBmZWF0dXJlIGEgbGVmdC0gb3IgcmlnaHQtYWxpZ25lZCBpbWFnZSBhbG9uZ3NpZGVcbnRleHR1YWwgY29udGVudC4gKlRoaXMgY29tcG9uZW50IGlzIG5vdCBwYXJ0IG9mIEZvdW5kYXRpb24uKlxuXG5Zb3UgY2FuIHB1dCBhIGAubG9vc2VgIG1vZGlmaWVyIG9uIHRoZSBgLmxlZnRgIG9yIGAucmlnaHRgIGNsYXNzZXMgdG8gZG91YmxlIHRoZSBcbmRlZmF1bHQgcGFkZGluZ1xuXG5gYGBodG1sX2V4YW1wbGU/a2l0Y2hlbi1zaW5rPXRydWVcbjx1bCBjbGFzcz1cIm1lZGlhLWxpc3RcIj5cbiAgPGxpIGNsYXNzPVwibWVkaWFcIj5cbiAgICA8YSBjbGFzcz1cImxlZnRcIiBocmVmPVwiI1wiPlxuICAgICAgPGltZyBjbGFzcz1cIm1lZGlhLW9iamVjdFwiIHNyYz1cImh0dHA6Ly9wbGFjZWhvbGQuaXQvNjR4NjRcIiBhbHQ9XCIuLi5cIj5cbiAgICA8L2E+XG4gICAgPGRpdiBjbGFzcz1cIm1lZGlhLWJvZHlcIj5cbiAgICAgIDxoNCBjbGFzcz1cIm1lZGlhLWhlYWRpbmdcIj5NZWRpYSBoZWFkaW5nPC9oND5cbiAgICAgIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LiBRdWlzIHNpbnQuXG4gICAgPC9kaXY+XG4gIDwvbGk+XG4gIDwhLS1OZXN0ZWQgTWVkaWEgZWxlbWVudC0tPlxuICA8bGkgY2xhc3M9XCJtZWRpYVwiPlxuICAgIDxhIGNsYXNzPVwibGVmdFwiIGhyZWY9XCIjXCI+XG4gICAgICA8aW1nIGNsYXNzPVwibWVkaWEtb2JqZWN0XCIgc3JjPVwiaHR0cDovL3BsYWNlaG9sZC5pdC82NHg2NFwiIGFsdD1cIi4uLlwiPlxuICAgIDwvYT5cbiAgICA8ZGl2IGNsYXNzPVwibWVkaWEtYm9keVwiPlxuICAgICAgPGg0IGNsYXNzPVwibWVkaWEtaGVhZGluZ1wiPk1lZGlhIGhlYWRpbmc8L2g0PlxuICAgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQuIFF1aXMgc2ludC5cbiAgICAgIDxkaXYgY2xhc3M9XCJtZWRpYVwiPlxuICAgICAgICA8YSBjbGFzcz1cImxlZnRcIiBocmVmPVwiI1wiPlxuICAgICAgICAgIDxpbWcgY2xhc3M9XCJtZWRpYS1vYmplY3RcIiBzcmM9XCJodHRwOi8vcGxhY2Vob2xkLml0LzY0eDY0XCIgYWx0PVwiLi4uXCI+XG4gICAgICAgIDwvYT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lZGlhLWJvZHlcIj5cbiAgICAgICAgICA8aDQgY2xhc3M9XCJtZWRpYS1oZWFkaW5nXCI+TWVkaWEgaGVhZGluZzwvaDQ+XG4gICAgICAgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQuIFF1aXMgc2ludC5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVkaWFcIj5cbiAgICAgICAgICAgIDxhIGNsYXNzPVwibGVmdFwiIGhyZWY9XCIjXCI+XG4gICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJtZWRpYS1vYmplY3RcIiBzcmM9XCJodHRwOi8vcGxhY2Vob2xkLml0LzY0eDY0XCIgYWx0PVwiLi4uXCI+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVkaWEtYm9keVwiPlxuICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJtZWRpYS1oZWFkaW5nXCI+TWVkaWEgaGVhZGluZzwvaDQ+XG4gICAgICAgICAgICAgIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LiBRdWlzIHNpbnQuXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj4gIFxuICA8L2xpPiAgICAgICAgXG48L3VsPiBcbmBgYFxuKi9cblxuLy8gT3B0aW9ucyBmb3IgbWFyZ2lucyBcbiRtZWRpYS1zcGFjaW5nOiByZW0tY2FsYygxNSk7XG4kbWVkaWEtaGVhZGluZy1ib3R0b20tbWFyZ2luOiByZW0tY2FsYyg1KTtcbiRtZWRpYS1pbWFnZS1hbGlnbm1lbnQtbWFyZ2luOiByZW0tY2FsYygxMik7XG5cbi8vIENsZWFyIHRoZSBmbG9hdHNcbi5tZWRpYSxcbi5tZWRpYS1ib2R5IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHpvb206IDE7XG59XG5cbi8vIFByb3BlciBzcGFjaW5nIGJldHdlZW4gaW5zdGFuY2VzIG9mIC5tZWRpYVxuLm1lZGlhLFxuLm1lZGlhIC5tZWRpYSB7XG4gIG1hcmdpbi10b3A6ICRtZWRpYS1zcGFjaW5nO1xufVxuLm1lZGlhOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLy8gRm9yIGltYWdlcyBhbmQgdmlkZW9zLCBzZXQgdG8gYmxvY2tcbi5tZWRpYS1vYmplY3Qge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLy8gUmVzZXQgbWFyZ2lucyBvbiBoZWFkaW5ncyBmb3IgdGlnaHRlciBkZWZhdWx0IHNwYWNpbmdcbi5tZWRpYS1oZWFkaW5nIHtcbiAgbWFyZ2luLWJvdHRvbTogJG1lZGlhLWhlYWRpbmctYm90dG9tLW1hcmdpbjtcbn1cblxuXG4vLyBNZWRpYSBpbWFnZSBhbGlnbm1lbnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLm1lZGlhIHtcbiAgPiAubGVmdCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAkbWVkaWEtaW1hZ2UtYWxpZ25tZW50LW1hcmdpbjtcbiAgfVxuICA+IC5sZWZ0Lmxvb3NlIHtcbiAgICBtYXJnaW4tcmlnaHQ6ICRtZWRpYS1pbWFnZS1hbGlnbm1lbnQtbWFyZ2luICogMjtcbiAgfVxuICA+IC5yaWdodCB7XG4gICAgbWFyZ2luLWxlZnQ6ICRtZWRpYS1pbWFnZS1hbGlnbm1lbnQtbWFyZ2luO1xuICB9XG4gID4gLnJpZ2h0Lmxvb3NlIHtcbiAgICBtYXJnaW4tbGVmdDogJG1lZGlhLWltYWdlLWFsaWdubWVudC1tYXJnaW4gKiAyO1xuICB9XG59XG5cblxuLy8gTWVkaWEgbGlzdCB2YXJpYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gVW5kbyBkZWZhdWx0IHVsL29sIHN0eWxlc1xuLm1lZGlhLWxpc3Qge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLypkb2Ncbi0tLVxudGl0bGU6IE1lZGlhIE9iamVjdCBTdGFja2VkXG5uYW1lOiBiLW1lZGlhLW9iamVjdC1zdGFja2VkXG5jYXRlZ29yeTogTWVkaWEgT2JqZWN0cyAtIE1lZGlhIE9iamVjdCBTdGFja2VkXG5zZWxlY3RvcnM6XG4gICAgLSAubWVkaWEtc3RhY2tlZFxuLS0tXG5cbkV4dGVuZGVkIGJ5IFVTTiBmb3Igc3RhY2tpbmcsIHdpdGggY2VudGVyaW5nIGluIG1lZGl1bSBjb250ZXh0XG5cbmBgYGh0bWxfZXhhbXBsZT9raXRjaGVuLXNpbms9dHJ1ZVxuPHVsIGNsYXNzPVwibWVkaWEtc3RhY2tlZCBuby1idWxsZXRcIj5cbiAgPGxpIGNsYXNzPVwibWVkaWFcIj5cbiAgICA8YSBjbGFzcz1cImxlZnRcIiBocmVmPVwiI1wiPlxuICAgICAgPGltZyBjbGFzcz1cIm1lZGlhLW9iamVjdFwiIHNyYz1cImh0dHA6Ly9wbGFjZWhvbGQuaXQvMjUweDI1MFwiIGFsdD1cIi4uLlwiPlxuICAgIDwvYT5cbiAgICA8ZGl2IGNsYXNzPVwibWVkaWEtYm9keVwiPlxuICAgICAgPGg0IGNsYXNzPVwibWVkaWEtaGVhZGluZ1wiPk1lZGlhIGhlYWRpbmc8L2g0PlxuICAgICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQuIFF1aXMgc2ludC5cbiAgICA8L2Rpdj5cbiAgPC9saT4gICAgICAgXG48L3VsPlxuYGBgXG4qL1xuXG4vLyBTdGFja2VkIGFuZCBjZW50ZXJlZCBpbiBtZWRpdW0gXG5cbi5tZWRpYS1zdGFja2VkIHtcblxuICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xuICAgIC5tZWRpYS1vYmplY3Qge1xuICAgICAgd2lkdGg6IHJlbS1jYWxjKDUwKTtcbiAgICAgIGhlaWdodDogcmVtLWNhbGMoNTApO1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAjeyRtZWRpdW19IHtcbiAgICAubWVkaWEtb2JqZWN0IHtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cbiAgICAubGVmdCB7XG4gICAgICBmbG9hdDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgICAucmlnaHQge1xuICAgICAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qZG9jXG4tLS1cbnRpdGxlOiBCYXNpYyBNZWRpYSBPYmplY3Rcbm5hbWU6IGEtYmFzaWMtbWVkaWEtb2JqZWN0XG5jYXRlZ29yeTogTWVkaWEgT2JqZWN0cyAtIEZsZXggTWVkaWEgT2JqZWN0XG50ZW1wbGF0ZTpcbiAgICBkYXRhOlxuICAgICAgICAtXG4gICAgICAgICAgICBoZWFkaW5nOiBCYXNpYyBNZWRpYSBPYmplY3RcbiAgICAgICAgICAgIHVybDogaHR0cDovL3d3dy51c25ld3MuY29tXG4gICAgICAgICAgICBmaWd1cmU6IGh0dHA6Ly9wbGFjZWhvbGQuaXQvOTB4OTBcbiAgICAgICAgICAgIGJsdXJiOiBWZXJ5IGJhc2ljIG1lZGlhIG9iamVjdCB0ZXh0IGhlcmVcbiAgICAgICAgLVxuICAgICAgICAgICAgaGVhZGluZzogQmFzaWMgTWVkaWEgT2JqZWN0IDJcbiAgICAgICAgICAgIHVybDogaHR0cDovL3d3dy51c25ld3MuY29tXG4gICAgICAgICAgICBmaWd1cmU6IGh0dHA6Ly9wbGFjZWhvbGQuaXQvOTB4OTBcbiAgICAgICAgICAgIGJsdXJiOiBTZWNvbmQgdmVyeSBiYXNpYyBtZWRpYSBvYmplY3QgdGV4dCBoZXJlXG4tLS1cblxuV2UgYnJvYWRseSBkZWZpbmUgYSAqbWVkaWEgb2JqZWN0KiBhcyBhIGNvbXBvbmVudCB3aXRoIGFuIGltYWdlIGFuZCBzb21lXG5hc3NvY2lhdGVkIHRleHQuIFdlIGhhdmUgYSBmbGV4aWJsZSBudW5qdWNrcyBtYWNybyBjYWxsIHRvIGNyZWF0ZSBwcmV0dHkgbXVjaFxuYW55IG1lZGlhIG9iamVjdCBsYXlvdXQgd2UnZCB3YW50LiBcblxuYGBgaHRtbF9leGFtcGxlXG48ZGl2IGNsYXNzPVwiZmxleC1yb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbC0xMiBmbGV4LWxhcmdlLThcIj5cblxuICAgICAgICA8IS0tIFNUQVJULCBpZ25vcmUgYWJvdmUgLS0+XG4gICAgICAgIHslIGltcG9ydCBcInRlbXBsYXRlcy9jb21tb24vbWVkaWEtb2JqZWN0L2J1aWxkZXIubnVualwiIGFzIGV4YW1wbGUgJX1cblxuICAgICAgICB7JSBmb3IgaXRlbSBpbiBkYXRhICV9XG4gICAgICAgICAgICB7JSBjYWxsIGV4YW1wbGUubWVkaWFPYmplY3RCdWlsZGVyXG4gICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICBoZWFkaW5nPWl0ZW0uaGVhZGluZyxcbiAgICAgICAgICAgICAgICAgICAgdXJsPWl0ZW0udXJsLCBcbiAgICAgICAgICAgICAgICAgICAgZmlndXJlPWl0ZW0uZmlndXJlLCBcbiAgICAgICAgICAgICAgICAgICAgYmx1cmI9aXRlbS5ibHVyYlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICV9XG4gICAgICAgICAgICB7JSBlbmRjYWxsICV9XG4gICAgICAgIHslIGVuZGZvciAlfVxuICAgICAgICA8IS0tIEVORCAtLT5cblxuICAgIDwvZGl2PlxuPC9kaXY+XG5gYGBcblxuIyMgSG93IFRvXG5cbioqKkFMTCoqKiBvZiB0aGUgbWVkaWEgcXVlcmllcyBvbiB0aGlzIHBhZ2UgYXJlIGJ1aWx0IGJ5OiBcblxuMS4gaW1wb3J0aW5nICoqdGVtcGxhdGVzL2NvbW1vbi9tZWRpYS1vYmplY3QvYnVpbGRlci5udW5qKipcbjIuIGxvb3BpbmcgdGhyb3VnaCBhbiBhcnJheSBvZiBkYXRhXG4zLiBbY2FsbGluZ10oaHR0cHM6Ly9tb3ppbGxhLmdpdGh1Yi5pby9udW5qdWNrcy90ZW1wbGF0aW5nLmh0bWwjY2FsbClcbnRoZSBgbWVkaWFPYmplY3RCdWlsZGVyYCBtYWNyby5cblxuVGhlIG1hY3JvIGNhbiByZWNpZXZlIG9wdGlvbmFsIGRhdGEgcGFyYW1ldGVycyBvcHRpb25hbCBzdHlsaW5nIG9yIGxheW91dFxucGFyYW1ldGVycy4gXG5cbiMjIyBFeGFtcGxlIERhdGFcblxuPHByZT5cbmRhdGE6XG4gICAgLVxuICAgICAgICBoZWFkaW5nOiBCYXNpYyBNZWRpYSBPYmplY3RcbiAgICAgICAgdXJsOiBodHRwOi8vd3d3LnVzbmV3cy5jb21cbiAgICAgICAgZmlndXJlOiBodHRwOi8vcGxhY2Vob2xkLml0LzkweDkwXG4gICAgICAgIGJsdXJiOiBWZXJ5IGJhc2ljIG1lZGlhIG9iamVjdCB0ZXh0IGhlcmVcbiAgICAtXG4gICAgICAgIGhlYWRpbmc6IEJhc2ljIE1lZGlhIE9iamVjdCAyXG4gICAgICAgIHVybDogaHR0cDovL3d3dy51c25ld3MuY29tXG4gICAgICAgIGZpZ3VyZTogaHR0cDovL3BsYWNlaG9sZC5pdC85MHg5MFxuICAgICAgICBibHVyYjogU2Vjb25kIHZlcnkgYmFzaWMgbWVkaWEgb2JqZWN0IHRleHQgaGVyZVxuPC9wcmU+XG5cbiMjIyBDb2RlIGZvciBzaW1wbGUgbWVkaWEgb2JqZWN0IChzaW1wbGUgYmx1cmIpXG5cbnslIHJhdyAlfVxuYGBgaHRtbF9yZW5kZXI/c2hvdy1jb2RlPXRydWVcbnslIGltcG9ydCBcInRlbXBsYXRlcy9jb21tb24vbWVkaWEtb2JqZWN0L2J1aWxkZXIubnVualwiIGFzIGV4YW1wbGUgJX1cblxueyUgZm9yIGl0ZW0gaW4gZGF0YSAlfVxuICAgIHslIGNhbGwgZXhhbXBsZS5tZWRpYU9iamVjdEJ1aWxkZXJcbiAgICAgICAgKFxuICAgICAgICAgICAgaGVhZGluZz1pdGVtLmhlYWRpbmcsXG4gICAgICAgICAgICB1cmw9aXRlbS51cmwsIFxuICAgICAgICAgICAgZmlndXJlPWl0ZW0uZmlndXJlLCBcbiAgICAgICAgICAgIGJsdXJiPWl0ZW0uYmx1cmJcbiAgICAgICAgKVxuICAgICV9XG4gICAgeyUgZW5kY2FsbCAlfVxueyUgZW5kZm9yICV9XG5gYGBcbnslIGVuZHJhdyAlfVxuXG5CeSBwYXNzaW5nIGluIHRoZSBmb2xsb3dpbmcgdmFyaWFibGVzIHlvdSBjYW4gY3JlYXRlIHRoZVxuc2ltcGxlIG1lZGlhIG9iamVjdCBhYm92ZS5cblxuXG58IHBhcmFtZXRlciAgICAgICAgIHwgcHVycG9zZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58LS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG58IGBpdGVtLmhlYWRpbmdgICAgIHwgSGVhZGluZyB0ZXh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IGBpdGVtLnVybGAgICAgICAgIHwgdXJsIGZvciBoZWFkaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IGBpdGVtLmZpZ3VyZWAgICAgIHwgc3JjIHVybCBmb3IgaW1hZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IGBpdGVtLmJsdXJiYCAgICAgIHwgdXJsIGZvciBibHVyYiAoc2ltcGxlIHBhcmFncmFwaCkgICAgICAgICAgICAgICB8XG5cblxuVGhlIGFkdmFudGFnZSBvZiB0aGUgYGNhbGxgIGJsb2NrIGlzIHRoYXQgYW55IGNvbnRlbnQgaW5zaWRlIHRoZVxuYmxvY2sgY2FuIGJlIHJlbmRlcmVkIGJ5IHRoZSBtYWNybyB1c2luZyB0aGUgYGNhbGxlcigpYCBtZXRob2QuXG5cbipUaGlzIGlzIHZlcnkgaGFuZHkgdG8gZm9yIHJlbmRlcmluZyBjdXN0b20gdGV4dCBjb250ZW50IGluc3RlYWQgb2YgdGhlIGRlZmF1bHRcbmJsdXJiLiogQ2hlY2sgb3V0IHRoaXMgbmV4dCBleGFtcGxlOlxuXG4jIyMgQ29kZSBmb3IgY3VzdG9tIG1lZGlhIG9iamVjdFxuXG5UaGlzIG1lZGlhIG9iamVjdCBpcyBhIGJpdCBtb3JlIGNvbXBsZXguIEluc3RlYWQgb2YgYSBzaW1wbGUgYmx1cmJcbm9mIHVuc3R5bGVkIHBhcmFncmFwaCB0ZXh0LCBpdCBjYW4gYmUgYW55dGhpbmcgeW91IHdhbnQuIEl0IGFsc28gcmVjZWl2ZXNcbmEgYnVuY2ggb2Ygb3B0aW9uYWwgcGFyYW1ldGVycyB0byBtYWtlIHRoZSB0aGluZyBsb29rIGV4YWN0bHkgbGlrZSB5b3UgXG53YW50LlxuXG57JSByYXcgJX1cbmBgYGh0bWxfcmVuZGVyP3Nob3ctY29kZT10cnVlXG57JSBpbXBvcnQgXCJ0ZW1wbGF0ZXMvY29tbW9uL21lZGlhLW9iamVjdC9idWlsZGVyLm51bmpcIiBhcyBleGFtcGxlICV9XG5cbnslIGZvciBpdGVtIGluIGJhc2ljICV9XG4gICAgeyUgY2FsbCBleGFtcGxlLm1lZGlhT2JqZWN0QnVpbGRlclxuICAgICAgICAoXG4gICAgICAgICAgICBoZWFkaW5nPWl0ZW0uaGVhZGluZyxcbiAgICAgICAgICAgIHVybD1pdGVtLnVybCwgXG4gICAgICAgICAgICBmaWd1cmU9aXRlbS5maWd1cmUsXG4gICAgICAgICAgICBzcGFjaW5nQmV0d2Vlbj0nYmxvY2stbm9ybWFsIGJsb2NrLWxvb3NlLWZvci1tZWRpdW0tdXAnLFxuICAgICAgICAgICAgYm9yZGVyQmV0d2Vlbj10cnVlLFxuICAgICAgICAgICAgY29udGFpbmVyQ2xhc3Nlcz0nc21hbGwtbWlkZGxlIG1lZGl1bS10b3AnLFxuICAgICAgICAgICAgaGVhZGluZ0NsYXNzZXM9J2Jsb2NrLWZsdXNoIGJsb2NrLW5vcm1hbC1mb3ItbWVkaXVtLXVwIGhlYWRpbmctbm9ybWFsIGhlYWRpbmctbGFyZ2UtZm9yLW1lZGl1bS11cCdcbiAgICAgICAgKVxuICAgICV9XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaG93LWZvci1tZWRpdW0tdXBcIj5cbiAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwidGV4dC1tdXRlZFwiIGhyZWY9XCJcIiBhbHQ9XCJQYWlnZSBPLiBBdXRob3JcIj5QYWlnZSBPLiBBdXRob3I8L2E+XG4gICAgICAgICAgICAgICAgfFxuICAgICAgICAgICAgICAgIEFwcmlsIDIzLCAyMDE1XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cCBjbGFzcz1cImJsb2NrLWZsdXNoXCI+e3tpdGVtLmJsdXJifX08L3A+XG4gICAgICAgIDwvZGl2PlxuICAgIHslIGVuZGNhbGwgJX1cbnslIGVuZGZvciAlfVxuYGBgXG57JSBlbmRyYXcgJX1cblxuU3BlYWtpbmcgb2Ygb3B0aW9uYWwgW2tleXdvcmQgcGFyYW1ldGVyc10oaHR0cHM6Ly9tb3ppbGxhLmdpdGh1Yi5pby9udW5qdWNrcy90ZW1wbGF0aW5nLmh0bWwja2V5d29yZC1hcmd1bWVudHMpLCBoZXJlIHRoZXkgYXJlOlxuXG58IHBhcmFtZXRlciAgICAgICAgICAgfCBkZWZhdWx0ICAgICAgICAgICAgfCBwdXJwb3NlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwtLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxufCBoZWFkaW5nICAgICAgICAgICAgIHwgYCcnYCAgICAgICAgICAgICAgIHwgQ29udGVudCBmb3IgdGhlIG1lZGlhIG9iamVjdCBoZWFkaW5nICooaGFzIHNhZmUgZmlsdGVyIHRvIGFjY2VwdCBodG1sIGFzIGRhdGEpKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IHN1YmhlYWRpbmcgICAgICAgICAgfCBgJydgICAgICAgICAgICAgICAgfCBDb250ZW50IGZvciBhIHN1YmhlYWRpbmcgdG8gZ28gYWxvbmcgd2l0aCBoZWFkaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgbWVkaWFMYWJlbCAgICAgICAgICB8IGAnJ2AgICAgICAgICAgICAgICB8IENvbnRlbnQgZm9yIGxhYmVsIGFib3ZlIGEgbWVkaWEgb2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCB1cmwgICAgICAgICAgICAgICAgIHwgYCcnYCAgICAgICAgICAgICAgIHwgVXJsIGZvciBpbWFnZSBhbmQgaGVhZGluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IGZpZ3VyZSAgICAgICAgICAgICAgfCBgJydgICAgICAgICAgICAgICAgfCBTdHJpbmcgb3IgT2JqZWN0IC0gcGF0aHRvaW1hZ2UgKGlmIHNpbmdsZSBpbWcpIG9yIHtkZWZhdWx0OiBwYXRodG9pbWFnZSwgbWVkaXVtOiBwYXRodG9pbWFnZSwgbGFyZ2U6IHBhdGh0b2ltYWdlfSAoaWYgdXNpbmcgSW50ZXJjaGFuZ2UpIHxcbnwgYmx1cmIgICAgICAgICAgICAgICB8IGAnJ2AgICAgICAgICAgICAgICB8IENvbnRlbnQgZm9yIHNpbmdsZSBwYXJhZ3JhcGggb2YgdGV4dCAqKGhhcyBzYWZlIGZpbHRlciB0byBhY2NlcHQgaHRtbCBhcyBkYXRhKSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCBjb250YWluZXJDbGFzc2VzICAgIHwgYCcnYCAgICAgICAgICAgICAgIHwgUG9wdWxhdGVzIGNsYXNzIGF0dHJpYnV0ZSBvbiBgLmZsZXgtbWVkaWFgIHBhcmVudCBkaXYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IGZpZ3VyZVdpZHRoICAgICAgICAgfCBgJ2F1dG8nYCAgICAgICAgICAgfCBQb3B1bGF0ZXMgYHN0eWxlPVwid2lkdGg6IHt7ZmlndXJlV2lkdGh9fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IGZpZ3VyZUhlaWdodCAgICAgICAgfCBgJ2F1dG8nYCAgICAgICAgICAgfCBQb3B1bGF0ZXMgYHN0eWxlPVwid2lkdGg6IHt7ZmlndXJlSGVpZ2h0fX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IGZpZ3VyZU9mZnNldCAgICAgICAgfCBgJ25vcm1hbCdgICAgICAgICAgfCBgdGlnaHQsIG5vcm1hbCwgbG9vc2UsIGxvb3NlciBvciBsb29zZXN0YCBjbGFzcyBhcHBsaWVkIGZvciBzcGFjaW5nIGJldHdlZW4gaW1hZ2UgYW5kIGNvbnRlbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgZmlndXJlQ2xhc3NlcyAgICAgICB8IGAnJ2AgICAgICAgICAgICAgICB8IFBvcHVsYXRlcyBjbGFzcyBhdHRyaWJ1dGUgb24gYC5mbGV4LW1lZGlhLWZpZ3VyZWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCBpbWdDbGFzc2VzICAgICAgICAgIHwgYCcnYCAgICAgICAgICAgICAgIHwgUG9wdWxhdGVzIGNsYXNzIGF0dHJpYnV0ZSBvbiBpbWcgdGFnIGAuZmxleC1tZWRpYS1maWd1cmUgYSBpbWdgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IGhlYWRpbmdDbGFzc2VzICAgICAgfCBgJydgICAgICAgICAgICAgICAgfCBQb3B1bGF0ZXMgY2xhc3MgYXR0cmlidXRlIG9uIGAuZmxleC1tZWRpYS1oZWFkaW5nYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgc3ViaGVhZGluZ0NsYXNzZXMgICB8IGAnJ2AgICAgICAgICAgICAgICB8IFBvcHVsYXRlcyBjbGFzcyBhdHRyaWJ1dGUgb24gYC5mbGV4LW1lZGlhLWhlYWRpbmcgc21hbGxgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCBtZWRpYUxhYmVsQ2xhc3NlcyAgIHwgYCd0ZXh0LXVwcGVyY2FzZSdgIHwgUG9wdWxhdGVzIGNsYXNzIGF0dHJpYnV0ZSBvbiBtZWRpYUxhYmxlIG9yIGZsdXNoTGFiZWwgaWYgcHJlc2VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IGJsdXJiQ2xhc3NlcyAgICAgICAgfCBgJ3RleHQtbm9ybWFsJ2AgICAgfCBQb3B1bGF0ZXMgY2xhc3MgYXR0cmlidXRlIG9uIGAuZmxleC1tZWRpYS1ibHVyYmAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgc3BhY2luZ0JldHdlZW4gICAgICB8IGAnYmxvY2stbm9ybWFsJ2AgICB8IEFkZHMgYGJsb2NrLSpgIGNsYXNzIG9uIGAuZmxleC1tZWRpYWAgZm9yIGNvbnRyb2xsaW5nIHNwYWNlIGJldHdlZW4gbWVkaWEgb2JqZWN0IGxpc3RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCBib3JkZXJCZXR3ZWVuICAgICAgIHwgYGZhbHNlYCAgICAgICAgICAgIHwgSWYgYHRydWVgLCBpdCB3aWxsIGFkZCBhIGJvcmRlciBBTkQgaXQgd2lsbCBhbHNvIGF1dG9tYXRpY2FsbHkgYWRkIG5lY2Vzc2FyeSBgcGFkLSpgIGNsYXNzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IHJldmVyc2UgICAgICAgICAgICAgfCBgZmFsc2VgICAgICAgICAgICAgfCBJZiBgdHJ1ZWAsIGl0IHdpbGwgcHV0IHRoZSBtZWRpYSBvYmplY3QgaW1hZ2Ugb24gdGhlIHJpZ2h0IGluc3RlYWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgZmx1c2hMYWJlbCAgICAgICAgICB8IGBmYWxzZWAgICAgICAgICAgICB8IElmIGB0cnVlYCwgaXQgd2lsbCBwdXQgdGhlIG1lZGlhIG9iamVjdCBpbWFnZSBvbiB0aGUgcmlnaHQgaW5zdGVhZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuXG48YnI+XG5cbiovXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBSZXNwb25zaXZlIE1lZGlhIE9iamVjdFxubmFtZTogYi1mbGV4LW1lZGlhLW9iamVjdC1yZXNwb25zaXZlXG5jYXRlZ29yeTogTWVkaWEgT2JqZWN0cyAtIEZsZXggTWVkaWEgT2JqZWN0XG50ZW1wbGF0ZTpcbiAgICBiYXNpYzpcbiAgICAgICAgLVxuICAgICAgICAgICAgaGVhZGluZzogSG93IHRvIE1ha2UgTmV3IEZyaWVuZHMgaW4gUmV0aXJlbWVudFxuICAgICAgICAgICAgdXJsOiBodHRwOi8vd3d3LnVzbmV3cy5jb21cbiAgICAgICAgICAgIGZpZ3VyZTogXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogaHR0cDovL3BsYWNlaG9sZC5pdC84NHg4NFxuICAgICAgICAgICAgICAgIG1lZGl1bTogaHR0cDovL3BsYWNlaG9sZC5pdC8yOTh4MTk4XG4gICAgICAgICAgICBibHVyYjogVHJ5IHRoZXNlIHN0cmF0ZWdpZXMgdG8gbWVldCByZXRpcmVlcyB3aXRoIHNpbWlsYXIgaW50ZXJlc3RzIG9yIHlvdSBtaWdodCBlbmQgdXAga2lsbGluZyB5b3Vyc2VsZi5cbiAgICAgICAgLVxuICAgICAgICAgICAgaGVhZGluZzogSG93IHRvIExvc2UgWW91ciBKb2JcbiAgICAgICAgICAgIHVybDogaHR0cDovL3d3dy51c25ld3MuY29tXG4gICAgICAgICAgICBmaWd1cmU6IFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGh0dHA6Ly9wbGFjZWhvbGQuaXQvODR4ODRcbiAgICAgICAgICAgICAgICBtZWRpdW06IGh0dHA6Ly9wbGFjZWhvbGQuaXQvMjk4eDE5OFxuICAgICAgICAgICAgYmx1cmI6IFRyeSB0aGVzZSBzdHJhdGVnaWVzIHRvIGdldCBmaXJlZCBpbW1lZGlhdGVseS5cbi0tLVxuXG5CYXNpYyByZXNwb25zaXZlIG1lZGlhIG9iamVjdCB0aGF0IHVzZXMgaW50ZXJjaGFuZ2UgZm9yIHRoZSBpbWFnZS5cbkl0IGhhcyBhIHNtYWxsZXIgaGVhZGluZyBhbmQgbm8gYmx1cmIgaW4gYHNtYWxsYCDinp8gbGFyZ2VyIGhlYWRpbmcgKndpdGgqIGN1c3RvbSBjb250ZW50XG5mb3IgYG1lZGl1bS11cGAuXG5cblRoaXMgaW50cm9kdWNlcyBhIGdvb2QgdXNlIGNhc2UgZm9yIE51bmp1Y2tzIGBjYWxsYCBibG9jayB0aGF0IGVuYWJsZXMgeW91IHRvIGNhbGxcbmEgbWFjcm8gd2l0aCBhbGwgdGhlIHRleHQgaW5zaWRlIHRoZSB0YWcuIEl0IGlzIGhlbHBmdWwgaWYgeW91IHdhbnQgdG8gcGFzcyBpblxuYSBsb3Qgb2YgY29udGVudCBpbnRvIGEgbWFjcm8uXG5cbmBgYGh0bWxfZXhhbXBsZVxuPGRpdiBjbGFzcz1cImZsZXgtcm93XCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwtMTIgZmxleC1sYXJnZS04XCI+XG5cbiAgICAgICAgPCEtLSBTVEFSVCwgaWdub3JlIGFib3ZlIC0tPlxuICAgICAgICB7JSBpbXBvcnQgXCJ0ZW1wbGF0ZXMvY29tbW9uL21lZGlhLW9iamVjdC9idWlsZGVyLm51bmpcIiBhcyBleGFtcGxlICV9XG5cbiAgICAgICAgeyUgZm9yIGl0ZW0gaW4gYmFzaWMgJX1cbiAgICAgICAgICAgIHslIGNhbGwgZXhhbXBsZS5tZWRpYU9iamVjdEJ1aWxkZXJcbiAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgIGhlYWRpbmc9aXRlbS5oZWFkaW5nLFxuICAgICAgICAgICAgICAgICAgICB1cmw9aXRlbS51cmwsIFxuICAgICAgICAgICAgICAgICAgICBmaWd1cmU9aXRlbS5maWd1cmUsXG4gICAgICAgICAgICAgICAgICAgIHNwYWNpbmdCZXR3ZWVuPSdibG9jay1ub3JtYWwgYmxvY2stbG9vc2UtZm9yLW1lZGl1bS11cCcsXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlckJldHdlZW49dHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyQ2xhc3Nlcz0nc21hbGwtbWlkZGxlIG1lZGl1bS10b3AnLFxuICAgICAgICAgICAgICAgICAgICBoZWFkaW5nQ2xhc3Nlcz0nYmxvY2stZmx1c2ggYmxvY2stbm9ybWFsLWZvci1tZWRpdW0tdXAgaGVhZGluZy1ub3JtYWwgaGVhZGluZy1sYXJnZS1mb3ItbWVkaXVtLXVwJ1xuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICV9XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNob3ctZm9yLW1lZGl1bS11cFwiPlxuICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwidGV4dC1tdXRlZFwiIGhyZWY9XCJcIiBhbHQ9XCJQYWlnZSBPLiBBdXRob3JcIj5QYWlnZSBPLiBBdXRob3I8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICB8XG4gICAgICAgICAgICAgICAgICAgICAgICBBcHJpbCAyMywgMjAxNVxuICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiYmxvY2stZmx1c2hcIj57e2l0ZW0uYmx1cmJ9fTwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIHslIGVuZGNhbGwgJX1cbiAgICAgICAgeyUgZW5kZm9yICV9XG4gICAgICAgIDwhLS0gRU5EIC0tPlxuXG4gICAgPC9kaXY+XG48L2Rpdj5cbmBgYFxuKi9cblxuLypkb2Ncbi0tLVxudGl0bGU6IFNpbXBsZSBNZWRpYSBPYmplY3QgRXhhbXBsZXNcbm5hbWU6IGQtZmxleC1tZWRpYS1vYmplY3Qtc2ltcGxlLWV4YW1wbGVzXG5jYXRlZ29yeTogTWVkaWEgT2JqZWN0cyAtIEZsZXggTWVkaWEgT2JqZWN0XG50ZW1wbGF0ZTpcbiAgICBoZWFkbGluZXM6XG4gICAgICAgIC1cbiAgICAgICAgICAgIGhlYWRpbmc6IEVzc2VudGlhbCBCcmFuZGluZyBhbmQgTmV0d29ya2luZyBUaXBzIGZvciBDb2xsZWdlIFNlbmlvcnNcbiAgICAgICAgICAgIHVybDogaHR0cDovL3d3dy51c25ld3MuY29tXG4gICAgICAgICAgICBmaWd1cmU6IGh0dHA6Ly9wbGFjZWhvbGQuaXQvODR4ODRcbiAgICAgICAgLVxuICAgICAgICAgICAgaGVhZGluZzogV2hhdCBSZWNydWl0ZXJzIFRoaW5rIFdoZW4gVGhleSBTZWUgWW91ciBMaW5rZWRJbiBQcm9maWxlXG4gICAgICAgICAgICB1cmw6IGh0dHA6Ly93d3cudXNuZXdzLmNvbVxuICAgICAgICAgICAgZmlndXJlOiBodHRwOi8vcGxhY2Vob2xkLml0Lzg0eDg0XG4gICAgc3F1YXJlOlxuICAgICAgICAtXG4gICAgICAgICAgICBoZWFkaW5nOiBBcHBsaWNhdGlvbiBQcm9jZXNzXG4gICAgICAgICAgICB1cmw6IGh0dHA6Ly93d3cudXNuZXdzLmNvbVxuICAgICAgICAgICAgZmlndXJlOiBodHRwOi8vcGxhY2Vob2xkLml0Lzg0eDg0XG4gICAgICAgICAgICBibHVyYjogTWFwIG91dCBkZWFkbGluZXMgZWFybHkgdG8gaGVscCBzdGF5IG9uIHRyYWNrLlxuICAgICAgICAtXG4gICAgICAgICAgICBoZWFkaW5nOiBUZXN0IFByZXBcbiAgICAgICAgICAgIHVybDogaHR0cDovL3d3dy51c25ld3MuY29tXG4gICAgICAgICAgICBmaWd1cmU6IGh0dHA6Ly9wbGFjZWhvbGQuaXQvODR4ODRcbiAgICAgICAgICAgIGJsdXJiOiBTdHVkeSB0aXBzIGZvciBBUCBleGFtcywgU0FUcyBhbmQgQUNUcy5cbiAgICByb3VuZDpcbiAgICAgICAgLVxuICAgICAgICAgICAgaGVhZGluZzogVW5kZXJncmFkdWF0ZVxuICAgICAgICAgICAgdXJsOiBodHRwOi8vd3d3LnVzbmV3cy5jb21cbiAgICAgICAgICAgIGZpZ3VyZTogL3N0YXRpYy9pbWcvY2lyY2xlLXVuZGVyZ3JhZC1pY29uLnN2Z1xuICAgICAgICAgICAgYmx1cmI6IFJhbmtpbmdzIGZvciBuYXRpb25hbCwgbGliZXJhbCwgYW5kIHJlZ2lvbmFsIHVuaXZlcnNpdGllc1xuICAgICAgICAtXG4gICAgICAgICAgICBoZWFkaW5nOiBHcmFkdWF0ZSBTY2hvb2xcbiAgICAgICAgICAgIHVybDogaHR0cDovL3d3dy51c25ld3MuY29tXG4gICAgICAgICAgICBmaWd1cmU6IC9zdGF0aWMvaW1nL2NpcmNsZS1ncmFkLWljb24uc3ZnXG4gICAgICAgICAgICBibHVyYjogQnJva2VuIGRvd24gYnkgcmFua2luZ3MgZm9yIDYgcG9wdWxhciBwcm9ncmFtcy5cbi0tLVxuXG5TaW1wbGUgbWVkaWEgb2JqZWN0c1xuXG5gYGAgaHRtbF9leGFtcGxlXG48ZGl2IGNsYXNzPVwiZmxleC1yb3dcIj5cbiAgICBcbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbC0xMiBmbGV4LW1lZGl1bS02IGZsZXgtbGFyZ2UtNCBibG9jay1sb29zZXIgYmxvY2stZmx1c2gtZm9yLWxhcmdlLXVwXCI+XG4gICAgICAgIFxuICAgICAgICA8IS0tIFNUQVJULCBpZ25vcmUgYWJvdmUgLS0+XG4gICAgICAgIDxoMyBjbGFzcz1cImhlYWRpbmctbGFyZ2UgYmxvY2stbG9vc2VcIj5Nb3N0IFBvcHVsYXI8L2gzPlxuICAgICAgICB7JSBpbXBvcnQgXCJ0ZW1wbGF0ZXMvY29tbW9uL21lZGlhLW9iamVjdC9idWlsZGVyLm51bmpcIiBhcyBleGFtcGxlICV9XG5cbiAgICAgICAgeyUgZm9yIGl0ZW0gaW4gaGVhZGxpbmVzICV9XG4gICAgICAgICAgICB7JSBjYWxsIGV4YW1wbGUubWVkaWFPYmplY3RCdWlsZGVyXG4gICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICBoZWFkaW5nPWl0ZW0uaGVhZGluZyxcbiAgICAgICAgICAgICAgICAgICAgdXJsPWl0ZW0udXJsLCBcbiAgICAgICAgICAgICAgICAgICAgZmlndXJlPWl0ZW0uZmlndXJlLCBcbiAgICAgICAgICAgICAgICAgICAgaGVhZGluZ0NsYXNzZXM9J2hlYWRpbmctc21hbGwgaGVhZGluZy1ub3JtYWwgYmxvY2stZmx1c2gnLFxuICAgICAgICAgICAgICAgICAgICBjb250YWluZXJDbGFzc2VzPSdzbWFsbC1taWRkbGUnXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgJX1cbiAgICAgICAgICAgIHslIGVuZGNhbGwgJX1cbiAgICAgICAgeyUgZW5kZm9yICV9XG4gICAgICAgIDwhLS0gRU5EIC0tPlxuXG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbC0xMiBmbGV4LW1lZGl1bS02IGZsZXgtbGFyZ2UtNCBibG9jay1sb29zZXIgYmxvY2stZmx1c2gtZm9yLWxhcmdlLXVwXCI+XG4gICAgICAgIFxuICAgICAgICA8IS0tIFNUQVJULCBpZ25vcmUgYWJvdmUgLS0+XG4gICAgICAgIDxoMyBjbGFzcz1cImhlYWRpbmctbGFyZ2UgYmxvY2stbG9vc2VcIj5CZXN0IENvbGxlZ2VzIFJhbmtpbmdzPC9oMz5cbiAgICAgICAgeyUgaW1wb3J0IFwidGVtcGxhdGVzL2NvbW1vbi9tZWRpYS1vYmplY3QvYnVpbGRlci5udW5qXCIgYXMgZXhhbXBsZSAlfVxuXG4gICAgICAgIHslIGZvciBpdGVtIGluIHNxdWFyZSAlfVxuICAgICAgICAgICAgeyUgY2FsbCBleGFtcGxlLm1lZGlhT2JqZWN0QnVpbGRlclxuICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgaGVhZGluZz1pdGVtLmhlYWRpbmcsXG4gICAgICAgICAgICAgICAgICAgIHVybD1pdGVtLnVybCwgXG4gICAgICAgICAgICAgICAgICAgIGZpZ3VyZT1pdGVtLmZpZ3VyZSwgXG4gICAgICAgICAgICAgICAgICAgIGJsdXJiPWl0ZW0uYmx1cmIsXG4gICAgICAgICAgICAgICAgICAgIGJsdXJiQ2xhc3Nlcz0nYmxvY2stZmx1c2gnLFxuICAgICAgICAgICAgICAgICAgICBib3JkZXJCZXR3ZWVuPXRydWUsXG4gICAgICAgICAgICAgICAgICAgIGZpZ3VyZVdpZHRoPSc4NHB4JyxcbiAgICAgICAgICAgICAgICAgICAgaGVhZGluZ0NsYXNzZXM9J2hlYWRpbmctbm9ybWFsIGJsb2NrLXRpZ2h0J1xuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICV9XG4gICAgICAgICAgICB7JSBlbmRjYWxsICV9XG4gICAgICAgIHslIGVuZGZvciAlfVxuICAgICAgICA8IS0tIEVORCAtLT5cblxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsLTEyIGZsZXgtbGFyZ2UtNCBibG9jay1sb29zZXIgYmxvY2stZmx1c2gtZm9yLW1lZGl1bS11cFwiPlxuICAgICAgICBcbiAgICAgICAgPCEtLSBTVEFSVCwgaWdub3JlIGFib3ZlIC0tPlxuICAgICAgICA8aDMgY2xhc3M9XCJoZWFkaW5nLWxhcmdlIGJsb2NrLWxvb3NlXCI+QXBwbHlpbmcgdG8gQ29sbGVnZTwvaDM+XG4gICAgICAgIHslIGltcG9ydCBcInRlbXBsYXRlcy9jb21tb24vbWVkaWEtb2JqZWN0L2J1aWxkZXIubnVualwiIGFzIGV4YW1wbGUgJX1cblxuICAgICAgICB7JSBmb3IgaXRlbSBpbiByb3VuZCAlfVxuICAgICAgICAgICAgeyUgY2FsbCBleGFtcGxlLm1lZGlhT2JqZWN0QnVpbGRlclxuICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgaGVhZGluZz1pdGVtLmhlYWRpbmcsXG4gICAgICAgICAgICAgICAgICAgIHVybD1pdGVtLnVybCwgXG4gICAgICAgICAgICAgICAgICAgIGZpZ3VyZT1pdGVtLmZpZ3VyZSwgXG4gICAgICAgICAgICAgICAgICAgIGJsdXJiPWl0ZW0uYmx1cmIsXG4gICAgICAgICAgICAgICAgICAgIGZpZ3VyZVdpZHRoPSc1NXB4JyxcbiAgICAgICAgICAgICAgICAgICAgZmlndXJlT2Zmc2V0PSdsb29zZXInLFxuICAgICAgICAgICAgICAgICAgICBoZWFkaW5nQ2xhc3Nlcz0naGVhZGluZy1ub3JtYWwnLFxuICAgICAgICAgICAgICAgICAgICBzcGFjaW5nQmV0d2Vlbj0nYmxvY2stdGlnaHQnXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgJX1cbiAgICAgICAgICAgIHslIGVuZGNhbGwgJX1cbiAgICAgICAgeyUgZW5kZm9yICV9XG4gICAgICAgIDwhLS0gRU5EIC0tPlxuXG4gICAgPC9kaXY+XG48L2Rpdj5cblxuYGBgXG5cbiovXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBOZXN0ZWQgUmVzcG9uc2l2ZSBNZWRpYSBPYmplY3Rcbm5hbWU6IGMtZmxleC1tZWRpYS1vYmplY3QtbmVzdGVkXG5jYXRlZ29yeTogTWVkaWEgT2JqZWN0cyAtIEZsZXggTWVkaWEgT2JqZWN0XG50ZW1wbGF0ZTpcbiAgICBvdXRlcjpcbiAgICAgICAgLVxuICAgICAgICAgICAgaGVhZGluZzogQXBwbGljYXRpb24gUHJvY2Vzc1xuICAgICAgICAgICAgdXJsOiBodHRwOi8vd3d3LnVzbmV3cy5jb21cbiAgICAgICAgICAgIGZpZ3VyZTogaHR0cDovL3BsYWNlaG9sZC5pdC8zMTR4MjA5XG4gICAgICAgICAgICBibHVyYjogUmlzaW5nIHNlbmlvcnMgc2hvdWxkIG1hcCBvdXQgZGVhZGxpbmVzIGVhcmx5IHRvIGhlbHAgdGhlbSBzdGF5IG9uIHRyYWNrLlxuICAgICAgICAgICAgaW5uZXI6XG4gICAgICAgICAgICAgICAgLSBcbiAgICAgICAgICAgICAgICAgICAgaGVhZGluZzogXCJDb2xsZWdlIFF1aXo6IERvIFlvdSBVbmRlcnN0YW5kIHRoZSBBcHBsaWNhdGlvbiBQcm9jZXNzP1wiXG4gICAgICAgICAgICAgICAgICAgIHVybDogaHR0cDovL3d3dy51c25ld3MuY29tXG4gICAgICAgICAgICAgICAgICAgIGZpZ3VyZTogaHR0cDovL3BsYWNlaG9sZC5pdC85MHg5MC9cbiAgICAgICAgICAgICAgICAtIFxuICAgICAgICAgICAgICAgICAgICBoZWFkaW5nOiBcIkNvbGxlZ2UgUXVpejogRG8gWW91IFVuZGVyc3RhbmQgdGhlIEFwcGxpY2F0aW9uIFByb2Nlc3M/XCJcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBodHRwOi8vd3d3LnVzbmV3cy5jb21cbiAgICAgICAgICAgICAgICAgICAgZmlndXJlOiBodHRwOi8vcGxhY2Vob2xkLml0LzkweDkwL1xuICAgICAgICAtXG4gICAgICAgICAgICBoZWFkaW5nOiBUZXN0IFByZXBcbiAgICAgICAgICAgIHVybDogaHR0cDovL3d3dy51c25ld3MuY29tXG4gICAgICAgICAgICBmaWd1cmU6IGh0dHA6Ly9wbGFjZWhvbGQuaXQvMzE0eDIwOVxuICAgICAgICAgICAgYmx1cmI6IFJpc2luZyBzZW5pb3JzIHNob3VsZCBtYXAgb3V0IGRlYWRsaW5lcyBlYXJseSB0byBoZWxwIHRoZW0gc3RheSBvbiB0cmFjay5cbiAgICAgICAgICAgIGlubmVyOlxuICAgICAgICAgICAgICAgIC0gXG4gICAgICAgICAgICAgICAgICAgIGhlYWRpbmc6IFwiQ29sbGVnZSBRdWl6OiBEbyBZb3UgVW5kZXJzdGFuZCB0aGUgQXBwbGljYXRpb24gUHJvY2Vzcz9cIlxuICAgICAgICAgICAgICAgICAgICB1cmw6IGh0dHA6Ly93d3cudXNuZXdzLmNvbVxuICAgICAgICAgICAgICAgICAgICBmaWd1cmU6IGh0dHA6Ly9wbGFjZWhvbGQuaXQvOTB4OTAvXG4gICAgICAgICAgICAgICAgLSBcbiAgICAgICAgICAgICAgICAgICAgaGVhZGluZzogXCJDb2xsZWdlIFF1aXo6IERvIFlvdSBVbmRlcnN0YW5kIHRoZSBBcHBsaWNhdGlvbiBQcm9jZXNzP1wiXG4gICAgICAgICAgICAgICAgICAgIHVybDogaHR0cDovL3d3dy51c25ld3MuY29tXG4gICAgICAgICAgICAgICAgICAgIGZpZ3VyZTogaHR0cDovL3BsYWNlaG9sZC5pdC85MHg5MC9cbi0tLVxuXG5BIG5lc3RlZCByZXNwb25zaXZlIGV4YW1wbGUuXG5cbmBgYGh0bWxfZXhhbXBsZVxuPGRpdiBjbGFzcz1cImZsZXgtcm93XCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwtMTIgZmxleC1sYXJnZS04XCI+XG5cbiAgICAgICAgPCEtLSBTVEFSVCwgaWdub3JlIGFib3ZlIC0tPlxuICAgICAgICB7JSBpbXBvcnQgXCJ0ZW1wbGF0ZXMvY29tbW9uL21lZGlhLW9iamVjdC9idWlsZGVyLm51bmpcIiBhcyBleGFtcGxlICV9XG5cbiAgICAgICAgeyUgZm9yIGl0ZW0gaW4gb3V0ZXIgJX1cbiAgICAgICAgICAgIHslIGNhbGwgZXhhbXBsZS5tZWRpYU9iamVjdEJ1aWxkZXJcbiAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgIGhlYWRpbmc9aXRlbS5oZWFkaW5nLFxuICAgICAgICAgICAgICAgICAgICB1cmw9aXRlbS51cmwsIFxuICAgICAgICAgICAgICAgICAgICBmaWd1cmU9aXRlbS5maWd1cmUsIFxuICAgICAgICAgICAgICAgICAgICBibHVyYj1pdGVtLmJsdXJiLFxuICAgICAgICAgICAgICAgICAgICBib3JkZXJCZXR3ZWVuPXRydWUsXG4gICAgICAgICAgICAgICAgICAgIHNwYWNpbmdCZXR3ZWVuPSdibG9jay1sb29zZScsXG4gICAgICAgICAgICAgICAgICAgIGZpZ3VyZUNsYXNzZXM9J2xvb3NlciBoaWRlLWZvci1zbWFsbC1vbmx5JyxcbiAgICAgICAgICAgICAgICAgICAgaGVhZGluZ0NsYXNzZXM9J2hlYWRpbmctbGFyZ2UgYmxvY2stdGlnaHQnXG5cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAlfVxuICAgICAgICAgICAgICAgIHslIGZvciBpdGVtIGluIGl0ZW0uaW5uZXIgJX1cbiAgICAgICAgICAgICAgICAgICAgeyUgY2FsbCBleGFtcGxlLm1lZGlhT2JqZWN0QnVpbGRlclxuICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRpbmc9aXRlbS5oZWFkaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybD1pdGVtLnVybCwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlndXJlPWl0ZW0uZmlndXJlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lckNsYXNzZXM9J3NtYWxsLW1pZGRsZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BhY2luZ0JldHdlZW49J2Jsb2NrLW5vcm1hbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGluZ0NsYXNzZXM9J2hlYWRpbmctc21hbGwtZm9yLW1lZGl1bS11cCBibG9jay1mbHVzaCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlndXJlQ2xhc3Nlcz0naGlkZS1mb3ItbWVkaXVtLXVwJ1xuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAlfVxuICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICB7JSBlbmRjYWxsICV9XG4gICAgICAgICAgICAgICAgeyUgZW5kZm9yICV9XG4gICAgICAgICAgICB7JSBlbmRjYWxsICV9XG4gICAgICAgIHslIGVuZGZvciAlfVxuICAgICAgICA8IS0tIEVORCAtLT5cblxuICAgIDwvZGl2PlxuPC9kaXY+XG5gYGBcbiovXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBDdXN0b20gQ29udGVudCBFeGFtcGxlc1xubmFtZTogZS1mbGV4LW1lZGlhLW9iamVjdC1jdXN0b20tZXhhbXBsZXNcbmNhdGVnb3J5OiBNZWRpYSBPYmplY3RzIC0gRmxleCBNZWRpYSBPYmplY3RcbnRlbXBsYXRlOlxuICAgIHNhbGFyeTpcbiAgICAgICAgLVxuICAgICAgICAgICAgaGVhZGluZzogSG9sbGFuZCwgTWljaGlnYW5cbiAgICAgICAgICAgIGZpZ3VyZTogL3N0YXRpYy9pbWcvdGVtcC1pbWFnZXMvcHJvZmlsZS1zYWxhcnktaG9sbGFuZC5wbmdcbiAgICAgICAgICAgIGF2Z1NhbGFyeTogR3JlYXRlciB0aGFuICQyNTAsMDAwXG4gICAgICAgIC1cbiAgICAgICAgICAgIGhlYWRpbmc6IEphY2tzb252aWxsZSwgTm9ydGggQ2Fyb2xpbmFcbiAgICAgICAgICAgIGZpZ3VyZTogL3N0YXRpYy9pbWcvdGVtcC1pbWFnZXMvcHJvZmlsZS1zYWxhcnktamFja3NvbnZpbGxlLnBuZ1xuICAgICAgICAgICAgYXZnU2FsYXJ5OiBHcmVhdGVyIHRoYW4gJDI1MCwwMDBcbiAgICBqb2JzOlxuICAgICAgICAtXG4gICAgICAgICAgICBoZWFkaW5nOiBEZW50YWwgSHlnaWVuaXN0XG4gICAgICAgICAgICB1cmw6IGh0dHA6Ly93d3cudXNuZXdzLmNvbVxuICAgICAgICAgICAgZmlndXJlOiBodHRwOi8vcGxhY2Vob2xkLml0LzkweDkwXG4gICAgICAgICAgICBzYWxhcnk6ICQzNSw2NDBcbiAgICAgICAgICAgIHJhbms6IFwiIzRcIlxuICAgICAgICAgICAgZmllbGQ6IEJlc3QgSGVhbHRoIENhcmUgSm9ic1xuICAgICAgICAtXG4gICAgICAgICAgICBoZWFkaW5nOiBEZW50YWwgQXNzaXN0YW50XG4gICAgICAgICAgICB1cmw6IGh0dHA6Ly93d3cudXNuZXdzLmNvbVxuICAgICAgICAgICAgZmlndXJlOiBodHRwOi8vcGxhY2Vob2xkLml0LzkweDkwXG4gICAgICAgICAgICBzYWxhcnk6ICQzNSw2NDBcbiAgICAgICAgICAgIHJhbms6IFwiIzMwXCJcbiAgICAgICAgICAgIGZpZWxkOiBCZXN0IEhlYWx0aCBDYXJlIEpvYnNcbiAgICBob3NwaXRhbHM6XG4gICAgICAgIC1cbiAgICAgICAgICAgIGhlYWRpbmc6IFJvY2tlZmVsbGVyIFVuaXZlcnNpdHkgSG9zcGl0YWxcbiAgICAgICAgICAgIHVybDogaHR0cDovL3d3dy51c25ld3MuY29tXG4gICAgICAgICAgICBmaWd1cmU6IGh0dHA6Ly9wbGFjZWhvbGQuaXQvOTB4OTBcbiAgICAgICAgICAgIGRpc3RhbmNlOiAwIG1pIGF3YXlcbiAgICAgICAgICAgIGFkZHJlc3M6IDEyMzAgWW9yayBBdmVudWVcbiAgICAgICAgLVxuICAgICAgICAgICAgaGVhZGluZzogTmV3IFlvcmstUHJlc2J5dGVyaWFuIFVuaXZlcnNpdHkgSG9zcGl0YWwgb2YgQ29sdW1iaWEgYW5kIENvcm5lbGxcbiAgICAgICAgICAgIHVybDogaHR0cDovL3d3dy51c25ld3MuY29tXG4gICAgICAgICAgICBmaWd1cmU6IGh0dHA6Ly9wbGFjZWhvbGQuaXQvOTB4OTBcbiAgICAgICAgICAgIGRpc3RhbmNlOiAwLjQgbWkgYXdheVxuICAgICAgICAgICAgYWRkcmVzczogNTI1IEVhc3QgNjh0aCBTdHJlZXRcbiAgICBkb2N0b3JzOlxuICAgICAgICAtXG4gICAgICAgICAgICBoZWFkaW5nOiBEci4gRXZlbHluIEhvcm5cbiAgICAgICAgICAgIHN1YmhlYWRpbmc6IE1EXG4gICAgICAgICAgICB1cmw6IGh0dHA6Ly93d3cudXNuZXdzLmNvbVxuICAgICAgICAgICAgZmlndXJlOiBodHRwOi8vcGxhY2Vob2xkLml0LzkweDkwXG4gICAgICAgICAgICBzcGVjaWFsdHk6IENhcmRpb3Zhc2N1bGFyIERpc2Vhc2VcbiAgICAgICAgICAgIHN1YlNwZWNpYWx0eTogSGVhcnQgRmFpbHVyZSAmIFRyYW5zcGxhbnRhdGlvblxuICAgICAgICAtXG4gICAgICAgICAgICBoZWFkaW5nOiBEci4gSm9zZSBBbGVtYW5cbiAgICAgICAgICAgIHN1YmhlYWRpbmc6IE1EXG4gICAgICAgICAgICB1cmw6IGh0dHA6Ly93d3cudXNuZXdzLmNvbVxuICAgICAgICAgICAgZmlndXJlOiBodHRwOi8vcGxhY2Vob2xkLml0LzkweDkwXG4gICAgICAgICAgICBzcGVjaWFsdHk6IEVuZG9jcmlub2xvZ3ksIERpYWJldGVzICYgTWV0YWJvbGlzbVxuICAgICAgICAgICAgc3ViU3BlY2lhbHR5OiBPYmVzaXR5LCBEaWFiZXRlc1xuICAgIGNvbGxlZ2VzOlxuICAgICAgICAtXG4gICAgICAgICAgICBoZWFkaW5nOiBXaWxsaWFtcyBDb2xsZWdlIChNQSlcbiAgICAgICAgICAgIHVybDogaHR0cDovL3d3dy51c25ld3MuY29tXG4gICAgICAgICAgICBmaWd1cmU6IFxuICAgICAgICAgICAgICAgIG1lZGl1bTogaHR0cDovL3d3dy51c25ld3MuY29tL2ltZy9jb2xsZWdlLXBob3RvXzEzMzMzLmpwZ1xuICAgICAgICAgICAgaW50ZXJuc2hpcEV4cGVyaWVuY2U6IDEwMCVcbiAgICAgICAgICAgIHJhbms6IFwiIzFcIlxuICAgICAgICAtXG4gICAgICAgICAgICBoZWFkaW5nOiBBbWhlcnN0IENvbGxlZ2UgKE1BKVxuICAgICAgICAgICAgdXJsOiBodHRwOi8vd3d3LnVzbmV3cy5jb21cbiAgICAgICAgICAgIGZpZ3VyZTogXG4gICAgICAgICAgICAgICAgbWVkaXVtOiBodHRwOi8vd3d3LnVzbmV3cy5jb20vaW1nL2NvbGxlZ2UtcGhvdG9fMTYwODUuanBnXG4gICAgICAgICAgICBpbnRlcm5zaGlwRXhwZXJpZW5jZTogOTklXG4gICAgICAgICAgICByYW5rOiBcIiMyXCJcbiAgICByZWNvbW1lbmRlZDpcbiAgICAgICAgLVxuICAgICAgICAgICAgbWVkaWFMYWJlbDogUmVjb21tZW5kZWQgQXJ0aWNsZXNcbiAgICAgICAgICAgIGhlYWRsaW5lOiBXaHkgR2V0dGluZyBhIFNlY29uZCBPcGluaW9uIE1hdHRlcnNcbiAgICAgICAgICAgIHBlcm1hbGluazogaHR0cDovL2hlYWx0aC1zYW5kMTgudXNuZXdzLmNvbS9oZWFsdGgtbmV3cy9wYXRpZW50LWFkdmljZS9hcnRpY2xlcy8yMDE1LzExLzA0L3doeS1nZXR0aW5nLWEtc2Vjb25kLW9waW5pb24tbWF0dGVyc1xuICAgICAgICAgICAgaW1hZ2U6IFxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGh0dHA6Ly93d3cudXNuZXdzLmNvbS9jbXNtZWRpYS8yNC85OS8zOWQwNzY2YTQ4NjA4MDQ1YzdlODkyNDRiMzFjLzE0MDUxNS10ZWVuZG9jdG9yLXN0b2NrLmpwZ1xuICAgICAgICAgICAgZGVjazogUGF0aWVudHMgY2FuIGJlIHRoZWlyIG93biBhZHZvY2F0ZSBhbmQgZmluZCB0aGUgbW9zdCBhcHByb3ByaWF0ZSBwaHlzaWNpYW4gZm9yIHRoZWlyIHN1c3BlY3RlZCBkaXNlYXNlLlxuLS0tXG5cblNpbXBsZSBtZWRpYSBvYmplY3RzXG5cbmBgYCBodG1sX2V4YW1wbGVcbjxkaXYgY2xhc3M9XCJmbGV4LXJvd1wiPlxuICAgIFxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsLTEyIGZsZXgtbGFyZ2UtNCBibG9jay1sb29zZXIgYmxvY2stZmx1c2gtZm9yLWxhcmdlLXVwXCI+XG4gICAgICAgIFxuICAgICAgICA8IS0tIFNUQVJULCBpZ25vcmUgYWJvdmUgLS0+XG4gICAgICAgIDxoMyBjbGFzcz1cImhlYWRpbmctbGFyZ2UgYmxvY2stbG9vc2VcIj5Eb2N0b3JzIGF0IHRoaXMgSG9zcGl0YWw8L2gzPlxuICAgICAgICB7JSBpbXBvcnQgXCJ0ZW1wbGF0ZXMvY29tbW9uL21lZGlhLW9iamVjdC9idWlsZGVyLm51bmpcIiBhcyBleGFtcGxlICV9XG4gICAgICAgIFxuICAgICAgICB7JSBmb3IgaXRlbSBpbiBkb2N0b3JzICV9XG4gICAgICAgICAgICB7JSBjYWxsIGV4YW1wbGUubWVkaWFPYmplY3RCdWlsZGVyXG4gICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICBoZWFkaW5nPWl0ZW0uaGVhZGluZyxcbiAgICAgICAgICAgICAgICAgICAgc3ViaGVhZGluZz1pdGVtLnN1YmhlYWRpbmcsXG4gICAgICAgICAgICAgICAgICAgIHVybD1pdGVtLnVybCwgXG4gICAgICAgICAgICAgICAgICAgIGZpZ3VyZT1pdGVtLmZpZ3VyZSwgXG4gICAgICAgICAgICAgICAgICAgIGhlYWRpbmdDbGFzc2VzPSdoZWFkaW5nLW5vcm1hbCcsXG4gICAgICAgICAgICAgICAgICAgIGZpZ3VyZUNsYXNzZXM9J3JvdW5kJ1xuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICV9XG4gICAgICAgICAgICA8cCBjbGFzcz1cImJsb2NrLWZsdXNoXCI+XG4gICAgICAgICAgICAgICAgPHN0cm9uZz57e2l0ZW0uc3BlY2lhbHR5fX08L3N0cm9uZz5cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1zbWFsbFwiPnt7aXRlbS5zdWJTcGVjaWFsdHl9fTwvcD5cbiAgICAgICAgICAgIHslIGVuZGNhbGwgJX1cbiAgICAgICAgeyUgZW5kZm9yICV9XG4gICAgICAgIDwhLS0gRU5EIC0tPlxuXG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbC0xMiBmbGV4LWxhcmdlLTQgYmxvY2stbG9vc2VyIGJsb2NrLWZsdXNoLWZvci1sYXJnZS11cFwiPlxuICAgICAgICBcbiAgICAgICAgPCEtLSBTVEFSVCwgaWdub3JlIGFib3ZlIC0tPlxuICAgICAgICA8aDMgY2xhc3M9XCJoZWFkaW5nLWxhcmdlIGJsb2NrLWxvb3NlXCI+TmVhcmJ5IEhvc3BpdGFsczwvaDM+XG4gICAgICAgIHslIGltcG9ydCBcInRlbXBsYXRlcy9jb21tb24vbWVkaWEtb2JqZWN0L2J1aWxkZXIubnVualwiIGFzIGV4YW1wbGUgJX1cblxuICAgICAgICB7JSBmb3IgaXRlbSBpbiBob3NwaXRhbHMgJX1cbiAgICAgICAgICAgIHslIGNhbGwgZXhhbXBsZS5tZWRpYU9iamVjdEJ1aWxkZXJcbiAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgIGhlYWRpbmc9aXRlbS5oZWFkaW5nLFxuICAgICAgICAgICAgICAgICAgICB1cmw9aXRlbS51cmwsIFxuICAgICAgICAgICAgICAgICAgICBmaWd1cmU9aXRlbS5maWd1cmUsIFxuICAgICAgICAgICAgICAgICAgICBoZWFkaW5nQ2xhc3Nlcz0naGVhZGluZy1ub3JtYWwnLFxuICAgICAgICAgICAgICAgICAgICBmaWd1cmVDbGFzc2VzPSdyb3VuZCdcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAlfVxuICAgICAgICAgICAgPHAgY2xhc3M9XCJcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbXV0ZWRcIj4oe3tpdGVtLmRpc3RhbmNlfX0pPC9zcGFuPlxuICAgICAgICAgICAgICAgIHt7aXRlbS5hZGRyZXNzfX1cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIHslIGVuZGNhbGwgJX1cbiAgICAgICAgeyUgZW5kZm9yICV9XG4gICAgICAgIDwhLS0gRU5EIC0tPlxuXG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbC0xMiBmbGV4LWxhcmdlLTQgYmxvY2stbG9vc2VyIGJsb2NrLWZsdXNoLWZvci1sYXJnZS11cFwiPlxuICAgICAgICBcbiAgICAgICAgPCEtLSBTVEFSVCwgaWdub3JlIGFib3ZlIC0tPlxuICAgICAgICA8aDMgY2xhc3M9XCJoZWFkaW5nLWxhcmdlIGJsb2NrLWxvb3NlXCI+U2ltaWxhciBKb2JzPC9oMz5cbiAgICAgICAgeyUgaW1wb3J0IFwidGVtcGxhdGVzL2NvbW1vbi9tZWRpYS1vYmplY3QvYnVpbGRlci5udW5qXCIgYXMgZXhhbXBsZSAlfVxuXG4gICAgICAgIHslIGZvciBpdGVtIGluIGpvYnMgJX1cbiAgICAgICAgICAgIHslIGNhbGwgZXhhbXBsZS5tZWRpYU9iamVjdEJ1aWxkZXJcbiAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgIGhlYWRpbmc9aXRlbS5oZWFkaW5nLFxuICAgICAgICAgICAgICAgICAgICB1cmw9aXRlbS51cmwsIFxuICAgICAgICAgICAgICAgICAgICBmaWd1cmU9aXRlbS5maWd1cmUsIFxuICAgICAgICAgICAgICAgICAgICBzcGFjaW5nQmV0d2Vlbj0nYmxvY2stbG9vc2UnLFxuICAgICAgICAgICAgICAgICAgICBoZWFkaW5nQ2xhc3Nlcz0naGVhZGluZy1ub3JtYWwnLFxuICAgICAgICAgICAgICAgICAgICBmaWd1cmVDbGFzc2VzPSdyb3VuZCdcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAlfVxuICAgICAgICAgICAgPHAgY2xhc3M9XCJibG9jay1mbHVzaFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1tdXRlZFwiPk1lZGlhbiBTYWxhcnk8L3NwYW4+XG4gICAgICAgICAgICAgICAge3tpdGVtLnNhbGFyeX19XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1tZWRpYSBibG9jay1ub3JtYWxcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1tZWRpYS1maWd1cmUgdGlnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz57e2l0ZW0ucmFua319PC9zdHJvbmc+IGluXG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtbWVkaWEtY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImRvdHRlZFwiIGhyZWY9XCJcIj57e2l0ZW0uZmllbGR9fTwvYT4gICAgXG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIHslIGVuZGNhbGwgJX1cbiAgICAgICAgeyUgZW5kZm9yICV9XG4gICAgICAgIDwhLS0gRU5EIC0tPlxuXG4gICAgPC9kaXY+XG5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImZsZXgtcm93XCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwtMTIgZmxleC1sYXJnZS04IGJsb2NrLWxvb3NlciBibG9jay1mbHVzaC1mb3ItbWVkaXVtLXVwXCI+XG4gICAgICAgIFxuICAgICAgICA8IS0tIFNUQVJULCBpZ25vcmUgYWJvdmUgLS0+XG4gICAgICAgIDxoMiBjbGFzcz1cImhlYWRpbmctbGFyZ2VyXCI+QmVzdCBQYXlpbmcgQ2l0aWVzIGZvciBEZW50aXN0czwvaDI+XG4gICAgICAgIDxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LiBVdCBzaW1pbGlxdWUgY29uc2VjdGV0dXIgbmVxdWUsIGhpYyBsYWJvcnVtIGF1dCBsYWJvcmUsIHNlZCByZXJ1bSwgY29uc2VxdWF0dXIgZWxpZ2VuZGkgY3VtcXVlLCByZWljaWVuZGlzIHRlbXBvcmUuIE5hbSBub2JpcyBtYWduYW0gZXhwZWRpdGEgbGliZXJvLCBxdWlkZW0gcXVhbS48L3A+XG4gICAgICAgIHslIGltcG9ydCBcInRlbXBsYXRlcy9jb21tb24vbWVkaWEtb2JqZWN0L2J1aWxkZXIubnVualwiIGFzIGV4YW1wbGUgJX1cblxuICAgICAgICB7JSBmb3IgaXRlbSBpbiBzYWxhcnkgJX1cbiAgICAgICAgICAgIHslIGNhbGwgZXhhbXBsZS5tZWRpYU9iamVjdEJ1aWxkZXJcbiAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgIGhlYWRpbmc9aXRlbS5oZWFkaW5nLFxuICAgICAgICAgICAgICAgICAgICBmaWd1cmU9aXRlbS5maWd1cmUsXG4gICAgICAgICAgICAgICAgICAgIGhlYWRpbmdDbGFzc2VzPSdoZWFkaW5nLWxhcmdlLWZvci1tZWRpdW0tdXAgYmxvY2stdGlnaHRlcicsXG4gICAgICAgICAgICAgICAgICAgIGZpZ3VyZUNsYXNzZXM9J3JvdW5kIGxvb3NlJ1xuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICV9XG4gICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtc21hbGwgdGV4dC1ub3JtYWwtZm9yLW1lZGl1bS11cCBibG9jay10aWdodGVzdCBibG9jay10aWdodC1mb3ItbWVkaXVtLXVwXCI+XG4gICAgICAgICAgICAgICAgQXZlcmFnZSBTYWxhcnk6IHt7aXRlbS5hdmdTYWxhcnl9fVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNtYWxsIHRleHQtbm9ybWFsLWZvci1tZWRpdW0tdXBcIj5cbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiI1wiPlNlZSBKb2IgT3BlbmluZ3M8L2E+XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICB7JSBlbmRjYWxsICV9XG4gICAgICAgIHslIGVuZGZvciAlfVxuICAgICAgICA8IS0tIEVORCAtLT5cblxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZmxleC1yb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbC0xMiBmbGV4LWxhcmdlLTggYmxvY2stbG9vc2VyXCI+XG4gICAgICAgIDxocj5cbiAgICAgICAgeyUgaW1wb3J0IFwidGVtcGxhdGVzL2NvbW1vbi9tZWRpYS1vYmplY3QvYnVpbGRlci5udW5qXCIgYXMgcmVjJX1cblxuICAgICAgICB7JSBmb3IgaXRlbSBpbiByZWNvbW1lbmRlZCAlfVxuICAgICAgICAgICAgeyUgY2FsbCByZWMubWVkaWFPYmplY3RCdWlsZGVyXG4gICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICBtZWRpYUxhYmVsPWl0ZW0ubWVkaWFMYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgaGVhZGluZz1pdGVtLmhlYWRsaW5lLFxuICAgICAgICAgICAgICAgICAgICB1cmw9aXRlbS5wZXJtYWxpbmssXG4gICAgICAgICAgICAgICAgICAgIGZpZ3VyZT1pdGVtLmltYWdlLFxuICAgICAgICAgICAgICAgICAgICBmaWd1cmVXaWR0aD0nMjMwcHgnLFxuICAgICAgICAgICAgICAgICAgICBibHVyYj1pdGVtLmRlY2ssXG4gICAgICAgICAgICAgICAgICAgIGhlYWRpbmdDbGFzc2VzPSdoZWFkaW5nLW5vcm1hbCBoZWFkaW5nLWxpZ2h0JyxcbiAgICAgICAgICAgICAgICAgICAgcmV2ZXJzZT10cnVlXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgJX1cbiAgICAgICAgICAgIHslIGVuZGNhbGwgJX1cbiAgICAgICAgeyUgZW5kZm9yICV9XG4gICAgICAgIDxocj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuYGBgXG5cblNpbXBsZSBtZWRpYSBvYmplY3QgdGhhdCBqdXN0IGRvZXNuJ3QgaGF2ZSBhbiBpbWFnZSBmb3IgYHNtYWxsYC5cblxuYGBgIGh0bWxfZXhhbXBsZVxuPGRpdiBjbGFzcz1cImZsZXgtcm93XCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwtMTIgZmxleC1sYXJnZS04XCI+XG5cbiAgICAgICAgPCEtLSBTVEFSVCwgaWdub3JlIGFib3ZlIC0tPlxuICAgICAgICB7JSBpbXBvcnQgXCJ0ZW1wbGF0ZXMvY29tbW9uL21lZGlhLW9iamVjdC9idWlsZGVyLm51bmpcIiBhcyBleGFtcGxlICV9XG5cbiAgICAgICAgeyUgZm9yIGl0ZW0gaW4gY29sbGVnZXMgJX1cbiAgICAgICAgICAgIHslIGNhbGwgZXhhbXBsZS5tZWRpYU9iamVjdEJ1aWxkZXJcbiAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgIGhlYWRpbmc9aXRlbS5oZWFkaW5nLFxuICAgICAgICAgICAgICAgICAgICBzdWJoZWFkaW5nPWl0ZW0uc3ViaGVhZGluZywgXG4gICAgICAgICAgICAgICAgICAgIHVybD1pdGVtLnVybCwgXG4gICAgICAgICAgICAgICAgICAgIGZpZ3VyZT1pdGVtLmZpZ3VyZSxcbiAgICAgICAgICAgICAgICAgICAgc3BhY2luZ0JldHdlZW49J2Jsb2NrLWxvb3NlJyxcbiAgICAgICAgICAgICAgICAgICAgaGVhZGluZ0NsYXNzZXM9J2Jsb2NrLXRpZ2h0ZXInLFxuICAgICAgICAgICAgICAgICAgICBmaWd1cmVXaWR0aD0nMjM1cHgnLFxuICAgICAgICAgICAgICAgICAgICBmaWd1cmVPZmZzZXQ9J2xvb3NlJywgXG4gICAgICAgICAgICAgICAgICAgIGZpZ3VyZUNsYXNzZXM9J3Nob3ctZm9yLW1lZGl1bS11cCBkaXNwbGF5LWJsb2NrLWZvci1tZWRpdW0tdXAnLFxuICAgICAgICAgICAgICAgICAgICBib3JkZXJCZXR3ZWVuPXRydWVcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAlfVxuICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbXV0ZWRcIj5QZXJjZW50IG9mIHVuZGVyZ3JhZHMgZ3JhZHVhdGluZyB3aXRoIGludGVybnNoaXAgZXhwZXJpZW5jZTo8L3NwYW4+IFxuICAgICAgICAgICAgICAgICAgICB7e2l0ZW0uaW50ZXJuc2hpcEV4cGVyaWVuY2V9fVxuICAgICAgICAgICAgICAgIDwvcD5cblxuICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+e3tpdGVtLnJhbmt9fTwvc3Ryb25nPiBpbiBOYXRpb25hbCBMaWJlcmFsIEFydHMgQ29sbGVnZXM8L3A+XG4gICAgICAgICAgICB7JS0gZW5kY2FsbCAlfVxuICAgICAgICB7JSBlbmRmb3IgJX1cbiAgICAgICAgPCEtLSBFTkQgLS0+XG5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuYGBgXG5cbiovXG5cblxuLypkb2Ncbi0tLVxudGl0bGU6IE1lZGlhIE9iamVjdCB3aXRoIE1lZGlhIExhYmVsXG5uYW1lOiBmLWJhc2ljLW1lZGlhLW9iamVjdFxuY2F0ZWdvcnk6IE1lZGlhIE9iamVjdHMgLSBGbGV4IE1lZGlhIE9iamVjdFxudGVtcGxhdGU6XG4gICAgZGF0YTpcbiAgICAgICAgLVxuICAgICAgICAgICAgbWVkaWFMYWJlbDogTWVkaWEgTGFiZWxcbiAgICAgICAgICAgIGhlYWRpbmc6IFRoZSBDb21wbGV0ZSBHdWlkZSB0byBMZWFybmluZ3MgU3RvY2tzc3NzXG4gICAgICAgICAgICB1cmw6IGh0dHA6Ly93d3cudXNuZXdzLmNvbVxuICAgICAgICAgICAgZmlndXJlOiBcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBodHRwOi8vcGxhY2Vob2xkLml0LzkweDkwXG4gICAgICAgICAgICAgICAgbWVkaXVtOiBodHRwOi8vcGxhY2Vob2xkLml0LzMxNHgyMDhcbiAgICAgICAgICAgIGJsdXJiOiBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuXG4gICAgICAgICAgICBhdXRob3I6IE1vc2FrYSBXaWxsaWFtc29uXG4gICAgICAgICAgICBwdWJkYXRlOiBBdWd1c3QgMjEsIDIwMTVcbiAgICAgICAgLVxuICAgICAgICAgICAgbWVkaWFMYWJlbDogSW52ZXN0aW5nIFRpcHNcbiAgICAgICAgICAgIGhlYWRpbmc6IEhvdyB0byBBbmFseXplIFN0b2NrIEZ1bmRhbWVudGFsc1xuICAgICAgICAgICAgdXJsOiBodHRwOi8vd3d3LnVzbmV3cy5jb21cbiAgICAgICAgICAgIGZpZ3VyZTogXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogaHR0cDovL3BsYWNlaG9sZC5pdC85MHg5MFxuICAgICAgICAgICAgICAgIG1lZGl1bTogaHR0cDovL3BsYWNlaG9sZC5pdC8zMTR4MjA4XG4gICAgICAgICAgICBibHVyYjogTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQsIHNlZCBkbyBlaXVzbW9kIHRlbXBvciBpbmNpZGlkdW50IHV0IGxhYm9yZSBldCBkb2xvcmUgbWFnbmEgYWxpcXVhLlxuICAgICAgICAgICAgYXV0aG9yOiBFbWlseSBCcmFjaHRlclxuICAgICAgICAgICAgcHViZGF0ZTogTWFyY2ggMTIsIDIwMTVcbi0tLVxuXG5UaGlzIGhhcyBhIHNtYWxsIHVwcGVyY2FzZSAqbWVkaWEgbGFiZWwqIGF0IHRoZSB0b3Agb2YgZWFjaCBtZWRpYSBvYmplY3QuIEZvclxuYHNtYWxsYCB0aGUgbWVkaWEgbGFiZWwgaXMgaW5zaWRlIHRoZSBtZWRpYSBvYmplY3QgY29udGVudCwgYnV0IGFib3ZlIHRoZVxuaGVhZGluZy4gSXQgaXMgYWN0dWFsbHkgb3V0c2lkZSBhbmQgYWJvdmUgdGhlIG1lZGlhIG9iamVjdCBmb3IgbWVkaXVtIHVwLiBcblxuYGBgaHRtbF9leGFtcGxlXG48ZGl2IGNsYXNzPVwiZmxleC1yb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbC0xMiBmbGV4LWxhcmdlLThcIj5cblxuICAgICAgICA8IS0tIFNUQVJULCBpZ25vcmUgYWJvdmUgLS0+XG4gICAgICAgIHslIGltcG9ydCBcInRlbXBsYXRlcy9jb21tb24vbWVkaWEtb2JqZWN0L2J1aWxkZXIubnVualwiIGFzIGV4YW1wbGUgJX1cblxuICAgICAgICB7JSBmb3IgaXRlbSBpbiBkYXRhICV9XG4gICAgICAgICAgICB7JSBjYWxsIGV4YW1wbGUubWVkaWFPYmplY3RCdWlsZGVyXG4gICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICBtZWRpYUxhYmVsPWl0ZW0ubWVkaWFMYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgaGVhZGluZz1pdGVtLmhlYWRpbmcsXG4gICAgICAgICAgICAgICAgICAgIHVybD1pdGVtLnVybCwgXG4gICAgICAgICAgICAgICAgICAgIGZpZ3VyZT1pdGVtLmZpZ3VyZSwgXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlckJldHdlZW49dHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgc3BhY2luZ0JldHdlZW49J2Jsb2NrLWxvb3NlJ1xuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICV9XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hvdy1mb3ItbWVkaXVtLXVwXCI+XG4gICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwidGV4dC1tdXRlZFwiIGhyZWY9XCJcIiBhbHQ9XCJ7e2l0ZW0uYXV0aG9yfX1cIj57e2l0ZW0uYXV0aG9yfX08L2E+XG4gICAgICAgICAgICAgICAgICAgIHxcbiAgICAgICAgICAgICAgICAgICAge3tpdGVtLnB1YmRhdGV9fVxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImJsb2NrLWZsdXNoXCI+e3tpdGVtLmJsdXJifX08L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIHslIGVuZGNhbGwgJX1cbiAgICAgICAgeyUgZW5kZm9yICV9XG4gICAgICAgIDwhLS0gRU5EIC0tPlxuXG4gICAgPC9kaXY+XG48L2Rpdj5cbmBgYFxuKi9cblxuLy8gT3B0aW9ucyBmb3IgbWFyZ2lucyBcbiRtZWRpYS1vYmplY3QtZmlndXJlLW9mZnNldDogcmVtLWNhbGMoMTIpO1xuXG4uZmxleC1tZWRpYSB7XG4gICAgQGluY2x1ZGUgZmxleGJveDtcbiAgICAvLyByZW1vdmUgYm90dG9tIHNwYWNpbmcgYW5kIGJvcmRlciBvbiBsYXN0IGl0ZW1cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4uZmxleC1tZWRpYS1maWd1cmUge1xuICAgICYudGlnaHQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRtZWRpYS1vYmplY3QtZmlndXJlLW9mZnNldCAvIDM7XG4gICAgfVxuICAgICYubm9ybWFsIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkbWVkaWEtb2JqZWN0LWZpZ3VyZS1vZmZzZXQ7XG4gICAgfVxuICAgICYubG9vc2Uge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRtZWRpYS1vYmplY3QtZmlndXJlLW9mZnNldCAqIDI7XG4gICAgfVxuICAgICYubG9vc2VyIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkbWVkaWEtb2JqZWN0LWZpZ3VyZS1vZmZzZXQgKiAyLjU7XG4gICAgfVxuICAgICYubG9vc2VzdCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJG1lZGlhLW9iamVjdC1maWd1cmUtb2Zmc2V0ICogMztcbiAgICB9XG4gICAgJi5yb3VuZCB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgICBpbWcuZnVsbC1oZWlnaHQge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgICBpbWcuYm9yZGVyZWQge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjREREO1xuICAgIH1cbiAgICAmLmF1dG8td2lkdGggaW1nIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB9XG59XG5cbi5mbGV4LW1lZGlhLWhlYWRpbmcge1xuICAgIC8vIHRoaXMgaXMgdGhlIGRlZmF1bHQgbWVkaWEgaGVhZGluZyBzdHlsZXNcbiAgICAvLyBlc3NlbnRpYWxseTogLmJsb2NrLW5vcm1hbC5oZWFkaW5nLW5vcm1hbC5oZWFkaW5nLWxhcmdlLWZvci1tZWRpdW0tdXBcbiAgICBAaW5jbHVkZSBibG9jaygnbm9ybWFsJywgZmFsc2UpO1xuICAgIEBpbmNsdWRlIGhlYWRpbmcoJ25vcm1hbCcpO1xuICAgIEBpbmNsdWRlIGhlYWRpbmcoJ2xhcmdlJywgJGJyZWFrcG9pbnRzOiAoJG1lZGl1bS11cCkpO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG4uZmxleC1tZWRpYS1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBmbGV4KDEpO1xufVxuXG4uZmxleC1tZWRpYS5yZXZlcnNlID4gLmZsZXgtbWVkaWEtZmlndXJlIHtcbiAgICBAaW5jbHVkZSBvcmRlcigxKTtcbiAgICBtYXJnaW4tbGVmdDogJG1lZGlhLW9iamVjdC1maWd1cmUtb2Zmc2V0O1xuICAgIG1hcmdpbi1yaWdodDogMDtcbn1cblxuLypkb2Ncbi0tLVxudGl0bGU6IE92ZXJsYXkgRmVhdHVyZVxubmFtZTogb3ZlcmxheS1mZWF0dXJlXG5jYXRlZ29yeTogTWVkaWEgT2JqZWN0cyAtIE92ZXJsYXkgRmVhdHVyZXNcbmF1dGhvcnM6IFdlcyBEaU1pY2VsaSwgV2lsbCBGZXJndXNvblxuc2VsZWN0b3JzOlxuICAgIC0gLmZlYXR1cmUtb3ZlcmxheVxudGVtcGxhdGU6XG4gICAgbGVhZF9zdG9yeTpcbiAgICAgICAgaW1hZ2U6XG4gICAgICAgICAgcmVzcG9uc2l2ZTY0MDogaHR0cDovL3d3dy1zYW5kNC51c25ld3MuY29tL2RpbXM0L1VTTkVXUy9iMmFkY2YyLzIxNDc0ODM2NDcvY3JvcC84MjV4NTQxJTJCMCUyQjAvcmVzaXplLzY0MHg0MjAvcXVhbGl0eS84NS8/dXJsPWh0dHAlM0ElMkYlMkZ3d3cudXNuZXdzLmNvbSUyRmNtc21lZGlhJTJGNDklMkZiZCUyRjU3YmIwNmQwNGM0MjhiOGYzOWVjNWRiYmQ2ODIlMkYxNTAyMDItYWR2aXNvcmhlbHAtc3RvY2suanBnXG4gICAgICAgICAgcmVzcG9uc2l2ZTk3MDogaHR0cDovL3d3dy1zYW5kNC51c25ld3MuY29tL2RpbXM0L1VTTkVXUy9mZGQ3MjgzLzIxNDc0ODM2NDcvY3JvcC84MjV4NTUwJTJCMCUyQjAvcmVzaXplLzk3MHg2NDcvcXVhbGl0eS84NS8/dXJsPWh0dHAlM0ElMkYlMkZ3d3cudXNuZXdzLmNvbSUyRmNtc21lZGlhJTJGNDklMkZiZCUyRjU3YmIwNmQwNGM0MjhiOGYzOWVjNWRiYmQ2ODIlMkYxNTAyMDItYWR2aXNvcmhlbHAtc3RvY2suanBnXG4gICAgICAgIHVybDogaHR0cDovL21vbmV5LXNhbmQ0LnVzbmV3cy5jb20vbW9uZXkvYmxvZ3MvT24tUmV0aXJlbWVudC9hcnRpY2xlcy8yMDE2LTAyLTI2LzUtdGhpbmdzLXlvdXItZmluYW5jaWFsLWFkdmlzb3ItaXMtbm90LXRlbGxpbmcteW91XG4gICAgICAgIGhlYWRpbmc6IDUgVGhpbmdzIFlvdXIgRmluYW5jaWFsIEFkdmlzb3IgaXMgTm90IFRlbGxpbmcgWW91XG4gICAgICAgIGF1dGhvcjogQnJpYW4gUHJlc3RvblxuICAgICAgICBibHVyYjogSGVyZeKAmXMgaG93IHRvIGZpbmQgb3V0IGlmIHlvdXIgaW52ZXN0bWVudCBhZHZpc29yIGlzIHJpcHBpbmcgeW91IG9mZi5cbiAgICAgICAgcHViZGF0ZTogRmViLiAyNiwgMjAxNlxuLS0tXG5cbk11Y2ggbGlrZSBmZWF0dXJlIG1lZGlhIG9iamVjdHMsIHRoaXMgb2JqZWN0IG92ZXJsYXlzIHRoZSBpbWFnZSBhbmQgdGhlIGhlYWRsaW5lIG9uIGxhcmdlIGJyZWFrcG9pbnRzLCB3aXRoXG5hIGJvdHRvbS10by10b3AgZ3JhZGllbnQgdG8gbWFrZSB0aGUgd2hpdGUgdGV4dCBtb3JlIHJlYWRhYmxlLiAgU2NvdXJlZCBmcm9tIGNvdW50cmllcy5cblxuYGBgbnVuanVja3NfdGFiP2VkaXRvci1pZD17e3V1aWQoKX19XG57JSBtYWNybyBmZWF0dXJlT3ZlcmxheSh1cmwsIGltYWdlLCBoZWFkaW5nLCBhdXRob3IsIHB1YmRhdGUsIGJsdXJiKSAlfVxuICAgIHslIGluY2x1ZGUgXCJ0ZW1wbGF0ZXMvY29tbW9uL21lZGlhLW9iamVjdC9mZWF0dXJlLW92ZXJsYXkubnVualwiICV9XG57JSBlbmRtYWNybyAlfVxuXG57eyBmZWF0dXJlT3ZlcmxheShsZWFkX3N0b3J5LnVybCwgbGVhZF9zdG9yeS5pbWFnZSwgbGVhZF9zdG9yeS5oZWFkaW5nLCBsZWFkX3N0b3J5LmF1dGhvciwgbGVhZF9zdG9yeS5wdWJkYXRlLCBsZWFkX3N0b3J5LmJsdXJiKSB9fVxuYGBgXG5cbiovXG5cbi5mZWF0dXJlLW92ZXJsYXkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5mZWF0dXJlLW92ZXJsYXktaW1hZ2Uge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIH1cblxuICAgIEBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGhlaWdodDoxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgICAgICB0b3A6IDBweDtcblxuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgwLDAsMCwwKSAwJSwgcmdiYSgwLDAsMCwxLjApIDEwMCUpO1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgICAgICAgICB6LWluZGV4OjE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgLmZlYXR1cmUtb3ZlcmxheS1jb250ZW50IHtcbiAgICBib3R0b206IDA7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogMjtcbiAgfVxufVxuXG4vKmRvY1xuLS0tXG50aXRsZTogU3RhY2tlZCBNZWRpYSBPYmplY3Rcbm5hbWU6IHN0YWNrZWQtbWVkaWEtb2JqZWN0XG5jYXRlZ29yeTogTWVkaWEgT2JqZWN0cyAtIEZsZXggTWVkaWEgT2JqZWN0XG50ZW1wbGF0ZTpcbiAgICBkYXRhOlxuICAgICAgICAtXG4gICAgICAgICAgICBoZWFkaW5nOiBCYXNpYyBNZWRpYSBPYmplY3RcbiAgICAgICAgICAgIHVybDogaHR0cDovL3d3dy51c25ld3MuY29tXG4gICAgICAgICAgICBmaWd1cmU6IGh0dHA6Ly9wbGFjZWhvbGQuaXQvOTB4OTBcbiAgICAgICAgICAgIGJsdXJiOiBWZXJ5IGJhc2ljIG1lZGlhIG9iamVjdCB0ZXh0IGhlcmVcbiAgICAgICAgLVxuICAgICAgICAgICAgaGVhZGluZzogQmFzaWMgTWVkaWEgT2JqZWN0IDJcbiAgICAgICAgICAgIHVybDogaHR0cDovL3d3dy51c25ld3MuY29tXG4gICAgICAgICAgICBmaWd1cmU6IGh0dHA6Ly9wbGFjZWhvbGQuaXQvOTB4OTBcbiAgICAgICAgICAgIGJsdXJiOiBTZWNvbmQgdmVyeSBiYXNpYyBtZWRpYSBvYmplY3QgdGV4dCBoZXJlXG4gICAgICAgIC1cbiAgICAgICAgICAgIGhlYWRpbmc6IEJhc2ljIE1lZGlhIE9iamVjdCAzXG4gICAgICAgICAgICB1cmw6IGh0dHA6Ly93d3cudXNuZXdzLmNvbVxuICAgICAgICAgICAgZmlndXJlOiBodHRwOi8vcGxhY2Vob2xkLml0LzkweDkwXG4gICAgICAgICAgICBibHVyYjogVmVyeSBiYXNpYyBtZWRpYSBvYmplY3QgdGV4dCBoZXJlXG4gICAgICAgIC1cbiAgICAgICAgICAgIGhlYWRpbmc6IEJhc2ljIE1lZGlhIE9iamVjdCA0XG4gICAgICAgICAgICB1cmw6IGh0dHA6Ly93d3cudXNuZXdzLmNvbVxuICAgICAgICAgICAgZmlndXJlOiBodHRwOi8vcGxhY2Vob2xkLml0LzkweDkwXG4gICAgICAgICAgICBibHVyYjogU2Vjb25kIHZlcnkgYmFzaWMgbWVkaWEgb2JqZWN0IHRleHQgaGVyZVxuICAgICAgICAtXG4gICAgICAgICAgICBoZWFkaW5nOiBCYXNpYyBNZWRpYSBPYmplY3QgNVxuICAgICAgICAgICAgdXJsOiBodHRwOi8vd3d3LnVzbmV3cy5jb21cbiAgICAgICAgICAgIGZpZ3VyZTogaHR0cDovL3BsYWNlaG9sZC5pdC85MHg5MFxuICAgICAgICAgICAgYmx1cmI6IFZlcnkgYmFzaWMgbWVkaWEgb2JqZWN0IHRleHQgaGVyZVxuICAgICAgICAtXG4gICAgICAgICAgICBoZWFkaW5nOiBCYXNpYyBNZWRpYSBPYmplY3QgNlxuICAgICAgICAgICAgdXJsOiBodHRwOi8vd3d3LnVzbmV3cy5jb21cbiAgICAgICAgICAgIGZpZ3VyZTogaHR0cDovL3BsYWNlaG9sZC5pdC85MHg5MFxuICAgICAgICAgICAgYmx1cmI6IFNlY29uZCB2ZXJ5IGJhc2ljIG1lZGlhIG9iamVjdCB0ZXh0IGhlcmVcbi0tLVxuXG5XZSBjYW4gdXNlIHRoZXNlIHRvIHN0YWNrIHJvd3Mgb2YgbWVkaWEgb2JqZWN0cywgZWcuIFJlYWwgRXN0YXRlIExhbmRpbmcgcGFnZSB3aXRoIDMgYWNyb3NzIG9uIGxhcmdlLCAyIG9uIG1lZGl1bSwgYW5kIG9uZSBvbiBzbWFsbCBvciBOZXdzIFNwZWNpYWwgVG9waWNzIHBhZ2UgMiBhY3Jvc3Mgb24gbWVkaXVtLXVwIGFuZCBzdGFja2VkIG9uIG1vYmlsZSB2aWV3LlxuXG5gYGBodG1sX2V4YW1wbGVcbjxkaXYgY2xhc3M9XCJmbGV4LXJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsLTEyXCI+XG4gICAgICAgIDxoMyBjbGFzcz1cImhlYWRpbmctbGFyZ2VcIj5Qb3B1bGFyIFRvcGljczwvaDM+XG4gICAgICAgIDx1bCBjbGFzcz1cInNtYWxsLWJsb2NrLWdyaWQtMSBtZWRpdW0tYmxvY2stZ3JpZC0yIGxhcmdlLWJsb2NrLWdyaWQtM1wiPlxuICAgICAgICB7JSBpbXBvcnQgXCJ0ZW1wbGF0ZXMvY29tbW9uL21lZGlhLW9iamVjdC9jb2x1bW4tYnVpbGRlci5udW5qXCIgYXMgZXhhbXBsZSAlfVxuXG4gICAgICAgIHslIGZvciBpdGVtIGluIGRhdGEgJX1cbiAgICAgICAgICAgIHslIGNhbGwgZXhhbXBsZS5tZWRpYU9iamVjdEJ1aWxkZXJcbiAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgIGhlYWRpbmc9aXRlbS5oZWFkaW5nLFxuICAgICAgICAgICAgICAgICAgICB1cmw9aXRlbS51cmwsIFxuICAgICAgICAgICAgICAgICAgICBmaWd1cmU9aXRlbS5maWd1cmUsIFxuICAgICAgICAgICAgICAgICAgICBoZWFkaW5nQ2xhc3Nlcz0naGVhZGluZy1zbWFsbCBoZWFkaW5nLW5vcm1hbCBibG9jay1mbHVzaCcsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lckNsYXNzZXM9J3NtYWxsLW1pZGRsZSdcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAlfVxuICAgICAgICAgICAgeyUgZW5kY2FsbCAlfVxuICAgICAgICB7JSBlbmRmb3IgJX1cbiAgICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuYGBgXG5cbmBgYGh0bWxfZXhhbXBsZVxuPGRpdiBjbGFzcz1cImZsZXgtcm93XCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwtMTIgZmxleC1tZWRpdW0tOFwiPlxuICAgICAgICA8aDMgY2xhc3M9XCJoZWFkaW5nLWxhcmdlXCI+TW9yZSBmcm9tIFNURU08L2gzPlxuICAgICAgICA8dWwgY2xhc3M9XCJzbWFsbC1ibG9jay1ncmlkLTEgbWVkaXVtLWJsb2NrLWdyaWQtMlwiPlxuICAgICAgICB7JSBpbXBvcnQgXCJ0ZW1wbGF0ZXMvY29tbW9uL21lZGlhLW9iamVjdC9jb2x1bW4tYnVpbGRlci5udW5qXCIgYXMgZXhhbXBsZSAlfVxuXG4gICAgICAgIHslIGZvciBpdGVtIGluIGRhdGEgJX1cbiAgICAgICAgICAgIHslIGNhbGwgZXhhbXBsZS5tZWRpYU9iamVjdEJ1aWxkZXJcbiAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgIGhlYWRpbmc9aXRlbS5oZWFkaW5nLFxuICAgICAgICAgICAgICAgICAgICB1cmw9aXRlbS51cmwsIFxuICAgICAgICAgICAgICAgICAgICBmaWd1cmU9aXRlbS5maWd1cmUsIFxuICAgICAgICAgICAgICAgICAgICBoZWFkaW5nQ2xhc3Nlcz0naGVhZGluZy1zbWFsbCBoZWFkaW5nLW5vcm1hbCBibG9jay1mbHVzaCcsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lckNsYXNzZXM9J3NtYWxsLW1pZGRsZSdcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAlfVxuICAgICAgICAgICAgeyUgZW5kY2FsbCAlfVxuICAgICAgICB7JSBlbmRmb3IgJX1cbiAgICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuYGBgXG4qL1xuIiwiLypkb2Ncbi0tLVxudGl0bGU6IFBhbmVsXG5uYW1lOiBhLXBhbmVsXG5jYXRlZ29yeTogVmlzdWFsIFRyZWF0bWVudHMgLSBQYW5lbFxuc2VsZWN0b3JzOlxuICAtIC5wYW5lbFxuICAtIC5wYW5lbC10aWdodFxuICAtIC5wYW5lbC1ib3JkZXJsZXNzXG4gIC0gLnBhbmVsLmJvcmRlcmxlc3NcbiAgLSAucGFuZWwubmFrZWRcbiAgLSAucGFuZWwubGlnaHRcbiAgLSAucGFuZWwubGlnaHQtYmx1ZVxuLS0tXG5cbmBgYGh0bWxfZXhhbXBsZT9raXRjaGVuLXNpbms9dHJ1ZVxuPGRpdiBjbGFzcz1cInBhbmVsXCI+XG4gIDxoNT5UaGlzIGlzIGEgPGVtPnJlZ3VsYXI8L2VtPiBwYW5lbC48L2g1PlxuICA8cD5JdCBoYXMgYW4gZWFzeSB0byBvdmVycmlkZSB2aXN1YWwgc3R5bGUsIGFuZCBpcyBhcHByb3ByaWF0ZWx5IHN1YmR1ZWQuPC9wPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJwYW5lbCBjYWxsb3V0IHJhZGl1c1wiPlxuICA8aDU+VGhpcyBpcyBhIDxlbT5jYWxsb3V0PC9lbT4gcGFuZWwuPC9oNT5cbiAgPHA+SXQncyBhIGxpdHRsZSBvc3RlbnRhdGlvdXMsIGJ1dCB1c2VmdWwgZm9yIGltcG9ydGFudCBjb250ZW50LjwvcD5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwicGFuZWwtYm9yZGVybGVzc1wiPlxuICA8aDU+VGhpcyBpcyBhIDxlbT5ib3JkZXJsZXNzPC9lbT4gcGFuZWwuPC9oNT5cbiAgPHA+VGhpcyB3YXMgYnVpbHQgdXNpbmcgQGV4dGVuZC48L3A+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cInBhbmVsIG5ha2VkXCI+XG4gIDxoNT5UaGlzIGlzIGEgYC5uYWtlZGAgcGFuZWwuPC9oNT5cbiAgPHA+SGFzIHRyYW5zcGFyZW50IGJhY2tncm91bmQgYW5kIGxpZ2h0ZXIgYm9yZGVyIDwvcD5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwicGFuZWwgbGlnaHRcIj5cbiAgPGg1PlRoaXMgaXMgYSBgLmxpZ2h0YCBwYW5lbC48L2g1PlxuICA8cD5IYXMgJHNtb2tlLWdyYXkgYmFja2dyb3VuZCBhbmQgbGlnaHRlciBib3JkZXIgPC9wPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJwYW5lbCBsaWdodC1ibHVlXCI+XG4gIDxoNT5UaGlzIGlzIGEgYC5saWdodC1ibHVlYCBwYW5lbC48L2g1PlxuICA8cD5IYXMgJGxpZ2h0ZXN0LWJsdWUgYmFja2dyb3VuZCBhbmQgJGxpZ2h0LWJsdWUgYm9yZGVyIDwvcD5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwicGFuZWwgeWVsbG93XCI+XG4gIDxoNT5UaGlzIGlzIGEgYC55ZWxsb3dgIHBhbmVsLjwvaDU+XG4gIDxwPkhhcyAkYmFja2dyb3VuZC15ZWxsb3cgYmFja2dyb3VuZCBhbmQgJG9yYW5nZS1saWdodCBib3JkZXI8L3A+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImVycm9yLXBhbmVsXCI+XG4gICA8aDU+VGhpcyBpcyBhbiBgLmVycm9yLXBhbmVsYCBwYW5lbC48L2g1PlxuICAgPHA+SXQncyBnb29kIGZvciBzaG93aW5nIHRoYXQgc29tZXRoaW5nIHdlbnQgd3JvbmcuPC9wPlxuPC9kaXY+XG5cbmBgYFxuKi9cblxuLnBhbmVsLWJvcmRlcmxlc3MsIC5wYW5lbC5ib3JkZXJsZXNzIHtcbiAgQGV4dGVuZCAucGFuZWw7XG4gIGJvcmRlcjogMCAhaW1wb3J0YW50O1xufVxuXG4ucGFuZWwtdGlnaHQge1xuICBAZXh0ZW5kIC5wYW5lbDtcbiAgcGFkZGluZzogcmVtLWNhbGMoMTApIHJlbS1jYWxjKDE2KTtcbn1cblxuLnBhbmVsLnRpZ2h0IHtcbiAgcGFkZGluZzogcmVtLWNhbGMoMTApIHJlbS1jYWxjKDE2KTtcbn1cblxuLnBhbmVsLm5ha2VkIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRnYWluc2Jvcm87XG59XG5cbi5wYW5lbC5saWdodCB7XG4gIGJhY2tncm91bmQ6ICRzbW9rZS1ncmF5O1xuICBib3JkZXI6IDFweCBzb2xpZCAkZ2FpbnNib3JvO1xufVxuXG4ucGFuZWwubGlnaHQtYmx1ZSB7XG4gICAgYmFja2dyb3VuZDogJGxpZ2h0ZXN0LWJsdWU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWJsdWU7XG59XG5cbi5wYW5lbC53aGl0ZSB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRnYWluc2Jvcm87XG59XG5cbi5wYW5lbC5ib3JkZXItbGlnaHQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRnYWluc2Jvcm8gIWltcG9ydGFudDtcbn1cblxuLnBhbmVsLnllbGxvdyB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQteWVsbG93O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRvcmFuZ2UtbGlnaHQ7XG59XG5cbi5lcnJvci1wYW5lbCB7XG4gICAgQGV4dGVuZCAucGFuZWw7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNDAsMTEwLDEwMSwwLjIwKTtcbiAgICBjb2xvcjogI0YwNkU2NTtcbiAgICBib3JkZXItY29sb3I6ICNGMDZFNjU7XG59XG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBDYXJkc1xubmFtZTogYS1jYXJkc1xuY2F0ZWdvcnk6IFZpc3VhbCBUcmVhdG1lbnRzIC0gQ2FyZFxuc2VsZWN0b3JzOlxuICAtIC5wYW5lbC5jYXJkXG4gIC0gLmNhcmQtY29udGVudFxuLS0tXG5cblRoZXNlIGxvb2sgbGlrZSBtZWRpYSBvYmplY3RzIGJ5IGRlZmF1bHQgYW5kIGNhcmRzIG9uIGAubWVkaXVtLXVwYC4gVGhleSBoYXBwZW5cbnRvIG1vZGlmeSBwYW5lbCBidXQgSSBhbSBub3Qgc3VyZSB0aGV5IHNob3VsZC5cbj4qKlRPRE86KiogV2UgbmVlZCB0byBhYnN0cmFjdCB0aGUgY2FyZCBzdHlsaW5nIGludG8gaXRzIG93biBwYXR0ZXJuIGFuZFxuY29tZSB1cCB3aXRoIGEgbW9kaWZpZXIgdG8gaW1wbGVtZW50IHRoZSByZXNwb25zaXZlIGJlaGF2aW9yLlxuXG5gYGBodG1sX2V4YW1wbGVcbnslIGluY2x1ZGUgXCJ0ZW1wbGF0ZXMvcGFnZXMvbW9uZXkvaW52ZXN0aW5nL2NvbW1vbi9fY2FyZHMubnVualwiICV9XG5gYGBcblxuKi9cblxuLnBhbmVsLmNhcmQgeyAvLyB0aGVzZSBhcmUgbm90IGluIGJveGVzIG9uIHNtYWxsXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItY29sb3I6ICRnYWluc2Jvcm87XG4gIEBpbmNsdWRlIHRvKGJwLW1lZGl1bSkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgfVxuICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bSkgeyAvLyBib3gtc2hhZG93IHdoZW4gaW4gY2FyZCBmb3JtXG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDAlLCBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIHBhZGRpbmctdG9wOiA2MHB4OyAvLyByb29tIGZvciB0aGUgYmcgaW1hZ2VcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KDAsIDAsIDVweCwgMCwgI2FhYSwgZmFsc2UpO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAmLmNhcmQtYmx1ZSB7XG4gICAgICBib3JkZXItdG9wOiA1cHggc29saWQgJGxpbmstYmx1ZS1saWdodDtcbiAgICB9XG4gICAgJi5jYXJkLWdyZWVuIHtcbiAgICAgIGJvcmRlci10b3A6IDVweCBzb2xpZCAkZ3JlZW4tcHJvO1xuICAgIH1cbiAgICAmLmNhcmQtcmVkIHtcbiAgICAgIGJvcmRlci10b3A6IDVweCBzb2xpZCAkcmVkO1xuICAgIH1cbiAgICAmLmNhcmQtZGFyayB7XG4gICAgICBib3JkZXItdG9wOiA1cHggc29saWQgJGJsdWUtZGFyaztcbiAgICB9XG4gIH1cbiAgLmNhcmQtY29udGVudCB7XG4gICAgLy8gdW5mb3J0dW5hdGVseSBpdCBpcyBlYXN5IHRvIGp1c3Qga2lsbCBwYWRkaW5nIHdpdGggdGhpcyBjc3NcbiAgICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bSkge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gIH1cbn1cblxuLypkb2Ncbi0tLVxudGl0bGU6IE5ldyBDYXJkc1xubmFtZTogYS1uZXctY2FyZHNcbmNhdGVnb3J5OiBWaXN1YWwgVHJlYXRtZW50cyAtIE5ldyBDYXJkc1xuc2VsZWN0b3JzOlxuICAtIC5uZXctY2FyZFxuLS0tXG5cblJld29ya2VkIHRvIHdvcmsgYXQgYmlnZ2VyIHNpemVzLlxuXG5gYGBodG1sX2V4YW1wbGVcbnslIGluY2x1ZGUgXCJ0ZW1wbGF0ZXMvcGFnZXMvaGVhbHRoL2hlYWx0aC1jYXJlL2FkdmljZS9fY2FyZHMubnVualwiICV9XG5gYGBcblxuKi9cbi5uZXctY2FyZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGdhaW5zYm9ybztcbiAgICBwYWRkaW5nOiAwO1xuICAgIEBpbmNsdWRlIHRvKGJwLW1lZGl1bSkge1xuICAgICAgICBib3JkZXItbGVmdDogMDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgIH1cbiAgICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bSkgeyAvLyBib3gtc2hhZG93IHdoZW4gaW4gY2FyZCBmb3JtXG4gICAgICAgIEBpbmNsdWRlIGJveC1zaGFkb3coMCwgMCwgNXB4LCAwLCAjYWFhLCBmYWxzZSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgYm9yZGVyLXRvcDogNXB4IHNvbGlkO1xuICAgICAgICAmLmJsdWUge1xuICAgICAgICAgIGJvcmRlci10b3A6IDVweCBzb2xpZCAkbGluay1ibHVlLWxpZ2h0O1xuICAgICAgICB9XG4gICAgICAgICYuZ3JlZW4ge1xuICAgICAgICAgIGJvcmRlci10b3A6IDVweCBzb2xpZCAkZ3JlZW4tcHJvO1xuICAgICAgICB9XG4gICAgICAgICYucmVkIHtcbiAgICAgICAgICBib3JkZXItdG9wOiA1cHggc29saWQgJHJlZDtcbiAgICAgICAgfVxuICAgICAgICAmLmRhcmt7XG4gICAgICAgICAgYm9yZGVyLXRvcDogNXB4IHNvbGlkICRibHVlLWRhcms7XG4gICAgICAgIH1cbiAgICB9XG4gICAgPiBhIHtcbiAgICAgICAgQGluY2x1ZGUgdG8oYnAtbWVkaXVtKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAubmV3LWNhcmQtaW1nIHtcbiAgICAgICAgQGluY2x1ZGUgdG8oYnAtbWVkaXVtKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bSkge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwcHg7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgZnJvbShicC1sYXJnZSkge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQwcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLm5ldy1jYXJkLWljb24ge1xuICAgICAgICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bSkge1xuICAgICAgICAgICAgPiBzdmcge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0zNHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG59XG4uZmxleC1tZWRpdW0tNiAubmV3LWNhcmQgLm5ldy1jYXJkLWltZyB7XG4gICAgICAgIEBpbmNsdWRlIGZyb20oYnAtbWVkaXVtKSB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMDBweDtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBmcm9tKGJwLWxhcmdlKSB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyNDBweDtcbiAgICAgICAgfVxufVxuXG4uZmxleC1tZWRpdW0tNSAubmV3LWNhcmQgLm5ldy1jYXJkLWltZyB7XG4gICAgICAgIEBpbmNsdWRlIGZyb20oYnAtbWVkaXVtKSB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNTBweDtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBmcm9tKGJwLWxhcmdlKSB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxOTBweDtcbiAgICAgICAgfVxufVxuXG4vKmRvY1xuLS0tXG50aXRsZTogUGFuZWwgTWl4aW5cbm5hbWU6IGUtcGFuZWwtbWl4aW5cbmNhdGVnb3J5OiBWaXN1YWwgVHJlYXRtZW50cyAtIFBhbmVsXG4tLS1cblxuWW91IGNhbiBjcmVhdGUgeW91ciBvd24gcGFuZWxzIHVzaW5nIGEgbWl4aW4uXG5cbmBgYHNhc3NfZXhhbXBsZVxuLy8gVXNpbmcgdGhlIGF2YWlsYWJsZSBvcHRpb25zXG4uY3VzdG9tLXBhbmVsIHtcbiAgQGluY2x1ZGUgcGFuZWwoXG4gICAgLy8gU2V0cyB0aGUgcGFuZWwgYmFja2dyb3VuZCBjb2xvci4gRGVmYXVsdDogJHBhbmVsLXBnXG4gICAgJGJnOm9yYW5nZSxcbiAgICAvLyBTZXRzIHRoZSBwYW5lbCBwYWRkaW5nIGFtb3VudC4gRGVmYXVsdDogJHBhbmVsLXBhZGRpbmdcbiAgICAkcGFkZGluZzoyMHB4LFxuICAgIC8vIFNldHMgdGhlIGZvbnQgY29sb3IgYmFzZWQgb24gdGhlIGRhcmtuZXNzIG9mIHRoZSBiZyAmIHJlc2V0cyBoZWFkZXIgbGluZS1oZWlnaHRzIGZvciBwYW5lbHMuIERlZmF1bHQ6ICRwYW5lbC1oZWFkZXItYWRqdXN0XG4gICAgJGFkanVzdDp0cnVlXG4gICk7XG59XG5gYGBcbkhlcmUgaXMgYSBwYW5lbCB3ZSB3b3VsZCBuZXZlciB1c2UsIGJ1dCB5b3UgY2FuIHNlZSBob3cgdG8gYnVpbGQgaXQgd2l0aCB0aGUgYHBhbmVsKClgIG1peGluOlxuXG5gYGAgaHRtbF9leGFtcGxlXG48ZGl2IGNsYXNzPVwiY3VzdG9tLXBhbmVsXCI+Q3VzdG9tIFBhbmVsIHVzaW5nIGEgbWl4aW48L2Rpdj5cbmBgYFxuXG5gYGAgc2Fzc19leGFtcGxlXG4uY3VzdG9tLXBhbmVsIHtcbiAgQGluY2x1ZGUgcGFuZWwoXG4gICAgLy8gU2V0cyB0aGUgcGFuZWwgYmFja2dyb3VuZCBjb2xvci4gRGVmYXVsdDogJHBhbmVsLXBnXG4gICAgJGJnOm9yYW5nZSxcbiAgICAvLyBTZXRzIHRoZSBwYW5lbCBwYWRkaW5nIGFtb3VudC4gRGVmYXVsdDogJHBhbmVsLXBhZGRpbmdcbiAgICAkcGFkZGluZzoyMHB4LFxuICAgIC8vIFNldHMgdGhlIGZvbnQgY29sb3IgYmFzZWQgb24gdGhlIGRhcmtuZXNzIG9mIHRoZSBiZyAmIHJlc2V0cyBoZWFkZXIgbGluZS1oZWlnaHRzIGZvciBwYW5lbHMuIERlZmF1bHQ6ICRwYW5lbC1oZWFkZXItYWRqdXN0XG4gICAgJGFkanVzdDp0cnVlXG4gICk7XG59XG5gYGBcbiovXG5cbi8vZGVtb1xuLmN1c3RvbS1wYW5lbCB7XG4gIEBpbmNsdWRlIHBhbmVsKCRiZzokc3R5bGVndWlkZS1kZW1vLWNvbG9yLCAkcGFkZGluZzoyMHB4LCAkYWRqdXN0OnRydWUpO1xufVxuLy9lbmRkZW1vXG4uZG94aW1pdHktcGFuZWwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAxcmVtICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjZGRkICFpbXBvcnRhbnQ7XG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiAjMmM3ZWYwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgID4ubG9nbyB7XG4gICAgICAgIEBpbmNsdWRlIGZyb20oYnAtc21hbGwpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogMXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAuNXJlbTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bSkge1xuICAgICAgICAgICAgcG9zaXRpb246IGluaXRpYWw7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5iYXNpYy1jYXJkIHtcbiAgJGNhcmQtcGFkZGluZzogMTVweDtcbiAgJGNhcmQtc2hhZG93OiAwcHggMHB4IDVweCAjY2NjO1xuXG4gIGJveC1zaGFkb3c6ICRjYXJkLXNoYWRvdztcblxuICAuYmFzaWMtY2FyZC11cHBlciB7XG4gICAgcGFkZGluZzogJGNhcmQtcGFkZGluZztcblxuICAgIC5jYXJkLWxpbmsge1xuICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgfVxuICB9XG5cbiAgLmJhc2ljLWNhcmQtbG93ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmN2Y3Zjc7XG4gICAgYm94LXNoYWRvdzogJGNhcmQtc2hhZG93O1xuICAgIHBhZGRpbmc6ICRjYXJkLXBhZGRpbmc7XG4gIH1cblxuICAuYmFzaWMtY2FyZC12YWx1ZSB7XG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7XG5cbiAgICAmLnVwIHtcbiAgICAgIGNvbG9yOiAkZ3JlZW4tcHJvO1xuICAgIH1cbiAgICAmLmRvd24ge1xuICAgICAgY29sb3I6ICRyZWQtY29uO1xuICAgIH1cblxuICAgIC8vIGNyZWF0ZSBhIGxvY2FsIGZyYW1lIGZvciBhcnJvdyBwb3NpdGlvblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAuc3RvY2stdHJlbmQge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDEwMCU7XG4gICAgfVxuICB9XG59XG5cbi5zZWdtZW50ZWQtY2FyZCB7XG4gICAgJHRvcC1iYXItaGVpZ2h0OiA1cHg7XG5cbiAgICBib3gtc2hhZG93OjBweCAycHggOHB4ICM4ODg7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6ICR0b3AtYmFyLWhlaWdodDtcblxuICAgIH1cblxuICAgIC8vIFNvbWV0aW1lcyB3ZSBuZWVkIGNvbnRlbnQgbmVzdGxlZCBhdCB0aGUgdGlwcHkgdG9wXG4gICAgJi5mbHVzaC10b3A6YmVmb3JlIHtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgIH1cblxuICAgICYuYmx1ZS1zdHJpcGU6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzIxN2NlYztcbiAgICB9XG5cbiAgICAmLmFib3ZlLWF2ZXJhZ2U6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGdyZWVuLXBybztcbiAgICB9XG5cbiAgICAmLmJlbG93LWF2ZXJhZ2U6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHJlZC1jb247XG4gICAgfVxuXG4gICAgLnNlZ21lbnQ6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxNXB4O1xuICAgIH1cblxuICAgIC5zZWdtZW50IHtcbiAgICAgICAgcGFkZGluZzogMCAyMHB4O1xuICAgIH1cblxuICAgIC5zZWdtZW50Omxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICAgIH1cblxuICAgICYudGlnaHQge1xuICAgICAgICAuc2VnbWVudDpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XG4gICAgICAgIH1cblxuICAgICAgICAuc2VnbWVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAuc2VnbWVudDpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkaXYuY292ZXItaW1hZ2Uge1xuICAgICAgICBoZWlnaHQ6IDEzMHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICB9XG59XG5cbi53YXJuaW5nLXBhbmVsIHtcbiAgQGluY2x1ZGUgcGFuZWwoJGJnOiRiYWNrZ3JvdW5kLXllbGxvdywgJHBhZGRpbmc6MTBweCAxNXB4LCAkYWRqdXN0OnRydWUpO1xuICBib3JkZXItY29sb3I6ICNGRkMxNEU7XG59XG5cbi5wYW5lbC10aGluIHtcbiBAaW5jbHVkZSBwYW5lbCgkcGFkZGluZzoxMHB4KVxufVxuXG4ucGFuZWwgPiAuc3BvbnNvcmVkLWJ1ZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTFweDtcbiAgICByaWdodDogLTFweDtcbiAgICB3aWR0aDogMzBweDtcbn1cblxuLnBhbmVsID4gLmlubGluZS1ib3JkZXItaW1hZ2Uge1xuICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgIGJvdHRvbTogLTEwcHg7XG4gICAgcmlnaHQ6IDE1cHg7XG59XG4iLCIuc2VhcmNoLW1haW4tY29sdW1uIHtcbiAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAkbWlzdC1saWdodDtcbiAgICB9XG59XG5cbi5zZWFyY2gtbGVmdC1jb2x1bW4ge1xuICAgIEBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07IFxuICAgIH1cbn1cblxuaHRtbC5qcyAuc2VhcmNoLWxlZnQtY29sdW1uIHtcbiAgICBAbWVkaWEgI3skbm90LWxhcmdlLXVwfSB7XG4gICAgICAgIEBpbmNsdWRlIHotaW5kZXg7XG5cbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICAgICAgdHJhbnNpdGlvbjogdG9wIDAuNXM7XG4gICAgfVxuXG4gICAgJi5pcy1maXhlZCB7XG4gICAgICAgIEBtZWRpYSAjeyRub3QtbGFyZ2UtdXB9IHtcbiAgICAgICAgICAgIHRvcDogMCU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zZWFyY2gtbWFpbi1jb2x1bW4ge1xuICAgIEBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgIH1cbn1cblxuLnNlYXJjaC1mb3JtLWhlYWRlciB7XG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdygwLCAwLCAwLjMxMjVyZW0sIDAsIHJnYmEoMCwgMCwgMCwgMC41KSk7XG4gICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDIwKTtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1ibHVlO1xuICAgIGJvcmRlci10b3A6IDhweCBzb2xpZCAkYmx1ZS1kYXJrO1xufVxuXG4uc2VhcmNoLWZvcm0taGVhZGVyLWNsb3NlLWJ1dHRvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMHB4O1xuICAgIHJpZ2h0OiAkY29sdW1uLWd1dHRlciAvIDI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGZpbGwgMzAwbXM7XG59XG5cbi5zZWFyY2gtZm9ybS1oZWFkZXItY2xvc2UtYnV0dG9uOmhvdmVyIHtcbiAgICBAZXh0ZW5kIC5saW5rO1xufVxuXG4uc2VhcmNoLWZvcm0taGVhZGVyLXNvcnQtb3B0aW9ucyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IHVuc2V0O1xuICAgIG1heC13aWR0aDogMTAwJTtcbn1cblxuLnNlYXJjaC1mb3JtLWhlYWRlci1idXN5LWluZGljYXRvciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmlzLWJ1c3kgLnNlYXJjaC1mb3JtLWhlYWRlci1idXN5LWluZGljYXRvciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uc2VhcmNoLWZvcm0taGVhZGVyLXN0aWNreS1yb3cge1xuICAgIGxpbmUtaGVpZ2h0OiA0O1xufVxuXG4vLyBvbmx5IHN0aWNrIHRoZSBoZWFkZXIgd2hlbiBpdCdzIGluc2lkZSBhIGZpeGVkLXBvc2l0aW9uIGxlZnQgY29sdW1uXG5odG1sLmpzIC5zZWFyY2gtbGVmdC1jb2x1bW4uaXMtZml4ZWQgLnNlYXJjaC1mb3JtLWhlYWRlci1zdGlja3ktcm93LmlzLXN0dWNrIHtcbiAgICBAaW5jbHVkZSB6LWluZGV4O1xuICAgIEBpbmNsdWRlIGJveC1zaGFkb3coMCwgMCwgMC4zMTI1cmVtLCAwLCByZ2JhKDAsIDAsIDAsIDAuNSkpO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1ibHVlO1xufVxuXG4uc2VhcmNoLWNvbnRyb2wtZmFjZXQge1xuICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYygxNik7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRtaXN0LWxpZ2h0O1xuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbWlzdC1saWdodDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICAgIH1cbn1cblxuLnNlYXJjaC1jb250cm9sLWZhY2V0OmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wOiBub25lO1xuICAgIEBpbmNsdWRlIGZyb20oYnAtbGFyZ2UpIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgfVxufVxuXG4uc2VhcmNoLWNvbnRyb2wtZmFjZXQtaGVhZGluZyB7XG4gICAgQGluY2x1ZGUgaGVhZGluZygnbm9ybWFsJyk7XG59XG5cbi5zZWFyY2gtY29udHJvbC1hY2NvcmRpb24ge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuXG4gICAgLmFjY29yZGlvbi1uYXZpZ2F0aW9uID4gLnNlYXJjaC1jb250cm9sLWZhY2V0LWhlYWRpbmcsXG4gICAgLmFjY29yZGlvbi1uYXZpZ2F0aW9uID4gLnNlYXJjaC1jb250cm9sLWZhY2V0LWhlYWRpbmc6aG92ZXIsXG4gICAgLmFjY29yZGlvbi1uYXZpZ2F0aW9uLmFjdGl2ZSA+IC5zZWFyY2gtY29udHJvbC1mYWNldC1oZWFkaW5nIHtcbiAgICAgICAgQGluY2x1ZGUgaGVhZGluZygnbm9ybWFsJyk7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuXG4gICAgLmFjY29yZGlvbi1uYXZpZ2F0aW9uIHtcbiAgICAgICAgPiAuc2VhcmNoLWNvbnRyb2wtZmFjZXQtY29udGVudCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnNlYXJjaC1jb250cm9sLWZhY2V0LWhlYWRpbmctaWNvbi10b2dnbGUge1xuICAgICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yNXM7XG4gICAgICAgICAgICBmaWxsOiAjNEI0QjRDO1xuICAgICAgICAgICAgaGVpZ2h0OiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5hY3RpdmUgLnNlYXJjaC1jb250cm9sLWZhY2V0LWhlYWRpbmctaWNvbi10b2dnbGUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnNlYXJjaC1hcHAtbWF0Y2hlcy1sYXlvdXQtdmlldyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uc2VhcmNoLWNvbnRlbnQtYnVzeS1pbmRpY2F0b3Ige1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdG9wOiAwcHg7XG4gICAgbGVmdDogMHB4O1xuXG4gICAgLnVzbi1zcGlubmVyIHtcbiAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgICBoZWlnaHQ6IDEwMHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAxMDBweDtcbiAgICB9XG5cbiAgICAvLyBXaGVuIGpRdWVyeSBXYXlwb2ludHMgbWFrZXMgYWRkcyB0aGUgLnN0dWNrIGNsYXNzIHNpZ25hbGxpbmcgdGhhdCBpdCBzaG91bGRcbiAgICAvLyBjaGFuZ2UgdG8gZml4ZWQgcG9zaXRpb25pbmcuXG4gICAgJi5zdHVjayB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgbGVmdDogMTI1cHg7IC8vIG9mZnNldCB0byBhY2NvdW50IGZvciB0aGUgd2lkdGggb2YgdGhlIGxlZnQgY29sdW1uXG4gICAgfVxufVxuXG4uc2VhcmNoLWNvbnRlbnQge1xuICAgIG1hcmdpbjogMDtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXM7XG5cbiAgICA+ICoge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuXG4gICAgfVxufVxuXG4uaXMtYnVzeSAuc2VhcmNoLWNvbnRlbnQge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzO1xufVxuXG50ci5zZWFyY2gtYWQtd3JhcHBlciB7XG4gICAgYmFja2dyb3VuZDogJGdhaW5zYm9ybztcbn1cblxuLnNlYXJjaC1odWQtZmFjZXRzIGJ1dHRvbiB7XG4gICAgcGFkZGluZzogLjQ3NXJlbSAuNjc1cmVtO1xufVxuXG4uc2VhcmNoLWZvcm0taGVhZGVyIHtcbiAgICAuc2VhcmNoLWZvcm0taGVhZGVyLXNvcnQtd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiBcIuKWvlwiO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTIzcHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogIzU1NTU1NTtcbiAgICAgICAgfVxuICAgICAgICBzZWxlY3Qge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMjVweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAud2lkdGgtY2FsY3VsYXRpbmctc2VsZWN0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZVxuICAgIH1cbn1cblxuLnNlYXJjaC1mb3JtLXBhbmVsIHtcbiAgICBwYWRkaW5nOiAxcmVtIDFyZW0gMCAxcmVtO1xuICAgIGJhY2tncm91bmQ6ICNGN0Y3Rjc7XG4gICAgYm94LXNoYWRvdzogMCAwIDVweCAwIHJnYmEoMCwgMCwgMCwgMC40NSk7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xufVxuIiwiLypkb2Ncbi0tLVxudGl0bGU6IEFwcGxpY2F0aW9uXG5uYW1lOiBfYXBwbGljYXRpb25cbmNhdGVnb3J5OiBTZWFyY2ggQXBwbGljYXRpb24gLSBBcHBsaWNhdGlvblxuYXV0aG9yczogSm9uIExld2lzXG5cbnRlbXBsYXRlOlxuICAgIGFwcGxpY2F0aW9uOlxuICAgICAgICBtZXRhOlxuICAgICAgICAgICAgY2Fub25pY2FsX3VybDogL3NlYXJjaF9hcHBsaWNhdGlvbl8tX2FwcGxpY2F0aW9uLmh0bWxcbiAgICAgICAgICAgIHJlbF9wcmV2X3BhZ2VfdXJsOlxuICAgICAgICAgICAgcmVsX25leHRfcGFnZV91cmw6ID9wYWdlPTJcbiAgICAgICAgICAgIHRpdGxlOiBTZWFyY2ggQXBwbGljYXRpb24gRGVtb1xuICAgICAgICAgICAgZGVzY3JpcHRpb246IG1ldGEgZGVzY3JpcHRpb25cbiAgICAgICAgICAgIGtleXdvcmRzOiBbXCJzZWFyY2hcIiwgXCJyYW5raW5nXCJdXG4gICAgICAgICAgICByb2JvdHM6IFwibm8taW5kZXhcIlxuICAgICAgICBkYXRhOlxuICAgICAgICAgICAgcmVzdWx0czpcbiAgICAgICAgICAgICAgICBkYXRhOlxuICAgICAgICAgICAgICAgICAgICBzZWxmX2xpbms6IC9zZWFyY2hfYXBwbGljYXRpb25fLV9hcHBsaWNhdGlvbi5odG1sXG5cbiAgICAgICAgICAgICAgICAgICAgaXRlbXM6XG4gICAgICAgICAgICAgICAgICAgIC0gICBuYW1lOiBJdGVtIDFcbiAgICAgICAgICAgICAgICAgICAgLSAgIG5hbWU6IEl0ZW0gMlxuICAgICAgICAgICAgICAgICAgICAtICAgbmFtZTogSXRlbSAzXG4gICAgICAgICAgICAgICAgICAgIC0gICBuYW1lOiBJdGVtIDRcbiAgICAgICAgICAgICAgICAgICAgLSAgIG5hbWU6IEl0ZW0gNVxuICAgICAgICAgICAgICAgICAgICAtICAgbmFtZTogSXRlbSA2XG4gICAgICAgICAgICAgICAgICAgIC0gICBuYW1lOiBJdGVtIDdcbiAgICAgICAgICAgICAgICAgICAgLSAgIG5hbWU6IEl0ZW0gOFxuICAgICAgICAgICAgICAgICAgICAtICAgbmFtZTogSXRlbSA5XG4gICAgICAgICAgICAgICAgICAgIC0gICBuYW1lOiBJdGVtIDEwXG5cbiAgICAgICAgICAgICAgICAgICAgdG90YWxfaXRlbXM6IDk2MzRcbiAgICAgICAgICAgICAgICAgICAgaXRlbXNfcGVyX3BhZ2U6IDNcbiAgICAgICAgICAgICAgICAgICAgcGFnZV9pbmRleDogMVxuICAgICAgICAgICAgICAgICAgICB0b3RhbF9wYWdlczogMlxuICAgICAgICAgICAgICAgICAgICBuZXh0X2xpbms6IC9zYW1wbGUtZGF0YT9wYWdlPTJcblxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogVGl0bGVcbiAgICAgICAgICAgICAgICAgICAgc3VidGl0bGU6IFN1YnRpdGxlXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBUaGUgcmFua2luZyBkZXNjcmlwdGlvblxuICAgICAgICAgICAgICAgICAgICBpbWFnZV9saW5rOiAvc3RhdGljL2ltZy9jaXJjbGUtYmFkZ2UtaWNvbi5zdmdcblxuICAgICAgICAgICAgICAgICAgICBzb3J0X29wdGlvbnM6XG4gICAgICAgICAgICAgICAgICAgIC0gICB2YWx1ZTogb3B0aW9uLWFcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBPcHRpb24gQVxuICAgICAgICAgICAgICAgICAgICAtICAgdmFsdWU6IG9wdGlvbi1iXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogT3B0aW9uIEJcbiAgICAgICAgICAgICAgICAgICAgc29ydF9ieTogb3B0aW9uLWRcbiAgICAgICAgICAgICAgICAgICAgc29ydF9kaXJlY3Rpb246IGFzY1xuc2VsZWN0b3JzOlxuICAgIC0gLmJ1dHRvbi5zZWFyY2gtZmlsdGVyXG4gICAgLSAubWlzdC1mb3Itc21hbGwtb25seVxuLS0tXG5cbioqIE5vdGU6IHRoZXNlIGFyZSBzdGlsbCBpbiBkZXZlbG9wbWVudCwgc28gZG9uJ3QgdXNlIHRoZW0gaW4gbGl2ZSBhcHBzIHlldC4gKipcblxuYGBgbnVuanVja3NfdGFiXG48ZGl2PlxuICAgIHslXG4gICAgICAgIHZpZXcgXCJzZWFyY2gtYXBwbGljYXRpb25cIiwgYXBwbGljYXRpb24sIGlkPVwiYXBwbGljYXRpb25cIiwgbW9kZWxfb3B0aW9ucz17XG4gICAgICAgICAgICBmb3JtRGF0YToge1xuICAgICAgICAgICAgICAgIGZpbHRlcnM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICdmaXJzdC1uYW1lJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnRmlyc3QgbmFtZSdcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICdsYXN0LW5hbWUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICdMYXN0IG5hbWUnXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIGdyb3VwczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJ25hbWUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiTmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyX2lkczogWydmaXJzdC1uYW1lJywgJ2xhc3QtbmFtZSddLFxuICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcDogJzxzcGFuIGNsYXNzPVwidGV4dC1zbWFsbCB0ZXh0LW11dGVkXCI+WW91ciBuYW1lPC9zcGFuPicsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc19jb2xsYXBzaWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJ2dwYScsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0hpZ2ggU2Nob29sIEdQQScsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc19sb2NrYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzX2xvY2tlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2tfbGluazogJ2h0dHA6Ly93d3cudXNuZXdzLmNvbS91c25ld3Mvc3RvcmUvY29sbGVnZV9jb21wYXNzLmh0bSdcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICd0eXBlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnUHVibGljL1ByaXZhdGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNfbG9ja2FibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc19sb2NrZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NrX2xpbms6ICdodHRwOi8vd3d3LnVzbmV3cy5jb20vdXNuZXdzL3N0b3JlL2NvbGxlZ2VfY29tcGFzcy5odG0nXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc29ydE9wdGlvbnM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiAnb3B0aW9uLWMnLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJPcHRpb24gQ1wiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiAnb3B0aW9uLWQnLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJPcHRpb24gRFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICB2aWV3X29wdGlvbnM9e1xuICAgICAgICAgICAgdW5pdHM6IFsnc2Nob29sJywgJ3NjaG9vbHMnXVxuICAgICAgICB9XG4gICAgJX17JSBlbmR2aWV3ICV9XG48L2Rpdj5cbmBgYFxuXG5gYGBlczZfdGFiXG5cblVTTi5kaXNwYXRjaGVyLnRyaWdnZXIoJ3N1bW1vbjpzZWFyY2g6YXBwbGljYXRpb24tdmlldycsIGZ1bmN0aW9uKCkge1xuICAgIFVTTi5fYXBwbGljYXRpb25WaWV3ID0gJCgnI2FwcGxpY2F0aW9uJykucmV2aXZlVmlldyh7XG4gICAgICAgIGFmdGVyOiBmdW5jdGlvbih2aWV3KSB7XG4gICAgICAgICAgICB2aWV3LnNldEV2ZW50RGlzcGF0Y2hlcihVU04uZGlzcGF0Y2hlcik7XG4gICAgICAgIH1cbiAgICB9KVswXS52aWV3O1xufSk7XG5cbmBgYFxuXG4qL1xuXG4uc2VhcmNoLWFwcGxpY2F0aW9uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5zZWFyY2gtYXBwbGljYXRpb24tY29udGVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5odG1sLmpzIC5zZWFyY2gtYXBwbGljYXRpb24tbGVmdC1jb2x1bW4ge1xuXG4gICAgLy8gTGVmdCBjb2x1bW4gYmVjb21lcyBhIGZpeGVkLXBvc2l0aW9uIG92ZXJsYXkgYXQgc21hbGwgYW5kIG1lZGl1bSB0aGF0IHNsaWRlc1xuICAgIC8vIG92ZXIgdGhlIHBhZ2UgY29udGVudCB3aGVuIHJldmVhbGVkLlxuICAgIEBtZWRpYSAjeyRub3QtbGFyZ2UtdXB9IHtcbiAgICAgICAgQGluY2x1ZGUgei1pbmRleDtcblxuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICBoZWlnaHQ6IDEwMHZoO1xuICAgICAgICB0cmFuc2l0aW9uOiB0b3AgNTAwbXM7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuXG4gICAgICAgICYuaXMtZm9ybS1vdmVybGF5LXZpc2libGUge1xuICAgICAgICAgICAgdG9wOiAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nLXRvcDogMS41cmVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG5cbiAgICAgICAgJi5pcy1maXhlZC10b3Age1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDI1MCk7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWZpeGVkLWJvdHRvbSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB3aWR0aDogcmVtLWNhbGMoMjUwKTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtYWJzb2x1dGUtYm90dG9tIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHdpZHRoOiByZW0tY2FsYygyNTApO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1hYnNvbHV0ZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB3aWR0aDogcmVtLWNhbGMoMjUwKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnNlYXJjaC1hcHBsaWNhdGlvbi1tYWluLWNvbHVtbiB7XG4gICAgQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICAgICAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkICRnYWluc2Jvcm87XG4gICAgfVxufVxuXG4vLyBCVVNZIFNUWUxJTkdcblxuLy8gQW55dGhpbmcgdGhhdCBzaG91bGQgZ28gc2VtaS10cmFuc3BhcmVudCB3aGVuIHRoZSBhcHAgaXMgYnVzeSBjYW4gaGF2ZVxuLy8gdGhpcyBjbGFzcywgYW5kIG9wYWNpdHkgd2lsbCBiZSBhcHBsaWVkIHRvIGl0IGFwcHJvcHJpYXRlbHkuXG4uc2VhcmNoLWFwcGxpY2F0aW9uLWJ1c3ktaW5kaWNhdG9yIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXM7XG59XG5cbi5pcy1idXN5Om5vdCguaXMtcGFnaW5nKSAuc2VhcmNoLWFwcGxpY2F0aW9uLWJ1c3ktaW5kaWNhdG9yIHtcbiAgICBvcGFjaXR5OiAwLjU7XG59XG5cbi8vIFJFU1VMVFMgSEVBREVSXG5cbi5zZWFyY2gtYXBwbGljYXRpb24tcmVzdWx0cy1oZWFkZXIge1xuICAgIEBpbmNsdWRlIGZsZXhib3goKTtcbiAgICBAaW5jbHVkZSBmbGV4LXdyYXAod3JhcCk7XG4gICAgQGluY2x1ZGUganVzdGlmeS1jb250ZW50KHNwYWNlLWJldHdlZW4pO1xuICAgIEBpbmNsdWRlIGFsaWduLWl0ZW1zKGNlbnRlcik7XG5cbiAgICBoZWlnaHQ6IDRyZW07XG5cbiAgICAmLmlzLWZpeGVkIHtcbiAgICAgICAgQG1lZGlhICN7JG5vdC1sYXJnZS11cH0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgei1pbmRleDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYm94LXNoYWRvdygwLCAwLCA1cHgsIDAsIHJnYmEoMCwwLDAsLjUpKTtcblxuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zZWFyY2gtYXBwbGljYXRpb24tcmVzdWx0cy1oZWFkZXItb3B0aW9ucyB7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIEBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4Ym94KCk7XG4gICAgICAgIEBpbmNsdWRlIGFsaWduLWl0ZW1zKGJhc2VsaW5lKTtcbiAgICB9XG59XG5cbi8vIFJFU1VMVFMgQ09VTlRcblxuLnNlYXJjaC1jb3VudC12aWV3IHtcbiAgICBAaW5jbHVkZSBmbGV4Ym94KCk7XG4gICAgQGluY2x1ZGUganVzdGlmeS1jb250ZW50KHNwYWNlLWJldHdlZW4pO1xuICAgIEBpbmNsdWRlIGFsaWduLWl0ZW1zKGJhc2VsaW5lKTtcbiAgICBAaW5jbHVkZSBmbGV4LWJhc2lzKDEwMCUpO1xuXG4gICAgQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYmFzaXMoYXV0byk7XG4gICAgfVxuXG4gICAgYnV0dG9uIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAycmVtICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDJyZW0gIWltcG9ydGFudDtcblxuICAgICAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIFNPUlRJTkcgT1BUSU9OU1xuXG4uc2VhcmNoLXNvcnQtdmlldyB7XG4gICAgQGluY2x1ZGUgZmxleGJveCgpO1xuICAgIEBpbmNsdWRlIGFsaWduLWl0ZW1zKGJhc2VsaW5lKTtcbn1cblxuLy8gRElTUExBWSBNT0RFIE9QVElPTlNcblxuLnNlYXJjaC1tb2RlLW9wdGlvbnMge1xuICAgIEBpbmNsdWRlIGZsZXhib3goKTtcbiAgICBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYXJvdW5kKTtcblxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ2FpbnNib3JvO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkZ2FpbnNib3JvO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG5cbiAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG59XG5cbi5zZWFyY2gtbW9kZS1vcHRpb24ge1xuICAgIEBpbmNsdWRlIGZsZXgtZ3JvdygxKTtcblxuICAgIHBhZGRpbmctdG9wOiAxcmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGdhaW5zYm9ybztcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIH1cblxuICAgIEBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgfVxufVxuXG4vLyBTTUFMTCBTRUFSQ0ggRk9STSBIRUFERVJcblxuLnNlYXJjaC1zbWFsbC1mb3JtLWhlYWRlci1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KDAsIDAsIDAuMzEyNXJlbSwgMCwgcmdiYSgwLCAwLCAwLCAwLjUpKTtcblxuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWJsdWU7XG4gICAgcGFkZGluZy10b3A6IDFyZW07XG59XG5cbi5zZWFyY2gtc21hbGwtZm9ybS1oZWFkZXItc29ydCB7XG4gICAgQGluY2x1ZGUgZmxleGJveCgpO1xufVxuXG4uc2VhcmNoLXNtYWxsLWZvcm0taGVhZGVyLWJ1dHRvbnMge1xuICAgIEBpbmNsdWRlIGZsZXhib3goKTtcbiAgICBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG4gICAgQGluY2x1ZGUgYWxpZ24taXRlbXMoYmFzZWxpbmUpO1xuXG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtYmx1ZTtcbiAgICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcblxuICAgICYuaXMtZml4ZWQge1xuICAgICAgICBAaW5jbHVkZSB6LWluZGV4O1xuICAgICAgICBAaW5jbHVkZSBib3gtc2hhZG93KDAsIDAsIDAuMzEyNXJlbSwgMCwgcmdiYSgwLCAwLCAwLCAwLjUpKTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn1cblxuLy8gRklMVEVSIEJVVFRPTlNcblxuLnNlYXJjaC1maWx0ZXItbm8tcmVzdWx0cyB7XG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5zZWFyY2gtZmlsdGVyLWJ1dHRvbnMtdmlldyAubWlzdC1mb3Itc21hbGwtb25seSB7XG4gICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtaXN0O1xuICAgIH1cbn1cblxuLmJ1dHRvbi5zZWFyY2gtZmlsdGVyIHtcbiAgICBwYWRkaW5nOiAwLjQ3NXJlbSAwLjY3NXJlbTtcbiAgICBmb250LXNpemU6IDAuNzVyZW07XG59XG5cbi50b3VjaCB7XG4gICAgLnNlYXJjaC1maWx0ZXItYnV0dG9ucy1jb250YWluZXIge1xuICAgICAgICBAbWVkaWEgI3skbm90LWxhcmdlLXVwfSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNlYXJjaC1maWx0ZXItYnV0dG9ucy12aWV3IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICY6YmVmb3JlLCAmOmFmdGVyIHtcbiAgICAgICAgICAgIEBtZWRpYSAjeyRub3QtbGFyZ2UtdXB9IHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxNXB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNlYXJjaC1maWx0ZXItYnV0dG9ucy1jb250ZW50IHtcbiAgICAgICAgQG1lZGlhICN7JG5vdC1sYXJnZS11cH0ge1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIGJ1dHRvbjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBAbWVkaWEgI3skbm90LWxhcmdlLXVwfSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBhOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgQG1lZGlhICN7JG5vdC1sYXJnZS11cH0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTVweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnNlYXJjaC1odWQtYnVzeS1zcGlubmVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uaXMtYnVzeSAuc2VhcmNoLWh1ZC1idXN5LXNwaW5uZXIge1xuICAgIGRpc3BsYXk6IGluaXRpYWw7XG4gICAgd2lkdGg6IDJyZW07XG4gICAgaGVpZ2h0OiAycmVtO1xuICAgIEBpbmNsdWRlIGFsaWduLXNlbGYoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmcm9tKGJwLWxhcmdlKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4uc2VhcmNoLXJlc3VsdHMtYnVzeS1zcGlubmVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuLmlzLWJ1c3kgLnNlYXJjaC1yZXN1bHRzLWJ1c3ktc3Bpbm5lciB7XG4gICAgQGluY2x1ZGUgZnJvbShicC1sYXJnZSkge1xuICAgICAgICBkaXNwbGF5OiBpbml0aWFsO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHRvcDogNTBweDtcbiAgICAgICAgbGVmdDogMHB4O1xuICAgICAgICAudXNuLXNwaW5uZXIge1xuICAgICAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDQwdmg7XG4gICAgICAgIH1cbiAgICAgICAgJi5zdHVjayB7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICBsZWZ0OiAxMjVweDsgLy8gb2Zmc2V0IHRvIGFjY291bnQgZm9yIHRoZSB3aWR0aCBvZiB0aGUgbGVmdCBjb2x1bW5cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gVEFCTEUgVklFVyBTVFlMRVNcbi50YWJsZS12aWV3LXJvdy1wYWQge1xuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMXJlbSAwcmVtO1xuICAgIH1cbn1cbiIsIi8qZG9jXG4tLS1cbnRpdGxlOiBSZXN1bHRzXG5uYW1lOiBfcmVzdWx0c1xuY2F0ZWdvcnk6IFNlYXJjaCBBcHBsaWNhdGlvbiAtIFJlc3VsdHNcbmF1dGhvcnM6IEpvbiBMZXdpc1xuXG50ZW1wbGF0ZTpcbiAgICByZXN1bHRzOlxuICAgICAgICBkYXRhOlxuICAgICAgICAgICAgaXRlbXM6XG4gICAgICAgICAgICAtICAgbmFtZTogSXRlbSAxXG4gICAgICAgICAgICAtICAgbmFtZTogSXRlbSAyXG4gICAgICAgICAgICAtICAgbmFtZTogSXRlbSAzXG4gICAgICAgICAgICAtICAgbmFtZTogSXRlbSA0XG4gICAgICAgICAgICAtICAgbmFtZTogSXRlbSA1XG4gICAgICAgICAgICAtICAgbmFtZTogSXRlbSA2XG4gICAgICAgICAgICAtICAgbmFtZTogSXRlbSA3XG4gICAgICAgICAgICAtICAgbmFtZTogSXRlbSA4XG4gICAgICAgICAgICAtICAgbmFtZTogSXRlbSA5XG4gICAgICAgICAgICAtICAgbmFtZTogSXRlbSAxMFxuICAgICAgICAgICAgdG90YWxfaXRlbXM6IDEwXG4gICAgICAgICAgICBpdGVtc19wZXJfcGFnZTogM1xuICAgICAgICAgICAgcGFnZV9pbmRleDogMVxuICAgICAgICAgICAgdG90YWxfcGFnZXM6IDJcbiAgICAgICAgICAgIG5leHRfbGluazogL3NhbXBsZS1kYXRhP3BhZ2U9MlxuLS0tXG5cbmBgYGh0bWxfZXhhbXBsZVxuPGRpdiBzdHlsZT1cIm1hcmdpbi10b3A6IDFyZW07XCI+XG4gICAgPHVsIGNsYXNzPVwiYnV0dG9uLWdyb3VwIHJhZGl1cyBibG9jay1sb29zZXIgYm9yZGVyLWJvdHRvbSBiYXItbG9vc2VcIiBzdHlsZT1cImRpc3BsYXk6IGlubGluZS1ibG9jaztcIj5cbiAgICAgICAgPGxpPjxidXR0b24gZGF0YS1qcy1pZD1cImNhcmRzLW1vZGVcIiBjbGFzcz1cImJ1dHRvbiBzZWNvbmRhcnlcIj5DYXJkczwvYnV0dG9uPjwvbGk+XG4gICAgICAgIDxsaT48YnV0dG9uIGRhdGEtanMtaWQ9XCJ0YWJsZS1tb2RlXCIgY2xhc3M9XCJidXR0b24gc2Vjb25kYXJ5XCI+VGFibGU8L2J1dHRvbj48L2xpPlxuICAgIDwvdWw+XG5cbiAgICA8dWwgY2xhc3M9XCJidXR0b24tZ3JvdXAgcmFkaXVzIGJsb2NrLWxvb3NlciBib3JkZXItYm90dG9tIGJhci1sb29zZVwiIHN0eWxlPVwiZGlzcGxheTogaW5saW5lLWJsb2NrO1wiPlxuICAgICAgICA8bGk+PGJ1dHRvbiBkYXRhLWpzLWlkPVwiYnVzeVwiIGNsYXNzPVwiYnV0dG9uIHNlY29uZGFyeVwiPkJ1c3k8L2J1dHRvbj48L2xpPlxuICAgICAgICA8bGk+PGJ1dHRvbiBkYXRhLWpzLWlkPVwibm90LWJ1c3lcIiBjbGFzcz1cImJ1dHRvbiBzZWNvbmRhcnlcIj5Ob3QgQnVzeTwvYnV0dG9uPjwvbGk+XG4gICAgPC91bD5cblxuICAgIHslIHZpZXcgXCJzZWFyY2gtcmVzdWx0c1wiLCByZXN1bHRzLCBpZD1cInJlc3VsdHNcIiwgdmlld19vcHRpb25zPXsgZGVidWc6IHRydWUsIG1vZGU6ICdsaXN0JyB9ICV9eyUgZW5kdmlldyAlfVxuXG4gICAgPGJ1dHRvbiBkYXRhLWpzLWlkPVwibW9yZVwiIGNsYXNzPVwiYnV0dG9uIHNlY29uZGFyeSByYWRpdXNcIj5Nb3JlIFJlc3VsdHM8L2J1dHRvbj5cbjwvZGl2PlxuXG48c2NyaXB0PlxuICAgIFVTTi5yZWFkeSgpLnRoZW4oZnVuY3Rpb24oKSB7XG4gICAgICAgIFVTTi5kaXNwYXRjaGVyLnRyaWdnZXIoJ3N1bW1vbjpzZWFyY2g6YXBwbGljYXRpb24tdmlldycsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyICRyZXN1bHRzID0gJCgnI3Jlc3VsdHMnKTtcblxuICAgICAgICAgICAgJHJlc3VsdHMucmV2aXZlVmlldyh7XG4gICAgICAgICAgICAgICAgYWZ0ZXI6IGZ1bmN0aW9uKHZpZXcpIHtcbiAgICAgICAgICAgICAgICAgICAgdmlldy5ldmVudERpc3BhdGNoZXIgPSBVU04uZGlzcGF0Y2hlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHZhciByZXN1bHRzVmlldyA9IFVTTi5fcmVzdWx0c1ZpZXcgPSAkcmVzdWx0c1swXS52aWV3O1xuXG4gICAgICAgICAgICAkKCdbZGF0YS1qcy1pZD1jYXJkcy1tb2RlXScpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdHNWaWV3LnNldE1vZGUoJ2xpc3QnKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAkKCdbZGF0YS1qcy1pZD10YWJsZS1tb2RlXScpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdHNWaWV3LnNldE1vZGUoJ3RhYmxlJyk7ICAgIFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICQoJ1tkYXRhLWpzLWlkPWJ1c3ldJykub24oJ2NsaWNrJywgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0c1ZpZXcuc2V0SXNCdXN5KHRydWUpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICQoJ1tkYXRhLWpzLWlkPW5vdC1idXN5XScpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdHNWaWV3LnNldElzQnVzeShmYWxzZSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgJCgnW2RhdGEtanMtaWQ9bW9yZV0nKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB2YXIgaXRlbXMgPSBbXTtcbiAgICAgICAgICAgICAgICB2YXIgaSA9IFVTTi5fcmVzdWx0c1ZpZXcubW9kZWwuaXRlbXMubGVuZ3RoO1xuXG4gICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCAxMDsgaisrKSB7XG4gICAgICAgICAgICAgICAgICAgIGkrKztcbiAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7IG5hbWU6IFwiSXRlbSBcIiArIGkgfSlcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXN1bHRzVmlldy5tb2RlbC5pdGVtcy5hZGQoaXRlbXMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuPC9zY3JpcHQ+XG5gYGBcbiovXG5cbi5zZWFyY2gtcmVzdWx0cy12aWV3IHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXM7XG5cbiAgICAmLmlzLWJ1c3kge1xuICAgICAgICBvcGFjaXR5OiAwLjI1O1xuICAgIH1cbn1cblxuIiwiLypkb2Ncbi0tLVxudGl0bGU6IE92ZXJ2aWV3XG5uYW1lOiBfZmlsdGVyLW92ZXJ2aWV3XG5jYXRlZ29yeTogU2VhcmNoIEFwcGxpY2F0aW9uIC0gRmlsdGVyc1xuYXV0aG9yczogSm9uIExld2lzXG4tLS1cblxuVGhlc2UgYXJlIGxpdmUgZGVtb3Mgb2YgdGhlIHNlYXJjaCBmaWx0ZXJzIGF2YWlsYWJsZSB0byBvdXIgc2VhcmNoIGFwcGxpY2F0aW9uXG5wYWdlcyBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgSlNPTiBmaWx0ZXIgbW9kZWxzIHRoYXQgZHJpdmUgdGhlbS4gRmVlbCBmcmVlIHRvIFxucGxheSB3aXRoIHRoZSBKU09OIGRhdGEgaW4gdGhlIFwiTW9kZWxcIiB3aW5kb3dzIHRvIGdldCBmYW1pbGlhciB3aXRoIHRoZSB2YXJpb3VzXG5maWx0ZXJzLlxuXG5UaGUgXCJRdWVyeVwiIHdpbmRvd3Mgc2hvdyB3aGF0IFVSTCBxdWVyeSBwYXJhbWV0ZXJzIHdpbGwgYmUgc3VibWl0dGVkIHdoZW5cbnNvbWVvbmUgdXNlcyBhIGdpdmVuIGZpbHRlci5cblxuVGhlIFwiVGFnc1wiIGFyZWEgc2hvd3Mgd2hhdCBhY3RpdmUgZmlsdGVyIGJ1dHRvbnMgKHRhZ3MpIHdpbGwgc2hvdyB1cCBhYm92ZSBzZWFyY2ggcmVzdWx0c1xud2hlbiBzb21lb25lIHNldHMgYSBmaWx0ZXIsIGJhc2VkIG9uIHRoYXQgZmlsdGVyJ3MgdGFnIHNldHRpbmdzLlxuXG5KU09OIGJsb2JzIGZvciB2YXJpb3VzIGZpbHRlciB0eXBlcyBzaGFyZSB0aGVzZSBjb21tb24gYXR0cmlidXRlcyAob3B0aW9uYWwgdW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQpOlxuXG48cHJlPlxue1xuICAgIFwiaWRcIjogKHJlcXVpcmVkKSB1bmlxdWUgSUQgZm9yIHRoZSBmaWx0ZXIuIFVzZWQgd2hlbiBnZW5lcmF0aW5nIHF1ZXJ5IHBhcmFtZXRlcnMuXG4gICAgXCJ0eXBlXCI6IChyZXF1aXJlZCkgaS5lLiAndGV4dCcsICdjaGVja2JveCcsIGV0Yy5cbiAgICBcInZhbHVlXCI6IChyZXF1aXJlZCkgdGhlIHZhbHVlIHNldCBpbiB0aGUgZmlsdGVyLiBJbml0aWFsIHZhbHVlcyBhcmUgcmVxdWlyZWQuXG4gICAgXCJsYWJlbFwiOiBsYWJlbCB0ZXh0IGZvciB0aGUgZmlsdGVyLlxuICAgIFwiaGVscFwiOiBoZWxwIHRleHQgc2hvd24gYmVsb3cgdGhlIGZpbHRlci5cbiAgICBcImhpZGRlblwiOiB0cnVlIGlmIHRoZSBmaWx0ZXIgc2hvdWxkIGJlIGhpZGRlbi5cbiAgICBcImRpc2FibGVkXCI6IHRydWUgaWYgYSB1c2VyIHNob3VsZCBub3QgYmUgYWJsZSB0byBpbnRlcmFjdCB3aXRoIHRoaXMgZmlsdGVyLlxuICAgIFwidGFnX2hpZGRlblwiOiB0cnVlIGlmIHRoaXMgZmlsdGVyIHNob3VsZCBub3QgdHJpZ2dlciBhIHRhZyBidXR0b24gd2hlbiBhY3RpdmUuXG4gICAgXCJ0YWdfdGV4dFwiOiBvdmVycmlkZSB0ZXh0IGZvciB0aGUgdGFnIGJ1dHRvbiB3aGVuIGFjdGl2ZS5cbn1cbjwvcHJlPlxuXG5JbmRpdmlkdWFsIGZpbHRlciB0eXBlcyBhZGQgdGhlaXIgb3duIG90aGVyIEpTT04gYXR0cmlidXRlcy5cblxuKi9cblxuXG4vKmRvY1xuLS0tXG50aXRsZTogV2VpZ2h0c1xubmFtZTogd2VpZ2h0c1xuY2F0ZWdvcnk6IFNlYXJjaCBBcHBsaWNhdGlvbiAtIEZpbHRlcnNcbmF1dGhvcnM6IFJvYiBNaWxsZXIsIEpvbiBMZXdpc1xudGVtcGxhdGU6XG4gICAgbW9kZWw6XG4gICAgICAgIGlkOiBlbnJvbGxtZW50LXdlaWdodHNcbiAgICAgICAgdHlwZTogd2VpZ2h0c1xuICAgICAgICB2YWx1ZTogM1xuLS0tXG5cbmBgYGh0bWxfZXhhbXBsZVxueyUgdmlldyBcInNlYXJjaC1maWx0ZXItZGVtb1wiLCBtb2RlbCwgaWQ9XCJ3ZWlnaHRzLWZpbHRlclwiICV9eyUgZW5kdmlldyAlfVxuXG48c2NyaXB0PlxuICAgIFVTTi5yZWFkeSgpLnRoZW4oZnVuY3Rpb24oKSB7XG4gICAgICAgIFVTTi5kaXNwYXRjaGVyLnRyaWdnZXIoJ3N1bW1vbjpzZWFyY2g6ZmlsdGVyLWRlbW8tdmlldycsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgJCgnI3dlaWdodHMtZmlsdGVyJykucmV2aXZlVmlldygpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbjwvc2NyaXB0PlxuYGBgXG4qL1xuXG4uc2VhcmNoLWZpbHRlci13ZWlnaHRzIHtcbiAgICBcbiAgICBib3JkZXI6IDFweCAkZ2FpbnNib3JvIHNvbGlkO1xuICAgIHBhZGRpbmc6IHJlbS1jYWxjKDYpIHJlbS1jYWxjKDEwKSByZW0tY2FsYygzMCkgcmVtLWNhbGMoMTApO1xuXG4gICAgJiBsYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB9XG4gICAgXG4gICAgaW5wdXQge1xuICAgICAgICAmICsgc3ZnIHtcbiAgICAgICAgICAgIGZpbGw6ICRhbHVtaW51bTtcbiAgICAgICAgICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogcmVtLWNhbGMoMTYpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi53ZWlnaHQtaGlnaGxpZ2h0ICsgc3ZnIHtcbiAgICAgICAgICAgIGZpbGw6ICRvcmFuZ2UtbGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmW3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfSAgXG59XG5cblxuLypkb2Ncbi0tLVxudGl0bGU6IENoZWNrYm94XG5uYW1lOiBjaGVja2JveFxuY2F0ZWdvcnk6IFNlYXJjaCBBcHBsaWNhdGlvbiAtIEZpbHRlcnNcbmF1dGhvcnM6IFBhYmxvIExhem8sIEpvbiBMZXdpc1xudGVtcGxhdGU6XG4gICAgbW9kZWw6XG4gICAgICAgIGlkOiBibHVlXG4gICAgICAgIHR5cGU6IGNoZWNrYm94LWdyb3VwXG4gICAgICAgIG9wdGlvbnM6XG4gICAgICAgIC0gICBsYWJlbDogQmx1ZVxuICAgICAgICAgICAgdmFsdWU6IHRydWVcbiAgICAgICAgICAgIGhlbHA6IEhlcmUgaXMgc29tZSBoZWxwIHRleHRcbiAgICAgICAgICAgIGNvdW50OiAzXG4tLS1cblxuKFRoaXMgaXMgcmVhbGx5IGp1c3QgYSBjaGVja2JveC1ncm91cCB3aXRoIG9ubHkgb25lIG9wdGlvbi4pXG5cbmBgYGh0bWxfZXhhbXBsZVxueyUgdmlldyBcInNlYXJjaC1maWx0ZXItZGVtb1wiLCBtb2RlbCwgaWQ9XCJjaGVja2JveC1maWx0ZXJcIiAlfXslIGVuZHZpZXcgJX1cblxuPHNjcmlwdD5cbiAgICBVU04ucmVhZHkoKS50aGVuKGZ1bmN0aW9uKCkge1xuICAgICAgICBVU04uZGlzcGF0Y2hlci50cmlnZ2VyKCdzdW1tb246c2VhcmNoOmZpbHRlci1kZW1vLXZpZXcnLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICQoJyNjaGVja2JveC1maWx0ZXInKS5yZXZpdmVWaWV3KCk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuPC9zY3JpcHQ+XG5gYGBcbiovXG5cblxuLypkb2Ncbi0tLVxudGl0bGU6IENoZWNrYm94IEdyb3VwXG5uYW1lOiBjaGVja2JveC1ncm91cFxuY2F0ZWdvcnk6IFNlYXJjaCBBcHBsaWNhdGlvbiAtIEZpbHRlcnNcbmF1dGhvcnM6IEpvbiBMZXdpc1xudGVtcGxhdGU6XG4gICAgZGVtb190eXBlOiBmaWx0ZXJcbiAgICBtb2RlbDpcbiAgICAgICAgaWQ6IGJhZGdlXG4gICAgICAgIHR5cGU6IGNoZWNrYm94LWdyb3VwXG4gICAgICAgIHZhbHVlOiBbJ2dvbGQnLCAnc2lsdmVyJ11cbiAgICAgICAgbGFiZWw6IEJhZGdlc1xuICAgICAgICBvcHRpb25zOlxuICAgICAgICAtICAgbGFiZWw6IEdvbGRcbiAgICAgICAgICAgIHZhbHVlOiBnb2xkXG4gICAgICAgICAgICBjb3VudDogM1xuICAgICAgICAtICAgbGFiZWw6IFNpbHZlclxuICAgICAgICAgICAgdmFsdWU6IHNpbHZlclxuICAgICAgICAgICAgY291bnQ6IDlcbiAgICAgICAgLSAgIGxhYmVsOiBCcm9uemVcbiAgICAgICAgICAgIHZhbHVlOiBicm9uemVcbiAgICAgICAgICAgIGNvdW50OiA0XG4gICAgICAgICAgICBoZWxwOiBUaGUgc3Ryb25nZXN0IG9mIHRoZXNlIG1ldGFsc1xuLS0tXG5cbmBgYGh0bWxfZXhhbXBsZVxueyUgdmlldyBcInNlYXJjaC1maWx0ZXItZGVtb1wiLCBtb2RlbCwgaWQ9XCJjaGVja2JveC1ncm91cC1maWx0ZXJcIiAlfXslIGVuZHZpZXcgJX1cblxuPHNjcmlwdD5cbiAgICBVU04ucmVhZHkoKS50aGVuKGZ1bmN0aW9uKCkge1xuICAgICAgICBVU04uZGlzcGF0Y2hlci50cmlnZ2VyKCdzdW1tb246c2VhcmNoOmZpbHRlci1kZW1vLXZpZXcnLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICQoJyNjaGVja2JveC1ncm91cC1maWx0ZXInKS5yZXZpdmVWaWV3KCk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuPC9zY3JpcHQ+XG5gYGBcbiovXG5cblxuLypkb2Ncbi0tLVxudGl0bGU6IFJhZGlvIExpc3Rcbm5hbWU6IHJhZGlvLWxpc3RcbmNhdGVnb3J5OiBTZWFyY2ggQXBwbGljYXRpb24gLSBGaWx0ZXJzXG5hdXRob3JzOiBKb24gTGV3aXNcbnRlbXBsYXRlOlxuICAgIGRlbW9fdHlwZTogZmlsdGVyXG4gICAgbW9kZWw6XG4gICAgICAgIGlkOiBiYWRnZVxuICAgICAgICB0eXBlOiByYWRpby1saXN0XG4gICAgICAgIHZhbHVlOiBnb2xkXG4gICAgICAgIGxhYmVsOiBCYWRnZVxuICAgICAgICBvcHRpb25zOlxuICAgICAgICAtICAgbGFiZWw6IEdvbGRcbiAgICAgICAgICAgIHZhbHVlOiBnb2xkXG4gICAgICAgICAgICBjb3VudDogM1xuICAgICAgICAtICAgbGFiZWw6IFNpbHZlclxuICAgICAgICAgICAgdmFsdWU6IHNpbHZlclxuICAgICAgICAgICAgY291bnQ6IDlcbiAgICAgICAgLSAgIGxhYmVsOiBCcm9uemVcbiAgICAgICAgICAgIHZhbHVlOiBicm9uemVcbiAgICAgICAgICAgIGNvdW50OiA0XG4gICAgICAgICAgICBoZWxwOiBUaGUgc3Ryb25nZXN0IG9mIHRoZXNlIG1ldGFsc1xuLS0tXG5cbllvdSBjYW4gYWRkIHRoZSBgYGBcImdyaWRcIjogdHJ1ZWBgYCBvcHRpb24gdG8gZGlzcGxheSB0aGUgcmFkaW8gbGlzdCBhcyBhIHR3by1jb2x1bW4gZ3JpZC5cblxuKi9cblxuXG4vKmRvY1xuLS0tXG50aXRsZTogU2VsZWN0XG5uYW1lOiBzZWxlY3RcbmNhdGVnb3J5OiBTZWFyY2ggQXBwbGljYXRpb24gLSBGaWx0ZXJzXG5hdXRob3JzOiBQYWJsbyBMYXpvLCBKb24gTGV3aXNcbnRlbXBsYXRlOlxuICAgIGRlbW9fdHlwZTogZmlsdGVyXG4gICAgbW9kZWw6XG4gICAgICAgIGlkOiBiYWRnZVxuICAgICAgICB0eXBlOiBzZWxlY3RcbiAgICAgICAgdmFsdWU6IGdvbGRcbiAgICAgICAgbGFiZWw6IEJhZGdlXG4gICAgICAgIGVtcHR5X29wdGlvbjogXCJBbGwgQmFkZ2VzXCJcbiAgICAgICAgb3B0aW9uczpcbiAgICAgICAgLSAgIGxhYmVsOiBHb2xkXG4gICAgICAgICAgICB2YWx1ZTogZ29sZFxuICAgICAgICAtICAgbGFiZWw6IFNpbHZlclxuICAgICAgICAgICAgdmFsdWU6IHNpbHZlclxuICAgICAgICAtICAgbGFiZWw6IEJyb256ZVxuICAgICAgICAgICAgdmFsdWU6IGJyb256ZVxuLS0tXG5cbiovXG5cblxuLypkb2Ncbi0tLVxudGl0bGU6IFRleHRcbm5hbWU6IHRleHRcbmNhdGVnb3J5OiBTZWFyY2ggQXBwbGljYXRpb24gLSBGaWx0ZXJzXG5hdXRob3JzOiBQYWJsbyBMYXpvLCBKb24gTGV3aXNcbnRlbXBsYXRlOlxuICAgIG1vZGVsOlxuICAgICAgICBpZDogbmFtZVxuICAgICAgICB0eXBlOiB0ZXh0XG4gICAgICAgIHZhbHVlOiBcIlwiXG4gICAgICAgIGxhYmVsOiBOYW1lXG4gICAgICAgIHBsYWNlaG9sZGVyOiBUeXBlIGEgbmFtZVxuICAgICAgICBoZWxwOiBIZWxwIHRleHRcbi0tLVxuXG5gYGBodG1sX2V4YW1wbGVcbnslIHZpZXcgXCJzZWFyY2gtZmlsdGVyLWRlbW9cIiwgbW9kZWwsIGlkPVwidGV4dC1maWx0ZXJcIiAlfXslIGVuZHZpZXcgJX1cblxuPHNjcmlwdD5cbiAgICBVU04ucmVhZHkoKS50aGVuKGZ1bmN0aW9uKCkge1xuICAgICAgICBVU04uZGlzcGF0Y2hlci50cmlnZ2VyKCdzdW1tb246c2VhcmNoOmZpbHRlci1kZW1vLXZpZXcnLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICQoJyN0ZXh0LWZpbHRlcicpLnJldml2ZVZpZXcoKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG48L3NjcmlwdD5cbmBgYFxuKi9cblxuXG4vKmRvY1xuLS0tXG50aXRsZTogTG9jYXRpb25cbm5hbWU6IGxvY2F0aW9uXG5jYXRlZ29yeTogU2VhcmNoIEFwcGxpY2F0aW9uIC0gRmlsdGVyc1xuYXV0aG9yczogSm9uIExld2lzXG50ZW1wbGF0ZTpcbiAgICBtb2RlbDpcbiAgICAgICAgaWQ6IGxvY2F0aW9uXG4gICAgICAgIHR5cGU6IGxvY2F0aW9uXG4gICAgICAgIGxhYmVsOiBMb2NhdGlvblxuICAgICAgICBwbGFjZWhvbGRlcjogQ2l0eSwgU3RhdGUgb3IgWklQXG4gICAgICAgIGhlbHA6IEhlbHAgdGV4dFxuICAgICAgICBlbXB0eV9vcHRpb246IFwiQWxsIERpc3RhbmNlc1wiXG4gICAgICAgIG9wdGlvbnM6IFt7IHZhbHVlOiAnNScsIGxhYmVsOiBcIldpdGhpbiA1IE1pbGVzXCIgfSwgeyB2YWx1ZTogJzUwJywgbGFiZWw6IFwiV2l0aGluIDUwIE1pbGVzXCIgfV1cbiAgICAgICAgdmFsdWU6XG4gICAgICAgICAgICBsb2NhdGlvbjogMjIyMDFcbiAgICAgICAgICAgIGRpc3RhbmNlOiA1XG4tLS1cblxuYGBgaHRtbF9leGFtcGxlXG57JSB2aWV3IFwic2VhcmNoLWZpbHRlci1kZW1vXCIsIG1vZGVsLCBpZD1cImxvY2F0aW9uLWZpbHRlclwiICV9eyUgZW5kdmlldyAlfVxuXG48c2NyaXB0PlxuICAgIFVTTi5yZWFkeSgpLnRoZW4oZnVuY3Rpb24oKSB7XG4gICAgICAgIFVTTi5kaXNwYXRjaGVyLnRyaWdnZXIoJ3N1bW1vbjpzZWFyY2g6ZmlsdGVyLWRlbW8tdmlldycsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgJCgnI2xvY2F0aW9uLWZpbHRlcicpLnJldml2ZVZpZXcoKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG48L3NjcmlwdD5cbmBgYFxuKi9cblxuXG4vKmRvY1xuLS0tXG50aXRsZTogQ2F0ZWdvcnlcbm5hbWU6IGNhdGVnb3J5XG5jYXRlZ29yeTogU2VhcmNoIEFwcGxpY2F0aW9uIC0gRmlsdGVyc1xuYXV0aG9yczogSm9uIExld2lzXG50ZW1wbGF0ZTpcbiAgICBkZW1vX3R5cGU6IGZpbHRlclxuICAgIG1vZGVsOlxuICAgICAgICBpZDogaW5kdXN0cnlcbiAgICAgICAgdHlwZTogY2F0ZWdvcnlcbiAgICAgICAgdmFsdWU6IFwiXCJcbiAgICAgICAgbGFiZWw6IEluZHVzdHJ5XG4gICAgICAgIGxldmVsczogM1xuICAgICAgICBlbXB0eV9vcHRpb25zOlxuICAgICAgICAtICAgU2VsZWN0IEluZHVzdHJ5XG4gICAgICAgIC0gICBTZWxlY3QgU2VjdG9yXG4gICAgICAgIC0gICBTZWxlY3QgU3BlY2lhbHR5XG4gICAgICAgIG9wdGlvbnM6XG4gICAgICAgIC0gICBsYWJlbDogRW5lcmd5IE1pbmVyYWxzXG4gICAgICAgICAgICB2YWx1ZTogZW5lcmd5LW1pbmVyYWxzXG4gICAgICAgICAgICBvcHRpb25zOlxuICAgICAgICAgICAgLSAgIGxhYmVsOiBDb2FsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGNvYWxcbiAgICAgICAgICAgICAgICBvcHRpb25zOlxuICAgICAgICAgICAgICAgIC0gICBsYWJlbDogQ29hbCBNaW5pbmdcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGNvYWwtbWluaW5nXG4gICAgICAgICAgICAgICAgLSAgIGxhYmVsOiBDb2FsIFN0b3JhZ2VcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGNvYWwtc3RvcmFnZVxuICAgICAgICAgICAgLSAgIGxhYmVsOiBPaWwgYW5kIEdhcyBQcm9kdWN0aW9uXG4gICAgICAgICAgICAgICAgdmFsdWU6IG9pbC1hbmQtZ2FzLXByb2R1Y3Rpb25cbiAgICAgICAgICAgICAgICBvcHRpb25zOlxuICAgICAgICAgICAgICAgIC0gICBsYWJlbDogT2lsIFRyYW5zcG9ydGF0aW9uXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBvaWwtdHJhbnNwb3J0YXRpb25cbiAgICAgICAgICAgICAgICAtICAgbGFiZWw6IE9pbCBEcmlsbGluZ1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogb2lsLWRyaWxsaW5nXG4gICAgICAgIC0gICBsYWJlbDogUmV0YWlsIFRyYWRlXG4gICAgICAgICAgICB2YWx1ZTogcmV0YWlsLXRyYWRlXG4gICAgICAgICAgICBvcHRpb25zOlxuICAgICAgICAgICAgLSAgIGxhYmVsOiBGb29kIFJldGFpbFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmb29kLXJldGFpbFxuICAgICAgICAgICAgLSAgIGxhYmVsOiBEaXNjb3VudCBTdG9yZXNcbiAgICAgICAgICAgICAgICB2YWx1ZTogZGlzY291bnQtc3RvcmVzXG4tLS1cblxuKi9cblxuXG4vKmRvY1xuLS0tXG50aXRsZTogUmFuZ2UgU2xpZGVyXG5uYW1lOiByYW5nZV9zbGlkZXJcbmNhdGVnb3J5OiBTZWFyY2ggQXBwbGljYXRpb24gLSBGaWx0ZXJzXG5hdXRob3JzOiBKb24gTGV3aXNcbnRlbXBsYXRlOlxuICAgIGRlbW9fdHlwZTogZmlsdGVyXG4gICAgbW9kZWw6XG4gICAgICAgIGlkOiBtb29uc1xuICAgICAgICB0eXBlOiByYW5nZS1zbGlkZXJcbiAgICAgICAgcmFuZ2U6IFswLCAxMF1cbiAgICAgICAgdmFsdWU6IFsyLCA3XVxuICAgICAgICBzdGVwOiAxXG4gICAgICAgIGxhYmVsOiBNb29uc1xuICAgICAgICBoaXN0b2dyYW1fZGF0YTogWzIsIDQsIDUsIDYsIDcsIDgsIDUsIDMsIDMsIDJdXG4tLS1cblxuKi9cblxuXG4vKmRvY1xuLS0tXG50aXRsZTogQW5jaG9yXG5uYW1lOiBhbmNob3JcbmNhdGVnb3J5OiBTZWFyY2ggQXBwbGljYXRpb24gLSBGaWx0ZXJzXG5hdXRob3JzOiBKb24gTGV3aXNcbnRlbXBsYXRlOlxuICAgIGRlbW9fdHlwZTogZmlsdGVyXG4gICAgbW9kZWw6XG4gICAgICAgIGlkOiB0b3AtNTBcbiAgICAgICAgdHlwZTogYW5jaG9yXG4gICAgICAgIHZhbHVlOiAvc2Nob29sLXNlYXJjaC90b3AtNTBcbiAgICAgICAgbGFiZWw6IFRvcCA1MCBTY2hvb2xzXG4tLS1cblxuU29tZXRpbWVzIHdlIHdhbnQgdG8gbGluayB0byBhIHByZXNldCAoY2FubmVkKSBzZWFyY2guIFdlIGNhbiBpbmNsdWRlIGFuIGFuY2hvclxuZmlsdGVyIHRvIHNob3cgYSBsaW5rIHRvIGEgcm91dGUgVVJMIGluIHRoZSBmb3JtLCBhbmQgYWxsb3cgdGhlIGFwcCB0byBjYXB0dXJlIGl0LlxuXG4qL1xuXG4uc2VhcmNoLWZpbHRlci1oZWxwIHtcbiAgICBtYXJnaW4tbGVmdDogMjdweDtcbn1cblxuLnNlYXJjaC1maWx0ZXIgLnR0LW1lbnUge1xuICAgIEBpbmNsdWRlIGJveC1zaGFkb3coMHB4LCAycHgsIDZweCwgMHB4LCByZ2JhKDAsIDAsIDAsIDAuMjUpKTtcblxuICAgIGJvcmRlci1jb2xvcjogJGdhaW5zYm9ybyAhaW1wb3J0YW50O1xuICAgIG1heC1oZWlnaHQ6IDMwOHB4O1xuICAgIG92ZXJmbG93OiBhdXRvO1xufVxuXG4uc2VhcmNoLWZpbHRlciAudHQtc3VnZ2VzdGlvbiB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRnYWluc2Jvcm87XG59XG4iLCIvKmRvY1xuLS0tXG50aXRsZTogRm9ybVxubmFtZTogX2Zvcm1cbmNhdGVnb3J5OiBTZWFyY2ggQXBwbGljYXRpb24gLSBGb3JtXG5hdXRob3JzOiBKb24gTGV3aXNcbi0tLVxuKi9cblxuLnNlYXJjaC1mb3JtLXZpZXcge1xuXG4gICAgQG1lZGlhICN7JG5vdC1sYXJnZS11cH0ge1xuICAgICAgICAvLyBhZGQgc29tZSBzcGFjZSBhdCB0aGUgYm90dG9tIHRvIG1ha2Ugc3VyZSBhZHMgZG9uJ3QgY292ZXIgY2xlYXIgYWxsIGJ1dHRvblxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNHJlbTtcbiAgICB9XG59XG5cbi5zZWFyY2gtZmlsdGVyLWdyb3VwLWxvY2staWNvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTFweDtcbn1cblxuLnNlYXJjaC1maWx0ZXItZ3JvdXAtdG9nZ2xlIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAzMDBtcztcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xufVxuXG4vLyBPbmx5IGFwcGxpZXMgdGhpcyBpZiBNb2Rlcm5penIgaGFzIHRvbGQgdXMgdGhhdCBKUyBpcyBydW5uaW5nIG9uIHRoZSBwYWdlLlxuLy8gVGhhdCB3YXkgZ3JvdXBzIGRvbid0IHN0YXJ0IGNvbGxhcHNlZCB3aXRoIG5vIHdheSB0byBleHBhbmQgdGhlbS5cbi8vXG4vLyAnLmlzLWFuaW1hdGluZycgd2lsbCBiZSBwcmVzZW50IHdoaWxlIEpTIGlzIGFuaW1hdGluZyB0aGUgaGVpZ2h0IGNoYW5nZSBiZXR3ZWVuXG4vLyBjb2xsYXBzZWQgYW5kIGV4cGFuZGVkIHN0YXRlcy5cbmh0bWwuanMgLnNlYXJjaC1maWx0ZXItZ3JvdXAuaXMtY29sbGFwc2VkIHtcblxuICAgIC5zZWFyY2gtZmlsdGVyLWNvbnRhaW5lciB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgJjpub3QoLmlzLWFuaW1hdGluZykgLnNlYXJjaC1maWx0ZXItY29udGFpbmVyIHtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgIH1cblxuICAgIC5zZWFyY2gtZmlsdGVyLWdyb3VwLXRvZ2dsZSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIH1cbn1cblxuLnNlYXJjaC1maWx0ZXItZ3JvdXA6bm90KC5pcy1jb2xsYXBzaWJsZSksXG4uc2VhcmNoLWZpbHRlci1ncm91cC5pcy1jb2xsYXBzaWJsZTpub3QoLmlzLWNvbGxhcHNlZCkge1xuICAgIC5zZWFyY2gtZm9ybS10YWcge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLnNlYXJjaC1maWx0ZXItZ3JvdXAtaGVhZGluZyB7XG4gICAgY29sb3I6ICRvaWw7XG59XG5cbi5zZWFyY2gtZmlsdGVyLWdyb3VwOm5vdCguaXMtY29sbGFwc2libGUpIC5zZWFyY2gtZmlsdGVyLWdyb3VwLWhlYWRpbmcge1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbn1cbiIsIiRzcG9uc29yZWQtYmc6ICNmMWYxZjE7XG4uc3BvbnNvcmVkLWJnIHtcbiAgICBiYWNrZ3JvdW5kOiAkc3BvbnNvcmVkLWJnO1xufVxuXG4uc2VhcmNoLXJlc3VsdCB7XG4gICAgQGluY2x1ZGUgYmxvY2soJ2xvb3NlcicpO1xuICAgIGJveC1zaGFkb3c6IDAgMCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAmLnNwb25zb3JlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzcG9uc29yZWQtYmc7XG4gICAgICAgIC50YWJsZSB0ZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc3BvbnNvcmVkLWJnO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uc3BvbnNvcmVkLWluZGljYXRvciB7XG4gICAgYmFja2dyb3VuZDogI2RkZDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICBwYWRkaW5nOiAycHggMTBweDtcbiAgICBjb2xvcjogYmx1ZTtcbn1cblxuLmFkLWluZGljYXRvciB7XG4gICAgYmFja2dyb3VuZDogI2MwZGRmMjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICBwYWRkaW5nOiAycHggNnB4O1xuICAgIG1hcmdpbi10b3A6IC00cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE1cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAmLmFkLWluZGljYXRvci0tY29ybmVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogaW5pdGlhbDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cbiAgICAmLmFkLWluZGljYXRvci0tY29ybmVyLWJvdHRvbSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICB9XG59XG5cbi5zZWFyY2gtcmVzdWx0LWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIGJsb2NrKCd0aWdodCcpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZy1sZWZ0OiByZW0tY2FsYygxNSk7XG4gICAgcGFkZGluZy1yaWdodDogcmVtLWNhbGMoMTUpO1xuICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYygxNSk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZWxsaXBzaXMge1xuICAgIG1heC1oZWlnaHQ6IDQwcHg7XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAuZWxsaXBzaXMtc2hvdyB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNXB4O1xuICAgICAgICBjb2xvcjogJGxpbmstYmx1ZS1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAtMnB4O1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJy4uLiAnO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA0MHB4O1xuICAgICAgICAgICAgY29sb3I6IGJsYWNrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgICAgICAgbGVmdDogLTQ4cHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpIDcwJSk7XG4gICAgICAgICAgICAvKiBGRjMuNi0xNSAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAxKSA3MCUpO1xuICAgICAgICAgICAgLyogQ2hyb21lMTAtMjUsU2FmYXJpNS4xLTYgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAxKSA3MCUpO1xuICAgICAgICAgICAgLyogVzNDLCBJRTEwKywgRkYxNissIENocm9tZTI2KywgT3BlcmExMissIFNhZmFyaTcrICovXG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5zcG9uc29yZWQtYmcge1xuICAgICAgICAuZWxsaXBzaXMtc2hvdyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3BvbnNvcmVkLWJnO1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoMjQxLCAyNDEsIDI0MSwgMCkgMCUsIHJnYmEoMjQxLCAyNDEsIDI0MSwgMSkgNzAlKTtcbiAgICAgICAgICAgICAgICAvKiBGRjMuNi0xNSAqL1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoMjQxLCAyNDEsIDI0MSwgMCkgMCUsIHJnYmEoMjQxLCAyNDEsIDI0MSwgMSkgNzAlKTtcbiAgICAgICAgICAgICAgICAvKiBDaHJvbWUxMC0yNSxTYWZhcmk1LjEtNiAqL1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNDEsIDI0MSwgMjQxLCAwKSAwJSwgcmdiYSgyNDEsIDI0MSwgMjQxLCAxKSA3MCUpO1xuICAgICAgICAgICAgICAgIC8qIFczQywgSUUxMCssIEZGMTYrLCBDaHJvbWUyNissIE9wZXJhMTIrLCBTYWZhcmk3KyAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHAge1xuICAgICAgICBmb250LXNpemU6ICR0ZXh0LXNtYWxsO1xuICAgIH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMyMXB4KSBhbmQgKG1heC1kZXZpY2Utd2lkdGg6IDc2OHB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG59XG5cbi5zcG9uc29yZWQtYnVnIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtM3B4O1xuICAgIHdpZHRoOiAzMHB4O1xufVxuXG4uc2VhcmNoLXJlc3VsdC1wYW5lbCB7XG4gICAgcCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIH1cbiAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoMTUpO1xuICAgIGJhY2tncm91bmQ6ICRtaXN0O1xufVxuXG4uZG9jdG9ycy1ob3NwaXRhbHMgLnNlYXJjaC1yZXN1bHQge1xuICAgIGEuaGVhZGluZy1sYXJnZXIge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIH1cbiAgICAuZmxleC1zbWFsbCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC41cmVtO1xuICAgIH1cbiAgICAvLyBpbWcudGh1bWJuYWlsIHtcbiAgICAvLyAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIC8vICAgICBib3R0b206IDA7XG4gICAgLy8gICAgIHJpZ2h0OiA4cHg7XG4gICAgLy8gfVxufVxuXG4uc2VhcmNoLXJlc3VsdC1hbmltYXRlLWluIHtcbiAgICBAZXh0ZW5kIC5hbmltYXRlZCwgLmZhZGVJbjtcbn1cblxuLnNlYXJjaC1yZXN1bHQtYW5pbWF0aW9uLXN0YW5kYnkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5oYXMtb3ZlcmxheSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uaXMtb3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICYuYm90dG9tLWxlZnQge1xuICAgICAgICBsZWZ0OiA2JTtcbiAgICAgICAgYm90dG9tOiA2JTtcbiAgICB9XG59XG5cbi5kb3MtYW5kLWRvbnRzLW92ZXJsYXkge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgcGFkZGluZzogMC4ycmVtIDAuNXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgZm9udC1zaXplOiAwLjhyZW07XG59XG4iLCIuc2VhcmNoLWh1ZCB7XG4gICAgaHIge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbn1cblxuLnNlYXJjaC1odWQtc3RpY2t5LXJvdy5pcy1zdHVjayB7XG4gICAgQGluY2x1ZGUgei1pbmRleDtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KDAsIDAsIDAuMzEyNXJlbSwgMCwgcmdiYSgwLCAwLCAwLCAwLjUpKTtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbn1cblxuLnNlYXJjaC1odWQtZGV0YWlscyB7XG4gICAgQGluY2x1ZGUgZmxleGJveDtcbiAgICBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG4gICAgQGluY2x1ZGUgYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBsaW5lLWhlaWdodDogNDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uc2VhcmNoLWh1ZC1kZXRhaWxzLWxhcmdlLW9ubHkge1xuICAgIEBtZWRpYSAjeyRub3QtbGFyZ2UtdXB9IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5zZWFyY2gtaHVkLWRldGFpbHMtc21hbGwtbWVkaXVtIHtcbiAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5zZWFyY2gtaHVkLW9wdGlvbnMge1xuICAgIEBpbmNsdWRlIGZsZXhib3g7XG4gICAgQGluY2x1ZGUgYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuc2VsZWN0LnNlYXJjaC1odWQtc29ydC1vcHRpb25zIHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLnNlYXJjaC1odWQtbWF0Y2gtZGlzcGxheS1vcHRpb25zIHtcbiAgICBtYXJnaW4tbGVmdDogcmVtLWNhbGMoMjApO1xufVxuXG4uc2VhcmNoLWh1ZC1tYXRjaC1kaXNwbGF5LW9wdGlvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiByZW0tY2FsYygxMCk7XG4gICAgcGFkZGluZy1sZWZ0OiByZW0tY2FsYygxMCk7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkZ2FpbnNib3JvO1xufVxuXG4uc2VhcmNoLWh1ZC1tYXRjaC1kaXNwbGF5LW9wdGlvbjpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xufVxuXG4uc2VhcmNoLWh1ZC1tYXRjaC1kaXNwbGF5LW9wdGlvbi1zbWFsbC1tZWRpdW0ge1xuICAgIGxpbmUtaGVpZ2h0OiAyLjU7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRnYWluc2Jvcm87XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRnYWluc2Jvcm87XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkZ2FpbnNib3JvO1xufVxuXG4uc2VhcmNoLWh1ZC1tYXRjaC1kaXNwbGF5LW9wdGlvbi1zbWFsbC1tZWRpdW06Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xufVxuXG4uc2VhcmNoLWh1ZC1idXN5LWluZGljYXRvciB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmlzLWJ1c3kgLnNlYXJjaC1odWQtYnVzeS1pbmRpY2F0b3Ige1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMzJweDtcbiAgICBoZWlnaHQ6IDMycHg7XG59XG5cbi5zZWFyY2gtaHVkLXJlZmluZS1idXR0b24ge1xuICAgIGJ1dHRvbiB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogcmVtLWNhbGMoMzApICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDMwKSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLnNlYXJjaC1odWQtZmFjZXRzIHtcbiAgICBAbWVkaWEgI3skbm90LWxhcmdlLXVwfSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRtaXN0LWxpZ2h0O1xuICAgICAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoMjApO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoMjAtOSk7XG5cbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICB9XG59XG5cbi5zZWFyY2gtaHVkLWZhY2V0cy1saXN0IHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG5cbiAgICBsaSB7XG4gICAgICAgIEBleHRlbmQgLmJhci10aWdodDtcbiAgICAgICAgQGV4dGVuZCAuYmxvY2stdGlnaHQ7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG5cbiAgICAgICAgLy8gYSBzbWFsbCB0d2Vha1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogLTFweDtcbiAgICB9XG5cbiAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qZG9jXG4tLS1cbnRpdGxlOiBTdGlja2FibGVcbm5hbWU6IHN0aWNrYWJsZVxuY2F0ZWdvcnk6IFN0aWNraWVzIC0gU3RpY2thYmxlXG5hdXRob3JzOiBQYXVsIFBlY2hpblxuLS0tXG4qL1xuXG4kc3RpY2thYmxlLWhlaWdodDogNDVweDtcblxuLnN0aWNrYWJsZSB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRzaWx2ZXItbGlnaHQ7XG4gICAgYm90dG9tOiAwO1xuICAgIG1hcmdpbi10b3A6IC0xMHB4O1xuICAgIHBhZGRpbmc6IDVweCByZW0tY2FsYygxNSk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgJi5pcy1zdHVjayB7XG4gICAgICAgIEBpbmNsdWRlIHotaW5kZXg7XG4gICAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAuMzEyNXJlbSAwIHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICAgICAgbWFyZ2luLXRvcDogLTEwcHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICB9XG5cbiAgICAmLmlzLWZpeGVkIHtcbiAgICAgICAgQG1lZGlhICN7JG5vdC1sYXJnZS11cH0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgei1pbmRleDtcbiAgICAgICAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0xMHB4O1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTdGF0ZXMgc2hvdWxkIGJlIGRlZmluZWQgYXQgdGhlIHNhbWUgbGV2ZWwsIHdoaWNoIG1ha2VzXG4gICAgLy8gdGhlbSBlYXNpZXIgdG8gb3ZlcnJpZGUuIEFsc28sIGl0IGxldHMgdXMga2VlcCB0cmFja1xuICAgIC8vIG9mIHdoYXQgcHJvcGVydGllcyBhcmUgYmVpbmcgc2V0IGJ5IHN0YXRlcyBlYXNpbHkuXG4gICAgLnN0YXRlZnVsIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmW2RhdGEtc3RhdGU9ZGVmYXVsdF0ge1xuICAgICAgICAuc3RhdGVmdWxbZGF0YS1hY3RpdmUtc3RhdGU9ZGVmYXVsdF0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJltkYXRhLXN0YXRlPXNvcnRpbmddIHtcbiAgICAgICAgLnN0YXRlZnVsW2RhdGEtYWN0aXZlLXN0YXRlPXNvcnRpbmddIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnN0aWNrYWJsZS1jb250ZW50LXByaW1hcnkge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4KCk7XG4gICAgQGluY2x1ZGUgdmVydGljYWwtY2VudGVyLWlubmVyKCRzdGlja2FibGUtaGVpZ2h0KTtcblxuICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJiA+IC5idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBibG9jaygnZmx1c2gnKTtcbiAgICB9XG59XG5cbi5zdGlja2FibGUtY29udGVudC1zZWNvbmRhcnkge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4KCk7XG4gICAgQGluY2x1ZGUgdmVydGljYWwtY2VudGVyLWlubmVyKCRzdGlja2FibGUtaGVpZ2h0KTtcblxuICAgIGZsb2F0OiByaWdodDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbiIsIi8qZG9jXG4tLS1cbnRpdGxlOiBCYXNpYyBIZXJvXG5uYW1lOiBhLWhlcm9cbmNhdGVnb3J5OiBIZXJvIFVuaXRzIC0gSGVybyBVbml0c1xuc2VsZWN0b3JzOlxuICAgIC0gLmhlcm9cbnNlbGVjdG9yX3R5cGU6IGNvbXBvbmVudFxuLS0tXG57JSBzZXQgZWRpdG9yX2lkID0gdXVpZCgpICV9XG5cbmBgYG51bmp1Y2tzX3RhYj9lZGl0b3ItaWQ9e3tlZGl0b3JfaWR9fVxuICAgIHslIHNldCBoZXJvID0ge1xuICAgICAgICAgICAgJ2hlYWRpbmcnOiAnQ2FydG9vbnMnLFxuICAgICAgICAgICAgJ2hUeXBlJzogJ2gyJyxcbiAgICAgICAgICAgICdzb2NpYWwnOiB0cnVlLFxuICAgICAgICAgICAgJ25vSGVyb0NvbnRlbnQnOiB0cnVlLFxuICAgICAgICAgICAgJ2JyZWFkY3J1bWJzJzogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIFwidXJsXCI6IFwiL25ld3NcIixcbiAgICAgICAgICAgICAgICAgIFwibmFtZVwiOiBcIk5ld3NcIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgXCJ1cmxcIjogXCIvbmV3cy9jYXJ0b29uc1wiLFxuICAgICAgICAgICAgICAgICAgXCJuYW1lXCI6IFwiQ2FydG9vbnNcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICV9XG5cbiAgICB7JSBpbmNsdWRlIFwidGVtcGxhdGVzL2NvbW1vbi9oZXJvL2hlcm8tYmFzaWMubnVualwiICV9XG5gYGBcblxuKi9cblxuXG4vKmRvY1xuLS0tXG50aXRsZTogSGVybyBMYXJnZSBCYWRnZVxubmFtZTogYy1oZXJvXG5jYXRlZ29yeTogSGVybyBVbml0cyAtIEhlcm8gVW5pdHNcbnNlbGVjdG9yczpcbiAgICAtIC5oZXJvXG5zZWxlY3Rvcl90eXBlOiBjb21wb25lbnRcbnRlbXBsYXRlOlxuICAgIGhlcm86XG4gICAgICAgIGNvbnRhaW5lckNsYXNzZXM6ICdibG9jay1sb29zZXInXG4gICAgICAgIGhUeXBlOiBoMlxuICAgICAgICBicmVhZGNydW1iczpcbiAgICAgICAgICAtIG5hbWU6IE5ld3NcbiAgICAgICAgICAgIHVybDogXCIvL3d3dy51c25ld3MuY29tL25ld3NcIlxuICAgICAgICAgIC0gbmFtZTogT3BpbmlvblxuICAgICAgICAgICAgdXJsOiBcIi8vd3d3LnVzbmV3cy5jb20vb3BpbmlvblwiXG4gICAgICAgICAgLSBuYW1lOiBPcC1FZFxuICAgICAgICAgICAgdXJsOiBcIi8vd3d3LnVzbmV3cy5jb20vbmV3cy9vcGluaW9uL29wLWVkXCJcbiAgICAgICAgICAtIG5hbWU6IE1vdmluZyBCZXlvbmQgQnViYmxlIFRlYSBpbiAyMDE2XG4gICAgICAgICAgICB1cmw6IFwiLy93d3cudXNuZXdzLmNvbS9vcGluaW9uL2FydGljbGVzLzIwMTYtMDUtMTMvYXNpYW4tYW1lcmljYW4tdm90ZXJzLWFyZS1sZWZ0LWJlaGluZC1pbi10aGUtMjAxNi1wcmVzaWRlbnRpYWwtZWxlY3Rpb25cIlxuICAgICAgICBoZWFkaW5nOiBCZXN0IENvbGxlZ2VzIFJhbmtpbmdzIGFuZCBMaXN0c1xuICAgICAgICB0ZXh0OiAnVS5TLiBOZXdzIHByb3ZpZGVzIG5lYXJseSA1MCBkaWZmZXJlbnQgdHlwZXMgb2YgbnVtZXJpY2FsIHJhbmtpbmdzIGFuZCBsaXN0cyB0byBoZWxwIHN0dWRlbnRzIG5hcnJvdyB0aGVpciBjb2xsZWdlIHNlYXJjaC4gRnJvbSA8YSBocmVmPVwiL2Jlc3QtY29sbGVnZXMvcmFua2luZ3MvbmF0aW9uYWwtdW5pdmVyc2l0aWVzXCI+TmF0aW9uYWwgVW5pdmVyc2l0aWVzPC9hPiBhbmQgPGEgaHJlZj1cIi9iZXN0LWNvbGxlZ2VzL3JhbmtpbmdzL25hdGlvbmFsLWxpYmVyYWwtYXJ0cy1jb2xsZWdlc1wiPkxpYmVyYWwgQXJ0cyBDb2xsZWdlczwvYT4gdG8gPGEgaHJlZj1cIi9iZXN0LWNvbGxlZ2VzL3JhbmtpbmdzL25hdGlvbmFsLXVuaXZlcnNpdGllcy9hLXBsdXNcIj5BLVBsdXMgU2Nob29scyBmb3IgQiBTdHVkZW50czwvYT4sIGZpbmQgdGhlIHJpZ2h0IG9uZSBmb3IgeW91LidcbiAgICAgICAgc29jaWFsOiB0cnVlXG4gICAgICAgIGFydFVybDogL3N0YXRpYy9pbWcvYmFkZ2UtZ2VuZXJpYy1iZXN0LWdvbGQuc3ZnXG4tLS1cblxueyUgc2V0IGVkaXRvcl9pZCA9IHV1aWQoKSAlfVxuXG5gYGBudW5qdWNrc190YWI/ZWRpdG9yLWlkPXt7ZWRpdG9yX2lkfX1cbiAgICB7JSBzZXQgaGVyb01ldGEgJX1cbiAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LW11dGVkXCI+e3toZXJvLnRleHQgfCBzYWZlfX08L3A+XG4gICAgICAgIDxwIGNsYXNzPVwiYmxvY2stZmx1c2hcIj5cbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJpY29uXCI+XG4gICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPVwiL3N0YXRpYy9zcHJpdGVzL3N2Zy9zcHJpdGUuc3ltYm9sLnN2ZyNtZXRob2RvbG9neVwiLz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPGEgaHJlZj1cImh0dHA6Ly93d3cudXNuZXdzLmNvbS9lZHVjYXRpb24vYmVzdC1jb2xsZWdlcy9hcnRpY2xlcy9yYW5raW5ncy1tZXRob2RvbG9naWVzXCI+UmVhZCB0aGUgQmVzdCBDb2xsZWdlcyBtZXRob2RvbG9neTwvYT5cbiAgICAgICAgPC9wPlxuICAgIHslIGVuZHNldCAlfVxuXG4gICAgeyUgaW5jbHVkZSBcInRlbXBsYXRlcy9jb21tb24vaGVyby9oZXJvLWJhZGdlLWxhcmdlLm51bmpcIiAlfVxuYGBgXG5cbiovXG5cblxuLypkb2Ncbi0tLVxudGl0bGU6IEhlcm8gU21hbGwgQmFkZ2Vcbm5hbWU6IGQtaGVyb1xuY2F0ZWdvcnk6IEhlcm8gVW5pdHMgLSBIZXJvIFVuaXRzXG5zZWxlY3RvcnM6XG4gICAgLSAuaGVyb1xuc2VsZWN0b3JfdHlwZTogY29tcG9uZW50XG50ZW1wbGF0ZTpcbiAgaGVybzpcbiAgICBoVHlwZTogaDJcbiAgICBzb2NpYWw6IHRydWVcbiAgICBhcnQ6XG4gICAgICBzcmM6IFwiL3N0YXRpYy9pbWcvam9icy9iYWRnZS1nZW5lcmljLWJlc3Qtam9icy5zdmdcIlxuICAgICAgc2hhcGU6IHNxdWFyZVxuICAgIGhlYWRpbmc6IFdlYiBEZXZlbG9wZXJcbiAgICBzdWJoZWFkaW5nOiBPdmVydmlld1xuICAgIHJhbmtpbmdfaW5mbzpcbiAgICAgIHNjb3JlOiBPdmVyYWxsIFNjb3JlIDcuNCAvIDEwXG4gICAgICBsaW5rOiBodHRwczovL21vbmV5LnVzbmV3cy5jb20vY2FyZWVycy9iZXN0LWpvYnMvcmFua2luZ3MvYmVzdC10ZWNobm9sb2d5LWpvYnNcbiAgICAgIG5hbWU6IEJlc3QgVGVjaG5vbG9neSBKb2JzXG4gICAgICByYW5rOiAzXG4tLS1cblxueyUgc2V0IGVkaXRvcl9pZCA9IHV1aWQoKSAlfVxuXG5gYGBudW5qdWNrc190YWI/ZWRpdG9yLWlkPXt7ZWRpdG9yX2lkfX1cbiAgeyUgc2V0IGhlcm8gPSBoZXJvIHwgc2V0T2JqRGVmYXVsdHMoXG4gICAgICAgICAge1xuICAgICAgICAgICAgICAnYXJ0VXJsJzogaGVyby5hcnQuc3JjXG4gICAgICAgICAgfVxuICAgICAgKVxuICAlfVxuXG4gIHslIHNldCBoZXJvTWV0YSAlfVxuICAgICAge3sgaGVyby5pbmZvIHwgc2FmZSB9fVxuICAgICAgeyUgaWYgaGVyby5yYW5raW5nX2luZm8gJX1cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVyby1tZXRhIGhlcm8tcmFua2luZy1kYXRhXCI+XG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwiYmxvY2stZmx1c2hcIj5cbiAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwie3sgc3RhdGljX2ltZ19wYXRoIH19L21pbmktYmFkZ2UtY29sb3Iuc3ZnXCIgYWx0PVwiYmFkZ2VcIiBoZWlnaHQ9XCIyMlwiIHdpZHRoPVwiMjJcIiBjbGFzcz1cImhpZGUtZm9yLW1lZGl1bS11cFwiPlxuICAgICAgICAgICAgICAgICAgPHN0cm9uZz4je3sgaGVyby5yYW5raW5nX2luZm8ucmFuayB9fSBpbjwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cInt7IGhlcm8ucmFua2luZ19pbmZvLmxpbmsgfX1cIj57eyBoZXJvLnJhbmtpbmdfaW5mby5uYW1lIH19PC9hPjxzcGFuIGNsYXNzPVwiaGlkZS1mb3Itc21hbGwtb25seVwiPiB8IDxzdHJvbmc+e3sgaGVyby5yYW5raW5nX2luZm8uc2NvcmUgfX08L3N0cm9uZz48L3NwYW4+XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgIHslIGVuZGlmICV9XG4gICAgICB7JSBpZiBoZXJvLnRleHQgJX1cbiAgICAgICAgIDxwIGNsYXNzPVwiYmxvY2stZmx1c2ggdGV4dC1zdHJvbmcgdGV4dC1tdXRlZFwiPnt7IGhlcm8udGV4dCB8IHNhZmUgfX08L3A+XG4gICAgICB7JSBlbmRpZiAlfVxuICB7JSBlbmRzZXQgJX1cblxuICB7JSBpbmNsdWRlIFwidGVtcGxhdGVzL2NvbW1vbi9oZXJvL2hlcm8tYmFkZ2Utc21hbGwubnVualwiICV9XG5gYGBcblxuKi9cblxuXG4vKmRvY1xuLS0tXG50aXRsZTogSGVybyBmb3IgQXJ0aWNsZXNcbm5hbWU6IGItaGVyb1xuY2F0ZWdvcnk6IEhlcm8gVW5pdHMgLSBIZXJvIFVuaXRzXG5zZWxlY3RvcnM6XG4gICAgLSAuaGVyb1xuc2VsZWN0b3JfdHlwZTogY29tcG9uZW50XG50ZW1wbGF0ZTpcbiAgICBoZXJvOlxuICAgICAgICBoVHlwZTogaDJcbiAgICAgICAgYnJlYWRjcnVtYnM6XG4gICAgICAgICAgLSBuYW1lOiBOZXdzXG4gICAgICAgICAgICB1cmw6IFwiLy93d3cudXNuZXdzLmNvbS9uZXdzXCJcbiAgICAgICAgICAtIG5hbWU6IE9waW5pb25cbiAgICAgICAgICAgIHVybDogXCIvL3d3dy51c25ld3MuY29tL29waW5pb25cIlxuICAgICAgICAgIC0gbmFtZTogT3AtRWRcbiAgICAgICAgICAgIHVybDogXCIvL3d3dy51c25ld3MuY29tL25ld3Mvb3Bpbmlvbi9vcC1lZFwiXG4gICAgICAgICAgLSBuYW1lOiBNb3ZpbmcgQmV5b25kIEJ1YmJsZSBUZWEgaW4gMjAxNlxuICAgICAgICAgICAgdXJsOiBcIi8vd3d3LnVzbmV3cy5jb20vb3Bpbmlvbi9hcnRpY2xlcy8yMDE2LTA1LTEzL2FzaWFuLWFtZXJpY2FuLXZvdGVycy1hcmUtbGVmdC1iZWhpbmQtaW4tdGhlLTIwMTYtcHJlc2lkZW50aWFsLWVsZWN0aW9uXCJcbiAgICAgICAgaGVhZGluZzogTW92aW5nIEJleW9uZCBCdWJibGUgVGVhXG4gICAgICAgIHNvY2lhbDogdHJ1ZVxuICAgICAgICBhdXRob3JzOlxuICAgICAgICAgIC0gcm9sZTogQ29udHJpYnV0b3JcbiAgICAgICAgICAgIG5hbWU6IEx5bmRhIFRyYW5cbiAgICAgICAgICAgIHBlcm1hbGluazogXCIvdG9waWNzL2F1dGhvci9seW5kYV90cmFuXCJcbiAgICAgICAgc3ViaGVhZGluZzogVS5TLiBOZXdzIGV2YWx1YXRlZCAzOCBvZiB0aGUgbW9zdCBwb3B1bGFyIGRpZXRzIGFuZCBpZGVudGlmaWVkIHRoZSBiZXN0LiBGaW5kIHdoaWNoIHRvcC1yYXRlZCBkaWV0IGlzIGJlc3QgZm9yIHlvdXIgaGVhbHRoIGFuZCBmaXRuZXNzIGdvYWxzLlxuLS0tXG5cbkp1c3QgaW5jbHVkZSBgdGVtcGxhdGVzL2NvbW1vbi9oZXJvL2hlcm8tYXJ0aWNsZS5udW5qYC5cblxueyUgc2V0IGVkaXRvcl9pZCA9IHV1aWQoKSAlfVxuXG5cbmBgYG51bmp1Y2tzX3RhYj9lZGl0b3ItaWQ9e3tlZGl0b3JfaWR9fVxuXG57JSBpbmNsdWRlIFwidGVtcGxhdGVzL2NvbW1vbi9oZXJvL2hlcm8tYXJ0aWNsZS5udW5qXCIgJX1cblxuYGBgXG5cbiovXG5cbi8vIENvbnRyb2xzIGNvbnRhaW5lciBhcHBlYXJhbmNlIG9mIGhlcm8gQU5EIHRvcCBwYWRkaW5nXG4uaGVybyB7XG4gICAgcGFkZGluZy10b3A6IDI3cHg7IC8vIHZpc3VhbGx5IDMycHggYmV0d2VlbiB0b3AgYW5kIGJjXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWJsdWU7XG4gICAgQGluY2x1ZGUgc2hhZG93KCdub3JtYWwnKTtcbn1cblxuLy8gQ29udHJvbHMgdGhlIGJvdHRvbSBwYWRkaW5nXG4vLyBTZWUgLmhlcm8tc29jaWFsLXNtYWxsIHRvIGNvbnRyb2wgYm90dG9tIHBhZGRpbmcgZm9yIHNtYWxsXG4uaGVyby1jb250ZW50LWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjZweDtcbn1cblxuLy8gQ29udHJvbHMgdGhlIGJvdHRvbSBwYWRkaW5nIChmb3Igc21hbGwpXG4uaGVyby1zb2NpYWwge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgQGluY2x1ZGUgZnJvbShicC1tZWRpdW0td2lkZSkge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAxNXB4O1xuICAgICAgICB0b3A6IC00MHB4O1xuICAgIH1cbn1cblxuLy8gUG9zaXRpb25zIGJyZWFkY3J1bWJzXG4uaGVyby1icmVhZGNydW1icyB7XG4gICAgbWFyZ2luLXRvcDogLTdweDsgLy8gcHVsbCBpdCB1cCBzbyBpdCBsb29rcyBsaWtlIDIwcHggc3BhY2UgYWJvdmVcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4OyAvLyBzbyBpdCBsb29rcyBsaWtlIDI0cHhcbn1cblxuLy8gRm9udC1zaXplIG92ZXJyaWRlIGZvciBhbGwgaGVybyBoZWFkaW5ncyAodW50aWwgd2UgY2FuIGZpeCBhbGwgdHlwb2dyYXBoeSlcbi5oZXJvLWhlYWRpbmcge1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMzApICFpbXBvcnRhbnQ7XG4gICAgQGluY2x1ZGUgZnJvbShicC1tZWRpdW0pIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygzNikgIWltcG9ydGFudDtcbiAgICB9XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLmhlcm8ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1ibHVlO1xuICAgIEBpbmNsdWRlIHNoYWRvdygnbm9ybWFsJyk7XG59XG5cbi8vIGNob2ljZSBvZiAyIHRvcCBhbmQgYm90dG9tIHBhZGRpbmdcbi5oZXJvLnRpZ2h0IHtcbiAgICBwYWRkaW5nLXRvcDogMzBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMzBweDtcbn1cblxuLmhlcm8ubG9vc2Uge1xuICAgIHBhZGRpbmctdG9wOiA1MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA1MHB4O1xufVxuXG4uaGVyby50aWdodC1mb3Itc21hbGwge1xuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgICAgIHBhZGRpbmc6IDMwcHggMDtcbiAgICB9XG59XG5cbi8vIFRPRE86IHR1cm4gdGhpcyBpbnRvIGl0cyBvd24gdGhpbmcuIEEgcGlwZWQgaW5mbyBsaW5lIG9yIHNvbWV0aGluZ1xuLy8gVE9ETzogcmVtb3ZlIHRhZyBzZWxlY3RvcnMgYW5kIHVzZSBhIDpiZWZvcmUgdG8gaW5zZXJ0IHBpcGVcbi5oZXJvLXJhbmtpbmctZGF0YSB7XG4gICAgaW1nIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHN1YjsgLy8gdGhpcyBpcyB0ZW1wIHVudGlsIHdlIHNlZSB3aHkgaXQgaXNuJ3QgbmF0dXJhbGx5IG1pZGRsZWQgYW5kIG9yIHVzZSBmbGV4Ym94XG4gICAgfVxuICAgIEBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICAgICBmbG9hdDogbGVmdDsgLy8gdGhpcyBhbGxvd3MgdGhlIHNvY2lhbCBpY29ucyBvbiByaWdodCB0byBzdGF5IG9uIHNhbWUgbGluZVxuICAgIH1cbn1cblxuLmhlcm8tcmFua2luZy1kYXRhLXJhbmsge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLy8gaSBoYXZlIGEgc3BhbiBpIHdhbnQgdG8gb25seSBzaG93IG1lZGl1bSB1cC4gdmlzaWJpbGl0eSBoZWxwZXIgY2xhc3NlcyBkaXNwbGF5OiBpbmhlcml0XG4gICAgPiBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICBtYXJnaW4tbGVmdDogMTBweDsgLy8gdGhpcyBpcyBzcGFjaW5nIGZvciB0aGUgcGlwZVxuICAgICAgICBzdHJvbmcge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4OyAvLyBhbmQgaXQgaXMgZHVtYlxuICAgICAgICB9XG4gICAgfVxufVxuXG4uaGVyby1wdWJkYXRlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bS13aWRlKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbS1jYWxjKDIwKTtcbiAgICB9XG59XG5cbi8vIHRoaXMgaXMgaGVyZSBiZWNhdXNlIGl0IGRpc3BsYXlzIGNvbnRlbnQgZnJvbSB0aGUgaGVyb1xuLy8gVE9ETzogdGhpcyBzaGFyZXMgYSBsb3Qgb2Ygc3R5bGVzIHdpdGggdGhlIHN0aWNreSBzdWItbmF2XG4uaGVyby1zdGlja3ktYmFyIHtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJveC1zaGFkb3c6IDBweCAwcHggMC4zNzVyZW0gMHB4IHJnYmEoMCwwLDAsMC41KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIG1pbi13aWR0aDogMTAwJTtcblxuICAgIC8vcGFkZGluZzogMTBweCAxNXB4O1xuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgLy9tYXgtd2lkdGg6IDYwLjVyZW07XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDBweDtcbiAgICB9XG5cbiAgICAvLyB5b3UgY2FuIG9ubHkgZmx1c2ggbGVmdCB0aGlzIG9uIGxhcmdlIHVwXG4gICAgQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgICAgIC8vcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAvL3BhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgICAgIC8vbWF4LXdpZHRoOiA2MC41cmVtO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICAgICAgbWF4LWhlaWdodDogNTJweDtcbiAgICB9XG4gICAgLy8gcHVzaGVzIGNvbnRlbnQgdG8gZWRnZXNcbiAgICAuaGVyby1zdGlja3ktYmFyLWlubmVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgICAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgLXdlYmtpdC1hbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICAgICAgICAgIG1heC13aWR0aDogNDAuNXJlbTtcblxuICAgICAgICB9XG4gICAgICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgICAgIG1heC13aWR0aDogOTAuNXJlbTsgLy8gVE9ETzpNYWtlIGEgdmFyaWFibGUgZnJvbSBnbG9iYWwgbWF4IHdpZHRocy4gSXQgaXMgNjIuNSBtaW51cyBzb21lIHBhZGRpbmdcbiAgICAgICAgfVxuICAgICAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTIwLjVyZW07IC8vIFRPRE86TWFrZSBhIHZhcmlhYmxlIGZyb20gZ2xvYmFsIG1heCB3aWR0aHMuIEl0IGlzIDYyLjUgbWludXMgc29tZSBwYWRkaW5nXG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIGhhbmRsZXMgdG9nZ2xpbmcgZml4ZWQgYW5kIGFuaW1hdGlvblxuLmhlcm8tc3RpY2t5LWJhci1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIHotaW5kZXg7XG4gICAgdG9wOiAtMjAwcHg7XG4gICAgdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2UtaW47XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uaGVyby1zdGlja3ktYmFyLWNvbnRhaW5lci5maXhlZCB7XG4gICAgQGluY2x1ZGUgei1pbmRleDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZS1vdXQ7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbn1cblxuLy9UaGlzIGlzIGZvciB0aGUgbmV3IHNvY2lhbCBzdGlja3lcbi5oZXJvaGVhZGluZ3tcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHdpZHRoOjQwJTtcbn1cblxuLm5hdi1mb2xsb3ctbW9iaWxlIGxpe1xuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fXtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbn1cblxuLyogVGhpcyBpcyBhbiBvdmVycmlkZSBmb3IgQ291bnRyaWVzIHN0aWNreSBiYXJcbiAqIFRPRE86IGZpbmQgYSBtb3JlIG9wdGltYWwgc29sdXRpb25cbiAqIE92ZXJyaWRlIGJyZWFrcG9pbnRzIHVzZWQgYnkgdGhlIGdlbmVyaWMgbmV3IHN0aWNreSAqL1xuXG4uY291bnRyaWVzLXN0aWNreS1iYXJ7XG4gICAgLy9UaGlzIGlzIGp1c3QgZm9yIGNvdW50cmllcyBhbmQgc3RhdGVzXG4gICAgLmhlcm8tc3RpY2t5LWJhciB7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgICAgICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA2MC41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgICAgLy8geW91IGNhbiBvbmx5IGZsdXNoIGxlZnQgdGhpcyBvbiBsYXJnZSB1cFxuICAgICAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICAgICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICAgICAgICAgIG1heC13aWR0aDogNjAuNXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vVGhpcyBpcyBqdXN0IGZvciBjb3VudHJpZXMgYW5kIHN0YXRlc1xuICAgIC5oZXJvLXN0aWNreS1iYXItaW5uZXIge1xuICAgICAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAgICAgICAgICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNjAuNXJlbTsgLy8gVE9ETzpNYWtlIGEgdmFyaWFibGUgZnJvbSBnbG9iYWwgbWF4IHdpZHRocy4gSXQgaXMgNjIuNSBtaW51cyBzb21lIHBhZGRpbmdcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gVGhlbWluZ1xuQG1peGluIGRhcmstaGVybygpIHtcbiAgICAuZGFyayB7XG4gICAgICAgIC5oZXJvLCAuaGVybyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb2lsO1xuICAgICAgICAgICAgLnN1YmhlYWRlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRkYXJrLWdyYXk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuc29jaWFsLW1lZGlhIHtcbiAgICAgICAgICAgICAgICAmID4gYS5idXR0b24uaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9pbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmhlcm8tc3RpY2t5LWJhciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkamV0O1xuICAgICAgICAgICAgY29sb3I6ICRkYXJrLWdyYXk7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRzdGVlbDtcbiAgICAgICAgICAgIC5zb2NpYWwtbWVkaWEgPiBhLmJ1dHRvbi5pbWcge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRqZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmhlcm8gLnNvY2lhbC1tZWRpYSxcbiAgICAgICAgLmhlcm8tc3RpY2t5LWJhciAuc29jaWFsLW1lZGlhIHtcbiAgICAgICAgICAgICYgPiBhLmJ1dHRvbi5pbWcge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYWx1bWludW07XG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEuMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkYWx1bWludW07XG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogJHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMS4wO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJiA+IC5mLWRyb3Bkb3duIGEge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkY2hhcmNvYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiRoZXJvLWJnLWltYWdlLWJsdXItcmFkaXVzOiA0cHg7XG4vLyBUaGlzIGFjdHMgYXMgYSBjbGlwcGluZyBib3ggZm9yIHRoZSBibHVycmVkIGJhY2tncm91bmQgaW1hZ2UgYmVsb3dcbi5oZXJvLWJnLWltYWdlLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMHB4O1xuICAgIGJvdHRvbTogMHB4O1xuICAgIGxlZnQ6IDBweDtcbiAgICByaWdodDogMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgei1pbmRleDogMTsgLy8gdGhlIGtleSBydWxlIGZvciBrZWVwaW5nIGEgdGlueSBpbnNldCB3aGl0ZSBibHVyIGZyb20gc2hvd2luZyBhcm91bmQgdGhlIGVkZ2VzXG59XG5cbi8vIEJhY2tncm91bmQgaW1hZ2Ugb2YgaGVyb1xuLmhlcm8tYmctaW1hZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgQGluY2x1ZGUgZnJvbShicC1sYXJnZSkge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgLy8gTGV0IHRoZSBiYWNrZ3JvdW5kIGltYWdlIGV4dGVuZCBvdXRzaWRlIHRoZSBjbGlwcGluZyBjb250YWluZXIgc28gdGhhdCBibHVycmVkIGVkZ2VzIGFyZSBjdXQgb2ZmLlxuICAgICAgICAvLyBXZSB1c2UgdHdpY2UgdGhlIGJsdXIgcmFkaXVzIHRvIGhpZGUgdGhlIGVudGlyZSBhZmZlY3RlZCBibHVycnkgZWRnZSBhcmVhLlxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLTIgKiAkaGVyby1iZy1pbWFnZS1ibHVyLXJhZGl1cztcbiAgICAgICAgYm90dG9tOiAtMiAqICRoZXJvLWJnLWltYWdlLWJsdXItcmFkaXVzO1xuICAgICAgICBsZWZ0OiAtMiAqICRoZXJvLWJnLWltYWdlLWJsdXItcmFkaXVzO1xuICAgICAgICByaWdodDogLTIgKiAkaGVyby1iZy1pbWFnZS1ibHVyLXJhZGl1cztcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgLy8gQXBwbHkgYmx1ciBmaWx0ZXJcbiAgICAgICAgLW8tZmlsdGVyOiBibHVyKCRoZXJvLWJnLWltYWdlLWJsdXItcmFkaXVzKTtcbiAgICAgICAgLW1zLWZpbHRlcjogYmx1cigkaGVyby1iZy1pbWFnZS1ibHVyLXJhZGl1cyk7XG4gICAgICAgIC1tb3otZmlsdGVyOiBibHVyKCRoZXJvLWJnLWltYWdlLWJsdXItcmFkaXVzKTtcbiAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGJsdXIoJGhlcm8tYmctaW1hZ2UtYmx1ci1yYWRpdXMpO1xuICAgICAgICBmaWx0ZXI6IGJsdXIoJGhlcm8tYmctaW1hZ2UtYmx1ci1yYWRpdXMpO1xuICAgICAgICAubm8tYmx1ciAmIHtcbiAgICAgICAgICAgIC1vLWZpbHRlcjogbm9uZTtcbiAgICAgICAgICAgIC1tcy1maWx0ZXI6IG5vbmU7XG4gICAgICAgICAgICAtbW96LWZpbHRlcjogbm9uZTtcbiAgICAgICAgICAgIC13ZWJraXQtZmlsdGVyOiBub25lO1xuICAgICAgICAgICAgZmlsdGVyOiBub25lO1xuICAgICAgICB9XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgjMDAwLCAwLjUpLCByZ2JhKCMwMDAsIDAuMykpO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIE5lZWRlZCB0byBlbnN1cmUgdGhlIGZsb2F0aW5nIHdpZGdldCBpcyBhbGlnbmVkIGFwcHJvcHJpYXRlbHlcbi5oZXJvLmhhcy1mbG9hdGluZy13aWRnZXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAmID4gLmZsZXgtcm93IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAzO1xuICAgIH1cbiAgICAuc29jaWFsLW1lZGlhIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtaW4td2lkdGg6IGluaXRpYWw7XG4gICAgICAgIHRvcDogLTI1cHg7XG4gICAgICAgIHJpZ2h0OiAxMHB4O1xuICAgICAgICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bSkge1xuICAgICAgICAgICAgcmlnaHQ6IDIwcHg7XG4gICAgICAgICAgICB0b3A6IC0xMHB4O1xuICAgICAgICB9XG4gICAgICAgIC5idXR0b24uaW1nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjMxMjVyZW07XG4gICAgICAgICAgICAmID4gLmljb24ge1xuICAgICAgICAgICAgICAgIGZpbGw6ICM5OTk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIEhhbmRsZXMgYWx0ZXJuYXRpdmUgc3R5bGluZyB3aGVuIHRoZXJlIGlzIGEgcGhvdG9cbi5oZXJvLmhhcy1waG90by1jb3ZlciB7XG4gICAgQGluY2x1ZGUgZnJvbShicC1sYXJnZSkge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgLmhlcm8taGVhZGluZyB7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgfVxuICAgICAgICAuaGVyby1yYW5raW5nLWRhdGEtY29udGFjdCBhLFxuICAgICAgICAuaGVyby1yYW5raW5nLWRhdGEtcmFuayBhLFxuICAgICAgICAucmFua2VkLWluLWNhdGVnb3J5LFxuICAgICAgICAuYnJlYWRjcnVtYnMgPiAqIGEsXG4gICAgICAgIC5mb290bm90ZS1saW5rIGEsXG4gICAgICAgIC5oZXJvLXNvY2lhbCAuc29jaWFsLFxuICAgICAgICAuYmxvY2stZmx1c2ggYSB7XG4gICAgICAgICAgICBjb2xvcjogJGxpZ2h0LWJsdWU7XG4gICAgICAgIH1cbiAgICAgICAgLmhlcm8tcmFua2luZy1kYXRhLWNvbnRhY3Qge1xuICAgICAgICAgICAgY29sb3I6ICRzdGVlbC1kYXJrO1xuICAgICAgICB9XG4gICAgICAgIC5oZXJvLXNvY2lhbCAuc29jaWFsID4gLmljb24ge1xuICAgICAgICAgICAgZmlsbDogJGxpZ2h0LWJsdWU7XG4gICAgICAgICAgICAtd2Via2l0LWZpbHRlcjogZHJvcC1zaGFkb3coMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgLjUpKTtcbiAgICAgICAgICAgIC1tb3otZmlsdGVyOiBkcm9wLXNoYWRvdygwIDFweCAycHggcmdiYSgwLCAwLCAwLCAuNSkpO1xuICAgICAgICAgICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDFweCAycHggcmdiYSgwLCAwLCAwLCAuNSkpO1xuICAgICAgICB9XG4gICAgICAgIC5icmVhZGNydW1icyBsaSxcbiAgICAgICAgLmJyZWFkY3J1bWJzIGxpPmEsXG4gICAgICAgIC5oZXJvLWhlYWRpbmcsXG4gICAgICAgIC5oZXJvLXJhbmtpbmctZGF0YSxcbiAgICAgICAgLmhlcm8tcGhvdG9zIGEsXG4gICAgICAgIC5oZXJvLXNvY2lhbD4uZmxleD5hIHtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAuNSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIFBob3RvcyB3cmFwcGVyXG4uaGVyby1waG90b3Mge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgQGluY2x1ZGUgZnJvbShicC1sYXJnZSkge1xuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIH1cbn1cblxuLy8gTGlzdGluZyBvZiBwaG90b3Mgd2l0aGluIHRoZSBwaG90b3N0cmVhbVxuLmhlcm8tcGhvdG9zLWxpc3Rpbmcge1xuICAgIEBpbmNsdWRlIGZyb20oYnAtbGFyZ2UpIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG59XG5cbi5oZXJvLXBob3Rvcy1saXN0aW5nLWl0ZW0ge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNSU7XG4gICAgbWF4LXdpZHRoOiAzMyU7XG4gICAgLW1zLWZsZXg6IDAgMCBhdXRvO1xuICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgICAmOm50aC1jaGlsZChuICsgNCkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBAaW5jbHVkZSBmcm9tKGJwLWxhcmdlKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBmcm9tKGJwLWxhcmdlKSB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIG1heC13aWR0aDogMTE0cHg7XG4gICAgICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpbWcge1xuICAgICAgICBkaXNwbGF5OiBibG9ja1xuICAgIH1cbn1cblxuLy8gRmluYWwgaXRlbSBpbiBwaG90byBpcyBsaW5rIHRvIFBob3RvcyB0YWJcbi5oZXJvLXBob3Rvcy1saXN0aW5nLWxpbmsge1xuICAgIGNvbG9yOiAkbGluay1ibHVlLWxpZ2h0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgIH1cbiAgICBAaW5jbHVkZSBmcm9tKGJwLWxhcmdlKSB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICB3aWR0aDogMTAwcHg7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIH1cbiAgICAgICAgLmhhcy1waG90by1jb3ZlciAmIHtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICM5OTk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIEZsb2F0aW5nIGhlcm8gc3RhdHMgd2lkZ2V0XG4uaGVyby1zdGF0cy13aWRnZXQge1xuICAgIGNvbG9yOiAjMzMzO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgQGluY2x1ZGUgZnJvbShicC1sYXJnZSkge1xuICAgICAgICBAaW5jbHVkZSBib3gtc2hhZG93KDAsIDAsIDVweCwgMCwgI2FhYSwgZmFsc2UpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICBjb2xvcjogIzMzMztcbiAgICAgICAgLi1zaGlmdC11cCAmIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0xOTBweDtcbiAgICAgICAgfVxuICAgICAgICAuLXNoaWZ0LXVwLWNlbnRlciAmIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0yMjJweDtcbiAgICAgICAgfVxuICAgICAgICAuLXNoaWZ0LXVwLWhpZ2hlciAmIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0zMTVweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBoNCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgfVxufVxuXG4uaGVyby1zdGF0cy13aWRnZXQtaGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmx1ZS1kYXJrO1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBoMyB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbn1cblxuLmhlcm8tc3RhdHMtd2lkZ2V0LWxpbmtzLFxuLmhlcm8tc3RhdHMtd2lkZ2V0LXN0YXRzLFxuLmhlcm8tc3RhdHMtd2lkZ2V0LXN0YXRzLTIsXG4uaGVyby1zdGF0cy13aWRnZXQtY29tcGFzcyxcbi5oZXJvLXN0YXRzLXdpZGdldC1mb290ZXIge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xuICAgIHBhZGRpbmc6IDEycHg7XG59XG5cbi5oZXJvLXN0YXRzLXdpZGdldC1zdGF0cyB1bCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaSB7XG4gICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDNweDtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgICAgICBjb2xvcjogI2FhYTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICB9XG4gICAgICAgIHN0cm9uZyB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDcwJTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uaGVyby1zdGF0cy13aWRnZXQtc3RhdHMtMiB1bCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGkge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB9XG4gICAgLmljb24ucHJvLCAuaWNvbi5jb24ge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICBtYXJnaW4tdG9wOiAzcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIH1cbiAgICAubGlzdC10ZXh0IHtcbiAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICB9XG59XG5cbi5oZXJvLXN0YXRzLXdpZGdldC1saW5rcyxcbi5oZXJvLXN0YXRzLXdpZGdldC1jb21wYXNzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICB1bCA+IGxpIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiA1MCVcbiAgICB9XG4gICAgYSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG59XG5cbi5oZXJvLXN0YXRzLWNvbXBhc3MtcmFpbCB7XG4gICAgei1pbmRleDogNTAwO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBsZWZ0OiA1JTtcbiAgICBib3R0b206IDEwcHg7XG4gICAgd2lkdGg6IDkwJTtcbiAgICBhOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAzcHggMCAwIDNweDtcbiAgICAgICAgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XG4gICAgICAgIC13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xuICAgIH1cbiAgICBhOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAgM3B4IDNweCAwO1xuICAgICAgICAtd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7XG4gICAgICAgIC13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDNweDtcbiAgICB9XG59XG5cbi5oZXJvLXN0YXRzLXdpZGdldC1mb290ZXIge1xuICAgIGJhY2tncm91bmQ6ICNlZWU7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy9cbi8vIEtpY2tlciBmb3IgSGVybyBBcnRpY2xlcyB0aGF0IGFyZSBjb21tZW50YXJ5IChORVdTLTkxNClcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vXG5cbi5oZXJvLWNvbW1lbnRhcnktYmFubmVyIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYigxOTYsIDMzLCA0Mik7O1xuICAgIGNvbG9yOiByZ2IoMTk2LCAzMywgNDIpOztcbiAgICBwYWRkaW5nOiA1cHggOHB4IDRweCA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtO1xufVxuIiwiLypkb2Ncbi0tLVxudGl0bGU6IEVycm9yIFBhZ2VzXG5uYW1lOiBhLWVycm9yLXBhZ2VzXG5jYXRlZ29yeTogRXJyb3IgUGF0dGVybnMgLSBFcnJvciBQYWdlc1xuc2VsZWN0b3JzOlxuICAgIC0gLmVycm9yXG4gICAgLSAuZXJyb3ItaGVhZGluZ1xudGVtcGxhdGU6XG4gICAgc3RhdHVzX2NvZGU6IDQwNFxuLS0tXG5cblBhdHRlcm5zIGZvciA0MDQsIDQxMCBhbmQgNTAwIGVycm9yIHBhZ2UgY29udGVudFxuXG5gYGBodG1sX2V4YW1wbGVcbjxkaXYgY2xhc3M9XCJmbGV4LXJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsIHNtYWxsLW1pZGRsZSBzbWFsbC1jZW50ZXJcIj5cbiAgICAgICAgeyUgc2V0IHN0YXR1c19jb2RlID0gNDA0ICV9IFxuICAgICAgICB7JSBpbmNsdWRlIFwidGVtcGxhdGVzL2NvbW1vbi9lcnJvci5udW5qXCIgJX1cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImZsZXgtcm93XCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwgc21hbGwtbWlkZGxlIHNtYWxsLWNlbnRlclwiPlxuICAgICAgICB7JSBzZXQgc3RhdHVzX2NvZGUgPSA0MTAgJX0gXG4gICAgICAgIHslIGluY2x1ZGUgXCJ0ZW1wbGF0ZXMvY29tbW9uL2Vycm9yLm51bmpcIiAlfVxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZmxleC1yb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zbWFsbCBzbWFsbC1taWRkbGUgc21hbGwtY2VudGVyXCI+XG4gICAgICAgIHslIHNldCBzdGF0dXNfY29kZSA9IDUwMCAlfSBcbiAgICAgICAgeyUgaW5jbHVkZSBcInRlbXBsYXRlcy9jb21tb24vZXJyb3IubnVualwiICV9XG4gICAgPC9kaXY+XG48L2Rpdj5cbmBgYFxuXG4qL1xuXG5cblxuLnBhZ2UtZXJyb3Ige1xuICAgIG1hcmdpbjogcmVtLWNhbGMoNDYpIGF1dG87XG4gICAgQGluY2x1ZGUgZnJvbShicC1sYXJnZSkge1xuICAgICAgICBtYXJnaW46IHJlbS1jYWxjKDgyKSBhdXRvO1xuICAgIH1cbn1cblxuLnBhZ2UtZXJyb3ItaGVhZGluZyB7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxMDUpO1xuICAgIEBpbmNsdWRlIGZyb20oYnAtbGFyZ2UpIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNzUpO1xuICAgIH1cbn1cbiIsIi8qZG9jXG4tLS1cbnRpdGxlOiBSZWN0YW5nbGUgQWRcbm5hbWU6IGEtYWQtcmVjdGFuZ2xlXG5jYXRlZ29yeTogQWRzIC0gQWRzXG5zZWxlY3RvcnM6XG4gICAgLSAuYWRcbi0tLVxuXG5FeGFtcGxlIG9mIGEgcmVjdGFuZ2xlIGFkIHRoYXQgaXMgaW4gdGhlIG1haW4gYm9keSAoc2hvd3Mgb25seSBpbiBzbWFsbC1tZWRpdW0pXG5cbllvdSdsbCB3YW50IGEgc3Vycm91bmRpbmcgZGl2IHRoYXQgc2V0cyBwYWRkaW5nIGFmdGVyIGFkIGJlZm9yZSBuZXh0IGVsZW1lbnQsIGZvciBleGFtcGxlIGAuYmxvY2stbG9vc2VyYCBvciBgLmJvcmRlcmVkLWJvdHRvbWBcblxuYGBgaHRtbF9leGFtcGxlP2tpdGNoZW4tc2luaz10cnVlXG48bWFpbj48IS0tIGV4YW1wbGUgb2Ygd2hlcmUgaXQgd291bGQgYmUgaW4gdGhlIGxheW91dCAtLT5cblxuICAgIDxkaXYgY2xhc3M9XCJibG9jay1sb29zZXJcIj5cbiAgICAgICAgeyUgaW5jbHVkZSBcInRlbXBsYXRlcy9jb21tb24vYWRzL3JlY3RhbmdsZS1hLm51bmpcIiAlfVxuICAgIDwvZGl2PlxuXG48L21haW4+XG5cbmBgYFxuXG5FeGFtcGxlIG9mIGFuIGFkIHRoYXQgaXMgaW4gdGhlIHJhaWwgKHdoaWNoIG9ubHkgYXBwZWFyIGluIGxhcmdlLXVwKVxuXG5UaGUgcmFpbCBhZCBoYXMgbm8gcGFkZGluZyBvdXRzaWRlIG9mIHRoZSBhZFxuXG5UbyBlYWNoIGNvbXBvbmVudCBpbiB0aGUgcmFpbCwgYWRkIHRoZSBjbGFzcyBgLmJvcmRlci1ib3R0b21gIHRvIGFkZCB0aGUgc3RhbmRhcmQgMjVweCArIGxpbmUgKyAyNXB4IHNwYWNpbmcgYmV0d2VlbiBjb21wb25lbnRzIGluIHRoZSByYWlsXG5cbmBgYGh0bWxfZXhhbXBsZT9raXRjaGVuLXNpbms9dHJ1ZVxuPGFzaWRlIGlkPVwicmFpbFwiPjwhLS0gZXhhbXBsZSBvZiB3aGVyZSBpdCB3b3VsZCBiZSBpbiB0aGUgbGF5b3V0IC0tPlxuXG4gICAgPGRpdiBjbGFzcz1cImJvcmRlcmVkLWJvdHRvbSBzaG93LWZvci1sYXJnZS11cFwiPlxuICAgICAgICB7JSBpbmNsdWRlIFwidGVtcGxhdGVzL2NvbW1vbi9hZHMvcmVjdGFuZ2xlLWEtbW9iaWxlLm51bmpcIiAlfVxuICAgIDwvZGl2PlxuXG48L2FzaWRlPlxuYGBgXG4qL1xuXG4uYWQge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNzVzIGVhc2UtaW47XG4gICAgLW1vei10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNzVzIGVhc2UtaW47XG4gICAgLW1zLXRyYW5zaXRpb246IG9wYWNpdHkgMC43NXMgZWFzZS1pbjtcbiAgICAtby10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNzVzIGVhc2UtaW47XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjc1cyBlYXNlLWluO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcbn1cblxuLmFkLmRpc3BsYXlBZC1ibG9jayB7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLypkb2Ncbi0tLVxudGl0bGU6IEJyYW5kZnVzZSBBZFxubmFtZTogYi1hZC1icmFuZGZ1c2VcbmNhdGVnb3J5OiBBZHMgLSBBZHNcbnNlbGVjdG9yczpcbiAgICAtIC5hZC1icmFuZGZ1c2Vcbi0tLVxuXG5cbmBgYGh0bWxfZXhhbXBsZT9raXRjaGVuLXNpbms9dHJ1ZVxuXG57JSBpbmNsdWRlIFwidGVtcGxhdGVzL2NvbW1vbi9hZHMvYnJhbmRmdXNlLm51bmpcIiAlfVxuXG5gYGBcbiovXG5cbi5hZC1icmFuZGZ1c2Uge1xuICAgIHBhZGRpbmc6IDAgMTVweDtcbn1cblxuLmJyYW5kZnVzZS1ib3gge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRicmFuZGZ1c2UtY29sb3I7XG4gICAgLy9tYXJnaW46IDJlbSBhdXRvO1xuXG4gICAgLmJyYW5kZnVzZS1sYWJlbC13cmFwcGVyIHtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87IC8vIE92ZXJyaWRlIHN0eWxlcyBmb3IgLnJvdyAucm93XG4gICAgfVxuXG4gICAgLmxhYmVsLmJyYW5kZnVzZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bSkge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5icmFuZGZ1c2UtYWQge1xuICAgIHBhZGRpbmc6IDAuNzVyZW07XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi10b3A6IDA7XG5cbiAgICAubWVkaWEtb2JqZWN0IHtcbiAgICAgICAgd2lkdGg6IDc1cHg7XG4gICAgICAgIGhlaWdodDogNzVweDtcblxuICAgICAgICBAbWVkaWEgI3skbWVkaXVtfSB7XG4gICAgICAgICAgICB3aWR0aDogMjk4cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDE5OHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1lZGlhLWhlYWRpbmcge1xuICAgICAgICBtYXJnaW4tdG9wOiAtM3B4OyAvL2FsaWduIHdpdGggdGh1bWJuYWlsIGltYWdlXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuXG4gICAgICAgIEBtZWRpYSAjeyRtZWRpdW19IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGhlYWRpbmctbGFyZ2UgIWltcG9ydGFudDsgLy9PdmVycmlkZSB0ZXh0LWxhcmdlclxuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgI3skbWVkaXVtfSB7XG4gICAgLmJyYW5kZnVzZS1zcG9uc29yIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIC5icmFuZGZ1c2UtdGFnbGluZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICB9XG59XG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBIb3VzZSBBZFxubmFtZTogYy1hZC1ob3VzZVxuY2F0ZWdvcnk6IEFkcyAtIEFkc1xuc2VsZWN0b3JzOlxuICAgIC0gLmFkLWhvdXNlXG4tLS1cblxuVGhlc2UgYXJlIGRpZmZlcmVudCB2ZXJzaW9uIG9mIGludGVybmFsbHkgcHJvbW90ZWQgYWRzLCBpZS4gSG91c2UgQWRzXG5cbmBgYGh0bWxfZXhhbXBsZT9raXRjaGVuLXNpbms9dHJ1ZVxuPGRpdiBjbGFzcz1cInNtYWxsLTEyIG1lZGl1bS00XCI+PCEtLSBzdHlsaW5nIHRvIGVtdWxhdGUgdGhlIHJhaWwgLS0+XG5cbjxkaXYgY2xhc3M9XCJhZC1ob3VzZSBjbGVhcmZpeFwiPlxuICAgIDxoMz5Nb3JlIGZyb20gTGF1cmE8L2gzPlxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0IHNtYWxsLThcIj5cbiAgICAgICAgPHA+TGF1cmEgY2FuIHVzZSB0aGlzIHdpZGdldCB0byBwcm9tb3RlIHRoZSBib29rIHNoZSB3cm90ZSBsYXN0IHllYXIuPC9wPlxuICAgICAgICA8cCBjbGFzcz1cImFkLWhvdXNlLWxpbmtcIj48YSBocmVmPVwiI1wiPkxpbmsgdG8gcHVyY2hhc2UgJnJhcXVvOzwvYT48L3A+XG4gICAgICAgIDxwIGNsYXNzPVwiYWQtaG91c2UtbGlua1wiPjxhIGhyZWY9XCIjXCI+TGluayB0byBMYXVyYSdzIGJsb2cgJnJhcXVvOzwvYT48L3A+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0IHNtYWxsLTRcIj5cbiAgICAgICAgPGltZyBzcmM9XCJodHRwOi8vbG9yZW1waXhlbC5jb20vODgvMTE1L3Blb3BsZS9cIiBhbHQ9XCJcIj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48L2Rpdj5cbmBgYFxuXG5UaGlzIGV4YW1wbGUgaGFzIGFuIHNob3cgbW9yZSBsaW5rIGFuZCB1c2VzIHNlY29uZGFyeSBsaW5rIGNvbG9ycywgcmVmZXJlbmNlZCBieSBgYS5kb3R0ZWRgXG5cbmBgYGh0bWxfZXhhbXBsZVxuPGRpdiBjbGFzcz1cInNtYWxsLTEyIG1lZGl1bS00XCI+PCEtLSBzdHlsaW5nIHRvIGVtdWxhdGUgdGhlIHJhaWwgLS0+XG5cbjxkaXYgY2xhc3M9XCJhZC1ob3VzZSBjbGVhcmZpeFwiPlxuICAgIDxoMz5Ob3cgSGlyaW5nPC9oMz5cbiAgICA8ZGl2PlxuICAgICAgICA8cD48YSBocmVmPVwiI1wiPlJOLCBMUE4sIENOQTwvYT48L3A+XG4gICAgICAgIDxwPjxhIGhyZWY9XCIjXCIgY2xhc3M9XCJkb3R0ZWRcIj5Mb3VyZGVzIEhlYWx0aCBDYXJlPC9hPiAtIFdpbHRvbiwgQ1Q8L3A+XG4gICAgICAgIDxwPlJOLCBMUE4gJmFtcDsgQ05BIExvdXJkZXMgSGVhbHRoIENhcmUsIFdpbHRvbiBoYXMgcGFydC10aW1lIG9wcG9ydHVuaXRpZXMgZm9yIFJOLCBMUE4gYW5kIENQQSBvbiBhbGwgc2hpZnRzLCBpbmNsdWRlcyBldmVyeSBvdGhlciB3ZWVrZW5kLi4uIDxhIGhyZWY9XCIjXCI+bW9yZTwvYT48L3A+XG4gICAgICAgIDxwIGNsYXNzPVwiYWQtaG91c2UtbGlua1wiPjxhIGhyZWY9XCIjXCI+TW9yZSBqb2JzICZyYXF1bzs8L2E+PC9wPlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjwvZGl2PlxuYGBgXG5cbkluIHRoaXMgZXhhbXBsZSB5b3UgaGF2ZSBhIHJpZ2h0IGFsaWduZWQgaW1hZ2Ugd2l0aCB0ZXh0IHdyYXBwaW5nIGFyb3VuZCBpdC5cblxuYGBgaHRtbF9leGFtcGxlXG48ZGl2IGNsYXNzPVwic21hbGwtMTIgbWVkaXVtLTRcIj48IS0tIHN0eWxpbmcgdG8gZW11bGF0ZSB0aGUgcmFpbCAtLT5cblxuICAgIDxkaXYgY2xhc3M9XCJhZC1ob3VzZVwiPlxuICAgICAgICA8aDM+VGhlIFJ1biAyMDE2PC9oMz5cbiAgICAgICAgPHAgY2xhc3M9XCJibG9jay1mbHVzaFwiPjxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvY2lyY2xlLXRoZXJ1bi1pY29uLnN2Z1wiIGFsdD1cIlwiIGFsaWduPVwidG9wXCIgY2xhc3M9XCJhZC1ob3VzZS1pbmxpbmUtaW1hZ2VcIj5UaGUgUnVuIDIwMTYgY292ZXJzIHRoZSBtYWNoaW5hdGlvbnMgb2YgdGhlIHJhY2UgZm9yIHRoZSBXaGl0ZSBIb3VzZSwgd2l0aCBuZXdzLCBhbmFseXNpcyBhbmQgcGl0aHkuIERhdmlkIENhdGFuZXNlIGlzIHRoZSBmb3VuZGVyIG9mIFRoZSBSdW4gMjAxNi4gIFlvdSBjYW4gZm9sbG93IGhpbSBvbiA8YSBocmVmPVwiI1wiIGFsdD1cIlwiPlR3aXR0ZXI8L2E+IG9yIHJlYWNoIGhpbSBhdCA8YSBocmVmPVwiI1wiIGFsdD1cIlwiPmRjYXRhbmVzZUB1c25ld3MuY29tPC9hPjwvcD5cbiAgICA8L2Rpdj5cblxuPC9kaXY+XG5gYGBcbiovXG5cbi5hZC1ob3VzZSB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5cbiAgICAmID4gaDMge1xuICAgICAgICBAaW5jbHVkZSBoZWFkaW5nKCdsYXJnZScpO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICB9XG5cbiAgICAmID4gLmxlZnQgPiBpbWcsXG4gICAgJiA+IC5sZWZ0ID4gcGljdHVyZSA+IGltZyB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRpbWctbWFyZ2luO1xuICAgIH1cblxuICAgICYgPiAucmlnaHQgPiBpbWcsXG4gICAgJiA+IC5yaWdodCA+IHBpY3R1cmUgPiBpbWcge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRpbWctbWFyZ2luO1xuICAgIH1cblxuICAgICYgcC5hZC1ob3VzZS1saW5rIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTApO1xuICAgIH1cbn1cblxuLmFkLWhvdXNlLWlubGluZS1pbWFnZSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1sZWZ0OiAkaW1nLW1hcmdpbjtcbiAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDEwMCk7XG5cbiAgICBAbWVkaWEgI3skbWVkaXVtfSB7XG4gICAgICAgIG1heC13aWR0aDogcmVtLWNhbGMoMTUwKTtcbiAgICB9XG4gICAgQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgICAgIG1heC13aWR0aDogcmVtLWNhbGMoMTAwKTtcbiAgICB9XG59XG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBMZWFkZXJib2FyZCBBZFxubmFtZTogZC1hZC1sZWFkZXJib2FyZFxuY2F0ZWdvcnk6IEFkcyAtIEFkc1xuLS0tXG5cblF1aWNrIGFuZCBkaXJ0eSBzdGlja3kgbGVhZGVyYm9hcmRcblxuYGBgaHRtbF9leGFtcGxlP2tpdGNoZW4tc2luaz10cnVlXG5cbnslIGluY2x1ZGUgXCJ0ZW1wbGF0ZXMvY29tbW9uL2Fkcy9sZWFkZXJib2FyZC1hLm51bmpcIiAlfVxuXG5gYGBcblxuKi9cblxuLmFkLWxlYWRlcmJvYXJkIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5hZC1yZWN0YW5nbGUge1xuICAgIG1pbi1oZWlnaHQ6IDI1MHB4O1xufVxuXG4ubGVhZGVyYm9hcmQtYS1jb250YWluZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlLWRhcms7XG59XG5cbi5hZC1sZWFkZXJib2FyZC1hIHtcbiAgICBAaW5jbHVkZSB6LWluZGV4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLy8gdGhpcyBhbGxvd3MgJCgnLmFkLWxlYWRlcmJvYXJkLWEnKS5jc3MoJ3otaW5kZXgnKSBjYWxscyB0byByZXR1cm4gdGhlIGNvcnJlY3QgdmFsdWVcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMjBweDtcbiAgICBwYWRkaW5nLXRvcDogMTVweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTVweDtcbiAgICBAaW5jbHVkZSB6LWluZGV4KCRpbXBvcnRhbnQ6IHRydWUpO1xufVxuXG4vLyBBZCBzY3JpcHRzIGxpa2UgdG8gYWRkIGBkaXNwbGF5LWJsb2NrYCB0byB0aGUgZGl2IGNsYXNzZXMgc28gYHNob3ctZm9yLWxhcmdlLXVwYCBnZXRzIHN1cGVyY2VkZWQuXG4vLyAgIFRodXMgd2UgbWFrZSBpdCBtb3JlIHNwZWNpZmljIGhlcmUuXG4uYWQtbGVhZGVyYm9hcmQtYS5zaG93LWZvci1sYXJnZS11cCB7XG4gICAgQGluY2x1ZGUgdG8oYnAtbGFyZ2UpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLy8gdGhpcyBpcyB0aGUgc3BhY2VyIGRpdiB0aGF0IHRha2VzIHRoZSBwbGFjZSBvZiB0aGUgbGVhZGVyYm9hcmRBIHdoZW5cbi8vIGl0IGdvZXMgc3RpY2t5LiBOZWVkcyBhIGhlaWdodCBiZWNhdXNlIGEgaGVpZ2h0IGlzIG5vdCBhc3NpZ25lZCB0byBpdCB1bnRpbFxuLy8gYWZ0ZXIgaXQgaXMgc2Nyb2xsZWQgcGFzdFxuLy8gc28gaWYgaXQgaXMgb3V0IG9mIHZpZXcgYmVjYXVzZSBzb21lb25lIHNjcm9sbGVkIGRvd24gdGhlIHBhZ2Ugb24gbG9hZCwgaXQgd29uJ3QgZ2V0IHRoZSBoZWlnaHQuXG4vL1xuLy8gT25seSBhcHBseSB0aGUgaGVpZ2h0IGlmIGFuIGFkIHdhcyBhY3R1YWxseSBmZXRjaGVkIGFuZCBzaG93bi5cbkBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgIC5hZC1sZWFkZXJib2FyZC1hOm5vdCgnaXMtaGlkZGVuJykgKyAubGVhZGVyYm9hcmRBLXN0aWNreSB7XG4gICAgICAgIGhlaWdodDogMTIwcHg7XG4gICAgfVxufVxuXG4jcmVjdF9oIHtcbiAgICBtaW4taGVpZ2h0OiAyNTBweDtcbn1cblxuI2hsYixcbiNobGJTUyB7XG4gICAgbWluLWhlaWdodDogNTBweDtcbn1cblxuLypkb2Ncbi0tLVxudGl0bGU6IFN0aWNreSBBZFxubmFtZTogZC1hZC1zdGlja3lcbmNhdGVnb3J5OiBBZHMgLSBBZHNcbnNlbGVjdG9yczpcbiAgICAtIC5yYWlsLXN0aWNreVxuLS0tXG5cbk1ha2UgcmFpbCBjb250ZW50IHN0aWNreSB1c2luZyBgLnJhaWwtc3RpY2t5YCB3aXRoIGRhdGEgYXR0cmlidXRlc1xuXG5UaGUgcHVycG9zZSB0byBrZWVwIGEgc2Vjb25kIGFkIHNob3dpbmcgdG8gaW5jcmVhc2UgYWQgcmV2ZW51ZSB3aGVuIHRoZSB1c2VyIHNjcm9sbHNcblxuU2VlIGBfc3RpY2thYmxlLnNjc3NgIGZpbGUgZm9yIG1vcmUgb24gc3R5bGluZyBzdGlja3kgb2JqZWN0c1xuXG5gYGBodG1sX2V4YW1wbGVcblxuPGRpdiBjbGFzcz1cInJhaWwtc3RpY2t5XCI+XG4gICAgPGRpdiBjbGFzcz1cImJvcmRlcmVkLWJvdHRvbVwiPlxuICAgICAgICB7JSBpbmNsdWRlIFwidGVtcGxhdGVzL2NvbW1vbi9hZHMvcmVjdGFuZ2xlLWIubnVualwiICV9XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwianMtc2xlZXBlci1hZ2VudFwiIGRhdGEtYWdlbnQtaWQ9XCJob3VzZS1hZFwiIGRhdGEtYWdlbnQtdHJpZ2dlcj1cIkJSRUFLUE9JTlQtTEFSR0VcIj5cbiAgICA8L2Rpdj5cblxuPC9kaXY+XG5cbmBgYFxuXG4qL1xuLy8gZ2l2ZSBhIGxpdHRsZSBzcGFjZSBiZWxvdyB0aGUgc3RpY2t5IHRvIGFjY291bnQgZm9yIGRpc2NyZXBhbmNpZXMgb24gYm90dG9tIHBhZGRpbmdzIGluc2lkZSB0aGlzIGNvbnRhaW5lclxuLnJhaWwtc3RpY2t5IHtcbiAgICBAaW5jbHVkZSB6LWluZGV4O1xuICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDsgLy8gdGhlIHNjcm9sbC10by1maXhlZCBjaGFuZ2VzIHRoZSBsZWZ0IHBvc2l0aW9uIHZhbHVlLCB0aGlzIG5lZWRzIHRvIHN0YXkgYXV0byBmb3Igc2tpbnNcbiAgICBAaW5jbHVkZSB0byhicC1sYXJnZSkge1xuICAgICAgICAvLyBzaW5jZSB3ZSBhcmUgbm90IGhpZGluZyB0aGUgcmFpbCBvbiBtb2JpbGUgd2UgbmVlZCB0byBtYWtlIHN1cmUgc3RpY2t5IGRvZXNuJ3QgaGFwcGVuXG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi8vIGRvIG5vdCBsZXQgdGhlIHN0aWNreSBoYXBwZW4gaWYgdGhlIG9mZi1jYW52YXMgaXMgb3BlblxuLm9mZmNhbnZhcy1vcGVuIC5yYWlsLXN0aWNreSB7XG4gICAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xufVxuXG4uc2tpbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMTAwdmg7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbn07XG4uc2tpbiNza2luLWxlZnQge1xuICAgIGxlZnQ6IDA7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgdG9wO1xufVxuLnNraW4jc2tpbi1yaWdodCB7XG4gICAgcmlnaHQ6IDA7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCB0b3A7XG59XG4uc2tpbi1pbWcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDI1JTtcbiAgICB3aWR0aDogMTAwJTtcbn07XG4vLyBtb3ZlIHBhZ2Ugc2tpbiBhZCBpZiBvZmYtY2FudmFzIGlzIG9wZW5cbiNhZC1iZyB7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSA1MDBtcyBlYXNlO1xuICAgIC1tb3otdHJhbnNpdGlvbjogLW1vei10cmFuc2Zvcm0gNTAwbXMgZWFzZTtcbiAgICAtbXMtdHJhbnNpdGlvbjogLW1zLXRyYW5zZm9ybSA1MDBtcyBlYXNlO1xuICAgIC1vLXRyYW5zaXRpb246IC1vLXRyYW5zZm9ybSA1MDBtcyBlYXNlO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSA1MDBtcyBlYXNlO1xufVxuXG4ub2ZmY2FudmFzLW9wZW4gI2FkLWJnIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTE1LjYyNXJlbSwgMCwgMCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xNS42MjVyZW0sIDAsIDApO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTUuNjI1cmVtLCAwKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTUuNjI1cmVtLCAwLCAwKTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xNS42MjVyZW0sIDAsIDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTE1LjYyNXJlbSwgMCwgMCk7XG59XG5cbi8vIGZvciA4OHgzMSBhZCByZXF1aXJpbmcgYSBTcG9uc29yZWQgYnk6IGxhYmVsIGluIGZyb250XG4ucmFua2Rlc2MgPiBkaXYge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbn1cblxuLnJhbmtkZXNjOmJlZm9yZSB7XG4gICAgY29udGVudDogJ1Nwb25zb3JlZCBieTonO1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAvL2Zsb2F0OiBsZWZ0O1xuICAgIGNvbG9yOiAkYWx1bWludW07XG4gICAgQGluY2x1ZGUgdGV4dCgnc21hbGwnKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMnB4O1xufVxuXG4jc3RpdGlhbCA+IGRpdiB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBoZWlnaHQ6IDA7XG59XG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBBZGhlc2lvblxubmFtZTogZC1hZC1hZGhlc2lvblxuY2F0ZWdvcnk6IEFkcyAtIEFkc1xuLS0tXG5cbkFuIGFkIHBvc2l0aW9uIHRvIGJlIGZpeGVkIGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2UuXG5cbmBgYGh0bWxfZXhhbXBsZVxuXG57JSBpbmNsdWRlIFwidGVtcGxhdGVzL2NvbW1vbi9hZHMvYWRoZXNpb24ubnVualwiICV9XG5cbmBgYFxuKi9cbi5hZGhlc2lvbi13cmFwcGVyIHtcbiAgICBAaW5jbHVkZSB6LWluZGV4O1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBib3R0b206IDA7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuLmFkLWFkaGVzaW9uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG59XG4uYWRoZXNpb24tY2xvc2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgd2lkdGg6IDM4cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKC9zdGF0aWMvaW1nL2Nsb3NlLWljb24tMnguc3ZnKSAxMDAlIDAgbm8tcmVwZWF0O1xuICAgIC8vYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTExcHg7XG4gICAgbGVmdDogNDclO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMzVweCk7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNzVzIGVhc2UtaW47XG4gICAgLW1vei10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNzVzIGVhc2UtaW47XG4gICAgLW1zLXRyYW5zaXRpb246IG9wYWNpdHkgMC43NXMgZWFzZS1pbjtcbiAgICAtby10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNzVzIGVhc2UtaW47XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjc1cyBlYXNlLWluO1xufVxuXG4uYWRoZXNpb24tc3BhY2VyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZS1kYXJrO1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgYm90dG9tOiAwO1xuICAgIGhlaWdodDogNTBweDtcbn1cblxuLy8gZm9yIHN0aXRpYWwgYWRzXG4uc3RpdGlhbCB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9zdGF0aWMvaW1hZ2VzL2FoL2Nyc2wtdGl0bGUtYmcucG5nKTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgLyogcHV0IHRoaXMgaW4gdGhlIGpzIGZvciBzYWZldHkgKi9cbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMHB4O1xuICAgIHotaW5kZXg6IDk5OTk5O1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxcyBlYXNlLWluLW91dDtcbiAgICAtbW96LXRyYW5zaXRpb246IG9wYWNpdHkgMXMgZWFzZS1pbi1vdXQ7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDFzIGVhc2UtaW4tb3V0O1xufVxuXG4uc3RpdGlhbF9ib3gge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7XG4gICAgLW1vei1ib3gtc2hhZG93OiAwcHggMHB4IDNweCAzcHggIzAwMDtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDBweCAwcHggM3B4IDNweCAjMDAwO1xuICAgIGJveC1zaGFkb3c6IDBweCAwcHggM3B4IDNweCAjMDAwO1xuICAgIG1hcmdpbi10b3A6IDgwcHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYmFja2dyb3VuZDogIzAwMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5zdGl0aWFsX2hlYWRlciB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6ICM2NjY7XG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XG59XG5cbi5zdGl0aWFsX2Nsb3NlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoaHR0cHM6Ly93d3cudXNuZXdzLmNvbS9kYmltYWdlcy9tYXN0ZXIvNDQ2MTQvc3RpdGlhbC14LnBuZykgMTAwJSAwIG5vLXJlcGVhdDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDBweDtcbiAgICByaWdodDogMHB4O1xufVxuXG4udGVhZHMtYWQge1xuICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG59XG5cbi8vIHRoaXMgY2VudGVycyBhZHMgaW4gc2xpZGVzaG93c1xuLnNsaWRlLXdpdGgtYWQgLmFkLXNsaWRlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgPiBkaXYge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xNTBweDtcbiAgICB9XG59XG5cbi5hZC1wbGFjZWhvbGRlci1yZWN0YW5nbGUge1xuICAgIC8vIHdlIG1ha2UgdGhpcyBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQgc28gdGhhdCBpcyBkb2Vzbid0IGNvbnN1bWUgc3BhY2UgaW4gdGhlIHNsaWRlc2hvd1xuICAgIC8vICB0aGUgcGxhY2Vob2xkZXIgd2lsbCBiZSBoaWRkZW4gYnkgdGhlIEpTIHdoZW4gdGhlIGFkIGxvYWRzXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogLTE1MHB4O1xuICAgIG1hcmdpbi10b3A6IC0xMjVweDtcblxuICAgIGhlaWdodDogMjUwcHg7XG4gICAgd2lkdGg6IDMwMHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBiYWNrZ3JvdW5kOiAkc21va2UtZ3JheTtcbiAgICBwYWRkaW5nLXRvcDogNXB4O1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJ0FkdmVydGlzZW1lbnQnO1xuICAgICAgICBAaW5jbHVkZSB0ZXh0KCdzbWFsbGVyJyk7XG4gICAgICAgIGNvbG9yOiAkYWx1bWludW07XG4gICAgfVxuICAgIC5hZC13YWl0aW5nLXNwaW5uZXIge1xuICAgICAgICAvLyB0aGlzIGlzIHRoZSBzcGlubmVyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTE2cHg7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBtYXJnaW4tdG9wOiAtMTZweDtcbiAgICAgICAgZmlsbDogIzMzMztcbiAgICB9XG59XG5cbi8vQWRzIGluIHRoZSBib2R5IG9mIGZ1bGwgd2lkdGggYXJ0aWNsZXMgb24gbGFyZ2UgYXJlIGZsb2F0ZWRcbkBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgIC5sYXJnZS1vZmZzZXQtMiAuYWQtaW4tdGV4dCB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNnJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDJyZW07XG4gICAgfVxufVxuXG4vL0luLXRleHQgYWRzIG5lZWQgdG8gY2xlYXIgZmxvYXRlZCBlbmhhbmNlbWVudHMgb24gbWVkaXVtXG5AbWVkaWEgI3skbWVkaXVtLW9ubHl9IHtcbiAgICAuYWQtaW4tdGV4dCB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbn1cblxuLy9GaXhlcyBzb21lIGR1bWIgTkROIGJlaGF2aW9yIHdoZXJlIHRoZWlyIHZpZGVvIG92ZXJsYXBzIHRoZSBzdGlja3kgaGVhZGVyXG4ubmRuX3Jlc3BvbnNpdmVDb250YWluZXIubmRuX3NsaWRlclRvcENvbnRhaW5lciB7XG4gICAgei1pbmRleDogMTtcbn1cblxuLy8gVGhlbWluZ1xuQG1peGluIGRhcmstYWQoKSB7XG4gICAgLmRhcmsge1xuICAgICAgICAuYWQtbGVhZGVyYm9hcmQsXG4gICAgICAgIC5hZC1sZWFkZXJib2FyZC1hIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRqZXQ7XG4gICAgICAgIH1cblxuICAgICAgICAudGh1bWJuYWlscy1iIC5zeW5kaWNhdGVkSXRlbSAudmlkZW8tdGl0bGUsIC8vIExpbmtzXG4gICAgICAgIC5vcmdhbmljLXRodW1ibmFpbHMtYiAudmlkZW8tdGl0bGUge1xuXG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi50cmFja2luZy1waXhlbCB7XG4gICAgb3BhY2l0eTogMC4wMDAxO1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogMXB4O1xuICAgIHdpZHRoOiAxcHg7XG59XG4iLCIvKmRvY1xuLS0tXG50aXRsZTogRGVmaW5pdGlvbiBMaXN0XG5uYW1lOiBhLWRlZmluaXRpb24tbGlzdFxuY2F0ZWdvcnk6IERhdGEgUGF0dGVybnMgLSBEZWZpbml0aW9uIExpc3Rcbi0tLVxuXG5IZXJlIGlzIGEgYmFzaWMgZGVmaW5pdGlvbiBsaXN0LlxuXG5UaGUgSFRNTCA8ZGw+IEVsZW1lbnQgKG9yIEhUTUwgRGVzY3JpcHRpb24gTGlzdCBFbGVtZW50KSBlbmNsb3NlcyBhIGxpc3Qgb2YgcGFpcnMgb2YgdGVybXMgYW5kIGRlc2NyaXB0aW9ucy4gXG5Db21tb24gdXNlcyBmb3IgdGhpcyBlbGVtZW50IGFyZSB0byBpbXBsZW1lbnQgYSBnbG9zc2FyeSBvciB0byBkaXNwbGF5IG1ldGFkYXRhIChhIGxpc3Qgb2Yga2V5LXZhbHVlIHBhaXJzKS5cblxuQnkgZGVmYXVsdCwgdGhlIGtleSBhbmQgdmFsdWUgb2YgZWFjaCBpdGVtIGFyZSBvbiB0aGUgc2FtZSBsaW5lIGJ1dCBlYWNoIGxpc3QgaXRlbSBpcyBvbiBhIHNlcGFyYXRlIGxpbmUuIFxuT25jZSB3ZSBoaXQgdGhlIGBtZWRpdW1gIGJyZWFrcG9pbnQgdGhlICp3aG9sZSBsaXN0KiBlbmRzIHVwIG9uIHRoZSBzYW1lIGxpbmUgd2l0aCBlYWNoIGl0ZW0gc2VwYXJhdGVkIHdpdGggYSBwaXBlLlxuXG5Zb3UgY2FuIHVzZSBhbnkgY29tYmluYXRpb24gdGV4dCBzaXplIHlvdSB3YW50IGFuZCB0aGUgdGV4dCB3aWxsIHN0aWxsIFwiYmFzZWxpbmVcIi5cblxuYGBgaHRtbF9leGFtcGxlP2tpdGNoZW4tc2luaz10cnVlXG48ZGwgY2xhc3M9XCJpbmxpbmUtZGxcIj5cbiAgICA8ZHQ+PHN0cm9uZyBjbGFzcz1cInRleHQtbGFyZ2VcIj4yMywzMDA8L3N0cm9uZz48L2R0PiA8ZGQgY2xhc3M9XCJ0ZXh0LW11dGVkIHRleHQtc21hbGxcIj5Qcm9qZWN0ZWQgSm9iczwvZGQ+XG4gICAgPGR0PjxzdHJvbmcgY2xhc3M9XCJ0ZXh0LWxhcmdlXCI+JDE0NiwzNDA8L3N0cm9uZz48L2R0PiA8ZGQgY2xhc3M9XCJ0ZXh0LW11dGVkIHRleHQtc21hbGxcIj5NZWRpYW4gU2FsYXJ5PC9kZD5cbiAgICA8ZHQ+PHN0cm9uZyBjbGFzcz1cInRleHQtbGFyZ2VcIj4wLjklPC9zdHJvbmc+PC9kdD4gPGRkIGNsYXNzPVwidGV4dC1tdXRlZCB0ZXh0LXNtYWxsXCI+VW5lbXBsb3ltZW50IFJhdGU8L2RkPlxuPC9kbD5cbmBgYFxuKi9cblxuJGlubGluZS1kbC1zcGFjaW5nOiAxMDtcblxuLmlubGluZS1kbCB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgICBkdCwgZGQge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICBkZDphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICdcXEEnO1xuICAgICAgICB3aGl0ZS1zcGFjZTogcHJlO1xuICAgIH1cblxuICAgIEBtZWRpYSAjeyRtZWRpdW19IHtcbiAgICAgICAgZHQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0tY2FsYygkaW5saW5lLWRsLXNwYWNpbmcgLSA1JSk7IC8vIHRoaXMgaXMgcHJvYmFibHkgd3JvbmcsIGJ1dCBpbiBhIGh1cnJ5XG4gICAgICAgIH1cbiAgICAgICAgZGQ6bm90KDpsYXN0LWNoaWxkKTphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRpcm9uO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtLWNhbGMoJGlubGluZS1kbC1zcGFjaW5nKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qZG9jXG4tLS1cbnRpdGxlOiBGZWF0dXJlXG5uYW1lOiBhLWZlYXR1cmVcbmNhdGVnb3J5OiBNZWRpYSBPYmplY3RzIC0gRmVhdHVyZVxudGVtcGxhdGU6XG4gICAgZmVhdHVyZTpcbiAgICAgICAgaW1hZ2U6XG4gICAgICAgICAgICBzbWFsbDogaHR0cDovL2xvcmVtcGl4ZWwuY29tLzI5MC8xNjEvcGVvcGxlL1xuICAgICAgICAgICAgbWVkaXVtOiBodHRwOi8vbG9yZW1waXhlbC5jb20vNjg1LzM2OS9wZW9wbGUvXG4gICAgICAgICAgICBhbHQ6IEZlYXR1cmVcbiAgICAgICAgdXJsOiAjXG4gICAgICAgIGhlYWRpbmc6IEhvdyB0byB3b3JrIGEgUm9vbSBXaGVuIHRoZSBSb29tIGlzIEdpZ2FudGljXG4gICAgICAgIGxlYWQ6IEZpdmUgdGlwcyBmb3IgbmV0d29ya2luZyBhdCBsYXJnZSwgaW50aW1pZGF0aW5nIGV2ZW50cy5cbnNlbGVjdG9yczpcbiAgICAtIC5mZWF0dXJlXG4tLS1cblxuQ29uc2lzdGVudCB3aXRoIGZpcmVmbHkgbmFtaW5nIGNvbnZlbnRpb24uIEEgZmVhdHVyZSBpcyB1c2VkIGRlc2NyaWJlcyBhIGhlYWRsaW5lIGltYWdlIHdpdGggdGhlIGhlYWRsaW5lIGFuZCBhZGRpdGlvbmFsIHRleHQgYmVsb3cgdGhlIGltYWdlLlxuXG5UaGUgZGVmYXVsdCBmZWF0dXJlIHNob3djYXNlcyB0aGUgZnVsbCBpbWFnZSB3aXRoIHRoZSB0ZXh0IGJlbG93IHRoZSBpbWFnZS5cblxuYGBgaHRtbF9leGFtcGxlP2tpdGNoZW4tc2luaz10cnVlXG48ZGl2IGNsYXNzPVwicm93XCI+XG57JSBpbmNsdWRlIFwidGVtcGxhdGVzL2NvbW1vbi9mZWF0dXJlLm51bmpcIiAlfVxuPC9kaXY+XG5cbmBgYFxuKi9cblxuLmZlYXR1cmUge1xuICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDI1KTtcblxuICAgID4gaDIge1xuICAgICAgICBmb250LXNpemU6ICRoZWFkaW5nLWxhcmdlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkYmxvY2stdGlnaHRlcjtcblxuICAgICAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRoZWFkaW5nLWxhcmdlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkYmxvY2stbm9ybWFsO1xuICAgIH1cblxuICAgID4gcCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0tY2FsYygyNSk7XG4gICAgICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHRleHQtbGFyZ2U7XG4gICAgICAgIH1cblxuICAgICAgICAmLmNhcHRpb24ge1xuICAgICAgICAgICAgY29sb3I6ICRhbHVtaW51bTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHRleHQtc21hbGw7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNlY29uZGFyeS1zaGFkb3ctY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIEZpcmVmbHkgZmVhdHVyZSBmb3Igd2lkZSBsYXlvdXQgKi9cbkBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgIGhyLmxhcmdlLTgubGFyZ2Utb2Zmc2V0LTIgKyBpbWcgKyBwLnRleHQtbXV0ZWQudGV4dC1zbWFsbCB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOjgsICRvZmZzZXQ6Mik7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxufVxuIiwiLypkb2Ncbi0tLVxudGl0bGU6IEJyZWFkY3J1bWJzXG5uYW1lOiBhLWJyZWFkY3J1bWJzXG5jYXRlZ29yeTogTmF2aWdhdGlvbiAtIEJyZWFkY3J1bWJzXG4tLS1cblxuQnJlYWRjcnVtYnMgY29tZSBpbiBoYW5keSB0byBzaG93IGEgbmF2aWdhdGlvbiB0cmFpbCBmb3IgdXNlcnMgY2xpY2tpbmcgdGhyb3VnaCBhIHNpdGUgb3IgYXBwLi4gVGhleSdsbCBmaWxsIG91dCAxMDAlIG9mIHRoZSB3aWR0aCBvZiB0aGVpciBwYXJlbnQgY29udGFpbmVyLlxuXG5BZGQgYSBjbGFzcyBvZiBgLmJyZWFkY3J1bWJzYCB0byBhIGB1bGAgZWxlbWVudC4gTGlzdCBpdGVtcyB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgc3R5bGVkLCBhbmQgeW91IGNhbiBhZGQgYC5jdXJyZW50YCBvciBgLnVuYXZhaWxhYmxlYCBjbGFzc2VzIHRvIHRoZSBsaXN0IGl0ZW1zIHRvIGRlbm90ZSB0aGVpciBzdGF0ZS5cblxuYGBgaHRtbF9leGFtcGxlP2tpdGNoZW4tc2luaz10cnVlXG48dWwgY2xhc3M9XCJicmVhZGNydW1ic1wiIHJvbGU9XCJtZW51YmFyXCIgYXJpYS1sYWJlbD1cImJyZWFkY3J1bWJzXCI+XG4gICAgPGxpIHJvbGU9XCJtZW51aXRlbVwiPjxhIGhyZWY9XCIjXCI+SG9tZTwvYT48L2xpPlxuICAgIDxsaSByb2xlPVwibWVudWl0ZW1cIj48YSBocmVmPVwiI1wiPkZlYXR1cmVzPC9hPjwvbGk+XG4gICAgPGxpIHJvbGU9XCJtZW51aXRlbVwiIGNsYXNzPVwidW5hdmFpbGFibGVcIj48YSBocmVmPVwiI1wiPkdlbmUgU3BsaWNpbmc8L2E+PC9saT5cbiAgICA8bGkgcm9sZT1cIm1lbnVpdGVtXCIgY2xhc3M9XCJjdXJyZW50XCI+PGEgaHJlZj1cIiNcIj5DbG9uaW5nPC9hPjwvbGk+XG48L3VsPlxuYGBgXG5cbllvdSBjYW4gYWxzbyBhZGQgYSBgLmJyZWFkY3J1bWJzYCBjbGFzcyB0byBhIGAubmF2YCBlbGVtZW50IGNvbnRhaW5pbmcgYW5jaG9yIGxpbmtzIHRvIGdldCB0aGUgc2FtZSByZXN1bHQuXG5cbmBgYGh0bWxfZXhhbXBsZVxuPG5hdiBjbGFzcz1cImJyZWFkY3J1bWJzXCIgcm9sZT1cIm1lbnViYXJcIiBhcmlhLWxhYmVsPVwiYnJlYWRjcnVtYnNcIj5cbiAgICA8YSByb2xlPVwibWVudWl0ZW1cIiBocmVmPVwiI1wiPkhvbWU8L2E+XG4gICAgPGEgcm9sZT1cIm1lbnVpdGVtXCIgaHJlZj1cIiNcIj5GZWF0dXJlczwvYT5cbiAgICA8YSByb2xlPVwibWVudWl0ZW1cIiBjbGFzcz1cInVuYXZhaWxhYmxlXCIgaHJlZj1cIiNcIj5HZW5lIFNwbGljaW5nPC9hPlxuICAgIDxhIHJvbGU9XCJtZW51aXRlbVwiIGNsYXNzPVwiY3VycmVudFwiIGhyZWY9XCIjXCI+Q2xvbmluZzwvYT5cbjwvbmF2PlxuYGBgXG4qL1xuXG4vKmRvY1xuLS0tXG50aXRsZTogQWNjZXNzaWJpbGl0eVxubmFtZTogYi1hY2Nlc3NpYmlsaXR5XG5jYXRlZ29yeTogTmF2aWdhdGlvbiAtIEJyZWFkY3J1bWJzXG4tLS1cblxuVXNlIHRoaXMgc25pcHBldCB0byBtYWtlIGJyZWFkY3J1bWJzIG1vcmUgYWNjZXNzaWJsZS4gIEFkZGluZyB0aGUgcm9sZSBhdHRyaWJ1dGUgZ2l2ZXMgdGhlIGNvbnRleHQgdG8gYSBzY3JlZW4gcmVhZGVyLiAgVGhlIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGUgd2lsbCBhbGxvdyBhIHNjcmVlbiByZWFkZXIgdG8gY2FsbCBvdXQgd2hhdCB0aGUgY29tcGVuZW50IGlzIHRvIHRoZSB1c2VyLiAgV2UgYWRkZWQgc29tZSBTY3NzIHNvIHRoZSBzY3JlZW4gcmVhZGVyIHNraXBzIHRoZSBgL2AuIFVzaW5nIHRoZSBUYWIgYnV0dG9uLCBhIHVzZXIgY2FuIG5hdmlnYXRlIHVudGlsIHRoZXkndmUgcmVhY2hlZCB0aGUgbGluayBiZWxvdy4gKFVzZSBTaGlmdCtUYWIgdG8gbmF2aWdhdGUgYmFjayBvbmUgc3RlcC4pXG5cbklmIHlvdSBhcmUgdXNpbmcgYHVuYXZhaWxhYmxlYCBsaW5rLCBmaXZlIGl0IGFuIGBhcmlhLWRpc2FibGVkYCBhdHRyaWJ1dGUgYXMgaW4gdGhpcyBleGFtcGxlLlxuXG5gYGBodG1sX2V4YW1wbGVcbjxuYXYgY2xhc3M9XCJicmVhZGNydW1ic1wiIHJvbGU9XCJtZW51YmFyXCIgYXJpYS1sYWJlbD1cImJyZWFkY3J1bWJzXCI+XG4gICAgPGxpIHJvbGU9XCJtZW51aXRlbVwiPjxhIGhyZWY9XCIjXCI+SG9tZTwvYT48L2xpPlxuICAgIDxsaSByb2xlPVwibWVudWl0ZW1cIj48YSBocmVmPVwiI1wiPkZlYXR1cmVzPC9hPjwvbGk+XG4gICAgPGxpIHJvbGU9XCJtZW51aXRlbVwiIGNsYXNzPVwidW5hdmFpbGFibGVcIiByb2xlPVwiYnV0dG9uXCIgYXJpYS1kaXNhYmxlZD1cInRydWVcIj48YSBocmVmPVwiI1wiPkdlbmUgU3BsaWNpbmc8L2E+PC9saT5cbiAgICA8bGkgcm9sZT1cIm1lbnVpdGVtXCIgY2xhc3M9XCJjdXJyZW50XCI+PGEgaHJlZj1cIiNcIj5DbG9uaW5nPC9hPjwvbGk+XG48L25hdj5cbmBgYFxuKi9cblxuLy8gY29sb3JpemUgdG8gYmUgdGhlIHNhbWUgY29sb3IgYXMgdGhlIHNvY2lhbCBidXR0b25zIGluIGhlcm8gb25seVxuLmJyZWFkY3J1bWJzLWl0ZW0uaW4taGVybyB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjb2xvcjogJHNvY2lhbC1pY29uLWNvbG9yO1xuXG4gICAgLy8gdHJ1bmNhdGUgYXQgYXBwcm94aW1hdGVseSA0NSBjaGFyYWN0ZXJzXG4gICAgbWF4LXdpZHRoOiAzMzBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICBAaW5jbHVkZSBmcm9tKGJwLWxhcmdlKSB7XG4gICAgICAgIC5oYXMtcGhvdG8tY292ZXIgJiB7XG4gICAgICAgICAgICBjb2xvcjogJGxpZ2h0LWJsdWU7IC8vIGxpZ2h0IGJsdWUgaWYgcGhvdG8gYmFja2dyb3VuZFxuICAgICAgICB9XG4gICAgfVxufVxuXG4uYnJlYWRjcnVtYnMtaXRlbS5pbi1oZXJvIGEge1xuICAgIGNvbG9yOiAkYmFzZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICRqdW1ibyAhaW1wb3J0YW50O1xuICAgICAgICBAaW5jbHVkZSBmcm9tKGJwLWxhcmdlKSB7XG4gICAgICAgICAgICAuaGFzLXBob3RvLWNvdmVyICYge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuXG5UaGlzIGRlZmluZXMgc3R5bGluZyBmb3IgdXNlIHdpdGggdGhlIGpxdWVyeS5yYW5nZVNsaWRlcigpIHBsdWdpbi5cblxuKi9cblxuLnJhbmdlLXNsaWRlciB7XG5cbiAgICAkYmFja2dyb3VuZC1oZWlnaHQ6IHJlbS1jYWxjKDQpO1xuICAgICRoYW5kbGUtc2l6ZTogcmVtLWNhbGMoMzApO1xuICAgICRoYW5kbGUtc2l6ZS1sYXJnZS11cDogcmVtLWNhbGMoMjApO1xuICAgICRoaXN0b2dyYW0taGVpZ2h0OiByZW0tY2FsYyg1MCk7XG5cbiAgICBwYWRkaW5nLXRvcDogJGhhbmRsZS1zaXplIC8gMjtcbiAgICBwYWRkaW5nLWxlZnQ6ICRoYW5kbGUtc2l6ZSAvIDI7XG4gICAgcGFkZGluZy1yaWdodDogJGhhbmRsZS1zaXplIC8gMjtcblxuICAgIEBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICAgICBwYWRkaW5nLXRvcDogJGhhbmRsZS1zaXplLWxhcmdlLXVwIC8gMjtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkaGFuZGxlLXNpemUtbGFyZ2UtdXAgLyAyO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkaGFuZGxlLXNpemUtbGFyZ2UtdXAgLyAyO1xuICAgIH1cblxuICAgICYuaGFzLWhpc3RvZ3JhbSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH1cblxuICAgICZbZGlzYWJsZWRdLCAmLmRpc2FibGVkIHtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgIH1cblxuICAgIC8vIFNvbWUgb3ZlcnJpZGVzIGZvciBkZWZhdWx0IG5vVWlTbGlkZXIgc3R5bGVzLlxuXG4gICAgLm5vVWktYmFja2dyb3VuZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRiYXNlO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG5cbiAgICAubm9VaS1jb25uZWN0IHtcbiAgICAgICAgYmFja2dyb3VuZDogJGxpbmstYmx1ZS1saWdodDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cblxuICAgIC5ub1VpLWhvcml6b250YWwge1xuICAgICAgICBoZWlnaHQ6ICRiYWNrZ3JvdW5kLWhlaWdodDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogKCRoYW5kbGUtc2l6ZSAvIDIpICsgJGJsb2NrLXRpZ2h0O1xuXG4gICAgICAgIEBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogKCRoYW5kbGUtc2l6ZS1sYXJnZS11cCAvIDIpICsgJGJsb2NrLXRpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm5vVWktaGFuZGxlIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGJhc2U7XG4gICAgICAgIG9wYWNpdHk6IDAuODtcblxuICAgICAgICB3aWR0aDogJGhhbmRsZS1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRoYW5kbGUtc2l6ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGhhbmRsZS1zaXplIC8gMjtcbiAgICAgICAgbGVmdDogLSRoYW5kbGUtc2l6ZSAvIDI7XG4gICAgICAgIHRvcDogKC0kaGFuZGxlLXNpemUgLyAyKSArICgkYmFja2dyb3VuZC1oZWlnaHQgLyAyKTtcblxuICAgICAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB3aWR0aDogJGhhbmRsZS1zaXplLWxhcmdlLXVwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkaGFuZGxlLXNpemUtbGFyZ2UtdXA7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkaGFuZGxlLXNpemUtbGFyZ2UtdXAgLyAyO1xuICAgICAgICAgICAgbGVmdDogLSRoYW5kbGUtc2l6ZS1sYXJnZS11cCAvIDI7XG4gICAgICAgICAgICB0b3A6ICgtJGhhbmRsZS1zaXplLWxhcmdlLXVwIC8gMikgKyAoJGJhY2tncm91bmQtaGVpZ2h0IC8gMik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubm9VaS1oYW5kbGU6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAubm9VaS1oYW5kbGU6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5zdmctY29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJGhpc3RvZ3JhbS1oZWlnaHQ7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLnN2Zy1jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgaGVpZ2h0OiAkaGlzdG9ncmFtLWhlaWdodDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmhpc3RvZ3JhbSB7XG4gICAgICAgIHNoYXBlLXJlbmRlcmluZzogY3Jpc3BFZGdlcztcbiAgICB9XG5cbiAgICByZWN0IHtcbiAgICAgICAgZmlsbDogJHNtb2tlO1xuICAgIH1cblxuICAgIHJlY3Quc2VsZWN0ZWQge1xuICAgICAgICBmaWxsOiAkZ2FpbnNib3JvO1xuICAgIH1cblxufVxuIiwiLypkb2Ncbi0tLVxudGl0bGU6IERyaWxsZG93biBNZW51XG5uYW1lOiBkcmlsbGRvd24tbWVudVxuY2F0ZWdvcnk6IFNlYXJjaCBQYXR0ZXJucyAtIERyaWxsZG93biBNZW51XG5hdXRob3JzOiBQYWJsbyBMYXpvXG4tLS1cblxuYGBgaHRtbF9leGFtcGxlP2tpdGNoZW4tc2luaz10cnVlXG5uZWVkIGFuIGV4YW1wbGVcbmBgYFxuXG5PcHRpb25zOlxuXG4qL1xuXG4vKmRvY1xuLS0tXG50aXRsZTogRHJpbGxkb3duIE1lbnUgSmF2YXNjcmlwdFxubmFtZTogZHJpbGxkb3duLW1lbnUtamF2YXNjcmlwdFxuXG5jYXRlZ29yeTogU2VhcmNoIFBhdHRlcm5zIC0gRHJpbGxkb3duIE1lbnVcbmF1dGhvcnM6IFBhYmxvIExhem9cbi0tLVxuXG5gYGBqc19leGFtcGxlXG4kKCcuZHJpbGxkb3duLW1lbnUnKS5kcmlsbGRvd24oKTtcbmBgYFxuKi9cblxuLmRyaWxsZG93bi1tZW51PnVsIHtcbiAgICBtYXJnaW46IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICB1bCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbGlzdC1zdHlsZTogaW5oZXJpdDtcbiAgICB9XG4gICAgYSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICYuc2Vjb25kYXJ5IHtcbiAgICAgICAgYm9yZGVyOiAjQ0NDQ0NDIDFweCBzb2xpZDtcbiAgICAgICAgY29sb3I6ICM1NzU3NTc7XG4gICAgICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjZWNlY2VjIDAlLCB3aGl0ZSAxMDAlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBsaS5hY3RpdmU+dWw+bGk+YSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgICBsaS5hY3RpdmUuZW5kIGEge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgLmFjdGl2ZT51bD4uZHJpbGxkb3duLWJhY2sge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMxRDUyOUMgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmPmxpLmFjdGl2ZT51bD4uZHJpbGxkb3duLWJhY2sge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuIiwiLypkb2Ncbi0tLVxudGl0bGU6IENpcmNsZSBJY29uc1xubmFtZTogZC1jaXJjbGUtaWNvbnNcbmNhdGVnb3J5OiBJY29ucyAmIEltYWdlcyAtIFNWRyBJbWFnZXNcbi0tLVxuXG5IZXJlIGFyZSB0aGUgaWNvbnMgd2UgaGF2ZSBzbyBmYXIuLi5cblxuYGBgaHRtbF9leGFtcGxlP2tpdGNoZW4tc2luaz10cnVlXG5cbjwhLS0tLS0tIEdMT0JBTCBJQ09OIFNFVCAtLS0tLS0tPlxuPGg0IGNsYXNzPVwiaGVhZGluZy1ub3JtYWwgdGV4dC1jb2FsXCIgaWQ9XCJnbG9iYWwtY2lyY2xlc1wiPkdsb2JhbDwvaDQ+XG48dWwgY2xhc3M9XCJzbWFsbC1ibG9jay1ncmlkLTMgbWVkaXVtLWJsb2NrLWdyaWQtNCBsYXJnZS1ibG9jay1ncmlkLTYgYmxvY2stbG9vc2VcIj5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvY2lyY2xlLWNvbXBhcmUtaWNvbi5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5Db21wYXJlPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5jaXJjbGUtY29tcGFyZS1pY29uPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvY2lyY2xlLWJlc3Rmb3JtZS1pY29uLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPkJlc3QgZm9yIE1lPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5jaXJjbGUtYmVzdGZvcm1lLWljb248L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2NpcmNsZS1zZWFyY2gtaWNvbi5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPlNlYXJjaDxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+Y2lyY2xlLXNlYXJjaC1pY29uPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvY2lyY2xlLWJhZGdlLWljb24uc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+QmFkZ2U8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmNpcmNsZS1iYWRnZS1pY29uPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvY29udGFjdC11cy5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5Db250YWN0IFVzPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5jb250YWN0LXVzPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvam9icy5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5Kb2JzPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5qb2JzPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvbWVkaWEta2l0LnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPk1lZGlhIEtpdDxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+bWVkaWEta2l0PC9zcGFuPjwvcD5cbiAgPC9saT5cbjwvdWw+XG48aHI+XG48IS0tLS0tLSBORVdTICYgT1BJTklPTiBJQ09OIFNFVCAtLS0tLS0tPlxuPGg0IGNsYXNzPVwiaGVhZGluZy1ub3JtYWwgdGV4dC1jb2FsXCIgaWQ9XCJuZXdzLWNpcmNsZXNcIj5OZXdzICYgT3BpbmlvbjwvaDQ+XG48dWwgY2xhc3M9XCJzbWFsbC1ibG9jay1ncmlkLTMgbWVkaXVtLWJsb2NrLWdyaWQtNCBsYXJnZS1ibG9jay1ncmlkLTYgYmxvY2stbG9vc2VcIj5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvY2lyY2xlLXRqc3BvbGl0aWNzLWljb24uc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+VGhvbWFzIEplZmZlcnNvbiBTdHJlZXQgPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5jaXJjbGUtdGpzcG9saXRpY3MtaWNvbjwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2NpcmNsZS1kZWJhdGVjbHViLWljb24uc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+RGViYXRlIENsdWI8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmNpcmNsZS1kZWJhdGVjbHViLWljb248L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2NpcmNsZS1lY29ub21pY2ludGVsbGlnZW5jZS1pY29uLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+RWNvbm9taWMgSW50ZWxsaWdlbmNlPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5jaXJjbGUtZWNvbm9taWNpbnRlbGxpZ2VuY2UtaWNvbjwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL3BvbGljeS1kb3NlLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPlBvbGljeSBEb3NlPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5wb2xpY3ktZG9zZTwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2NpcmNsZS1rbm93bGVkZ2ViYW5rLWljb24uc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+S25vd2xlZGdlIEJhbms8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmNpcmNsZS1rbm93bGVkZ2ViYW5rLWljb248L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9jaXJjbGUtZGVjaXNpb24yMDE2LWljb24uc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+RGVjaXNpb24gMjAxNjxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+Y2lyY2xlLWRlY2lzaW9uMjAxNi1pY29uPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvY2lyY2xlLWRpdmlkZW5kZ3Jvd2Vycy1pY29uLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPkRhdGEgTWluZTxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+Y2lyY2xlLWRpdmlkZW5kZ3Jvd2Vycy1pY29uPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvY2lyY2xlLXdhc2hpbmd0b253aGlzcGVycy1pY29uLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPldhc2hpbmd0b24gV2hpc3BlcnM8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmNpcmNsZS13YXNoaW5ndG9ud2hpc3BlcnMtaWNvbjwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL3ZpZXdzLXlvdS1jYW4tdXNlLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPlZpZXdzIFlvdSBDYW4gVXNlPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj52aWV3cy15b3UtY2FuLXVzZTwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL3RlY2gtYmxvZy5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5UZWNoIEJsb2c8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPnRlY2gtYmxvZzwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2NpcmNsZS1tZWdhcGhvbmVzLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPkNpdmlsIFdhcnM8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmNpcmNsZS1tZWdhcGhvbmVzPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvY2lyY2xlLWVtYWlsLWljb24uc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+RW1haWw8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmNpcmNsZS1lbWFpbC1pY29uPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvY2lyY2xlLWF0dGhlZWRnZS1pY29uLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPkF0IHRoZSBFZGdlPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5jaXJjbGUtYXR0aGVlZGdlLWljb248L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9jaXJjbGUtaW50ZXJuYXRpb25hbC1pY29uLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPldvcmxkIFJlcG9ydDxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+Y2lyY2xlLWludGVybmF0aW9uYWwtaWNvbjwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2NpcmNsZS1rZW53YWxzaHN3YXNoaW5ndG9uLWljb24uc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+S2VuIFdhbHNoJ3MgV2FzaGluZ3Rvbjxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+Y2lyY2xlLWtlbndhbHNoc3dhc2hpbmd0b24taWNvbjwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL29wLWVkLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPk9wIEVkPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5vcC1lZDwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2NpcmNsZS10aGVydW4taWNvbi5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5UaGUgUnVuPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5jaXJjbGUtdGhlcnVuLWljb248L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9jaXJjbGUtdGhlY2hhc2UtaWNvbi5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5UaGUgQ2hhc2U8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmNpcmNsZS10aGVjaGFzZS1pY29uPC9zcGFuPjwvcD5cbiAgPC9saT5cbjwvdWw+XG48aHI+XG48IS0tLS0tLSBFRFVDQVRJT04gSUNPTiBTRVQgLS0tLS0tLT5cbjxoNCBjbGFzcz1cImhlYWRpbmctbm9ybWFsIHRleHQtY29hbFwiIGlkPVwiZWR1Y2F0aW9uLWNpcmNsZXNcIj5FZHVjYXRpb248L2g0PlxuPHVsIGNsYXNzPVwic21hbGwtYmxvY2stZ3JpZC0zIG1lZGl1bS1ibG9jay1ncmlkLTQgbGFyZ2UtYmxvY2stZ3JpZC02IGJsb2NrLWxvb3NlXCI+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL21ha2luZy10aGUtb25saW5lLWdyYWRlLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPk1ha2luZyB0aGUgT25saW5lIEdyYWRlPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5tYWtpbmctdGhlLW9ubGluZS1ncmFkZTwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL21iYS1hZG1pc3Npb25zLXN0cmljdGx5LWJ1c2luZXNzLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPk1CQSBBZG1pc3Npb25zOiBTdHJpY3RseSBCdXNpbmVzczxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+bWJhLWFkbWlzc2lvbnMtc3RyaWN0bHktYnVzaW5lc3M8L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9tZWRpY2FsLXNjaG9vbC1hZG1pc3Npb25zLWRvY3Rvci5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5NZWRpY2FsIFNjaG9vbCBBZG1pc3Npb25zIERvY3Rvcjxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+bWVkaWNhbC1zY2hvb2wtYWRtaXNzaW9ucy1kb2N0b3I8L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2NpcmNsZS1zaG9ydGxpc3Quc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5UaGUgU2hvcnQgTGlzdDxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+Y2lyY2xlLXNob3J0bGlzdDwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2NpcmNsZS11bmRlcmdyYWQtaWNvbi5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5Db2xsZWdlIEFkbWlzc2lvbnMgUGxheWJvb2s8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmNpcmNsZS11bmRlcmdyYWQtaWNvbjwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2ktYW0tdGhlLWxhdy5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5JIGFtIHRoZSBMYXc6IFdoZXJlIExhdyBTY2hvb2wgTGVhZHM8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmktYW0tdGhlLWxhdzwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2NpcmNsZS1oc25vdGVzLWljb24uc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+SGlnaCBTY2hvb2wgTm90ZXM8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmNpcmNsZS1oc25vdGVzLWljb248L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9vbmxpbmUtbGVhcm5pbmctbGVzc29ucy5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5PbmxpbmUgTGVhcm5pbmcgTGVzc29uczxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+b25saW5lLWxlYXJuaW5nLWxlc3NvbnM8L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9zY2hvbGFyc2hpcC1zZWFyY2gtaW5zaWRlci5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5TY2hvbGFyc2hpcCBTZWFyY2ggSW5zaWRlcjxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+c2Nob2xhcnNoaXAtc2VhcmNoLWluc2lkZXI8L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9pbnRlcm5hdGlvbmFsLXN0dWRlbnQtY291bnNlbC5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5JbnRlcm5hdGlvbmFsIFN0dWRlbnQgQ291bnNlbDxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+aW50ZXJuYXRpb25hbC1zdHVkZW50LWNvdW5zZWw8L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9sYXctYWRtaXNzaW9ucy1sb3dkb3duLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPkxhdyBBZG1pc3Npb25zIExvd2Rvd248YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmxhdy1hZG1pc3Npb25zLWxvd2Rvd248L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9zdHVkZW50LWxvYW4tcmFuZ2VyLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPlN0dWRlbnQgTG9hbiBSYW5nZXI8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPnN0dWRlbnQtbG9hbi1yYW5nZXI8L3NwYW4+PC9wPlxuICA8L2xpPlxuPC91bD5cbjxocj5cbjwhLS0tLS0tIE1PTkVZIElDT04gU0VUIC0tLS0tLS0+XG48aDQgY2xhc3M9XCJoZWFkaW5nLW5vcm1hbCB0ZXh0LWNvYWxcIiBpZD1cIm1vbmV5LWNpcmNsZXNcIj5Nb25leTwvaDQ+XG48aDUgY2xhc3M9XCJoZWFkaW5nLXNtYWxsIHRleHQtbXV0ZWRcIiBpZD1cImludmVzdGluZy1jaXJjbGVzXCI+SW52ZXN0aW5nPC9oNT5cbjx1bCBjbGFzcz1cInNtYWxsLWJsb2NrLWdyaWQtMyBtZWRpdW0tYmxvY2stZ3JpZC00IGxhcmdlLWJsb2NrLWdyaWQtNlwiIGJsb2NrLWxvb3NlXCI+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2NpcmNsZS1jb25zdHJ1Y3Rpb24taWNvbi5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5Db25zdHJ1Y3Rpb248YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmNpcmNsZS1jb25zdHJ1Y3Rpb24taWNvbjwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2NpcmNsZS1vbmxpbmUtaWNvbi5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5UZWxlY29tbXVuaWNhdGlvbnM8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmNpcmNsZS1vbmxpbmUtaWNvbjwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvY2lyY2xlLXRvcHBlcmZvcm1lcnMtaWNvbi5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPlRvcCBQZXJmb3JtZXJzPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5jaXJjbGUtdG9wcGVyZm9ybWVycy1pY29uPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvY2lyY2xlLW9pbC1pY29uLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPk9pbDxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+Y2lyY2xlLW9pbC1pY29uPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvY2lyY2xlLWVuZXJneS1pY29uLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPkVuZXJneTxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+Y2lyY2xlLWVuZXJneS1pY29uPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvY2lyY2xlLWJ1c2luZXNzLWljb24uc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+QnVzaW5lc3M8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmNpcmNsZS1idXNpbmVzcy1pY29uPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvY2lyY2xlLW1lZGljYWwtaWNvbi5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5NZWRpY2luZTxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+Y2lyY2xlLW1lZGljYWwtaWNvbjwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2RlZmVuc2l2ZS1waWNrcy5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5EZWZlbnNpdmUgUGlja3M8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmRlZmVuc2l2ZS1waWNrczwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2NpcmNsZS1iYW5rLWljb24uc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+QmFuazxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+Y2lyY2xlLWJhbmstaWNvbjwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2NpcmNsZS10YWctaWNvbi5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5Ib3VzZWhvbGQvUGVyc29uYWwgQ2FyZTxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+Y2lyY2xlLXRhZy1pY29uPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvY2lyY2xlLXNjaWVuY2UtaWNvbi5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5TY2llbmNlPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5jaXJjbGUtc2NpZW5jZS1pY29uPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvY2lyY2xlLXN0YWx3YXJ0cy1pY29uLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPkVhcm5pbmdzIFN0YWx3YXJ0czxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+Y2lyY2xlLXN0YWx3YXJ0cy1pY29uPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvY2lyY2xlLXVuZGVyMTAtaWNvbi5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5TdG9ja3MgVW5kZXIgJDEwPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5jaXJjbGUtdW5kZXIxMC1pY29uPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvY2lyY2xlLWVhcm5pbmdzZ2FpbmVycy1pY29uLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPkVhcm5pbmdzIEdhaW5lcnM8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmNpcmNsZS1lYXJuaW5nc2dhaW5lcnMtaWNvbjwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2NpcmNsZS1ob3VzZS1pY29uLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPkhvdXNlPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5jaXJjbGUtaG91c2UtaWNvbjwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2NpcmNsZS10cmFuc3BvcnRhdGlvbi1vdGhlci1pY29uLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPkdhdWdlPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5jaXJjbGUtdHJhbnNwb3J0YXRpb24tb3RoZXItaWNvbjwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nLzUyOS1wbGFucy5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj41MjkgUGxhbnM8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPjUyOS1wbGFuczwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL3NtYXJ0ZXItaW52ZXN0b3Iuc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+U21hcnRlciBJbnZlc3Rvcjxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+c21hcnRlci1pbnZlc3Rvcjwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2luc2lkZXItYnV5aW5nLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPkluc2lkZXIgQnV5aW5nPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5pbnNpZGVyLWJ1eWluZzwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2NpcmNsZS1hZ3JpY3VsdHVyZS1pY29uLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPkFncmljdWx0dXJlPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5jaXJjbGUtYWdyaWN1bHR1cmUtaWNvbjwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2NpcmNsZS1kaXZpZGVuZGdyb3dlcnMtaWNvbi5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5EaXZpZGVuZCBHcm93ZXJzPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5jaXJjbGUtZGl2aWRlbmRncm93ZXJzLWljb248L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9zdXN0YWluYWJsZS1kaXZpZGVuZHMuc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+U3VzdGFpbmFibGUgRGl2aWRlbmRzPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5zdXN0YWluYWJsZS1kaXZpZGVuZHM8L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9jaXJjbGUtZm9vZC1pY29uLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPkZvb2Q8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmNpcmNsZS1mb29kLWljb248L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9jaXJjbGUtaG9zcGl0YWwtaWNvbi5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5Ib3NwaXRhbDxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+Y2lyY2xlLWhvc3BpdGFsLWljb248L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9jaXJjbGUtdG9wNTAtaWNvbi5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5Ub3AgNTA8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmNpcmNsZS10b3A1MC1pY29uPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvbXktbW9uZXkuc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+TXkgTW9uZXk8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPm15LW1vbmV5PC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvYmVzdC1jb21wYW5pZXMuc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+QmVzdCBDb21wYW5pZXM8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmJlc3QtY29tcGFuaWVzPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvbmVhcmx5LXByb2ZpdGFibGUuc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+TmVhcmx5IFByb2ZpdGFibGU8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPm5lYXJseS1wcm9maXRhYmxlPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvY2lyY2xlLW1pbmluZy1pY29uLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPk1pbmluZzxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+Y2lyY2xlLW1pbmluZy1pY29uPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvY2lyY2xlLWluZHVzdHJpYWwtaWNvbi5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5JbmR1c3RyaWFsPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5jaXJjbGUtaW5kdXN0cmlhbC1pY29uPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvY2lyY2xlLXNhZmVzdG9ja3MtaWNvbi5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5TYWZlKGVyKSBTdG9ja3M8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmNpcmNsZS1zYWZlc3RvY2tzLWljb248L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9jaXJjbGUtdHJhbnNwb3J0YXRpb24taWNvbi5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5UcmFuc3BvcnRhdGlvbjxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+Y2lyY2xlLXRyYW5zcG9ydGF0aW9uLWljb248L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9ncmVhdGVzdC11cHNpZGUuc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+R3JlYXRlc3QgVXBzaWRlPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5ncmVhdGVzdC11cHNpZGU8L3NwYW4+PC9wPlxuICA8L2xpPlxuPC91bD5cbjxocj5cbjxoNSBjbGFzcz1cImhlYWRpbmctc21hbGwgdGV4dC1tdXRlZFwiIGlkPVwiY2FyZWVycy1jaXJjbGVzXCI+Q2FyZWVyczwvaDU+XG48dWwgY2xhc3M9XCJzbWFsbC1ibG9jay1ncmlkLTMgbWVkaXVtLWJsb2NrLWdyaWQtNCBsYXJnZS1ibG9jay1ncmlkLTYgYmxvY2stbG9vc2VcIj5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvY2lyY2xlLW9uY2FyZWVycy1pY29uLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPk9uIENhcmVlcnM8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmNpcmNsZS1vbmNhcmVlcnMtaWNvbjwvc3Bhbj48L3A+XG4gIDwvbGk+XG48L3VsPlxuPGhyPlxuPGg1IGNsYXNzPVwiaGVhZGluZy1zbWFsbCB0ZXh0LW11dGVkXCIgaWQ9XCJyZXRpcmVtZW50LWNpcmNsZXNcIj5SZXRpcmVtZW50PC9oNT5cbjx1bCBjbGFzcz1cInNtYWxsLWJsb2NrLWdyaWQtMyBtZWRpdW0tYmxvY2stZ3JpZC00IGxhcmdlLWJsb2NrLWdyaWQtNiBibG9jay1sb29zZVwiPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9vbi1yZXRpcmVtZW50LnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPk9uIFJldGlyZW1lbnQ8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPm9uLXJldGlyZW1lbnQ8L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9wbGFubmluZy10by1yZXRpcmUuc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+UGxhbm5pbmcgdG8gUmV0aXJlPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5wbGFubmluZy10by1yZXRpcmU8L3NwYW4+PC9wPlxuICA8L2xpPlxuPC91bD5cbjxocj5cbjxoNSBjbGFzcz1cImhlYWRpbmctc21hbGwgdGV4dC1tdXRlZFwiIGlkPVwicmVhbC1lc3RhdGUtY2lyY2xlc1wiPlJlYWwgRXN0YXRlPC9oNT5cbjx1bCBjbGFzcz1cInNtYWxsLWJsb2NrLWdyaWQtMyBtZWRpdW0tYmxvY2stZ3JpZC00IGxhcmdlLWJsb2NrLWdyaWQtNiBibG9jay1sb29zZVwiPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9jaXJjbGUtaW5kdXN0cnktaWNvbi5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5Nb3J0Z2FnZXMgJiBGaW5hbmNpbmc8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmNpcmNsZS1pbmR1c3RyeS1pY29uPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvY2lyY2xlLW5ldHdvcmtpbmctaWNvbi5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5DaG9vc2luZyBhbiBBZ2VudDxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+Y2lyY2xlLW5ldHdvcmtpbmctaWNvbjwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2Zvci1zYWxlLXNpZ24uc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+Rm9yIFNhbGUgU2lnbjxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+Zm9yLXNhbGUtc2lnbjwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2NpcmNsZS10YWctaWNvbi5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5TZWxsaW5nIGEgSG9tZTxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+Y2lyY2xlLXRhZy1pY29uPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvY2lyY2xlLWNhbGVuZGFyLWljb24uc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+UmVudGluZyBhIEhvbWU8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmNpcmNsZS1jYWxlbmRhci1pY29uPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvcG9ja2V0LWxpc3Rpbmcuc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+UG9ja2V0IExpc3Rpbmc8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPnBvY2tldC1saXN0aW5nPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvY2lyY2xlLXN0ZW0taWNvbi5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5Ib21lIEltcHJvdmVtZW50czxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+Y2lyY2xlLXN0ZW0taWNvbjwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2NpcmNsZS10aHVtYnN1cC1pY29uLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPkJ1eWluZyBhIEhvbWU8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmNpcmNsZS10aHVtYnN1cC1pY29uPC9zcGFuPjwvcD5cbiAgPC9saT5cbjwvdWw+XG48aHI+XG48IS0tLS0tLSBIRUFMVEggSUNPTiBTRVQgLS0tLS0tLT5cbjxoNCBjbGFzcz1cImhlYWRpbmctbm9ybWFsIHRleHQtY29hbFwiIGlkPVwiaGVhbHRoLWNpcmNsZXNcIj5IZWFsdGg8L2g0PlxuPHVsIGNsYXNzPVwic21hbGwtYmxvY2stZ3JpZC0zIG1lZGl1bS1ibG9jay1ncmlkLTQgbGFyZ2UtYmxvY2stZ3JpZC02IGJsb2NrLWxvb3NlXCI+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL3NlY29uZC1vcGluaW9uLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPlNlY29uZCBPcGluaW9uPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5zZWNvbmQtb3Bpbmlvbjwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2NpcmNsZS1lYXRydW4taWNvbi5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5FYXQgKyBSdW48YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmNpcmNsZS1lYXRydW4taWNvbjwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2Zvci1iZXR0ZXIuc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+Rm9yIEJldHRlcjxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+Zm9yLWJldHRlcjwvc3Bhbj48L3A+XG4gIDwvbGk+XG48L3VsPlxuPGhyPlxuPCEtLS0tLS0gVFJBVkVMIElDT04gU0VUIC0tLS0tLS0+XG48aDQgY2xhc3M9XCJoZWFkaW5nLW5vcm1hbCB0ZXh0LWNvYWxcIiBpZD1cInRyYXZlbC1jaXJjbGVzXCI+VHJhdmVsPC9oND5cbjx1bCBjbGFzcz1cInNtYWxsLWJsb2NrLWdyaWQtMyBtZWRpdW0tYmxvY2stZ3JpZC00IGxhcmdlLWJsb2NrLWdyaWQtNiBibG9jay1sb29zZVwiPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9lbi1yb3V0ZS5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5FbiBSb3V0ZTxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+ZW4tcm91dGU8L3NwYW4+PC9wPlxuICA8L2xpPlxuPC91bD5cbjxocj5cbjwhLS0tLS0tIEpVTksgRFJBV0VSIC0tLS0tLS0+XG48aDQgY2xhc3M9XCJoZWFkaW5nLW5vcm1hbCB0ZXh0LWNvYWxcIiBpZD1cImp1bmstY2lyY2xlc1wiPkp1bmsgRHJhd2VyPC9oND5cbjxwIGNsYXNzPVwidGV4dC1lbXBoYXNpemVkIHRleHQtc21hbGwgdGV4dC1tdXRlZFwiPk5vdGU6IFRoZXNlIGFyZSBpY29ucyB0aGF0IHdlcmUgZGVzaWduZWQgYW5kL29yIHVwbG9hZGVkIHRvIHRoZSBzdHlsZWd1aWRlLCBidXQgZG8gbm90IGhhdmUgYSBwZXJtYW5lbnQgc3BvdCBvbiB0aGUgc2l0ZS4gSWYgeW91IGRlY2lkZSB5b3UnZCBsaWtlIHRvIHVzZSBvbmUgb2YgdGhlc2UgaWNvbnMsIHJlbmFtZSBpdCBiYXNlZCBvbiB0aGUgYmxvZy9jYXRlZ29yeSBpdCB3aWxsIHJlcHJlc2VudCBhbmQgcGxhY2UgaXQgdW5kZXIgdGhlIHZlcnRpY2FsIGFib3ZlLiBUaGVuLCByZW1vdmUgaXQgZnJvbSB0aGlzIGxpc3QuPC9wPlxuPHVsIGNsYXNzPVwic21hbGwtYmxvY2stZ3JpZC0zIG1lZGl1bS1ibG9jay1ncmlkLTQgbGFyZ2UtYmxvY2stZ3JpZC02IGJsb2NrLWxvb3NlXCI+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2NpcmNsZS1tb25leS1pY29uLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPk1vbmV5PGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5jaXJjbGUtbW9uZXktaWNvbjwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2NpcmNsZS1jb21tdW5pdHljb2xsZWdlLWljb24uc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+R3JhZHVhdGlvbiBDYXA8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmNpcmNsZS1jb21tdW5pdHljb2xsZWdlLWljb248L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9jaXJjbGUtZ3JhZC1pY29uLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPk9wZW4gQm9vazxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+Y2lyY2xlLWdyYWQtaWNvbjwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL21vbmV5LWJhZy5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5Nb25leSBCYWc8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPm1vbmV5LWJhZzwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL21vbmV5LXN0YWNrLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPk1vbmV5IFN0YWNrPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5tb25leS1zdGFjazwvc3Bhbj48L3A+XG4gIDwvbGk+XG48L3VsPlxuXG5gYGBcbiovXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBNaXNjZWxsYW5lb3VzIEljb25zXG5uYW1lOiBkMS1taXNjZWxsYW5lb3VzLWljb25zXG5jYXRlZ29yeTogSWNvbnMgJiBJbWFnZXMgLSBTVkcgSW1hZ2VzXG4tLS1cblxuPHVsIGNsYXNzPVwic21hbGwtYmxvY2stZ3JpZC0zIG1lZGl1bS1ibG9jay1ncmlkLTQgbGFyZ2UtYmxvY2stZ3JpZC02IGJsb2NrLWxvb3NlXCI+XG4gICAgPGxpPlxuICAgICAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2NhbGVuZGFyLWljb24uc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPkNhbGVuZGFyPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5jYWxlbmRhci1pY29uPC9zcGFuPjwvcD5cbiAgICA8L2xpPlxuPC91bD5cbiovXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBCYWRnZXNcbm5hbWU6IGUtYmFkZ2VzXG5jYXRlZ29yeTogSWNvbnMgJiBJbWFnZXMgLSBTVkcgSW1hZ2VzXG4tLS1cblxuSGVyZSBhcmUgdGhlIGJhZGdlcyB3ZSBoYXZlIHNvIGZhci4uLlxuXG5gYGBodG1sX2V4YW1wbGVcbjwhLS0tLS0tIEdMT0JBTCBCQURHRSBTRVQgLS0tLS0tLT5cbjxoNCBjbGFzcz1cImhlYWRpbmctbm9ybWFsIHRleHQtY29hbFwiIGlkPVwiZ2xvYmFsLWJhZGdlc1wiPkdsb2JhbDwvaDQ+XG48dWwgY2xhc3M9XCJzbWFsbC1ibG9jay1ncmlkLTMgbWVkaXVtLWJsb2NrLWdyaWQtNCBsYXJnZS1ibG9jay1ncmlkLTZcIj5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvYmFkZ2UtYmVzdC1nb2xkLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPkdvbGQgQmFkZ2U8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmJhZGdlLWJlc3QtZ29sZDwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2JhZGdlLWJlc3Qtc2lsdmVyLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPlNpbHZlciBCYWRnZTxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+YmFkZ2UtYmVzdC1zaWx2ZXI8L3NwYW4+PC9wPlxuICA8L2xpPlxuPC91bD5cbjx1bCBjbGFzcz1cInNtYWxsLWJsb2NrLWdyaWQtMyBtZWRpdW0tYmxvY2stZ3JpZC00IGxhcmdlLWJsb2NrLWdyaWQtNiBibG9jay1sb29zZVwiPlxuICA8bGk+XG4gICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL21pbmktYmFkZ2UtY29sb3Iuc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5Hb2xkIEJhZGdlIChNaW5pKTxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+bWluaS1iYWRnZS1jb2xvcjwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL21pbmktYmFkZ2Utc2lsdmVyLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPlNpbHZlciBCYWRnZSAoTWluaSk8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPm1pbmktYmFkZ2Utc2lsdmVyPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvbWluaS1iYWRnZS1icm9uemUuc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+QnJvbnplIEJhZGdlIChNaW5pKTxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+bWluaS1iYWRnZS1icm9uemU8L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9taW5pLWJhZGdlLWNvbW1vbi1jYXJlLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPkxhdXJlbCAoTWluaSk8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPm1pbmktYmFkZ2UtY29tbW9uLWNhcmU8L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9taW5pLWxvY2stY29sb3Iuc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+TG9jayAoTWluaSk8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPm1pbmktbG9jay1jb2xvcjwvc3Bhbj48L3A+XG4gIDwvbGk+XG48L3VsPlxuPGhyPlxuPCEtLS0tLS0gQ0FSUyBCQURHRSBTRVQgLS0tLS0tLT5cbjxoNCBjbGFzcz1cImhlYWRpbmctbm9ybWFsIHRleHQtY29hbFwiIGlkPVwiY2Fycy1iYWRnZXNcIj5DYXJzPC9oND5cbjx1bCBjbGFzcz1cInNtYWxsLWJsb2NrLWdyaWQtMyBtZWRpdW0tYmxvY2stZ3JpZC00IGxhcmdlLWJsb2NrLWdyaWQtNiBibG9jay1sb29zZVwiPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9iYWRnZS1iZXN0LWNhcnMuc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+Q2Fyczxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+YmFkZ2UtYmVzdC1jYXJzPC9zcGFuPjwvcD5cbiAgPC9saT5cbjwvdWw+XG48aHI+XG5cbjwhLS0tLS0tIEVEVUNBVElPTiBCQURHRSBTRVQgLS0tLS0tLT5cbjxoNCBjbGFzcz1cImhlYWRpbmctbm9ybWFsIHRleHQtY29hbFwiIGlkPVwiZWR1Y2F0aW9uLWJhZGdlc1wiPkVkdWNhdGlvbjwvaDQ+XG48aDUgY2xhc3M9XCJoZWFkaW5nLXNtYWxsIHRleHQtbXV0ZWRcIiBpZD1cImhpZ2hlci1lZHVjYXRpb24tYmFkZ2VzXCI+SGlnaGVyIEVkdWNhdGlvbjwvaDU+XG48aDYgY2xhc3M9XCJoZWFkaW5nLXNtYWxsZXJcIiBpZD1cImNvbGxlZ2VzLWJhZGdlc1wiPkNvbGxlZ2VzPC9oNj5cbjx1bCBjbGFzcz1cInNtYWxsLWJsb2NrLWdyaWQtMyBtZWRpdW0tYmxvY2stZ3JpZC00IGxhcmdlLWJsb2NrLWdyaWQtNiBibG9jay1sb29zZVwiPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9iZXN0LWNvbGxlZ2VzLWJhZGdlLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPkNvbGxlZ2VzPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5iZXN0LWNvbGxlZ2VzLWJhZGdlPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvYmVzdC1jb2xsZWdlcy1uYXRpb25hbC11bml2ZXJzaXRpZXMtYmFkZ2Uuc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+TmF0aW9uYWwgVW5pdmVyc2l0aWVzPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5iZXN0LWNvbGxlZ2VzLW5hdGlvbmFsLXVuaXZlcnNpdGllcy1iYWRnZTwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2Jlc3QtY29sbGVnZXMtbGliZXJhbC1hcnRzLWJhZGdlLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPkxpYmVyYWwgQXJ0czxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+YmVzdC1jb2xsZWdlcy1saWJlcmFsLWFydHMtYmFkZ2U8L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9iZXN0LWNvbGxlZ2VzLXJlZ2lvbmFsLXVuaXZlcnNpdGllcy1iYWRnZS5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5SZWdpb25hbCBVbml2ZXJzaXRpZXM8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmJlc3QtY29sbGVnZXMtcmVnaW9uYWwtdW5pdmVyc2l0aWVzLWJhZGdlPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvYmVzdC1jb2xsZWdlcy1yZWdpb25hbC1jb2xsZWdlcy1iYWRnZS5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5SZWdpb25hbCBDb2xsZWdlczxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+YmVzdC1yZWdpb25hbC1jb2xsZWdlcy1iYWRnZTwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2Jlc3QtY29sbGVnZXMtYnVzaW5lc3MtYmFkZ2Uuc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+QnVzaW5lc3MgUHJvZ3JhbXM8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmJlc3QtY29sbGVnZXMtYnVzaW5lc3MtYmFkZ2U8L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9iZXN0LWNvbGxlZ2VzLXZldGVyYW5zLWJhZGdlLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPlZldGVyYW5zPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5iZXN0LWNvbGxlZ2VzLXZldGVyYW5zLWJhZGdlPC9zcGFuPjwvcD5cbiAgPC9saT5cbjwvdWw+XG5cbjxoNiBjbGFzcz1cImhlYWRpbmctc21hbGxlclwiIGlkPVwiZ3JhZC1zY2hvb2xzLWJhZGdlc1wiPkdyYWQgU2Nob29sczwvaDY+XG48dWwgY2xhc3M9XCJzbWFsbC1ibG9jay1ncmlkLTMgbWVkaXVtLWJsb2NrLWdyaWQtNCBsYXJnZS1ibG9jay1ncmlkLTYgYmxvY2stbG9vc2VcIj5cbiAgICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9iYWRnZS1iZXN0LWdyYWQtc2Nob29scy5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5HcmFkIFNjaG9vbHM8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmJhZGdlLWJlc3QtZ3JhZC1zY2hvb2xzPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvZ3JhZC1zY2hvb2xzLWJ1c2luZXNzLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPkJ1c2luZXNzIFNjaG9vbHM8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmdyYWQtc2Nob29scy1idXNpbmVzczwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2dyYWQtc2Nob29scy1lZHVjYXRpb24uc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+RWR1Y2F0aW9uIFNjaG9vbHM8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmdyYWQtc2Nob29scy1lZHVjYXRpb248L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9ncmFkLXNjaG9vbHMtZW5naW5lZXJpbmcuc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+RW5naW5lZXJpbmcgU2Nob29sczxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+Z3JhZC1zY2hvb2xzLWVuZ2luZWVyaW5nPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvZ3JhZC1zY2hvb2xzLWxhdy5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5MYXcgU2Nob29sczxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+Z3JhZC1zY2hvb2xzLWxhdzwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2dyYWQtc2Nob29scy1tZWRpY2FsLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPk1lZGljYWwgU2Nob29sczxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+Z3JhZC1zY2hvb2xzLW1lZGljYWw8L3NwYW4+PC9wPlxuICA8L2xpPlxuPC91bD5cbjxoNiBjbGFzcz1cImhlYWRpbmctc21hbGxlclwiIGlkPVwib25saW5lLXByb2dyYW1zLWJhZGdlc1wiPk9ubGluZSBQcm9ncmFtczwvaDY+XG48dWwgY2xhc3M9XCJzbWFsbC1ibG9jay1ncmlkLTMgbWVkaXVtLWJsb2NrLWdyaWQtNCBsYXJnZS1ibG9jay1ncmlkLTYgYmxvY2stbG9vc2VcIj5cbiAgICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9iYWRnZS1iZXN0LW9ubGluZS1wcm9ncmFtcy5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5PbmxpbmUgUHJvZ3JhbXM8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmJhZGdlLWJlc3Qtb25saW5lLXByb2dyYW1zPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvb25saW5lLXByb2dyYW1zLWJhY2hlbG9ycy5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5CYWNoZWxvcidzIFByb2dyYW1zPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5vbmxpbmUtcHJvZ3JhbXMtYmFjaGVsb3JzPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvb25saW5lLXByb2dyYW1zLW1iYS1wcm9ncmFtcy5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5NQkEgUHJvZ3JhbXM8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmdyYWQtc2Nob29scy1lZHVjYXRpb248L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9vbmxpbmUtcHJvZ3JhbXMtZ3JhZC1idXNpbmVzcy5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5HcmFkIEJ1c2luZXNzIFByb2dyYW1zPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5vbmxpbmUtcHJvZ3JhbXMtZ3JhZC1idXNpbmVzczwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL29ubGluZS1wcm9ncmFtcy1jcmltaW5hbC1qdXN0aWNlLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPkdyYWQgQ3JpbWluYWwgSnVzdGljZSBQcm9ncmFtczxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+b25saW5lLXByb2dyYW1zLWNyaW1pbmFsLWp1c3RpY2U8L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9vbmxpbmUtcHJvZ3JhbXMtZ3JhZC1lZHVjYXRpb24uc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+R3JhZCBFZHVjYXRpb24gUHJvZ3JhbXM8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPm9ubGluZS1wcm9ncmFtcy1ncmFkLWVkdWNhdGlvbjwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL29ubGluZS1wcm9ncmFtcy1ncmFkLWVuZ2luZWVyaW5nLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPkdyYWQgRW5naW5lZXJpbmcgUHJvZ3JhbXM8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPm9ubGluZS1wcm9ncmFtcy1ncmFkLWVuZ2luZWVyaW5nPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvb25saW5lLXByb2dyYW1zLWdyYWQtY2l0LnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPkdyYWQgQ0lUIFByb2dyYW1zPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5vbmxpbmUtcHJvZ3JhbXMtZ3JhZC1jaXQ8L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9vbmxpbmUtcHJvZ3JhbXMtZ3JhZC1udXJzaW5nLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPkdyYWQgTnVyc2luZyBQcm9ncmFtczxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+b25saW5lLXByb2dyYW1zLWdyYWQtbnVyc2luZzwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL29ubGluZS1wcm9ncmFtcy1mb3ItdmV0ZXJhbnMuc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+Rm9yIFZldGVyYW5zPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5vbmxpbmUtcHJvZ3JhbXMtZm9yLXZldGVyYW5zPC9zcGFuPjwvcD5cbiAgPC9saT5cbjwvdWw+XG48aDYgY2xhc3M9XCJoZWFkaW5nLXNtYWxsZXJcIiBpZD1cImludGVybmF0aW9uYWwtYmFkZ2VzXCI+SW50ZXJuYXRpb25hbDwvaDY+XG48dWwgY2xhc3M9XCJzbWFsbC1ibG9jay1ncmlkLTMgbWVkaXVtLWJsb2NrLWdyaWQtNCBsYXJnZS1ibG9jay1ncmlkLTYgYmxvY2stbG9vc2VcIj5cbiAgICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9iYWRnZS1iZXN0LWdsb2JhbC11bml2ZXJzaXRpZXMuc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+R2xvYmFsIFVuaXZlcnNpdGllczxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+YmFkZ2UtYmVzdC1nbG9iYWwtdW5pdmVyc2l0aWVzPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvYmFkZ2UtYmVzdC1hcmFiLXVuaXZlcnNpdGllcy5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5BcmFiIFVuaXZlcnNpdGllczxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+YmFkZ2UtYmVzdC1hcmFiLXVuaXZlcnNpdGllczwvc3Bhbj48L3A+XG4gIDwvbGk+XG48L3VsPlxuPGhyPlxuPGg1IGNsYXNzPVwiaGVhZGluZy1zbWFsbCB0ZXh0LW11dGVkXCIgaWQ9XCJrMTItYmFkZ2VzXCI+Sy0xMjwvaDU+XG48dWwgY2xhc3M9XCJzbWFsbC1ibG9jay1ncmlkLTMgbWVkaXVtLWJsb2NrLWdyaWQtNCBsYXJnZS1ibG9jay1ncmlkLTYgYmxvY2stbG9vc2VcIj5cbiAgICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9iYWRnZS1iZXN0LWhzLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPkhpZ2ggU2Nob29sczxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+YmFkZ2UtYmVzdC1oczwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2JhZGdlLWJlc3QtaHMtZ29sZC5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5Hb2xkIEhpZ2ggU2Nob29sczxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+YmFkZ2UtYmVzdC1ocy1nb2xkPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvYmFkZ2UtYmVzdC1ocy1zaWx2ZXIuc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+U2lsdmVyIEhpZ2ggU2Nob29sczxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+YmFkZ2UtYmVzdC1ocy1zaWx2ZXI8L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9iYWRnZS1iZXN0LWhzLWJyb256ZS5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5Ccm9uemUgSGlnaCBTY2hvb2xzPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5iYWRnZS1iZXN0LWhzLWJyb256ZTwvc3Bhbj48L3A+XG4gIDwvbGk+XG48L3VsPlxuPGhyPlxuPCEtLS0tLS0gSEVBTFRIIEJBREdFIFNFVCAtLS0tLS0tPlxuPGg0IGNsYXNzPVwiaGVhZGluZy1ub3JtYWwgdGV4dC1jb2FsXCIgaWQ9XCJoZWFsdGgtYmFkZ2VzXCI+SGVhbHRoPC9oND5cbjx1bCBjbGFzcz1cInNtYWxsLWJsb2NrLWdyaWQtMyBtZWRpdW0tYmxvY2stZ3JpZC00IGxhcmdlLWJsb2NrLWdyaWQtNiBibG9jay1sb29zZVwiPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9iYWRnZS1iZXN0LWhvc3BpdGFscy5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5Ib3NwaXRhbHM8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmJhZGdlLWJlc3QtaG9zcGl0YWxzPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvaG9zcGl0YWxzLXllYXItMjAxNi5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5Ib3NwaXRhbHMgMjAxNjxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+aG9zcGl0YWxzLXllYXItMjAxNjwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2hvc3BpdGFscy15ZWFyLTIwMTcuc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+SG9zcGl0YWxzIDIwMTc8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmhvc3BpdGFscy15ZWFyLTIwMTc8L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9yZWdpb25hbC1ob3NwaXRhbHMtMjAxNi5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5SZWdpb25hbCBIb3NwaXRhbHMgMjAxNjxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+cmVnaW9uYWwtaG9zcGl0YWxzLTIwMTY8L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9yZWdpb25hbC1ob3NwaXRhbHMtMjAxNy5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5SZWdpb25hbCBIb3NwaXRhbHMgMjAxNzxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+cmVnaW9uYWwtaG9zcGl0YWxzLTIwMTc8L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9iYWRnZS1iZXN0LXJlZ2lvbmFsLWhvc3BpdGFscy5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5SZWdpb25hbCBIb3NwaXRhbHM8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmJhZGdlLWJlc3QtcmVnaW9uYWwtaG9zcGl0YWxzPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvYmFkZ2UtYmVzdC1jaGlsZHJlbnMtaG9zcGl0YWxzLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPkNoaWxkcmVuJ3MgSG9zcGl0YWxzPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5iYWRnZS1iZXN0LWNoaWxkcmVucy1ob3NwaXRhbHM8L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9jaGlsZHJlbnMtaG9zcGl0YWxzLTIwMTYuc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+Q2hpbGRyZW4ncyBIb3NwaXRhbHMgMjAxNjxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+Y2hpbGRyZW5zLWhvc3BpdGFscy0yMDE2LnN2Zzwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2NoaWxkcmVucy1ob3NwaXRhbHMtMjAxNy5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5DaGlsZHJlbidzIEhvc3BpdGFscyAyMDE3PGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5jaGlsZHJlbnMtaG9zcGl0YWxzLTIwMTcuc3ZnPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvYmFkZ2UtaGlnaC1wZXJmb3JtaW5nLWhvc3BpdGFscy5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5IaWdoIFBlcmZvcm1pbmcgSG9zcGl0YWxzPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5iYWRnZS1oaWdoLXBlcmZvcm1pbmctaG9zcGl0YWxzPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvYmFkZ2UtYmVzdC1kaWV0cy5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5EaWV0czxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+YmFkZ2UtYmVzdC1kaWV0czwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2JhZGdlLWJlc3QtbnVyc2luZy1ob21lcy5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5OdXJzaW5nIEhvbWVzPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5iYWRnZS1iZXN0LW51cnNpbmctaG9tZXM8L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9iYWRnZS1iZXN0LW1lZGljYXJlLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPk1lZGljYXJlIFBsYW5zPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5iYWRnZS1iZXN0LW1lZGljYXJlPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvYmFkZ2UtYmVzdC1oZWFsdGgtcHJvZHVjdHMuc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+SGVhbHRoIFByb2R1Y3RzPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5iYWRnZS1iZXN0LWhlYWx0aC1wcm9kdWN0czwvc3Bhbj48L3A+XG4gIDwvbGk+XG48L3VsPlxuPGhyPlxuPCEtLS0tLS0gTU9ORVkgQkFER0UgU0VUIC0tLS0tLS0+XG48aDQgY2xhc3M9XCJoZWFkaW5nLW5vcm1hbCB0ZXh0LWNvYWxcIiBpZD1cIm1vbmV5LWJhZGdlc1wiPk1vbmV5PC9oND5cbjx1bCBjbGFzcz1cInNtYWxsLWJsb2NrLWdyaWQtMyBtZWRpdW0tYmxvY2stZ3JpZC00IGxhcmdlLWJsb2NrLWdyaWQtNiBibG9jay1sb29zZVwiPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9iYWRnZS1iZXN0LWpvYnMuc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+QmVzdCBKb2JzPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5iYWRnZS1iZXN0LWpvYnM8L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9iYWRnZS1iZXN0LWV0ZnMuc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+RVRGczxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+YmFkZ2UtYmVzdC1ldGZzPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvYmFkZ2UtYmVzdC1mdW5kcy5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5NdXR1YWwgRnVuZHM8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmJhZGdlLWJlc3QtZnVuZHM8L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9iYWRnZS1iZXN0LWNyZWRpdC1jYXJkcy5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5DcmVkaXQgQ2FyZHM8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmJhZGdlLWJlc3QtY3JlZGl0LWNhcmRzPC9zcGFuPjwvcD5cbiAgPC9saT5cbjwvdWw+XG48aHI+XG48IS0tLS0tLSBORVdTIFBST0RVQ1RTIEJBREdFIFNFVCAtLS0tLS0tPlxuPGg0IGNsYXNzPVwiaGVhZGluZy1ub3JtYWwgdGV4dC1jb2FsXCIgaWQ9XCJuZXdzLWJhZGdlc1wiPk5ld3MgUHJvZHVjdHM8L2g0PlxuPHVsIGNsYXNzPVwic21hbGwtYmxvY2stZ3JpZC0zIG1lZGl1bS1ibG9jay1ncmlkLTQgbGFyZ2UtYmxvY2stZ3JpZC02IGJsb2NrLWxvb3NlXCI+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2JhZGdlLWJlc3QtbGF3LWZpcm1zLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPkxhdyBGaXJtczxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+YmFkZ2UtYmVzdC1sYXctZmlybXM8L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9iYWRnZS1iZXN0LWxhdy1maXJtLW90eS5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5MYXcgRmlybXMgb2YgdGhlIFllYXI8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmJhZGdlLWJlc3QtbGF3LWZpcm0tb3R5PC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvYmVzdC1jb3VudHJpZXMuc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8cCBjbGFzcz1cInRleHQtc3Ryb25nIHRleHQtY2VudGVyXCI+Q291bnRyaWVzPGJyPjxzcGFuIGNsYXNzPVwidGV4dC1zZW1pc3Ryb25nIHRleHQtc21hbGxcIj5iZXN0LWNvdW50cmllczwvc3Bhbj48L3A+XG4gIDwvbGk+XG48L3VsPlxuPGhyPlxuPCEtLS0tLS0gUkVBTCBFU1RBVEUgQkFER0UgU0VUIC0tLS0tLS0+XG48aDQgY2xhc3M9XCJoZWFkaW5nLW5vcm1hbCB0ZXh0LWNvYWxcIiBpZD1cInJlYWwtZXN0YXRlLWJhZGdlc1wiPlJlYWwgRXN0YXRlPC9oND5cbjx1bCBjbGFzcz1cInNtYWxsLWJsb2NrLWdyaWQtMyBtZWRpdW0tYmxvY2stZ3JpZC00IGxhcmdlLWJsb2NrLWdyaWQtNiBibG9jay1sb29zZVwiPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9iYWRnZS1iZXN0LXBsYWNlcy5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5QbGFjZXM8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmJhZGdlLWJlc3QtcGxhY2VzPC9zcGFuPjwvcD5cbiAgPC9saT5cbjwvdWw+XG48aHI+XG48IS0tLS0tLSBUUkFWRUwgQkFER0UgU0VUIC0tLS0tLS0+XG48aDQgY2xhc3M9XCJoZWFkaW5nLW5vcm1hbCB0ZXh0LWNvYWxcIiBpZD1cInRyYXZlbC1iYWRnZXNcIj5UcmF2ZWw8L2g0PlxuPHVsIGNsYXNzPVwic21hbGwtYmxvY2stZ3JpZC0zIG1lZGl1bS1ibG9jay1ncmlkLTQgbGFyZ2UtYmxvY2stZ3JpZC02IGJsb2NrLWxvb3NlXCI+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2JhZGdlLWJlc3QtaG90ZWxzLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPkhvdGVsczxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+YmFkZ2UtYmVzdC1ob3RlbHM8L3NwYW4+PC9wPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9iYWRnZS1iZXN0LXZhY2F0aW9ucy5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5WYWNhdGlvbnM8YnI+PHNwYW4gY2xhc3M9XCJ0ZXh0LXNlbWlzdHJvbmcgdGV4dC1zbWFsbFwiPmJhZGdlLWJlc3QtdmFjYXRpb25zPC9zcGFuPjwvcD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvYmFkZ2UtYmVzdC10cmF2ZWwtcmV3YXJkcy5zdmdcIiBhbHQ9XCJcIiBjbGFzcz1cImJsb2NrLW5vcm1hbFwiPlxuICAgIDxwIGNsYXNzPVwidGV4dC1zdHJvbmcgdGV4dC1jZW50ZXJcIj5UcmF2ZWwgUmV3YXJkczxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+YmFkZ2UtYmVzdC10cmF2ZWwtcmV3YXJkczwvc3Bhbj48L3A+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2JhZGdlLWJlc3QtY3J1aXNlLWxpbmVzLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LXN0cm9uZyB0ZXh0LWNlbnRlclwiPkNydWlzZSBMaW5lczxicj48c3BhbiBjbGFzcz1cInRleHQtc2VtaXN0cm9uZyB0ZXh0LXNtYWxsXCI+YmFkZ2UtYmVzdC1jcnVpc2UtbGluZXM8L3NwYW4+PC9wPlxuICA8L2xpPlxuPC91bD5cblxuYGBgXG4qL1xuXG4vKmRvY1xuLS0tXG50aXRsZTogTG9nb3Ncbm5hbWU6IGYtYmFkZ2VzXG5jYXRlZ29yeTogSWNvbnMgJiBJbWFnZXMgLSBTVkcgSW1hZ2VzXG4tLS1cblxuSGVyZSBhcmUgdGhlIGxvZ29zIHdlIGhhdmUgc28gZmFyLi4uXG5cbmBgYGh0bWxfZXhhbXBsZVxuPHVsIGNsYXNzPVwic21hbGwtYmxvY2stZ3JpZC0zXCI+XG4gIDxsaT48aW1nIHNyYz1cIi9zdGF0aWMvaW1nL3Vzbi1sb2dvLWxhcmdlLnN2Z1wiIGFsdD1cIlwiPnVzbi1sb2dvLWxhcmdlPC9saT5cbiAgPGxpPjxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvdXNuLWxvZ28tc21hbGwuc3ZnXCIgYWx0PVwiXCI+dXNuLWxvZ28tc21hbGw8L2xpPlxuICA8bGk+PGltZyBzcmM9XCIvc3RhdGljL2ltZy90aGUtcmVwb3J0LnN2Z1wiIGFsdD1cIlwiPnRoZS1yZXBvcnQ8L2xpPlxuICA8bGk+PGltZyBzcmM9XCIvc3RhdGljL2ltZy9jb21wYXNzLnN2Z1wiIGFsdD1cIlwiPmNvbXBhc3M8L2xpPlxuICA8bGk+PGltZyBzcmM9XCIvc3RhdGljL2ltZy9jb21wYXNzLWdsb3cuc3ZnXCIgYWx0PVwiXCI+Y29tcGFzcy1nbG93PC9saT5cbiAgPGxpPjxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvYnBwLWxvZ28uc3ZnXCIgYWx0PVwiXCI+YnBwLWxvZ288L2xpPlxuICA8bGk+PGltZyBzcmM9XCIvc3RhdGljL2ltZy9icHAtbG9nby13aGl0ZS5zdmdcIiBhbHQ9XCJcIj5icHAtbG9nby13aGl0ZTwvbGk+XG48L3VsPlxuYGBgXG4qL1xuXG4vKmRvY1xuLS0tXG50aXRsZTogSW1hZ2UgTW9kaWZpZXJzXG5uYW1lOiBjLWltYWdlLWhlbHBlclxuY2F0ZWdvcnk6IEljb25zICYgSW1hZ2VzIC0gU1ZHIEltYWdlc1xuc2VsZWN0b3JzOlxuICAgIC0gaW1nLmNlbnRlcmVkXG4gICAgLSAuaW1hZ2UtcmVzcG9uc2l2ZVxuLS0tXG5cbkFkZCAuaW1hZ2UtcmVzcG9uc2l2ZSB0byBhbiBpbWFnZSB0byBmb3JjZSB3aWR0aCB0byBiZSAxMDAlIHdpdGggaGVpZ2h0IGF1dG8uXG5cbmBgYGh0bWxfZXhhbXBsZVxuPGRpdiBjbGFzcz1cImZsZXgtcm93XCI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsLTNcIj48aW1nIGNsYXNzPVwiaW1hZ2UtcmVzcG9uc2l2ZVwiIHNyYz1cImh0dHA6Ly9wbGFjZWhvbGQuaXQvNTAweDUwMFwiIGFsdD1cIi4uLlwiPjwvZGl2PlxuPC9kaXY+XG5gYGBcblxuYGBgc2Fzc19leGFtcGxlXG5pbWcucm91bmQge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cbmBgYFxuKi9cblxuXG4vKmRvY1xuLS0tXG50aXRsZTogUHJvZmlsZSBJbWFnZXNcbm5hbWU6IGktcHJvZmlsZS1pbWFnZXNcbmNhdGVnb3J5OiBJY29ucyAmIEltYWdlcyAtIFNWRyBJbWFnZXNcbi0tLVxuXG5IZXJlIGFyZSB0aGUgcHJvZmlsZSBpbWFnZXMgd2UgaGF2ZSBzbyBmYXIuLi5cblxuYGBgaHRtbF9leGFtcGxlXG48dWwgY2xhc3M9XCJzbWFsbC1ibG9jay1ncmlkLTZcIj5cbiAgPGxpPjxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvZG9jdG9yLWljb24tbWFsZS5zdmdcIiBhbHQ9XCJcIj5kb2N0b3ItaWNvbi1tYWxlPC9saT5cbiAgPGxpPjxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvZG9jdG9yLWljb24tZmVtYWxlLnN2Z1wiIGFsdD1cIlwiPmRvY3Rvci1pY29uLWZlbWFsZTwvbGk+XG4gIDxsaT48aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2F1dGhvci1pY29uLnN2Z1wiIGFsdD1cIlwiPmF1dGhvci1pY29uPC9saT5cbiAgPGxpPjxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvbWFsZS5zdmdcIiBhbHQ9XCJcIj5tYWxlPC9saT5cbiAgPGxpPjxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvZmVtYWxlLnN2Z1wiPmZlbWFsZTwvbGk+XG4gIDxsaT48aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2VkdWNhdGlvbi5zdmdcIj5lZHVjYXRpb248L2xpPlxuICA8bGk+PGltZyBzcmM9XCIvc3RhdGljL2ltZy9ob3NwaXRhbC5zdmdcIiBhbHQ9XCJcIj5ob3NwaXRhbDwvbGk+XG4gIDxsaT48aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2hvbWUuc3ZnXCIgYWx0PVwiXCI+aG9tZTwvbGk+XG4gIDxsaT48aW1nIHNyYz1cIi9zdGF0aWMvaW1nL3Jlc3RhdXJhbnQuc3ZnXCI+cmVzdGF1cmFudDwvbGk+XG48L3VsPlxuYGBgXG4qL1xuXG4vKmRvY1xuLS0tXG50aXRsZTogTWFwIEFzc2V0c1xubmFtZTogai1tYXAtYXNzZXRzXG5jYXRlZ29yeTogSWNvbnMgJiBJbWFnZXMgLSBTVkcgSW1hZ2VzXG4tLS1cblxuSGVyZSBhcmUgdGhlIG1hcCBhc3NldHMgd2UgaGF2ZSBzbyBmYXIuLi5cblxuYGBgaHRtbF9leGFtcGxlXG48dWwgY2xhc3M9XCJzbWFsbC1ibG9jay1ncmlkLTZcIj5cbiAgPGxpPjxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvcGluLnN2Z1wiIGFsdD1cIlwiPnBpbjwvbGk+XG4gIDxsaT48aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2dvbGQtZG90LnN2Z1wiIGFsdD1cIlwiPmdvbGQtZG90PC9saT5cbiAgPGxpPjxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvc2lsdmVyLWRvdC5zdmdcIiBhbHQ9XCJcIj5zaWx2ZXItZG90PC9saT5cbiAgPGxpPjxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvYnJvbnplLWRvdC5zdmdcIiBhbHQ9XCJcIj5icm9uemUtZG90PC9saT5cbiAgPGxpPjxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvYmx1ZS1kb3Quc3ZnXCIgYWx0PVwiXCI+Ymx1ZS1kb3Q8L2xpPlxuICA8bGk+PGltZyBzcmM9XCIvc3RhdGljL2ltZy9nb2xkLWRvdC1ub3doaXRlc3BhY2Uuc3ZnXCIgYWx0PVwiXCI+Z29sZC1kb3Qtbm93aGl0ZXNwYWNlPC9saT5cbiAgPGxpPjxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvc2lsdmVyLWRvdC1ub3doaXRlc3BhY2Uuc3ZnXCIgYWx0PVwiXCI+c2lsdmVyLWRvdC1ub3doaXRlc3BhY2U8L2xpPlxuICA8bGk+PGltZyBzcmM9XCIvc3RhdGljL2ltZy9icm9uemUtZG90LW5vd2hpdGVzcGFjZS5zdmdcIiBhbHQ9XCJcIj5icm9uemUtZG90LW5vd2hpdGVzcGFjZTwvbGk+XG4gIDxsaT48aW1nIHNyYz1cIi9zdGF0aWMvaW1nL2JsdWUtZG90LW5vd2hpdGVzcGFjZS5zdmdcIiBhbHQ9XCJcIj5ibHVlLWRvdC1ub3doaXRlc3BhY2U8L2xpPlxuICA8bGk+PGltZyBzcmM9XCIvc3RhdGljL2ltZy9kcm9wc2hhZG93LWZvci1kb3RzLnN2Z1wiIGFsdD1cIlwiPmRyb3BzaGFkb3ctZm9yLWRvdHM8L2xpPlxuPC91bD5cbmBgYFxuKi9cblxuaW1nIHtcbiAgICAmLmNlbnRlcmVkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgICYubnVkZ2UtdXAge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogLTFweDtcbiAgICB9XG59XG5cbi5pbWFnZS1yZXNwb25zaXZlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG59XG5cbi5pbWFnZS1hdXRob3Ige1xuICAgIG1heC13aWR0aDogcmVtLWNhbGMoODQpO1xuICAgIGhlaWdodDogYXV0bztcblxuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgIG1heC13aWR0aDogcmVtLWNhbGMoMTUwKTtcbiAgICB9XG59XG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBPdmVybGF5IEltYWdlc1xubmFtZTogaS1vdmVybGF5LWltYWdlc1xuY2F0ZWdvcnk6IEljb25zICYgSW1hZ2VzIC0gU1ZHIEltYWdlc1xuc2VsZWN0b3JzOlxuICAgIC0gLmltYWdlLW92ZXJsYXktY29udGVudFxuICAgIC0gLmltYWdlLW92ZXJsYXktY29udGVudC5ib3R0b20tZm9yLW1lZGl1bS11cFxuICAgIC0gLmltYWdlLW92ZXJsYXktY29udGVudC5ib3R0b20tZm9yLWxhcmdlLXVwXG4gICAgLSAuaW1hZ2Utb3ZlcmxheVxuICAgIC0gLmltYWdlLW92ZXJsYXkubGlnaHRcbi0tLVxuXG5IZXJlIGlzIGFuIGV4YW1wbGUgb2Ygb3ZlcmxheSBpbWFnZXMgLi4uXG5cbmBgYGh0bWxfZXhhbXBsZVxuPGRpdiBjbGFzcz1cImZsZXgtc21hbGwtMTIgYm9yZGVyLWJvdHRvbSBibG9jay1ub3JtYWxcIj5cbiAgICA8YSBjbGFzcz1cImltYWdlLW92ZXJsYXkgdGV4dC1jZW50ZXJcIiBocmVmPVwiL2Jlc3QtY29sbGVnZXNcIj5cbiAgICAgICAgPGltZyBjbGFzcz1cImltYWdlLXJlc3BvbnNpdmVcIiBzcmM9XCIvc3RhdGljL2ltZy9icmlnaHRzcG90L2hvbWVwYWdlLWJlc3Rjb2xsZWdlcy5wbmdcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlLW92ZXJsYXktY29udGVudFwiPlxuICAgICAgICAgICAgPGltZyB3aWR0aD1cIjkyXCIgc3JjPVwiL3N0YXRpYy9pbWcvYmVzdC1jb2xsZWdlcy1iYWRnZS5zdmdcIiBhbHQ9XCJVU05ld3MgQmVzdCBDb2xsZWdlcyByYW5raW5ncyBiYWRnZVwiLz5cbiAgICAgICAgICAgIDxoMyBjbGFzcz1cImhlYWRpbmctbGFyZ2UgdGV4dC13aGl0ZSB0ZXh0LXNoYWRvd1wiPlxuICAgICAgICAgICAgICAgIDIwMTYgQmVzdCBDb2xsZWdlc1xuICAgICAgICAgICAgPC9oMz5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9hPlxuICAgIDxwIGNsYXNzPVwidGV4dC1tdXRlZFwiPlByb3NwZWN0aXZlIHN0dWRlbnRzIGFuZCBwYXJlbnRzIGxvb2tpbmcgZm9yIHRoZSBzY2hvb2wgdGhhdCZhcG9zO3MgYmVzdCBmb3IgdGhlbSBjYW4gY2hlY2sgb3V0IHRoZSAyMDE2IGVkaXRpb24gb2YgdGhlIEJlc3QgQ29sbGVnZXMgcmFua2luZ3MgdG9kYXkuPC9wPlxuICAgIDxhIGNsYXNzPVwiXCIgaHJlZj1cIi9iZXN0LWNvbGxlZ2VzL3JhbmtpbmdzXCI+U2VlIHRoZSBCZXN0IENvbGxlZ2VzIHJhbmtpbmdzICZyYXF1bzs8L2E+XG48L2Rpdj5cbmBgYFxuXG5IZXJlIGlzIGFuIGV4YW1wbGUgd2hlcmUgdGhlIGltYWdlIG92ZXJsYXkgdGV4dCBpcyBwb3NpdGlvbmVkIGF0IHRoZSBib3R0b21cblxuYGBgaHRtbF9leGFtcGxlXG48ZGl2IGNsYXNzPVwiZmxleC1zbWFsbC0xMiBib3JkZXItYm90dG9tIGJsb2NrLW5vcm1hbFwiPlxuICAgIDxhIGNsYXNzPVwiaW1hZ2Utb3ZlcmxheSB0ZXh0LWNlbnRlclwiIGhyZWY9XCIvYmVzdC1jb2xsZWdlc1wiPlxuICAgICAgICA8aW1nIGNsYXNzPVwiaW1hZ2UtcmVzcG9uc2l2ZVwiIHNyYz1cIi9zdGF0aWMvaW1nL2JyaWdodHNwb3QvaG9tZXBhZ2UtYmVzdGNvbGxlZ2VzLnBuZ1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2Utb3ZlcmxheS1jb250ZW50IGJvdHRvbS1mb3ItbWVkaXVtLXVwXCI+XG4gICAgICAgICAgICA8aW1nIHdpZHRoPVwiOTJcIiBzcmM9XCIvc3RhdGljL2ltZy9iZXN0LWNvbGxlZ2VzLWJhZGdlLnN2Z1wiIGFsdD1cIlVTTmV3cyBCZXN0IENvbGxlZ2VzIHJhbmtpbmdzIGJhZGdlXCIvPlxuICAgICAgICAgICAgPGgzIGNsYXNzPVwiaGVhZGluZy1sYXJnZSB0ZXh0LXdoaXRlIHRleHQtc2hhZG93XCI+XG4gICAgICAgICAgICAgICAgMjAxNiBCZXN0IENvbGxlZ2VzXG4gICAgICAgICAgICA8L2gzPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2E+XG4gICAgPHAgY2xhc3M9XCJ0ZXh0LW11dGVkXCI+UHJvc3BlY3RpdmUgc3R1ZGVudHMgYW5kIHBhcmVudHMgbG9va2luZyBmb3IgdGhlIHNjaG9vbCB0aGF0JmFwb3M7cyBiZXN0IGZvciB0aGVtIGNhbiBjaGVjayBvdXQgdGhlIDIwMTYgZWRpdGlvbiBvZiB0aGUgQmVzdCBDb2xsZWdlcyByYW5raW5ncyB0b2RheS48L3A+XG4gICAgPGEgY2xhc3M9XCJcIiBocmVmPVwiL2Jlc3QtY29sbGVnZXMvcmFua2luZ3NcIj5TZWUgdGhlIEJlc3QgQ29sbGVnZXMgcmFua2luZ3MgJnJhcXVvOzwvYT5cbjwvZGl2PlxuYGBgXG4qL1xuXG4gIC5pbWFnZS1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgLy8gZml4ZXMgYmx1cnJpbmVzcyBkdWUgdG8gdGhlIGVsZW1lbnQgYmVpbmcgcGxhY2VkIG9uIGEg4oCcaGFsZiBwaXhlbOKAnVxuICAgIC8vIHJlbGF0ZWQgdG8gdGhlIGNlbnRlcmluZyBydWxlcyBpbiAuaW1hZ2Utb3ZlcmxheS1jb250ZW50IGJlbG93XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICAgIC1tb3otdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuXG4gICAgLy8gcHV0IGluIHRoZSBvdmVybGF5IGJhY2tncm91bmQgY29sb3IgdG8gbWFrZSB3aGl0ZSBvdmVybGF5IHRleHQgbW9yZSBsZWdpYmxlXG4gICAgJjphZnRlciB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDoxMDAlO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHRvcDogMHB4O1xuICAgICAgbGVmdDogMHB4O1xuICAgICAgIGNvbnRlbnQ6XCJcIjtcbiAgICAgIHotaW5kZXg6MTtcbiAgICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI2LCAyNiwgMjYsIDAuNSk7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dCAwLjJzO1xuICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgICAgIC1tb3otdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgICAtby10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgICB9XG4gICAgJjpob3ZlcjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI2LCAyNiwgMjYsIDAuMik7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIGxpZ2h0IHRoZW1lLCB3aXRob3V0IHRoZSBkYXJrIG92ZXJsYXkgVE9ETzogbWFrZSB0aGlzIHRoZSBkZWZhdWx0IGFuZCB0aGUgZGFyayBhbiBvcHRpb25cbiAgICAmLmxpZ2h0OmFmdGVyLFxuICAgICYubGlnaHQ6aG92ZXI6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG5cbiAgLmltYWdlLW92ZXJsYXktY29udGVudCB7XG4gICAgLy8gbmlmdHkgd2F5IHRvIHBvc2l0aW9uIHN0dWZmIGFic29sdXRlbHkgb3ZlciB0b3AgYW5vdGhlciBlbGVtZW50XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIC8vIGRlZmF1bHQgaXMgbWlkZGxlLCBidXQuLi5cbiAgICAvLyBpbnN0ZWFkIG9mIHRoZSBtaWRkbGUsIHB1dCB0aGUgY29udGVudCBvbiB0aGUgYm90dG9tXG4gICAgQGluY2x1ZGUgZnJvbShicC1tZWRpdW0pIHtcbiAgICAgICYuYm90dG9tLWZvci1tZWRpdW0tdXAge1xuICAgICAgICB0b3A6IDc1JTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yNSUpO1xuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBmcm9tKGJwLWxhcmdlKSB7XG4gICAgICAmLmJvdHRvbS1mb3ItbGFyZ2UtdXAge1xuICAgICAgICB0b3A6IDc1JTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yNSUpO1xuICAgICAgfVxuXG4gICAgICAmLmFsaWduLWJvdHRvbS1mb3ItbGFyZ2UtdXAge1xuICAgICAgICAgIHRvcDogaW5oZXJpdDtcbiAgICAgICAgICB0cmFuc2Zvcm06IGluaGVyaXQ7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgcGFkZGluZzogMXJlbSAycmVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxuIiwiLypkb2Ncbi0tLVxudGl0bGU6IFByb21vXG5uYW1lOiBhLXByb21vXG5jYXRlZ29yeTogTWVkaWEgT2JqZWN0cyAtIFByb21vXG50ZW1wbGF0ZTpcbiAgICBwcm9tbzpcbiAgICAgIGZsb2F0OiByaWdodFxuICAgICAgdXJsOiAjXG4gICAgICBpbWFnZTpcbiAgICAgICAgbWVkaXVtOiBodHRwOi8vcGxhY2Vob2xkLml0LzIzMHgxNTIvXG4gICAgICAgIGFsdDogXG4gICAgICBvdmVybGluZTogUmVjb21tZW5kZWQgQXJ0aWNsZXNcbiAgICAgIGhlYWRpbmc6IFdoYXQgdG8gQ3V0IGFuZCBXaGF0IHRvIEtlZXAgb24gWW91ciBSZXN1bWVcbiAgICAgIGxlYWQ6IEZpdmUgc3RlcHMgdG8gd3JpdGluZyBhIHJlc3VtZSB0aGF0J3MgYm90aCBzdGVsbGFyIGFuZCBzdWNjaW5jdC5cbi0tLVxuXG5UaGlzIG1vZHVsZSBpcyBmb3IgYSBzaW5nbGUgcHJvbW8sIGZvciBleGFtcGxlIGEgcHJvbW8gZW1iZWRkZWQgaW4gYW4gYXJ0aWNsZVxuXG5UaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgYW5kIGEgcHJvbW9saXN0IGlzIHRoYXQgaXQncyBhbHdheXMgaW4gdGhlIG1haW4gY29udGVudCBzZWN0aW9uIGFuZCBpdCBkaXNhcHBlYXJzIGluIG1vYmlsZSB2aWV3LlxuXG5gYGBodG1sX2V4YW1wbGU/a2l0Y2hlbi1zaW5rPXRydWVcbjxkaXYgY2xhc3M9XCJoaWRlLWZvci1zbWFsbCBibG9jay1sb29zZSBzbWFsbC0xMiBsYXJnZS04XCI+IDwhLS0gZW11bGF0aW5nIG1haW4gc2VjdGlvbiAtLT5cblxueyUgaW5jbHVkZSBcInRlbXBsYXRlcy9jb21tb24vcHJvbW8ubnVualwiICV9XG5cbjwvZGl2PlxuYGBgXG4qL1xuXG4ucHJvbW8ge1xuICAgIHBhZGRpbmc6IHJlbS1jYWxjKDI1KSAwO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkaXJvbjtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGlyb247XG4gICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAmID4gLnJpZ2h0IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbS1jYWxjKDMwKTtcbiAgICB9XG5cbiAgICAmID4gLmxlZnQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbS1jYWxjKDMwKTtcbiAgICB9XG5cbiAgICAmLmFzaWRlIHtcbiAgICAgICYucmlnaHQge1xuICAgICAgICBtYXJnaW4tbGVmdDogcmVtLWNhbGMoMTUpO1xuICAgICAgfVxuXG4gICAgICAmLmxlZnQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbS1jYWxjKDE1KTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgbWF4LXdpZHRoOiAyMzBweDtcbiAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDE1KSAwO1xuICAgIH1cbn1cblxuLnByb21vLW92ZXJsaW5lIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbWVkaXVtOyBcbiAgICBmb250LXNpemU6ICR0ZXh0LXNtYWxsO1xufVxuIiwiLypkb2Ncbi0tLVxudGl0bGU6IFByb21vbGlzdFxubmFtZTogYS1wcm9tb2xpc3RcbmNhdGVnb3J5OiBNZWRpYSBPYmplY3RzIC0gUHJvbW9saXN0XG5zZWxlY3RvcnM6XG4gICAgLSAucHJvbW9saXN0XG5zZWxlY3Rvcl90eXBlOiBjb21wb25lbnRcbnRlbXBsYXRlOlxuICAgIHByb21vbGlzdDpcbiAgICAgICAgaGVhZGluZzogTW9zdCBQb3B1bGFyXG4gICAgICAgIGl0ZW1saXN0OlxuICAgICAgICAgICAgLSBpdGVtOlxuICAgICAgICAgICAgICBsaW5rOiAjXG4gICAgICAgICAgICAgIGltYWdlOlxuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0XG4gICAgICAgICAgICAgICAgc3JjOiBodHRwOi8vbG9yZW1waXhlbC5jb20vODQvODQvY2l0eS9cbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDg0XG4gICAgICAgICAgICAgICAgYWx0OlxuICAgICAgICAgICAgICB0ZXh0OiBFc3NlbnRpYWwgQnJhbmRpbmcgYW5kIE5ldHdvcmtpbmcgVGlwcyBmb3IgQ29sbGVnZSBTZW5pb3JzXG4gICAgICAgICAgICAtIGl0ZW06XG4gICAgICAgICAgICAgIGxpbms6ICNcbiAgICAgICAgICAgICAgaW1hZ2U6XG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnRcbiAgICAgICAgICAgICAgICBzcmM6IGh0dHA6Ly9sb3JlbXBpeGVsLmNvbS84NC84NC9jaXR5L1xuICAgICAgICAgICAgICAgIGhlaWdodDogODRcbiAgICAgICAgICAgICAgICBhbHQ6XG4gICAgICAgICAgICAgIHRleHQ6IFdoYXQgUmVjcnVpdGVycyBUaGluayBXaGVuIFRoZXkgU2VlIFlvdXIgTGlua2VkSW4gUHJvZmlsZVxuICAgICAgICAgICAgLSBpdGVtOlxuICAgICAgICAgICAgICBsaW5rOiAjXG4gICAgICAgICAgICAgIGltYWdlOlxuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0XG4gICAgICAgICAgICAgICAgc3JjOiBodHRwOi8vbG9yZW1waXhlbC5jb20vODQvODQvY2l0eS9cbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDg0XG4gICAgICAgICAgICAgICAgYWx0OlxuICAgICAgICAgICAgICB0ZXh0OiA2IExlc3NvbnMgSm9iIFNlZWtlcnMgQ2FuIExlYXJuIEZyb20gVGhlIEdyZWF0IFJlY2Vzc2lvblxuLS0tXG5cbkNvbnNpc3RlbnQgd2l0aCBmaXJlZmx5IG5hbWluZyBjb252ZW50aW9uLCBhIHByb21vIGxpc3QgaXMgYW4gaW1hZ2Ugd2l0aCB0ZXh0IGJlc2lkZSBpdCAodG8gdGhlIGxlZnQgb3IgcmlnaHQpXG5cbkdlbmVyYWwgZm9ybWF0IHdpdGggc3F1YXJlIGltYWdlc1xuXG5gYGBodG1sX2V4YW1wbGU/a2l0Y2hlbi1zaW5rPXRydWVcbnslIGluY2x1ZGUgXCJ0ZW1wbGF0ZXMvY29tbW9uL3Byb21vbGlzdC5udW5qXCIgJX1cbmBgYFxuXG4qL1xuXG4ucHJvbW9saXN0IHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICYgPiBsaSB7XG4gICAgICAgIEBpbmNsdWRlIGNsZWFyZml4KCk7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDE1KSByZW0tY2FsYyg3KSByZW0tY2FsYygxNSkgMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICRzZWNvbmRhcnktc2hhZG93LWNvbG9yO1xuICAgICAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDEyLjUpIHJlbS1jYWxjKDcpIHJlbS1jYWxjKDEyLjUpIDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkdGV4dC1sYXJnZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAjeyRtZWRpdW19IHsgLy8gRm9yIGFkYXB0aW5nIHdoZW4gdGV4dCBnZXRzIHRvbyBsb25nIGluIG1lZGl1bSwgZG9uJ3Qgc2Nyb2xsXG4gICAgICAgICAgICAmID4gYSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmID4gYSA+IGltZyxcbiAgICAgICAgJiA+IGEgPiBwaWN0dXJlID4gaW1nIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogcmVtLWNhbGMoODQpO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiByZW0tY2FsYyg4NCk7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiByZW0tY2FsYyg4NCk7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiByZW0tY2FsYyg4NCk7XG5cbiAgICAgICAgICAgICYubGVmdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkaW1nLW1hcmdpbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5yaWdodCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRpbWctbWFyZ2luO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG5cbiAgICAgICAgICAgIEBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICAgICAgICAgICAgICYgPiBhLmJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmIC5wcm9tb3RleHQge1xuICAgICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyg1KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYgPiBsaSA+IGgzIHtcbiAgICAgICAgQGluY2x1ZGUgaGVhZGluZygnbGFyZ2UnKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAgLy8gVEVNUDogT3ZlcnJpZGUgLmJ1dHRvbi5ib3JkZXJlZCBhcyBpdCdzIGJlaW5nIHN0eWxlZCBkaWZmZXJlbnRseSBpbiB0aGUgbWVnYWZvb3RlciBhbmQgaW4gdGhlIHByb21vbGlzdFxuICAgICYgbGlbcm9sZT1idXR0b25dID4gLmJ1dHRvbiB7XG4gICAgICBtYXJnaW46IHJlbS1jYWxjKDYpIDA7XG4gICAgfVxuXG5cbiAgICAmIC5wcm9tb3RleHQgeyAvLyBDZW50ZXIgdGV4dCB0byBwaWN0dXJlXG4gICAgICBAaW5jbHVkZSB2ZXJ0aWNhbC1hbGlnbi1taWRkbGU7XG4gICAgfVxufVxuXG51bC5wcm9tb2xpc3Qge1xuICAgIG1hcmdpbjogMDtcbn1cblxuLypkb2Ncbi0tLVxudGl0bGU6IEV4dHJhIHRleHRcbm5hbWU6IGItcHJvbW9saXN0XG5jYXRlZ29yeTogTWVkaWEgT2JqZWN0cyAtIFByb21vbGlzdFxuc2VsZWN0b3JzOlxuICAgIC0gLnByb21vbGlzdC5leHRyYS10ZXh0XG50ZW1wbGF0ZTpcbiAgICBwcm9tb2xpc3Q6XG4gICAgICAgIGhlYWRpbmc6IE1vc3QgUG9wdWxhclxuICAgICAgICBjbGFzczogZXh0cmEtdGV4dFxuICAgICAgICBpdGVtbGlzdDpcbiAgICAgICAgICAgIC0gaXRlbTpcbiAgICAgICAgICAgICAgbGluazogI1xuICAgICAgICAgICAgICBpbWFnZTpcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdFxuICAgICAgICAgICAgICAgIHNyYzogaHR0cDovL2xvcmVtcGl4ZWwuY29tLzg0Lzg0L2NpdHkvXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA4NFxuICAgICAgICAgICAgICAgIGFsdDpcbiAgICAgICAgICAgICAgdGl0bGU6IEVzc2VudGlhbCBCcmFuZGluZyBhbmQgTmV0d29ya2luZyBUaXBzIGZvciBDb2xsZWdlIFNlbmlvcnNcbiAgICAgICAgICAgICAgdGV4dDogTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQuXG4gICAgICAgICAgICAtIGl0ZW06XG4gICAgICAgICAgICAgIGxpbms6ICNcbiAgICAgICAgICAgICAgaW1hZ2U6XG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnRcbiAgICAgICAgICAgICAgICBzcmM6IGh0dHA6Ly9sb3JlbXBpeGVsLmNvbS84NC84NC9jaXR5L1xuICAgICAgICAgICAgICAgIGhlaWdodDogODRcbiAgICAgICAgICAgICAgICBhbHQ6XG4gICAgICAgICAgICAgIHRpdGxlOiBXaGF0IFJlY3J1aXRlcnMgVGhpbmsgV2hlbiBUaGV5IFNlZSBZb3VyIExpbmtlZEluIFByb2ZpbGVcbiAgICAgICAgICAgICAgdGV4dDogTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQuXG4gICAgICAgICAgICAtIGl0ZW06XG4gICAgICAgICAgICAgIGxpbms6ICNcbiAgICAgICAgICAgICAgaW1hZ2U6XG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnRcbiAgICAgICAgICAgICAgICBzcmM6IGh0dHA6Ly9sb3JlbXBpeGVsLmNvbS84NC84NC9jaXR5L1xuICAgICAgICAgICAgICAgIGhlaWdodDogODRcbiAgICAgICAgICAgICAgICBhbHQ6XG4gICAgICAgICAgICAgIHRpdGxlOiA2IExlc3NvbnMgSm9iIFNlZWtlcnMgQ2FuIExlYXJuIEZyb20gVGhlIEdyZWF0IFJlY2Vzc2lvblxuICAgICAgICAgICAgICB0ZXh0OiBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdC5cbi0tLVxuXG5JbWFnZXMgd2l0aCBleHRyYSB0ZXh0XG5cblNldCBgdGl0bGVgIGZvciB0aGUgYmx1ZSB0ZXh0IGFuZCBgdGV4dGAgZm9yIHRoZSBibGFjayB0ZXh0IGluIHRoZSBZQU1MIGZpbGUuXG5cblVzZSBjbGFzcyBgLmV4dHJhLXRleHRgIHRvIG1ha2Ugc3VyZSBhbGlnbm1lbnQgaXMgdG8gdGhlIHRvcCBvZiB0aGUgaW1hZ2UsIG5vdCB2ZXJ0aWNhbGx5IGNlbnRlcmVkLlxuXG5SZW1lbWJlciB0aGF0IGlmIHlvdXIgdGh1bWJuYWlsIGltYWdlIGlzIGEgY2lyY2xlIHN2ZywgeW91IG5lZWQgdG8gYWRkIHRoZSBjbGFzcyBgLmNpcmNsZWAgdG8gZW5mb3JjZSBjb25zaXN0ZW50IGNpcmNsZSBpY29uIHNpemluZy5cblxuYGBgaHRtbF9leGFtcGxlXG57JSBpbmNsdWRlIFwidGVtcGxhdGVzL2NvbW1vbi9wcm9tb2xpc3QubnVualwiICV9XG5gYGBcbmBgYHNhc3NfZXhhbXBsZVxuLnByb21vbGlzdC10ZXh0IHtcbiAgICBjb2xvcjogJGpldDtcbiAgICBmb250LXNpemU6ICR0ZXh0LW5vcm1hbDtcbiAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygxMik7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5gYGBcblxuKi9cblxuLnByb21vbGlzdC10ZXh0IHtcbiAgICBjb2xvcjogJGpldDtcbiAgICBmb250LXNpemU6ICR0ZXh0LW5vcm1hbDtcbiAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygxMik7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5wcm9tb2xpc3QuZXh0cmEtdGV4dCAucHJvbW90ZXh0IHtcbiAgICBAaW5jbHVkZSByZXNldC12ZXJ0aWNhbC1hbGlnbi1taWRkbGU7XG4gICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoLTYpO1xufVxuXG5AbWVkaWEgI3skc21hbGwtb25seX0geyAvLyBIYW5kbGUgdGV4dCB3cmFwcGluZyBsb25nZXIgdGhhbiBpbWFnZSBpbiBzbWFsbFxuICAucHJvbW9saXN0LmV4dHJhLXRleHQgPiBsaSA+IGEgPiBpbWcubGVmdCArIC5wcm9tb3RleHQge1xuICAgIG1hcmdpbi1sZWZ0OiByZW0tY2FsYyg5OSk7XG4gIH1cblxuICAucHJvbW9saXN0LmV4dHJhLXRleHQgPiBsaSA+IGEgPiBpbWcucmlnaHQgKyAucHJvbW90ZXh0IHtcbiAgICBtYXJnaW4tcmlnaHQ6IHJlbS1jYWxjKDk5KTtcbiAgfVxufVxuXG4ucHJvbW9saXN0LmV4dHJhLXRleHQgPiBsaTpsYXN0LWNoaWxkIC5wcm9tb3RleHQgeyAvLyBPdmVycmlkZSBkZWZhdWx0IG1hcmdpbi10b3BcbiAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygtNSk7XG59XG5cblxuLypkb2Ncbi0tLVxudGl0bGU6IFN2Z3Ncbm5hbWU6IGMtcHJvbW9saXN0XG5jYXRlZ29yeTogTWVkaWEgT2JqZWN0cyAtIFByb21vbGlzdFxuc2VsZWN0b3JzOlxuICAgIC0gLnByb21vbGlzdC5jaXJjbGVcbnRlbXBsYXRlOlxuICBwcm9tb2xpc3Q6XG4gICAgY2xhc3M6IGNpcmNsZSBleHRyYS10ZXh0XG4gICAgaGVhZGluZzogQmVzdCBKb2JzIFJhbmtpbmdzXG4gICAgaXRlbWxpc3Q6XG4gICAgICAtIGl0ZW06XG4gICAgICAgIGxpbms6ICNcbiAgICAgICAgaW1hZ2U6XG4gICAgICAgICAgZmxvYXQ6IGxlZnRcbiAgICAgICAgICBzcmM6IC9zdGF0aWMvaW1nL2NpcmNsZS1iYWRnZS1pY29uLnN2Z1xuICAgICAgICAgIGhlaWdodDogODRcbiAgICAgICAgICBhbHQ6XG4gICAgICAgIHRpdGxlOiAxMDAgQmVzdCBKb2JzXG4gICAgICAgIHRleHQ6IExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBxdWkgZXUgcG9zc2ltLlxuICAgICAgLSBpdGVtOlxuICAgICAgICBsaW5rOiAjXG4gICAgICAgIGltYWdlOlxuICAgICAgICAgIGZsb2F0OiBsZWZ0XG4gICAgICAgICAgc3JjOiAvc3RhdGljL2ltZy9jaXJjbGUtaW5kdXN0cnktaWNvbi5zdmdcbiAgICAgICAgICBoZWlnaHQ6IDg0XG4gICAgICAgICAgYWx0OlxuICAgICAgICB0aXRsZTogQmVzdCBKb2JzIGJ5IEluZHVzdHJ5XG4gICAgICAgIHRleHQ6IExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBxdWkgZXUgcG9zc2ltLlxuICAgICAgLSBpdGVtOlxuICAgICAgICBsaW5rOiAjXG4gICAgICAgIGltYWdlOlxuICAgICAgICAgIGZsb2F0OiBsZWZ0XG4gICAgICAgICAgc3JjOiAvc3RhdGljL2ltZy9jaXJjbGUtc3RlbS1pY29uLnN2Z1xuICAgICAgICAgIGhlaWdodDogODRcbiAgICAgICAgICBhbHQ6XG4gICAgICAgIHRpdGxlOiBCZXN0IFNURU0gSm9ic1xuICAgICAgICB0ZXh0OiBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgcXVpIGV1IHBvc3NpbS5cblxuLS0tXG5cbldoZW4geW91IHVzZSBjaXJjbGUgaW1hZ2VzIGluIHRoZSBwcm9tb2xpc3QsIHRoZSBzaXplIG9mIHRoZSBpbWFnZSBpcyBzbWFsbGVyIGFuZCB0aGUgcGFkZGluZyBsYXJnZXIuIFVzZSBjbGFzcyBgLmNpcmNsZWAgdG8gc2V0IHByb3BlciBpbWFnZSBzaXplLlxuXG5TdHlsaW5nIHJlbGllcyBvbiB0aGUgbGluayBsZWFkIHRvIGJlIGFuIGg0XG5cbmBgYGh0bWxfZXhhbXBsZVxueyUgaW5jbHVkZSBcInRlbXBsYXRlcy9jb21tb24vcHJvbW9saXN0Lm51bmpcIiAlfVxuYGBgXG5cblRoZSB3aWR0aCBvZiB0aGUgc3ZnIGljb25zIGlzIHNldCBoZXJlOlxuXG5gYGBzYXNzX2V4YW1wbGVcbi5wcm9tb2xpc3QuY2lyY2xlID4gbGkgPiBhID4gaW1nIHtcbiAgICBtaW4td2lkdGg6IHJlbS1jYWxjKDU2KTtcbiAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDU2KTtcbiAgICBtaW4taGVpZ2h0OiByZW0tY2FsYyg1Nik7XG4gICAgbWF4LWhlaWdodDogcmVtLWNhbGMoNTYpO1xuICAgIG1hcmdpbjogcmVtLWNhbGMoMTQpIDA7XG5cbiAgICAmLmxlZnQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRpbWctbWFyZ2luICogMjtcbiAgICB9XG5cbiAgICAmLnJpZ2h0IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRpbWctbWFyZ2luICogMjtcbiAgICB9XG59XG5cbi5wcm9tb2xpc3QuY2lyY2xlIGg0IHtcbiAgICBjb2xvcjogJGFuY2hvci1mb250LWNvbG9yO1xufVxuYGBgXG4qL1xuXG4ucHJvbW9saXN0LmNpcmNsZSA+IGxpID4gYSA+IGltZyxcbi5wcm9tb2xpc3QuY2lyY2xlID4gbGkgPiBhID4gcGljdHVyZSA+IGltZyB7XG4gICAgbWluLXdpZHRoOiByZW0tY2FsYyg1Nik7XG4gICAgbWF4LXdpZHRoOiByZW0tY2FsYyg1Nik7XG4gICAgbWluLWhlaWdodDogcmVtLWNhbGMoNTYpO1xuICAgIG1heC1oZWlnaHQ6IHJlbS1jYWxjKDU2KTtcblxuICAgICYubGVmdCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJGltZy1tYXJnaW4gKiAyO1xuICAgIH1cblxuICAgICYucmlnaHQge1xuICAgICAgICBtYXJnaW4tbGVmdDogJGltZy1tYXJnaW4gKiAyO1xuICAgIH1cbn1cblxuLypkb2Ncbi0tLVxudGl0bGU6IFJvdW5kIEltYWdlc1xubmFtZTogZC1wcm9tb2xpc3RcbmNhdGVnb3J5OiBNZWRpYSBPYmplY3RzIC0gUHJvbW9saXN0XG5zZWxlY3RvcnM6XG4gICAgLSAucHJvbW9saXN0LnJvdW5kXG50ZW1wbGF0ZTpcbiAgICBwcm9tb2xpc3Q6XG4gICAgICAgIGNsYXNzOiByb3VuZFxuICAgICAgICBoZWFkaW5nOiBNb3N0IFBvcHVsYXJcbiAgICAgICAgaXRlbWxpc3Q6XG4gICAgICAgICAgICAtIGl0ZW06XG4gICAgICAgICAgICAgIGxpbms6ICNcbiAgICAgICAgICAgICAgaW1hZ2U6XG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnRcbiAgICAgICAgICAgICAgICBzcmM6IGh0dHA6Ly9sb3JlbXBpeGVsLmNvbS84NC84NC9jaXR5L1xuICAgICAgICAgICAgICAgIGhlaWdodDogODRcbiAgICAgICAgICAgICAgICBhbHQ6XG4gICAgICAgICAgICAgIHRleHQ6IEVzc2VudGlhbCBCcmFuZGluZyBhbmQgTmV0d29ya2luZyBUaXBzIGZvciBDb2xsZWdlIFNlbmlvcnNcbiAgICAgICAgICAgIC0gaXRlbTpcbiAgICAgICAgICAgICAgbGluazogI1xuICAgICAgICAgICAgICBpbWFnZTpcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdFxuICAgICAgICAgICAgICAgIHNyYzogaHR0cDovL2xvcmVtcGl4ZWwuY29tLzg0Lzg0L2NpdHkvXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA4NFxuICAgICAgICAgICAgICAgIGFsdDpcbiAgICAgICAgICAgICAgdGV4dDogV2hhdCBSZWNydWl0ZXJzIFRoaW5rIFdoZW4gVGhleSBTZWUgWW91ciBMaW5rZWRJbiBQcm9maWxlXG4gICAgICAgICAgICAtIGl0ZW06XG4gICAgICAgICAgICAgIGxpbms6ICNcbiAgICAgICAgICAgICAgaW1hZ2U6XG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnRcbiAgICAgICAgICAgICAgICBzcmM6IGh0dHA6Ly9sb3JlbXBpeGVsLmNvbS84NC84NC9jaXR5L1xuICAgICAgICAgICAgICAgIGhlaWdodDogODRcbiAgICAgICAgICAgICAgICBhbHQ6XG4gICAgICAgICAgICAgIHRleHQ6IDYgTGVzc29ucyBKb2IgU2Vla2VycyBDYW4gTGVhcm4gRnJvbSBUaGUgR3JlYXQgUmVjZXNzaW9uXG4tLS1cblxuQ29uc2lzdGVudCB3aXRoIGZpcmVmbHkgbmFtaW5nIGNvbnZlbnRpb24sIGEgcHJvbW8gbGlzdCBpcyBhbiBpbWFnZSB3aXRoIHRleHQgYmVzaWRlIGl0ICh0byB0aGUgbGVmdCBvciByaWdodClcblxuT3ZlcnJpZGVzIHNxdWFyZSBpbWFnZXMgYW5kIG1ha2UgaXQgbG9vayBsaWtlIGNpcmNsZXMgdXNpbmcgY2xhc3MgYC5yb3VuZGAuICBNYWtlIHN1cmUgaW1hZ2UgaXRzZWxmIGhhcyBlcXVhbCBoZWlnaHQsIHdpZHRoXG5cbmBgYGh0bWxfZXhhbXBsZVxueyUgaW5jbHVkZSBcInRlbXBsYXRlcy9jb21tb24vcHJvbW9saXN0Lm51bmpcIiAlfVxuYGBgXG5cbmBgYHNhc3NfZXhhbXBsZVxuLnByb21vbGlzdC5yb3VuZCBpbWcge1xuICAgIGJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDUyKTtcbn1cbmBgYFxuKi9cblxuLnByb21vbGlzdC5yb3VuZCBpbWcge1xuICAgIGJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDUyKTtcbn1cblxuLypkb2Ncbi0tLVxudGl0bGU6IExpbmtzIE9ubHlcbm5hbWU6IGUtcHJvbW9saXN0XG5jYXRlZ29yeTogTWVkaWEgT2JqZWN0cyAtIFByb21vbGlzdFxuc2VsZWN0b3JzOlxuICAgIC0gLnByb21vbGlzdC50ZXh0XG50ZW1wbGF0ZTpcbiAgICBwcm9tb2xpc3Q6XG4gICAgICAgIGNsYXNzOiB0ZXh0XG4gICAgICAgIGhlYWRpbmc6IFF1ZXN0aW9ucyAmYW1wOyBBbnN3ZXJzXG4gICAgICAgIGl0ZW1saXN0OlxuICAgICAgICAgICAgLSBpdGVtOlxuICAgICAgICAgICAgICBsaW5rOiAjXG4gICAgICAgICAgICAgIHRleHQ6IEhvdyBkbyBJIGdldCBiZXR0ZXIgYXQgbmV0d29ya2luZz9cbiAgICAgICAgICAgIC0gaXRlbTpcbiAgICAgICAgICAgICAgbGluazogI1xuICAgICAgICAgICAgICB0ZXh0OiBTaG91bGQgSSBoYXZlIHBlcnNvbmFsIGJ1c2luZXNzIGNhcmRzIG1hZGU/XG4gICAgICAgICAgICAtIGl0ZW06XG4gICAgICAgICAgICAgIGxpbms6ICNcbiAgICAgICAgICAgICAgdGV4dDogSG93IGNhbiBJIHNldCB1cCBhIG1lZXRpbmcgd2l0aCBzb21lb25lIHdobyBkb2Vzbid0IGtub3cgbWU/XG4gICAgICAgICAgICAtIGl0ZW06XG4gICAgICAgICAgICAgIGxpbms6ICNcbiAgICAgICAgICAgICAgdGV4dDogU2hvdWQgSSBtYWtlIGEgc2NlbmUgdG8gZ2V0IHRoZSBDRU8gdG8gbm90aWNlIG1lP1xuICAgICAgICAgICAgLSBpdGVtOlxuICAgICAgICAgICAgICBsaW5rOiAjXG4gICAgICAgICAgICAgIHRleHQ6IENhbiBJIHJlYWxseSBnZXQgYSBqb2IgZnJvbSBuZXR3b3JraW5nP1xuICAgICAgICAgICAgLSBpdGVtOlxuICAgICAgICAgICAgICBsaW5rOiAjXG4gICAgICAgICAgICAgIHRleHQ6IFNlZSBhbGwgMzIgcXVlc3Rpb25zXG4gICAgICAgICAgICAgIHN0cm9uZzogdHJ1ZVxuICAgICAgICAgICAgLSBpdGVtOlxuICAgICAgICAgICAgICBidXR0b246XG4gICAgICAgICAgICAgICAgbGFiZWw6IGFzayBhIHF1ZXN0aW9uXG4gICAgICAgICAgICAgICAgY2xhc3M6IGljb24gbGlua1xuICAgICAgICAgICAgICAgIHN2ZzogL3N0YXRpYy9zcHJpdGVzL3N2Zy9zcHJpdGUuc3ltYm9sLnN2ZyNxdWVzdGlvblxuICAgICAgICAgICAgICBsaW5rOiAjXG4gICAgICAgICAgICAgIHRleHQ6IEFzayBhIFF1ZXN0aW9uXG4tLS1cbkluIHRoZSBjYXNlIHRoYXQgdGhlcmUgaXMgbm8gaW1hZ2UsIHRoZXJlIGlzIG9ubHkgbGlua2VkIHRleHQuIFVzZSBjbGFzcyBgLnRleHRgXG5cbmBgYGh0bWxfZXhhbXBsZVxueyUgaW5jbHVkZSBcInRlbXBsYXRlcy9jb21tb24vcHJvbW9saXN0Lm51bmpcIiAlfVxuYGBgXG4qL1xuXG4ucHJvbW9saXN0LnRleHQgPiBsaSB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICBmb250LXNpemU6ICR0ZXh0LW5vcm1hbDtcbn1cbi5wcm9tb2xpc3QudGV4dCA+IGxpOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc2Vjb25kYXJ5LXNoYWRvdy1jb2xvcjtcbn1cbi8qZG9jXG4tLS1cbnRpdGxlOiBCb3R0b20gTGlzdFxubmFtZTogZi1wcm9tb2xpc3RcbmNhdGVnb3J5OiBNZWRpYSBPYmplY3RzIC0gUHJvbW9saXN0XG5zZWxlY3RvcnM6XG4gICAgLSAucHJvbW9saXN0LmVuZFxudGVtcGxhdGU6XG4gICAgcHJvbW9saXN0OlxuICAgICAgICBjbGFzczogdGV4dCBlbmRcbiAgICAgICAgaGVhZGluZzogUXVlc3Rpb25zICZhbXA7IEFuc3dlcnNcbiAgICAgICAgaXRlbWxpc3Q6XG4gICAgICAgICAgICAtIGl0ZW06XG4gICAgICAgICAgICAgIGxpbms6ICNcbiAgICAgICAgICAgICAgdGV4dDogSG93IGRvIEkgZ2V0IGJldHRlciBhdCBuZXR3b3JraW5nP1xuICAgICAgICAgICAgLSBpdGVtOlxuICAgICAgICAgICAgICBsaW5rOiAjXG4gICAgICAgICAgICAgIHRleHQ6IFNob3VsZCBJIGhhdmUgcGVyc29uYWwgYnVzaW5lc3MgY2FyZHMgbWFkZT9cbiAgICAgICAgICAgIC0gaXRlbTpcbiAgICAgICAgICAgICAgbGluazogI1xuICAgICAgICAgICAgICB0ZXh0OiBIb3cgY2FuIEkgc2V0IHVwIGEgbWVldGluZyB3aXRoIHNvbWVvbmUgd2hvIGRvZXNuJ3Qga25vdyBtZT9cbiAgICAgICAgICAgIC0gaXRlbTpcbiAgICAgICAgICAgICAgbGluazogI1xuICAgICAgICAgICAgICB0ZXh0OiBTaG91ZCBJIG1ha2UgYSBzY2VuZSB0byBnZXQgdGhlIENFTyB0byBub3RpY2UgbWU/XG4gICAgICAgICAgICAtIGl0ZW06XG4gICAgICAgICAgICAgIGxpbms6ICNcbiAgICAgICAgICAgICAgdGV4dDogQ2FuIEkgcmVhbGx5IGdldCBhIGpvYiBmcm9tIG5ldHdvcmtpbmc/XG4gICAgICAgICAgICAtIGl0ZW06XG4gICAgICAgICAgICAgIGxpbms6ICNcbiAgICAgICAgICAgICAgdGV4dDogU2VlIGFsbCAzMiBxdWVzdGlvbnNcbiAgICAgICAgICAgICAgc3Ryb25nOiB0cnVlXG4gICAgICAgICAgICAtIGl0ZW06XG4gICAgICAgICAgICAgIGJ1dHRvbjpcbiAgICAgICAgICAgICAgICBsYWJlbDogYXNrIGEgcXVlc3Rpb25cbiAgICAgICAgICAgICAgICBjbGFzczogaWNvbiBsaW5rXG4gICAgICAgICAgICAgICAgc3ZnOiAvc3RhdGljL3Nwcml0ZXMvc3ZnL3Nwcml0ZS5zeW1ib2wuc3ZnI3F1ZXN0aW9uXG4gICAgICAgICAgICAgIGxpbms6ICNcbiAgICAgICAgICAgICAgdGV4dDogQXNrIGEgUXVlc3Rpb25cbi0tLVxuXG5MaXN0cyBjYW4gYmUgc3RhY2tlZCBpbiBhbnkgb3JkZXIuIFRvIGluZGljYXRlIHdoaWNoIG9uZSBpcyBhdCB0aGUgYm90dG9tIG9mIHRoZSBjb2x1bW4sIHdoZW4geW91IGRvbid0IHdhbnQgdG8gc2VlIHRoZSBib3JkZXIgdW5kZXJsaW5lLCBhZGQgY2xhc3MgYC5lbmRgXG5cbmBgYGh0bWxfZXhhbXBsZVxueyUgaW5jbHVkZSBcInRlbXBsYXRlcy9jb21tb24vcHJvbW9saXN0Lm51bmpcIiAlfVxuYGBgXG5cbmBgYHNhc3NfZXhhbXBsZVxuLnByb21vbGlzdC5lbmQgPiBsaTpsYXN0LWNoaWxkLFxuLnByb21vbGlzdC50ZXh0LmVuZCA+IGxpOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xufVxuYGBgXG4qL1xuXG4ucHJvbW9saXN0LmVuZCA+IGxpOmxhc3QtY2hpbGQsXG4ucHJvbW9saXN0LnRleHQuZW5kID4gbGk6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuLypkb2Ncbi0tLVxudGl0bGU6IFN0YWNrZWRcbm5hbWU6IGctcHJvbW9saXN0LXN0YWNrZWRcbmNhdGVnb3J5OiBNZWRpYSBPYmplY3RzIC0gUHJvbW9saXN0XG5zZWxlY3RvcnM6XG4gICAgLSAucHJvbW9saXN0LnN0YWNrZWRcbi0tLVxuV2hlbiB0aGUgcHJvbW9saXN0IHN0YWNrcyBpbiBtZWRpdW0tdXAgYW5kIHlvdSBkb24ndCB3YW50IGEgZ3JheSBib3R0b20tYm9yZGVyIHVzZSBjbGFzcyBgLnN0YWNrZWRgXG5cblRoaXMgaXMgY3VycmVudGx5IGJlaW5nIHVzZWQgb24gdGhlIFJlYWwgRXN0YXRlIGxhbmRpbmcgcGFnZSwgc28gdGhlIEhUTUwgaXMgY3VycmVudGx5IHRlcnJpYmxlXG5cbmBgYGh0bWxfZXhhbXBsZVxuPGRpdiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICNFQUYwRjE7XCIgY2xhc3M9XCJicmVhLWhwLXBvcFwiPlxuXG4gICAgPGgzIGNsYXNzPVwiaGVhZGluZy1sYXJnZSBib3JkZXJlZC1ib3R0b20gc21hbGwtb25seVwiIHN0eWxlPVwibWFyZ2luLWxlZnQ6IGF1dG87IG1hcmdpbi1yaWdodDogYXV0bzsgbWFyZ2luLWJvdHRvbTogMDsgbWF4LXdpZHRoOiA2Mi41cmVtOyBwYWRkaW5nOiAxNXB4XCI+UG9wdWxhciBUb3BpY3M8L2gzPlxuXG4gICAgPHVsIGNsYXNzPVwicHJvbW9saXN0IGNpcmNsZSBzdGFja2VkIHNtYWxsLWJsb2NrLWdyaWQtMSBtZWRpdW0tYmxvY2stZ3JpZC0yIGxhcmdlLWJsb2NrLWdyaWQtM1wiIHN0eWxlPVwiIG1hcmdpbjogMCBhdXRvOyBtYXgtd2lkdGg6IDYyLjVyZW07IHBhZGRpbmctYm90dG9tOiAxNXB4O1wiPlxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTpub25lO1wiPjwvZGl2PlxuICAgICAgICA8bGkgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDE1cHg7IHBhZGRpbmctcmlnaHQ6IDE1cHg7XCI+XG4gICAgICAgICAgICA8YSBocmVmPVwiI1wiPlxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvY2lyY2xlLXRodW1ic3VwLWljb24uc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgYWx0PVwiXCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDMwcHg7XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb21vdGV4dCB0ZXh0LWxhcmdlc3RcIj5CdXlpbmcgYSBIb21lPC9kaXY+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBzdHlsZT1cInBhZGRpbmctbGVmdDogMTVweDsgcGFkZGluZy1yaWdodDogMTVweDtcIj5cbiAgICAgICAgICAgIDxhIGhyZWY9XCIjXCI+XG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9jaXJjbGUtdGFnLWljb24uc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgYWx0PVwiXCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDMwcHg7XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb21vdGV4dCB0ZXh0LWxhcmdlc3RcIj5TZWxsaW5nIGEgSG9tZTwvZGl2PlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L2xpPlxuICAgICAgICA8bGkgY2xhc3M9XCJ0ZXh0LWxhcmdlc3RcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogMTVweDsgcGFkZGluZy1yaWdodDogMTVweDtcIj5cbiAgICAgICAgICAgIDxhIGhyZWY9XCIjXCI+XG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvc3RhdGljL2ltZy9jaXJjbGUtY2FsZW5kYXItaWNvbi5zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiBhbHQ9XCJcIiBzdHlsZT1cIm1hcmdpbi1yaWdodDogMzBweDtcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvbW90ZXh0IHRleHQtbGFyZ2VzdFwiPlJlbnRpbmcgYSBIb21lPC9kaXY+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBjbGFzcz1cInRleHQtbGFyZ2VzdFwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiAxNXB4OyBwYWRkaW5nLXJpZ2h0OiAxNXB4O1wiPlxuICAgICAgICAgICAgPGEgaHJlZj1cIiNcIj5cbiAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwibGVmdC1mb3Itc21hbGwtb25seVwiIHNyYz1cIi9zdGF0aWMvaW1nL2NpcmNsZS1zdGVtLWljb24uc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgYWx0PVwiXCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDMwcHg7IGhlaWdodDogNTZweDtcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvbW90ZXh0IHRleHQtbGFyZ2VzdFwiPkhvbWUgSW1wcm92ZW1lbnRzPC9kaXY+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBjbGFzcz1cInRleHQtbGFyZ2VzdFwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiAxNXB4OyBwYWRkaW5nLXJpZ2h0OiAxNXB4O1wiPlxuICAgICAgICAgICAgPGEgaHJlZj1cIiNcIj5cbiAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwibGVmdFwiIHNyYz1cIi9zdGF0aWMvaW1nL2NpcmNsZS1pbmR1c3RyeS1pY29uLnN2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIGFsdD1cIlwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAzMHB4OyBoZWlnaHQ6IDU2cHg7XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb21vdGV4dCB0ZXh0LWxhcmdlc3RcIiBzdHlsZT1cIiAgICBtYXgtd2lkdGg6IDY1JTtcIj5Nb3J0Z2FnZXMgJmFtcDsgRmluYW5jaW5nPC9kaXY+XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgICAgPGxpIGNsYXNzPVwidGV4dC1sYXJnZXN0XCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDE1cHg7IHBhZGRpbmctcmlnaHQ6IDE1cHg7XCI+XG4gICAgICAgICAgICA8YSBocmVmPVwiI1wiPlxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiL3N0YXRpYy9pbWcvY2lyY2xlLW5ldHdvcmtpbmctaWNvbi5zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiBhbHQ9XCJcIiBzdHlsZT1cIm1hcmdpbi1yaWdodDogMzBweDtcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvbW90ZXh0IHRleHQtbGFyZ2VzdFwiPkNob29zaW5nIGFuIEFnZW50PC9kaXY+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIDwvbGk+XG4gICAgPC91bD5cblxuICAgIDxzdHlsZT5cbiAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgICAgICAuYnJlYS1ocC1wb3Age1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgPC9zdHlsZT5cbjwvZGl2PlxuYGBgXG4qL1xuXG4ucHJvbW9saXN0LnN0YWNrZWQge1xuICAmID4gbGkge1xuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMTIuNSkgcmVtLWNhbGMoNykgcmVtLWNhbGMoMTIuNSkgMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgZm9udC1zaXplOiAkdGV4dC1sYXJnZTtcbiAgICB9XG4gIH1cbn1cblxuLypkb2Ncbi0tLVxudGl0bGU6IFByb21vbGlzdCBGZWF0dXJlZFxubmFtZTogaC1wcm9tb2xpc3QtZmVhdHVyZWRcbmNhdGVnb3J5OiBNZWRpYSBPYmplY3RzIC0gUHJvbW9saXN0XG5zZWxlY3RvcnM6XG4gICAgLSAucHJvbW9saXN0LmZlYXR1cmVkXG50ZW1wbGF0ZTpcbiAgICBwcm9tb2xpc3RfZmVhdHVyZWQ6XG4gICAgICAgIGVuZDogdHJ1ZVxuICAgICAgICB0ZW1wX2hpZGU6IHRydWVcbiAgICAgICAgaGVhZGluZzogTW9zdCBSZWNlbnRcbiAgICAgICAgZmxvYXQ6IGxlZnRcbiAgICAgICAgbW9yZV9saW5rOiAjXG4gICAgICAgIGl0ZW1saXN0OlxuICAgICAgICAgICAgLSBsaW5rOiAjXG4gICAgICAgICAgICAgIHNtYWxsX2ltZzogaHR0cDovL3BsYWNlaG9sZC5pdC84NHg4NC9cbiAgICAgICAgICAgICAgbWVkaXVtX2ltZzogaHR0cDovL3BsYWNlaG9sZC5pdC8zMTR4MjA5L1xuICAgICAgICAgICAgICBhbHQ6XG4gICAgICAgICAgICAgIGhlYWRpbmc6IEF2b2lkIFRoZXNlIDUgUGl0ZmFsbHMgb2YgSm9iIEh1bnRpbmdcbiAgICAgICAgICAgICAgYXV0aG9yOlxuICAgICAgICAgICAgICAgIGxpbms6ICNcbiAgICAgICAgICAgICAgICBuYW1lOiBQYWlnZSBPLiBBdXRob3JcbiAgICAgICAgICAgICAgICBkYXRlOiBBcHJpbCAyMywgMjAxNVxuICAgICAgICAgICAgICBsZWFkOiBUaGUgY29tbW9uIC0gYnV0IHByZXZlbnRhYmxlIC0gbWlzdGFrZXMgd2lsbCBkZXJhaWwgeW91ciBzZWFyY2guXG4gICAgICAgICAgICAtIGxpbms6ICNcbiAgICAgICAgICAgICAgc21hbGxfaW1nOiBodHRwOi8vcGxhY2Vob2xkLml0Lzg0eDg0L1xuICAgICAgICAgICAgICBtZWRpdW1faW1nOiBodHRwOi8vcGxhY2Vob2xkLml0LzMxNHgyMDkvXG4gICAgICAgICAgICAgIGFsdDpcbiAgICAgICAgICAgICAgaGVhZGluZzogV2hhdCBub3QgdG8gdHdlZXQgb24gYSBqb2JcbiAgICAgICAgICAgICAgYXV0aG9yOlxuICAgICAgICAgICAgICAgIGxpbms6ICNcbiAgICAgICAgICAgICAgICBuYW1lOiBQYWlnZSBPLiBBdXRob3JcbiAgICAgICAgICAgICAgICBkYXRlOiBBcHJpbCAyMywgMjAxNVxuICAgICAgICAgICAgICBsZWFkOiBUaGUgY29tbW9uIC0gYnV0IHByZXZlbnRhYmxlIC0gbWlzdGFrZXMgd2lsbCBkZXJhaWwgeW91ciBzZWFyY2guXG4tLS1cblxuVGhpcyBpcyBhIGZlYXR1cmVkIHByb21vbGlzdCwgd2l0aCBsYXJnZXIgaW1hZ2VzIG9uIG1lZGl1bS11cCBzY3JlZW5zXG5cbmBgYGh0bWxfZXhhbXBsZT9raXRjaGVuLXNpbms9dHJ1ZVxueyUgaW5jbHVkZSBcInRlbXBsYXRlcy9jb21tb24vcHJvbW9saXN0LWZlYXR1cmVkLm51bmpcIiAlfVxuYGBgXG4qL1xuXG4ucHJvbW9saXN0LmZlYXR1cmVkIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7IC8vIE92ZXJyaWRlIHByb21vbGlzdCBkZWZhdWx0XG4gICAgbWluLXdpZHRoOiByZW0tY2FsYyg4NCk7XG5cbiAgICAmID4gbGkge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgLy8gRm9sbG93aW5nIHR3byBsaW5lcyB0ZW1wb3JhcnkgZml4XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKC01KTsgLy8gdGVtcG9yYXJ5IGZpeFxuXG4gICAgICAgICYgPiBoMyB7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygxMikgMCAwIDA7XG5cbiAgICAgICAgICAgIEBtZWRpYSAjeyRtZWRpdW19IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ucHJvbW9saXN0LmZlYXR1cmVkID4gbGkgPiBkaXYge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYygxNSk7XG4gICAgcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDE1KTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNlY29uZGFyeS1zaGFkb3ctY29sb3I7XG5cbiAgICAmIGgzIHsgLy8gQ2VudGVyIHRleHQgdG8gcGljdHVyZVxuICAgICAgICBAaW5jbHVkZSB2ZXJ0aWNhbC1hbGlnbi1taWRkbGU7XG5cbiAgICAgICAgQG1lZGlhICN7JG1lZGl1bX0geyAvLyBGb3IgYWRhcHRpbmcgd2hlbiB0ZXh0IGdldHMgdG9vIGxvbmcgaW4gbWVkaXVtLCBkb24ndCBzY3JvbGxcbiAgICAgICAgICAgIEBpbmNsdWRlIHJlc2V0LXZlcnRpY2FsLWFsaWduLW1pZGRsZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYgPiBhIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOiA2KTtcbiAgICAgICAgICAgICYubGVmdCB7XG4gICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcblxuICAgICAgICAgICAgICAgICAmIH4gLmZlYXR1cmVkLWNvbnRlbnQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1uczogNik7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5yaWdodCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgICAgICAgICAgICAmIH4gLmZlYXR1cmVkLWNvbnRlbnQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKCRjb2x1bW5zOiA2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgI3skbWVkaXVtfSB7XG4gICAgICAgICAgICAmID4gaW1nLCAmID4gcGljdHVyZSA+IGltZyB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiByZW0tY2FsYygyOTgpO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogcmVtLWNhbGMoMjk4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAjeyRsYXJnZS11cH0ge1xuICAgICAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoMjUpO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoMjUpO1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNlY29uZGFyeS1zaGFkb3ctY29sb3I7XG4gICAgfVxuXG4gICAgJiA+IC5sZWZ0ID4gaW1nLFxuICAgICYgPiAubGVmdCA+IHBpY3R1cmUgPiBpbWcge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkaW1nLW1hcmdpbjtcbiAgICAgICAgQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0tY2FsYygwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYgPiAucmlnaHQgPiBpbWcsXG4gICAgJiA+IC5yaWdodCA+IHBpY3R1cmUgPiBpbWcge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRpbWctbWFyZ2luO1xuICAgICAgICBAbWVkaWEgI3tsYXJnZS11cH0ge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0tY2FsYygwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHAge1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygxNSk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGNvbG9yOiAkamV0O1xuXG4gICAgICAgIEBtZWRpYSAjeyRtZWRpdW19IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5mZWF0dXJlZC1jb250ZW50IGgzIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgZm9udC1zaXplOiAkaGVhZGluZy1zbWFsbDtcbiAgICAgICAgQG1lZGlhICN7JG1lZGl1bX0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkaGVhZGluZy1sYXJnZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5mZWF0dXJlZC1hdXRob3Ige1xuICAgICAgZm9udC1zaXplOiAkdGV4dC1zbWFsbDtcblxuICAgICAgYSB7XG4gICAgICAgIGNvbG9yOiAkanVtYm87XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiBcIiB8IFwiO1xuICAgICAgICAgIGNvbG9yOiAkY2hhcmNvYWw7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbS1jYWxjKDEwKTtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbS1jYWxjKDEwKTtcbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgICBjb2xvcjogJGxpbmstYmx1ZS1saWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbn1cblxuLnByb21vbGlzdC5mZWF0dXJlZCA+IGxpW3JvbGU9YnV0dG9uXSA+IGEge1xuICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDIwKTtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygzNSk7XG4gICAgQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDExKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjUpOyAvLysgbGk6bGFzdC1jaGlsZCA9IHJlbS1jYWxjKDUwKVxuICAgIH1cbn1cbiIsIi8qZG9jXG4tLS1cbnRpdGxlOiBQcm9maWxlIFNlY3Rpb24gd2l0aCBJbWFnZVxubmFtZTogYS1wcm9maWxlLXNlY3Rpb25cbmNhdGVnb3J5OiBNZWRpYSBPYmplY3RzIC0gUHJvZmlsZSBTZWN0aW9uXG5zZWxlY3RvcnM6XG4gICAgLSAucHJvZmlsZS1zZWN0aW9uXG4tLS1cblxuLSBgLnByb2ZpbGUtc2VjdGlvbmAgaGFzIDYwcHggb2Ygd2hpdGUgc3BhY2UgYmVsb3cgaXQuXG4tIGAucHJvZmlsZS1zZWN0aW9uLWZvb3RlcmAgY29uc2lzdHMgd2l0aCBhIGxpbmsgYW5kIGEgYm9yZGVyIGFib3ZlIGl0LiBUaGV5IGdvIGluc2lkZSBzZWN0aW9ucy5cblxuIyMjIHcvIEltYWdlIChmbHVzaCB3aXRoIHRleHQpXG5cbmBgYGh0bWxfZXhhbXBsZV9raXRjaGVuLXNpbmtcbjxkaXYgY2xhc3M9XCJwcm9maWxlLXNlY3Rpb24gYmxvY2stbG9vc2VcIj5cbiAgPGgyIGNsYXNzPVwiaGVhZGluZy1sYXJnZXIgYmxvY2stbm9ybWFsXCI+T3ZlcnZpZXc8L2gyPlxuICA8ZGl2IGNsYXNzPVwiYmxvY2stbm9ybWFsXCI+XG4gICAgPGltZyBjbGFzcz1cInByb2ZpbGUtc2VjdGlvbi1pbWdcIiBzcmM9XCJodHRwOi8vcGxhY2Vob2xkLml0LzMxMngyMTVcIiBhbHQ9XCJcIi8+XG4gIDwvZGl2PlxuICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdC4gQWIgYXRxdWUgZGlnbmlzc2ltb3MgaXBzYSBvZGl0IG9tbmlzIHF1YW0gcXVvcyByZW0gdmVsLiBBbWV0XG4gIGFzcGVyaW9yZXMgZGViaXRpcyBleCBsYWJvcnVtLCBtaW5pbWEgbW9sZXN0aWFlIG5lY2Vzc2l0YXRpYnVzIG5lcXVlIHBhcmlhdHVyIHNlZCBzZXF1aT8gTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsXG4gIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQuIEEgYmxhbmRpdGlpcyBkZXNlcnVudCBlYSBlbGlnZW5kaSBlb3MgZXJyb3IgZXQgaW5jaWR1bnQgaXN0ZSBsYXVkYW50aXVtLCBtYWduaSBwb3JybyxcbiAgcXVpYSwgcXVpZGVtIHJhdGlvbmUgcmVpY2llbmRpcyByZW0gcmVydW0gc2FlcGUgc2FwaWVudGUgc2VxdWkuXG4gIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LiBBYiBhdHF1ZSBkaWduaXNzaW1vcyBpcHNhIG9kaXQgb21uaXMgcXVhbSBxdW9zIHJlbSB2ZWwuIEFtZXRcbiAgYXNwZXJpb3JlcyBkZWJpdGlzIGV4IGxhYm9ydW0sIG1pbmltYSBtb2xlc3RpYWUgbmVjZXNzaXRhdGlidXMgbmVxdWUgcGFyaWF0dXIgc2VkIHNlcXVpLlxuICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdC4gQWIgYXRxdWUgZGlnbmlzc2ltb3MgaXBzYSBvZGl0IG9tbmlzIHF1YW0gcXVvcyByZW0gdmVsLiBBbWV0XG4gIGFzcGVyaW9yZXMgZGViaXRpcyBleCBsYWJvcnVtLCBtaW5pbWEgbW9sZXN0aWFlIG5lY2Vzc2l0YXRpYnVzIG5lcXVlIHBhcmlhdHVyIHNlZCBzZXF1aT8gTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsXG4gIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQuIEEgYmxhbmRpdGlpcyBkZXNlcnVudCBlYSBlbGlnZW5kaSBlb3MgZXJyb3IgZXQgaW5jaWR1bnQgaXN0ZSBsYXVkYW50aXVtLCBtYWduaSBwb3JybyxcbiAgcXVpYSwgcXVpZGVtIHJhdGlvbmUgcmVpY2llbmRpcyByZW0gcmVydW0gc2FlcGUgc2FwaWVudGUgc2VxdWkuXG4gIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LiBBYiBhdHF1ZSBkaWduaXNzaW1vcyBpcHNhIG9kaXQgb21uaXMgcXVhbSBxdW9zIHJlbSB2ZWwuIEFtZXRcbiAgYXNwZXJpb3JlcyBkZWJpdGlzIGV4IGxhYm9ydW0sIG1pbmltYSBtb2xlc3RpYWUgbmVjZXNzaXRhdGlidXMgbmVxdWUgcGFyaWF0dXIgc2VkIHNlcXVpLlxuICA8ZGl2IGNsYXNzPVwicHJvZmlsZS1zZWN0aW9uLWZvb3RlclwiPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LjwvZGl2PlxuPC9kaXY+PCEtLSAvLnByb2ZpbGUtc2VjdGlvbiAtLT5cbmBgYFxuXG4jIyMgdy8gXCJPdmVydmlld1wiIEltYWdlIChmbHVzaCB3aXRoIGhlYWRlcilcblxuYGBgaHRtbF9leGFtcGxlP2tpdGNoZW4tc2luaz10cnVlXG48ZGl2IGNsYXNzPVwicHJvZmlsZS1vdmVydmlldyBibG9jay1sb29zZVwiPlxuICA8aDIgY2xhc3M9XCJoZWFkaW5nLWxhcmdlciBibG9jay1ub3JtYWxcIj5PdmVydmlldzwvaDI+XG4gIDxkaXYgY2xhc3M9XCJibG9jay1ub3JtYWxcIj5cbiAgICA8aW1nIGNsYXNzPVwicHJvZmlsZS1zZWN0aW9uLWltZy1oZWFkZXJcIiBzcmM9XCJodHRwOi8vcGxhY2Vob2xkLml0LzMxMngyMTVcIiBhbHQ9XCJcIi8+XG4gIDwvZGl2PlxuICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdC4gQWIgYXRxdWUgZGlnbmlzc2ltb3MgaXBzYSBvZGl0IG9tbmlzIHF1YW0gcXVvcyByZW0gdmVsLiBBbWV0XG4gIGFzcGVyaW9yZXMgZGViaXRpcyBleCBsYWJvcnVtLCBtaW5pbWEgbW9sZXN0aWFlIG5lY2Vzc2l0YXRpYnVzIG5lcXVlIHBhcmlhdHVyIHNlZCBzZXF1aT8gTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsXG4gIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQuIEEgYmxhbmRpdGlpcyBkZXNlcnVudCBlYSBlbGlnZW5kaSBlb3MgZXJyb3IgZXQgaW5jaWR1bnQgaXN0ZSBsYXVkYW50aXVtLCBtYWduaSBwb3JybyxcbiAgcXVpYSwgcXVpZGVtIHJhdGlvbmUgcmVpY2llbmRpcyByZW0gcmVydW0gc2FlcGUgc2FwaWVudGUgc2VxdWkuXG4gIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LiBBYiBhdHF1ZSBkaWduaXNzaW1vcyBpcHNhIG9kaXQgb21uaXMgcXVhbSBxdW9zIHJlbSB2ZWwuIEFtZXRcbiAgYXNwZXJpb3JlcyBkZWJpdGlzIGV4IGxhYm9ydW0sIG1pbmltYSBtb2xlc3RpYWUgbmVjZXNzaXRhdGlidXMgbmVxdWUgcGFyaWF0dXIgc2VkIHNlcXVpLlxuICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdC4gQWIgYXRxdWUgZGlnbmlzc2ltb3MgaXBzYSBvZGl0IG9tbmlzIHF1YW0gcXVvcyByZW0gdmVsLiBBbWV0XG4gIGFzcGVyaW9yZXMgZGViaXRpcyBleCBsYWJvcnVtLCBtaW5pbWEgbW9sZXN0aWFlIG5lY2Vzc2l0YXRpYnVzIG5lcXVlIHBhcmlhdHVyIHNlZCBzZXF1aT8gTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsXG4gIGNvbnNlY3RldHVyIGFkaXBpc2ljaW5nIGVsaXQuIEEgYmxhbmRpdGlpcyBkZXNlcnVudCBlYSBlbGlnZW5kaSBlb3MgZXJyb3IgZXQgaW5jaWR1bnQgaXN0ZSBsYXVkYW50aXVtLCBtYWduaSBwb3JybyxcbiAgcXVpYSwgcXVpZGVtIHJhdGlvbmUgcmVpY2llbmRpcyByZW0gcmVydW0gc2FlcGUgc2FwaWVudGUgc2VxdWkuXG4gIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LiBBYiBhdHF1ZSBkaWduaXNzaW1vcyBpcHNhIG9kaXQgb21uaXMgcXVhbSBxdW9zIHJlbSB2ZWwuIEFtZXRcbiAgYXNwZXJpb3JlcyBkZWJpdGlzIGV4IGxhYm9ydW0sIG1pbmltYSBtb2xlc3RpYWUgbmVjZXNzaXRhdGlidXMgbmVxdWUgcGFyaWF0dXIgc2VkIHNlcXVpLlxuICA8ZGl2IGNsYXNzPVwicHJvZmlsZS1zZWN0aW9uLWZvb3RlclwiPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LjwvZGl2PlxuPC9kaXY+PCEtLSAvLnByb2ZpbGUtc2VjdGlvbiAtLT5cbmBgYFxuKi9cblxuLy8gVE9ETzpOZWVkIHRvIHJlZG8gYW5kIHVzZSBpbnRlcmNoYW5nZVxuLnByb2ZpbGUtc2VjdGlvbi1pbWctaGVhZGVyIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICAgICAgbWF4LXdpZHRoOiAzMDBweDtcbiAgICB9XG59XG5cbi5wcm9maWxlLXNlY3Rpb24tY2FsbG91dC1pbWcge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICAgIGhlaWdodDogMTE1cHg7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1sZWZ0OiAxLjVyZW07XG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICBoZWlnaHQ6IDE1MHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAtNDBweDtcbiAgICB9XG59XG5cbi5wcm9maWxlLXNlY3Rpb24taW1nIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgaGVpZ2h0OiAyMTVweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnByb2ZpbGUtc2VjdGlvbi1mb290ZXIge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkZ2FpbnNib3JvO1xuICAgIHBhZGRpbmctdG9wOiAyMnB4O1xufVxuXG4ucHJvZmlsZS1zZWN0aW9uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLy8gcHJldmVudHMgd2VpcmQgc2NhbGluZyBvbiBpT1MsIHNwZWNpZmljYWxseSBwYXJhZ3JhcGhzIGJlY29taW5nIGxhcmdlciB0aGFuIGhlYWRlciAtPiBQRi05MDRcbiAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG59XG5cblxuLypkb2Ncbi0tLVxudGl0bGU6IFByb2ZpbGUgRGF0YSBTZWN0aW9uXG5uYW1lOiBiLXByb2ZpbGUtZGF0YS1zZWN0aW9uXG5jYXRlZ29yeTogRGF0YSBQYXR0ZXJucyAtIFByb2ZpbGUgRGF0YVxuc2VsZWN0b3JzOlxuICAgIC0gLnByb2ZpbGUtZGF0YS1pdGVtXG50ZW1wbGF0ZTpcbiAgICBwcm9maWxlX2RhdGE6XG4gICAgICAgIC1cbiAgICAgICAgICAgIG5hbWU6IE1lZGlhblxuICAgICAgICAgICAgdmFsdWU6ICQxNDYsMzQwIHBlciB5ZWFyXG4gICAgICAgICAgICBzdWJ2YWx1ZTogbmF0aW9uYWwgYXZlcmFnZSAkNTYsODE5XG4gICAgICAgICAgICB2YWx1ZUNvbG9yOiB0ZXh0LWFib3ZlLWF2ZXJhZ2VcbiAgICAgICAgLVxuICAgICAgICAgICAgbmFtZTogMjV0aCBQZXJjZW50aWxlXG4gICAgICAgICAgICB2YWx1ZTogJDEwNSw1MjAgcGVyIHllYXJcbiAgICAgICAgICAgIHN1YnZhbHVlOiBuYXRpb25hbCBhdmVyYWdlICQ3NiwxMzBcbiAgICAgICAgICAgIHZhbHVlQ29sb3I6IHRleHQtYXZlcmFnZVxuXG4tLS1cblxuVGhpcyBpcyBhIHR5cGljYWwgc2VjdGlvbiBvZiBkYXRhIG9uIHByb2ZpbGUgcGFnZXMuIEl0IGJlY29tZXMgb3JpZW50ZWQgYXMgYSByb3cgb24gbWVkaXVtIHVwLlxuXG52YWx1ZUNvbG9yIHNob3VsZCBiZSBhbnkgb2YgdGhlIGZvbGxvd2luZyAob3IgbGVmdCBibGFuayk6XG5cbnwgcGFyYW0gICAgICAgICAgICAgIHxcbnwtLS0tLS0tLS0tLS0tLS0tLS0tLXxcbnwgdGV4dC1hYm92ZS1hdmVyYWdlIHxcbnwgdGV4dC1hdmVyYWdlICAgICAgIHxcbnwgdGV4dC1iZWxvdy1hdmVyYWdlIHxcblxueyUgc2V0IGVkaXRvcl9pZCA9IHV1aWQoKSAlfVxuXG5gYGBudW5qdWNrc190YWI/ZWRpdG9yLWlkPXt7ZWRpdG9yX2lkfX1cblxueyUgZnJvbSBcInRlbXBsYXRlcy9jb21tb24vZGF0YS9wcm9maWxlL3Byb2ZpbGUtZGF0YS5udW5qXCIgaW1wb3J0IHByb2ZpbGVEYXRhICV9XG5cbnslIGZvciBpdGVtIGluIHByb2ZpbGVfZGF0YSAlfVxuICAgIHt7IHByb2ZpbGVEYXRhKG5hbWU9aXRlbS5uYW1lLCB2YWx1ZT1pdGVtLnZhbHVlLCBzdWJ2YWx1ZT1pdGVtLnN1YnZhbHVlLCB2YWx1ZUNvbG9yPWl0ZW0udmFsdWVDb2xvcikgfX1cbiAgICB7JSBpZiBub3QgbG9vcC5sYXN0ICV9PGhyPnslIGVuZGlmICV9XG57JSBlbmRmb3IgJX1cblxuYGBgXG5cbiovXG5cbi5wcm9maWxlLWRhdGEta2V5IHtcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJzonOyAvLyBwdXQgdGhlIGNvbG9uIGluIGJ5IGRlZmF1bHRcbiAgICB9XG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICBmb250LXNpemU6ICR0ZXh0LWxhcmdlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogMTBweDsgLy8gVE9ETyBmaW5kIGJldHRlciB3YXkgdG8gdmVydGljYWxseSBjZW50ZXIgdGV4dCAoZmxleGJveClcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJzsgLy8gaGlkZSB0aGUgY29sb25cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnByb2ZpbGUtZGF0YS12YWx1ZSB7XG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICBmb250LXNpemU6ICR0ZXh0LWxhcmdlO1xuICAgIH1cbn1cbiIsIi8qZG9jXG4tLS1cbnRpdGxlOiBTY29yZWNhcmQgV2lkZ2V0XG5uYW1lOiBhLXNjb3JlY2FyZC13aWRnZXRcbmF1dGhvcnM6IFBhYmxvIExhem8sIFdpbGxpYW0gRmVyZ3Vzb25cbmNhdGVnb3J5OiBEYXRhIFBhdHRlcm5zIC0gV2lkZ2V0XG5zZWxlY3RvcnM6XG4gIC0gLnNjb3JlY2FyZFxudGVtcGxhdGU6XG4gICAgc2NvcmVjYXJkOlxuICAgICAgICBtZXRyaWM6XG4gICAgICAgICAgICBuYW1lOiBPdmVyYWxseVxuICAgICAgICBzY29yZXM6XG4gICAgICAgICAgICAtXG4gICAgICAgICAgICAgICAgbmFtZTogU2FsYXJ5XG4gICAgICAgICAgICAgICAgdmFsdWU6IDkuM1xuICAgICAgICAgICAgLVxuICAgICAgICAgICAgICAgIG5hbWU6IEpvYiBNYXJrZXRcbiAgICAgICAgICAgICAgICB2YWx1ZTogNy43XG4gICAgICAgICAgICAtXG4gICAgICAgICAgICAgICAgbmFtZTogRnV0dXJlIEdyb3d0aFxuICAgICAgICAgICAgICAgIHZhbHVlOiA5LjJcbiAgICAgICAgICAgIC1cbiAgICAgICAgICAgICAgICBuYW1lOiBTdHJlc3NcbiAgICAgICAgICAgICAgICB2YWx1ZTogMi4wXG4gICAgICAgICAgICAtXG4gICAgICAgICAgICAgICAgbmFtZTogV29yayBMaWZlIEJhbGFuY2VcbiAgICAgICAgICAgICAgICB2YWx1ZTogNS43XG4gICAgICAgICAgICAgICAgc3VidGl0bGU6IHN1YnRpdGxlXG4tLS1cblxuVGhpcyBpcyBhIG1hY3JvIHRoYXQgYnVpbGRzIGEgc2NvcmVjYXJkICp3aWRnZXQqIHRoYXQgZGlzcGxheXMgYSBzdHlsaXplZCBiYXIgZ3JhcGguXG5Vc2VzIDxhIGhyZWY9XCIvZGF0YV9wYXR0ZXJuc18tX3Njb3JlX2Jhci5odG1sI2Etc2NvcmUtYmFyXCI+U2NvcmUgQmFyPC9hPlxuXG4qKmZyb20gJ3RlbXBsYXRlcy9jb21tb24vd2lkZ2V0cy9zY29yZWNhcmQubnVuaicgaW1wb3J0IHNjb3JlY2FyZFdpZGdldCoqXG5cbiMjI1RlbXBsYXRlIFBhcmFtZXRlcnNcblxufCBwYXJhbWV0ZXIgICAgICAgICAgfCBwdXJwb3NlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZGVmYXVsdCB8XG58LS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLXxcbnwgYGRhdGFgKiAgICAgICAgICAgIHwgW0RhdGFdKCNkYXRhT2JqZWN0KSByZXF1aXJlZCB0byBidWlsZCB0aGUgc2NvcmVib2FyZCB8ICAgICAgICAgfFxufCBgbXVsdGlwbGllcmAgICAgICAgfCBzY29yZSBtdWx0aXBsaWVyICh0byBjYWxjdWxhdGUgc2NvcmUgYmFyIHBlcmNlbnRhZ2UpIHwgMTAgICAgICB8XG58IGBuYW1lQ2xhc3Nlc2AgICAgICB8IGNzcyBjbGFzc2VzIGZvciB0aGUgc2NvcmUgbmFtZXMgICAgICAgICAgICAgICAgICAgICAgfCBcIlwiICAgICAgfFxufCBgc2NvcmVDbGFzc2VzYCAgICAgfCBjc3MgY2xhc3NlcyBmb3IgdGhlIHNjb3JlIG51bWJlciAgICAgICAgICAgICAgICAgICAgIHwgXCJcIiAgICAgIHxcbnwgYHN1YnRpdHV0ZUNsYXNzZXNgIHwgY3NzIGNsYXNzZXMgZm9yIHRoZSBzY29yZSBzdWJ0aXRsZSAgICAgICAgICAgICAgICAgICB8IFwiXCIgICAgICB8XG5cXCogPSByZXF1aXJlZFxuXG5gYGAgaHRtbF9leGFtcGxlXG57JSBmcm9tICd0ZW1wbGF0ZXMvY29tbW9uL3dpZGdldHMvc2NvcmVjYXJkLm51bmonIGltcG9ydCBzY29yZWNhcmRXaWRnZXQgJX1cbnt7IHNjb3JlY2FyZFdpZGdldChzY29yZWNhcmQpIH19XG5gYGBcbjxhIG5hbWU9XCJkYXRhT2JqZWN0XCIvPlxuIyMjRGF0YSBTY3J1Y3R1cmVcbnwgcHJvcGVydHkgICAgIHwgcHVycG9zZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZGVmYXVsdCAgICAgICAgICB8XG58LS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfFxufCBgc2NvcmVzYCogICAgfCBhcnJheSBvZiBbU2NvcmVdKCNzY29yZU9iamVjdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgIHxcbnwgYG1ldHJpY2AgICAgIHwgW01ldHJpY10oI21ldHJpY09iamVjdCkuIFNldCB0byBudWxsIGZvciBubyBtZXRyaWMgICAgICAgIHwge25hbWU9XCJPdmVyYWxsXCJ9IHxcblxcKiA9IHJlcXVpcmVkXG5cbjxhIG5hbWU9XCJzY29yZU9iamVjdFwiLz5cbiMjI1Njb3JlIERhdGFcbnwgcHJvcGVydHkgICB8IHB1cnBvc2UgICAgICAgIHwgZGVmYXVsdCB8XG58LS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tfFxufCBgbmFtZWAqICAgIHwgc2NvcmUgbmFtZSAgICAgfCAgICAgICAgIHxcbnwgYHZhbHVlYCogICB8IHNjb3JlIHZhbHVlICAgIHwgICAgICAgICB8XG58IGBzdWJ0aXRsZWAgfCBzY29yZSBzdWJ0aXRsZSB8IFwiXCIgICAgICB8XG5cXCogPSByZXF1aXJlZFxuXG48YSBuYW1lPVwibWV0cmljT2JqZWN0XCIvPlxuIyMjTWV0cmljIERhdGFcbnwgcHJvcGVydHkgfCBwdXJwb3NlICAgICB8IGRlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufC0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG58IGBuYW1lYCAgIHwgbWV0cmljIG5hbWUgfCBcIlwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCBgdmFsdWVgICB8IHNjb3JlIHZhbHVlIHwgQnkgZGVmYXVsdCB0aGlzIGlzIGNhbGN1bGF0ZWQgYXMgdGhlIGF2ZXJhZ2Ugb2YgYWxsIHRoZSBTY29yZXMsIHJvdW5kZWQgdG8gMSBkZWNpbWFsLiB8XG5cblxuKi9cblxuJHNjb3JlYm9hcmQtY29sb3I6ICRsaW5rLWJsdWUtZGFyaztcblxuLnNjb3JlY2FyZCB7XG4gICAgQGluY2x1ZGUgcGFuZWwoJGJnOiAkd2hpdGUsICRwYWRkaW5nOiAyMHB4LCAkYWRqdXN0OiB0cnVlKTtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7IC8vIFRPRE86IE1ha2UgYSB2YXJpYWJsZVxuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdygwLCAwLCA1cHgsIDAsICNjY2MsIGZhbHNlKTtcbiAgICBAaW5jbHVkZSBibG9jaygnbG9vc2VyJyk7XG4gICAgcGFkZGluZy10b3A6IDA7XG59XG5cbi5zY29yZWNhcmQtaGVhZGluZyB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXB4O1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA1cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNjb3JlYm9hcmQtY29sb3I7XG4gICAgbWFyZ2luOiAtMjJweDtcbiAgICBwYWRkaW5nOiByZW0tY2FsYygxNSkgcmVtLWNhbGMoMjApIHJlbS1jYWxjKDcpO1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTFweDtcbn1cbi5zY29yZWNhcmQtdGl0bGUgPiAqIHtcbiAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgIGxldHRlci1zcGFjaW5nOiByZW0tY2FsYygxKVxufVxuLnNjb3JlY2FyZC1zY29yZSB7XG4gICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjQpO1xuICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICBwIHtcbiAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgfVxuIH1cbiAuc2NvcmVjYXJkLWxpc3Qge1xuICAgICA+IGxpICsgbGkge1xuICAgICAgICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICAgfVxuICAgICBAZXh0ZW5kIC5uby1idWxsZXQ7XG4gICAgIG1hcmdpbi10b3A6IDQwcHg7IC8vIFRPRE86IHRoaXMgbmVlZHMgdG8gYmUgYSB2YXIgMnggbmVnIHBhZGRpbmcgb2YgaGVhZGVyXG4gICAgIC5pdGVtIHtcbiAgICAgICAgIGNvbG9yOiAkc2NvcmVib2FyZC1jb2xvcjtcbiAgICAgICAgIGZvbnQtc2l6ZTpyZW0tY2FsYygxNCk7XG4gICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICB9XG4gICAgIC5zY29yZWNhcmQtbGlzdC1iYXIge1xuICAgICAgICAgaGVpZ2h0OiA1cHg7XG4gICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7IC8vIFRPRE8gdmFyIGFuZCBtYXRjaCB3aXRoIGhlaWdodFxuICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNtb2tlO1xuICAgICB9XG4gICAgIC5zY29yZWNhcmQtbGlzdC1iYXItdmFsdWUge1xuICAgICAgICAgaGVpZ2h0OiA1cHg7XG4gICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOjdweDsgLy8gVE9ETyBtYWtlIGhlaWdodCB2YXJcbiAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6N3B4OyAvLyBUT0RPIHZhciBhbmQgbWF0Y2ggd2l0aCBoZWlnaHRcbiAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzY29yZWJvYXJkLWNvbG9yO1xuICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgaGVpZ2h0OiA3cHg7IC8vIFRPRE86dmFyIGFsbCB0aGlzIG1hdGhcbiAgICAgICAgICAgICB3aWR0aDogN3B4O1xuICAgICAgICAgICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgICAgICAgYm9yZGVyLXJhZGl1czo3cHg7IC8vIFRPRE8gbWFrZSBoZWlnaHQgdmFyXG4gICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgIHJpZ2h0OiAtMy41cHg7XG4gICAgICAgICAgICAgdG9wOiAtMXB4OyAvLyBUT0RPOiBtYWtlIGhhdmUgaGVpZ2h0IHZhclxuICAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRzY29yZWJvYXJkLWNvbG9yO1xuICAgICAgICAgfVxuICAgICB9XG4gfVxuIFxuLy8gb25lLW9mZiBzdHlsZXMgZm9yIHRoZSBtdXR1YWwtZnVuZHMgc2NvcmVjYXJkXG4gdWwuc2NvcmVjYXJkLWZ1bmRzIHtcbiAgICBtYXJnaW4tbGVmdDogLTVweDtcbiAgICBtYXJnaW4tcmlnaHQ6IC01cHg7XG5cbiAgICAmLnNjb3JlY2FyZC1saXN0ID4gbGkgKyBsaSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICB9XG4gICAgLm1mLXNjb3JlY2FyZF9maXJtX21vcm5pbmdzdGFyLFxuICAgIC5tZi1zY29yZWNhcmRfZmlybV9saXBwZXIsXG4gICAgLm1mLXNjb3JlY2FyZF9maXJtX3phY2tzLFxuICAgIC5tZi1zY29yZWNhcmRfZmlybV9zdGFuZGFyZGFuZHBvb3JzLFxuICAgIC5tZi1zY29yZWNhcmRfZmlybV90aGVzdHJlZXQge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRleHQtaW5kZW50OiAtOTk5ZW07XG4gICAgfVxuXG4gICAgLm1mLXNjb3JlY2FyZF9maXJtX21vcm5pbmdzdGFyIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBR1FBQUFBV0NBWUFBQUEyQ0RtZUFBQUFDWEJJV1hNQUFBc1RBQUFMRXdFQW1wd1lBQUFLVDJsRFExQlFhRzkwYjNOb2IzQWdTVU5ESUhCeWIyWnBiR1VBQUhqYW5WTm5WRlBwRmozMzN2UkNTNGlBbEV0dlVoVUlJRkpDaTRBVWtTWXFJUWtRU29naG9ka1ZVY0VSUlVVRUc4aWdpQU9Pam9DTUZWRXNESW9LMkFma0lhS09nNk9JaXNyNzRYdWphOWE4OStiTi9yWFhQdWVzODUyenp3ZkFDQXlXU0ROUk5ZQU1xVUllRWVDRHg4VEc0ZVF1UUlFS0pIQUFFQWl6WkNGei9TTUJBUGgrUER3cklzQUh2Z0FCZU5NTENBREFUWnZBTUJ5SC93L3FRcGxjQVlDRUFjQjBrVGhMQ0lBVUFFQjZqa0ttQUVCR0FZQ2RtQ1pUQUtBRUFHRExZMkxqQUZBdEFHQW5mK2JUQUlDZCtKbDdBUUJibENFVkFhQ1JBQ0FUWlloRUFHZzdBS3pQVm9wRkFGZ3dBQlJtUzhRNUFOZ3RBREJKVjJaSUFMQzNBTURPRUF1eUFBZ01BREJSaUlVcEFBUjdBR0RJSXlONEFJU1pBQlJHOGxjODhTdXVFT2NxQUFCNG1iSTh1U1E1UllGYkNDMXhCMWRYTGg0b3pra1hLeFEyWVFKaG1rQXV3bm1aR1RLQk5BL2c4OHdBQUtDUkZSSGdnL1A5ZU00T3JzN09ObzYyRGw4dDZyOEcveUppWXVQKzVjK3JjRUFBQU9GMGZ0SCtMQyt6R29BN0JvQnQvcUlsN2dSb1hndWdkZmVMWnJJUFFMVUFvT25hVi9OdytINDhQRVdoa0xuWjJlWGs1TmhLeEVKYlljcFhmZjVud2wvQVYvMXMrWDQ4L1BmMTRMN2lKSUV5WFlGSEJQamd3c3owVEtVY3o1SUpoR0xjNW85SC9MY0wvL3dkMHlMRVNXSzVXQ29VNDFFU2NZNUVtb3p6TXFVaWlVS1NLY1VsMHY5azR0OHMrd00rM3pVQXNHbytBWHVSTGFoZFl3UDJTeWNRV0hUQTR2Y0FBUEs3YjhIVUtBZ0RnR2lENGM5My8rOC8vVWVnSlFDQVprbVNjUUFBWGtRa0xsVEtzei9IQ0FBQVJLQ0JLckJCRy9UQkdDekFCaHpCQmR6QkMveGdOb1JDSk1UQ1FoQkNDbVNBSEhKZ0theUNRaWlHemJBZEttQXYxRUFkTk1CUmFJYVRjQTR1d2xXNERqMXdEL3BoQ0o3QktMeUJDUVJCeUFnVFlTSGFpQUZpaWxnampnZ1htWVg0SWNGSUJCS0xKQ0RKaUJSUklrdVJOVWd4VW9wVUlGVklIZkk5Y2dJNWgxeEd1cEU3eUFBeWd2eUd2RWN4bElHeVVUM1VETFZEdWFnM0dvUkdvZ3ZRWkhReG1vOFdvSnZRY3JRYVBZdzJvZWZRcTJnUDJvOCtROGN3d09nWUJ6UEViREF1eHNOQ3NUZ3NDWk5qeTdFaXJBeXJ4aHF3VnF3RHU0bjFZOCt4ZHdRU2dVWEFDVFlFZDBJZ1lSNUJTRmhNV0U3WVNLZ2dIQ1EwRWRvSk53a0RoRkhDSnlLVHFFdTBKcm9SK2NRWVlqSXhoMWhJTENQV0VvOFRMeEI3aUVQRU55UVNpVU15SjdtUUFrbXhwRlRTRXRKRzBtNVNJK2tzcVpzMFNCb2prOG5hWkd1eUJ6bVVMQ0FyeUlYa25lVEQ1RFBrRytRaDhsc0tuV0pBY2FUNFUrSW9Vc3BxU2hubEVPVTA1UVpsbURKQlZhT2FVdDJvb1ZRUk5ZOWFRcTJodGxLdlVZZW9FelIxbWpuTmd4WkpTNld0b3BYVEdtZ1hhUGRwcitoMHVoSGRsUjVPbDlCWDBzdnBSK2lYNkFQMGR3d05oaFdEeDRobktCbWJHQWNZWnhsM0dLK1lUS1laMDRzWngxUXdOekhybU9lWkQ1bHZWVmdxdGlwOEZaSEtDcFZLbFNhVkd5b3ZWS21xcHFyZXFndFY4MVhMVkkrcFhsTjlya1pWTTFQanFRblVscXRWcXAxUTYxTWJVMmVwTzZpSHFtZW9iMVEvcEg1Wi9Za0dXY05NdzA5RHBGR2dzVi9qdk1ZZ0MyTVpzM2dzSVdzTnE0WjFnVFhFSnJITjJYeDJLcnVZL1IyN2l6MnFxYUU1UXpOS00xZXpVdk9VWmo4SDQ1aHgrSngwVGdubktLZVg4MzZLM2hUdktlSXBHNlkwVExreFpWeHJxcGFYbGxpclNLdFJxMGZydlRhdTdhZWRwcjFGdTFuN2dRNUJ4MG9uWENkSFo0L09CWjNuVTlsVDNhY0tweFpOUFRyMXJpNnFhNlVib2J0RWQ3OXVwKzZZbnI1ZWdKNU1iNmZlZWIzbitoeDlMLzFVL1czNnAvVkhERmdHc3d3a0J0c016aGc4eFRWeGJ6d2RMOGZiOFZGRFhjTkFRNlZobFdHWDRZU1J1ZEU4bzlWR2pVWVBqR25HWE9NazQyM0diY2FqSmdZbUlTWkxUZXBON3BwU1RibW1LYVk3VER0TXg4M016YUxOMXBrMW16MHgxekxubStlYjE1dmZ0MkJhZUZvc3RxaTJ1R1ZKc3VSYXBsbnV0cnh1aFZvNVdhVllWVnBkczBhdG5hMGwxcnV0dTZjUnA3bE9rMDZybnRabnc3RHh0c20ycWJjWnNPWFlCdHV1dG0yMmZXRm5ZaGRudDhXdXcrNlR2Wk45dW4yTi9UMEhEWWZaRHFzZFdoMStjN1J5RkRwV090NmF6cHp1UDMzRjlKYnBMMmRZenhEUDJEUGp0aFBMS2NScG5WT2IwMGRuRjJlNWM0UHppSXVKUzRMTExwYytMcHNieHQzSXZlUktkUFZ4WGVGNjB2V2RtN09id3UybzI2L3VOdTVwN29mY244dzBueW1lV1ROejBNUElRK0JSNWRFL0M1K1ZNR3Zmckg1UFEwK0JaN1huSXk5akw1RlhyZGV3dDZWM3F2ZGg3eGMrOWo1eW4rTSs0enczM2pMZVdWL01OOEMzeUxmTFQ4TnZubCtGMzBOL0kvOWsvM3IvMFFDbmdDVUJad09KZ1VHQld3TDcrSHA4SWIrT1B6cmJaZmF5MmUxQmpLQzVRUlZCajRLdGd1WEJyU0ZveU95UXJTSDM1NWpPa2M1cERvVlFmdWpXMEFkaDVtR0x3MzRNSjRXSGhWZUdQNDV3aUZnYTBUR1hOWGZSM0VOejMwVDZSSlpFM3B0bk1VODVyeTFLTlNvK3FpNXFQTm8zdWpTNlA4WXVabG5NMVZpZFdFbHNTeHc1TGlxdU5tNXN2dC84N2ZPSDRwM2lDK043RjVndnlGMXdlYUhPd3ZTRnB4YXBMaElzT3BaQVRJaE9PSlR3UVJBcXFCYU1KZklUZHlXT0NubkNIY0puSWkvUk50R0kyRU5jS2g1TzhrZ3FUWHFTN0pHOE5Ya2t4VE9sTE9XNWhDZXBrTHhNRFV6ZG16cWVGcHAySUcweVBUcTlNWU9Ta1pCeFFxb2hUWk8yWitwbjVtWjJ5NnhsaGJMK3hXNkx0eThlbFFmSmE3T1FyQVZaTFFxMlFxYm9WRm9vMXlvSHNtZGxWMmEvelluS09aYXJuaXZON2N5enl0dVFONXp2bi8vdEVzSVM0WksycFlaTFZ5MGRXT2E5ckdvNXNqeHhlZHNLNHhVRks0WldCcXc4dUlxMkttM1ZUNnZ0VjVldWZyMG1lazFyZ1Y3QnlvTEJ0UUZyNnd0VkN1V0ZmZXZjMSsxZFQxZ3ZXZCsxWWZxR25ScytGWW1LcmhUYkY1Y1ZmOWdvM0hqbEc0ZHZ5citaM0pTMHFhdkV1V1RQWnRKbTZlYmVMWjViRHBhcWwrYVhEbTROMmRxMERkOVd0TzMxOWtYYkw1Zk5LTnU3ZzdaRHVhTy9QTGk4WmFmSnpzMDdQMVNrVlBSVStsUTI3dExkdFdIWCtHN1I3aHQ3dlBZMDdOWGJXN3ozL1Q3SnZ0dFZBVlZOMVdiVlpmdEorN1AzUDY2SnF1bjRsdnR0WGExT2JYSHR4d1BTQS8wSEl3NjIxN25VMVIzU1BWUlNqOVlyNjBjT3h4KysvcDN2ZHkwTk5nMVZqWnpHNGlOd1JIbms2ZmNKMy9jZURUcmFkb3g3ck9FSDB4OTJIV2NkTDJwQ212S2FScHRUbXZ0YllsdTZUOHcrMGRicTNucjhSOXNmRDV3MFBGbDVTdk5VeVduYTZZTFRrMmZ5ejR5ZGxaMTlmaTc1M0dEYm9yWjc1MlBPMzJvUGIrKzZFSFRoMGtYL2krYzd2RHZPWFBLNGRQS3kyK1VUVjdoWG1xODZYMjNxZE9vOC9wUFRUOGU3bkx1YXJybGNhN251ZXIyMWUyYjM2UnVlTjg3ZDlMMTU4UmIvMXRXZU9UM2R2Zk42Yi9mRjkvWGZGdDErY2lmOXpzdTcyWGNuN3EyOFQ3eGY5RUR0UWRsRDNZZlZQMXYrM05qdjNIOXF3SGVnODlIY1IvY0doWVBQL3BIMWp3OURCWStaajh1R0RZYnJuamcrT1RuaVAzTDk2ZnluUTg5a3p5YWVGLzZpL3N1dUZ4WXZmdmpWNjlmTzBaalJvWmZ5bDVPL2JYeWwvZXJBNnhtdjI4YkN4aDYreVhnek1WNzBWdnZ0d1hmY2R4M3ZvOThQVCtSOElIOG8vMmo1c2ZWVDBLZjdreG1Uay84RUE1anovR016TGRzQUFBQWdZMGhTVFFBQWVpVUFBSUNEQUFENS93QUFnT2tBQUhVd0FBRHFZQUFBT3BnQUFCZHZrbC9GUmdBQUUzcEpSRUZVZU5xTW1ubDhVMlc2eDc4bmFmYWtUUnU2dDNSSEZsdVdsbDZRUlFkQlZnRXZpd1VjQnBkaHhIVkU1RHJnTnFod21WRndadFFaRWErNEFPSUY2NEpGQlNsMDBCYUtsS1hGd3RDZHBrc2FtclpKbWozM2o1TUV1dURjOS9QcDU1eWNQT2VjOTMxK3ovTjdmcytiQ242L0h3QisvZXRjUHY3WUFNQ0VDUjJVbHA3aGlTZmduLzhjUW1Qak9LNWRnNFFFR0RPbUJMdmRnZFVLS1NudzlOTlFYZzV1TjNnOFVGME5xYW5nY3NIMzMwTllHUGg4c0g0OWVMM1EwUUZqeHNDUFA4TFlzV0MzZzA0bmZwZVFBQWNPNUxGaFF4VEJzV1lOdlAzMno3UzJObkg4K0FnS0NwSlp2OTdPdEdrbm1EVUxZQXdRdzZ1dmxxSlNwYkoyYlR5VEoxL20yV2Q3V0xnd2w5bXp2U3hhVk15cVZUNWdPR3IxVURJenEzajc3V1pTVTJleGZQbFRsSlNFb1ZMNTJMTGxBZzgrdUE2ejJZZkpsTXoyN1creFo0OGFnSlVyTzVnMDZSbldyQm1LejZmaHhwR2YveSttVHUzaS9mZnpNSnRoOVdvUEd6Y2U1YXV2cEx6MzNwMVVWSWgycWFrd2QyNHJ5NWFkWjlJa09IaHdNcDJkTHhNZWZwbkN3c2R4dTExaE56ejJSZUJPQVB6K1ZtQXVTVW5WR0F6RHFLa3B2TUZ1R0lMUWpOTUpHZzJvVktMRGc4UHZGNi9MWk9KZkVKQ0lDQkdrdHJZK2E4SG5FKys1UGw0QnBnQXFRT0RZTVNkNzk1YXhiTmxNTkpxNXdCOXBhS2poMEtHY2dQMGZnSG5BYmNEdmdhWEFSdUFjWVdHRnRMWmFjYnRqMGV2QllsbU54L003SWlNWG8xQTA4OFliT3lncFNRYWd0eGZlZUdNNnMyZVhFeGUzbDcxNzMyVGZ2cnREcy9yOGM5RHBVdkQ1SmdTdTJBRUZJTVZrZW9tR2hpTzQzYUtmT2p0N3FLdUxBMVJJcFVIZnFhbXZoeE1uTGpONzlsck01cS9wN055RzFUb2VrK2tPOVByUGtFZ3Fid1RFQUlqUjBOV1Z6dUhET1R6OWREVkRoNjdnKysvVk45aEo4ZnVocHdjV0w0YjRlSEV4Q2dWRVJvTEJrRWhyNnlKY3JoUnN0dXVBMU5XQlhGNU9WbFl4QmtOYkNEeTN1eThvZnI4NGo5eGMwT2xzSER1bVlmbnkyMGxQdnh1TnhnU29PWElrbWExYjFlVGsyRGwvUGlvd2J4bWdENXhyQUFWS3BaclRwOVdVbGMyanFla2dtemFGNDNhcnljbnBwYjQrbGRkZVMyYm9VQWVmZjc2ZER6Nll4bC8rOGgrc1dqV0RJVVAyY3VUSWZBUUJkdTkrQzVkTHgvMzNyK1RUVHlkdzMzMFdqRVk5UjQrcVNVdURjZU5zWkdUWU9IblNnOVVxK3VuaVJUVWZmZ2lqUnd2NGZPSzFHVFBjVkZSNE9YZHVHSysvL2pkMjdib2JvN0dOOHZJTHlHUmU1czJiUW5MeXJUY0NZZzJkWGJzRzI3WVpBVENiNyt3VDBZTGd3MnlHN0d5WU94Y3VYb1NvS05CcTh6aDA2QmxPbmx6RWxTdlNHK3hGWnovNElFZ2tzR0JCTHdVRmZ5YzYrbW1VU3ZGN2xRcXMxbURHaUNmangrL2t1ZWNlWnNlT00yemFsTVBtelFvZWVNQUpRSGUzbm95TXVVUkUvRzhnVWdHOE41dzdBUThLaGZqdTNic25VbFoyRUhEZzk0Tk81MFVpZVRCZ2U1ejkremVnMDgxR0xpK2l0TFFqOUR5TlJrcFIwV09NSGcwcTFVcWswbTZlZWlxUDU1OFBBNnBKU2pwRWZ2N2RQUDY0ajQ4KzJzM3g0K0tkOWZVV1ltTmgzRGdCaDBPOFZsQXdsUmRmYk9MKys2OVNYSnhHY1hFTktTbDUxTlpHb05YRzRYYWZ4V1M2SW1Hd1lUWkRYbDRTWjgvQ0o1OTBESEJ1ZHpjc1hTbzZPQ1ZGeHVYTEc5aTZ0WnpkdTVkeTVZcVU2T2dlVnErK3d1TEZYK0QzcjJIVnFuSW1UNjVCS29YQ1FoWDMzcnVXTDc3NGtZaUkyZWoxTUdRSXlPVjlxVThpa1ZKVTVLVzgvSjFBMUxseE9nVTBHakdyenAxTEl6b2F3TWZOaGxJcEhuLzZTVWxNVEJBME1idE5KZ1VBalkxdU5tK0draElsQ2tXZjBNTm1nOTI3NGNBQnNXWkVSNGRUWFIxSlVWRjk2TjVMbDd5WXpYN3E2bWJlTUhjMW16ZFBJaUtpTndTSXlhUWlPYm1aaElScUFHcHI5NUNVOUFyNStUWnV2ZlVZSTBaOFJGN2Vkd01CRVFTeHdJNGR1d2FaREU2ZnR2WGgrNjR1eU0rSCtmTUJvdG0zN3h6YnRyM0toUXR3KyswV3RtM2J6SVFKdy9qTmI3Sll1blFoOEE5V3JNaG4wYUpNZHUxYXlmcjFsY2psc0gvL1JCNTZxQWkvZnlhcHFXQXdpSTRPanRoWUdmdjN3NkZEM2xDUStIeUVuQ2FUclVLbEFuRGRGQkJKWUhrYXpTcWtVa0laSkpHQVRCYThMNHlZR05CcVpYMENBa1FPbGNzaEt1bzZremdjWVFGcUJJVWlESjhQdnYwV1RwMXFRNm1FM0Z5dzJlUTBOVTNBNjNVamtZZytWU2dTbVQ0ZFNrb3VvZGREVlZVS1I0OSt6cWhSSTRtSm1ZbE1kaFN0MWlqcFU0d0JoZzRWaisrK2ErSlh2MHBqeElqUmhJV0JWaXNXNWU1dVVTV0ZoOFAyN2R2NTdXOUhBTEJ4NHlXZWVXWVVpWWtidVhhdGxmcDZhRzBWbjNYMXFuaXVVbjNFMDA5bnMyWExneVFtdWlrdGhmLzZyMitRU0dhU25rN0FhZUp3dVFoa2dDd1U3WUp3UFl0Mjd2VFMyQ2c2OUdZanVLYXZ2MVl5ZlhvNGNua3ZOeC9CT3FudmM5WGxBcmRiRW1JSGlVUU9lQURSSjFldndwNDkwTlNrUnEzdVpzaVFRL2o5Y1BTb0JhZFRyS0VBWVdIdVFLM1VFQllHSnBPZmI3NEJ0Vm9NUks4WFBCNEdBcEtjTEM3KzRzVW1LaW9pYVcrUEpTME5ZbVBGVkkrTmxaQ1ZCY2VQTDJEdDJoVUF2UFBPWlY1NVpUSU5EVVpNSmtKUjBUL3pyRlpvYWdLcjlYOTQ1SkhieWNseFVGNE9Uenp4QVRhYnBBOGdnZ0NkbmRjajFlbnNxOGJjN21RS0NvWUJMZnk3WVRLcGlZKy9IWit2OWFhWnBGSmRSUkJPQTVXQUFFaFFLdUgyMjBHaGNHRzNuOGJuTzQxRzB3bG9RNHdobDR0WjI5NGVoczNXaTkzK0F6SVpmUHR0TjFhcitMMW9LNldyQzhDQklJalhlM3ZGMWtBcUZZTnZ5QkFHVXBiQklCYlorUGlaWExreW11Wm1GOE9IaTcyQzJ3MFNpUlc1SExaczJRYkE4dVYxckY0OW1ZYUdEaXlXZ1VEMFg3amRMazRnSnFhVXh4Ky9CNGtFM253emxzTENWZWgwSUFqU2tPM0VpWkNZMkFWQWZMeUFWSG9kbE5iV0NFcExvNUJLTzIvNnZ1QmN6R1o0NHcwYllXSHVRZTA2T3FDbTVnZ3dIdmhySU90NjBPbGc1ODVIbURmUFJsTFNlQnlPOGRUV1hnQlNBVkhDVDVvRVgzd3hGYi9mZ0ZaclljWU1BeTRYWkdUY1FtNnVncDRlTDM0L2VMMGRmUHd4akIwYmk4a0VGb3VZZlcrK0NXKy9EV1ZsY1BUb0lJREV4RUI2T25SMWpVQ2pXUXo0eWNvU1V3cGc2dFJyd0NTKy9UYWQ4SEI0K2VWSHNGcE5lTDF3MTEyaUk0TzIvZW5ENVJJalkrRkNzUTdkZSs4My9PRVBaUUFVRmEwbklVR0h6OWNUY0dJWGp6MldSVjdld3dETW55OUhxL1hoY0lqdjZPZ0FtMjBSZm4vc1RRRnh1MFh3blU2QUFyVGFyTUhDQkkwR3pwNjlydlR1dWtzZ05UVWNrd2xtelhvTGorZjMvUENEbEVjZkZmdVJZTllxRktJaUxTKy9GYXRWU1dwcUQ0c1hxd0RJeWxwSlhGd1NEb2Y0VUwzZXpaZ3hNK25vR0k5ZUQvZmRKMlBaTWxpeFFsU3M1ODlEY2ZFZy9Hc3dtRWhPOW5Eb1VEdzlQWE5DSGFiSWYzYW1UWXVocnU2L0FWaXhvb3owOUcrb3FSR2RsSlVsTHQ3aEVJL0JvaG9FeWVHNDNwZDR2V0tFelovL0FxKy8vaDFIanR4Q1NVa2lTbVV6QU8rL3Y0RERoMWRUV3l2am5udGN2UFRTMXh3N3RnS25FM0p5b0tZR3pPWWNFaE9OTkRVTkRvak5KczdKYklhR2hod2lJOHZwNk9ockV4blpSV3pzODNSMVRRNG90cStaTmVzdDl1elp3Snc1ditmVXFSaldyZHRPYis4eUZpeTRFNFBCU2xtWnVEQ1ZTbHpEd1lQZCtIeVFuNStPVXJrZVdNN0prMnBPbi9ZVEh5L1EwZ0liTnV4bTNicDRybDJEVjE5OWp5ZWZQRE1nWVAzK1FRQ3ByRHhHYy9NMW5NN2Y4ZVdYb3FaUFNEQUNhUWlDaXkrL2pPRDc3MU1BeU1zN3lOR2o0b0lGSWFoZVlPWk1VY3BhTE5jcDQ3YmJZTW9VOFpyUEo5WXBqd2VHRHk5bnhvd1d2dm9xbnFxcWJJWU1FV1dVM1o3RTVjdUJEc2txcGJrNVBhU1NSbzBTNy9WNHhuTGJiVG5zMnpjNElIWTdEQnNtbnA4N040d3BVeEw1MTcvNjJ1ajF2V1JrM0VOajQxanNkZ0EzSjA2OHlWTlBiV0g3OWkzczJuV1lkOStkenZyMStiUzNuMlg1OHJ1QmhsQlJyNjJGaWdvZmdnRE56VVY4K0dFeGNybUs2bW9iNTg5YlFncXR0VFUrOU03R3hxR1l6VEYwZDF2NzdWSU1Bb2pQSnlNalEwRkZCVlJWZ1VMUmdVVHlJUjdQaTJpMUVvNGQ4MUJlN2tDcGhEbHpxbEdweEVnTW9peVZ3cHc1NHZGUGY3ck81VTFOb2hvSjBsbFF0ZWgwRmpTYTc0RGZvTlhlaDhjak5uOExGeGFoMDIybHFtb3podzlQWXYzNmJGYXVGT2tzSWFFZG5hNlg5OTlQb2IyZFg2d2hMdGRGSWlNdjB0eThtUEx5eUFFMmJXMVIzSGJiZlV5ZXZJVERoMS9DNzYvbTBVZGpNQnJ6U1U0Mk1YZnVEQ1NTbDNubm5lZll2eitERVNOaWdBc2hCVFowS0hnOFltMDZkYXFDakF6SXpKUlFXNnRrekpneEhEellnMXl1WnNHQ05Zd2IxOEtlUForelk4Y01iTGFoMk8yMS9hY3pFSkNNRElIY1hBUDc5NHVmRXhNbFJFV3BjVGhFL2hlVlFnUVJFWEQvL1FkQ1d4LzlIYUhWZ3NrRWVYa2lPTzN0SWtkTCtwV3Q4SERRNmNTc3FLbnBKU0ZCck1RNU9ZMDBONWZRMlBnUFlCS2RuVGJjYnJIZ0c0MC9rSjNkZzl1OWtpdFhmbGxFZEhTME1HMWFHL3Yyd2FWTGcyV1JuT1BITHpKdVhBa1NDZmo5dGNCRUhuamdjeG9iUWFFUW1ERGhlVFNhNTFDcFFDSnhocVM0MWVybXBaZWd0UFIrVHAyQzhlTTFaR1JBV2xvbmx5NE5JVEp5Q1E1SEcxNXZMTm5aWjhuS0trT2pLUWZHVTEvdnhEV3doUm9JaUZRS2NYR2x3TjBCUUNKSVNBZ1BkWnpCcHNuamdjaElLZURGNDJHUVRJT1JJMFhWZHZGaVVNTVA3alMzMnhkb3dxUUlRaEJkTGIyOTBORVJBWWpPRERhT2JyZU9XMjQ1OFcvbHJzY0RDc1VRWnMycTR1V1hlK25wVVExaTVjTnFCWThuT2hCTVlWeTk2dVRFQ2JEWnVnSjFKaHlmcjIrZkpOWVFIMWV2UW5YMWNBQXVYRmhEWGQxODJ0cjBnVzdjamtZanhldUY2T2gwbm55eWpPYm1OcUtqeFEzWXNMRC9CeUJHbzhCbm4rMUJFRGJqOTBOVVZBV1JrUmR4dWNEbDhoTWRMZkR6enphNnUrR1BmMXlPUXZGUmdIc0g3NUpQbkJBVlVkOXRpYjR5KzdQUHhLd1lOc3dmVWpwZWIxQzJDaUY2Q0k2dUxpVzF0WHN4R0Y3SGJMNDVJR0ZoME5VVlNWWFZBVEl6L3h6YUJ1OC9ncjNDalVFWkV3TjFkWDdrY2xBcWhadFFva0J4TVZSV1dnSjdXUEZBZk9nWmRYVXVaREt4dnJqZFhpSWlvTGxaT1lCUmZoRVFsd3VTa3NLSmpSVzc2N3E2YnpoN3RnUzlIdXJxQkpZczhSTWQ3ZURBQWZqb296U0dEUk1kM3IvL0NPN2c1dVdKRWxlVW5nT2xjR1ptRkR0M3pnM1F4L3M0blVzR25lbU4wV2sydzZwVk9zNmNnYjE3ZnpsTEhBNEZtWmxlTWpQTHFLaTRNL1JlbjA5Mmc4Mk5VdDJOUnFNTkJKUTMwS2tQN1A3RjdSdUJ3a0pvYVJIOStOZS9mc3JVcVZiKzlyY3h2UGZlT094MktYcTlNS0F2K29VeEVKRGVYamR6NWlnNWZGZ0VaTlFvQXpLWkpqQVJMUXBGSTluWmhSdzRNSktxcW1WczJMQ0p5c3IrdjJtSUx4Y0VNQnJGNS9SUFR6SDc0TXN2cDNEOGVEaEpTWkNYVjBkaG9iOVAwUStPems0WHZiM3lnQ05pYUcrdlE2ZjdFcGovaXl2VWFpTW9MemRqc3gwTS9kNmoxVUp5c2p1UXlUWTBHbENyellFZ2lzUmdPSUZVQ29LZ1JxRUF0Ym9yTkIrRlFnMjRBMnZ3azVzTGh3NkpWTmpRY0M5S0pjVEhQd3FNSXlMaXQyZzA2Z0crQ2JZQlR1Y0FrTUlHNGQxSUVoS2EwV2hxZ0F4bXozYVNsRVNBbGlTVWwzdFpzT0JUVktxTmZQYlpjSXFMNzJQczJJOXBhK3Y3OE9BazVzNGR2SFlFdHYwb0tQaHp3TzQwSTBmV3NuOS9ZcDhzQzQ3cDB4V2twd2U3ZUFVZEhXNm1UbTFneDQ1ZkRybk9UaSs1dVRCbGlvcWlJbkV1OWZWUVc3c1QyTWpJa2JleWExY01KU1VUS1N3RVNHYmh3aXF1WFhNVEVhSGk3My9QSURMU1FGRVI5UGIyQklwK1ZLQ1dOYk51M1RqT24wK2h0eGZxNjFPb3Ftb2dMMC9VMm5WMStoQUZTeVJCTlNyZzhZRGYzekdBS3ZzQTB0NnVEVkJXQmkrOFlPVElrVW9nZzVLU2Q4blBUd3pKeXpObllsbTM3anhQUEhHZXJWdHpLQ2pZeGZIakRTaVYvd3pKM3hzejVNQUJVVjNKWlAzMXY0UXpaLzdCdm4xWnFOWHcwRU9iTVJwZFdDd3hnV2hURXhVRkkwWW8rUGxuU0V4OGt1am9ud0thWG9QUkNHMXRlNERIQWJCWXBMaGM0Z1poUzRzQ3V6ME11eDFNSmcyWExvRmUveTZ3R1o4UGZ2cEp4Y3laUnRMVG9iTHlGbDU3N1RJblQ0cmk0ZGxubmNUR3dyNTlQc3JLWU5ldUtweE9HUjRQM0hGSEM3VzE5Y0FkZ1hsSU9IQkF6OFdMTXNMRFlkNDhjUlBTWWprQ1BNR1BQMTZuTzVOSmpsNFBvS0t6RXlaUC9rOW16TmdhMm9BZEFNakNoV1lNQmpzVEpoaEpTb0trSkEvVjFYYXlzMXZRYXFONStHRTczZDB3ZXJTQ3NEQjQ3TEdINmVqNEZxTlJSMDNORHFaTUdkRW5OY1dVaHl0WHhCMVJUZCtmb1ZFb1lybDBhVEdMRnRuSnkvdUFzV01Mc1ZoZzBxUjJqRVk3a3lkYkdENGNsaXl4c1dPSG5laG9BWi9QUTBHQm5aeWNkaFFLU0V4c1p1MWFPMWV2d3FSSmJ1UnlDMHVYMmhrNTBrWm1wcE5WcSt6RXhkblI2MEVpNldEVEppdVZsUkpHajlhemRLbWJtSmhOdlBiYUMzenlpUWpHeElrL3MyVEpOckt6SVRwNktYVjFIL1BkZHpvQVVsS01MRnYyRUVvbExGdm1BdXlrcHRwSVM3T3haSW1kMGFOaCtYSXZlL2ZDano5K1JVRkJPMGxKV2dSQnBPelJvM3VaT2hVdVhXcW51TmhPVHM0MElpTzM5cWR5SWZSUER2WDF1YlMxR1RBWXVvbUxLNk9yYXl4R1l6UXBLY2ZRYXRYVTFPVGo5WUphWFlJZ09JaUpnWmFXTzJsdGxSSWVyaUFoNGFzK2hUdElYNjJ0WXRIc0x4bjlmaTJDTUF1Rm9wdjI5aEpHam5TUW1BaG1jeDcxOVZIRXhMUVFGM2NCdFhvb1o4NE1CeXlrcFhWUlU1T0NUbWNuT3ZvRVVWRWFhbW9tMGQ0T2FXbWxTQ1NwMU5URVl6QmNKamEyaDdxNlhHUXlMM0Z4MzJNd1NHaHF1cFBtWm9Hb3FKK3hXSm80Y1FMazhoM1UxS1NRbkF4MiswdU1HbFhLOE9GdzdoenMyREdMYWRPZXdtcDFjdWJNRmg1NXBKUzBOUEI2by9ENzg5Qm9Hb0EyTEpaOFltTWhMYTJFNm1vSGxaVVNVbEoraFVvbERUU25FQk56bnNURVZucDd4M0h1M0JBaUkwM0k1Ulg5RmRmL0RRQThzZ3U0YUh2ZnJ3QUFBQUJKUlU1RXJrSmdnZz09KTtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCBjZW50ZXI7XG4gICAgICAgIGhlaWdodDogNDFweDtcbiAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgIH1cblxuICAgIC5tZi1zY29yZWNhcmRfZmlybV9saXBwZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFHUUFBQUFWQ0FZQUFBQ3duRXN3QUFBQUNYQklXWE1BQUFzVEFBQUxFd0VBbXB3WUFBQUtUMmxEUTFCUWFHOTBiM05vYjNBZ1NVTkRJSEJ5YjJacGJHVUFBSGphblZOblZGUHBGajMzM3ZSQ1M0aUFsRXR2VWhVSUlGSkNpNEFVa1NZcUlRa1FTb2dob2RrVlVjRVJSVVVFRzhpZ2lBT09qb0NNRlZFc0RJb0syQWZrSWFLT2c2T0lpc3I3NFh1amE5YTg5K2JOL3JYWFB1ZXM4NTJ6endmQUNBeVdTRE5STllBTXFVSWVFZUNEeDhURzRlUXVRSUVLSkhBQUVBaXpaQ0Z6L1NNQkFQaCtQRHdySXNBSHZnQUJlTk1MQ0FEQVRadkFNQnlIL3cvcVFwbGNBWUNFQWNCMGtUaExDSUFVQUVCNmprS21BRUJHQVlDZG1DWlRBS0FFQUdETFkyTGpBRkF0QUdBbmYrYlRBSUNkK0psN0FRQmJsQ0VWQWFDUkFDQVRaWWhFQUdnN0FLelBWb3BGQUZnd0FCUm1TOFE1QU5ndEFEQkpWMlpJQUxDM0FNRE9FQXV5QUFnTUFEQlJpSVVwQUFSN0FHRElJeU40QUlTWkFCUkc4bGM4OFN1dUVPY3FBQUI0bWJJOHVTUTVSWUZiQ0MxeEIxZFhMaDRvemtrWEt4UTJZUUpobWtBdXdubVpHVEtCTkEvZzg4d0FBS0NSRlJIZ2cvUDllTTRPcnM3T05vNjJEbDh0NnI4Ry95SmlZdVArNWMrcmNFQUFBT0YwZnRIK0xDK3pHb0E3Qm9CdC9xSWw3Z1JvWGd1Z2RmZUxacklQUUxVQW9PbmFWL053K0g0OFBFV2hrTG5aMmVYazVOaEt4RUpiWWNwWGZmNW53bC9BVi8xcytYNDgvUGYxNEw3aUpJRXlYWUZIQlBqZ3dzejBUS1VjejVJSmhHTGM1bzlIL0xjTC8vd2QweUxFU1dLNVdDb1U0MUVTY1k1RW1venpNcVVpaVVLU0tjVWwwdjlrNHQ4cyt3TSszelVBc0dvK0FYdVJMYWhkWXdQMlN5Y1FXSFRBNHZjQUFQSzdiOEhVS0FnRGdHaUQ0YzkzLys4Ly9VZWdKUUNBWmttU2NRQUFYa1FrTGxUS3N6L0hDQUFBUktDQktyQkJHL1RCR0N6QUJoekJCZHpCQy94Z05vUkNKTVRDUWhCQ0NtU0FISEpnS2F5Q1FpaUd6YkFkS21BdjFFQWROTUJSYUlhVGNBNHV3bFc0RGoxd0QvcGhDSjdCS0x5QkNRUkJ5QWdUWVNIYWlBRmlpbGdqamdnWG1ZWDRJY0ZJQkJLTEpDREppQlJSSWt1Uk5VZ3hVb3BVSUZWSUhmSTljZ0k1aDF4R3VwRTd5QUF5Z3Z5R3ZFY3hsSUd5VVQzVURMVkR1YWczR29SR29ndlFaSFF4bW84V29KdlFjclFhUFl3Mm9lZlFxMmdQMm84K1E4Y3d3T2dZQnpQRWJEQXV4c05Dc1Rnc0NaTmp5N0VpckF5cnhocXdWcXdEdTRuMVk4K3hkd1FTZ1VYQUNUWUVkMElnWVI1QlNGaE1XRTdZU0tnZ0hDUTBFZG9KTndrRGhGSENKeUtUcUV1MEpyb1IrY1FZWWpJeGgxaElMQ1BXRW84VEx4QjdpRVBFTnlRU2lVTXlKN21RQWtteHBGVFNFdEpHMG01U0kra3NxWnMwU0Jvams4bmFaR3V5QnptVUxDQXJ5SVhrbmVURDVEUGtHK1FoOGxzS25XSkFjYVQ0VStJb1VzcHFTaG5sRU9VMDVRWmxtREpCVmFPYVV0Mm9vVlFSTlk5YVFxMmh0bEt2VVllb0V6UjFtam5OZ3haSlM2V3RvcFhUR21nWGFQZHByK2gwdWhIZGxSNU9sOUJYMHN2cFIraVg2QVAwZHd3TmhoV0R4NGhuS0JtYkdBY1laeGwzR0srWVRLWVowNHNaeDFRd056SHJtT2VaRDVsdlZWZ3F0aXA4RlpIS0NwVktsU2FWR3lvdlZLbXFwcXJlcWd0VjgxWExWSStwWGxOOXJrWlZNMVBqcVFuVWxxdFZxcDFRNjFNYlUyZXBPNmlIcW1lb2IxUS9wSDVaL1lrR1djTk13MDlEcEZHZ3NWL2p2TVlnQzJNWnMzZ3NJV3NOcTRaMWdUWEVKckhOMlh4MktydVkvUjI3aXoycXFhRTVRek5LTTFlelV2T1VaajhINDVoeCtKeDBUZ25uS0tlWDgzNkszaFR2S2VJcEc2WTBUTGt4WlZ4cnFwYVhsbGlyU0t0UnEwZnJ2VGF1N2FlZHByMUZ1MW43Z1E1Qngwb25YQ2RIWjQvT0JaM25VOWxUM2FjS3B4Wk5QVHIxcmk2cWE2VWJvYnRFZDc5dXArNllucjVlZ0o1TWI2ZmVlYjNuK2h4OUwvMVUvVzM2cC9WSERGZ0dzd3drQnRzTXpoZzh4VFZ4Ynp3ZEw4ZmI4VkZEWGNOQVE2VmhsV0dYNFlTUnVkRThvOVZHalVZUGpHbkdYT01rNDIzR2JjYWpKZ1ltSVNaTFRlcE43cHBTVGJtbUthWTdURHRNeDgzTXphTE4xcGsxbXoweDF6TG5tK2ViMTV2ZnQyQmFlRm9zdHFpMnVHVkpzdVJhcGxudXRyeHVoVm81V2FWWVZWcGRzMGF0bmEwbDFydXR1NmNScDdsT2swNnJudFpudzdEeHRzbTJxYmNac09YWUJ0dXV0bTIyZldGblloZG50OFd1dys2VHZaTjl1bjJOL1QwSERZZlpEcXNkV2gxK2M3UnlGRHBXT3Q2YXpwenVQMzNGOUpicEwyZFl6eERQMkRQanRoUExLY1JwblZPYjAwZG5GMmU1YzRQemlJdUpTNExMTHBjK0xwc2J4dDNJdmVSS2RQVnhYZUY2MHZXZG03T2J3dTJvMjYvdU51NXA3b2Zjbjh3MG55bWVXVE56ME1QSVErQlI1ZEUvQzUrVk1HdmZySDVQUTArQlo3WG5JeTlqTDVGWHJkZXd0NlYzcXZkaDd4Yys5ajV5bitNKzR6dzMzakxlV1YvTU44QzN5TGZMVDhOdm5sK0YzME4vSS85ay8zci8wUUNuZ0NVQlp3T0pnVUdCV3dMNytIcDhJYitPUHpyYlpmYXkyZTFCaktDNVFSVkJqNEt0Z3VYQnJTRm95T3lRclNIMzU1ak9rYzVwRG9WUWZ1alcwQWRoNW1HTHczNE1KNFdIaFZlR1A0NXdpRmdhMFRHWE5YZlIzRU56MzBUNlJKWkUzcHRuTVU4NXJ5MUtOU28rcWk1cVBObzN1alM2UDhZdVpsbk0xVmlkV0Vsc1N4dzVMaXF1Tm01c3Z0Lzg3Zk9INHAzaUMrTjdGNWd2eUYxd2VhSE93dlNGcHhhcExoSXNPcFpBVEloT09KVHdRUkFxcUJhTUpmSVRkeVdPQ25uQ0hjSm5JaS9STnRHSTJFTmNLaDVPOGtncVRYcVM3Skc4Tlhra3hUT2xMT1c1aENlcGtMeE1EVXpkbXpxZUZwcDJJRzB5UFRxOU1ZT1NrWkJ4UXFvaFRaTzJaK3BuNW1aMnk2eGxoYkwreFc2THR5OGVsUWZKYTdPUXJBVlpMUXEyUXFib1ZGb28xeW9Ic21kbFYyYS96WW5LT1phcm5pdk43Y3l6eXR1UU41enZuLy90RXNJUzRaSzJwWVpMVnkwZFdPYTlyR281c2p4eGVkc0s0eFVGSzRaV0Jxdzh1SXEyS20zVlQ2dnRWNWV1ZnIwbWVrMXJnVjdCeW9MQnRRRnI2d3RWQ3VXRmZldmMxKzFkVDFndldkKzFZZnFHblJzK0ZZbUtyaFRiRjVjVmY5Z28zSGpsRzRkdnlyK1ozSlMwcWF2RXVXVFBadEptNmViZUxaNWJEcGFxbCthWERtNE4yZHEwRGQ5V3RPMzE5a1hiTDVmTktOdTdnN1pEdWFPL1BMaThaYWZKenMwN1AxU2tWUFJVK2xRMjd0TGR0V0hYK0c3UjdodDd2UFkwN05YYlc3ejMvVDdKdnR0VkFWVk4xV2JWWmZ0Sis3UDNQNjZKcXVuNGx2dHRYYTFPYlhIdHh3UFNBLzBISXc2MjE3blUxUjNTUFZSU2o5WXI2MGNPeHgrKy9wM3ZkeTBOTmcxVmpaekc0aU53UkhuazZmY0ozL2NlRFRyYWRveDdyT0VIMHg5MkhXY2RMMnBDbXZLYVJwdFRtdnRiWWx1NlQ4dyswZGJxM25yOFI5c2ZENXcwUEZsNVN2TlV5V25hNllMVGsyZnl6NHlkbFoxOWZpNzUzR0Rib3JaNzUyUE8zMm9QYisrNkVIVGgwa1gvaStjN3ZEdk9YUEs0ZFBLeTIrVVRWN2hYbXE4NlgyM3FkT284L3BQVFQ4ZTduTHVhcnJsY2E3bnVlcjIxZTJiMzZSdWVOODdkOUwxNThSYi8xdFdlT1QzZHZmTjZiL2ZGOS9YZkZ0MStjaWY5enN1NzJYY243cTI4VDd4ZjlFRHRRZGxEM1lmVlAxdiszTmp2M0g5cXdIZWc4OUhjUi9jR2hZUFAvcEgxanc5REJZK1pqOHVHRFlicm5qZytPVG5pUDNMOTZmeW5RODlrenlhZUYvNmkvc3V1RnhZdmZ2alY2OWZPMFpqUm9aZnlsNU8vYlh5bC9lckE2eG12MjhiQ3hoNit5WGd6TVY3MFZ2dnR3WGZjZHgzdm85OFBUK1I4SUg4by8yajVzZlZUMEtmN2t4bVRrLzhFQTVqei9HTXpMZHNBQUFBZ1kwaFNUUUFBZWlVQUFJQ0RBQUQ1L3dBQWdPa0FBSFV3QUFEcVlBQUFPcGdBQUJkdmtsL0ZSZ0FBQk05SlJFRlVlTnJzbVh1SVZWVVV4bjluN25XY2h3NDVkeXJTcVpUd0JkRVlQa0pLcTBrTElVZ0RVNlJFS0VqL3NMU3BpU0tJN0dGQm1XV1dhVktocGt4RkdLUm1XVE1LalZaQ2FKYjI4a0VVNXZRYW01eVpacHorbU8vbWJyUFBQdWZlZVJIZER3NTNuLzA0ZTUzMXJiUFcydXNHSFIwZHBORzR0SUFjc3NKbzREWmdNakFDU0FJQmNBcllCMndEMWdJTnJzVWw5elgvMDg3TDZiSkxLQUZlQnI0QTdnTEdxYThJS0FSS2dhdUF4NEVmZ09xb0IrWUl5UjZqZ0MrQmVUSG45d09lQU40RCtvZE5TbHIzVTRBNXdPWEFCOEFDendiRGdKVkFPZkFxOEpUNkZ3SzN5aUxTU0FCdHdERmdCL0NHTVRZV2VCcG9BZjVTWHlCamFRQStBZFlibi90WndQUGE5dytIWEFFd0NGZ0cxQURYQS9jRGpjQnBTNmJmZ0NQQVJ1Q3pETWdZQnRRQjUyUkI1QlRnWGVBYW9EMktrQXVCcTRHaGhuTENjRFl3VGUzeFJ2OGxRSVV1RitZRFc0RWJ0TWY1d0NUUFBuT2swR25BWG1BQWNKM2NnUStYaXBEaHdNU0l1ZFhBSXVDWm1FcmQ2Q0RqRlNsNmpXVDA0VXJnU1dCeEZDSHRsaFg1MEJMU05sbC9FZmdPeUFmT0EyNEN5cVRjcGNEZGxwVnZBV3JsZjR0a0hCTkUvbm9GejU4TlkvbGRsaDBZN2pjUVdRZDAzMm84ZnpPd0V4Z29tY1lCVTdWbXVaNVZGL0hlQzRETEhQMnJnWHBnRmpBOWh2NFdBUnVBVDMyRWREZFdHSXBCTDcxSEx1Vm1FWExTR044RXJMT2VVUVBNbE0rZUJPd3l4dmJxMDQrTEd1QTFxKzllQlYyQUd5TUlDWURiSStMeHlRemtXUXdzQVE3MVZWRC8ybERJdVFwdXBnVVhPdGE4YWJSSGRISC9oS052QS9DTDJtTWkxbC9oY2NWNVdSajVaS0N5cjdPc3dmbzlMVElDWTZ3dEpMVk1vOWthSzFTUUw5TnpCd05ENUI1ZHluZTU0MUlqSHYwYUlmdjRidFpGdVZ4bXI3a3NtL0NGd0F5MWR3TWRpaFZwNUZ2enh3QVBHUGYxMXZqRUVDVTJBeGNEMzFyOUE0MU03UlF3VWtIWWpHRStqT3dCSFpYMkppRmJnRCtOckd5UU1mYVlmb3VOdm9mbFZ3TVJOY1FZZTA0SlFpckd2djBkNUtKMGVhVU1vVlh6OGd4WlY4YzRTL1FvZXBxUWNrZmZjWlVaM25HTWxlbXk4YWp4cFpneWZ3NVVxUzlweElsVzRHaElVQTRjOGVvUkJkZE1Nc3YvSkNIM0FQdGwxWUVPaG51c1FHN2lKV1ZDS1ZsdkEvQ1J4N2NmQjdabklNOFNmV21qZFpnZHF2NmRNYzVkYVFNSVExdUkyNDNDMGQ0a1pLdVY5a2FoVnFXRnVBZ3lsT2NRY0VKWHRjaFBwOE1WTWhnZmRrVzRTVlFSaUl0dmdQZmpFdEpQcVduQzhwMTV3T0dRaktpckdKRGgvR0xGcHFSbG1RbDlYWTJldFBkMW5YbHVVWkJmcm5PSUQvdFVVcXAwakUyVlFUMmtZbU83RW9jaTRFN2dBc2VhelRyZHh5TGtJdUNnWllWSkthSENxbFgxRmNZQ1gxa3lCa3FWcTFUUDh1RkJsWEJLbFAzTkIxWkZyRmtUUWtpVnZ1NWFsVVZNcEZUK01kRW85L21UajVDa2tYVWtaRGt1Rk9neTc3TjFnMFVacnMwMzNFUFNJMlBLSVZ1eE5lZXdrb1ZuZGYrQ1hLelBOVzFTYVdTV3cyVnRVN2EyV3pHcFRhbjJ2SkI0ZGlRcXFPOEFmdFRMdElUNDdLUk8zRTNBYkcyNDM1aXpTb0c3Q2ZnK2hvTHJnYmx5aTNVeDVwL1FDNVo0a29NQzRHTzEzMWI5S3dBK0RLbEJIWk83VE1uTlJHRXVuUlhmQ1E1U1poaG5yVENzNVV4MS9OOEt6djFqbURXS1JYWmxodXVXeWIyZEtVWGsvakhzRmpUUldkaThnM2dGeFlQQXRUWVp2WDBPK1Q5Z2hRTDlkRHIvcHhtbGNraTdBdllCNEMwN3ZRM0Qzd01BVlZ6NndxOVBxd29BQUFBQVNVVk9SSzVDWUlJPSk7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgY2VudGVyO1xuICAgICAgICBoZWlnaHQ6IDQxcHg7XG4gICAgICAgIHdpZHRoOiAxMDBweDtcbiAgICB9XG4gICAgLm1mLXNjb3JlY2FyZF9maXJtX3phY2tzIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBR1FBQUFBaUNBSUFBQUFtZ2V0eUFBQUFDWEJJV1hNQUFBc1RBQUFMRXdFQW1wd1lBQUFLVDJsRFExQlFhRzkwYjNOb2IzQWdTVU5ESUhCeWIyWnBiR1VBQUhqYW5WTm5WRlBwRmozMzN2UkNTNGlBbEV0dlVoVUlJRkpDaTRBVWtTWXFJUWtRU29naG9ka1ZVY0VSUlVVRUc4aWdpQU9Pam9DTUZWRXNESW9LMkFma0lhS09nNk9JaXNyNzRYdWphOWE4OStiTi9yWFhQdWVzODUyenp3ZkFDQXlXU0ROUk5ZQU1xVUllRWVDRHg4VEc0ZVF1UUlFS0pIQUFFQWl6WkNGei9TTUJBUGgrUER3cklzQUh2Z0FCZU5NTENBREFUWnZBTUJ5SC93L3FRcGxjQVlDRUFjQjBrVGhMQ0lBVUFFQjZqa0ttQUVCR0FZQ2RtQ1pUQUtBRUFHRExZMkxqQUZBdEFHQW5mK2JUQUlDZCtKbDdBUUJibENFVkFhQ1JBQ0FUWlloRUFHZzdBS3pQVm9wRkFGZ3dBQlJtUzhRNUFOZ3RBREJKVjJaSUFMQzNBTURPRUF1eUFBZ01BREJSaUlVcEFBUjdBR0RJSXlONEFJU1pBQlJHOGxjODhTdXVFT2NxQUFCNG1iSTh1U1E1UllGYkNDMXhCMWRYTGg0b3pra1hLeFEyWVFKaG1rQXV3bm1aR1RLQk5BL2c4OHdBQUtDUkZSSGdnL1A5ZU00T3JzN09ObzYyRGw4dDZyOEcveUppWXVQKzVjK3JjRUFBQU9GMGZ0SCtMQyt6R29BN0JvQnQvcUlsN2dSb1hndWdkZmVMWnJJUFFMVUFvT25hVi9OdytINDhQRVdoa0xuWjJlWGs1TmhLeEVKYlljcFhmZjVud2wvQVYvMXMrWDQ4L1BmMTRMN2lKSUV5WFlGSEJQamd3c3owVEtVY3o1SUpoR0xjNW85SC9MY0wvL3dkMHlMRVNXSzVXQ29VNDFFU2NZNUVtb3p6TXFVaWlVS1NLY1VsMHY5azR0OHMrd00rM3pVQXNHbytBWHVSTGFoZFl3UDJTeWNRV0hUQTR2Y0FBUEs3YjhIVUtBZ0RnR2lENGM5My8rOC8vVWVnSlFDQVprbVNjUUFBWGtRa0xsVEtzei9IQ0FBQVJLQ0JLckJCRy9UQkdDekFCaHpCQmR6QkMveGdOb1JDSk1UQ1FoQkNDbVNBSEhKZ0theUNRaWlHemJBZEttQXYxRUFkTk1CUmFJYVRjQTR1d2xXNERqMXdEL3BoQ0o3QktMeUJDUVJCeUFnVFlTSGFpQUZpaWxnampnZ1htWVg0SWNGSUJCS0xKQ0RKaUJSUklrdVJOVWd4VW9wVUlGVklIZkk5Y2dJNWgxeEd1cEU3eUFBeWd2eUd2RWN4bElHeVVUM1VETFZEdWFnM0dvUkdvZ3ZRWkhReG1vOFdvSnZRY3JRYVBZdzJvZWZRcTJnUDJvOCtROGN3d09nWUJ6UEViREF1eHNOQ3NUZ3NDWk5qeTdFaXJBeXJ4aHF3VnF3RHU0bjFZOCt4ZHdRU2dVWEFDVFlFZDBJZ1lSNUJTRmhNV0U3WVNLZ2dIQ1EwRWRvSk53a0RoRkhDSnlLVHFFdTBKcm9SK2NRWVlqSXhoMWhJTENQV0VvOFRMeEI3aUVQRU55UVNpVU15SjdtUUFrbXhwRlRTRXRKRzBtNVNJK2tzcVpzMFNCb2prOG5hWkd1eUJ6bVVMQ0FyeUlYa25lVEQ1RFBrRytRaDhsc0tuV0pBY2FUNFUrSW9Vc3BxU2hubEVPVTA1UVpsbURKQlZhT2FVdDJvb1ZRUk5ZOWFRcTJodGxLdlVZZW9FelIxbWpuTmd4WkpTNld0b3BYVEdtZ1hhUGRwcitoMHVoSGRsUjVPbDlCWDBzdnBSK2lYNkFQMGR3d05oaFdEeDRobktCbWJHQWNZWnhsM0dLK1lUS1laMDRzWngxUXdOekhybU9lWkQ1bHZWVmdxdGlwOEZaSEtDcFZLbFNhVkd5b3ZWS21xcHFyZXFndFY4MVhMVkkrcFhsTjlya1pWTTFQanFRblVscXRWcXAxUTYxTWJVMmVwTzZpSHFtZW9iMVEvcEg1Wi9Za0dXY05NdzA5RHBGR2dzVi9qdk1ZZ0MyTVpzM2dzSVdzTnE0WjFnVFhFSnJITjJYeDJLcnVZL1IyN2l6MnFxYUU1UXpOS00xZXpVdk9VWmo4SDQ1aHgrSngwVGdubktLZVg4MzZLM2hUdktlSXBHNlkwVExreFpWeHJxcGFYbGxpclNLdFJxMGZydlRhdTdhZWRwcjFGdTFuN2dRNUJ4MG9uWENkSFo0L09CWjNuVTlsVDNhY0tweFpOUFRyMXJpNnFhNlVib2J0RWQ3OXVwKzZZbnI1ZWdKNU1iNmZlZWIzbitoeDlMLzFVL1czNnAvVkhERmdHc3d3a0J0c016aGc4eFRWeGJ6d2RMOGZiOFZGRFhjTkFRNlZobFdHWDRZU1J1ZEU4bzlWR2pVWVBqR25HWE9NazQyM0diY2FqSmdZbUlTWkxUZXBON3BwU1RibW1LYVk3VER0TXg4M016YUxOMXBrMW16MHgxekxubStlYjE1dmZ0MkJhZUZvc3RxaTJ1R1ZKc3VSYXBsbnV0cnh1aFZvNVdhVllWVnBkczBhdG5hMGwxcnV0dTZjUnA3bE9rMDZybnRabnc3RHh0c20ycWJjWnNPWFlCdHV1dG0yMmZXRm5ZaGRudDhXdXcrNlR2Wk45dW4yTi9UMEhEWWZaRHFzZFdoMStjN1J5RkRwV090NmF6cHp1UDMzRjlKYnBMMmRZenhEUDJEUGp0aFBMS2NScG5WT2IwMGRuRjJlNWM0UHppSXVKUzRMTExwYytMcHNieHQzSXZlUktkUFZ4WGVGNjB2V2RtN09id3UybzI2L3VOdTVwN29mY244dzBueW1lV1ROejBNUElRK0JSNWRFL0M1K1ZNR3Zmckg1UFEwK0JaN1huSXk5akw1RlhyZGV3dDZWM3F2ZGg3eGMrOWo1eW4rTSs0enczM2pMZVdWL01OOEMzeUxmTFQ4TnZubCtGMzBOL0kvOWsvM3IvMFFDbmdDVUJad09KZ1VHQld3TDcrSHA4SWIrT1B6cmJaZmF5MmUxQmpLQzVRUlZCajRLdGd1WEJyU0ZveU95UXJTSDM1NWpPa2M1cERvVlFmdWpXMEFkaDVtR0x3MzRNSjRXSGhWZUdQNDV3aUZnYTBUR1hOWGZSM0VOejMwVDZSSlpFM3B0bk1VODVyeTFLTlNvK3FpNXFQTm8zdWpTNlA4WXVabG5NMVZpZFdFbHNTeHc1TGlxdU5tNXN2dC84N2ZPSDRwM2lDK043RjVndnlGMXdlYUhPd3ZTRnB4YXBMaElzT3BaQVRJaE9PSlR3UVJBcXFCYU1KZklUZHlXT0NubkNIY0puSWkvUk50R0kyRU5jS2g1TzhrZ3FUWHFTN0pHOE5Ya2t4VE9sTE9XNWhDZXBrTHhNRFV6ZG16cWVGcHAySUcweVBUcTlNWU9Ta1pCeFFxb2hUWk8yWitwbjVtWjJ5NnhsaGJMK3hXNkx0eThlbFFmSmE3T1FyQVZaTFFxMlFxYm9WRm9vMXlvSHNtZGxWMmEvelluS09aYXJuaXZON2N5enl0dVFONXp2bi8vdEVzSVM0WksycFlaTFZ5MGRXT2E5ckdvNXNqeHhlZHNLNHhVRks0WldCcXc4dUlxMkttM1ZUNnZ0VjVldWZyMG1lazFyZ1Y3QnlvTEJ0UUZyNnd0VkN1V0ZmZXZjMSsxZFQxZ3ZXZCsxWWZxR25ScytGWW1LcmhUYkY1Y1ZmOWdvM0hqbEc0ZHZ5citaM0pTMHFhdkV1V1RQWnRKbTZlYmVMWjViRHBhcWwrYVhEbTROMmRxMERkOVd0TzMxOWtYYkw1Zk5LTnU3ZzdaRHVhTy9QTGk4WmFmSnpzMDdQMVNrVlBSVStsUTI3dExkdFdIWCtHN1I3aHQ3dlBZMDdOWGJXN3ozL1Q3SnZ0dFZBVlZOMVdiVlpmdEorN1AzUDY2SnF1bjRsdnR0WGExT2JYSHR4d1BTQS8wSEl3NjIxN25VMVIzU1BWUlNqOVlyNjBjT3h4KysvcDN2ZHkwTk5nMVZqWnpHNGlOd1JIbms2ZmNKMy9jZURUcmFkb3g3ck9FSDB4OTJIV2NkTDJwQ212S2FScHRUbXZ0YllsdTZUOHcrMGRicTNucjhSOXNmRDV3MFBGbDVTdk5VeVduYTZZTFRrMmZ5ejR5ZGxaMTlmaTc1M0dEYm9yWjc1MlBPMzJvUGIrKzZFSFRoMGtYL2krYzd2RHZPWFBLNGRQS3kyK1VUVjdoWG1xODZYMjNxZE9vOC9wUFRUOGU3bkx1YXJybGNhN251ZXIyMWUyYjM2UnVlTjg3ZDlMMTU4UmIvMXRXZU9UM2R2Zk42Yi9mRjkvWGZGdDErY2lmOXpzdTcyWGNuN3EyOFQ3eGY5RUR0UWRsRDNZZlZQMXYrM05qdjNIOXF3SGVnODlIY1IvY0doWVBQL3BIMWp3OURCWStaajh1R0RZYnJuamcrT1RuaVAzTDk2ZnluUTg5a3p5YWVGLzZpL3N1dUZ4WXZmdmpWNjlmTzBaalJvWmZ5bDVPL2JYeWwvZXJBNnhtdjI4YkN4aDYreVhnek1WNzBWdnZ0d1hmY2R4M3ZvOThQVCtSOElIOG8vMmo1c2ZWVDBLZjdreG1Uay84RUE1anovR016TGRzQUFBQWdZMGhTVFFBQWVpVUFBSUNEQUFENS93QUFnT2tBQUhVd0FBRHFZQUFBT3BnQUFCZHZrbC9GUmdBQUVPQkpSRUZVZU5yc1dXZFVsTW5TZmlZeFpJYWNSWUVWRkJCRVVCRVVGQVRqZmdxbTFSVURKdFJGWGZGaVRxeGl3bDFNS3lvcWhsVXdvNElSQkpTNHdnb1NKT2MwcEdGeWZPK1A4U0lYRWRudm5QdHJyZlArbVpxbnF2czhYZDFkWFVVaUNBSURrRTR4SzY3eDhYd1RQenFaam4rcWtBZUllMWo2ZU1tWlJXa3RXZmdIeXdESmtoMHJPQXR0SEt3ODg0MnNyOGpCNHZBOFdicng2SEV2V2g1SDE5MzR4NUpGL1NxQ2dNeEsyL3FHKzAxMWltcXJzTTFVMlhpQXJ2cy9EUW1BUkNLUitqWDh3dis5cFl2UGJ1aHNwcElwQmd3OVZicktwKzFBRUtRdis1SElwUFh0allZTVBRV3FRay85aDhheWlwWWFOVVdWd2JxbUpscEd2V2ZXdjZ4K3M1WjJWbkhjWTNmbmhQSE9TVjZNT1BNSDFRK0pBY2p4K0xPWUNyVVZGdW9yTE9XZmFvQzU1cXFoWmh0R0tTd3g5UWlkMWFkVldWT2x3Vm83TE5LejIrclJ5V1gxNDU4ajRCNTZlTkp1dXlmbU16QVo4QUhtTWN3M3UyU1Y1OG9CUG9jWHdBdmJiaDdvWmJnak5nd0xkVEVWVzY3dDdxbVB6WWd6K1hrVVBBRUhZQ3d3Q1lNM2pXcGpkM1FEdmhKWkthMXZJbCtjQVJscFNJWUtZS1NBZk5HdTJqM2ZyNTN4MVFYbjhWaW9BNXRjQWZuQ0VnVElaRVVOWFZaVHBheEJYQzNvKzFhTmVubTVLVEVmT3NndmJybmlIdlBUbEpWOXdtNi9UVmg4T2tDUTFnZ3hZRXRYR1dJdWt4SDhwdHFLUytrVjNxWE81ZzRBNm1xSzhCZVl6SnFlaHZzZi9IcmcrRGJVWS94Qzd5T0w5blhyZDk0OWZPRFFWdkNnYW1kazVXb2pGQWplVitYVkZPU0poUUtvRGlDeUpJVE00dUpRN0FOdTBQQ0FqbXdkcEJncUhUZkdXY2FXNHRDdlJoYUh6Nmxycld2cWFKSi9EVzBOQkVGRXZyaU02Y0FvTEQ2MjdIT1RGaFlUZnFwYUs0ZE9PekFITGpBTHRKUDE1WG5qSDdzeEdyQ0h5Z0tEa3k4dmRuQStMbjVUWjh0dkNaRUZkY1h5bi9iYkptRTRWa2R0NlRZTXVyb1R6b0FkWm9ZdDZPa3d1VGdENHdGWGVQd3l1MXNwRW91S0cwcjVJa0czcGoreTltYnR4MDdnR2htUEZKR2xSeWtlUnI5aVluaHRwSFgyYklmOCtlOTV4Y1RmRkNhN1hXZTFGVWJCeUg4SVc4VHJZK2MraUlBMVpoNVpsSjcvR2pPb2NNTWZ5VEc5TUk5eW5zRU5jSVBCY292R0xtWS93L1VpYTkrZFl4Z0RPR0RTM3U5N0lRL2RPWW94Z0EvdVpEM3F4K0VYYjhOcVllM0J0QVBRQXhnSzBOZFEwRGRSS3BWcEtXaHJXNXVOTlIwbmtaRC85V2ZvMzcxTnB1LzNiYzM1QUFiT2I0eFVwU2w5RHJpY0dnc0p6RFFOeHRxNkRqZDNRQWN1Smw3cGhUa1NleGd5UUIxWGd5SU4xSFMrT3FqOGRMK1VHclBudDJCd01jN0g4K1dlQjcwd1NoUWxrQUVwQ3V0TC9qK3B3MjlwdjRyYWhSaEVnNUdtb3VGZ2VwRklsVXZYc2hoa2F6Ukt6T2RYNWViRXgxKy9YM2QvNEV5RlhObWQ5Zm9WU0FpYXYzbmF5TW1mQTU3bVBzL0xmUU5UZk84NEJjQnNwMmxRd291Y3AyL0xjcm94SmZVbEtSL1NRSVhqeU1sZTlwNERHZGRTZjBobFc5M3lYeGFnRFU2VFhWTVBQZjhjTTg3V0ZZcUFBblpGQlo5OEZ2WDN5R0pMdVgrVVhJY1JTQllHQ2xvbTFIY3NWVFpaejlKeXVKNmpqQ2VPejd2QmIreEFIWGJjMlR0QXBwN21KUjI1RmdvcGJKd2RJMVllNnhOejZkVjExTUhhem1teW94ZUFSZTRMWUtLRVJzbkZ4R3ZkbVB6YVFuVHhRY0IxcVBPQUJ0WkdiRTY4OTFZZmRNTExmMTcyOGRkazlKRkdPRms0ckZ1eUZRMEFTeFowYUlWVmlGdDBhdXhBeWRyL2FrOEx1d1dUektpRUJpbTlVWVZQTmJOMkdLUnVMcFFJMHBxZXNzdGFhVXdDSmhxRmNlK09wWVYvZGNJY2lYQjV4Q3EwQXd4RUIxL3NFMVBWVWhPVCtRaDBMQm83UzY0Wk5tallGSWZKa09CNjJ1ME9Uc2ZISnlxWEJTbEFRRnRWYzBCa3FlTnRkbXJaaHlLb1k2U1piVC9BVTB2Q1RoNjdCRk10Y0ZBUzkyWnA4SHpESUx1MzFmbGZJU3V6SWZQWWgzRFlLVkNxQ0NLN1FWZGQzOXphaVNRZ1dvUU5XUTJKN1NXTjVBOVNzWXFZd3FXQ2lwQnpXNHQ0SC9xZjhLYXpteHB5eXFDS3M4R1hSZzIyN3hOejd0a0ZGTFpwdVZpdG43bTJXeG5zdHhtRGFLemkyc2ovYkEwMXVncklBQWxNZHR1QXlLcEh5S0xna0lBZDRPQm8xTzROMGR2N3dhNzNYTXE1V0J1eC81enRMSGVvb2luanZkTnFoNVR5N1A3SVdwMjJCaVNnbG9LeWRyMWhWcHFHZzVpMVZRMlMycnIyY2k2N1ZWckFrOUQ0b0ZDbHRSeVNBa1dtSnRuNkxxeWZHVHo0TStIQy9kOUI0S2VGbTFaUFh0b25wb1BiK2Z1VEtPaUFvYVFXK3VDM1JXZldMZjU5ZmNENW4yTXlIeWpyR0VNVnArTFBpYVJpQUhZbXc2RktCdzNKaFc4R1JKWUlZcG5zMEpKUWx3bVQwSUVUcDhLV25sbmZEMXlGcmh3MFpXVisyS3V3OWVIUUI5cGtleUszZmpHRGo2ZzlneFBBUVpDdnF6SFNSeG8rSEtWMnhVd3ZlWlJGbHFmR1kwdkYzUWJrSDVTb1I3UXdnMHp5VXpENDNjRXFjVHFpZGE5VngvUjUxM1lJT1ByTExHQU51dzJqKzdtU1Q4V2ZoUWV3Z0FGbndBd1lBcGdEWm9BRk1BRllxSTJKaUU2NkxnZVBXTzhFRDhBYmQ5THU5NStwOUV3ZDJ2aGRSdjVENEFxNFlNUGxiUU5KZE1idThzRVk2QVJZOEFXOFBqTDRkblR1VGR3SkhrZ2pOS2hpZFg1bUxWc2kwblFZb3FhcTJWcGJLYXpoaWpLN0NGdXBwS2hMNVR0RFBUY0xraXF0K2E5U1VLV0hhODh2R0RTYkFscnZJSTFZM1p4ZFRodHRmRzk3YkQvckdaMThFd0xvS1d0dTNoVktKbE5FRXRISFRhZWtWc2VzT1JwM2dwQWc2a1cwdjhkQ0FPdW5CNjdLQ2dBZFMwNEYybGpZVytrTkhraUVhU21xSlI1OWFiOW1wTENORlhFK1RFdE5hN2R2Y1A4bUZDb05JbWpTVlJYcFNuMUVWbEJhRUU0QWQ5WEk0UnJZQ0lTU0dFK3R6YkxjTldMTWxhNllrRDNvbUFkNnVMWkpwUFBnUng1YVViYVVZRzNhSG4yRGgwNDRUOTZmZjZqWHlseDRjUVV1d0FTRTNnMG5DSUxONS9UNDJGMThqbFFtSlFnaUtTOEpVNERSMkJnVjB1Y0tlKzJlRGxkZ0d0S0wwdVdhNmFHK2NBUzhRUFZsSEh4OHVwWGRMdGVMSmVMN2Z5YmtWT1o5S1lOUExIb0RiMkFpNEliWXpFOHYzTHEyaGh0cGQzbEMvcWNkbG5BT3MyZ1lnWUJmVi9YeE5zeml2ejFSZUFKdHdGdU9qRVhBRGhpaExWTlJhQ2tvRllnRnhPVXVLRWswL0MwMEtFYWNablo3WWk1YStTQkFkelBoOHdXb1JoVHJ3ZzdiWURJbzNRN3ZwOTZERkJpc2RTN3h5b25uVVVLUnNQdjF6eEZ5RmNqVTk0ZFR6UFVIWDNoNUZTMkFFZG5mZlVHZksrenZzZkJGNG1PMDRmeUxLMk90eHdKNHRQT09EMjN1czd1M0pSMmQyL2V0MjJtK2M3REpNR1dLUW5WbkhUdXA3TWkrb3lNSDJ3R1F5U1NRZ0pCSnUxMU50QjUzZGZmdHhkdm5nTURDdzR1dFQyYlpHWDBIb0w2NS9vY2dYN3FOc2J2TkJGMVZyYXpLM05MY05EQ2hhTUhZNGIrcmp6TnIzSjN4bUFONEF3dUFuY0FGNEtreXp0TndISmdIZUlPV2FrYlBHNEZUYWxnQ0xBQjhnYjFVWEZWSE9CMWJBVDhjekRqU015S203ZjgvMkFMVEFRL0FCWER0OFkwRVJxT1QzY21UaXVGRmhnVThka3orMHRraGxJcU4vVTB4SEppc1VONVMyNjIvbGhwakdleUM3NmtmSGRvRFRvQWpJbDVFeVFFMjYwWkFHeXRPcnU3bDhPQ0RDTGdCdzBEMlVjOXBMQ0lJSXJVc0c5NkFBMkFOV0FLMmdBZk1OenNYMUJiMU5DVEppMGRkQkR1eExJa2hZVkMweUtBQ0pJQktnWWdnSkZLUXliSjJrYUtwSmxWRmdkUEVoQWhrTWhra0VvbENJaWxUQ0xHVWtCQmtrTnM1YlpyS211TU4zWG9ra0VWVnpGb1Z1dkxud1NLVlNja2trcWZ0aEphdTFwVGlERVVxM2NiRWFvamVvQzhkSDNuVkJYVWRUVHdoZjR5bG82bTJVYS95VTFGOUdVL0VCd2hGbXVJUVhWTUhNMXQ1Q0dlVjUxWXhhKzBIRGJjeXN1emxNSzBrbXk4U1ZEQ3I3VXlIamJVY0JhQ292alN2cHBBdDRJaWtJZ1VLM2RyUXdzMTZUTytYMHdBYkZ0L2tVNlcwa2xjZG1CdE1KcEgreWMyYlBudGFnNVZOenp0R1VFblVUMlFKcE1KaWRna0ZGRVdLNGplT3VxVlYyQzRqWk1TM2JmZy83QnQrazk1a3BSU25oOTQ3bmxPVi8xV3pvb2JTUzhrM2tnYjRRT3RYbUYydE8yK0ZmZjR3Rmt2RXovTmZ0WEU2NU1PbGxXUVAzR2ZLaDR6UWUrSEZEYVgvSzdMbVJxd0lPTGRwa0xiUjVFTno5OTQ5QnFDRHl3TEFaTGR6aFh5UlJKUlhVL2l1cGdBQVQ4U2ZzTXVITCtTZGVISnUvUDZaQUQ0MGxqL0pTNVQ3U1NwOGsxeWNMdTlRM2NsNkpIZVNWUGc2NFYwaUFLRlkxTVhuWkZmODFjbGp0WE03VTRvenFwbDFzVTl2SmhlOEtXK3A2amt6R3BWMjlIYjR2TU9MQVhqdG1WblJXQTdneWJ0RWdWZ0lvSm5WS2lOa1BDRy9nOHVTU0NYbHpWVVpaVy9saG5NaUFqWkViM2N3cyszaWN3QUl4RUtKVk5MUzFRcEFLQkhGWnNhVk4xY0JlUEUrTmJ2aUx3REpSV21wSHpMbHR2SHZYcjZ2TFFidy9IMXlabytpNDM4bHBmblZCWmhLeXl4OVN4QkVkT0kxKzNXT2kzOWZ0em9xbUNBSXB4M2VjVGxQZlg5YlJ2N1I0TnJyMndSQjhJUjg3UlVXbDVOdkxvOE0rdW55MXBLbWlxbEhGazQ4NEpkVStIcjNyY01hS3l3ZjVUN25DTGcvbkE2Y2ZtenhncE9yQ3V0TERzV2RzQXR4UC9Md1ZGRjlLYzNmZU9heEgxT0wweWVIelpzVEVWQlFWenc4ZU56a3NMbU1GWllYWC8zUk13bHM1Ylk3YjNJM1hXcTk5dlJHZ2lERzdwMnV0V3JvajZjRDJRS3UvYmFKYlp5T3FLVHJ5eUtEWHJ4UHhmZTBMZGYzeXExbWhjNkJKd3FieXdtQ0NMejRyN2kzVC9KcWk4YnVtU29VaTl6Mnp0QVB0S2xvcWJtUWRBM3p0ZEpLc3UvOUdUL2x5QSt1KzJiZXpZNWZIUlZzdk42K3NxVjZhV1NRN3BwaDk3TGorNjdCdDNVd0dReGRDMk1MQUdZR1E2aUthazFOTlZTcEdJQk13Q1prc3NMS3ZBTytXeGE1K2dHZ1VpaHFhbHE3YngxS2VQWG9xUDh2b2RIN3VwcnJoMmpveEw2S0FabWtwcURvWlQveFlrSlVmR0tzbi9PVTFKd1h6M05mT2xrNmVuN25uSkw1dEtTaFZFRXFpZHQ4OWZMalM1Uk96cTJnQytwSzZqV3Q5YkViTDY1M1h4Z1ZmKzYveXB6S21vc216YXN0S3o2OTl0ZVFDOXQ0VFUxdGtSL2U1V2Z1dXhhcXE2Sk9vMUJsVXJGSXdLMXByblMyR25OazRSNjUxYjJkdDg1dHV6eDh4ZEJqQ1dkMWxOVnBaQ29obFdpcXFBV2QvcGxvNzJvNjg1NU1JcTBORHl3SnozRDV6bW5kOFVCclRTTTFFamttNlE4S2hhcWpyR0dxWTZKRW82c3FLQTQxdE9oN0c3cmJ1eE9FYlAyWmpRQTJSbTZ4R1dRMWRZUlhhVVZwRmF1eG9LeUFTaUxwS3FqYm05aDhiQWlLQk15YXNwUTlEeGE2encwSVg4UFEwU3RzTEhPem03RGNlK2srM3kzK0xuTXM1dyt0NjJxVlVzaGRmSGI4THcrZnZFa0lPYmxGUWlXeHVGMmRYWjNtREdNQURJWjJFN2NOUUN1clZWMUdZeWlxMGtEVlZGU3Y2bXlLeWZqVVVOQlgxOVV5MGdlZ3JzNW9GM1IxaUxrZGZOWlEwNkc4OW83WFJSa1poUmxpbmtBc0V1blJQeFZPUzVvcVZub3VXVFJtOGNPNEdMNUVXRkJibkZ6d3BxMnAzdHgwU0MyN21TWG1VNmcwVlRYVjFLSjBBQ1FGV203bCs4V1RmZ3oyL2ZuMGtqQXpGY09KNnp6UExEc3l3M3FTUzRCcmVXdDFiT1pEdG9EVCs4eDZlU0FodDZGNHlFWW5KUWJqY3REWk5UTlcxa2s2ZzZKQ1pudk9OOUkyZHJKelpUQzA1VWdGQ3MxanpCUVNpYkoyMWhvaFJiTFdaOFhVY1ROdlpUN1NVTkdNeVhpUVVKamlOMzMrWWY5OUcvdzIzYzZLenk3SlhlMFhxRzZzVHlJb1B1Tm42R2pwam5Wd0IzQnMrVUhiWVk3ajk4M2dpdm16UFh3Qm1KbGFUaHMvNjluYlo3Y3lQdlZCREhTTlhKMjlBT3lZRnpKcGpMZlJTdXRGUG90WGVpK2I2ZTRYZURtRUtlSk1kWmx1cUc5cWEvT3BKQi8zTmw1cGllbWY3Y1hSKzZQWGVhODRteFQ5dkRCMXdpaXZmL24rN0RkcDdxQTFObzF0RFVsaHp6ZmYzSDg3TXk1KzczMnlpdktEbkdkVUtpM3k1WlVhZnZQaU9jdWlYbDFQcjN1M2RjMTJDa0U2OFNTU3crZjJVYUlSUzhSdDdIYVo3R05ua3lma2N3VGMvaXRrRXFsRWJ0akNhcFUzSmx0WVRGbVBwaW1ienlFSVFpUVJ5WkU5UlNxVjhrWDhnYmNkSlZKSkY1L2QvWlBONTN6dVV5NmQzRTZCV1BpZkxqOUgwS05SeWhmeDVWWUNzVUFrRWNuOU5MT1lCRUh3aER4bVZ4dEJFQUtSZ05uVitybmJiMG5wMzVCL0R3QzJuY2hpVGF1azBnQUFBQUJKUlU1RXJrSmdnZz09KTtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCBjZW50ZXI7XG4gICAgICAgIGhlaWdodDogNDFweDtcbiAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgIH1cbiAgICAubWYtc2NvcmVjYXJkX2Zpcm1fc3RhbmRhcmRhbmRwb29ycyB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUdRQUFBQXBDQVlBQUFEREpJem1BQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlOcFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1TlMxak1ESXhJRGM1TGpFMU5Ea3hNU3dnTWpBeE15OHhNQzh5T1MweE1UbzBOem94TmlBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElDaE5ZV05wYm5SdmMyZ3BJaUI0YlhCTlRUcEpibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPamxGT0RoRk5qZEVNRVEzUWpFeFJUYzRRalZCUVVKQlJqYzBPRGMxTlRWRklpQjRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09qbEZPRGhGTmpkRk1FUTNRakV4UlRjNFFqVkJRVUpCUmpjME9EYzFOVFZGSWo0Z1BIaHRjRTFOT2tSbGNtbDJaV1JHY205dElITjBVbVZtT21sdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNk9VVTRPRVUyTjBJd1JEZENNVEZGTnpoQ05VRkJRa0ZHTnpRNE56VTFOVVVpSUhOMFVtVm1PbVJ2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2T1VVNE9FVTJOME13UkRkQ01URkZOemhDTlVGQlFrRkdOelE0TnpVMU5VVWlMejRnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrSUR3dmNtUm1PbEpFUmo0Z1BDOTRPbmh0Y0cxbGRHRStJRHcvZUhCaFkydGxkQ0JsYm1ROUluSWlQejRWbDFFNEFBQVMrMGxFUVZSNDJ0UmJDWmdWMVpVK3Q1YTM5dXZYR3lEUVN4Q2FSV1JKRENFUU42SUdGeEFqc295U2IxUkdvOFpFVFVTZE1kOGtrMFJoL0RKT1puQVpveE9pRVdZY1ZFeWlpQU9NSUlKQlhEQTJpa0RvYnFEcGJxQVhlbmw3VmMwNVZlYzF4YU9xM210bzUzT3VIbDYvcWx1MzdqMy8yZTk5d2xlekNEeGFCR2tDMGd5a3lVaG5JNVVneVVnWnBDNmsvVWdmSW0xQStnU3AyMldzaTVHdVFJb2pwWkVFbkY3VGhkQ2o2VlQ0VUFWSXovN1A1TlZkNDRQdGQrc1pHSUgzamhZNGhzRno2RUQ2QzlKdXBEYWtwRk5ueVFmd2RITXQzRnQvSWNUbE5PRDdjN3RnRC9naDBuUmVmM1p0OUNraFBZcTB2WkNKS1M3WDZRV1hJdDJHTkR2UEdGOUdtb3YwTTZUWGtKNUVlb01ZbDlPUHdMZ1BCcWpwcWZDbkt5ZS85TXI0NHZZMFF2d1Z2TFNBNTMwNnJZbm4vdTlJT3hndzI3c0FiaG0yRi9ZbmkyRFp3YStEejMrS3pJMUZXdW94dmgvcFdnZWVuQXErdzdXaFNML2lDYzd1eDZJazdyOFdhUmxTT09mK0VSalkxbTRZb2hjL1J6SVRIejZEc1lZajNZcTBGZWtmSGViT2F1V3ExTmZuR1g4bTByaENtV2h2WkpMV0lOMStoc3hhd3RKV2Jyc21CaGdRRW1PYWZ5dHI4MitSMXAzaGtBclAvV2tQNjVIYnprSzZKVStmQU5JUCtndElHZElma0tZT0VML0loS3hDS29YUHA4bE1uVWhUa0NheElNVUhZT3kvWW1BS2FkY3c3L0sxT2V4L0N3SkVSVnFCTkw3QVNjUUs3SGY0ODlBTW01a2hLZGJZUnQrTjFJRDA5d00wL2oxSWcvTDA4WE8vUXRwZ3BPOFg2dFN2WnZKcW55TDlCOUs3U0wwc0ZWOUh1b25WMXQ1SWFoOUVlb29abHEvOWlVMWNsQjJ6a2FlL0R3elJoTDNhOGU4Z1Izem5zV21naUdZVzBrVThUL3IrWjZSaWZqYkQvYWovZC9oNXAxYkc0Nnd3WjRPY2lpb1loQmtuV2ZrcmtVWVhDSWhncTdHTUl6eFhRQ2kwL1dtZXdaN21LS0krNXpxWnVPZVIvZzdwQnI2MkJla3VEb1VMYlJ1Um51bVg5OGpxdHd6bGhvRGplS2tDdjEzQ3dRaTkvMDJrSXRiOGVwZUJzbEhoTUJlVE9NbmtKSXJJeTgzVjhFenpKRkI4dmZZK2QvVlQ2OGl4TDBUNm5aZkptb1owcnNjZ3YrTVh1eTNxRTQ1UUNKZ1gyUDUrMk0rSlJncnRTRG1BcHFHbDBOSEs2Z2JKdTJFWXBzUkpMTEhVUGtKNm5FM3hLSS9oU0tDZTliaGZaTDRUb2FuckxZSDl2WU5CbHZ1RWV5cHJtVlA3ekNVbm9qbmVuTStIWE81eG4wTFZYeFRnS01tbmZCZHBNY2YwL1cycGZrVlhoa3pJWkFHeHFReDhnMEVBRHQyM3VFaS92VFY2M05PeW80ZGxmSkdjd25mM3VjVHZaUUZ6TU5jM0lyM3FNdVpYT0NwME5WbVRQQ2IwSXRMZUFYYjBUbzJxQVBQWmg2Z2VQa1J3am9CK3pOaHNDNmF6L2F2WnIyM2h6UHUyQW56b0pSNzNqMmJmRVpBeTl2aGtGRmN2bk5wSDdCUFBaV0J5Z3hyeVpZdTRzdUU0b1NFZUUzcXZBQWM3RU8xU0w2bHg4V21iSGE1VGlQMHRCaVJyVGdWSFM5bHlpY0hYcU8rZFNQTmMza0Y5dDFIUHpyUVBHaEpSVk1xKytPUnZrQ3BkbnNzeStyKzVMT05rTW1jd1lIVk9nSVR5bEJTK2lNM0x4SjNQcGxpM1JRQi96ZVdkSXh4bCtkaitEODBUVlc2UTBGMjlkV1FRL1BMQU5QQ0ZTT2xFMktPQ2NaaXRDclVEblBrN0FWTE5nbERuNUVPODZpc2grUC9YeGpnRUthUXh0UnphWDh2aHJCY1lwQjMzb3B0S3RTWUNzT0Y0RlVocVBHdDlidUozT0xWWHVGQ1piZitLZE13amNSN3NCRWkzeDhSR2ZrR1pydVlwWlh3ejU5cDIxcEpDV3BvVHVQVVU3aDZLQldGNTQzUlFyWENYTk9zNkRvbWRBcUFuY3E1OVFPTjRDTTVjSjBBYTg1UUYxQzhnSUZLZUJPd0NqNXpEcTIxbEpqMGw4QTNOQ01hanJSTkJEblpnZEdXKzhySThwYVY3T01GZHlXVWpDcjFIZVBqaDYyMEphNThQMmNKMUZqZDdQTWRtRjcwYU9WUGFPL21uMDJEdzcxbTZsRHpNQm83RVByYjQ3bHFWb1MyQkdnZGhvd1QyUW84U0VZSDJSeXZmd1ljVFJiQ3FaUkw0UThleWdNem5MTit0TkxMWU81TjE1Ty9GbkEvMUFmSWFaK0Z1bXZBWVVndlMyeDVNdW9nVHcwR2NhTkxDOS9RRGtGMGNsUlNZSFZMKzRZZWtMcnYxcU9FNVBlZVFJOXpKWnNTcG1uczdyOU9NMHZ3U1JsVm9xaGlNS2V4L1RxZUpQRVhZOWRsY1QyTEdyZlI0Z01MaS8ySjF6RTJ5enViRWNiV3RFRGVYUVo3Zmp3bEgrN002TFJHQkg0L2NBQmVVTjRPZWNUVnBGN2s4dm9uclNVNnRDdW5YU0JVT3dqM2ZKUkU4MDBiOE9pYzN5aUl6MCtQeEVFVWtqN0QwL0o0QlhNZUxlOUNoS2txaDNtOFl5T0ZuS0VFbmcwSFNpcG42VjR1Ym9jU1g5TXFTcG5qa0N2L010UzZuUnJ0L1AwZk9LS0NpQnNaS1FVc0hSZ3Voei91Yy9LR2ZRMkRKWHUydFk4Yit5b001Q2p1b0VRVytLTXpoWjJCZzVtMUFXbGRBMXZ6d1NPMTZtRmx4QVBTazV3UGp1VXh4eU9GZU82LzNUV1pJYnFONjA5czZpSldRRENuZzc1a2p3S2h4d2I2VmZZQ2JVek80QkZQckVQMWxHNFhTVkJtdlYzSjhCVW5Va2dGQy9oTXVIZXdmQ0RCU3VncFN4Z2UvR0xFTmxneXZNNE5UM2NnYmlVMjNPOHljOWc3U1Qxek1GNFczRHdWbGJlMlFRSy9jbWdyY3JHS2tCWnJzNW1NZjh0RDA3Q3kveEdXVmlFdEFRSVhSeCswUkRaa3VPb1R3RHl4Qlo5TGU1M3FOL2NDQW5yZUk1MmpMQ0F6a0Q0THhFSUp4ZjJVZEdLbFR3SEFiKzhJOC91bmZrRjUzdXFHbm9PYWNTTnNURzcrMTR0aUlZUGVHVlB5azBvazlTSGllMTJqd1BISXBlNCtxSHYvcE1SZXF1MFdjUXN5ZmdyVzNzZTAwZ0RqR2RTYktYejUwcURPNXRVRnVqaVdqb1RGUEptSHBpSzN3UUZVZDZJbFQzSVlFcDI2UVpkczBEek5CN1RoSGhJNyswK2lCaGVNakhUOTRmTnptKy9WRTlHTU5mWmM0K2UxLzRCSkpvZVVlcitDSnpQc2l0NDE4Y3RnYjJlVE00U2pBelhmMGNCSHRiYzVYTm5rc3ZwRzFRYmZ4M09kV1hraDJZd2lsaEdEeHhIWjRJTHpMSEVIQ0dldktTWkU5L2JVUHJOMUJMY2RVRlBQYzEvU2hKNndBWHo5UkRkdUo5Q01xbGZCYzB0bVpHVHFvb2dQdUNRZDZWMEd3Ni9wTU1yeEtDblJId1JBWmZ0ZnlFMnN4OEQ4Rk11aVNzcURSS1JVRkV2aXZsclZtSDNCRVNoWHBwSU9KdlZya09TaVhiUk00K3FoaWFTWmoyc1hsZ2tZT0N2b0trWlJVSlZNNHFiUU8vaUtaRmthdGpKL1AyQUNSbUFuTm5Pc0FaY2pKWGx3QVBqOTVVZ1JLeTRNd2U2d0dFNXJlaHk0MUJGTzZka0ZWUjZzWktwaHBpR0hPcFpwRDBvd0RJRzBzTUNBRkxEbDk2VmdSekszc3NmeFFxcy95ajJVSG43SVpRa1VLUW1SVGJHalRqUGZuNERyMWF0WGZXeTRNa1dKQWRsdEF5RGhVRVU2cERlM2pBYnpoWTB3MXRHbG40NlNDS0FOOU80MFJqa0lUT1R3MkQyMFVldFRsWTZiODhTdUJFZGRoVUxrS3d3ZjdZT2ZPYnZDWHFnaUswWjdQTjVsZ2RHUmc0c1FJVkEveHdaZHJReER3Q1doRTN1MGNOZ3Q2a1R1N3dyVlFYZHdDVjNkc2hOSkVEMmtMTWFiZUl4NHdUeDdTY3BjZktJR2RQWDVZMnhtQ3pUMUJ1TEs0Rnk2dmlwazdPWmpQN0hhTEx3VnRHUXBVS3lOeElOZEVFUkFxRGpBRUZjMEgzY2p0SnB5UXl0S21tL2RTMktmRERMSUVUaVBlalordU82b0tESEFqelFnRUpMaHVSaGtNUlZCNmV6VFl1eHM1R25KNGxZSGNVaVdRWlVyMlVHbVFDSXhyTGlpRm9GOUFlMWNHZXBQV0pBZWxPdUFzb3cxYWZPVlFWelFLL2xKVUNUOXFmQmFpQ0VwZnNVV3cxbVNCVUN5WmY3cWhHTFowaCtEVmpqREVkQUZEVkEyV0h5cUZqZUVRUE5PZWdpV0RPMkRxa01TcFJYM2RlajRRUjBPUVJLMzBWeUd6TS9nYUs4SWxEUmlNZ1JNeHZRaVZYRWRJRXFnakoveU1NSytER2ZzZlJ4dFZqTFo1TEU3WC9keEhvU2Fyb0piUkRQQWpneGRlVmdhVmczd212N3RpR3JRY1NTRnpUaFcvZ0YrQ1hmVnhhR2hPSVFnbGNCd0JxQnpxaDZCUGduaFNON1hOTVo1Rkc5aXVSbUZVL0FCRTA3MUF1NnBKU1lYS1JDdk1PN3plS2dJRk1TdHRLb0luajVSQVExeUJneWtWcW54cG9Ha1F1MlQ4N05FRUhFNHFNQ1dTaEZHaDFLbXhtbUZwVmh1YTNycnVFdnk3R0gxUStxUUlNTWp1VDh0emlwVjhDV2xPSE1wekE0T0JCNFJDVUIzL0NTQWo1NkZtVktHNWlTV3MxYW5JQVo4cVRIQnlteXdSWUxyWmw3Ukp3ekdTYVFNeUdjTVZERHN6WXVnVU5HR3BoSTcyTHFnbFlEUmE3ZnFHZW5odnh3NDRLaFhEL29RS2cxRWovTUp3akkwSm1HNEVKbzdSbkZzV2dYSURVUVVCTXpLbUlUSk9VcUxDaStFMFo0bE9aWGdDZDdvTko2K2hSbWlvZlNFMFVRcHk5NW9MUzZBUy9ZWmR1a2xyaU54S29BcHlwRFFpUXhjNjh1d3pJbjhoQmRrcmpLQXRWUmNtY3dRY2lGVEJIdEVOT3pvVnFJaEtxQlVaQ2Q4akc3YXN6YkEvUXdjWXNFZEkwand6T3dwNVNWMkVSODNIeUZNVE1rd2pwM3JWam96VEJzUkFKb2NETWlnbytwZE9LNEVSYUdwMC9EdVIwbk5ET2VPRTh2Y2xTaWNZZ2h6UjlZSkFvRXgzSENkeWt6bXEycFlOZFEyV3dBQ0dUVDdVbEFDNlc3U2V4UENKZU8rT1R0bEFnMlhFeTNSSnlId29PSWF3ZGlNWVliUjV4YWdsK0Q5a2tEb2szWElmZEYwWGZUV1JiT2JYS2V0bU9GZXFTMmJodVIyL0V5UEx0Sk8xaDU1cHc1ZVJUcFJqWDlsRE5kcGtQWUFMT1hKYWdCRHpVcDBabUhwK0JHWk5qMExiOFl4cGJuTE1ValZYTWluT2Z3dXNVNEpOSENKVERGZ0NKNDRYamVRODU0KzhSOUREWWZENVhEbjJjd0tYWmtBSW5ML2xrc1ZIbk1lRVRaNW8ycWVSY0JFb1pWRTRoT0Q0RlRuWUpSazFFNU9LR2pSRTkvWkF5dWRESmhORFMzUkpINWYyWlJxVnROS2dhaElCMEsxZ2lKM3c2UWlTRVVQdjlPZGdSb3BreUNrTGM3STl5UHphbEpJcDF5UjlleUNqSXA1aWFsTFZqc2dhSEZSMGVSaUMwaWJwcGtmQjk4STVLVVgzNFZnN0Fta1puNEVLUkwwSFVhUjd5Z25RakhFcEpZRDNGT1Ywd0VqR3JQeGlXSVZsbmh4cVNrVmNvUE54a2UvYnZPZEIrUXlkQXp2TTBuNklKWnpBaURGSTB6akpYTUE1enprTXpuNWJvVkxsd21DUXkvL3ZNaUR2SjJPeFR5c21qSVdya21ub1hMc1IxS0xRTzhka2ZlYnE1aWlVWVl5OFlFaTdLZVV0eU5pRlBRSDRYbGNwdkZqVUJZOUhlMkZ3UmlKSmhmV0h5OHlVYnErY2dEdk82b2JLdERDTkZRVmhCOVFNckdoRmk1RHh3NDA0RnAzU2UvWklLVFFoa04rb2JETzFZQjZHMWpFU1dtVDY4NjNGcUxVS2ZIZndjV2hVTXZCR09BVmprekxNalBtZ1YxZ0xvYm1zYmltQktHbGNmNXg2Rmd3RjlmMzZxeXBnYkUwUWpxS21TS2VhR3lxVDNNRUZ4aUdzSFE5emVVRGhHdE9IL1AyM0RKNzlZQmtkcFhtVXRTbjdpNlQ5L054dFBEYUJmcFMxNTB0Y3M3b3pyY3FhUDVhQ2VldnFZTXFlRmxRMUh5SWxsZlNDL2hOTmlKcGl3MWlGUnVqRnBKbFhpL205d3JpaHlKQ2V4Q1d0U3lGVUtCMVYyRysyRGtadDBqQzZCNEc4QWw5dnkzUDB5aTRCOTZGNUhCNHhCRzBKYnpndTlLdURoaExaSGtpdS9BQU40MTFkWWN5YWRReHlKWXl0OUcrbWhLZ3ROdVNuOXNncHVHOVFEOHp1OWNQaTdpQXVUTWU4eFRLSU1kQnZUUWpqTTZWZllHQTBKS0VuV0hoRkJZeERNRm83MGhncENiZHlDbTN5MEttTHUxaERIbVNUdFpSdGZ3T1h4MTltVFlqd2Z2UVl6cTZmWUpPMWxMWHFKdHNPNEZvMldTTzVJUG93ZzZmRlFqNDRiMGNEVE55ekYvYkpKT242VU5Vd1ZxU0ZJYUV0cis4d3hHb1Z4R0w4VHVXV1pYRXcxZ1ZBZnlHb2l3WElrSFZvemI2RHZvWk00UVlmaUpFcFEvdDJ3SUJyVWF2Mm92QlhKUVc4aHI0SDUydThFelNrVjNIMVYrQnoxMllnOWRYYXBMeHlVa0tCUFhKbU5Fbytpb1BwaTI3RXZqTVBRMlpMeUJENzFyUkVVd1RXWjNKR1JlWi83YmdodHBJL1F6TzJERDlmS0JnUUNrV0x3ekxNd3FTTndEaUNHYlVMR05ueU5TMzR4OHh3YWo5alJsUGJ5aVdLck9ROWFmT2IyMnhNMzhUN0NGUTkzc3krQnhqTXU5a0hGVE1ZSmxnUzJzOUVnQW9WL215QU9oS1pUNzlndWdHQldJVW0vQ1VFSmlXUnowWW0rMEc4Z1V5YmljNDlLRm1US01aK1ZLVytETzlINDhMbzdCRndtN0RxWGZkZ253bXFxWkdpRWNlZGkzM2lNcmtXRVB0aWFLTFE3enlBVEgwSXIyOVdMQitLUGsrUVFMMk1BVU56dmF5UmNOYW9scWt0VHdwakRiNy9YeFRyaFA1UnFWQkFLTHd0alNvdzRld1FIRU1uTG5rL21lQ3RVUHRCNWpiZThuMk1UUmo5UFpvWituT3dEcCtSMlRuUHRyOC9uUms5bk85RitQN0ZETVlZMXBLTjRINWcrejFrNWhKaEZRS2I4UE5LeVFMNkxXRUZIcS9nNXlKa2FxbXdtTFNQeDZLZnRxM0V2bkdjekJyRnNyVVRKT3NuR1ZTLys2V3d2cWU0aGxiUDI4WkxXVmlxZUYza0d6dDQzVkhlblZWWXFON0VNWmJKMWtrVzhxdGE0VTVkV0RsRlQxd0RLWCtJcWpuc2NaQjV1bzd0UFVuNzF6Z0tvNUwwSlJ3aTcrTkZ2TTRtYXdLYnYxcjJHNjh6U0VsbTJndzJqWjI4NkVlNXFteHZaM0daL0YwK0UwQlYzVldzVlZ0WWNCYnpsdTlqTERnbFBQWXhGcFMzYmFhNDJyWTMveHZlWE1yK01Pa1M5bzNMZVQyM01DRHY4dGdOdks3bitIcUUzNWROQzlvbCtMOXJsN01VUGNLTWlmSUNSN0hKb3RDNGhzM1NSTDVQSWZNckp5cXI1cVFiT0JTK21SZWEvVm16emxwbjVnYmk1SU1Zci9MWUc1a1JwU3dnRWQ1ZnY0RGYrVEwzVC9PZTBIWDhUTFlSa0hUQy9uNndEcUZucTE4aEZyRFBPSWk1Z3ZkaGFINEhHZXlyZUR3cTB2NlFCZk5OQnIrU0JXdTZMSmRNTE14azRYTEpoMHl1RGJ0bTNubmFVWjcwR0o1NGlKbDRpQ1g4WEpZcWpmdSt4eEdVbjhQZW83enR1b0FadVlranJ5U0RSSXh1VUROYVIxTlZtY21xTVFkYnFNYlZ6SXdqTTNJclYyc1hNN1BJZE43T21uS1V0eFE2MkFjKzU3Qm5zWnUzSE81bEFmc1RhOThlQnVIWHZKV3dqTTNZOS9tVDFqeUx6Zk04SG1NUkMxMEhyNE44eU5UL0ZXQUE4eDlyZzJRVTJlTUFBQUFBU1VWT1JLNUNZSUk9KTtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCBjZW50ZXI7XG4gICAgICAgIGhlaWdodDogNDFweDtcbiAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgIH1cbiAgICAubWYtc2NvcmVjYXJkX2Zpcm1fdGhlc3RyZWV0IHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBR1FBQUFBa0NBSUFBQUR3MkFodkFBQUFDWEJJV1hNQUFCWWxBQUFXSlFGSlVpVHdBQUFLVDJsRFExQlFhRzkwYjNOb2IzQWdTVU5ESUhCeWIyWnBiR1VBQUhqYW5WTm5WRlBwRmozMzN2UkNTNGlBbEV0dlVoVUlJRkpDaTRBVWtTWXFJUWtRU29naG9ka1ZVY0VSUlVVRUc4aWdpQU9Pam9DTUZWRXNESW9LMkFma0lhS09nNk9JaXNyNzRYdWphOWE4OStiTi9yWFhQdWVzODUyenp3ZkFDQXlXU0ROUk5ZQU1xVUllRWVDRHg4VEc0ZVF1UUlFS0pIQUFFQWl6WkNGei9TTUJBUGgrUER3cklzQUh2Z0FCZU5NTENBREFUWnZBTUJ5SC93L3FRcGxjQVlDRUFjQjBrVGhMQ0lBVUFFQjZqa0ttQUVCR0FZQ2RtQ1pUQUtBRUFHRExZMkxqQUZBdEFHQW5mK2JUQUlDZCtKbDdBUUJibENFVkFhQ1JBQ0FUWlloRUFHZzdBS3pQVm9wRkFGZ3dBQlJtUzhRNUFOZ3RBREJKVjJaSUFMQzNBTURPRUF1eUFBZ01BREJSaUlVcEFBUjdBR0RJSXlONEFJU1pBQlJHOGxjODhTdXVFT2NxQUFCNG1iSTh1U1E1UllGYkNDMXhCMWRYTGg0b3pra1hLeFEyWVFKaG1rQXV3bm1aR1RLQk5BL2c4OHdBQUtDUkZSSGdnL1A5ZU00T3JzN09ObzYyRGw4dDZyOEcveUppWXVQKzVjK3JjRUFBQU9GMGZ0SCtMQyt6R29BN0JvQnQvcUlsN2dSb1hndWdkZmVMWnJJUFFMVUFvT25hVi9OdytINDhQRVdoa0xuWjJlWGs1TmhLeEVKYlljcFhmZjVud2wvQVYvMXMrWDQ4L1BmMTRMN2lKSUV5WFlGSEJQamd3c3owVEtVY3o1SUpoR0xjNW85SC9MY0wvL3dkMHlMRVNXSzVXQ29VNDFFU2NZNUVtb3p6TXFVaWlVS1NLY1VsMHY5azR0OHMrd00rM3pVQXNHbytBWHVSTGFoZFl3UDJTeWNRV0hUQTR2Y0FBUEs3YjhIVUtBZ0RnR2lENGM5My8rOC8vVWVnSlFDQVprbVNjUUFBWGtRa0xsVEtzei9IQ0FBQVJLQ0JLckJCRy9UQkdDekFCaHpCQmR6QkMveGdOb1JDSk1UQ1FoQkNDbVNBSEhKZ0theUNRaWlHemJBZEttQXYxRUFkTk1CUmFJYVRjQTR1d2xXNERqMXdEL3BoQ0o3QktMeUJDUVJCeUFnVFlTSGFpQUZpaWxnampnZ1htWVg0SWNGSUJCS0xKQ0RKaUJSUklrdVJOVWd4VW9wVUlGVklIZkk5Y2dJNWgxeEd1cEU3eUFBeWd2eUd2RWN4bElHeVVUM1VETFZEdWFnM0dvUkdvZ3ZRWkhReG1vOFdvSnZRY3JRYVBZdzJvZWZRcTJnUDJvOCtROGN3d09nWUJ6UEViREF1eHNOQ3NUZ3NDWk5qeTdFaXJBeXJ4aHF3VnF3RHU0bjFZOCt4ZHdRU2dVWEFDVFlFZDBJZ1lSNUJTRmhNV0U3WVNLZ2dIQ1EwRWRvSk53a0RoRkhDSnlLVHFFdTBKcm9SK2NRWVlqSXhoMWhJTENQV0VvOFRMeEI3aUVQRU55UVNpVU15SjdtUUFrbXhwRlRTRXRKRzBtNVNJK2tzcVpzMFNCb2prOG5hWkd1eUJ6bVVMQ0FyeUlYa25lVEQ1RFBrRytRaDhsc0tuV0pBY2FUNFUrSW9Vc3BxU2hubEVPVTA1UVpsbURKQlZhT2FVdDJvb1ZRUk5ZOWFRcTJodGxLdlVZZW9FelIxbWpuTmd4WkpTNld0b3BYVEdtZ1hhUGRwcitoMHVoSGRsUjVPbDlCWDBzdnBSK2lYNkFQMGR3d05oaFdEeDRobktCbWJHQWNZWnhsM0dLK1lUS1laMDRzWngxUXdOekhybU9lWkQ1bHZWVmdxdGlwOEZaSEtDcFZLbFNhVkd5b3ZWS21xcHFyZXFndFY4MVhMVkkrcFhsTjlya1pWTTFQanFRblVscXRWcXAxUTYxTWJVMmVwTzZpSHFtZW9iMVEvcEg1Wi9Za0dXY05NdzA5RHBGR2dzVi9qdk1ZZ0MyTVpzM2dzSVdzTnE0WjFnVFhFSnJITjJYeDJLcnVZL1IyN2l6MnFxYUU1UXpOS00xZXpVdk9VWmo4SDQ1aHgrSngwVGdubktLZVg4MzZLM2hUdktlSXBHNlkwVExreFpWeHJxcGFYbGxpclNLdFJxMGZydlRhdTdhZWRwcjFGdTFuN2dRNUJ4MG9uWENkSFo0L09CWjNuVTlsVDNhY0tweFpOUFRyMXJpNnFhNlVib2J0RWQ3OXVwKzZZbnI1ZWdKNU1iNmZlZWIzbitoeDlMLzFVL1czNnAvVkhERmdHc3d3a0J0c016aGc4eFRWeGJ6d2RMOGZiOFZGRFhjTkFRNlZobFdHWDRZU1J1ZEU4bzlWR2pVWVBqR25HWE9NazQyM0diY2FqSmdZbUlTWkxUZXBON3BwU1RibW1LYVk3VER0TXg4M016YUxOMXBrMW16MHgxekxubStlYjE1dmZ0MkJhZUZvc3RxaTJ1R1ZKc3VSYXBsbnV0cnh1aFZvNVdhVllWVnBkczBhdG5hMGwxcnV0dTZjUnA3bE9rMDZybnRabnc3RHh0c20ycWJjWnNPWFlCdHV1dG0yMmZXRm5ZaGRudDhXdXcrNlR2Wk45dW4yTi9UMEhEWWZaRHFzZFdoMStjN1J5RkRwV090NmF6cHp1UDMzRjlKYnBMMmRZenhEUDJEUGp0aFBMS2NScG5WT2IwMGRuRjJlNWM0UHppSXVKUzRMTExwYytMcHNieHQzSXZlUktkUFZ4WGVGNjB2V2RtN09id3UybzI2L3VOdTVwN29mY244dzBueW1lV1ROejBNUElRK0JSNWRFL0M1K1ZNR3Zmckg1UFEwK0JaN1huSXk5akw1RlhyZGV3dDZWM3F2ZGg3eGMrOWo1eW4rTSs0enczM2pMZVdWL01OOEMzeUxmTFQ4TnZubCtGMzBOL0kvOWsvM3IvMFFDbmdDVUJad09KZ1VHQld3TDcrSHA4SWIrT1B6cmJaZmF5MmUxQmpLQzVRUlZCajRLdGd1WEJyU0ZveU95UXJTSDM1NWpPa2M1cERvVlFmdWpXMEFkaDVtR0x3MzRNSjRXSGhWZUdQNDV3aUZnYTBUR1hOWGZSM0VOejMwVDZSSlpFM3B0bk1VODVyeTFLTlNvK3FpNXFQTm8zdWpTNlA4WXVabG5NMVZpZFdFbHNTeHc1TGlxdU5tNXN2dC84N2ZPSDRwM2lDK043RjVndnlGMXdlYUhPd3ZTRnB4YXBMaElzT3BaQVRJaE9PSlR3UVJBcXFCYU1KZklUZHlXT0NubkNIY0puSWkvUk50R0kyRU5jS2g1TzhrZ3FUWHFTN0pHOE5Ya2t4VE9sTE9XNWhDZXBrTHhNRFV6ZG16cWVGcHAySUcweVBUcTlNWU9Ta1pCeFFxb2hUWk8yWitwbjVtWjJ5NnhsaGJMK3hXNkx0eThlbFFmSmE3T1FyQVZaTFFxMlFxYm9WRm9vMXlvSHNtZGxWMmEvelluS09aYXJuaXZON2N5enl0dVFONXp2bi8vdEVzSVM0WksycFlaTFZ5MGRXT2E5ckdvNXNqeHhlZHNLNHhVRks0WldCcXc4dUlxMkttM1ZUNnZ0VjVldWZyMG1lazFyZ1Y3QnlvTEJ0UUZyNnd0VkN1V0ZmZXZjMSsxZFQxZ3ZXZCsxWWZxR25ScytGWW1LcmhUYkY1Y1ZmOWdvM0hqbEc0ZHZ5citaM0pTMHFhdkV1V1RQWnRKbTZlYmVMWjViRHBhcWwrYVhEbTROMmRxMERkOVd0TzMxOWtYYkw1Zk5LTnU3ZzdaRHVhTy9QTGk4WmFmSnpzMDdQMVNrVlBSVStsUTI3dExkdFdIWCtHN1I3aHQ3dlBZMDdOWGJXN3ozL1Q3SnZ0dFZBVlZOMVdiVlpmdEorN1AzUDY2SnF1bjRsdnR0WGExT2JYSHR4d1BTQS8wSEl3NjIxN25VMVIzU1BWUlNqOVlyNjBjT3h4KysvcDN2ZHkwTk5nMVZqWnpHNGlOd1JIbms2ZmNKMy9jZURUcmFkb3g3ck9FSDB4OTJIV2NkTDJwQ212S2FScHRUbXZ0YllsdTZUOHcrMGRicTNucjhSOXNmRDV3MFBGbDVTdk5VeVduYTZZTFRrMmZ5ejR5ZGxaMTlmaTc1M0dEYm9yWjc1MlBPMzJvUGIrKzZFSFRoMGtYL2krYzd2RHZPWFBLNGRQS3kyK1VUVjdoWG1xODZYMjNxZE9vOC9wUFRUOGU3bkx1YXJybGNhN251ZXIyMWUyYjM2UnVlTjg3ZDlMMTU4UmIvMXRXZU9UM2R2Zk42Yi9mRjkvWGZGdDErY2lmOXpzdTcyWGNuN3EyOFQ3eGY5RUR0UWRsRDNZZlZQMXYrM05qdjNIOXF3SGVnODlIY1IvY0doWVBQL3BIMWp3OURCWStaajh1R0RZYnJuamcrT1RuaVAzTDk2ZnluUTg5a3p5YWVGLzZpL3N1dUZ4WXZmdmpWNjlmTzBaalJvWmZ5bDVPL2JYeWwvZXJBNnhtdjI4YkN4aDYreVhnek1WNzBWdnZ0d1hmY2R4M3ZvOThQVCtSOElIOG8vMmo1c2ZWVDBLZjdreG1Uay84RUE1anovR016TGRzQUFBQWdZMGhTVFFBQWVpVUFBSUNEQUFENS93QUFnT2tBQUhVd0FBRHFZQUFBT3BnQUFCZHZrbC9GUmdBQUMrNUpSRUZVZU5yc1dYbFVWZFVhLzg2d3p6MWM3c2dGdk14RElWNEZKOEJFTEJYVXAyV21HVGkxMG53dlY2WlNQVTNyYWVTQUtBSWFyOVhUQmpVSDFPZnd0SlZERHFtc1ZFRFVCQklxTE1WbEZ4U1E2YzdEMmUrUHpUM2RFQWsxWHUrdHg3Zk9IL3ZzYjU5dm4vM2IreHMzaFRHR2J1b2MwZDBRZElQVkRkWWZUV3k3dlJoanM4a2tZRXhSVkJ1V0lBZ2NRaEtlZHpnY1pyT1pvaWlwVkVyVER3bTYwV2cwR0F4T1FjQVljd2dwbFVxTzQvN0h3TnF6WjgvcXpFeVpYTTZ5dng1QVVWYXp1WWV2NzlyTXpIMzc5eDg0ZUZBUWhFVUxGMDZlUFBsQkp4WXcvblRUcHMyYk4vOTAvYnJaYkFZQWhVTHh4S0JCQ3hjc0dCSWYvMStLRm02UFVsTlRPLzVxUjE3ZW1MRmpTZnVOTjkvRUQwN3Z2dmRldTVKOXRkcmk0bUtNY1VOalk4NzY5WE5lZSsyZEpVdCt1bjRkZHhtZE9IRWk5WTAzNXIvKyt1ZWZmOTd4eVBiQnlseTdGZ0JrS3BXSFRFWWp4RW9rRE1jeEhDZFRxWGhQejZDUWtEUDUrUk1uVFNMTFc3aG8wWVArM3pkWHJpalZhZ0FBaGxGN2UwK2JQbjNJMEtFMFFzQXdBSkNja29JeExycHd3ZFBUazB6eDBjY2ZkeEZTZG9jalpjb1VNc3VJeEVTajBkakI0UGJWY1BZcnJ3d2ZOa3l1VUJRV0ZjMmJQOTlrTUFER1NhTkdyVjY5MnVsMGFsUXFIMS9maG9hR2h6N09aYVdsVFEwTlFGR0E4ZHc1YzFhdVdQSGpqeitPSFRldThydnZBS0M4dkx5cHVWbWxWTkljQjBZakFDaVV5cTV5Y0JURjh6eHBlL3lXOFcwZkxKVktOV2pRSUFDZ0FIaWVON1cwQUVCNGVIaGNUQXdaME56Y0xBZ0NhY3RsTWdCb2Ftb3lHbzNlM3Q1dExEVHBSd2lwVkNxRUVPbThTNERHbUpkS1kySmlBTURYMTFmaXNvOU9oOFBwY0dDTUdkZXYyMjAyZHcvamNEZ1FRaFJGbVV3bXE5V3FKb2NVd0dxMWtpMlV5K1hpcVJUSlpESTFOVFV4REtOUUtFU0FuSzVWQUFCRlVRNkg0NEhCRXNsc05vdWcyS3hXZDBzbnRtdHFhbkp6YzdmbDVkWFgxY1hHeG1abFpvYUZoUUhBN1pxYXJPenMwL241emMzTkNDR2RUcGM2Zi82d3A1NENBSWxFUXI2MVdDdy9WRllDQU0vemNZTUhOelExTVF3eklpbHAzLzc5Mi9QeVdscGFLSmJGZ3JBMk83dXdxR2haV3RvUGxaVnIxcXpCQUltSmljT2VmUEp2UzVlYXpPYTl1M2RydGRyUHRtN2R0V3RYMWMyYkFLRFZhbE9TazJmTm1zVkxKQUJnTUJvM2JOand4YUZETmJkdjB4UVZHQlQwNTVkZm5qcGx5cVZMbDdMV3JUdDE2aFRGc2dCUVVGajRRbkx5akJrenByb1VzMU1HWHFUTGx5K3JOQm95Y3NiTW1XSi9ZMlBqVThPSEF3RERjUjR5R2NNd29zQlJvMGRqak92cjY2UDc5Mjh6RnkrVjd0cTlHMk44OU9oUnNwVUEwTVBmLzE4SERtQ003WGE3dnJxNjJXQm9hR3hNU0VnQUFKYmpFTTh6SEFjQUhNZWRPbjA2S3p1YmlFSTg3K3ZuQndBeXVieTByR3hOWnVhOVMvdkw3TmxFN0lTSkUrL2xmcnA1ODhhUFBtbzlNanpQOGp4RjB3Q1FsSlQwWUFhKzgyQ3hFZ2t3VFArWW1NQ1FFSXBsYVlSb2hDNWV1dlQrKys4REFNV3luZ3JGa0tGRGcwSkRpZkh1RXhWbE1Cak1Gc3ZnK0hnQW9CRUNBSXFtNTg2ZmIzSXpycDlzMmpRNElZSGplYkxuQTJKakY3M3pUbU5UMCtvMWE4aWtsRXREK3c0WWtMZHJWM0J3TUFBQVRVZjE2emNnSm9aMWFkbVovUHhqeDQ4VFMwUWpGRGQ0c0M0cWl1WTRBQWdORGQyN2I5K2l0OThPQ0E0R2hxRlkxa2VyZmU3NTUvKzVaMDlYZ1FVQVQ0OGIxOUxTc20zN2RxQW9pbVU1RDQ4REJ3OU9uVGFOY01kUG1HQzMyLyt4WVVPcmdWT3BMbDIrakRFK2UrNWNEMzkvOTYyT0d6ejQrUEhqNGhURnhjVmVQajZFdFczSER0TDUzdkxsNURnRFRZOGNQWHJuenAxWHk4dXpjbklJcGlxTjVrSng4WTBiTjBUSm4yM2RtcDZSUWRwOW9xT3JxNnUvK3VvcnFWeE9lcjQ4ZGd4alBQdlZWOFdGR0F5R0R0RDRIZElkblU0bms4a2VmL3h4bW1XeElMQUlZWXd0Rmd2aEJnUUVzQ3piczJmUFZ2VkJDREFHZ0lRaFE0NGRQVHA2ekJpWFc2S0xDd3ZIVDVqd3dZY2ZrZzUzMVJadFhLdFZ0dHUxZm41ck1qS21UcDNhVzZleldhM1k0UUFBalViVG8wZVBrSkFRaFFzT2g5TnBOaHBKT3pBd1VLdlZoai8ybUllSGgyaVJBWUJ6T1JhV1pkc0c0UTlrNER0REJCZVQwUWd1cTA5UkZFMldTdE5mbnoyYmxaMTk5dHc1d21BWVJuVFAvZnIyUFhya3lNYU5HMWVzV0hHN3BvWkJ5R0l5cGM2YnA1RExaN3owa3RQcEZOMkl6YzBiRWtQcnBWWUhCQVM0Y0c0VldGMWRuWnViaXhDcXJxbHAvUk1BMmdYNmxaS1M1U3RYNnZYNjVwWVc4aG5SWllmVDJib0hiak4yRlZna2Yvd2xpOFJZZkdFNTdtcFoyYUszM2hKWlJvUEIzVDNURlBYYW5Ea2prNUplblR2MzlNbVRORUtDM2Y3MzNOeVVsQlNaVE5aeHRtUzMyMy9WeFRBV3MzbGRUazZiamFSb0dpaUtScWoyenAxbGFXbnVXYTZWK1BkNzh0OHVCS3VqWEVvUVBEdzlOVjVlQ0NHSlJHS3oyWUpEUWtKRFF3OGZPYklpUFoyaEtLMi8vNnIwZEYxazVMWXRXNTRlTjY2c3BBUUFidXIxTjIvZUZFT2hUbWViQXNWeHZqNCtNazlQaEpDQXNjVnNqdXpaODlhdFc0QXhGZ1NXWmJWK2ZoNDhqeEN5MiswY3g0VUdCN2NKZy83allGR1VPTC9UWmtzYU15WW5PMXV0Vm1PTVRTWVRNV0hIVDV5NFVGQkF6TVNMMDZmcklpTURBd1A3OSt0SHdLSXBxczBDT2w1UEt4ZGp0VXExZGN1V0o0Y09OWmxNWnJOWkxwZXIxZXFkdTNjREFIWTRla2RIYjkyeUpUdzgzR0t4R0kxR3BVcWxWcW4rYUxCY1owcE1qQ01pSW1ycjZwYXZYRmxiV3p1Z2YvK0ZDeGVLcHdieHZNd1Zhck91K0o2bTZUWnBSOGQxRzNHdHhNOTRlbnArL01rblJVVkZDcVZ5NlpJbGNwYzZhM3g4ZWtkRklZYkp6c241N3Z2dnRWcnQyNHNYKzJtMXYyREJzbFNIS3ZuN2c0VXhwaG1HZDNrY3U5VktuUFNISDN3QUFFY1BINTQyZFdwckxrTFRUcWV6cnI2ZWdLdlg2MFZEeHRDMDRKYUlPRVV6MTk0cDRIa2VhQm9Fd1c2M1k0eE5SbU5HZWpvUkd4OGZML29CaThXQ0JlR2IwdExWR1JuRTNpVWxKbzUvOWxuS3pjQzVUOXIxWUZHVTRIVEs1ZkplSkZaZ21LL1BuazFmdGVyVW1UT3QyK3ZyNjZYUnRFWVNHTnNzbGxVWkdYVzF0ZDkrKysyWk0yZUlDdmZ3OGZIejk2KzZjVVBFS0h2ZHVwcmJ0MmZObk1uL09vWWdGQjRheWlGa3MxcjFldjI2OWVzNWhKcE5Kc0xTK3ZxcWxFb2l0cVNrSkMwdDdkYXRXMDZYOC9IV2FFUnZTQ05VVUZnNEx6VTFKVG41VDZOSFAweTZVMWhVeExwVTRJWGtaTEcvL3U3ZEFhNmsrcFhac3pIR2g0OGNFV1htNStkZktTbnhkQVU3N2pSMzNqeU04ZDJHaG9GeGNmY0RQQ3NuQjJOY1hWUFRPenJhWFVmMjd0dVhsWlZGWHYyRGdxNjdpbHlOalkwamtwTHVsUlBacTllZE8zZnE2K3Q3UmtiZXkwMGNPZEpxdFdLTVY2eGM2ZDcvOE9uT3RXdlhldmZwSTVYSjVFcmxYeGNzRVB0Tkp0TUxreWQ3S2hTSTUxZWtwMk9NTDE2OEdCQVVKRmVwL0lPQ3poY1VZSXkzNStVRmhvYUtQK0VobDc4NFkwWmRYUjJSVUhiMWF1TElrWXpMVGhGU2UzdS9tNVptczluSW1EMTc5MGJxZEZLRmd1RTR0YmYzMmZQbnQrL1lRU01rVlNpU1JvMnFyNjhYLzZlMHRIVHNNODlJcE5MVzg4MnkwZjM3bjhuUEo5eVRKMC9HRFJyRXVFNGxqZER3RVNNcUtpb0lWNi9YVDV3MFNTcVhjMUlwQU15WU5ldCthRkMvNlF1dVhidFdWMWZIc214b1dKaTNLL1VoRVdCVlZSWExzaEVSRVVxbFVoQ0V5c3JLdXZwNmpVWVRFUkZCcWl1M2Z2NjU2TUtGaHJ0M09ZN1Q2WFFEQnd4d2o4dE5KbE5oVVZGRlJZWFJaS0lBdkwyOTQrTGlvdnIwY1ovOWRrM04xWW9LczhYaXBWYkhQL0dFeFdZckx5KzNtTTNCd2NHQmdZSHVJNjFXNi9tQ2dxcXFLb3h4UUVCQVRFeU14c3RMNUxZME4zOTkvbnkxWGsvVGRGaFlXRnhzckhzTngycTFscGFWM2FtdFpWazJPaXJLMzgrdmZSdlRmY25hZlJYV0RWWTNXTjFnL1QvZFNKZVVsSnd2S1BEdzhLQTZuWkhmSjdjVkdJWVptWlRrNys4UEFEZXVYeitkbjQ4eGR2ZUpEMGQydXowdU5yWmZ2MzdrOXVUTFk4ZElwZjhSY3crcjFkcXJWeTl5VWREWm9QU3R4WXRKUEVLdUN4LzZBWVpoSlpJdkRoMGlZcmZ1MkVFaFJFcWRqL0tRdXVpN3k1YTFCbGxsWmFRZS80aGlTYkgvbWZIakgremUwR28yQTREUXBtRDBVT1J3T3EydWF5RkRTd3UyMjBrMTR0RWx0elEzaTZWQm05bjhlNG0xdUNxcm5WWEQ4Yzg5eDdDc1FxRjRSRFhFR05NMDNkZVZ0VHlaa0xCcytYS0h3OUZ4OWJZejJvMHhUa3hNSks5QmdZRkxsaTV0Ykd4OFJEVUVBS1BST0hEZ3dQc212dDFCYWJjMzdCTDY5d0RMWmpRMU9MdTFkQUFBQUFCSlJVNUVya0pnZ2c9PSk7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgY2VudGVyO1xuICAgICAgICBoZWlnaHQ6IDQxcHg7XG4gICAgICAgIHdpZHRoOiAxMDBweDtcbiAgICB9XG5cbiAgICAubWYtc2NvcmVjYXJkX3Njb3JlX3phY2tzLFxuICAgIC5tZi1zY29yZWNhcmRfc2NvcmVfdGhlc3RyZWV0IHtcbiAgICAgICAgbWFyZ2luLXRvcDogNnB4O1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgfVxuXG4gICAgLmxpcHBlciB7XG4gICAgICAgIC5udW1iZXJzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvc3RhdGljL2ltYWdlcy9haC9saXBwZXJfc2NvcmVzLmdpZik7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAxMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxNXB4O1xuICAgICAgICAgICAgd2lkdGg6IDEzcHg7XG4gICAgICAgICAgICB0ZXh0LWluZGVudDogMTAwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAubnVtYmVycy5udW1iZXJzLTUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogN3B4O1xuICAgICAgICB9XG4gICAgICAgIC5udW1iZXJzLm51bWJlcnMtNCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTVweCAwO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogN3B4O1xuICAgICAgICB9XG4gICAgICAgIC5udW1iZXJzLm51bWJlcnMtMyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzBweCAwO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogN3B4O1xuICAgICAgICB9XG4gICAgICAgIC5udW1iZXJzLm51bWJlcnMtMiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDVweCAwO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogN3B4O1xuICAgICAgICB9XG4gICAgICAgIC5udW1iZXJzLm51bWJlcnMtMSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjBweCAwO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogN3B4O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypkb2Ncbi0tLVxudGl0bGU6IFN0b2NrIENoYW5nZSBXaWRnZXRcbm5hbWU6IGEtc3RvY2stY2hhbmdlLXdpZGdldFxuY2F0ZWdvcnk6IERhdGEgUGF0dGVybnMgLSBXaWRnZXRcbmF1dGhvcnM6IFBhYmxvIExhem9cbnNlbGVjdG9yczpcbiAgICAtIC5zdG9jay1jaGFuZ2VcbnRlbXBsYXRlOlxuICAgIHRvcE1vdmVyczpcbiAgICAgICAgLVxuICAgICAgICAgICAgbmFtZTogQXBwbGVcbiAgICAgICAgICAgIHN5bWJvbDogQVBQTFxuICAgICAgICAgICAgdmFsdWU6IDE5LjJcbiAgICAgICAgICAgIHRyZW5kOiB1cFxuICAgICAgICAtXG4gICAgICAgICAgICBuYW1lOiBHb29nbGUgSW5jLlxuICAgICAgICAgICAgc3ltYm9sOiBHT09HTFxuICAgICAgICAgICAgdmFsdWU6IDE2XG4gICAgICAgICAgICB0cmVuZDogdXBcbiAgICAgICAgLVxuICAgICAgICAgICAgbmFtZTogRmFjZWJvb2tcbiAgICAgICAgICAgIHN5bWJvbDogRkJcbiAgICAgICAgICAgIHZhbHVlOiAzLjJcbiAgICAgICAgICAgIHRyZW5kOiB1cFxuICAgICAgICAtXG4gICAgICAgICAgICBuYW1lOiBCYW5rIG9mIEFtZXJpY2EgQ29ycFxuICAgICAgICAgICAgc3ltYm9sOiBCQUNcbiAgICAgICAgICAgIHZhbHVlOiAyLjFcbiAgICAgICAgICAgIHRyZW5kOiB1cFxuLS0tXG5cbldpZGdldCB0aGF0IGxpc3RzIHRoZSB0b3AgcmlzaW5nIHN0b2Nrcy5cblxuYGBgIGh0bWxfZXhhbXBsZVxuXG57JWluY2x1ZGUgJ3RlbXBsYXRlcy9wYWdlcy9tb25leS9pbnZlc3Rpbmcvc3RvY2tzL3Byb2ZpbGUvX3RvcC1tb3ZlcnMtY29udGVudC5udW5qJyAlfVxuXG5gYGBcblxuKi9cblxuZGl2LnN0b2NrLWNoYW5nZSB7XG4gICAgLnN0b2NrLWNoYW5nZS1saXN0IHtcbiAgICAgICAgQGV4dGVuZCAubm8tYnVsbGV0O1xuICAgICAgICBsaSB7XG4gICAgICAgICAgICBAZXh0ZW5kIC50ZXh0LWxhcmdlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKmRvY1xuLS0tXG50aXRsZTogU3RvY2sgVGlja2VyXG5uYW1lOiBhLXN0b2NrLXRpY2tlclxuY2F0ZWdvcnk6IERhdGEgUGF0dGVybnMgLSBXaWRnZXRcbmF1dGhvcnM6IFdlcyBEaU1pY2VsaVxuc2VsZWN0b3JzOlxuICAgIC0gLnN0b2NrLXRpY2tlclxudGVtcGxhdGU6XG4gICAgc3RvY2tzOlxuLS0tXG5cbldpZGdldCB0aGF0IGhpZ2hsaWdodHMgc3RvY2sgY2hhbmdlcyBpbiBob3Jpem9udGFsIGZvcm1hdCwgd2l0aCBjYXJvdXNlbCBhcnJvd3NcblxuYGBgIGh0bWxfZXhhbXBsZVxuXG57JWluY2x1ZGUgJ3RlbXBsYXRlcy9wYWdlcy9tb25leS9jb21tb24vd2lkZ2V0cy9zdG9jay10aWNrZXIubnVuaicgJX1cblxuXG5gYGBcblxuKi9cblxuZGl2LnN0b2NrLXRpY2tlciB7XG4gICAgcGFkZGluZzogMCAkY29sdW1uLWd1dHRlci8yO1xuICAgIGg2IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICR0ZXh0LXNtYWxsZXI7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMzBweDtcbiAgICB9XG4gICAgLnN0b2NrLXRpY2tlci1pdGVtIHtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgICAgICB9XG4gICAgICAgIC5zdG9jay10cmVuZCB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICB9XG4gICAgICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgICB9XG4gICAgLnN0b2NrLWNoYW5nZSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICBmbGV4LWdyb3c6IDI7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgIH1cbiAgICAucHJlaGVyby1zcGFjZXIge1xuICAgICAgICBoZWlnaHQ6ICRoci1tYXJnaW47XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn1cblxuLypkb2Ncbi0tLVxudGl0bGU6IFN0b2NrIFVwZGF0ZXNcbm5hbWU6IGEtc3RvY2stdXBkYXRlc1xuY2F0ZWdvcnk6IERhdGEgUGF0dGVybnMgLSBXaWRnZXRcbmF1dGhvcnM6IFdlcyBEaU1pY2VsaVxuc2VsZWN0b3JzOlxuICAgIC0gLnN0b2NrLXVwZGF0ZXNcbnRlbXBsYXRlOlxuICAgIHN0b2NrOlxuICAgICAgICBzeW1ib2w6IEdPT0dcbi0tLVxuXG5XaWRnZXQgdGhhdCBsaXN0cyBzaWduaWZpY2FudCBzdG9jayB1cGRhdGVzIHRoYXQgc2hvdWxkIGJlIGRpc3BsYXllZCBvbiBhbiBhY2NvbXBhbnlpbmcgY2hhcnQuXG5cbmBgYCBodG1sX2V4YW1wbGVcblxueyUgaW5jbHVkZSAndGVtcGxhdGVzL3BhZ2VzL21vbmV5L2NvbW1vbi93aWRnZXRzL3N0b2NrLXVwZGF0ZXMubnVuaicgJX1cblxuXG5gYGBcblxuKi9cblxuI3N0b2NrLXVwZGF0ZXMge1xuICAgIEBpbmNsdWRlIHBhbmVsKCRiZzogJHdoaXRlLCAkcGFkZGluZzogMHB4LCAkYWRqdXN0OiB0cnVlKTtcbiAgICAuc3RvY2stdXBkYXRlcy1oZWFkaW5nIHtcbiAgICAgICAgaDQge1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgIH1cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzJjN2VmMDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAzcHggM3B4ICNkZGQ7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgICB9XG4gICAgdWwge1xuICAgICAgICBoZWlnaHQ6IDQ2MHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAwcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMXB4OyAvL21vdmUgdGhlIHNjcm9sbGJhciBhd2F5IGZyb20gdGhlIGJvcmRlclxuICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICAgIHBhZGRpbmc6IDAgMTJweDtcblxuICAgICAgICBsaSArIGxpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBsaSB7XG4gICAgICAgIC5jaGFydC1pY29uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgfVxuICAgICAgICBwIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMzZweDtcbiAgICAgICAgfVxuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XG4gICAgfVxufVxuXG4uY2hhcnQtaWNvbiB7XG4gICAgJi5lYXJuaW5ncyB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogXCJFXCI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5kaXZpZGVuZHMge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiRFwiO1xuICAgICAgICB9XG4gICAgfVxuICAgICYuaGVhdnl2b2x1bWUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiVlwiO1xuICAgICAgICB9XG4gICAgfVxuICAgICYuc3BsaXQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiU1wiO1xuICAgICAgICB9XG4gICAgfVxuICAgICYubmVhcmhpZ2g1MndlZWssICYuaGlnaDUyd2VlayB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRncmVlbi1wcm87XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nLXRvcDogMnB4O1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXRyaWFuZ2xlKCd1cCcsICR0ZXh0LXNtYWxsLCAkd2hpdGUsIHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgICYubmVhcmxvdzUyd2VlaywgJi5sb3c1MndlZWsge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcmVkLWNvbjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmctdG9wOiAyNXB4O1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXRyaWFuZ2xlKCdkb3duJywgJHRleHQtc21hbGwsICR3aGl0ZSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5uZWFyaGlnaDUyd2VlaywgJi5uZWFybG93NTJ3ZWVrIHtcbiAgICAgICAgb3BhY2l0eTogMC43NTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdygwLCAycHgsIDVweCwgMCwgIzg4OCwgZmFsc2UpO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgaGVpZ2h0OiAyNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogMjZweDtcbn1cblxuLypkb2Ncbi0tLVxudGl0bGU6IFN0b2NrIFRyZW5kIFNwYW5cbm5hbWU6IGEtc3RvY2stdHJlbmRcbmNhdGVnb3J5OiBEYXRhIFBhdHRlcm5zIC0gV2lkZ2V0XG5hdXRob3JzOiBQYWJsbyBMYXpvXG5zZWxlY3RvcnM6XG4gICAgLSAuc3RvY2stdHJlbmRcbi0tLVxuXG5UbyBpbXBsZW1lbnQgdGhpcywgeW91IGp1c3QgbmVlZCAqMyBjbGFzcyBuYW1lcyBhZGRlZCogdG8gdGhlIGNvbnRhaW5pbmcgZWxlbWVudCBvZiB0aGUgZGF0YSBwb2ludDpcbjEuIEFkZCBgLnN0b2NrLXRyZW5kYCBjbGFzc1xuMi4gSW5jbHVkZSAgYSBgdGV4dC0qYCBvciBgaGVhZGluZy0qYCBmb250LXNpemUgaGVscGVyIGNsYXNzXG4zLiBBbmQgdXNpbmcgY29uZGl0aW9uYWwgbG9naWMsIGFuIGAudXBgIG9yIGAuZG93bmAgY2xhc3NcblxuYGBgIGh0bWxfZXhhbXBsZVxuXG48c3BhbiBjbGFzcz0nc3RvY2stdHJlbmQgaGVhZGluZy1sYXJnZXN0IHVwJz40JTwvc3Bhbj5cbjxzcGFuIGNsYXNzPSdzdG9jay10cmVuZCBoZWFkaW5nLWxhcmdlciBkb3duJz44JTwvc3Bhbj5cbjxzcGFuIGNsYXNzPSdzdG9jay10cmVuZCBoZWFkaW5nLWxhcmdlIHVwJz4xNSU8L3NwYW4+XG48c3BhbiBjbGFzcz0nc3RvY2stdHJlbmQgdGV4dC1sYXJnZXIgZG93bic+MTYlPC9zcGFuPlxuPHNwYW4gY2xhc3M9J3N0b2NrLXRyZW5kIHRleHQtbGFyZ2UgdXAnPjIzJTwvc3Bhbj5cbjxzcGFuIGNsYXNzPSdzdG9jay10cmVuZCB0ZXh0LW5vcm1hbCBkb3duJz40MiU8L3NwYW4+XG5cbmBgYFxuXG5JZiB5b3UgZ2V0IGEgc2ltcGxlIHZhbHVlIGZyb20gdGhlIGJhY2tlbmQsIHlvdSBjYW4gYnVpbGQgdGhpcyBzcGFuIHVzaW5nIHRoZSBgZ2V0VHJlbmQoKWAgbWFjcm9cbioqVE9ETzoqKiBkaXNjdXNzIHdpdGggcGF1bCB0aGUgYmVzdCB3YXkgdG8gZG9jdW1lbnQgdGhpcyAod2lsbGYpXG5cbiovXG5cbi8vTWl4aW4gZ2VuZXJhdGVzIDpiZWZvcmUgYm9yZGVyIGFycm93cyBmb3Igc3RvY2sgdHJlbmRzLlxuQG1peGluIHN0b2NrLXRyZW5kKCRzaXplKXtcbiAgICBmb250LXNpemU6ICRzaXplO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkc2l6ZS81O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRzaXplLzU7XG4gICAgfVxuICAgICYudXB7XG4gICAgICAgIGNvbG9yOiAkZ3JlZW4tcHJvO1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBib3JkZXItdHJpYW5nbGUoJ3VwJywgbWF4KCR0ZXh0LXNtYWxsLCAkc2l6ZSowLjYpLCAkZ3JlZW4tcHJvLCB0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLmRvd24ge1xuICAgICAgICBjb2xvcjogJHJlZC1jb247XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXRyaWFuZ2xlKCdkb3duJywgbWF4KCR0ZXh0LXNtYWxsLCAkc2l6ZSowLjYpLCAkcmVkLWNvbiwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zdG9jay10cmVuZCB7XG4gICAgQGVhY2ggJG5hbWUsICRzaXplIGluICR0ZXh0LXNpemVze1xuICAgICAgICAmLnRleHQtI3skbmFtZX17XG4gICAgICAgICAgICBAaW5jbHVkZSBzdG9jay10cmVuZCgkc2l6ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRoZWFkaW5nLXNpemVze1xuICAgICAgICAmLmhlYWRpbmctI3skbmFtZX17XG4gICAgICAgICAgICBAaW5jbHVkZSBzdG9jay10cmVuZCgkc2l6ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKmRvY1xuLS0tXG50aXRsZTogU3RvY2sgT3ZlcnZpZXcgSGVhZGVyXG5uYW1lOiBhLXN0b2NrLW92ZXJ2aWV3LWhlYWRlclxuY2F0ZWdvcnk6IERhdGEgUGF0dGVybnMgLSBXaWRnZXRcbmF1dGhvcnM6IFBhYmxvIExhem8sIFdlcyBEaU1pY2VsaVxuc2VsZWN0b3JzOlxuICAgIC0gLnN0b2NrLW92ZXJ2aWV3LWhlYWRlclxudGVtcGxhdGU6XG4gICAgc3RvY2tUaWNrZXJIZWFkZXJNYXJrZXRDYXA6IDEyMzQ1Njc4OVxuICAgIHN0b2NrVGlja2VySGVhZGVyU3ltYm9sOiBcIkFBUExcIlxuLS0tXG5cbkRhdGEgd2lkZ2V0IGZvciB0aGUgdG9wIG9mIHRoZSBzdG9ja3MgYW5kIGZ1bmRzIG92ZXJ2aWV3IHNlY3Rpb25zLlxuXG57JSBzZXQgZWRpdG9yX2lkID0gdXVpZCgpICV9XG5cbmBgYG51bmp1Y2tzX3RhYj9lZGl0b3ItaWQ9e3tlZGl0b3JfaWR9fVxueyVpbmNsdWRlICd0ZW1wbGF0ZXMvcGFnZXMvbW9uZXkvaW52ZXN0aW5nL2NvbW1vbi9fc3RvY2stb3ZlcnZpZXctaGVhZGVyLm51bmonICV9XG5gYGBcblxuKi9cblxuLnN0b2NrLW92ZXJ2aWV3LWhlYWRlciB7XG4gICAgLmZsZXgtcm93IHtcbiAgICAgICAgJi5kYXRhLXJvdyB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggJGhyLWJvcmRlci1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qZG9jXG4tLS1cbnRpdGxlOiBQcm9zIGFuZCBDb25zIExpc3Rcbm5hbWU6IHByb3MtYW5kLWNvbnNcbmNhdGVnb3J5OiBMaXN0cyAtIExpc3RzXG5hdXRob3JzOiBDb3JleSBIdXR0b25cbnRlbXBsYXRlOlxuICAgIGRpZXQ6XG4gICAgICAgIGNvbnM6XG4gICAgICAgICAgICAtXG4gICAgICAgICAgICAgICAgXCJMb3RzIG9mIGdydW50IHdvcmtcIlxuICAgICAgICAgICAgLVxuICAgICAgICAgICAgICAgIFwiU29tZXdoYXQgcHJpY2V5XCJcbiAgICAgICAgcHJvczpcbiAgICAgICAgICAgIC1cbiAgICAgICAgICAgICAgICBcIkhlYXJ0IGhlYWx0aHlcIlxuICAgICAgICAgICAgLVxuICAgICAgICAgICAgICAgIFwiTnV0cml0aW9uYWxseSBzb3VuZFwiXG5zZWxlY3RvcnM6XG4gICAgLSAucHJvcy1hbmQtY29uc1xuLS0tXG5cbkEgbGl0dGxlIGxpc3Qgb2YgcHJvcyAoYnVsbGV0ZWQgYnkgY2hlY2ttYXJrcykgYW5kIGNvbnMgKGJ1bGxldGVkIGJ5IFhzKS5cblxuYGBgbnVuanVja3NfdGFiP2VkaXRvci1pZD17e3V1aWQoKX19XG57JSBpbmNsdWRlIFwidGVtcGxhdGVzL2NvbW1vbi9saXN0L3Byb3MtYW5kLWNvbnMubnVualwiICV9XG5gYGBcbiovXG5cbi5saXN0LXByb3MgPiBsaSA+IHN2Zy5wcm8sXG4ubGlzdC1jb25zID4gbGkgPiBzdmcuY29uIHtcbiAgICBtYXJnaW4tdG9wOiAtMXB4O1xufVxuXG4ubGlzdC1wcm9zLFxuLmxpc3QtY29ucyB7XG4gICAgbGkge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB9XG4gICAgLmljb24ucHJvLFxuICAgIC5pY29uLmNvbiB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICAgIG1hcmdpbi10b3A6IDNweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgfVxuICAgIC5saXN0LXRleHQge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIH1cbn1cbiIsIi8qZG9jXG4tLS1cbnRpdGxlOiBTb2NpYWwgTWVkaWEgQnV0dG9uIEJhclxubmFtZTogYS1zb2NpYWwtbWVkaWEtYnV0dG9uLWJhclxuY2F0ZWdvcnk6IEJ1dHRvbnMgLSBCdXR0b24gQmFyXG5zZWxlY3RvcnM6XG4gICAgLSAuc29jaWFsLW1lZGlhXG4tLS1cblxuVGhpcyBpcyB0aGUgc29jaWFsIG1lZGlhIGJhciB0aGF0IGlzIHVzZWQgaW4gbWFueSBwbGFjZXMsIHN1Y2ggYXMgaW4gdGhlIGhlcm9cbm1vZHVsZSwgYXMgd2VsbCBhcyBpbiB0aGUgc3RpY2t5IGJhciBhbmQgaW4gdGhlIGJvdHRvbSBvZiBhcnRpY2xlcy5cblxuVGhlIGRlZmF1bHQgcGxhY2UgZm9yIHRoZSBzb2NpYWwgbWVkaWEgYmFyIHRvIHNob3cgaXMgaW4gYSBwYWdlcyBoZXJvIHVuaXQuXG5CZWxvdyBpcyBhbiBleGFtcGxlIG9mIHRoZSBzb2NpYWwgbWVkaWEgYmFyIGluIHRoZSBoZXJvOlxuXG5UaGUgZHJvcGRvd24gbWVudSB1c2VzIHRoZSBkZWZhdWx0IEZvdW5kYXRpb24gZHJvcGRvd24gZnVuY3Rpb25hbGl0eS4gIEluIG91clxuY2FzZSB3ZSBhcmUgc3VyZSB0byB1cyB0aGUgYCB1dWlkKCkgYCBudW5qdWNrcyBqYXZhc2NyaXB0IGZ1bmN0aW9uIGluIHRoZVxuYmFzZSBzb2NpYWwgYmFyIHRlbXBsYXRlIHNvIHRoYXQgZWFjaCBpbnN0YW5jZSBvZiB0aGUgc29jaWFsIG1lZGlhIGJhciBpcyB1bmlxdWUgYW5kIHdpbGwgb25seVxuaW50ZXJhY3Qgd2l0aCB0aGUgbWVudSBjbGlja2VkLlxuXG5gYGBodG1sX2V4YW1wbGU/a2l0Y2hlbi1zaW5rPXRydWVcbjxkaXYgY2xhc3M9XCJyb3dcIj5cblxueyUgaW5jbHVkZSBcInRlbXBsYXRlcy9jb21tb24vc29jaWFsL2hlcm8tc29jaWFsLWJhci5udW5qXCIgJX1cblxuPC9kaXY+XG5gYGBcblxuKi9cblxuXG4vKmRvY1xuLS0tXG50aXRsZTogU29jaWFsIE1lZGlhIHdpdGggQ29sb3Jcbm5hbWU6IGItc29jaWFsLW1lZGlhLWNvbG9yXG5jYXRlZ29yeTogQnV0dG9ucyAtIEJ1dHRvbiBCYXJcbnRlbXBsYXRlOlxuICAgIGNvbG9yZnVsOiB0cnVlXG5zZWxlY3RvcnM6XG4gICAgLSAuc29jaWFsLW1lZGlhLmNvbG9yZnVsXG4tLS1cblxuV2UgYWxzbyBoYXZlIGEgY29sb3JmdWwgc29jaWFsIGJ1dHRvbiBiYXIgdGhhdCBzaW1wbHkgY29udGFpbnMgdGhlIGAuY29sb2Z1bGAgY2xhc3MuXG5cblxuYGBgaHRtbF9leGFtcGxlP2tpdGNoZW4tc2luaz10cnVlXG48ZGl2IGNsYXNzPVwicm93XCI+XG5cbnslIGluY2x1ZGUgXCJ0ZW1wbGF0ZXMvY29tbW9uL3NvY2lhbC9jb2xvcmZ1bC1zb2NpYWwtYmFyLm51bmpcIiAlfVxuXG48L2Rpdj5cbmBgYFxuXG4qL1xuXG5cblxuLnNvY2lhbC1tZWRpYSB7XG4gICAgLy9NYWtlcyBzdXJlIGl0IGhhcyBlbm91Z2ggc3BhY2UgdG8gcHJldmVudCB3cmFwcGluZ1xuICAgIG1pbi13aWR0aDogMjQ1cHg7XG5cbiAgICAmLmdhbGxlcnkge1xuICAgICAgICBtaW4td2lkdGg6IHJlbS1jYWxjKDIzNSk7XG4gICAgfVxuXG4gICAgJiA+IC5idXR0b24uaW1nIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0tY2FsYygxKTtcbiAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoOSkgcmVtLWNhbGMoMTMuNSk7XG5cbiAgICAgICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbS1jYWxjKDEpO1xuICAgICAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoNSkgcmVtLWNhbGMoMTIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJiA+IC5pY29uIHtcbiAgICAgICAgICAgIC8vIC5pY29uLm1lZGl1bVxuICAgICAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDI0KTtcbiAgICAgICAgICAgIGhlaWdodDogcmVtLWNhbGMoMjQpO1xuXG4gICAgICAgICAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDIwKTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDIwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuY29sb3JmdWwgPiAuYnV0dG9uIHtcbiAgICAgICAgJi5jb2xvci1mYWNlYm9vayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmFjZWJvb2s7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZhY2Vib29rLWhvdmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5jb2xvci10d2l0dGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0d2l0dGVyO1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0d2l0dGVyLWhvdmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5jb2xvci1nb29nbGUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdvb2dsZTtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ29vZ2xlLWhvdmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5jb2xvci1yZWRkaXQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJlZGRpdDtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkZGl0LWhvdmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYuY29sb3ItZW1haWwge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGVtYWlsO1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRlbWFpbC1ob3ZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuY29sb3ItbW9yZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbW9yZTtcbiAgICAgICAgICAgIGNvbG9yOiAkanVtYm87XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1vcmUtaG92ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmNvbG9yLWZhY2Vib29rID4gc3ZnLFxuICAgICAgICAmLmNvbG9yLWZhY2Vib29rID4gc3ZnIHVzZSA+IHN2ZyxcbiAgICAgICAgJi5jb2xvci10d2l0dGVyID4gc3ZnLFxuICAgICAgICAmLmNvbG9yLXR3aXR0ZXIgPiBzdmcgdXNlID4gc3ZnLFxuICAgICAgICAmLmNvbG9yLWdvb2dsZSA+IHN2ZyxcbiAgICAgICAgJi5jb2xvci1nb29nbGUgPiBzdmcgdXNlID4gc3ZnLFxuICAgICAgICAmLmNvbG9yLXJlZGRpdCA+IHN2ZyxcbiAgICAgICAgJi5jb2xvci1yZWRkaXQgPiBzdmcgdXNlID4gc3ZnLFxuICAgICAgICAmLmNvbG9yLWVtYWlsID4gc3ZnLFxuICAgICAgICAmLmNvbG9yLWVtYWlsID4gc3ZnIHVzZSA+IHN2ZyB7XG4gICAgICAgICAgZmlsbDogJHdoaXRlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJiA+IC5idXR0b24uaW1nW2FyaWEtbGFiZWw9XCJtb3JlXCJdIHtcbiAgICAgICAgLy8gYnV0dG9uLmltZyBzYW1lIHNpemUgYXMgc29jaWFsIGljb25zXG4gICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDEyKSByZW0tY2FsYygxMykgcmVtLWNhbGMoMTQpIHJlbS1jYWxjKDEzKTtcbiAgICAgICAgZm9udC1zaXplOiAkdGV4dC1zbWFsbDtcblxuICAgICAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICR0ZXh0LXNtYWxsZXI7XG4gICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoOSkgcmVtLWNhbGMoOCkgcmVtLWNhbGMoNykgcmVtLWNhbGMoOCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMTYpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uc29jaWFsLW1lZGlhLXN0aWNreXtcbiAgICAuaWNvbiB7XG4gICAgICAgJi5jb2xvci1mYWNlYm9vayB7ZmlsbDogJGZhY2Vib29rO31cbiAgICAgICAmLmNvbG9yLXR3aXR0ZXIge2ZpbGw6ICR0d2l0dGVyO31cbiAgICAgICAmLmNvbG9yLXJlZGRpdCB7ZmlsbDogJHJlZGRpdDt9XG4gICAgICAgJi5jb2xvci1tYWlsIHtmaWxsOiAkYmx1ZS1kYXJrO31cbiAgICAgICAmLmNvbG9yLWxpbmtlZGluIHtmaWxsOiAkbGlua2VkaW47fVxuICAgICAgICYuY29sb3Itc3R1bWJsZXVwb24ge2ZpbGw6ICRzdHVtYmxldXBvbjt9XG4gICAgICAgJi5jb2xvci1nb29nbGUtcGx1cyB7ZmlsbDogJGdvb2dsZTt9XG4gICAgfVxufVxuXG4iLCIkc29jaWFsLWljb24tY29sb3I6ICAjYThiMmI2O1xuJHNvY2lhbC1pY29uLWNvbG9yLWhlYWRlcjogICRsaWdodC1ncmF5O1xuJHNvY2lhbC1idXR0b24tYmctY29sb3I6ICNkOWU0ZTY7XG4kc29jaWFsLWljb24tY29sb3ItaG92ZXI6ICM2ZTg2OGY7XG5cbi8vIE1peGluIGZvciBpbnRlcm5hbCB1c2UgYmVsb3cuIFN0eWxlcyBzb2NpYWwgaXRlbXMgd2l0aG91dCB0aGUgbm9ybWFsIGJ1dHRvblxuLy8gYXBwZWFyYW5jZS4gV2UgY2FuIGFwcGx5IGl0IGF0IHZhcmlvdXMgYnJlYWtwb2ludHMsIGRlcGVuZGluZyBvbiB0aGUgcGFydGljdWxhciBjbGFzcyBhcHBsaWVkLlxuQG1peGluIG5vbi1idXR0b24tc29jaWFsLWl0ZW0ge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLy8gcmVtb3ZlIGJhY2tncm91bmRcbiAgICBwYWRkaW5nOiAwIHJlbS1jYWxjKDcpO1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB9XG5cbiAgICAmLmxhc3Qge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIH1cblxuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLy8gcmVtb3ZlIGJhY2tncm91bmQgb24gaG92ZXJcblxuICAgICAgICAvLyBmb3IgTU9SRSB0ZXh0IChubyBpY29uKVxuICAgICAgICBjb2xvcjogJHNvY2lhbC1pY29uLWNvbG9yLWhvdmVyOyBcblxuICAgICAgICA+IC5pY29uIHsgLy8gZm9yY2UgdGhlIGljb24gdGhlIHNhbWUgY29sb3Igd2hlbiB5b3UgaG92ZXIgb3ZlciB0aGUgYnV0dG9uIHBhcnRcbiAgICAgICAgICAgIGZpbGw6ICRzb2NpYWwtaWNvbi1jb2xvcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7IC8vIGJ1dCBkbyBjaGFuZ2UgY29sb3Igd2hlbiB5b3UgaG92ZXIgb3ZlciB0aGUgaWNvbiwgY2hhbmdlIGl0cyBjb2xvciB0aGVuXG4gICAgICAgICAgICAgICAgZmlsbDogJHNvY2lhbC1pY29uLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi8vIE1vYmlsZSBzb2NpYWwgaWNvbiBidXR0b25zXG4uc29jaWFsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc29jaWFsLWJ1dHRvbi1iZy1jb2xvcjtcbiAgICBoZWlnaHQ6IHJlbS1jYWxjKDQwKTtcbiAgICBwYWRkaW5nOiAwIHJlbS1jYWxjKDE1KTtcbiAgICBtYXJnaW46IDAgMXB4IDFweCAwOyAvLyBzcGFjZSBiZXR3ZWVuIGJ1dHRvbnNcblxuICAgIC8vIGZvciBNT1JFIHRleHQgKG5vIGljb24pXG4gICAgY29sb3I6ICRzb2NpYWwtaWNvbi1jb2xvcjtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgIC8vIGZ1bGwgd2lkdGhcbiAgICBmbGV4LWdyb3c6IDE7XG5cbiAgICAvLyBjZW50ZXIgaWNvbnNcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG5cbiAgICA+ICoge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgfVxuXG4gICAgJi50aWdodCB7XG4gICAgICAgIHBhZGRpbmc6IDAgcmVtLWNhbGMoMyk7XG4gICAgfVxuXG4gICAgLy8gbWFrZSBtb3JlIGJ1dHRvbiBiaWdnZXJcbiAgICAmOmxhc3Qtb2YtdHlwZXtcbiAgICAgICAgZmxleC1ncm93OiAyO1xuICAgIH1cblxuICAgIC5oZWFkZXIgJiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBwYWRkaW5nOiAwIHJlbS1jYWxjKDcpO1xuICAgIH1cblxuICAgID4gLmljb24ge1xuICAgICAgICBmaWxsOiAkc29jaWFsLWljb24tY29sb3I7XG4gICAgICAgIC5oZWFkZXIgJiB7XG4gICAgICAgICAgICBmaWxsOiAkc29jaWFsLWljb24tY29sb3ItaGVhZGVyICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGltZy1pY29uLWNvbG9yO1xuICAgICAgICBjb2xvcjogJHNvY2lhbC1idXR0b24tYmctY29sb3I7XG5cbiAgICAgICAgLmhlYWRlciAmIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgPiAuaWNvbiB7XG4gICAgICAgICAgICBmaWxsOiAkc29jaWFsLWJ1dHRvbi1iZy1jb2xvcjtcbiAgICAgICAgICAgIC5oZWFkZXIgJiB7XG4gICAgICAgICAgICAgICAgZmlsbDogI2ZmZiAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gTWVkaXVtIHVwLCByZW1vdmUgdGhlIGJ1dHRvbiBsb29rXG4gICAgLy8gRGlmZmVyZW50IGhvdmVyIGNvbG9yc1xuICAgIEBpbmNsdWRlIGZyb20oYnAtbWVkaXVtLXdpZGUpIHtcbiAgICAgICAgQGluY2x1ZGUgbm9uLWJ1dHRvbi1zb2NpYWwtaXRlbTtcbiAgICB9XG59XG5cbi8vIENhbiBhcHBseSB0aGlzIGNsYXNzIHRvIGEgd3JhcHBlciBhcm91bmQgdGhlIHNvY2lhbCBidXR0b25zIHRvIGFwcGx5IHRoZVxuLy8gbm9uLWJ1dHRvbiBzdHlsaW5nIGF0IHRoZSBtZWRpdW0gYnJlYWtwb2ludCBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IG1lZGl1bS13aWRlLlxuLnNvY2lhbC10cmFuc3BhcmVudC1iZy1mb3ItbWVkaXVtLXVwIC5zb2NpYWwge1xuICAgIEBpbmNsdWRlIGZyb20oYnAtbWVkaXVtKSB7XG4gICAgICAgIEBpbmNsdWRlIG5vbi1idXR0b24tc29jaWFsLWl0ZW07XG4gICAgfVxufVxuXG51bFtpZCo9J3NvY2lhbC1tb3JlJ10geyAvLyBTaW5jZSBzb2NpYWwtbWVkaWEgYmFycyBjYW4gc2hvdyB1cCBpbiBtdWx0aXBsZSBwbGFjZXMsIHRoZSBpZCB3aWxsIHZhcnlcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogMCByZW0tY2FsYygyKSByZW0tY2FsYyg0KSAwIHJnYmEoMCwgMCwgMCwgMC43NSk7XG4gICAgbWF4LXdpZHRoOiByZW0tY2FsYygzMDApICFpbXBvcnRhbnQ7IC8vIE92ZXJyaWRlIEZvdW5kYXRpb24ncyBkZWZhdWx0XG5cbiAgICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bSkge1xuICAgICAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDIwMCkgIWltcG9ydGFudDsgLy8gT3ZlcnJpZGUgRm91bmRhdGlvbidzIGRlZmF1bHRcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkaXJvbjtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bSkge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gYSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoMjUpO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDI1KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMzAlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSB0ZXh0KCdsYXJnZScpO1xuICAgICAgICAgICAgQGluY2x1ZGUgdGV4dCgnc21hbGwnLCAkYnJlYWtwb2ludHM6ICRtZWRpdW0tdXApO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bSkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYygxMik7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDEyKTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDE1JTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDb2xvciBmb3IgdGhlIHNvY2lhbCBtZWRpYSBkcm9wZG93biBsaXN0XG4gICAgLmNvbG9yLWxpbmtlZGluLFxuICAgIC5jb2xvci1saW5rZWRpbiB1c2UgPiBzdmcge1xuICAgICAgICBmaWxsOiAkbGlua2VkaW47XG4gICAgfVxuXG4gICAgLmNvbG9yLXN0dW1ibGV1cG9uLFxuICAgIC5jb2xvci1zdHVtYmxldXBvbiB1c2UgPiBzdmcge1xuICAgICAgICBmaWxsOiAkc3R1bWJsZXVwb247XG4gICAgfVxuXG4gICAgLmNvbG9yLXJlZGRpdCxcbiAgICAuY29sb3ItcmVkZGl0IHVzZSA+IHN2ZyB7XG4gICAgICAgIGZpbGw6ICRyZWRkaXQ7XG4gICAgfVxuXG4gICAgLmRyb3Bkb3duLWNsb3NlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNpbHZlcjtcbiAgICAgICAgZm9udC1zaXplOiAkdGV4dC1zbWFsbGVyO1xuICAgICAgICBwYWRkaW5nOiByZW0tY2FsYyg4KTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgfVxufVxuXG4uc29jaWFsLW1vcmUge1xuICAgIEBpbmNsdWRlIHotaW5kZXg7XG59XG4vL3N0aWNreSBzb2NpYWwgKyB0aGUgbmV3IHNvY2lhbCBmb3IgYnlsaW5lcyBpbiBhcnRpY2xlc1xuLm5hdi1mb2xsb3d7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgI3NvY2lhbC1pY29uLW1lbnUtY29udGFpbmVyLCAjc29jaWFsLWljb24tbWVudS1jb250YWluZXItYnlsaW5le1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHdpZHRoOiAxNjdweDtcbiAgICAgIGhlaWdodDogMjRweDtcbiAgICB9XG5cbiAgICAjc29jaWFsLWljb24tbWVudSwgI3NvY2lhbC1pY29uLW1lbnUtYnlsaW5lIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg3MnB4KTtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG4gICAgfVxuXG5cbiAgICAjY2xvc2Utc29jaWFsLCAjY2xvc2Utc29jaWFsLWJ5bGluZXtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgICNlbGxpcHNpcywgI2V4cGFuZC1lbGxpcHNpc3tcbiAgICAgICAgZGlzcGxheTpibG9jaztcbiAgICB9XG4gICAgI3RvZ2dsZS1zb2NpYWwsICN0b2dnbGUtc29jaWFsLWJ5bGluZXtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgICAjdG9nZ2xlLXNvY2lhbC5vdXQgI2VsbGlwc2lzLCAjdG9nZ2xlLXNvY2lhbC1ieWxpbmUub3V0ICNleHBhbmQtZWxsaXBzaXN7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICN0b2dnbGUtc29jaWFsLm91dCAjY2xvc2Utc29jaWFsLCAjdG9nZ2xlLXNvY2lhbC1ieWxpbmUub3V0ICNjbG9zZS1zb2NpYWwtYnlsaW5lIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICN0b2dnbGUtc29jaWFsLmluICNjbG9zZS1zb2NpYWwsICN0b2dnbGUtc29jaWFsLWJ5bGluZS5pbiAjY2xvc2Utc29jaWFsLWJ5bGluZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5zbGlkZS1vdXQge1xuICAgICAgICBhbmltYXRpb246IHNsaWRlLW91dCAwLjVzIGZvcndhcmRzO1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbjogc2xpZGUtb3V0IDAuNXMgZm9yd2FyZHM7XG4gICAgfVxuXG4gICAgLnNsaWRlLWluIHtcbiAgICAgICAgYW5pbWF0aW9uOiBzbGlkZS1pbiAwLjVzIGZvcndhcmRzO1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbjogc2xpZGUtaW4gMC41cyBmb3J3YXJkcztcbiAgICB9XG4gICAgLm5hdi1mb2xsb3ctbW9iaWxlIGxpe1xuICAgICAgICBAbWVkaWEgI3skc21hbGwtb25seX17XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBcbiAgICAgICAgfVxuICAgIH1cblxuICAgIFxuICAgIEBrZXlmcmFtZXMgc2xpZGUtb3V0IHtcbiAgICAgICAgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpOyB9XG4gICAgfVxuXG4gICAgLy8gQC13ZWJraXQta2V5ZnJhbWVzIHNsaWRlLWluIHtcbiAgICAvLyAgICAgMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTsgfVxuICAgIC8vIH1cbiAgICAgICAgXG4gICAgQGtleWZyYW1lcyBzbGlkZS1pbiB7XG4gICAgICAgIDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCk7IH1cbiAgICAgICAgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCg3MHB4KTsgfVxuICAgIH1cbn1cbiBcbi8vVGhpcyBpcyBmb3IgdGhlIG5ldyBzb2NpYWwgc3RpY2t5IFxuLmhlcm9oZWFkaW5ne1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3b3JkLWJyZWFrOiBrZWVwLWFsbDtcbn1cbiBcbiIsIi8qZG9jXG4tLS1cbnRpdGxlOiBBdXRob3Jcbm5hbWU6IGEtYXV0aG9yXG5jYXRlZ29yeTogTWVkaWEgT2JqZWN0cyAtIEF1dGhvclxudGVtcGxhdGU6XG4gICAgYXV0aG9yOlxuICAgICAgaW1hZ2U6IGh0dHA6Ly9wbGFjZWhvbGQuaXQvODQvODQvXG4gICAgICBuYW1lOiBFcmluIExvd3J5XG4gICAgICByb2xlOiBDb250cmlidXRvclxuICAgICAgYmx1cmI6IEVyaW4gd3JpdGVzIGFib3V0IHBlcnNvbmFsIGZpbmFuY2UgYW5kIG1hbmFnZXMgc29jaWFsIG1lZGlhIGZvciBNYWduaWZ5TW9uZXkuY29tLCBhIHNpdGUgZGVkaWNhdGVkIHRvIGhlbHBpbmcgY3VzdG9tZXJzIHNhdmUgbW9uZXkgYnkgZmluZGluZyBzaW1wbGUsIHRyYW5zcGFyZW50IGZpbmFuY2lhbCBwcm9kdWN0cy5cbiAgICAgIHR3aXR0ZXI6IFxuICAgICAgICBoYW5kbGU6IGVyaW5sb3dyeVxuICAgICAgICB1cmw6ICNcbnNlbGVjdG9yczpcbiAgICAtIC5hdXRob3Jcbi0tLVxuXG4+KipUT0RPOioqIEp1c3QgbWFrZSB0aGlzIGEgbWVkaWEgb2JqZWN0XG5cblRoaXMgbW9kdWxlIGlzIGNvbW1vbmx5IHVzZWQgYXQgdGhlIGJvdHRvbSBvZiBhcnRpY2xlcyB0byBnaXZlIGNyZWRpdCBhbmQgcHJvdmlkZSBsaW5rcyB0byB0aGUgYXV0aG9yIG9mIHRoZSBhcnRpY2xlXG5cbmBgYGh0bWxfZXhhbXBsZT9raXRjaGVuLXNpbms9dHJ1ZVxuXG57JSBpbmNsdWRlIFwidGVtcGxhdGVzL2NvbW1vbi9hdXRob3IubnVualwiICV9XG5cbmBgYFxuKi9cblxuZGl2LmRpc3BsYXktZmxleCB7XG4gICAgQGluY2x1ZGUgZmxleC1mbG93KChyb3cgd3JhcCkpO1xuICAgIEBpbmNsdWRlIGp1c3RpZnktY29udGVudChzcGFjZS1iZXR3ZWVuKTsgXG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAgICYgPiBwIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG9yZGVyKDIpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uYXV0aG9yIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYygyNSk7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XG5cbiAgICAmIHAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyAvLyBDb21wb25lbnQgd2lsbCBub3QgaGF2ZSBhZGRpdGlvbmFsIHBhZGRpbmdcbiAgICB9XG59XG5cbi5hdXRob3ItaW1hZ2Uge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTsgLy8gfj0gLnJvdW5kXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgaGVpZ2h0OiByZW0tY2FsYyg4MCk7XG4gICAgd2lkdGg6IHJlbS1jYWxjKDgwKTtcblxuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luOiAwICRpbWctbWFyZ2luIDAgMDtcbiAgICB9XG59XG5cbi5hdXRob3ItZGV0YWlscyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW46IHJlbS1jYWxjKDIwKSBhdXRvIHJlbS1jYWxjKDE1KSBhdXRvO1xuXG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICBtYXJnaW46IDAgMCByZW0tY2FsYygxMCkgMDs7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGhlaWdodDogcmVtLWNhbGMoMjQpO1xuICAgIH1cbn1cblxuLmF1dGhvci1zb2NpYWwge1xuICAgIGZvbnQtc2l6ZTogJHRleHQtc21hbGxlcjtcbiAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygxMCk7XG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAgIG1hcmdpbi10b3A6MDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDIwKTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIH1cbn1cblxuLmF1dGhvci1uYW1lLFxuLmF1dGhvci1yb2xlIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAkYWx1bWludW07XG4gICAgZm9udC1zaXplOiAkdGV4dC1zbWFsbGVyO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICBjb2xvcjogJGFsdW1pbnVtO1xuICAgICAgICBtYXJnaW46IDAgcmVtLWNhbGMoMTUpO1xuICAgIH1cbn1cbiIsIiIsIi8qZG9jXG4tLS1cbnRpdGxlOiBTbGlkZXNob3dcbm5hbWU6IGEtc2xpZGVzaG93XG5jYXRlZ29yeTogU2xpZGVzaG93cyAmIEFjY29yZGlvbnMgLSBTbGlkZXNob3dcbnNlbGVjdG9yczpcbiAgICAtIC5zbGlkZXNob3dcbi0tLVxuXG5BIHNsaWRlc2hvdyB1c2VzIGBzbGljayBzbGlkZXIganF1ZXJ5IHBsdWdpbmAgYXMgaXQncyBiYXNlLlxuXG5Zb3UgY2FuIGhhdmUgZGlmZmVyZW50IHR5cGVzIG9mIHNsaWRlcyBpbiB0aGUgc2xpZGVzaG93LCB3aGljaCBhcmUgW2Rpc3BsYXllZCBiZWxvd11bYy1mZWF0dXJlLXNsaWRlXS5cblRoZSBuYW1pbmcgb2YgdGhlc2Ugc2xpZGVzIGlzIGJhc2VkIG9uIGhvdyB0aGV5IGxvb2sgaW4gbW9iaWxlIHZpZXcuIE91ciBzbGlkZXNob3cgaGFzIGRpZmZlcmVudFxubGF5b3V0cyB0aGF0IG1heSBiZSB1c2VkIHRvIGNoYW5nZSBpdHMgbG9vay4gU2VlIHRoZSBmb2xsb3dpbmc6XG5cbioqQmVsb3cgdXNlcyB0aGUgYmFzZSBsYXlvdXQuIE5PVEU6IHRoZSBmdWxsIHNjcmVlbiB0b2dnbGUganVzdCB0cmlnZ2VycyBhIGBzbGlkZXNob3c6ZnVsbC1zY3JlZW5gIGV2ZW50LlxuV2hhdCBhY3R1YWxseSBoYXBwZW5zIGFzIGEgcmVzdWx0IGlzIHVwIHRvIHRoZSBsaXN0ZW5lciBvZiB0aGF0IGV2ZW50LiBTZWUgdGhlIFtTbGlkZXNob3cgR3JvdXBdWzEtc2xpZGVzaG93LWdyb3VwXSBmb3JcbmFuIGV4YW1wbGUgb2YgaXQgaW4gYWN0aW9uLioqXG5cbnslIHNldCBlZGl0b3JfaWQgPSB1dWlkKCkgJX1cblxuYGBgbnVuanVja3NfdGFiP2tpdGNoZW4tc2luaz10cnVlJmVkaXRvci1pZD17e2VkaXRvcl9pZH19XG57JSBmcm9tICd0ZW1wbGF0ZXMvY29tbW9uL3NsaWRlc2hvdy9idWlsZGVyLm51bmonIGltcG9ydCBzbGlkZXNob3dfYnVpbGRlciAlfVxuPGRpdiBjbGFzcz1cInNtYWxsLTEyIGxhcmdlLThcIj5cbnt7IHNsaWRlc2hvd19idWlsZGVyKHRpdGxlPVwiU2xpZGVzaG93XCIsIGZ1bGxzY3JlZW49dHJ1ZSkgfX1cbjwvZGl2PlxuYGBgXG5cbioqQmVsb3cgdXNlcyB0aGUgZmVhdHVyZSBsYXlvdXQuKipcblxueyUgc2V0IGVkaXRvcl9pZCA9IHV1aWQoKSAlfVxuXG5gYGBudW5qdWNrc190YWI/a2l0Y2hlbi1zaW5rPXRydWUmZWRpdG9yLWlkPXt7ZWRpdG9yX2lkfX1cbjxkaXYgY2xhc3M9XCJzbWFsbC0xMiBsYXJnZS04XCI+XG5cbnslIGluY2x1ZGUgXCJ0ZW1wbGF0ZXMvY29tbW9uL3NsaWRlc2hvdy5udW5qXCIgJX1cblxuPC9kaXY+XG5gYGBcbiovXG5cbi5zbGlkZXNob3ctdHlwZSB7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1tZWRpdW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoOC4zKTsgLy8gbWF0Y2ggcGFkZGluZyBvZiAuYnV0dG9uLnRpbnlcbiAgICBwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoNC4zKTsgLy8gbWF0Y2ggcGFkZGluZyBvZiAuYnV0dG9uLnRpbnlcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uc2xpZGUtdGl0bGUge1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbWVkaXVtO1xufVxuXG5AbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgLnNsaWRlc2hvdy1zbGlkZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICB9XG59XG5cbi5zbGlkZXNob3ctc2xpZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLnNsaWRlLW5hdiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygyMi41KSByZW0tY2FsYyg2KTtcbiAgICAgICAgJi5kaXNhYmxlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMik7XG4gICAgICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgICAgICAgZmlsbDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYuc2xpZGUtcHJldiB7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogMjAwO1xuICAgICAgICAgICAgLnJldmVhbC1tb2RhbCAmIHtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiA0MDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi5zbGlkZS1uZXh0IHtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogMjAwO1xuICAgICAgICAgICAgLnJldmVhbC1tb2RhbCAmIHtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiA0MDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vU2xpZGVzaG93IG5hdlxuLnNsaWRlc2hvdy1uYXYge1xuICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDE1KTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgJiA+IC5zbGlkZXNob3ctcGFnaW5hdGlvbiB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmID4gLnNsaWRlc2hvdy1wYWdpbmF0aW9uIHtcbiAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoOC4zKSByZW0tY2FsYygxMy4yKSByZW0tY2FsYyg0LjMpIHJlbS1jYWxjKDEzLjIpOyAvLyBtYXRjaCBwYWRkaW5nIG9mIC5idXR0b24udGlueVxuICAgIH1cbiAgICAmID4gKiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gICAgPiAuc2xpZGUtbmV4dCwgPiAuc2xpZGUtcHJldiB7XG4gICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDIyKSByZW0tY2FsYygyOCk7XG4gICAgfVxufVxuXG4uc2xpZGVzaG93LTEwMCB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uc2xpZGVzaG93LXRhcmdldDpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbn1cblxuLnNsaWRlc2hvdy1pbWFnZS1ib3gge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gICAgbWFyZ2luLXJpZ2h0OiByZW0tY2FsYygxKSAhaW1wb3J0YW50O1xufVxuXG4uc2xpZGVzaG93LWltYWdlIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbn1cblxuLnNsaWRlc2hvdyB7XG4gICAgLmNpdHktc2xpZGVzaG93LW5hdiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuICAgIC5zbGlkZS13aXRoLWFkIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbn1cblxuXG4vKmRvY1xuLS0tXG50aXRsZTogRmVhdHVyZSBTbGlkZVxubmFtZTogYy1mZWF0dXJlLXNsaWRlXG5jYXRlZ29yeTogU2xpZGVzaG93cyAmIEFjY29yZGlvbnMgLSBTbGlkZXNob3dcbnNlbGVjdG9yczpcbiAgICAtIC5zbGlkZS1mZWF0dXJlXG4tLS1cblxuRmVhdHVyZSBTbGlkZSAtIExhcmdlIEltYWdlIG9uIHRvcCBpbiBzbWFsbCB2aWV3LCBUZXh0IHdpdGggaW1hZ2UgYmVzaWRlIG9uIGxhcmdlLXVwIHZpZXdcblxueyUgc2V0IGVkaXRvcl9pZCA9IHV1aWQoKSAlfVxuXG5gYGBudW5qdWNrc190YWI/ZWRpdG9yLWlkPXt7ZWRpdG9yX2lkfX1cbjxkaXYgY2xhc3M9XCJzbWFsbC0xMiBsYXJnZS04XCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwic2xpZGUtZmVhdHVyZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJqcy1zbGVlcGVyLWFnZW50XCIgZGF0YS1hZ2VudC1pZD1cInNsaWRlLXRpdGxlLTNcIiBkYXRhLWFnZW50LXRyaWdnZXI9XCJCUkVBS1BPSU5ULVNNQUxMXCI+XG4gICAgICAgICAgICA8aDMgY2xhc3M9XCJzbGlkZS10aXRsZVwiPjUuIFVzZSBZb3VyIENvbGxlZ2UncyBDYXJlZXIgU2VydmljZXM8L2gzPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxhIGhyZWY9XCIjXCIgYWx0PVwiXCIgY2xhc3M9XCJzbGlkZS1pbWFnZVwiPlxuICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwOi8vcGxhY2Vob2xkLml0LzIzMHgxNTIvXCIgYWx0PVwiXCI+XG4gICAgICAgICAgPC9hPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJqcy1zbGVlcGVyLWFnZW50XCIgZGF0YS1hZ2VudC1pZD1cInNsaWRlLXRpdGxlLTNcIiBkYXRhLWFnZW50LXRyaWdnZXI9XCJCUkVBS1BPSU5ULU1FRElVTVwiPjwvZGl2PlxuICAgICAgICAgIDxwPlBlcnNpdXMgdm9sdXRwYXQgZXUgcGVyLCBpbnRlZ3JlIGRlc2VydWlzc2UgZXhwZXRlbmRpcyBjdSBuZWMsIHRyaXRhbmkgc2FkaXBzY2luZyBuZSBuZWMuIEVpIGRvbG9yZSBldWlzbW9kIGFkdmVyc2FyaXVtIGV1bS4gU2VkIHV0IHBhdWxvIGNhdXNhZSBleHBsaWNhcmkuIFJlZ2lvbmUgbWFpZXN0YXRpcyBjdSBzaXQsIG5vIG5lYyB2aXRhZSBwZXJ0aW5heCBxdWFlcmVuZHVtLiBFdCBlaXVzIGNob3JvIHBlcnNlcXVlcmlzIHF1by48L3A+XG4gICAgICAgICAgPGEgaHJlZj1cIiNcIiBhbHQ9XCJcIiBjbGFzcz1cInNsaWRlLW5leHRcIj5HaXZlIHlvdXJzZWxmIHNvbWUgY3JlZGl0PC9hPlxuICAgIDwvZGl2PlxuXG48L2Rpdj5cbmBgYFxuKi9cblxuLnNsaWRlLWZlYXR1cmUge1xuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgJiA+IC5zbGlkZS1pbWFnZSB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJGltZy1tYXJnaW4gKiAyO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiByZW0tY2FsYygzNTApO1xuICAgICAgICAgICAgJiA+IHAge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogcmVtLWNhbGMoMzUwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmID4gLnNsaWRlLWltYWdlID4gaW1nLCAmID4gLnNsaWRlLWltYWdlID4gcGljdHVyZSA+IGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNSk7XG4gICAgICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuICAgICYgPiAuc2xpZGUtbmV4dCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE1KTtcbiAgICAgICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJ05FWFQ6ICc7XG4gICAgICAgICAgICBjb2xvcjogJGFsdW1pbnVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1tZWRpdW07XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLypkb2Ncbi0tLVxudGl0bGU6IExpbmsgU2xpZGVcbm5hbWU6IGQtbGluay1zbGlkZVxuY2F0ZWdvcnk6IFNsaWRlc2hvd3MgJiBBY2NvcmRpb25zIC0gU2xpZGVzaG93XG4tLS1cblxuVXNlcyBvYmplY3QgYC5wcm9tb2NhcmRgIHRvIHNob3cgbGlua3Mgd2l0aCB0aGVpciBhc3NvY2lhdGVkIGltYWdlc1xuXG5DdXJyZW50bHkgLnByb21vY2FyZCBjb2RlIGxpdmVzIGhlcmVcblxueyUgc2V0IGVkaXRvcl9pZCA9IHV1aWQoKSAlfVxuXG5gYGBudW5qdWNrc190YWI/a2l0Y2hlbi1zaW5rPXRydWUmZWRpdG9yLWlkPXt7ZWRpdG9yX2lkfX1cbnslIGltcG9ydCBcInRlbXBsYXRlcy9jb21tb24vaW1hZ2UvcGljdHVyZS5udW5qXCIgYXMgcGljdHVyZSAlfVxuPGRpdiBjbGFzcz1cInNtYWxsLTEyIGxhcmdlLTggY2xlYXJmaXhcIj5cblxuICAgIDxkaXYgY2xhc3M9XCJzbGlkZS1wcm9tbyBzbGljay1zbGlkZVwiPiA8IS0tIC5zbGljay1zbGlkZSBnZXRzIGFkZGVkIGluIGJ5IHRoZSBzbGljay1zbGlkZXIgLS0+XG4gICAgICAgIDxoMyBjbGFzcz1cInNsaWRlLXRpdGxlIGhpZGUtZm9yLW1lZGl1bS11cFwiPlNlZSBNb3JlIENhcmVlcnMgU2xpZGVzaG93czwvaDM+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcm9tb2NhcmRcIj5cbiAgICAgICAgICA8YSBocmVmPVwiI1wiIGFsdD1cIlwiIGNsYXNzPVwicHJvbW9jYXJkLWltYWdlXCI+XG4gICAgICAgICAgICB7e1xuICAgICAgICAgICAgICBwaWN0dXJlLmNyZWF0ZSh7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDogXCJodHRwOi8vbG9yZW1waXhlbC5jb20vODQvODQvY2F0c1wiLFxuICAgICAgICAgICAgICAgIG1lZGl1bTogXCJodHRwOi8vbG9yZW1waXhlbC5jb20vMjkxLzE4Mi9jYXRzXCJcbiAgICAgICAgICAgICAgfSwgeyBhbHQ6IFwiXCIgfSlcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPC9hPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9tb2NhcmQtdGV4dFwiPjxhIGhyZWY9XCIjXCI+MSBLaW5kcyBvZiBBbm5veWluZyBDby1Xb3JrZXJzIGFuZCBIb3cgdG8gRGVhbCBXaXRoIFRoZW08L2E+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJvbW9jYXJkIGJvcmRlcmVkXCI+XG4gICAgICAgICAgPGEgaHJlZj1cIiNcIiBhbHQ9XCJcIiBjbGFzcz1cInByb21vY2FyZC1pbWFnZVwiPlxuICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgcGljdHVyZS5jcmVhdGUoe1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IFwiaHR0cDovL2xvcmVtcGl4ZWwuY29tLzg0Lzg0L2NhdHNcIixcbiAgICAgICAgICAgICAgICBtZWRpdW06IFwiaHR0cDovL2xvcmVtcGl4ZWwuY29tLzI5MS8xODIvY2F0c1wiXG4gICAgICAgICAgICAgIH0sIHsgYWx0OiBcIlwiIH0pXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvbW9jYXJkLXRleHRcIj48YSBocmVmPVwiI1wiPjIgS2luZHMgb2YgQW5ub3lpbmcgQ28tV29ya2VycyBhbmQgSG93IHRvIERlYWwgV2l0aCBUaGVtPC9hPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInByb21vY2FyZFwiPlxuICAgICAgICAgIDxhIGhyZWY9XCIjXCIgYWx0PVwiXCIgY2xhc3M9XCJwcm9tb2NhcmQtaW1hZ2VcIj5cbiAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgIHBpY3R1cmUuY3JlYXRlKHtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBcImh0dHA6Ly9sb3JlbXBpeGVsLmNvbS84NC84NC9jYXRzXCIsXG4gICAgICAgICAgICAgICAgbWVkaXVtOiBcImh0dHA6Ly9sb3JlbXBpeGVsLmNvbS8yOTEvMTgyL2NhdHNcIlxuICAgICAgICAgICAgICB9LCB7IGFsdDogXCJcIiB9KVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA8L2E+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInByb21vY2FyZC10ZXh0XCI+PGEgaHJlZj1cIiNcIiBhbHQ9XCJcIj4zIEtpbmRzIG9mIEFubm95aW5nIENvLVdvcmtlcnMgYW5kIEhvdyB0byBEZWFsIFdpdGggVGhlbTwvYT48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbjwvZGl2PlxuYGBgXG4qL1xuXG4uc2xpZGUtcHJvbW8uc2xpY2stc2xpZGUge1xuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbn1cblxuLnByb21vY2FyZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogcmVtLWNhbGMoMTUpIDA7XG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICB3aWR0aDogMzAlO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDAgcmVtLWNhbGMoNSk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAuMzEyNWVtICRpcm9uO1xuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNSk7XG4gICAgfVxuICAgIC5wcm9tb2NhcmQtaW1hZ2UgPiBpbWcsXG4gICAgLnByb21vY2FyZC1pbWFnZSA+IHBpY3R1cmUgPiBpbWcge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkaW1nLW1hcmdpbjtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5wcm9tb2NhcmQtdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHRleHQtbGFyZ2U7XG4gICAgICAgIEBpbmNsdWRlIHZlcnRpY2FsLWFsaWduLW1pZGRsZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1tZWRpdW07XG4gICAgICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHJlc2V0LXZlcnRpY2FsLWFsaWduLW1pZGRsZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDIwKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsO1xuICAgICAgICAgICAgLXdlYmtpdC1mbGV4OiAxIDAgYXV0bztcbiAgICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucHJvbW9jYXJkICsgLnByb21vY2FyZCB7XG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICBtYXJnaW4tbGVmdDogMyU7XG4gICAgfVxufVxuXG4ucHJvbW9jYXJkLmJvcmRlcmVkIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGlyb247XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRpcm9uO1xuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgIH1cbn1cblxuXG4vKmRvY1xuLS0tXG50aXRsZTogU2xpZGVzaG93IExpc3Rcbm5hbWU6IGEtc2xpZGVzaG93LWxpc3RcbmNhdGVnb3J5OiBTbGlkZXNob3dzICYgQWNjb3JkaW9ucyAtIFNsaWRlc2hvdyBMaXN0XG5zZWxlY3RvcnM6XG4gICAgLSAuY2Fyb3VzZWxcbiAgICAtIC5zbGlkZXNob3ctbGlzdFxuLS0tXG5cbkEgc2xpZGVzaG93IHVzZXMgYHNsaWNrIHNsaWRlciBqcXVlcnkgcGx1Z2luYCBhcyBpdCdzIGJhc2UuXG5cbmBgYGh0bWxfZXhhbXBsZT9raXRjaGVuLXNpbms9dHJ1ZVxuPGRpdiBjbGFzcz1cInNtYWxsLTEyXCI+XG4gIHslIGluY2x1ZGUgXCJ0ZW1wbGF0ZXMvY29tbW9uL3NsaWRlc2hvdy1saXN0Lm51bmpcIiAlfVxuPC9kaXY+XG5gYGBcbiovXG5cbi5jYXJvdXNlbCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTAwcHgpO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIH1cbiAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgIC5zbGlkZS1wcmV2LCAuc2xpZGUtbmV4dCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiBjYWxjKDUwJSAtIDE2cHgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5zbGlkZS1wcmV2LmRpc2FibGVkID4gLmljb24sIC5zbGlkZS1uZXh0LmRpc2FibGVkID4gLmljb24ge1xuICAgICAgICBmaWxsOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICAgIH1cbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAgIC5zbGlkZS1wcmV2IHtcbiAgICAgICAgICAgIGxlZnQ6IC01MHB4O1xuICAgICAgICB9XG4gICAgICAgIC5zbGlkZS1uZXh0IHtcbiAgICAgICAgICAgIHJpZ2h0OiAtNTBweDtcbiAgICAgICAgfVxuICAgICAgICAubWlkZGxlLWNhcmQge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDUlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1JTtcbiAgICAgICAgfVxuICAgICAgICAubWVkaXVtLTMwcCB7XG4gICAgICAgICAgICB3aWR0aDogMzAlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zbGlkZXNob3ctbGlzdCA+IGRpdiB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmpzLXNsaWRlc2hvdy1ob29rIHtcbiAgICBAaW5jbHVkZSB6LWluZGV4O1xuXG4gICAgKiB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgJiB+ICoge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbn1cblxuLmpzLXNsaWRlc2hvdy1ob29rOm5vdCguc2xpY2staW5pdGlhbGl6ZWQpID4gW2RhdGEtc2xpZGUtaW5kZXhdIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uanMtc2xpZGVzaG93LWhvb2suc2xpY2staW5pdGlhbGl6ZWQge1xuICAgICoge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZS1pbjtcbiAgICB9XG4gICAgJiB+ICoge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZS1pbjtcbiAgICB9XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB6LWluZGV4OiBpbml0aWFsO1xufVxuXG4ud2lkZ2V0LWNhcm91c2VsIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICAuc2xpY2stdHJhY2sge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgfVxuICAgIC5zbGljay1zbGlkZSB7XG4gICAgICAgIHBhZGRpbmc6IDVweCA3cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICB3aWR0aDogMjEzcHg7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7IFxuICAgIH1cbiAgICAud2lkZ2V0Y2FyZCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgQGluY2x1ZGUgYm94LXNoYWRvdygwLCAxcHgsIDAuNDEyNWVtLCAwLCByZ2JhKDE0MiwgMTQyLCAxNDIsIDEpKTtcbiAgICAgICAgJiArIC5wcm9tb2NhcmQge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuNSU7XG4gICAgICAgIH1cbiAgICAgICAgJi5ncmF5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzbW9rZS1ncmF5O1xuICAgICAgICB9XG4gICAgICAgICYucmFkaXVzIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDUpO1xuXG4gICAgICAgIH1cbiAgICB9XG4gICAgLndpZGdldGNhcmQtaW1hZ2Uge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICBtaW4taGVpZ2h0OiAxMzJweDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTMycHg7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDEzMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5jZW50ZXJlZCBpbWcge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMzJweDtcbiAgICAgICAgfVxuICAgICAgICAmLnJhZGl1cyB7XG4gICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiByZW0tY2FsYyg1KTtcbiAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiByZW0tY2FsYyg1KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAud2lkZ2V0Y2FyZC10ZXh0IHtcbiAgICAgICAgcGFkZGluZzogMC42MjVyZW07XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIC13ZWJraXQtZmxleC1ncm93OiAxO1xuXG4gICAgICAgICYuZmxleC1zdGFydCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAud2lkZ2V0Y2FyZC1idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcGFkZGluZzogMC4zMTI1cmVtIDAuNjI1cmVtO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI0RERERERDtcbiAgICAgICAgYmFja2dyb3VuZDogJGdob3N0O1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGZpbGw6ICRhbmNob3ItZm9udC1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgICAmLmhpaGxpZ2h0ZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGFuY2hvci1mb250LWNvbG9yO1xuICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBmaWxsOiB3aGl0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuc2xpZGUtcHJldiB7XG4gICAgICAgIGxlZnQ6IC0yNXB4O1xuICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgICBmaWxsOiAkYW5jaG9yLWZvbnQtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnNsaWRlLW5leHQge1xuICAgICAgICByaWdodDogLTI1cHg7XG4gICAgICAgIC5pY29uIHtcbiAgICAgICAgICAgIGZpbGw6ICRhbmNob3ItZm9udC1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNhcmQtY2Fyb3VzZWwge1xuICAgIC8vIHNldHMgdXAgdGhlIHByb3BlciBoZWlnaHQgZm9yIHRoZSBjYXJvdXNlbCB1c2luZyB0aGVcbiAgICAvLyBjb250ZW50cyBvZiB0aGUgY2FyZHMgYmVmb3JlIHRoZSBwYWdlIGlzIGZpbmlzaGVkIGxvYWRpbmdcbiAgICAuanMtc2xpZGVzaG93LWhvb2s6bm90KC5zbGljay1pbml0aWFsaXplZCkgPiAqIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aWR0aDogMHB4O1xuICAgIH1cbn1cbiIsIi8qZG9jXG4tLS1cbnRpdGxlOiBTbGlkZXNob3cgR3JvdXBcbm5hbWU6IDEtc2xpZGVzaG93LWdyb3VwXG5jYXRlZ29yeTogU2xpZGVzaG93cyAmIEFjY29yZGlvbnMgLSBTbGlkZXNob3cgR3JvdXBcbnNlbGVjdG9yczpcbiAgICAtIC5zbGlkZXNob3ctZ3JvdXBcbmF1dGhvcnM6IFBhdWwgUGVjaGluXG4tLS1cblxuQSBzbGlkZXNob3cgZ3JvdXAgaXMgYSBjb25nbG9tZXJhdGUgb2YgZGlmZmVyZW50IHNsaWRlc2hvd3MuXG5JdCBjb21lcyB3aXRoIG1vZGFsIHN1cHBvcnQuIFNjc3Mgc3R5bGVzIGZvciB0aGUgbW9kYWwgYXJlIGluIF9tb2RhbC5zY3NzXG5cbllvdSdyZSBub3QgZXhwZWN0ZWQgdG8gYnVpbGQgYSBzbGlkZXNob3cgZ3JvdXAgbWFudWFsbHkuIEluc3RlYWQsIHVzZSB0aGVcbmV4aXN0aW5nIHRlbXBsYXRlcyB0aGF0IGxldmVyYWdlIHRoZSBidWlsZGVyczpcblxuLSBbRGVmYXVsdF0oe3tzdGF0aWNfcmVwb319L3NyYy90ZW1wbGF0ZXMvY29tbW9uL3NsaWRlc2hvdy1ncm91cC5udW5qKVxuXG57JSBzZXQgZWRpdG9yX2lkID0gdXVpZCgpICV9XG5cbmBgYG51bmp1Y2tzX3RhYj9lZGl0b3ItaWQ9e3tlZGl0b3JfaWR9fVxuPGRpdiBjbGFzcz1cInJvd1wiPlxuICA8ZGl2IGNsYXNzPVwiY29sdW1uIHNtYWxsLTEyIGxhcmdlLThcIj5cbiAgICB7JSBpbmNsdWRlIFwidGVtcGxhdGVzL2NvbW1vbi9zbGlkZXNob3ctZ3JvdXAubnVualwiICV9XG4gIDwvZGl2PlxuPC9kaXY+XG5gYGBcbiovXG5cbi5zbGlkZXNob3ctZ3JvdXAge1xuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgICAgIG1hcmdpbjogMCByZW0tY2FsYygtMTUpO1xuXG4gICAgICAgIC5zbGlkZXNob3ctbWV0YSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgcmVtLWNhbGMoMTUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnNsaWRlc2hvdy1yaWdodC1uYXYge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0tY2FsYygxNSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY29sbGFwc2libGUtaGFuZGxlLXdyYXBwZXIsXG4gICAgICAgIC5jb2xsYXBzaWJsZS1jb250ZW50LXdyYXBwZXIge1xuICAgICAgICAgICAgbWFyZ2luOiAwIHJlbS1jYWxjKDE1KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5qcy1nYWxsZXJ5LXBhZ2luYXRpb24ge1xuICAgICAgICBtYXJnaW4tbGVmdDogcmVtLWNhbGMoMTApO1xuICAgIH1cblxuICAgIC5jb2xsYXBzaWJsZS1jb250ZW50LXdyYXBwZXIuY29sbGFwc2VkIHtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICB9XG5cbiAgICAuYWQtcGxhY2Vob2xkZXItcmVjdGFuZ2xlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAuc2xpZGVzaG93IHtcbiAgICAgICAgLmNvbGxhcHNpYmxlLWhhbmRsZS13cmFwcGVyIHtcbiAgICAgICAgICAgIC5pY29uLnJvdGF0ZS0xODAge1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLnNsaWNrLXNsaWRlIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMC41cztcbiAgICAgICAgICAgIC1tb3otdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjVzOyAvKiBGaXJlZm94IDQgKi9cbiAgICAgICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjVzOyAvKiBTYWZhcmkgYW5kIENocm9tZSAqL1xuICAgICAgICAgICAgLW8tdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjVzOyAvKiBPcGVyYSAqL1xuICAgICAgICAgICAgLW1zLXRyYW5zaXRpb246IG1heC1oZWlnaHQgMC41czsgLyogRXhwbG9yZXIgMTAgKi9cbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDk5OXB4O1xuICAgICAgICB9XG4gICAgICAgIC5zbGljay1zbGlkZVt0YWJpbmRleD0nLTEnXXtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuc2xpY2stc2xpZGUuc2xpY2stY3VycmVudCB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA5OTlweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubWluaW1hcHtcbiAgICAgICAgICAgIC5zbGljay1zbGlkZVt0YWJpbmRleD0nLTEnXXtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiBpbmhlcml0OyBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zbGlkZXNob3ctbmF2ID4gLnNsaWRlc2hvdy1wYWdpbmF0aW9uIHtcbiAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMjgpIDA7XG5cbiAgICAgICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMjgpIHJlbS1jYWxjKDEzLjIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNsaWRlc2hvdy1jYXB0aW9uLWJveCBwIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAmLmpzLWNhcHRpb24tY3VycmVudHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKmRvY1xuLS0tXG50aXRsZTogU2xpZGVzaG93IE1pbmltYXBcbm5hbWU6IGItc2xpZGVzaG93XG5jYXRlZ29yeTogU2xpZGVzaG93cyAmIEFjY29yZGlvbnMgLSBTbGlkZXNob3dcbnNlbGVjdG9yczpcbiAgICAtIC5zbGlkZXNob3cubWluaW1hcFxuLS0tXG5cblRoZSBzbGlkZXNob3cgbWluaW1hcCBpcyBzb21ldGhpbmcgeW91IG1heSBmaW5kIHVzZWQgaW4gYSBbU2xpZGVzaG93IEdyb3VwXVsyLXNsaWRlc2hvdy1ncm91cF0sXG50aG91Z2ggaXQgY2FuIGJlIHVzZWQgc3RhbmRhbG9uZS4gVmlldyB0aGUgSFRNTCB0byBzZWUgdGhlIEpTIHVzZWQgdG8gaW5zdGFudGlhdGUgdGhpcyB3aXRoXG50aGUgcHJvcGVyIG9wdGlvbnMgYXQgdGhlIGJvdHRvbS4gTm90ZSB0aGF0IHRoZSBbc2xpZGVzaG93IG1pbmltYXAgYnVpbGRlcl0oe3tzdGF0aWNfcmVwb319L3NyYy90ZW1wbGF0ZXMvY29tbW9uL3NsaWRlc2hvdy9taW5pbWFwLm51bmopXG5pbiB0aGlzIGV4YW1wbGUgaGFzIHRob3NlIG9wdGlvbnMgc2V0IGJ5IGRlZmF1bHQuXG5cbnslIHNldCBlZGl0b3JfaWQgPSB1dWlkKCkgJX1cblxuYGBgbnVuanVja3NfdGFiP2VkaXRvci1pZD17e2VkaXRvcl9pZH19XG57JSBmcm9tICd0ZW1wbGF0ZXMvY29tbW9uL3NsaWRlc2hvdy9idWlsZGVyLm51bmonIGltcG9ydCBzbGlkZXNob3dfbWluaW1hcF9idWlsZGVyICV9XG5cbjxkaXYgY2xhc3M9XCJzbWFsbC0xMiBsYXJnZS04XCI+XG57eyBzbGlkZXNob3dfbWluaW1hcF9idWlsZGVyKGltbWVkaWF0ZUluaXQ9dHJ1ZSkgfX1cbjwvZGl2PlxuYGBgXG4qL1xuXG4uc2xpZGVzaG93Lm1pbmltYXAge1xuXG4gICAgLnNsaWRlc2hvdy10YXJnZXQge1xuICAgICAgICBkaXYge1xuICAgICAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMTApIHJlbS1jYWxjKDE1KSByZW0tY2FsYygxMCkgMDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiByZW0tY2FsYygxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zbGlkZXNob3ctaW1hZ2UsIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoaXMgbWFrZXMgdGhlIGJvcmRlciBzdGljayBvbiB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHNsaWRlLlxuICAgIC5zbGljay1jdXJyZW50IC5zbGlkZXNob3ctaW1hZ2Uge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkZ2FpbnNib3JvO1xuICAgICAgICBvdXRsaW5lOiAxcHggc29saWQgJHN0ZWVsO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIC5zbGlkZXNob3ctdGFyZ2V0IHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNsaWRlc2hvdyBtb2RhbCBzdHlsZXMgaW4gX21vZGFsLnNjc3Ncbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaGVtaW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIGRhcmstc2xpZGVzaG93LWdyb3VwKCkge1xuICAgIC5kYXJrIC5zbGlkZXNob3ctZ3JvdXB7XG4gICAgICAgIC5zbGlkZXNob3ctaW1hZ2UtYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICAgICAgfVxuXG4gICAgICAgIC5zbGlkZXNob3cubWluaW1hcCB7XG4gICAgICAgICAgICAvLyBUaGlzIG1ha2VzIHRoZSBib3JkZXIgc3RpY2sgb24gdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBzbGlkZS5cbiAgICAgICAgICAgIC5zbGljay1jdXJyZW50IC5zbGlkZXNob3ctaW1hZ2Uge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IDFweCBzb2xpZCAkc3RlZWw7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGJsYWNrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnRleHQtY2FwdGlvbiB7XG4gICAgICAgICAgICBjb2xvcjogJGFsdW1pbnVtO1xuXG4gICAgICAgICAgICAmICsgc3BhbiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRpcm9uO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYS50ZXh0LWNvYWwge1xuICAgICAgICAgICAgY29sb3I6ICRpcm9uICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLmljb24uY29hbCB7XG4gICAgICAgICAgICBmaWxsOiAkaXJvbiAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLnNsaWRlc2hvdy1wYWdpbmF0aW9uIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHRleHQtc21hbGw7XG4gICAgICAgICAgICBjb2xvcjogJGlyb247XG4gICAgICAgIH1cblxuICAgICAgICAuc2xpZGVzaG93LW5hdiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkamV0O1xuXG4gICAgICAgICAgICAuYnV0dG9uLnNlY29uZGFyeSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFsdW1pbnVtO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjaGFyY29hbDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLnNoYWRvdyB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGNoYXJjb2FsO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjaGFyY29hbDtcblxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0dWF0YXJhO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJi5zaGFkb3cge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkdHVhdGFyYTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgICAgIGZpbGw6ICR3aGl0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qZG9jXG4tLS1cbnRpdGxlOiBQcm9tbyBDb21wcmVzc1xubmFtZTogYS1wcm9tby1jb21wcmVzc1xuY2F0ZWdvcnk6IE1lZGlhIE9iamVjdHMgLSBQcm9tbyBDb21wcmVzc1xuLS0tXG5cblRoaXMgY29tcG9uZW50IGxvb2tzIGxpa2UgYSBtaW5pLXByb21vIGxpc3QgaW4gbW9iaWxlIGFuZCB0aGVuIGV4cGFuZHMgb3V0IHRvIGxvb2sgbGlrZSBhIG1lZ2EgcHJvbW8gd2l0aCBvbmUgcGljdHVyZSwgd2hpY2ggaXMgcGljdHVyZSBmcm9tIHRoZSBmaXJzdCBpdGVtLCBhcHByb3ByaWF0ZWx5IHNpemVkLlxuXG5gYGBodG1sX2V4YW1wbGU/a2l0Y2hlbi1zaW5rPXRydWVcbnslIGltcG9ydCBcInRlbXBsYXRlcy9jb21tb24vaW1hZ2UvcGljdHVyZS5udW5qXCIgYXMgcGljdHVyZSAlfVxuXG48ZGl2IGNsYXNzPVwic21hbGwtMTJcIj48IS0tIFRoaXMgaXMganVzdCBmb3Igc3R5bGVndWlkZSBzdHlsaW5nIC0tPlxuXG48ZGl2IGNsYXNzPVwicHJvbW8tY29tcHJlc3NcIj5cbiAgICA8ZGl2IGNsYXNzPVwianMtc2xlZXBlci1hZ2VudCBzaG93LWZvci1tZWRpdW0tdXAgbGVmdFwiIGRhdGEtYWdlbnQtaWQ9XCJwcm9tby1pbWFnZVwiIGRhdGEtYWdlbnQtdHJpZ2dlcj1cIkJSRUFLUE9JTlQtTUVESVVNXCIgc3R5bGU9XCJtaW4td2lkdGg6IDMxNHB4O1wiPjwvZGl2PlxuICAgIDxzZWN0aW9uIGNsYXNzPVwibGVmdFwiPlxuICAgICAgICA8aDM+PGEgaHJlZj1cIiNcIj5BcHBsaWNhdGlvbiBQcm9jZXNzPC9hPjwvaDM+XG4gICAgICAgIDxwPlJpc2luZyBzZW5pb3JzIHNob3VsZCBtYXAgb3V0IGRlYWRsaW5lcyBlYXJseSB0byBoZWxwIHRoZW0gc3RheSBvbiB0cmFjay48L3A+XG5cbiAgICAgICAgPGEgY2xhc3M9XCJwcm9tby1hcnRpY2xlXCIgaHJlZj1cIiNcIj5cbiAgICAgICAgICAgPGRpdiBjbGFzcz1cImpzLXNsZWVwZXItYWdlbnRcIiBkYXRhLWFnZW50LWlkPVwicHJvbW8taW1hZ2VcIiBkYXRhLWFnZW50LXRyaWdnZXI9XCJCUkVBS1BPSU5ULVNNQUxMXCI+XG4gICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgIHBpY3R1cmUuY3JlYXRlKHtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogXCJodHRwOi8vcGxhY2Vob2xkLml0Lzg0eDg0L1wiLFxuICAgICAgICAgICAgICAgICAgICBtZWRpdW06IFwiaHR0cDovL3BsYWNlaG9sZC5pdC8zMTR4MjA5L1wiXG4gICAgICAgICAgICAgICAgfSwgeyBjbGFzczogXCJsZWZ0XCIsIGFsdDogXCJcIiB9KVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb21vdGV4dFwiPkNvbGxlZ2UgUXVpejogRG8gWW91IFVuZGVyc3RhbmQgdGhlIEFwcGxpY2F0aW9uIFByb2Nlc3M/PC9kaXY+XG4gICAgICAgIDwvYT5cbiAgICAgICAgPGEgY2xhc3M9XCJwcm9tby1hcnRpY2xlXCIgaHJlZj1cIiNcIj5cbiAgICAgICAgICAgPGltZyBjbGFzcz1cImxlZnQgaGlkZS1mb3ItbWVkaXVtLXVwXCIgc3JjPVwiaHR0cDovL3BsYWNlaG9sZC5pdC84NHg4NC9cIiBhbHQ9XCJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9tb3RleHRcIj41IFRpbWUtU2F2aW5nIENvbGxlZ2UgQXBwbGljYXRpb24gVHJpY2tzIGZvciBIaWdoIFNjaG9vbCBTZW5pb3JzPC9kaXY+XG4gICAgICAgIDwvYT5cbiAgICA8L3NlY3Rpb24+XG48L2Rpdj5cblxuPC9kaXY+XG5gYGBcbiovXG5cbi5wcm9tby1jb21wcmVzcyB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAtd2Via2l0LWZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICB9XG5cbiAgICAucHJvbW8tYXJ0aWNsZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDE1KSByZW0tY2FsYyg3KSByZW0tY2FsYygxNSkgMDtcblxuICAgICAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAgcmVtLWNhbGMoMTIuNSkgMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYgaW1nLmxlZnQge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkaW1nLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYgaW1nLnJpZ2h0IHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkaW1nLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYgLnByb21vdGV4dCB7IC8vIENlbnRlciB0ZXh0IHRvIHBpY3R1cmVcbiAgICAgICAgICAgIEBpbmNsdWRlIHZlcnRpY2FsLWFsaWduLW1pZGRsZTtcblxuICAgICAgICAgICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJlc2V0LXZlcnRpY2FsLWFsaWduLW1pZGRsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgc2VjdGlvbiB7XG4gICAgICAgICAgICAtd2Via2l0LWZsZXgtZ3JvdzogMjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMjtcbiAgICAgICAgICAgICYubGVmdCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRpbWctbWFyZ2luICogMjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5yaWdodCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkaW1nLW1hcmdpbiAqMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qZG9jXG4tLS1cbnRpdGxlOiBGZWF0dXJlIFByb21vXG5uYW1lOiBhLWZlYXR1cmUtcHJvbW9cbmNhdGVnb3J5OiBNZWRpYSBPYmplY3RzIC0gRmVhdHVyZSBQcm9tb1xudGVtcGxhdGU6XG4gIGZlYXR1cmU6XG4gICAgaW1hZ2U6XG4gICAgICBzbWFsbDogaHR0cDovL2xvcmVtcGl4ZWwuY29tLzI5MC8xNjEvcGVvcGxlL1xuICAgICAgbWVkaXVtOiBodHRwOi8vbG9yZW1waXhlbC5jb20vNjg1LzM2OS9wZW9wbGUvXG4gICAgICBhbHQ6IEZlYXR1cmVcbiAgICB1cmw6ICNcbiAgICBoZWFkaW5nOiBIb3cgdG8gd29yayBhIFJvb20gV2hlbiB0aGUgUm9vbSBpcyBHaWdhbnRpY1xuICAgIGxlYWQ6IEZpdmUgdGlwcyBmb3IgbmV0d29ya2luZyBhdCBsYXJnZSwgaW50aW1pZGF0aW5nIGV2ZW50cy5cbnNlbGVjdG9yczpcbiAgICAtIC5ibGFoXG4tLS1cblxuQ29uc2lzdGVudCB3aXRoIGZpcmVmbHkgbmFtaW5nIGNvbnZlbnRpb24uIEEgZmVhdHVyZSBpcyB1c2VkIGRlc2NyaWJlcyBhIGhlYWRsaW5lIGltYWdlIHdpdGggdGhlIGhlYWRsaW5lIGFuZCBhZGRpdGlvbmFsIHRleHQgYmVsb3cgdGhlIGltYWdlLlxuXG5UaGUgZGVmYXVsdCBmZWF0dXJlLXByb21vIHNob3djYXNlcyB0aGUgZnVsbCBpbWFnZSB3aXRoIHRoZSB0ZXh0IGJlbG93IHRoZSBpbWFnZS5cblxuT24gbGFyZ2UgaXQgZXhwYW5kcyB0byBsb29rIGxpa2UgYSBwcm9tbywgd2l0aCB0aGUgaW1hZ2UgYmVzaWRlIHRoZSB0ZXh0XG5cbmBgYGh0bWxfZXhhbXBsZT9raXRjaGVuLXNpbms9dHJ1ZVxueyUgaW1wb3J0IFwidGVtcGxhdGVzL2NvbW1vbi9pbWFnZS9waWN0dXJlLm51bmpcIiBhcyBwaWN0dXJlICV9XG48ZGl2IGNsYXNzPVwicm93XCI+XG5cbjxkaXYgY2xhc3M9XCJmZWF0dXJlLXByb21vXCI+XG4gIHt7XG4gICAgcGljdHVyZS5jcmVhdGUoe1xuICAgICAgZGVmYXVsdDogXCJodHRwOi8vcGxhY2Vob2xkLml0LzI5MHgxNjEvXCIsXG4gICAgICBtZWRpdW06IFwiaHR0cDovL3BsYWNlaG9sZC5pdC82ODV4MzY5L1wiXG4gICAgfSwgeyBhbHQ6IFwiRmVhdHVyZVwiIH0pXG4gIH19XG4gIDxkaXYgY2xhc3M9XCJwcm9tby10ZXh0XCI+XG4gICAgPGgyPjxhIGhyZWY9XCIjXCI+U3R1ZGVudCdzIEd1aWRlIHRvIHRoZSBBcHBsaWNhdGlvbjwvYT48L2gyPlxuICAgIDxwPkZyb20gZGVhbGluZyB3aXRoIGFkbWlzc2lvbnMsIHRoZSBjb2xsZWdlIHdhaXQgbGlzdCwgYW5kIG90aGVyIG1pbGVzdG9uZXMsIG91ciB0aXBzIGFuZCB0b29scyBjYW4gaGVscCB5b3UgdGhyb3VnaG91dCB0aGUgcHJvY2VzcyBvZiBhcHBseWluZyB0byBjb2xsZWdlLjwvcD5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPC9kaXY+XG5cbmBgYFxuKi9cblxuLmZlYXR1cmUtcHJvbW8ge1xuXG4gID4gaW1nLCA+IHBpY3R1cmUgPiBpbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKTtcblxuICAgIEBtZWRpYSAjeyRsYXJnZX0ge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oOCk7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwOyAvLyBPdmVycmlkZSBmb3VuZGF0aW9uIGNvbHVtbnMgZGVmYXVsdCBwYWRkaW5nXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAkaW1nLW1hcmdpbiAqIDI7XG4gICAgfVxuICB9XG5cbiAgPiAucHJvbW8tdGV4dCB7XG4gICAgPiBoMiB7XG4gICAgICBmb250LXNpemU6ICRoZWFkaW5nLWxhcmdlO1xuICAgICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1tZWRpdW07XG5cbiAgICAgIEBtZWRpYSAjeyRtZWRpdW19IHtcbiAgICAgICAgZm9udC1zaXplOiAkaGVhZGluZy1sYXJnZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cbiIsIi8qZG9jXG4tLS1cbnRpdGxlOiBQcm9tbyBGZWF0dXJlXG5uYW1lOiBhLXByb21vLWZlYXR1cmVcbmNhdGVnb3J5OiBNZWRpYSBPYmplY3RzIC0gUHJvbW8gRmVhdHVyZVxuLS0tXG5cbkNvbnNpc3RlbnQgd2l0aCBmaXJlZmx5IG5hbWluZyBjb252ZW50aW9uLiBBIGZlYXR1cmUgaXMgdXNlZCBkZXNjcmliZXMgYSBoZWFkbGluZSBpbWFnZSB3aXRoIHRoZSBoZWFkbGluZSBhbmQgYWRkaXRpb25hbCB0ZXh0IGJlbG93IHRoZSBpbWFnZS5cblxuYGBgaHRtbF9leGFtcGxlP2tpdGNoZW4tc2luaz10cnVlXG57JSBpbXBvcnQgXCJ0ZW1wbGF0ZXMvY29tbW9uL2ltYWdlL3BpY3R1cmUubnVualwiIGFzIHBpY3R1cmUgJX1cbjxkaXYgY2xhc3M9XCJyb3dcIj5cblxuPGRpdiBjbGFzcz1cInByb21vLWZlYXR1cmVcIj5cbiAge3tcbiAgICAgIHBpY3R1cmUuY3JlYXRlKHtcbiAgICAgICAgICBkZWZhdWx0OiBcImh0dHA6Ly9wbGFjZWhvbGQuaXQvODR4ODQvXCIsXG4gICAgICAgICAgbWVkaXVtOiBcImh0dHA6Ly9wbGFjZWhvbGQuaXQvNjg1eDM2OS9cIlxuICAgICAgfSwgeyBhbHQ6IFwiRmVhdHVyZVwiIH0pXG4gIH19XG4gIDxkaXYgY2xhc3M9XCJwcm9tby1mZWF0dXJlLXRleHRcIj5cbiAgICA8cCBjbGFzcz1cInByb21vLWZlYXR1cmUtb3ZlcmxpbmVcIj48YSBocmVmPVwiI1wiPlNlbGxpbmc8L2E+PC9wPlxuICAgIDxwIGNsYXNzPVwicHJvbW8tZmVhdHVyZS1sZWFkXCI+OSBGYWN0b3JzIFRoYXQgQ2FuIFRvcnBlZG8gWW91ciBIb21lJ3MgU2VsbGluZyBQcmljZTwvcD5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPC9kaXY+XG5cbmBgYFxuKi9cblxuLnByb21vLWZlYXR1cmUge1xuXG4gID4gYSxcbiAgICBpbWcge1xuICAgIHdpZHRoOiByZW0tY2FsYyg4NCk7XG4gICAgaGVpZ2h0OiByZW0tY2FsYyg4NCk7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAkaW1nLW1hcmdpbjtcblxuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICB9XG5cbiAgPiAucHJvbW8tZmVhdHVyZS10ZXh0IHtcblxuICAgID4gLnByb21vLWZlYXR1cmUtb3ZlcmxpbmUge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRibG9jay1mbHVzaDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbWVkaXVtO1xuICAgICAgZm9udC1zaXplOiAkdGV4dC1zbWFsbGVyO1xuXG4gICAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAgIG1hcmdpbi10b3A6ICRibG9jay1ub3JtYWw7XG4gICAgICAgIGZvbnQtc2l6ZTogJHRleHQtc21hbGw7XG4gICAgICB9XG5cbiAgICAgID4gYSB7XG4gICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiAucHJvbW8tZmVhdHVyZS1sZWFkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBmb250LXNpemU6ICRoZWFkaW5nLW5vcm1hbDtcblxuICAgICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICBmb250LXNpemU6ICRoZWFkaW5nLWxhcmdlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG5cbi8qIFN0eWxpbmcgZm9yIHByb21vLWZlYXR1cmUgb3ZlcmxheSAqL1xuLnNvZnQtYmxhY2stb3ZlcmxheSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjYsIDI2LCAyNiwgMC41KTtcblxuICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjYsIDI2LCAyNiwgMC4zKTtcbiAgfVxuXG4gIGgzIHtcbiAgICBjb2xvcjogJHdoaXRlO1xuICB9XG59XG5cbi5wcm9tby1vdmVybGF5IHtcbiAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG59XG4iLCIucmV2ZWFsLW1vZGFsIHtcbiAgICB6LWluZGV4OiAxMDAwMDAyO1xuXG4gICAgLnNsaWRlLW5hdiB7XG4gICAgICAgIHotaW5kZXg6IDEwMDAwMDM7XG4gICAgfVxuXG4gICAgcG9zaXRpb246IGZpeGVkO1xuXG4gICAgJi5zY3JvbGxhYmxlIHtcbiAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgIH1cbn1cbi5yZXZlYWwtbW9kYWwuZnVsbCB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHRvcDogMCAhaW1wb3J0YW50O1xuICAgIGJvdHRvbTogMDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG5cbiAgICAucmV2ZWFsLW1vZGFsLWNvbnRlbnQge1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICBAaW5jbHVkZSBmcm9tKGJwLXNtYWxsKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bSkge1xuICAgICAgICAgICAgd2lkdGg6IDgwJTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBmcm9tKGJwLWxhcmdlKSB7XG4gICAgICAgICAgICB3aWR0aDogNjAlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucmV2ZWFsLW1vZGFsLWJnIHtcbiAgICB6LWluZGV4OiAxMDAwMDAxICFpbXBvcnRhbnQ7XG59XG5cbmJvZHkubW9kYWwtb3BlbiB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFBob3RvIEdhbGxlcnkgbW9kYWxcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ucmV2ZWFsLW1vZGFsLmpzLXNsaWRlc2hvdy1tb2RhbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLnJldmVhbC1tb2RhbC1jb250ZW50IHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICAgIEBpbmNsdWRlIGZsZXhib3g7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG4gICAgICAgIEBpbmNsdWRlIGp1c3RpZnktY29udGVudChjZW50ZXIpO1xuXG4gICAgICAgIEBpbmNsdWRlIGZyb20oYnAtc21hbGwpIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGZyb20oYnAtbWVkaXVtKSB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBmcm9tKGJwLWxhcmdlKSB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIC5zbGlkZXNob3ctc2xpZGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwdmg7XG4gICAgICAgIH1cblxuICAgICAgICAuanMtc2xpZGVzaG93LWhvb2suZmxleC1yb3cge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDB2dztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jbG9zZS1yZXZlYWwtbW9kYWwge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwLjUpO1xuICAgICAgICBoZWlnaHQ6IDM1cHg7XG4gICAgICAgIHdpZHRoOiAzNXB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgdG9wOiAxcmVtO1xuICAgICAgICByaWdodDogMXJlbTtcbiAgICB9XG5cbiAgICAuc2xpZGVzaG93LWltYWdlLWJveCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiAgICB9XG5cbiAgICAuYm9yZGVyIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgIH1cblxuICAgIC5qcy1zbGlkZXNob3ctdGFyZ2V0IHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIC5zbGlkZXNob3ctaW1hZ2Uge1xuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMTAwdnc7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bSkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuanMtZ2FsbGVyeS1wYWdpbmF0aW9uIHtcbiAgICAgICAgY29sb3I6ICRpcm9uICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgLmpzLWRlbGltaXRlciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJGJsb2NrLXRpZ2h0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkYmxvY2stdGlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY29sbGFwc2libGUtaGFuZGxlLXdyYXBwZXIge1xuICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNSk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbS1jYWxjKDUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnRleHQtY2FwdGlvbiB7XG4gICAgICAgICAgICBjb2xvcjogJGFsdW1pbnVtICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAudGV4dC1jYXB0aW9uK3NwYW4ge1xuICAgICAgICAgICAgY29sb3I6ICRpcm9uICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLmV4cGFuZGVkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMXJlbSAwIDFyZW07XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5jb2xsYXBzaWJsZS1jb250ZW50LXdyYXBwZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNSk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAwICRibG9jay1sb29zZXIgMCAkYmxvY2stbm9ybWFsO1xuXG4gICAgICAgICYuY29sbGFwc2VkIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2xpZGVzaG93LWNhcHRpb24tYm94IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHdpZHRoOiAxMDB2dztcblxuICAgICAgICBwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgICYuanMtY2FwdGlvbi1jdXJyZW50e1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gT3ZlcnJpZGUgc2xpY2sgc2xpZGVyXG4gICAgLnNsaWNrLXNsaWRlIHtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwdmg7XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRG9jdG9ycyBtb2RhbFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5yZXZlYWwtbW9kYWwuZG9jdG9ycy1tb2RhbCB7XG4gICAgJGhlYWRpbmctaGVpZ2h0OiA1MHB4O1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgIGRpc3BsYXk6IC1tb3otZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIHRvcDogMCAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bSkge1xuICAgICAgICBoZWlnaHQ6IGluaXRpYWw7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBib3R0b206IGluaXRpYWwgIWltcG9ydGFudDtcbiAgICAgICAgdG9wOiAxMnZoICFpbXBvcnRhbnQ7XG4gICAgICAgIG1heC13aWR0aDogNzAwcHg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDgwdmg7XG4gICAgfVxuICAgID4gZGl2OmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzMxNjNBRjtcbiAgICAgICAgei1pbmRleDogMTAwMTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAwLjhyZW0gMDtcbiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgID4gaDMsIC51c24tbW9kYWwtdGl0bGUge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IGluaXRpYWw7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICAgICAgLmNsb3NlLXJldmVhbC1tb2RhbCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgICAgIHRvcDogLjlyZW07XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmpzLW1vZGFsLWNvbnRlbnQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgwLDAsMCwuNCk7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JvdygxKVxuXG5cbiAgICAgICAgQGluY2x1ZGUgZnJvbShicC1tZWRpdW0pe1xuICAgICAgICAgICAgbWF4LWhlaWdodDogNzF2aDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmW2RhdGEtanMtaWQ9XCJtYXAtbW9kYWxcIl0ge1xuICAgICAgICAubGVhZmxldC1jb250YWluZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgZnJvbShicC1zbWFsbCkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjAwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bSkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMzAwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4vLyBkb2N0b3IuY29tIG1vZGFsIGJhY2tncm91bmQgb3ZlcnJpZGVcbiNkb2NtX292ZXJsYXkge1xuICAgIG9wYWNpdHk6IGluaXRpYWwgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNDUpICFpbXBvcnRhbnQ7XG59XG5cbi5yZXZlYWwtbW9kYWwuYWR2aXNvcnMtbW9kYWwge1xuICAgIEBleHRlbmQgLnJldmVhbC1tb2RhbC5kb2N0b3JzLW1vZGFsO1xuXG4gICAgLy8gSUUxMSBkb2Vucyd0IGxpa2UgaXQgd2hlbiB3ZSBzcGVjaWZ5IGJvdHRvbSBhbmQgdG9wIGF0IHRoZSBzYW1lIHRpbWVcbiAgICBib3R0b206IGF1dG8gIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIGZyb20oYnAtbWVkaXVtKSB7XG4gICAgICAgIG1heC13aWR0aDogNzc2cHg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDczMHB4O1xuICAgIH1cblxuICAgIC5qcy1tb2RhbC1jb250ZW50IHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbn1cblxuLnJldmVhbC1tb2RhbFtkYXRhLWpzLWlkPVwiY29tcGFzcy1tb2RhbFwiXSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgQGluY2x1ZGUgZnJvbShicC1zbWFsbCkge1xuICAgICAgICB0b3A6IDAgIWltcG9ydGFudDtcbiAgICAgICAgYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIEBpbmNsdWRlIGZyb20oYnAtbWVkaXVtKSB7XG4gICAgICAgIGJvdHRvbTogaW5pdGlhbCAhaW1wb3J0YW50O1xuICAgICAgICB0b3A6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIG1heC13aWR0aDogNzAwcHg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDgwJTtcbiAgICB9XG59XG5cbi5yZXZlYWwtbW9kYWwuc2F2ZS10aGlzLXNjaG9vbC1jYWxsLXRvLWFjdGlvbi1tb2RhbCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgQGluY2x1ZGUgZnJvbShicC1zbWFsbCkge1xuICAgICAgICB0b3A6IDAgIWltcG9ydGFudDtcbiAgICAgICAgYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIEBpbmNsdWRlIGZyb20oYnAtbWVkaXVtKSB7XG4gICAgICAgIGJvdHRvbTogaW5pdGlhbCAhaW1wb3J0YW50O1xuICAgICAgICB0b3A6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIG1heC13aWR0aDogNjAwcHg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDgwJTtcbiAgICB9XG59XG5cbi5yZXZlYWwtbW9kYWwucHJvbW8tbW9kYWwge1xuICAgICRub3JtYWw6IHJlbS1jYWxjKDE1KTtcbiAgICAkbG9vc2VyOiByZW0tY2FsYygzMCk7XG5cbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIEBpbmNsdWRlIHRvKGJwLW1lZGl1bSkge1xuICAgICAgICBwYWRkaW5nOiAkbm9ybWFsO1xuXG4gICAgICAgIG1pbi1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIHdpZHRoOiA5MHZ3ICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0b3A6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcblxuICAgICAgICAubW9kYWwtaGVhZGVyIHtcbiAgICAgICAgICAgIC8qIENvbGxhcHNlIHRoZSBoZWFkZXIgc28gdGhhdCB0aGUgYmFja2dyb3VuZCBmaWxscyB0aGUgbWFyZ2luLFxuICAgICAgICAgICAgICAgdGhlbiBwYWQgdGhlIGhlYWRlciBjb250ZW50LiBTZXQgYSBwb3NpdGl2ZSBib3R0b20gYmxvY2sgbWFyZ2luXG4gICAgICAgICAgICAgICB0byBzZXBhcmF0ZSB0aGUgaGVhZGVyIGZyb20gdGhlIG1haW4gbW9kYWwgY29udGVudC5cbiAgICAgICAgICAgICovXG4gICAgICAgICAgICBwYWRkaW5nOiAkbm9ybWFsICRub3JtYWwgMCAkbm9ybWFsO1xuICAgICAgICAgICAgbWFyZ2luOiAtI3skbm9ybWFsfSAtI3skbm9ybWFsfSAkbm9ybWFsIC0jeyRub3JtYWx9O1xuXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc21va2UtZ3JheTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkaXJvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jbG9zZS1yZXZlYWwtbW9kYWwge1xuICAgICAgICAgICAgdG9wOiAkbm9ybWFsICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bSkge1xuICAgICAgICBwYWRkaW5nOiAkbG9vc2VyO1xuXG4gICAgICAgIG1heC13aWR0aDogNjAwcHg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDgwJTtcblxuICAgICAgICBib3R0b206IGluaXRpYWwgIWltcG9ydGFudDtcbiAgICAgICAgdG9wOiA1MCUgIWltcG9ydGFudDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIH1cbn1cblxuLy8gU2lnbnVwIG1vZGFsXG4ucmV2ZWFsLW1vZGFsLnNpZ251cC1tb2RhbCB7XG4gICAgJGhlYWRpbmctaGVpZ2h0OiA1MHB4O1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBAaW5jbHVkZSB0byhicC1tZWRpdW0pIHtcbiAgICAgICAgbWluLWhlaWdodDogcmVtLWNhbGMoMjUwKTtcbiAgICAgICAgd2lkdGg6OTAlICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1JTtcbiAgICAgICAgdG9wOiAxNSU7XG5cbiAgICAgICAgLnNpZ251cC1tb2RhbC1mb3JtLWJhciB7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygyNSkgcmVtLWNhbGMoMTUpO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMHB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIGZyb20oYnAtbWVkaXVtKSB7XG4gICAgICAgIGJvdHRvbTogaW5pdGlhbCAhaW1wb3J0YW50O1xuICAgICAgICB0b3A6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIG1heC13aWR0aDogNzAwcHg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDgwJTtcbiAgICAgICAgLnNpZ251cC1tb2RhbC1mb3JtLWJhciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogaW5pdGlhbDtcbiAgICAgICAgICAgIGxlZnQ6IGluaXRpYWw7XG4gICAgICAgICAgICByaWdodDogaW5pdGlhbDtcbiAgICAgICAgICAgIGJvdHRvbTogaW5pdGlhbDtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDMwKTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMTVweDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLTE1cHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgPiBkaXY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLTFweDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGhlaWdodDogJGhlYWRpbmctaGVpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMzE2M0FGO1xuICAgICAgICB6LWluZGV4OiAxMDAxO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgID4gaDIge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6NTBweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB9XG4gICAgICAgIC5jbG9zZS1yZXZlYWwtbW9kYWwge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICB0b3A6IC45cmVtO1xuICAgICAgICAgICAgei1pbmRleDogMTAwMDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmpzLW1vZGFsLWNvbnRlbnQge1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIEBpbmNsdWRlIGJldHdlZW4oYnAtc21hbGwsIGJwLW1lZGl1bSl7XG4gICAgICAgICAgICAvL3BhZGRpbmctdG9wOiByZW0tY2FsYygzMCk7XG4gICAgICAgICAgICAvL3BhZGRpbmctbGVmdDogcmVtLWNhbGMoMTUpO1xuICAgICAgICAgICAgLy9wYWRkaW5nLXJpZ2h0OiByZW0tY2FsYygxNSk7XG4gICAgICAgICAgICAuc2lnbnVwX3NtYWxsX2hlYWRlcntcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc21va2UtZ3JheTtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRnYWluc2Jvcm87XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbS1jYWxjKDApO1xuICAgICAgICAgICAgICAgIC8vIG1hcmdpbi1ib3R0b206IDEwcHggIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBibG9jaygndGlnaHQnLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAuc2lnbnVwX3NtYWxsX3VzbmV3c19pY29ue1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6cmVtLWNhbGMoMjUpO1xuICAgICAgICAgICAgICAgICAgICB0b3A6cmVtLWNhbGMoLTMpO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuc2lnbnVwX3NtYWxsX2NpcmN1bGFyX2VtYWlsX2ljb257XG4gICAgICAgICAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDkwKTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDkwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGZyb20oYnAtbWVkaXVtKXtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYygzMCk7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbS1jYWxjKDE1KTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKDE1KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuc2lnbnVwLW1vZGFsLWZvcm0tYmFyIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2Y0ZjRmNDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjZGRkO1xuICAgIH1cblxufVxuXG4ucmV2ZWFsLW1vZGFsLm5ld3NsZXR0ZXItc2lnbnVwLW1vZGFsIHtcbiAgICAkaGVhZGluZy1oZWlnaHQ6IDUwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG5cbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuXG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgLy8gV291bGQgdXNlIGF1dG8sIGJ1dCBJUGhvbmVzIGRvbid0IGxpa2UgaXRcbiAgICAvLyBzYXlzIGF1dG8gaXMgYW4gaW52YWxpZCB2YWx1ZVxuICAgIG1pbi1oZWlnaHQ6IDAgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIHRvKGJwLW1lZGl1bSkge1xuICAgICAgICB3aWR0aDogOTAlO1xuICAgICAgICBib3R0b206IDUlICFpbXBvcnRhbnQ7XG4gICAgICAgIHRvcDogYXV0byAhaW1wb3J0YW50O1xuXG4gICAgICAgIC5zaWdudXAtbW9kYWwtdGl0bGUtYmFyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzbW9rZS1ncmF5O1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDEwKTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0tY2FsYygxMCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdhaW5zYm9ybztcbiAgICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bSkge1xuICAgICAgICBib3R0b206IGluaXRpYWwgIWltcG9ydGFudDtcbiAgICAgICAgdG9wOiA1MCUgIWltcG9ydGFudDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICBtYXgtd2lkdGg6IDYwMHB4O1xuXG4gICAgICAgIC5zaWdudXAtbW9kYWwtZm9ybS1iYXIge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDMwKTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0tY2FsYygzMCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjRmNGY0O1xuICAgICAgICB9XG5cbiAgICAgICAgLnNpZ251cC1tb2RhbC10aXRsZS1iYXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoMCk7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNsb3NlLXJldmVhbC1tb2RhbCB7XG4gICAgICAgICAgICB0b3A6IC45cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNpZ251cC1tb2RhbC1mb3JtLWJhciB7XG4gICAgICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICAgICAgICBsZWZ0OiBpbml0aWFsO1xuICAgICAgICByaWdodDogaW5pdGlhbDtcbiAgICAgICAgYm90dG9tOiBpbml0aWFsO1xuICAgIH1cblxuICAgIC5jbG9zZS1yZXZlYWwtbW9kYWwge1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICB9XG59XG5cblxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gSGlnaCBTY2hvb2xzIE1ldGhvZG9sb2d5IG1vZGFsXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLnJldmVhbC1tb2RhbCB7XG4gICAgJi5ocy1tZXRob2RvbG9neS1tb2RhbCxcbiAgICAmLm9lLW1ldGhvZG9sb2d5LW1vZGFsIHtcbiAgICAgICAgJGhlYWRpbmctaGVpZ2h0OiA1MHB4O1xuICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBAaW5jbHVkZSBmcm9tKGJwLXNtYWxsKSB7XG4gICAgICAgICAgICB0b3A6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGZyb20oYnAtbWVkaXVtKSB7XG4gICAgICAgICAgICBib3R0b206IGluaXRpYWwgIWltcG9ydGFudDtcbiAgICAgICAgICAgIHRvcDogNTAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDcwMHB4O1xuICAgICAgICAgICAgbWF4LWhlaWdodDogODAlO1xuICAgICAgICB9XG4gICAgICAgID4gZGl2OmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMzMTYzQUY7XG4gICAgICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgID4gaDMsIC51c24tbW9kYWwtdGl0bGUge1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OjUwcHg7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuY2xvc2UtcmV2ZWFsLW1vZGFsIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICB0b3A6IC45cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5qcy1tb2RhbC1jb250ZW50IHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5ocy1tZXRob2RvbG9neS1tb2RhbCxcbi5vZS1tZXRob2RvbG9neS1tb2RhbCB7XG4gICAgJl9fYWJvdXQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3O1xuICAgICAgICBwYWRkaW5nOiAyMHB4IDEwcHg7XG4gICAgfVxufVxuXG4ub2UtbWV0aG9kb2xvZ3ktbW9kYWwge1xuICAgICZfX2xlZ2VuZCB7XG4gICAgICAgIHBhZGRpbmc6IDVweCAzMHB4O1xuXG4gICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmX19jaGFydCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0byhicC1tZWRpdW0pIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bSkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmhzLW1ldGhvZG9sb2d5LW1vZGFsIHtcbiAgICAmX19jaGFydCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjREREREREXG4gICAgfVxuXG4gICAgJl9faG93IHtcbiAgICAgICAgcGFkZGluZzogMjBweCAxMHB4O1xuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3O1xuICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgIH1cblxuICAgICZfX2xpbmU6YmVmb3JlLFxuICAgICZfX2xpbmU6YWZ0ZXIsXG4gICAgJl9fbGluZV9faW50ZXJuYWwtaW5kaWNhdG9yczpiZWZvcmUsXG4gICAgJl9fbGluZV9faW50ZXJuYWwtaW5kaWNhdG9yczphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDEycHg7XG4gICAgICAgIGhlaWdodDogMTJweDtcbiAgICAgICAgbGVmdDogLTNweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICRibHVlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgfVxuXG4gICAgJl9fbGluZSB7XG4gICAgICAgIC1tcy1mbGV4OiAwIDAgNnB4O1xuICAgICAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xuICAgICAgICAtd2Via2l0LWZsZXg6IDAgMCA2cHg7XG4gICAgICAgIGZsZXg6IDAgMCA2cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMzBweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgfVxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saW5lX19pbnRlcm5hbC1pbmRpY2F0b3JzOmJlZm9yZSB7XG4gICAgICAgIHRvcDogMzMlO1xuICAgIH1cbiAgICAmX19saW5lX19pbnRlcm5hbC1pbmRpY2F0b3JzOmFmdGVyIHtcbiAgICAgICAgdG9wOiA2NiU7XG4gICAgfVxufVxuXG4udG9vbHRpcC1uYXYge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6IDEwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgIC5kcm9wZG93bi1hcnJvdyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXRyaWFuZ2xlKCdkb3duJywgMTJweCwgIzg4OCwgdHJ1ZSk7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDQwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAtMTVweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBGb3JtIG1vZGFsIHdpdGggYmx1ZSBoZWFkaW5nLCByZWQgYnV0dG9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLnJldmVhbC1tb2RhbC51c24tbW9kYWwge1xuICAgIEBleHRlbmQgLnJldmVhbC1tb2RhbC5kb2N0b3JzLW1vZGFsO1xufVxuXG4ucmV2ZWFsLW1vZGFsLmJjLW5vdGVzIHtcbiAgICBAZXh0ZW5kIC5yZXZlYWwtbW9kYWwuZG9jdG9ycy1tb2RhbDtcbn1cblxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQmVzdCBDb2xsZWdlcyBTdGFuZGFyZCBNb2RhbCAoc21hbGxlciBvbiBtb2JpbGUpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4udXNuLWJjLW1vZGFsIHtcblxuICAgICRndXR0ZXItYmlnOiByZW0tY2FsYygzMCk7XG4gICAgJGd1dHRlci1zbTogcmVtLWNhbGMoMTUpO1xuXG4gICAgLy8gV2UgaGF2ZSB0byBvdmVycmlkZSBhIGRlZmF1bHQgIWltcG9ydGFudCBzdHlsZSBoZXJlLi4uIHVnaFxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgICAgICYucmV2ZWFsLW1vZGFsIHtcbiAgICAgICAgICAgIHRvcDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmpzLW1vZGFsLWNvbnRlbnQge1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG5cbiAgICAgICAgJiA+IGRpdiA+IGRpdiB7XG4gICAgICAgICAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJGd1dHRlci1iaWc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2lnbnVwLW1vZGFsLWZvcm0tYmFyIHtcbiAgICAgICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2Y0ZjRmNDtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNEREREREQ7XG4gICAgICAgICAgICBjb2xvcjogIzMzMzMzMztcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0xcHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5qcy1uZXdzbGV0dGVyLXNpZ251cC1mb3JtIHtcbiAgICAgICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGd1dHRlci1zbTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRndXR0ZXItc207XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIC5tb2RhbC1jb250ZW50IHtcbiAgICAgICAgcGFkZGluZy10b3A6ICRndXR0ZXItYmlnO1xuICAgIH1cblxuICAgIC5jbG9zZS1yZXZlYWwtbW9kYWwge1xuICAgICAgICB6LWluZGV4OiAxMDA7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMzApO1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICB0b3A6IDAuNzg1cmVtO1xuICAgICAgICByaWdodDogMS4zNzVyZW07XG5cbiAgICAgICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICAgICAgICAgIHRvcDogMC41cmVtO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICByaWdodDogMC42MjVyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubW9kYWwtaGVhZGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNtb2tlLWdyYXk7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkZ3V0dGVyLXNtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGlyb247XG4gICAgfVxuXG4gICAgLm1vZGFsLWhlYWRlciArIC5mbGV4LW1lZGl1bS05IHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkZ3V0dGVyLXNtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkZ3V0dGVyLXNtO1xuXG4gICAgICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGd1dHRlci1iaWc7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkZ3V0dGVyLWJpZztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIC5tb2RhbC1mb290ZXIge1xuICAgIC8vICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgLy8gICAgIGJvdHRvbTogcmVtLWNhbGMoMTApO1xuICAgIC8vICAgICB3aWR0aDogMTAwJTtcbiAgICAvLyB9XG5cbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xuICAgICAgICBtaW4taGVpZ2h0OiAzMHZoO1xuICAgICAgICBoZWlnaHQ6IDI4dmg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDQwdmg7XG4gICAgICAgIHdpZHRoOiA5MHZ3ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbjogNjh2aCA1dncgMzB2aCA1dnc7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYm90dG9tOiAwcHg7XG5cbiAgICAgICAgaDEge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogZW0tY2FsYygzNjApKXsgLy9icC1zbWFsbC13aWRlclxuICAgICAgICBoZWlnaHQ6IDM1dmg7XG4gICAgICAgIG1hcmdpbi10b3A6IDYwdmg7XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogZW0tY2FsYyg0MTIpKSBhbmQgKG1heC13aWR0aDogZW0tY2FsYyg2MzkpKSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDIwdmg7XG4gICAgICAgIGhlaWdodDogMjZ2aDtcbiAgICAgICAgbWFyZ2luLXRvcDogNzJ2aDtcbiAgICB9XG59XG5cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEJlc3QgQ29sbGVnZXMgQ29tcGFyZSBcIkFkZCBTY2hvb2xzXCIgbW9kYWxcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uYWRkLXNjaG9vbHMtY29tcGFyZS1tb2RhbCB7XG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgLmNsb3NlLXJldmVhbC1tb2RhbCB7XG4gICAgICAgIC8vIGZvciBJRTExXG4gICAgICAgIHotaW5kZXg6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgLmpzLW1vZGFsLWNvbnRlbnQge1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgQGluY2x1ZGUgZnJvbShicC1zbWFsbCkge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bSkge1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjY29tcGFyZS1zY2hvb2xzLWJ1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJldHdlZW4oYnAtc21hbGwsIGJwLW1lZGl1bSkge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnJldmVhbC1tb2RhbCB7XG4gICAgICAgIEBpbmNsdWRlIGZyb20oYnAtbWVkaXVtKSB7XG4gICAgICAgICAgICBib3R0b206IDE1dmghaW1wb3J0YW50O1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEJlc3QgQ29sbGVnZXMgQ29tcGFzcyBcIlNhdmUgU2Nob29sc1wiICBtb2RhbFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5zYXZlLXNjaG9vbHMtbW9kYWwge1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDUzMHB4ICFpbXBvcnRhbnQ7XG5cbiAgICAuY2xvc2UtcmV2ZWFsLW1vZGFsIHtcbiAgICAgICAgLy8gZm9yIElFMTFcbiAgICAgICAgei1pbmRleDogaW5oZXJpdDtcbiAgICB9XG5cbiAgICAuanMtbW9kYWwtY29udGVudCB7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG8gIWltcG9ydGFudDtcblxuICAgICAgICBAaW5jbHVkZSBmcm9tKGJwLXNtYWxsKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGZyb20oYnAtbWVkaXVtKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgICAgIC5idXR0b24tc2VjdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgbWluLXdpZHRoOiAxMDB2dztcbiAgICB9XG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAgIC5tb2RhbC1ib3R0b20tcm93IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yZW1vdmUtc2Nob29sLXRleHQge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuc3RhdHVzLWJ1dHRvbi1yb3cge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleC1yb3c7XG4gICAgICAgIH1cblxuICAgICAgICAuYnV0dG9uLXNlY3Rpb24ge1xuICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSwgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDIuNXB4IDAgMi41cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBCZXN0IENvbGxlZ2VzIChDb21wYXNzKSBDb21wYXJlIFwiQWRkIE1ham9yc1wiIG1vZGFsXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLmNvbXBhcmUtbWFqb3JzLW1vZGFsIHtcbiAgICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bSkge1xuICAgICAgICBtYXgtd2lkdGg6IDUzMHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuIiwiLypkb2Ncbi0tLVxudGl0bGU6IFN1cGVyaGVyb1xubmFtZTogYS1zdXBlcmhlcm9cbmNhdGVnb3J5OiBIZXJvIFVuaXRzIC0gU3VwZXJoZXJvXG5zZWxlY3RvcnM6XG4gICAgLSAuc3VwZXJoZXJvXG5zZWxlY3Rvcl90eXBlOiBjb21wb25lbnRcbnRlbXBsYXRlOlxuICAgIGJhY2tncm91bmRfaW1hZ2U6XG4gICAgICAgIHN1cGVyaGVyb19tZWRpdW06IGh0dHA6Ly93d3ctdWF0OC51c25ld3MuY29tL2RpbXM0L1VTTkVXUy9kNjdhOWZhLzIxNDc0ODM2NDcvdGh1bWJuYWlsLzg1MHg0ODAlNUUvcXVhbGl0eS84NS8/dXJsPSUyRmNtc21lZGlhJTJGYTglMkY1YiUyRjQ0Y2E3YjUwNGEwMTg2MGUxZjY1NTRkOGM4ODElMkZmZS1kYS0wNzEyMTdhbmdlci01NTEwNGV0anBnLWRlc2lnbi5qcGdcbiAgICAgICAgc3VwZXJoZXJvX21lZGl1bV9wbHVzOiBodHRwOi8vd3d3LXVhdDgudXNuZXdzLmNvbS9kaW1zNC9VU05FV1MvZjRlZjM1OC8yMTQ3NDgzNjQ3L3RodW1ibmFpbC8xMDI0eDQ4MCU1RS9xdWFsaXR5Lzg1Lz91cmw9JTJGY21zbWVkaWElMkZhOCUyRjViJTJGNDRjYTdiNTA0YTAxODYwZTFmNjU1NGQ4Yzg4MSUyRmZlLWRhLTA3MTIxN2FuZ2VyLTU1MTA0ZXRqcGctZGVzaWduLmpwZ1xuICAgICAgICBzdXBlcmhlcm9fbGFyZ2U6IGh0dHA6Ly93d3ctdWF0OC51c25ld3MuY29tL2RpbXM0L1VTTkVXUy9lNDMwYWYwLzIxNDc0ODM2NDcvdGh1bWJuYWlsLzEyODB4NDgwJTVFL3F1YWxpdHkvODUvP3VybD0lMkZjbXNtZWRpYSUyRmE4JTJGNWIlMkY0NGNhN2I1MDRhMDE4NjBlMWY2NTU0ZDhjODgxJTJGZmUtZGEtMDcxMjE3YW5nZXItNTUxMDRldGpwZy1kZXNpZ24uanBnXG4gICAgbGVmdF9jb250ZW50OlxuICAgICAgICAgIGhlYWRpbmc6IEludmVzdGluZyBhZHZpY2UgZm9yIGV2ZXJ5b25lXG4gICAgICAgICAgYm9keTpcbiAgICAgICAgICAtIFwiPHA+V2UgY29tYmluZSBtZWFuaW5nZnVsIGRhdGEgd2l0aCBleHBlcnQgYWR2aWNlIHRvIGhlbHAgeW91IG1ha2UgY29uZmlkZW50XG4gICAgICAgICAgICBmaW5hbmNpYWwgZGVjaXNpb25zLjwvcD5cIlxuICAgICAgICAgIC0gXCI8Zm9ybSBtZXRob2Q9XFxcImdldFxcXCIgYWN0aW9uPVxcXCIvaW52ZXN0aW5nL3N0b2Nrcy9zZWFyY2hcXFwiPlxcclxcbiAgPGRpdiBjbGFzcz1cXFwiZmxleC1yb3dcbiAgICAgICAgICAgIHNtYWxsLWNvbGxhcHNlIGZsZXgtdW5ncmlkXFxcIj5cXHJcXG4gICAgICA8ZGl2IGNsYXNzPVxcXCJmbGV4LXNtYWxsXFxcIj5cXHJcXG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgY2xhc3M9XFxcImJsb2NrLWZsdXNoIHNtYWxsXFxcIiB0eXBlPVxcXCJ0ZXh0XFxcIiBwbGFjZWhvbGRlcj1cXFwiTmFtZSBvciB0aWNrZXJcXFwiIG5hbWU9XFxcIm5hbWVcXFwiXG4gICAgICAgICAgICBkYXRhLWF1dG9jb21wbGV0ZT1cXFwic3RvY2tzXFxcIiBkYXRhLWF1dG9jb21wbGV0ZS1ocmVmPVxcXCIvaW52ZXN0aW5nL3N0b2Nrcy9fX1dJTERDQVJEX19cXFwiXG4gICAgICAgICAgICBhdXRvY29tcGxldGU9XFxcIm9mZlxcXCI+XFxyXFxuICAgICAgPC9kaXY+XFxyXFxuICAgICAgPGRpdj5cXHJcXG4gICAgICAgIDxidXR0b24gdHlwZT1cXFwic3VibWl0XFxcIlxuICAgICAgICAgICAgY2xhc3M9XFxcImJ1dHRvbiBzaGFkb3cgYWN0aW9uIHJhZGl1cyBzbWFsbCBwb3N0Zml4IGJsb2NrLWZsdXNoXFxcIj5cXHJcXG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVxcXCJzaG93LWZvci1tZWRpdW0tdXBcXFwiPlNlYXJjaDwvc3Bhbj5cXHJcXG4gICAgICAgICAgPHN2ZyBjbGFzcz1cXFwiaWNvblxuICAgICAgICAgICAgd2hpdGUgc2hvdy1mb3Itc21hbGwtb25seVxcXCI+PHVzZSB4bGluazpocmVmPVxcXCIvc3RhdGljL3Nwcml0ZXMvc3ZnL3Nwcml0ZS5zeW1ib2wuc3ZnI3NlYXJjaFxcXCJcbiAgICAgICAgICAgIC8+PC9zdmc+XFxyXFxuICAgICAgICA8L2J1dHRvbj5cXHJcXG4gICAgICA8L2Rpdj5cXHJcXG4gIDwvZGl2PlxcclxcbjwvZm9ybT5cXHJcXG48c2NyaXB0PlxcclxcblxuICAgICAgICAgICAgXFwgVVNOLnJlYWR5KCkudGhlbihmdW5jdGlvbigpIHtcXHJcXG4gICAgVVNOLkV2ZW50RGlzcGF0Y2hlci5pbnN0YW5jZS5kaXNwYXRjaGVyLnRyaWdnZXIoJ3N1bW1vbjpzZWFyY2g6YXV0b2NvbXBsZXRlJyxcbiAgICAgICAgICAgICdzdG9ja3MnKTtcXHJcXG4gIH0pO1xcclxcbjwvc2NyaXB0PlwiXG4gICAgICAgICAgLSAnJ1xuLS0tXG5cbj4qKlRPRE86KiogQWRkIG51bmp1Y2tzIG1hY3JvIGV4cGxhbmF0aW9uXG5cblRoZSBkZWZhdWx0IHN1cGVyaGVybyBpcyB0aGUgb25lIHlvdSB3b3VsZCBmaW5kIG9uIGEgcG9ydGFsIGhvbWVwYWdlLlxuVGhlIGRhdGEgY29tZXMgZnJvbSBGaXJlZmx5LlxuXG5IZWlnaHQgaXMgYXV0byB1bnRpbCBgbGFyZ2VgIHdoZXJlIGl0IGlzIDQ4MHB4LlxuUGFkZGluZyBpcyBzZXQgb25seSBvbiB0aGUgdG9wLlxuXG5UaGlzIHVzZXMgdGhlIGBzdXBlcmhlcm9CdWlsZGVyYCBtYWNyby5cblxuYGBgaHRtbF9leGFtcGxlXG57JSBpbmNsdWRlIFwidGVtcGxhdGVzL2NvbW1vbi9jb250YWluZXIvc3VwZXJoZXJvLm51bmpcIiAlfVxuYGBgXG4qL1xuXG4vKmRvY1xuLS0tXG50aXRsZTogU3VwZXJoZXJvIHdpdGggR3JhZGllbnRcbm5hbWU6IGItZ3JhZGllbnRcbmNhdGVnb3J5OiBIZXJvIFVuaXRzIC0gU3VwZXJoZXJvXG50ZW1wbGF0ZTpcbiAgICBzdXBlcmhlcm9fbWVkaXVtOiBodHRwOi8vd3d3LXVhdDUudXNuZXdzLmNvbS9kaW1zNC9VU05FV1MvOTM2NGY0Yy8yMTQ3NDgzNjQ3L3RodW1ibmFpbC84NTB4NDgwJTVFL3F1YWxpdHkvODUvP3VybD0lMkZjbXNtZWRpYSUyRmZiJTJGNjElMkYwNmRiNzBiMzQ3MGM4OWUzNGVkZjViY2RlYTIxJTJGYmMxNi11cnVndWF5LWNyb3AtZWRpdG9yaWFsLmpwZ1xuICAgIHN1cGVyaGVyb19tZWRpdW1fcGx1czogaHR0cDovL3d3dy11YXQ1LnVzbmV3cy5jb20vZGltczQvVVNORVdTLzBkMDQ1NzUvMjE0NzQ4MzY0Ny90aHVtYm5haWwvMTAyNHg0ODAlNUUvcXVhbGl0eS84NS8/dXJsPSUyRmNtc21lZGlhJTJGZmIlMkY2MSUyRjA2ZGI3MGIzNDcwYzg5ZTM0ZWRmNWJjZGVhMjElMkZiYzE2LXVydWd1YXktY3JvcC1lZGl0b3JpYWwuanBnXG4gICAgc3VwZXJoZXJvX2xhcmdlOiBodHRwOi8vd3d3LXVhdDUudXNuZXdzLmNvbS9kaW1zNC9VU05FV1MvNWUxYjY4Yy8yMTQ3NDgzNjQ3L3RodW1ibmFpbC8xMjgweDQ4MCU1RS9xdWFsaXR5Lzg1Lz91cmw9JTJGY21zbWVkaWElMkZmYiUyRjYxJTJGMDZkYjcwYjM0NzBjODllMzRlZGY1YmNkZWEyMSUyRmJjMTYtdXJ1Z3VheS1jcm9wLWVkaXRvcmlhbC5qcGdcbi0tLVxuXG5NYWtlIHVzZSBvZiB0aGUgYGdyYWRpZW50T3ZlcmxheWAgdmFyaWFibGUgYnkgcGFzc2luZyBpbiBhbiBhcnJheSB3aXRoIDIgdmFsdWVzLlxuVGhlICp0b3AqIGNvbG9yIGFuZCB0aGUgKmJvdCogY29sb3IuIFVzaW5nICoqcmdiYSoqIHdpbGwgYWxsb3cgZm9yIG9wYWNpdHkgZmxleGliaWxpdHkuXG5UaGUgZXhhbXBsZSBiZWxvdyB1c2VzIGBncmFkaWVudE92ZXJsYXk9WydyZ2JhKDAsMCwwLDAuOSknLCAncmdiYSgwLDAsMCwwKSddYC5cblxuYGBgaHRtbF9leGFtcGxlXG57JSBpbXBvcnQgXCJ0ZW1wbGF0ZXMvY29tbW9uL3N1cGVyaGVyby9idWlsZGVyLm51bmpcIiBhcyBwcm9maWxlICV9XG4gICAgeyUgY2FsbCBwcm9maWxlLnN1cGVyaGVyb0J1aWxkZXJcbiAgICAgICAgKFxuICAgICAgICAgICAgY29udGFpbmVyQ2xhc3Nlcz0nZ3JhZGllbnQnLFxuICAgICAgICAgICAgYmFja2dyb3VuZE1lZGl1bVVybD1zdXBlcmhlcm9fbWVkaXVtLFxuICAgICAgICAgICAgYmFja2dyb3VuZE1lZGl1bVBsdXNVcmw9c3VwZXJoZXJvX21lZGl1bV9wbHVzLFxuICAgICAgICAgICAgYmFja2dyb3VuZExhcmdlVXJsPXN1cGVyaGVyb19sYXJnZSxcbiAgICAgICAgICAgIGdyYWRpZW50T3ZlcmxheT1bJ3JnYmEoMCwwLDAsMC45KScsICdyZ2JhKDAsMCwwLDApJ11cbiAgICAgICAgKVxuICAgICV9XG4gICAgeyUgZW5kY2FsbCAlfVxuYGBgXG5cbiovXG4vLyBkZWZhdWx0IHZhcmlhYmxlc1xuJHN1cGVyaGVyby1iZy1jb2xvcjogJGJsdWUtZGFyaztcbiRzdXBlcmhlcm8tcGFkZGluZzogMzJweDtcblxuLy8gdmFyaWJsZXMgZm9yIGxhcmdlXG4kc3VwZXJoZXJvLWhlaWdodC1mb3ItbGFyZ2U6IDQ4MHB4O1xuJHN1cGVyaGVyby1wYWRkaW5nLWZvci1sYXJnZTogNThweDtcblxuLnN1cGVyaGVybyB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDIwMHB4O1xuICAgIHBhZGRpbmc6ICRzdXBlcmhlcm8tcGFkZGluZyAwIDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHN1cGVyaGVyby1iZy1jb2xvcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bSkge1xuICAgICAgICBtaW4taGVpZ2h0OiAzODBweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmcm9tKGJwLWxhcmdlKSB7XG4gICAgICAgIGhlaWdodDogJHN1cGVyaGVyby1oZWlnaHQtZm9yLWxhcmdlO1xuICAgICAgICBwYWRkaW5nOiAkc3VwZXJoZXJvLXBhZGRpbmctZm9yLWxhcmdlIDA7XG4gICAgfVxuXG4gICAgJi5ncmFkaWVudC1iZyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxMTMxNWU7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsICMzOTU2OGEsICMxMTMxNWUpO1xuICAgIH1cblxuICAgICYubm8tbWluLWhlaWdodCB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi8vYmVzdC1ob3NwaXRhbHMgc2lkZWNraWNrXG4uc2lkZWtpY2stY29udGVudCB7XG4gICAgLnJhZGlvLXRhYi10b2dnbGUge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNDMkMzQzM7XG4gICAgICAgID5kaXYge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI0Y5RjlGOTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0zLjVweDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjQzJDM0MzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzMzMztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYmV0d2VlbihicC1tZWRpdW0sIGJwLW1lZGl1bS13aWRlcil7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuZm9ybS1jb250cm9sLWluZGljYXRvciB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMnB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuYWN0aXZle1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBib3JkZXItdHJpYW5nbGUoJ2Rvd24nLCAzMHB4LCAjQzJDM0MzLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMTFweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgICAgICByaWdodDogNTAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlci10cmlhbmdsZSgnZG93bicsIDMwcHgsICNGOUY5RjksIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xMHB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiA1MCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5yYWRpby10YWIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIGhlYWx0aC1jYXJlIHN1cGVyaGVyb1xuLmhlYWx0aC1jYXJlLXN1cGVyaGVyby1yaWdodCB7XG4gICAgLnNlYXJjaC10YWIge1xuICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgd2lkdGg6IDMwJTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAuc2VhcmNoLXRvZ2dsZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgPmRpdiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0zLjVweDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZGRkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzMzMztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuMTI0cmVtO1xuICAgICAgICAgICAgICAgIC5mb3JtLWNvbnRyb2wtaW5kaWNhdG9yIHtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAuMjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5hY3RpdmV7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXRyaWFuZ2xlKCdkb3duJywgMzBweCwgI2ZmZiwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTEwcHg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDUwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNFQ0VDRUM7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgNXB4IDAgIzY5Njk2OTtcbiAgICAtbW96LWJveC1zaGFkb3c6IDAgMCA1cHggMCAjNjk2OTY5O1xuICAgIGJveC1zaGFkb3c6IDAgMCA1cHggMCAjNjk2OTY5O1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vXG4vLyBCQUNLR1JPVU5EIElNQUdFIEhBTkRMSU5HXG4vLyBzZXJ2ZSB1cCB0aGUgYXBwcm9wcmlhdGUgc2l6ZWQgYmdcbi8vIHBlciBmb2xsb3dpbmcgYnJlYWtwb2ludHNcbi8vIFRPRE86IEFkZCBzbWFsbFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vXG5cbiVzdXBlcmhlcm8tYmcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbn1cblxuLnN1cGVyaGVyby1iZy1zbWFsbCB7XG4gICAgQGV4dGVuZCAlc3VwZXJoZXJvLWJnO1xuXG4gICAgQGluY2x1ZGUgdG8oYnAtbWVkaXVtKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGZyb20oYnAtbWVkaXVtKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4uc3VwZXJoZXJvLWJnLW1lZGl1bSB7XG4gICAgQGV4dGVuZCAlc3VwZXJoZXJvLWJnO1xuXG4gICAgQGluY2x1ZGUgYmV0d2VlbihicC1tZWRpdW0sIGJwLWxhcmdlKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGZyb20oYnAtbWVkaXVtLXdpZGVyKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4uc3VwZXJoZXJvLWJnLW1lZGl1bS1wbHVzIHtcbiAgICBAZXh0ZW5kICVzdXBlcmhlcm8tYmc7XG5cbiAgICBAaW5jbHVkZSBiZXR3ZWVuKGJwLW1lZGl1bS13aWRlciwgYnAtbGFyZ2UpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuXG4uc3VwZXJoZXJvLWJnLWxhcmdlIHtcbiAgICBAZXh0ZW5kICVzdXBlcmhlcm8tYmc7XG5cbiAgICBAaW5jbHVkZSBmcm9tKGJwLWxhcmdlKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbn1cblxuLnN1cGVyaGVyby1iZy1wYXJhbGxheCB7XG4gICAgQGV4dGVuZCAlc3VwZXJoZXJvLWJnO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAvLyBPcmlnaW5hbCAuYmFja2dyb3VuZC1wb3NpdGlvbiBjbGFzc2VzIGluIF9sYXlvdXRcbiAgICAmLmJhY2tncm91bmRfcG9zaXRpb25fdG9wX2NlbnRlciB7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjZW50ZXI7XG4gICAgfVxuXG4gICAgJi5iYWNrZ3JvdW5kX3Bvc2l0aW9uX2JvdHRvbV9jZW50ZXIge1xuICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogYm90dG9tIGNlbnRlcjtcbiAgICB9XG59XG5cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vL1xuLy8gSU1QT1JUQU5UIEZPUiBMQVlPVVRcbi8vIDEuIFRoaXMgZ2V0cyB0aGUgdGV4dCBhYm92ZSB0aGUgYmFja2dyb3VuZCBpbWFnZXNcbi8vIDIuIEluIGxhcmdlLCBzaW5jZSB0aGUgaGVpZ2h0IGlzIGhlaWdodCBtaW51cyB0b3AgcGFkZGluZy4uLlxuLy8gICAgeW91IGNhbiBhcHBseSBmbGV4Ym94IHZlcnRpY2FsIHBvc2l0aW9uIHRvIGNvbnRlbnRcbi8vICAgIChhcyB3ZWxsIGFzIGhvcml6b250YWwpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy9cbi5zdXBlcmhlcm8tY29udGVudC1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBAaW5jbHVkZSBmcm9tKGJwLWxhcmdlKSB7XG4gICAgICAgIGhlaWdodDogJHN1cGVyaGVyby1oZWlnaHQtZm9yLWxhcmdlIC0gJHN1cGVyaGVyby1wYWRkaW5nLWZvci1sYXJnZTtcbiAgICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy9cbi8vIEFsbG93IGZvciBzYW1lIHN1cGVyaGVybyBmdW5jdGlvbmFsaXR5LCBqdXN0IGNvbnRhaW5lZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vXG4uc3VwZXJoZXJvLWNvbnRhaW5lZCB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDIwcHg7XG4gICAgcGFkZGluZy10b3A6IDIwcHg7XG5cbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgcmVtLWNhbGMoNSkgMCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWJsdWU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZnJvbShicC1tZWRpdW0pIHtcbiAgICAgICAgbWluLWhlaWdodDogMzIwcHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA4MHB4O1xuICAgICAgICBwYWRkaW5nLXRvcDogODBweDtcbiAgICAgICAgJi50aWdodCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNDBweDtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiA0MHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZnJvbShicC1sYXJnZSkge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIG1heC13aWR0aDogNjAuNjI1cmVtO1xuICAgICAgICBtYXJnaW46IDMwcHggYXV0bztcblxuICAgICAgICAuc3VwZXJoZXJvLWNvbnRlbnQtY29udGFpbmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubm8tbWluLWhlaWdodCB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICB9XG59XG5cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vL1xuLy8gQ1VTVE9NIEJPRFlcbi8vIFRoZSBib2R5IGlzIHRoZSBzdHVmZiBpbnNpZGUgdGhlIG1hY3JvIGNhbGxlcixcbi8vIHRoZSBjb250ZW50IGN1c3RvbSB0byAgYSBwYXJ0aXVsYXIgaGVyb1xuLy8gODUwcHggaXMgYSBzaWduaWZpY2FudCBicmVha3BvaW50IGZvclxuLy8gZGVmYXVsdCBwb3J0YWwgaGVyb3Ncbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vL1xuXG4vLyBEZWZhdWx0IHN1cGVyaGVyb3MgYWRqdXN0IGF0IDg1MHB4XG4uc3VwZXJoZXJvLWJvZHkge1xuICAgIEBpbmNsdWRlIGZyb20oYnAtbWVkaXVtLXdpZGVyKSB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxufVxuLnN1cGVyaGVyby1ib2R5IHAge1xuICAgIC8vIGhpZGUgdW50aWwgbWVkaXVtLXdpZGVyXG4gICAgQGluY2x1ZGUgdG8oYnAtbWVkaXVtKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZnJvbShicC1tZWRpdW0td2lkZXIpIHtcbiAgICAgICAgLy8gc2hvdyBhbmQgaW5jcmVhc2UgdGV4dC1zaXplIG1lZGl1bS13aWRlclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgQGluY2x1ZGUgdGV4dChsYXJnZXN0KTtcbiAgICB9XG59XG4uc3VwZXJoZXJvLWNyZWRpdCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogMC41cmVtO1xufVxuXG5cbi8vIENhcHRpb24gYmVoYXZpb3Jcbi5zdXBlcmhlcm8tY2FwdGlvbiB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIEBpbmNsdWRlIGZyb20oYnAtbGFyZ2UpIHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWNhcHRpb24pO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuNjUpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuNjI1cmVtO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMjUwcHg7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAyNTBweDtcbiAgICAgICAgICAgICAgICByaWdodDogNXB4O1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRleHQoc21hbGwpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkaXJvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbi5zdXBlcmhlcm8tY2FwdGlvbi1vdmVybGF5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIGJvdHRvbTogMTAwJTtcbiAgICBsZWZ0OiAxNXB4O1xuICAgIHJpZ2h0OiAxNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG5cbiAgICAuc3VwZXJoZXJvLWNhcHRpb24tb3ZlcmxheS1vbiAmIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuLnN1cGVyaGVyby1jYXB0aW9uLWV4IHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0ycHg7XG4gICAgcmlnaHQ6IC0ycHg7XG59XG5cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vXG4vLyBTb21lIHN1cGVyaGVyb3MgaGF2ZSBhIGxpc3Qgb2Ygc3RvcmllcyBvbiB0aGUgcmlnaHRcbi8vIFRoZXkgb25seSBmaXQgZm9yIGxhcmdlIHVwIG9yIGF0IGxlYXN0IHRoYXQncyB3aGF0IGkgYW0gZ3Vlc3Npbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vL1xuLnN1cGVyaGVyby1tb3JlLXN0b3JpZXMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDEwcHg7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vL1xuLy8gRm9yIGEgc3VwZXJoZXJvIHdpdGggYSBncmFkaWVudCwgaXQncyBuaWNlIHRvIHNlbGVjdGl2ZWx5XG4vLyB3aGl0ZW4gdGV4dCB3aGVuIGl0IGlzIG92ZXJsYWlkIChpLmUuIG9uIGxhcmdlIHVwKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vXG5cbi5zdXBlcmhlcm8uZ3JhZGllbnQgLnRleHQtd2hpdGUtZm9yLWxhcmdlLXVwLFxuLnN1cGVyaGVyby5ncmFkaWVudCAudGV4dC13aGl0ZS1mb3ItbGFyZ2UtdXAgaDEge1xuICAgIEBpbmNsdWRlIGZyb20oYnAtbGFyZ2UpIHtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vXG4vLyBGb3IgYSBzdXBlcmhlcm8gd2l0aCBhbiBpbmxpbmUgaW1hZ2UgcmVwbGFjaW5nXG4vLyB0aGUgYmFja2dyb3VuZCBpbWFnZSwgdGhlIHRvcCBwYWRkaW5nIG11c3QgYmUgcmVkdWNlZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vXG5cbi5zdXBlcmhlcm8ucGFkLXRvcC1mbHVzaC1tZWRpdW0tZG93biB7XG4gICAgQGluY2x1ZGUgdG8oYnAtbGFyZ2UpIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vL1xuLy8gRm9yIGEgc3VwZXJoZXJvIHdpdGggc3ViaGVhZGluZyB0ZXh0IHNob3dpbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8vXG5cbi5zdXBlcmhlcm8uaGFzLXN1YmhlYWRpbmcgLnN1cGVyaGVyby1ib2R5IHAge1xuICAgIC8vIGhpZGUgdW50aWwgbWVkaXVtLXdpZGVyXG4gICAgQGluY2x1ZGUgdG8oYnAtbWVkaXVtKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy9cbi8vIEtpY2tlciBpbiBTdXBlcmhlcm8gZm9yIEFydGljbGVzIHRoYXQgYXJlIGNvbW1lbnRhcnkgKE5FV1MtOTE0KVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLy9cblxuLnN1cGVyaGVyby1jb21tZW50YXJ5LWJhbm5lciB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZmZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTcsMTcsMTcsMC42KTtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCA1cHggMCAjNjk2OTY5O1xuICAgIC1tb3otYm94LXNoYWRvdzogMCAwIDVweCAwICM2OTY5Njk7XG4gICAgYm94LXNoYWRvdzogMCAwIDVweCAwICM2OTY5Njk7XG4gICAgcGFkZGluZzogNXB4IDhweCA0cHggOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBTdXBlcmhlcm8gU2lkZWtpY2tcbm5hbWU6IGMtc3VwZXJoZXJvLXNpZGVraWNrXG5jYXRlZ29yeTogSGVybyBVbml0cyAtIFN1cGVyaGVyb1xuLS0tXG5cbkJhc2ljc1xuPT09PT09XG5cblNpbWlsYXIgdG8gdGhlIHN1cGVyaGVybywgYnV0IHdpdGggYSBzbWFsbCBpbWFnZSB0aGF0IHNpdHMgYmVzaWRlIHRoZSBib2R5IGNvbnRlbnQuXG5cblRoZSB0ZW1wbGF0ZSBkZXBlbmRzIG9uIGEgZGF0YSBvYmplY3QgY2FsbGVkIGBzaWRla2lja2AsIHdoaWNoIGRlZmluZXMgZXZlcnkgaW5wdXQgcGFyYW1ldGVyLiAgV3JhcHBpbmcgdGhlIGBpbmNsdWRlYCBzdGF0ZW1lbnQgaW4gYSBtYWNybyBsaWtlXG50aGUgZm9sbG93aW5nIGV4YW1wbGUgZm9yY2VzIHRoZSB0ZW1wbGF0ZSB0byBiZSBpc29sYXRlZCBmcm9tIHRoZSBzdXJyb3VuZGluZyBjb250ZXh0LiAgWW91IG1heSBhbHNvIGNob29zZSB0byBzaW1wbHkgc2V0IHRoZSBkYXRhIGxpa2UgdGhlIGV4YW1wbGVzIGZ1cnRoZXIgYmVsb3cuXG5cbnslIHNldCBlZGl0b3JfaWQgPSB1dWlkKCkgJX1cbmBgYG51bmp1Y2tzX3RhYj9lZGl0b3ItaWQ9e3tlZGl0b3JfaWR9fVxueyUgbWFjcm8gc2soc2lkZWtpY2spICV9XG4gICAgeyUgaW5jbHVkZSBcInRlbXBsYXRlcy9jb21tb24vc3VwZXJoZXJvL3NpZGVraWNrLWFic3RyYWN0Lm51bmpcIiAlfVxueyUgZW5kbWFjcm8gJX1cblxue3sgc2soe1xuICAgIFwiYmdJbWdcIjogXCJodHRwOi8vd3d3LnVzbmV3cy5jb20vZGltczQvVVNORVdTL2Q2N2E5ZmEvMjE0NzQ4MzY0Ny90aHVtYm5haWwvODUweDQ4MCU1RS9xdWFsaXR5Lzg1Lz91cmw9JTJGY21zbWVkaWElMkZhOCUyRjViJTJGNDRjYTdiNTA0YTAxODYwZTFmNjU1NGQ4Yzg4MSUyRmZlLWRhLTA3MTIxN2FuZ2VyLTU1MTA0ZXRqcGctZGVzaWduLmpwZ1wiLFxuICAgIFwidGl0bGVcIjogXCJbdGl0bGVdXCIsXG4gICAgXCJzdWJ0aXRsZVwiOiBcIltzdWJ0aXRsZV1cIixcbiAgICBcImludHJvSGVhZGVyXCI6IFwiW2ludHJvSGVhZGVyXVwiLFxuICAgIFwiaW50cm9UZXh0XCI6IFwiW2ludHJvVGV4dF1cIlxufSkgfX1cbmBgYFxuXG5UaGUgZm9sbG93aW5nIGlzIGEgaGVscGZ1bCB2YXJpYW50IG9mIHRoZSBzaWRla2ljayB0aGF0IGF1dG9tYXRpY2FsbHkgZGVmaW5lcyBhIHNlYXJjaCBib3ggYW5kIGluaXRpYWxpemVzIHRoZSBhdXRvY29tcGxldGUgY29kZSBmb3IgaXQuICBJdCBoYXMgYSBmZXcgbW9yZSBpbnB1dCBwYXJhbWV0ZXJzLlxuXG57JSBzZXQgZWRpdG9yX2lkID0gdXVpZCgpICV9XG5gYGBudW5qdWNrc190YWI/ZWRpdG9yLWlkPXt7ZWRpdG9yX2lkfX1cbnslIHNldCBzaWRla2ljayA9IHtcbiAgICBcImNzc0NsYXNzZXNcIjogXCJzdG9ja3MtaW5kZXgtc2lkZWtpY2sgc3RvY2tzLXR5cGVhaGVhZFwiLFxuICAgIFwic2VhcmNoUGxhY2Vob2xkZXJcIjogXCJbc2VhcmNoIHBsYWNlaG9sZGVyXVwiLFxuICAgIFwic2VhcmNoQWN0aW9uXCI6IFwiL2ludmVzdGluZy9zdG9ja3Mvc2VhcmNoXCIsXG4gICAgXCJhdXRvY29tcGxldGVUeXBlXCI6IFwic3RvY2tzXCIsXG4gICAgXCJhdXRvY29tcGxldGVVcmxLZXlcIjogXCJwcm9maWxlX3VybFwiXG5cbn0gJX1cblxueyUgaW5jbHVkZSBcInRlbXBsYXRlcy9jb21tb24vc3VwZXJoZXJvL3NpZGVraWNrLWJhc2ljLXNlYXJjaC5udW5qXCIgJX1cbmBgYFxuXG5FeHRlbmRpbmcgdGhlIFNpZGVraWNrXG49PT09PT09PT09PT09PT09PT09PT09XG5cbklmIHlvdXIgcHJvamVjdCBoYXMgYSBzaWRla2ljayB0aGF0IG5lZWRzIHNvbWUgY3VzdG9tIGh0bWwsIGZyZXQgbm90ISAgVGhlIGJlc3Qgd2F5IHRvIG1vZGlmeSB0aGUgc2lkZWtpY2sgaXMgdG8gY3JlYXRlIGEgbmV3IHRlbXBsYXRlIGFuZCBvdmVycmlkZSB0aGUgYGJsb2NrYHMuXG5UaGUgbWFpbnMgb25lcyB5b3UgcHJvYmFibHkgd2FudCBhcmUgYHNpZGVraWNrQm9keU1lZGl1bWAgYW5kIGBzaWRla2lja0JvZHlTbWFsbGAsIHdoaWNoIGRlZmluZSB0aGUgYm9keSBjb250ZW50IGZvciB0aGUgZGlmZmVyZW50IGJyZWFrcG9pbnRzLiAgWW91IG1heSwgb2YgY291cnNlLCB1c2VcbnRoZSBzYW1lIEhUTUwgZm9yIGJvdGggYmxvY2tzICh3aGljaCBpcyB0aGUgZGVmYXVsdCBiZWhhdmlvcikuXG5cbklmIHlvdSB3YW50IHRvIGFkZCBhIGZldyBleHRyYSBwYXJhbWV0ZXJzIHRvIHRoZSBuZXcgZGVzaWduLCBvciBvdmVycmlkZSBleGlzdGluZyBkZWZhdWx0cywgYWRkIGEgYHNldCBzaWRla2ljayA9IHNpZGVraWNrIHwgc2V0T2JqRGVmYXVsdHMoe30pYCB0byB0aGUgdG9wLFxuYmV0d2VlbiB0aGUgYGV4dGVuZHNgIGFuZCB0aGUgZmlyc3QgYGJsb2NrYCwgYW5kIGZpbGwgaW4gdGhlIG9iamVjdCB3aXRoIHNvbWUgZGVmYXVsdCB2YWx1ZXMuICBTZWUgYHNpZGVraWNrLWJhc2ljLXNlYXJjaC5udW5qYCBmb3IgYSBzYW1wbGUgaW1wbGVtZW50YXRpb24uXG5cbklmIHlvdSB3b3VsZCBsaWtlIGEgcXVpY2sgJ24gZGlydHkgc29sdXRpb24sIHRocm93IHNvbWUgSFRNTCBpbiBgc2lkZWtpY2suYm9keWAsIGxpa2Ugc286XG5cbnslIHNldCBlZGl0b3JfaWQgPSB1dWlkKCkgJX1cbmBgYG51bmp1Y2tzX3RhYj9lZGl0b3ItaWQ9e3tlZGl0b3JfaWR9fVxueyUgc2V0IHNpZGVraWNrQm9keSAlfVxuICAgIDxwPlRoaXMgaXMgdGhlIGJvZHkgY29udGVudC48L3A+XG57JSBlbmRzZXQgJX1cblxueyUgbWFjcm8gc2soc2lkZWtpY2spICV9XG4gICAgeyUgaW5jbHVkZSBcInRlbXBsYXRlcy9jb21tb24vc3VwZXJoZXJvL3NpZGVraWNrLWFic3RyYWN0Lm51bmpcIiAlfVxueyUgZW5kbWFjcm8gJX1cblxue3sgc2soe1xuICAgIFwiYm9keVwiOiBzaWRla2lja0JvZHlcbn0pIH19XG5gYGBcblxuUHJvamVjdC1sZXZlbCBWYXJpYW50c1xuPT09PT09PT09PT09PT09PT09PT09PVxuXG5IZXJlIGFyZSBzb21lIHZhcmlhdGlvbnMgdGhhdCBhcmUgaW4gdGhlIHdpbGQuXG5cbklmIHdlIGNhbiBzaGFyZSBjb21wb25lbnRzIGluIGZ1dHVyZSBwcm9qZWN0cywgdGhlc2UgdGVtcGxhdGVzLCBvciBwYXJ0cyBvZiB0aGVtLCBjYW4gYmUgbGlmdGVkIHRvIGEgY29tbW9uIGxvY2F0aW9uIGFuZCBkb2N1bWVudGVkLlxuXG5Eb2N0b3JzXG4tLS0tLS0tXG5cbnslIHNldCBlZGl0b3JfaWQgPSB1dWlkKCkgJX1cbmBgYG51bmp1Y2tzX3RhYj9lZGl0b3ItaWQ9e3tlZGl0b3JfaWR9fVxueyUgbWFjcm8gc2soc2lkZWtpY2spICV9XG4gICAgeyUgaW5jbHVkZSBcInRlbXBsYXRlcy9wYWdlcy9oZWFsdGgvaGVhbHRoLWNhcmUvZG9jdG9ycy9fc2lkZWtpY2subnVualwiICV9XG57JSBlbmRtYWNybyAlfVxuXG57eyBzayh7XG4gICAgXCJiZ0ltZ1wiOiBcIi9zdGF0aWMvaW1nL2hlYWx0aC9kb2N0b3JzL2RvY3Rvci5wbmdcIixcbiAgICBcInRpdGxlXCI6IFwiRG9jdG9yIEZpbmRlclwiLFxuICAgIFwic3VidGl0bGVcIjogXCJTZWFyY2ggJiBBZHZpY2VcIixcbiAgICBcImludHJvSGVhZGVyXCI6IFwiRmluZCBhIERvY3RvclwiLFxuICAgIFwiaW50cm9UZXh0XCI6IFwiT3VyIERvY3RvciBGaW5kZXIgaW5jbHVkZXMgbmVhcmx5IGFsbCBVLlMuIHBoeXNpY2lhbnMuIERvY3RvcnMgYXJlIG5vdCByYW5rZWQsIDxhIGhyZWY9XFxcIi90b3AtZG9jdG9ycy9hcnRpY2xlcy8yMDEzLzA3LzA4L2Fib3V0LXVzLW5ld3MtZG9jdG9yLWZpbmRlclxcXCI+cmVhZCBtb3JlPC9hPlwiXG59KSB9fVxuYGBgXG5cbiovXG5cbi5zaWRla2ljayB7XG4gICAgYm94LXNoYWRvdzogMCA1cHggMC4zMTI1cmVtIC0zcHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIEBpbmNsdWRlIGZyb20oYnAtbWVkaXVtKSB7XG4gICAgICAgIHBhZGRpbmc6IDAgcmVtLWNhbGMoMTUpOyAvLyBxdWljayBmaXggdG8gcHVzaCBlZGdlcyBpbiBsaW5lIHdpdGggY29udGVudFxuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGZsZXgtd3JhcCgpO1xuXG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnNpZGVraWNrLWJnIHtcbiAgICBAaW5jbHVkZSB0byhicC1tZWRpdW0pIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbGV4LXNocmluazogMTtcbiAgICBtYXgtd2lkdGg6IDQ1MHB4O1xuICAgIHBhZGRpbmc6IDIwcHg7XG59XG5cbi5zaWRla2ljay1jb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1ibHVlO1xuICAgICYuc2hvdy1mb3Itc21hbGwge1xuICAgICAgICBAaW5jbHVkZSB0byhicC1tZWRpdW0pIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAuaGVyby1pbnRybyB7XG4gICAgICAgICAgICAgICAgaDMge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDM2KTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29sb3I6ICM3ODc4Nzg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb2xvcjogJGpldDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgfVxuICAgICYuc2hvdy1mb3ItbWVkaXVtLXVwIHtcbiAgICAgICAgQGluY2x1ZGUgZnJvbShicC1tZWRpdW0pIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcGFkZGluZzogMzBweDtcbn1cblxuLnNpZGVraWNrLWNvbnRlbnQgLmZsZXgtcm93ICoge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG4iLCIvKmRvY1xuLS0tXG50aXRsZTogUGFwZXIgRWFnbGVcbm5hbWU6IGEtcGFwZXItZWFnbGVcbmNhdGVnb3J5OiBDaGFydHMgJiBHcmFwaHMgLSBDaGFydHNcbmF1dGhvcnM6IFdlcyBEaU1pY2VsaVxuc2VsZWN0b3JzOlxuICAgIC0gLmNoYXJ0LmNoYXJ0LWJhclxudGVtcGxhdGU6XG4gICAgY2hhcnREYXRhOlxuICAgIC1cbiAgICAgICAgLSBDYXQgSHVnc1xuICAgICAgICAtIDUuNVxuICAgIC1cbiAgICAgICAgLSBTd2VhdGVyIEtuaXR0aW5nXG4gICAgICAgIC0gNy44XG4gICAgY2hhcnREYXRhTXVsdGlTZXJpZXM6XG4gICAgICAgIEFwcGxlOlxuICAgICAgICAtXG4gICAgICAgICAgICAtIENhdCBIdWdzXG4gICAgICAgICAgICAtIDUuNVxuICAgICAgICAtXG4gICAgICAgICAgICAtIFN3ZWF0ZXIgS25pdHRpbmdcbiAgICAgICAgICAgIC0gNy44XG4gICAgICAgIEdvb2dsZTpcbiAgICAgICAgLVxuICAgICAgICAgICAgLSBDYXQgSHVnc1xuICAgICAgICAgICAgLSA5LjlcbiAgICAgICAgLVxuICAgICAgICAgICAgLSBTd2VhdGVyIEtuaXR0aW5nXG4gICAgICAgICAgICAtIDIuMVxuICAgIGNoYXJ0RGF0YU9iajpcbiAgICAgICAgQXBwbGU6XG4gICAgICAgICAgICBDYXQgSHVnczogNS41XG4gICAgICAgICAgICBTd2VhdGVyIEtuaXR0aW5nOiA3LjhcbiAgICAgICAgR29vZ2xlOlxuICAgICAgICAgICAgQ2F0IEh1Z3M6IDkuOVxuICAgICAgICAgICAgU3dlYXRlciBLbml0dGluZzogMi4xXG4gICAgbnVtZXJpY0RhdGE6XG4gICAgLVxuICAgICAgICAtIDFcbiAgICAgICAgLSAxXG4gICAgLVxuICAgICAgICAtIDJcbiAgICAgICAgLSAyXG4gICAgLVxuICAgICAgICAtIDNcbiAgICAgICAgLSAzXG4gICAgLVxuICAgICAgICAtIDRcbiAgICAgICAgLSA0XG4gICAgLVxuICAgICAgICAtIDVcbiAgICAgICAgLSA1XG4gICAgY2hhcnRPcHRpb25zOlxuICAgICAgICBzY3JvbGxUYXJnZXQ6IFwiLnN0eWxlZ3VpZGUtd3JhcHBlclwiXG4tLS1cblxuQSBzaW1wbGUgYmFyIGNoYXJ0IGNhbiBiZSBjb25zdHJ1Y3RlZCBieSBjYWxsaW5nIHRoaXMgbWFjcm8uICBUaGUgb25seSByZXF1aXJlZCBwYXJhbWV0ZXJcbmlzIHRoZSBjaGFydCBkYXRhLCBidXQgYSBzZXQgb2Ygb3B0aW9ucyBhbmQgYSBoZWlnaHQgY2FuIGFsc28gYmUgc3BlY2lmaWVkLlxuXG48cHJlPlxueyUgcmF3ICV9XG57JSBmcm9tIFwidGVtcGxhdGVzL2NvbW1vbi9kYXRhL2NoYXJ0cy9wYXBlci1lYWdsZS5udW5qXCIgaW1wb3J0IHBhcGVyRWFnbGVCYXIgJX1cbnslIGVuZHJhdyAlfVxuPC9wcmU+XG5cblxuYGBgaHRtbF9leGFtcGxlXG57JSBmcm9tIFwidGVtcGxhdGVzL2NvbW1vbi9kYXRhL2NoYXJ0cy9wYXBlci1lYWdsZS5udW5qXCIgaW1wb3J0IHBhcGVyRWFnbGVCYXIgJX1cblxueyMgQmFzaWMgI31cbnt7IHBhcGVyRWFnbGVCYXIoY2hhcnREYXRhLCB7IHNjcm9sbFRhcmdldDogJy5zdHlsZWd1aWRlLXdyYXBwZXInIH0pIH19XG5cbnsjIE11bHRpIHNlcmllcyAjfVxue3sgcGFwZXJFYWdsZUJhcihjaGFydERhdGFNdWx0aVNlcmllcywgeyBzY3JvbGxUYXJnZXQ6ICcuc3R5bGVndWlkZS13cmFwcGVyJyB9KSB9fVxuXG57IyBEYXRhIGZyb20gSlMgb2JqICN9XG57eyBwYXBlckVhZ2xlQmFyKGNoYXJ0RGF0YU9iaiwgY2hhcnRPcHRpb25zKSB9fVxuXG57IyBEYXRhIGZyb20gSlMgb2JqIHdpdGggaW50ZXJsZWF2ZWQgZGF0YSAjfVxueyUgc2V0IGNoYXJ0T3B0aW9ucyA9IHtcbiAgICBcImJhckdyb3VwQnlcIjogXCJpbmRleFwiLFxuICAgIHNjcm9sbFRhcmdldDogJy5zdHlsZWd1aWRlLXdyYXBwZXInXG59ICV9XG57eyBwYXBlckVhZ2xlQmFyKGNoYXJ0RGF0YU9iaiwgY2hhcnRPcHRpb25zKSB9fVxuXG57IyBGaXhlZCBleHRlbnRzICN9XG57JSBzZXQgY2hhcnRPcHRpb25zID0ge1xuICAgIFwiYXhlc1wiOiB7XG4gICAgICAgIFwieVwiOiB7XG4gICAgICAgICAgICBcIndpbmRvd0V4dGVudFwiOiBbMCwgMTVdXG4gICAgICAgIH1cbiAgICB9LFxuICAgIHNjcm9sbFRhcmdldDogJy5zdHlsZWd1aWRlLXdyYXBwZXInXG59ICV9XG57eyBwYXBlckVhZ2xlQmFyKGNoYXJ0RGF0YU11bHRpU2VyaWVzLCBjaGFydE9wdGlvbnMpIH19XG5cbnsjIERpZmZlcmVudCBjb2xvcnMgYW5kIGJhciBzY2FsaW5nICN9XG57JSBzZXQgY2hhcnRPcHRpb25zID0ge1xuICAgIFwiYmFyQ29sb3JcIjoge1xuICAgICAgICBcIkNhdCBIdWdzXCI6IFwiIzAwRkYwMFwiLFxuICAgICAgICBcIlN3ZWF0ZXIgS25pdHRpbmdcIjogXCIjREVEQkVGXCJcbiAgICB9LFxuICAgIFwiYXhlc1wiOiB7XG4gICAgICAgIFwieVwiOiB7XG4gICAgICAgICAgICBcImNoYXJ0QXJlYU1hcmdpbnNcIjogWzIwLCAyMF1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgXCJiYXJHcm91cFNjYWxlXCI6IDAuNSxcbiAgICBcImJhcldpZHRoU2NhbGVcIjogMS4wLFxuICAgIHNjcm9sbFRhcmdldDogJy5zdHlsZWd1aWRlLXdyYXBwZXInXG59ICV9XG57eyBwYXBlckVhZ2xlQmFyKGNoYXJ0RGF0YU11bHRpU2VyaWVzLCBjaGFydE9wdGlvbnMpIH19XG5cbnsjIERpZmZlcmVudCB0aWNrcyBhbmQgZ3JpZCBsaW5lcyAjfVxueyUgc2V0IGNoYXJ0T3B0aW9ucyA9IHtcbiAgICBcImF4ZXNcIjoge1xuICAgICAgICBcInlcIjoge1xuICAgICAgICAgICAgXCJ0aWNrc1wiOiBbMC4zMywgMC42Nl0sXG4gICAgICAgICAgICBcImdyaWRMaW5lc1wiOiBbMC4zMywgMC42Nl0sXG4gICAgICAgICAgICBcInRpY2tSZW5kZXJSdWxlclwiOiBmYWxzZSxcbiAgICAgICAgICAgIFwidGlja09yaWVudGF0aW9uXCI6IFwicmlnaHRcIixcbiAgICAgICAgICAgIFwidGlja0xhYmVsT2Zmc2V0XCI6IFstMiwgLTJdXG4gICAgICAgIH0sXG4gICAgICAgIFwieFwiOiB7XG4gICAgICAgICAgICBcInRpY2tSZW5kZXJSdWxlclwiOiBmYWxzZVxuICAgICAgICB9XG4gICAgfSxcbiAgICBzY3JvbGxUYXJnZXQ6ICcuc3R5bGVndWlkZS13cmFwcGVyJ1xufSAlfVxue3sgcGFwZXJFYWdsZUJhcihjaGFydERhdGFNdWx0aVNlcmllcywgY2hhcnRPcHRpb25zKSB9fVxuXG57IyBBbmltYXRpb24gZGlzYWJsZWQgI31cbnslIHNldCBjaGFydE9wdGlvbnMgPSB7XG4gICAgXCJhbmltYXRlQmFyc1wiOiBmYWxzZSxcbiAgICBzY3JvbGxUYXJnZXQ6ICcuc3R5bGVndWlkZS13cmFwcGVyJ1xufSAlfVxue3sgcGFwZXJFYWdsZUJhcihjaGFydERhdGFNdWx0aVNlcmllcywgY2hhcnRPcHRpb25zKSB9fVxuXG57IyBUYWxsIGJhciBjaGFydCAjfVxue3sgcGFwZXJFYWdsZUJhcihjaGFydERhdGFNdWx0aVNlcmllcywgeyBzY3JvbGxUYXJnZXQ6ICcuc3R5bGVndWlkZS13cmFwcGVyJyB9LCAzMDApIH19XG5cbnsjIGZvciBwdXJwb3NlcyBvZiB0aGlzIGV4YW1wbGUgb25seSAjfVxuPHN0eWxlPi5wYXBlci1lYWdsZS1jb250YWluZXJ7d2lkdGg6MzMlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO308L3N0eWxlPlxuXG5gYGBcblxuQmFyIGNoYXJ0LXNwZWNpZmljIG9wdGlvbnMgYXJlIGFzIGZvbGxvd3M6XG5cbnwgT3B0aW9uICAgICAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb25cbnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG58IGBlbmFibGVBbmltYXRpb25gICAgICAgICB8IEVuYWJsZXMgb3IgZGlzYWJsZXMgdGhlIGluaXRpYWwgYmFyIGFuaW1hdGlvbi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCBgYmFyR3JvdXBTY2FsZWAgICAgICAgICAgfCBTY2FsaW5nIHBhcmFtZXRlciBmb3IgZ3JvdXBzIGluIG11bHRpLXNlcmllcyBjaGFydHMuICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgYGJhcldpZHRoU2NhbGVgICAgICAgICAgIHwgU2NhbGluZyBwYXJhbWV0ZXIgZm9yIGVhY2ggaW5kaXZpZHVhbCBiYXIuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IGBiYXJDb2xvcmAgICAgICAgICAgICAgICB8IFNldHMgdGhlIGZpbGwgY29sb3IgZm9yIGVhY2ggYmFyLiAgQ2FuIGJlIGEgZnVuY3Rpb24sIG9iamVjdCwgb3IgYXJyYXkuICAgICAgfFxufCBgYmFyR3JvdXBCeWAgICAgICAgICAgICAgfCBHcm91cGluZyBvZiBtdWx0aS1zZXJpZXMgZGF0YS4gIFNob3VsZCBiZSBlaXRoZXIgJ3Nlcmllcycgb3IgJ2luZGV4Jy4gICAgICAgIHxcbnwgYGJhckV2ZW50c2AgICAgICAgICAgICAgIHwgSGFuZGxlcnMgZm9yIHN0YW5kYXJkIGV2ZW50cy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IGBzdGFja2VkYCAgICAgICAgICAgICAgICB8IFN0YWNrIHNlcmllcycgYmFycyByYXRoZXIgdGhhbiBsYXlpbmcgdGhlbSBvdXQgaG9yaXpvbnRhbGx5LiAgICAgICAgICAgICAgICAgfFxufCBgcmVuZGVyR3JvdXBMYWJlbHNgICAgICAgfCBXaGV0aGVyIG9yIG5vdCB0byBkcmF3IHRoZSB4LWF4aXMgbGFiZWxzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgYGJhckdyb3VwU3BhY2luZ01vZGVgICAgIHwgTGF5b3V0IG1ldGhvZCBmb3IgZWFjaCBncm91cC4gIENob29zZSBmcm9tIFwiYmV0d2VlblwiLCBcImFyb3VuZFwiLCBvciBcInBhZGRlZFwiLiB8XG58IGBiYXJTcGFjaW5nTW9kZWAgICAgICAgICB8IExheW91dCBtZXRob2QgZm9yIGVhY2ggYmFyLiAgQ2hvb3NlIGZyb20gXCJiZXR3ZWVuXCIsIFwiYXJvdW5kXCIsIG9yIFwicGFkZGVkXCIuICAgfFxuXG5QbGVhc2Ugbm90ZSB0aGF0IHRoZSB4LWF4aXMgdGlja3MgYXJlIHNldCBhdXRvbWF0aWNhbGx5IGFuZCBjYW5ub3QgYmUgb3ZlcnJpZGRlbi5cblxuXG5QYXBlciBFYWdsZSAyRCBDaGFydCBCYXNpY3Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5IZXJlIGFyZSBhIGZldyB0eXBpY2FsIGV4YW1wbGVzIGZvciBjb25maWd1cmluZyB0aGUgMkQgZ3JpZCBhbmQgYXhpcyBsYWJlbHMuXG5cbmBgYGh0bWxfZXhhbXBsZVxueyUgZnJvbSBcInRlbXBsYXRlcy9jb21tb24vZGF0YS9jaGFydHMvcGFwZXItZWFnbGUubnVualwiIGltcG9ydCBwYXBlckVhZ2xlICV9XG5cbnsjIEJhc2ljICN9XG57JSBzZXQgY2hhcnRPcHRpb25zID0ge1xuICAgIFwiYXhlc1wiOiB7XG4gICAgICAgIFwieFwiOiB7XG4gICAgICAgICAgICBcImdyaWRMaW5lc1wiOiBbMC4wLCAwLjI1LCAwLjUsIDAuNzUsIDEuMF0sXG4gICAgICAgICAgICBcInRpY2tzXCI6IFswLjAsIDAuMjUsIDAuNSwgMC43NSwgMS4wXVxuICAgICAgICB9LFxuICAgICAgICBcInlcIjoge1xuICAgICAgICAgICAgXCJncmlkTGluZXNcIjogWzAuMCwgMC4yNSwgMC41LCAwLjc1LCAxLjBdLFxuICAgICAgICAgICAgXCJ0aWNrc1wiOiBbMC4wLCAwLjI1LCAwLjUsIDAuNzUsIDEuMF1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgc2Nyb2xsVGFyZ2V0OiAnLnN0eWxlZ3VpZGUtd3JhcHBlcidcbn0gJX1cbnt7IHBhcGVyRWFnbGUoXCJheGlzLWJhc2VcIiwgbnVtZXJpY0RhdGEsIGNoYXJ0T3B0aW9ucykgfX1cblxueyMgQXhpcyBsYWJlbCBvcmllbnRhdGlvbiAjfVxueyUgc2V0IGNoYXJ0T3B0aW9ucyA9IHtcbiAgICBcImF4ZXNcIjoge1xuICAgICAgICBcInhcIjoge1xuICAgICAgICAgICAgXCJncmlkTGluZXNcIjogWzAuMCwgMC4yNSwgMC41LCAwLjc1LCAxLjBdLFxuICAgICAgICAgICAgXCJ0aWNrc1wiOiBbMC4wLCAwLjI1LCAwLjUsIDAuNzUsIDEuMF0sXG4gICAgICAgICAgICBcInRpY2tPcmllbnRhdGlvblwiOiBcInRvcFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwieVwiOiB7XG4gICAgICAgICAgICBcImdyaWRMaW5lc1wiOiBbMC4wLCAwLjI1LCAwLjUsIDAuNzUsIDEuMF0sXG4gICAgICAgICAgICBcInRpY2tzXCI6IFswLjAsIDAuMjUsIDAuNSwgMC43NSwgMS4wXSxcbiAgICAgICAgICAgIFwidGlja09yaWVudGF0aW9uXCI6IFwicmlnaHRcIixcbiAgICAgICAgICAgIFwidGlja0xhYmVsT2Zmc2V0XCI6IFstMiwgLTJdXG4gICAgICAgIH1cbiAgICB9LFxuICAgIHNjcm9sbFRhcmdldDogJy5zdHlsZWd1aWRlLXdyYXBwZXInXG59ICV9XG57eyBwYXBlckVhZ2xlKFwiYXhpcy1iYXNlXCIsIG51bWVyaWNEYXRhLCBjaGFydE9wdGlvbnMpIH19XG5cbnsjIEdyaWQvVGljayBkZWZpbml0aW9uIGZvcm1hdCAjfVxueyUgc2V0IGNoYXJ0T3B0aW9ucyA9IHtcbiAgICBcImF4ZXNcIjoge1xuICAgICAgICBcInhcIjoge1xuICAgICAgICAgICAgXCJncmlkTGluZXNcIjogWzEsIDIsIDVdLFxuICAgICAgICAgICAgXCJ0aWNrc1wiOiBbMSwgMiwgNV0sXG4gICAgICAgICAgICBcImdyaWRMaW5lRGVmaW5pdGlvbkZvcm1hdFwiOiBcImZpeGVkXCIsXG4gICAgICAgICAgICBcInRpY2tEZWZpbml0aW9uRm9ybWF0XCI6IFwiZml4ZWRcIlxuICAgICAgICB9LFxuICAgICAgICBcInlcIjoge1xuICAgICAgICAgICAgXCJncmlkTGluZXNcIjogWzEsIDIsIDVdLFxuICAgICAgICAgICAgXCJ0aWNrc1wiOiBbMSwgMiwgNV0sXG4gICAgICAgICAgICBcImdyaWRMaW5lRGVmaW5pdGlvbkZvcm1hdFwiOiBcImZpeGVkXCIsXG4gICAgICAgICAgICBcInRpY2tEZWZpbml0aW9uRm9ybWF0XCI6IFwiZml4ZWRcIlxuICAgICAgICB9XG4gICAgfSxcbiAgICBzY3JvbGxUYXJnZXQ6ICcuc3R5bGVndWlkZS13cmFwcGVyJ1xufSAlfVxue3sgcGFwZXJFYWdsZShcImF4aXMtYmFzZVwiLCBudW1lcmljRGF0YSwgY2hhcnRPcHRpb25zKSB9fVxuXG57IyBTdGlja3kgeS1heGlzICN9XG57JSBzZXQgY2hhcnRPcHRpb25zID0ge1xuICAgIFwiYXhlc1wiOiB7XG4gICAgICAgIFwieFwiOiB7XG4gICAgICAgICAgICBcImdyaWRMaW5lc1wiOiBbMC4wLCAwLjI1LCAwLjUsIDAuNzUsIDEuMF0sXG4gICAgICAgICAgICBcInRpY2tzXCI6IFswLjAsIDAuMjUsIDAuNSwgMC43NSwgMS4wXVxuICAgICAgICB9LFxuICAgICAgICBcInlcIjoge1xuICAgICAgICAgICAgXCJncmlkTGluZXNcIjogWzAuMCwgMC4yNSwgMC41LCAwLjc1LCAxLjBdLFxuICAgICAgICAgICAgXCJ0aWNrc1wiOiBbMC4wLCAwLjI1LCAwLjUsIDAuNzUsIDEuMF1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgXCJjaGFydFdpZHRoXCI6IDMwMCxcbiAgICBzY3JvbGxUYXJnZXQ6ICcuc3R5bGVndWlkZS13cmFwcGVyJ1xufSAlfVxue3sgcGFwZXJFYWdsZShcImF4aXMtYmFzZVwiLCBudW1lcmljRGF0YSwgY2hhcnRPcHRpb25zKSB9fVxuXG57IyBTdGlja3kgeS1heGlzIHdpdGggZnVsbC13aWR0aCBncmlkIGxpbmVzICN9XG57JSBzZXQgY2hhcnRPcHRpb25zID0ge1xuICAgIFwiYXhlc1wiOiB7XG4gICAgICAgIFwieFwiOiB7XG4gICAgICAgICAgICBcImdyaWRMaW5lc1wiOiBbMC4wLCAwLjI1LCAwLjUsIDAuNzUsIDEuMF0sXG4gICAgICAgICAgICBcInRpY2tzXCI6IFswLjAsIDAuMjUsIDAuNSwgMC43NSwgMS4wXSxcbiAgICAgICAgICAgIFwidGlja01hcmdpbnNcIjogWzIwLCAxMF1cbiAgICAgICAgfSxcbiAgICAgICAgXCJ5XCI6IHtcbiAgICAgICAgICAgIFwiZ3JpZExpbmVzXCI6IFswLjAsIDAuMjUsIDAuNSwgMC43NSwgMS4wXSxcbiAgICAgICAgICAgIFwidGlja3NcIjogWzAuMCwgMC4yNSwgMC41LCAwLjc1LCAxLjBdLFxuICAgICAgICAgICAgXCJ0aWNrQ29uc3RyYWluVG9DaGFydEFyZWFcIjogZmFsc2UsXG4gICAgICAgICAgICBcInRpY2tMYWJlbE9mZnNldFwiOiBbNSwgLTEwXSxcbiAgICAgICAgICAgIFwidGlja01hcmdpbnNcIjogWzIwLCAwXVxuICAgICAgICB9XG4gICAgfSxcbiAgICBcImNoYXJ0V2lkdGhcIjogNTAwLFxuICAgIFwiZnVsbFdpZHRoR3JpZFwiOiB0cnVlLFxuICAgIHNjcm9sbFRhcmdldDogJy5zdHlsZWd1aWRlLXdyYXBwZXInXG59ICV9XG57eyBwYXBlckVhZ2xlKFwiYXhpcy1iYXNlXCIsIG51bWVyaWNEYXRhLCBjaGFydE9wdGlvbnMpIH19XG5cbnsjIGZvciBwdXJwb3NlcyBvZiB0aGlzIGV4YW1wbGUgb25seSAjfVxuPHN0eWxlPi5wYXBlci1lYWdsZS1jb250YWluZXJ7d2lkdGg6MzAlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO308L3N0eWxlPlxuXG5gYGBcblxuKi9cblxuLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy84MjY3ODIvY3NzLXJ1bGUtdG8tZGlzYWJsZS10ZXh0LXNlbGVjdGlvbi1oaWdobGlnaHRpbmdcbkBtaXhpbiBub1NlbGVjdCgpIHtcbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7IC8qIGlPUyBTYWZhcmkgKi9cbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOyAgIC8qIENocm9tZS9TYWZhcmkvT3BlcmEgKi9cbiAgICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7ICAgIC8qIEtvbnF1ZXJvciAqL1xuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7ICAgICAgLyogRmlyZWZveCAqL1xuICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsgICAgICAgLyogSUUvRWRnZSAqL1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ucGFwZXItZWFnbGUtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBub1NlbGVjdCgpO1xuICAgIGhlaWdodDogMjAwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAucGFwZXItZWFnbGUtc2Nyb2xsZXIge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmLmhhcy1zdGlja3kteS1heGlzIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYucGFwZXItZWFnbGUtb3ZlcmZsb3dpbmcteCB7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAucGFwZXItZWFnbGUtc2Nyb2xsZXItaW5uZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnBhcGVyLWVhZ2xlLXktYXhpcyB7XG4gICAgICAgIGxlZnQ6IDBweDtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwcHg7XG4gICAgICAgIHotaW5kZXg6IDE7XG5cbiAgICAgICAgLnBhcGVyLWVhZ2xlLXktYXhpcy1pbm5lciBzdmcge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wYXBlci1lYWdsZS15LWF4aXMtaW5uZXIgc3ZnLFxuICAgIC5wYXBlci1lYWdsZS14LWF4aXMgc3ZnIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gICAgLnBhcGVyLWVhZ2xlLXktYXhpcyxcbiAgICAucGFwZXItZWFnbGUteC1heGlzIHtcblxuICAgICAgICAmLnBhcGVyLWVhZ2xlLXN0aWNreS1sZWZ0IHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDNweCAwIDhweCAjREREO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5wYXBlci1lYWdsZS1zdGlja3ktcmlnaHQge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogLTNweCAwIDhweCAjREREO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnBhcGVyLWVhZ2xlLXJvb3Qge1xuICAgICAgICAvLyB0aGlzIHNob3VsZCBjYXVzZSBTVkcgZWxlbWVudHMgdG8gYWJzb3JiIHdoaXRlc3BhY2VcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIC8vaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgIH1cblxuICAgIC5wYXBlci1lYWdsZS10aWNrcyB7XG4gICAgICAgIHRleHQge1xuICAgICAgICAgICAgZmlsbDogJGFsdW1pbnVtO1xuXG4gICAgICAgICAgICAmLnRleHQtYmxhY2sge1xuICAgICAgICAgICAgICAgIGZpbGw6ICRvaWw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYudGV4dC1hYm92ZS1hdmVyYWdlIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkZ3JlZW4tcHJvO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnRleHQtYmVsb3ctYXZlcmFnZSB7XG4gICAgICAgICAgICAgICAgZmlsbDogJHJlZC1jb247XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5wYXBlci1lYWdsZS1yb290LWJhc2Uge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgLnBhcGVyLWVhZ2xlLWRvb2RhZC1jb250YWluZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgLy93aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgei1pbmRleDogMztcbiAgICB9XG5cbiAgICAucGFwZXItZWFnbGUtZG9vZGFkLWJhbGxvb24ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAycHggMTJweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgICAgIC5iYWxsb29uLWFycm93IHtcbiAgICAgICAgICAgIGJvcmRlcjogc29saWQ7XG4gICAgICAgICAgICAvL2JvcmRlci1jb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogNXB4IDZweCAwIDZweDtcbiAgICAgICAgICAgIGxlZnQ6IDEwcHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICAvL3otaW5kZXg6IDk5O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnBhcGVyLWVhZ2xlLWRvb2RhZC1mbG9hdGluZy1sYWJlbCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAgICAgQGluY2x1ZGUgZnJvbShicC1tZWRpdW0pIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIHRvKGJwLW1lZGl1bSkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY2hhcnQge1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgZnJvbShicC1tZWRpdW0pIHtcbiAgICAgICAgaGVpZ2h0OiAxNTBweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSB0byhicC1tZWRpdW0pIHtcbiAgICAgICAgaGVpZ2h0OiAxMDBweDtcbiAgICB9XG5cbiAgICB0ZXh0IHtcbiAgICAgICAgZmlsbDogJGFsdW1pbnVtO1xuICAgIH1cblxuICAgIC50ZXh0LWJsYWNrIHtcbiAgICAgICAgdGV4dCB7XG4gICAgICAgICAgICBmaWxsOiAkYmxhY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmV4cGFuZC1oZWlnaHQge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxufVxuXG4ucGFwZXItZWFnbGUtdGV4dC1ydWxlciB7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHdpZHRoOiAwO1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xufVxuXG4uY2hhcnQteS1heGlzLWxhYmVsIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG4gICAgd2lkdGg6IDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmNoYXJ0LXktYXhpcy1sYWJlbCArICoge1xuICAgIEBtZWRpYSAjeyRtZWRpdW19IHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICAgIH1cbn1cblxuLmJ1YmJsZWNsb3VkLWNvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiA4MDBweDtcblxuICAgIC5idWJibGVjbG91ZC10ZXh0IHtcbiAgICAgICAgaGVpZ2h0OiA4MDBweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cbiAgICAuY2hhcnQtYnViYmxlY2xvdWQge1xuICAgICAgICBoZWlnaHQ6IDgwMHB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgdGV4dCB7XG4gICAgICAgICAgICBmaWxsOiAkYmxhY2s7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuQG1peGluIHRyYW5zaXRpb25Qb3BJbigkYWN0aXZlQ2xhc3MsICRkb1NjYWxlOnRydWUsICR6SW5kZXg6aW5oZXJpdCkge1xuICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgQGlmICRkb1NjYWxlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjg1LCAwLjg1KTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuODUsIDAuODUpO1xuICAgIH1cbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjE1cywgdHJhbnNmb3JtIDAuMTVzLCB2aXNpYmlsaXR5IDBzIGxpbmVhciAwLjE1cywgei1pbmRleCAwcyBsaW5lYXIgMC4xNXM7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHotaW5kZXg6IC05OTk5O1xuXG4gICAgJi4jeyRhY3RpdmVDbGFzc30ge1xuICAgICAgICBvcGFjaXR5OiAxLjA7XG4gICAgICAgIEBpZiAkZG9TY2FsZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMCwgMS4wKTtcbiAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjAsIDEuMCk7XG4gICAgICAgIH1cbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMHM7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgIHotaW5kZXg6ICR6SW5kZXg7XG4gICAgfVxufVxuXG5AbWl4aW4gYW5jaG9yZWQoKSB7XG4gICAgbGVmdDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uY2hhcnQtc3BhcmtsaW5lIHtcbiAgICBoZWlnaHQ6IDUwcHg7XG4gICAgd2lkdGg6IDIwMHB4O1xuXG4gICAgLnRleHQtc3BhcmtsaW5lLXktYXhpcyB7XG4gICAgICAgIGZpbGw6ICRjaGFyY29hbDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxufVxuXG4uY2hhcnQtc2NhdHRlcnBsb3Qge1xufVxuXG4uc3RvY2stbWFya2V0LWNoYXJ0IHtcbiAgICBoZWlnaHQ6IDI1MHB4O1xufVxuXG4uY2hhcnRpcSB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgJi5vdmVydmlldy1jaGFydCB7XG4gICAgICAgIGhlaWdodDogMzYwcHg7XG4gICAgfVxuICAgICYuaW50ZXJhY3RpdmUtY2hhcnQge1xuICAgICAgICBoZWlnaHQ6IDUxMHB4O1xuICAgIH1cbn1cblxuLmNoYXJ0LXRhYnMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAmLmFjdGl2ZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbn1cblxuLypkb2Ncbi0tLVxudGl0bGU6IFBhcGVyIEVhZ2xlIFBpZSBDaGFydFxubmFtZTogYS1wYXBlci1lYWdsZS1waWUtY2hhcnRcbmNhdGVnb3J5OiBDaGFydHMgJiBHcmFwaHMgLSBDaGFydHNcbmF1dGhvcnM6IFdlcyBEaU1pY2VsaVxuc2VsZWN0b3JzOlxudGVtcGxhdGU6XG4gICAgY2hhcnREYXRhOlxuICAgIC0gNFxuICAgIC0gOFxuICAgIC0gMTVcbiAgICAtIDE2XG4gICAgLSAyM1xuICAgIC0gNDJcbiAgICBjaGFydERhdGFPYmo6XG4gICAgICAgIGFwcGxlOiA0XG4gICAgICAgIGNoZXJyeTogOFxuICAgICAgICBzaGVwaGVyZHM6IDE1XG4gICAgICAgIHBpenphOiAxNlxuICAgICAgICBwdW1wa2luOiAyM1xuICAgICAgICBxdWljaGU6IDQyXG4tLS1cblxuQSBzaW1wbGUgcGllIGNoYXJ0IGNhbiBiZSBjb25zdHJ1Y3RlZCBieSBjYWxsaW5nIHRoaXMgbWFjcm8uICBUaGUgb25seSByZXF1aXJlZCBwYXJhbWV0ZXJcbmlzIHRoZSBjaGFydCBkYXRhLCBidXQgYSBzZXQgb2Ygb3B0aW9ucyBhbmQgYSBoZWlnaHQgY2FuIGFsc28gYmUgc3BlY2lmaWVkLlxuXG48cHJlPlxueyUgcmF3ICV9XG57JSBmcm9tIFwidGVtcGxhdGVzL2NvbW1vbi9kYXRhL2NoYXJ0cy9wYXBlci1lYWdsZS5udW5qXCIgaW1wb3J0IHBhcGVyRWFnbGVQaWUgJX1cbnslIGVuZHJhdyAlfVxuPC9wcmU+XG5cblxuYGBgaHRtbF9leGFtcGxlXG57JSBmcm9tIFwidGVtcGxhdGVzL2NvbW1vbi9kYXRhL2NoYXJ0cy9wYXBlci1lYWdsZS5udW5qXCIgaW1wb3J0IHBhcGVyRWFnbGVQaWUgJX1cblxueyMgQmFzaWMgI31cbnt7IHBhcGVyRWFnbGVQaWUoY2hhcnREYXRhLCB7IHNjcm9sbFRhcmdldDogJy5zdHlsZWd1aWRlLXdyYXBwZXInIH0pIH19XG5cbnsjIE1hcHBlZCBkYXRhIGFuZCBjb2xvcnMgI31cbnslIHNldCBjaGFydE9wdGlvbnMgPSB7XG4gICAgXCJzbGljZUNvbG9yXCI6IHtcbiAgICAgICAgXCJhcHBsZVwiOiBcInJlZFwiLFxuICAgICAgICBcImNoZXJyeVwiOiBcImJsdWVcIixcbiAgICAgICAgXCJzaGVwaGVyZHNcIjogXCJncmVlblwiLFxuICAgICAgICBcInBpenphXCI6IFwicGlua1wiLFxuICAgICAgICBcInB1bXBraW5cIjogXCJibGFja1wiLFxuICAgICAgICBcInF1aWNoZVwiOiBcImJyb3duXCJcbiAgICB9LFxuICAgIHNjcm9sbFRhcmdldDogJy5zdHlsZWd1aWRlLXdyYXBwZXInXG59ICV9XG57eyBwYXBlckVhZ2xlUGllKGNoYXJ0RGF0YU9iaiwgY2hhcnRPcHRpb25zKSB9fVxuXG57IyBSb3RhdGUgdGhlIHBpZSAobm90ZTogUkFESUFOUykgI31cbnslIHNldCBjaGFydE9wdGlvbnMgPSB7XG4gICAgXCJpbml0aWFsQW5nbGVcIjogMC44LFxuICAgIHNjcm9sbFRhcmdldDogJy5zdHlsZWd1aWRlLXdyYXBwZXInXG59ICV9XG57eyBwYXBlckVhZ2xlUGllKGNoYXJ0RGF0YU9iaiwgY2hhcnRPcHRpb25zKSB9fVxuXG57IyBVbmZpbGxlZCBwaWVzICN9XG57JSBzZXQgY2hhcnRPcHRpb25zID0ge1xuICAgIFwic2xpY2VDb2xvclwiOiB7XG4gICAgICAgIFwiX2RlZmF1bHRcIjogXCIjZGRkZGRkXCIsXG4gICAgICAgIFwicGl6emFcIjogXCJibHVlXCJcbiAgICB9LFxuICAgIFwiYXhlc1wiOiB7XG4gICAgICAgIFwieVwiOiB7XG4gICAgICAgICAgICBcIndpbmRvd0V4dGVudFwiOiBbMCwgMTUwXVxuICAgICAgICB9XG4gICAgfSxcbiAgICBzY3JvbGxUYXJnZXQ6ICcuc3R5bGVndWlkZS13cmFwcGVyJ1xufSAlfVxue3sgcGFwZXJFYWdsZVBpZShjaGFydERhdGFPYmosIGNoYXJ0T3B0aW9ucykgfX1cblxueyMgU2luZ2xlLXNsaWNlIHVuZmlsbGVkIHBpZXMgLyBhcnJheS1pbmRleGVkIHNsaWNlIGNvbG9ycyAjfVxueyUgc2V0IGNoYXJ0T3B0aW9ucyA9IHtcbiAgICBcInNsaWNlQ29sb3JcIjogWydvcmFuZ2UnLCAnI2RkZGRkZCddLFxuICAgIFwiYXhlc1wiOiB7XG4gICAgICAgIFwieFwiOiB7XG4gICAgICAgICAgICBcIndpbmRvd0V4dGVudFwiOiBbMCwgMTBdXG4gICAgICAgIH1cbiAgICB9LFxuICAgIHNjcm9sbFRhcmdldDogJy5zdHlsZWd1aWRlLXdyYXBwZXInXG59ICV9XG57eyBwYXBlckVhZ2xlUGllKDEsIGNoYXJ0T3B0aW9ucykgfX1cblxueyMgSW5uZXIgcmFkaXVzIGRlbW9uc3RyYXRpb24gI31cbnslIHNldCBjaGFydE9wdGlvbnMgPSB7XG4gICAgaW5uZXJSYWRpdXM6IDIwLjAsXG4gICAgc2Nyb2xsVGFyZ2V0OiAnLnN0eWxlZ3VpZGUtd3JhcHBlcidcbn0gJX1cbnt7IHBhcGVyRWFnbGVQaWUoY2hhcnREYXRhT2JqLCBjaGFydE9wdGlvbnMpIH19XG5cbnsjIFNsaWNlIHJhZGl1cyBkZW1vbnN0cmF0aW9uICN9XG57JSBzZXQgY2hhcnRPcHRpb25zID0ge1xuICAgIHNsaWNlUmFkaXVzOiAyMC4wLFxuICAgIHNjcm9sbFRhcmdldDogJy5zdHlsZWd1aWRlLXdyYXBwZXInXG59ICV9XG57eyBwYXBlckVhZ2xlUGllKGNoYXJ0RGF0YU9iaiwgY2hhcnRPcHRpb25zKSB9fVxuXG57IyBmb3IgcHVycG9zZXMgb2YgdGhpcyBleGFtcGxlIG9ubHkgI31cbjxzdHlsZT4ucGFwZXItZWFnbGUtY29udGFpbmVye3dpZHRoOjE2JTtkaXNwbGF5OmlubGluZS1ibG9jazt9PC9zdHlsZT5cblxuYGBgXG5cblBpZSBjaGFydC1zcGVjaWZpYyBvcHRpb25zIGFyZSBhcyBmb2xsb3dzOlxuXG58IE9wdGlvbiAgICAgICAgICAgICAgICAgICB8IERlc2NyaXB0aW9uXG58LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG58IGBhbmltYXRlU2xpY2VzYCAgICAgICAgICB8IEVuYWJsZXMgb3IgZGlzYWJsZXMgdGhlIGluaXRpYWwgcm90YXRpb24gYW5pbWF0aW9uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IGBpbml0aWFsQW5nbGVgICAgICAgICAgICB8IFJvdGF0ZXMgdGhlIGVudGlyZSBwaWUgdG8gYSBuZXcgb3JpZW50YXRpb24uICBEZWZhdWx0cyB0byBuZWdhdGl2ZSBQSSBvdmVyIDIuICAgICAgICB8XG58IGBzbGljZUNvbG9yYCAgICAgICAgICAgICB8IFNsaWNlIGNvbG9yIGRlZmluaXRpb24uICBDYW4gYmUgYW4gb2JqZWN0LCBhcnJheSwgb3IgZnVuY3Rpb24uICAgICAgICAgICAgICAgICAgICAgICB8XG58IGBpbm5lclJhZGl1c2AgICAgICAgICAgICB8IFJhZGl1cyBvZiB0cmFuc3BhcmVudCBhcmUgaW4gdGhlIGNlbnRlci4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IGBzbGljZVJhZGl1c2AgICAgICAgICAgICB8IFJhZGl1cy13aWR0aCBvZiBlYWNoIHNsaWNlIHRvIGNyZWF0ZSBhIFwiZG9udXRcIi4gVGhpcyBvcHRpb24gb3ZlcnJpZGVzIGBpbm5lclJhZGl1c2AuIHxcblxuKi9cblxuXG4vKmRvY1xuLS0tXG50aXRsZTogUGFwZXIgRWFnbGUgU2NhdHRlcnBsb3Rcbm5hbWU6IGEtcGFwZXItZWFnbGUtc2NhdHRlcnBsb3RcbmNhdGVnb3J5OiBDaGFydHMgJiBHcmFwaHMgLSBDaGFydHNcbmF1dGhvcnM6IFdlcyBEaU1pY2VsaVxuc2VsZWN0b3JzOlxudGVtcGxhdGU6XG4gICAgY2hhcnREYXRhOlxuICAgIC1cbiAgICAgICAgLSA0XG4gICAgICAgIC0gOFxuICAgIC1cbiAgICAgICAgLSA4XG4gICAgICAgIC0gMTVcbiAgICAtXG4gICAgICAgIC0gMTVcbiAgICAgICAgLSAzXG4gICAgLVxuICAgICAgICAtIDE2XG4gICAgICAgIC0gMjNcbiAgICAtXG4gICAgICAgIC0gNDJcbiAgICAgICAgLSAxMFxuICAgIHNpbmU6XG4gICAgLSAtIDBcbiAgICAgIC0gMFxuICAgIC0gLSAwLjNcbiAgICAgIC0gMC4yOTU1MjAyMDY2NjEzMzk1NVxuICAgIC0gLSAwLjZcbiAgICAgIC0gMC41NjQ2NDI0NzMzOTUwMzU0XG4gICAgLSAtIDAuODk5OTk5OTk5OTk5OTk5OVxuICAgICAgLSAwLjc4MzMyNjkwOTYyNzQ4MzNcbiAgICAtIC0gMS4yXG4gICAgICAtIDAuOTMyMDM5MDg1OTY3MjI2M1xuICAgIC0gLSAxLjVcbiAgICAgIC0gMC45OTc0OTQ5ODY2MDQwNTQ0XG4gICAgLSAtIDEuOFxuICAgICAgLSAwLjk3Mzg0NzYzMDg3ODE5NTFcbiAgICAtIC0gMi4xXG4gICAgICAtIDAuODYzMjA5MzY2NjQ4ODczN1xuICAgIC0gLSAyLjRcbiAgICAgIC0gMC42NzU0NjMxODA1NTExNTFcbiAgICAtIC0gMi42OTk5OTk5OTk5OTk5OTk3XG4gICAgICAtIDAuNDI3Mzc5ODgwMjMzODMwMTdcbiAgICAtIC0gMi45OTk5OTk5OTk5OTk5OTk2XG4gICAgICAtIDAuMTQxMTIwMDA4MDU5ODY3NjZcbiAgICAtIC0gMy4yOTk5OTk5OTk5OTk5OTk0XG4gICAgICAtIC0wLjE1Nzc0NTY5NDE0MzI0Nzc3XG4gICAgLSAtIDMuNTk5OTk5OTk5OTk5OTk5XG4gICAgICAtIC0wLjQ0MjUyMDQ0MzI5NDg1MTdcbiAgICAtIC0gMy44OTk5OTk5OTk5OTk5OTlcbiAgICAgIC0gLTAuNjg3NzY2MTU5MTgzOTczMVxuICAgIC0gLSA0LjE5OTk5OTk5OTk5OTk5OVxuICAgICAgLSAtMC44NzE1NzU3NzI0MTM1ODc3XG4gICAgLSAtIDQuNDk5OTk5OTk5OTk5OTk5XG4gICAgICAtIC0wLjk3NzUzMDExNzY2NTA5NjlcbiAgICAtIC0gNC43OTk5OTk5OTk5OTk5OTlcbiAgICAgIC0gLTAuOTk2MTY0NjA4ODM1ODQwOFxuICAgIC0gLSA1LjA5OTk5OTk5OTk5OTk5OVxuICAgICAgLSAtMC45MjU4MTQ2ODIzMjc3MzI4XG4gICAgLSAtIDUuMzk5OTk5OTk5OTk5OTk5XG4gICAgICAtIC0wLjc3Mjc2NDQ4NzU1NTk4ODNcbiAgICAtIC0gNS42OTk5OTk5OTk5OTk5OThcbiAgICAgIC0gLTAuNTUwNjg1NTQyNTk3NjM5MVxuICAgIC0gLSA1Ljk5OTk5OTk5OTk5OTk5OFxuICAgICAgLSAtMC4yNzk0MTU0OTgxOTg5Mjc2XG4gICAgLSAtIDYuMjgzXG4gICAgICAtIDBcbi0tLVxuXG5BIHNjYXR0ZXJwbG90IGNhbiBiZSBjb25zdHJ1Y3RlZCBieSBjYWxsaW5nIHRoaXMgbWFjcm8uICBUaGUgb25seSByZXF1aXJlZCBwYXJhbWV0ZXJcbmlzIHRoZSBjaGFydCBkYXRhLCBidXQgYSBzZXQgb2Ygb3B0aW9ucyBhbmQgYSBoZWlnaHQgY2FuIGFsc28gYmUgc3BlY2lmaWVkLlxuXG48cHJlPlxueyUgcmF3ICV9XG57JSBmcm9tIFwidGVtcGxhdGVzL2NvbW1vbi9kYXRhL2NoYXJ0cy9wYXBlci1lYWdsZS5udW5qXCIgaW1wb3J0IHBhcGVyRWFnbGVTY2F0dGVycGxvdCAlfVxueyUgZW5kcmF3ICV9XG48L3ByZT5cblxuXG5gYGBodG1sX2V4YW1wbGVcbnslIGZyb20gXCJ0ZW1wbGF0ZXMvY29tbW9uL2RhdGEvY2hhcnRzL3BhcGVyLWVhZ2xlLm51bmpcIiBpbXBvcnQgcGFwZXJFYWdsZVNjYXR0ZXJwbG90ICV9XG5cbnsjIEJhc2ljICN9XG57eyBwYXBlckVhZ2xlU2NhdHRlcnBsb3QoY2hhcnREYXRhLCB7IHNjcm9sbFRhcmdldDogJy5zdHlsZWd1aWRlLXdyYXBwZXInIH0pIH19XG5cbnsjIEZpeGVkIGNpcmNsZSByYWRpdXMgI31cbnslIHNldCBjaGFydE9wdGlvbnMgPSB7XG4gICAgXCJjaXJjbGVSYWRpdXNcIjogMjAuMCxcbiAgICBzY3JvbGxUYXJnZXQ6ICcuc3R5bGVndWlkZS13cmFwcGVyJ1xufSAlfVxue3sgcGFwZXJFYWdsZVNjYXR0ZXJwbG90KGNoYXJ0RGF0YSwgY2hhcnRPcHRpb25zKSB9fVxuXG57IyBDaXJjbGUgYm9yZGVyIHJhZGl1cyAjfVxueyUgc2V0IGNoYXJ0T3B0aW9ucyA9IHtcbiAgICBcImNpcmNsZUZpbGxDb2xvclwiOiBcInJnYmEoMCwwLDAsMClcIixcbiAgICBcImNpcmNsZUJvcmRlcldpZHRoXCI6IDIuMCxcbiAgICBcImNpcmNsZUJvcmRlckNvbG9yXCI6IFwicmVkXCIsXG4gICAgc2Nyb2xsVGFyZ2V0OiAnLnN0eWxlZ3VpZGUtd3JhcHBlcidcbn0gJX1cbnt7IHBhcGVyRWFnbGVTY2F0dGVycGxvdChjaGFydERhdGEsIGNoYXJ0T3B0aW9ucykgfX1cblxueyMgU2luZSEgI31cbnslIHNldCBjaGFydE9wdGlvbnMgPSB7XG4gICAgXCJheGVzXCI6IHtcbiAgICAgICAgXCJ5XCI6IHtcbiAgICAgICAgICAgIHRpY2tzOiBbMC4yNSwgMC41LCAwLjc1XSxcbiAgICAgICAgICAgIGdyaWRMaW5lczogWzAuNV1cbiAgICAgICAgfVxuICAgIH0sXG4gICAgc2Nyb2xsVGFyZ2V0OiAnLnN0eWxlZ3VpZGUtd3JhcHBlcidcbn0gJX1cbnt7IHBhcGVyRWFnbGVTY2F0dGVycGxvdChzaW5lLCBjaGFydE9wdGlvbnMpIH19XG5cbnsjIEF4aXMgTGFiZWxzICN9XG48ZGl2IGNsYXNzPVwiY2hhcnQtY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImNoYXJ0X190b3BcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNoYXJ0X19heGlzIGNoYXJ0X19heGlzLS15IGhpZGUtZm9yLXNtYWxsLW9ubHkgdGV4dC1jZW50ZXIgdGV4dC1zdHJvbmdcIj5ZIEF4aXM8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNoYXJ0X19maWd1cmVcIj5cbiAgICAgICAgICAgIHt7IHBhcGVyRWFnbGVTY2F0dGVycGxvdChzaW5lLCBjaGFydE9wdGlvbnMsIDMwMCkgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNoYXJ0X19heGlzIGNoYXJ0X19heGlzLS14IGhpZGUtZm9yLXNtYWxsLW9ubHkgdGV4dC1jZW50ZXIgdGV4dC1zdHJvbmdcIj5YIEF4aXM8L2Rpdj5cbjwvZGl2PlxuXG57IyBGaXhlZCB3aWR0aCAjfVxueyUgc2V0IGNoYXJ0T3B0aW9ucyA9IHtcbiAgICBcImF4ZXNcIjoge1xuICAgICAgICBcInlcIjoge1xuICAgICAgICAgICAgdGlja3M6IFswLjI1LCAwLjUsIDAuNzVdLFxuICAgICAgICAgICAgZ3JpZExpbmVzOiBbMC41XVxuICAgICAgICB9LFxuICAgICAgICBcInhcIjoge1xuICAgICAgICAgICAgdGlja3M6IFswLjVdLFxuICAgICAgICAgICAgZ3JpZExpbmVzOiBbMC41XSxcbiAgICAgICAgICAgIHdpbmRvd0V4dGVudDogXCJwYWQ6MC41XCJcbiAgICAgICAgfVxuICAgIH0sXG4gICAgXCJjaGFydFdpZHRoXCI6IDMwMCxcbiAgICBzY3JvbGxUYXJnZXQ6ICcuc3R5bGVndWlkZS13cmFwcGVyJ1xufSAlfVxue3sgcGFwZXJFYWdsZVNjYXR0ZXJwbG90KHNpbmUsIGNoYXJ0T3B0aW9ucykgfX1cblxueyMgTWFya2VycyAjfVxueyUgc2V0IGNoYXJ0T3B0aW9ucyA9IHtcbiAgICBcImF4ZXNcIjoge1xuICAgICAgICBcInhcIjoge1xuICAgICAgICAgICAgXCJ0aWNrTWFyZ2luc1wiOiBbMzAsIDBdXG4gICAgICAgIH1cbiAgICB9LFxuICAgIGNoYXJ0V2lkdGg6IDMwMCxcbiAgICBcIm1hcmtlcnNcIjogW1xuICAgICAgICB7XCJrZXlcIjogXCJ4XCIsIFwidmFsdWVcIjogNCwgXCJsYWJlbFwiOiBcIkhlbGxvLCBXb3JsZCFcIn1cbiAgICBdLFxuICAgIHNjcm9sbFRhcmdldDogJy5zdHlsZWd1aWRlLXdyYXBwZXInXG59ICV9XG57eyBwYXBlckVhZ2xlU2NhdHRlcnBsb3QoY2hhcnREYXRhLCBjaGFydE9wdGlvbnMpIH19XG5cbnsjIGZvciBwdXJwb3NlcyBvZiB0aGlzIGV4YW1wbGUgb25seSAjfVxuPHN0eWxlPi5wYXBlci1lYWdsZS1jb250YWluZXJ7d2lkdGg6MTYlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO30gLnBhcGVyLWVhZ2xlLWNvbnRhaW5lcjpsYXN0LW9mLXR5cGUge3dpZHRoOiAxMDAlO308L3N0eWxlPlxuXG5gYGBcblxuU2NhdHRlcnBsb3Qtc3BlY2lmaWMgb3B0aW9ucyBhcmUgYXMgZm9sbG93czpcblxufCBPcHRpb24gICAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvblxufC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG58IGBjaXJjbGVSYWRpdXNgICAgICAgICAgICB8IFNldHMgdGhlIG1heGltdW0gY2lyY2xlIHJhZGl1cyBmb3IgZWFjaCBwb2ludC4gIENhbiBiZSBhIGZpeGVkIG51bWJlciBvciBhIHN0cmluZyBpbmRpY2F0aW5nIGFuIGF4aXMuIHxcbnwgYGNpcmNsZUZpbGxDb2xvcmAgICAgICAgIHwgSW50ZXJpb3IgY29sb3Igb2YgY2lyY2xlcy4gIEVpdGhlciBzdHJpbmcgdmFsdWUgb3IgZnVuY3Rpb24gdGFraW5nIHRoZSBkYXR1bSBhbmQgY2lyY2xlIGluZGV4LiAgICAgICAgfFxufCBgY2lyY2xlQm9yZGVyV2lkdGhgICAgICAgfCBXaWR0aCBvZiBjaXJjbGUgYm9yZGVycy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IGBjaXJjbGVCb3JkZXJDb2xvcmAgICAgICB8IENvbG9yIG9mIGNpcmNsZSBib3JkZXJzLiAgRWl0aGVyIHN0cmluZyB2YWx1ZSBvciBmdW5jdGlvbiB0YWtpbmcgdGhlIGRhdHVtIGFuZCBjaXJjbGUgaW5kZXguICAgICAgICAgIHxcbnwgYHNjYXR0ZXJwbG90RXZlbnRzYCAgICAgIHwgSGFuZGxlcnMgZm9yIHN0YW5kYXJkIGV2ZW50cy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuXG4qL1xuXG4ucGFuZWwuc3RvY2stc3BhcmtsaW5lLXBhbmVsIHtcbiAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBhZGRpbmc6IHJlbS1jYWxjKDEwKTtcblxuICAgICYubGFzdCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgfVxuXG4gICAgc3ZnLmNoYXJ0IHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG59XG5cbi8vIE9wdGlvbmFsIHdyYXBwZXIgY2xhc3NlcyB0byBiZSB1c2VkIGluIG9yZGVyIHRvIGdlbmVyYXRlIGF4aXMgbGFiZWxzXG5cbi8vSG9sZHMgYm90aCB0aGUgZ3JhcGggYW5kICYgeS1heGlzXG4uY2hhcnRfX3RvcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY2hhcnRfX2ZpZ3VyZSB7XG4gICAgQGluY2x1ZGUgZnJvbShicC1tZWRpdW0pIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDI1cHg7XG4gICAgfVxufVxuXG4uY2hhcnRfX2F4aXMtLXkge1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwJTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICAtbXMtdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICB3aWR0aDogMzAwcHg7IC8vQ29ycmVzcG9uZHMgdG8gc2NhdHRlcnBsb3QgaGVpZ2h0OyBtYXkgcmVxdWlyZSBvdmVycmlkaW5nXG59XG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBDaGFydCBMZWdlbmRcbm5hbWU6IGEtY2hhcnQtbGVnZW5kXG5jYXRlZ29yeTogQ2hhcnRzICYgR3JhcGhzIC0gQ2hhcnRzXG5hdXRob3JzOiBHcmVnIEtvaG5cbnNlbGVjdG9yczpcbiAgICAtIC5jaGFydC1sZWdlbmRcbnRlbXBsYXRlOlxuICAgIGNoYXJ0TGVnZW5kOlxuICAgICAgICAtXG4gICAgICAgICAgICBsYWJlbDogJ1NjaG9vbCdcbiAgICAgICAgICAgIGNvbG9yOiAnIzIzNjVlYydcbiAgICAgICAgLVxuICAgICAgICAgICAgbGFiZWw6ICdEaXN0cmljdCdcbiAgICAgICAgICAgIGNvbG9yOiAnIzE5YWY5MydcbiAgICAgICAgLVxuICAgICAgICAgICAgbGFiZWw6ICdTdGF0ZSdcbiAgICAgICAgICAgIGNvbG9yOiAnI2U5YTkwNydcbiAgICBjaGFydExlZ2VuZDI6XG4gICAgICAgIC1cbiAgICAgICAgICAgIGxhYmVsOiAnQWR2YW5jZWQnXG4gICAgICAgICAgICBjb2xvcjogJyMwRTFFM0EnXG4gICAgICAgICAgICB2YWx1ZTogJzc4JSdcbiAgICAgICAgLVxuICAgICAgICAgICAgbGFiZWw6ICdTYXRpc2ZhY3RvcnknXG4gICAgICAgICAgICBjb2xvcjogJyMyMzY1RUMnXG4gICAgICAgICAgICB2YWx1ZTogJzE1JSdcbiAgICAgICAgLVxuICAgICAgICAgICAgbGFiZWw6ICdVbnNhdGlzZmFjdG9yeSdcbiAgICAgICAgICAgIGNvbG9yOiAnI0IyQkRENSdcbiAgICAgICAgICAgIHZhbHVlOiAnNyUnXG4tLS1cblxuQSBiYXNpYyBsZWdlbmQgdGhhdCBjYW4gYmUgdXNlZCB3aXRoIGFueSBvZiB0aGUgY2hhcnRzLlxuXG5gYGBodG1sX2V4YW1wbGVcbnslIGZyb20gXCJ0ZW1wbGF0ZXMvY29tbW9uL2RhdGEvY2hhcnRzL2NoYXJ0LWxlZ2VuZC5udW5qXCIgaW1wb3J0IGxlZ2VuZEJ1aWxkZXIgJX1cblxueyMgU2luZ2xlIGxpbmUsIHJpZ2h0LWFsaWduZWQsIHNxdWFyZSBpY29ucyAjfVxue3sgbGVnZW5kQnVpbGRlcihjaGFydExlZ2VuZCkgfX1cblxueyMgU2VwYXJhdGUgbGluZXMsIGxlZnQtYWxpZ25lZCwgY2lyY2xlIGljb25zLCBzbWFsbGVyIHRleHQgI31cbnt7IGxlZ2VuZEJ1aWxkZXIoXG4gICAgY2hhcnRMZWdlbmQyLFxuICAgIGFsaWduPSdsZWZ0JyxcbiAgICByb3VuZENvbG9ycz10cnVlLFxuICAgIGVsZW1lbnRzSW5saW5lPWZhbHNlLFxuICAgIGxlZ2VuZEVsQ2xhc3Nlcz0ndGV4dC1zbWFsbGVyJylcbn19XG5gYGBcbiovXG5cbi5jaGFydC1sZWdlbmRfX2VsIHtcblxuICAgICYuZGlzcGxheS1pbmxpbmUtYmxvY2stZm9yLXNtYWxsIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuXG4gICAgICAgIC8vVGhpcyBlbnN1cmVzIHByb3BlciBhbGlnbm1lbnQgZm9yIHJpZ2h0LSBhbmQgY2VudGVyLWp1c3RpZmllZCBsYXlvdXRzXG4gICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgIC50ZXh0LXJpZ2h0ICYsXG4gICAgICAgICAgICAudGV4dC1jZW50ZXIgJiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uY2hhcnQtbGVnZW5kX19jb2xvciB7XG4gICAgJjphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEzcHg7XG4gICAgICAgIHdpZHRoOiAxM3B4O1xuICAgIH1cblxuICAgICYtLXJvdW5kOmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgIH1cbn1cblxuLmNoYXJ0LWxlZ2VuZF9fbGFiZWwge1xuICAgIG1hcmdpbi1sZWZ0OiAycHg7XG59XG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBEaXN0cmlidXRpb24gQnJlYWtkb3duIENoYXJ0XG5uYW1lOiBhLXNjaG9vbC1kaXN0cmlidXRpb24tYnJlYWtkb3duXG5jYXRlZ29yeTogQ2hhcnRzICYgR3JhcGhzIC0gRGF0YSBDaGFydCBXaWRnZXRzXG5hdXRob3JzOiBUb21teSBNYXJzaGFsbFxuc2VsZWN0b3JzOlxuICAgIC0gLmRpc3RyaWJ1dGlvbi1icmVha2Rvd25cbnRlbXBsYXRlOlxuLS0tXG5cbkEgd2lkZ2V0IHRoYXQgc2hvd3MgdGhlIGdlbmRlciBkaXN0cmlidXRpb24gZm9yIGEgc2Nob29sLlxuXG5gYGAgaHRtbF9leGFtcGxlXG5cbnslIGZyb20gXCJ0ZW1wbGF0ZXMvY29tbW9uL2dlbmRlci1kaXN0cmlidXRpb24ubnVualwiIGltcG9ydCBnZW5kZXJfZGlzdHJpYnV0aW9uX2J1aWxkZXIgJX1cbjxkaXYgY2xhc3M9XCJmbGV4LXJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsLTEyIGZsZXgtbWVkaXVtLThcIj5cbiAgICAgICAge3sgZ2VuZGVyX2Rpc3RyaWJ1dGlvbl9idWlsZGVyKDYyKSB9fVxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbmBgYFxuXG4qL1xuJGJwLWRpc3RyaWJ1dGlvbi1icmVha2Rvd24tc3RhY2sgICAgICA6IFwiKG1pbi13aWR0aDogNTYwcHgpXCI7XG4kYnAtZGlzdHJpYnV0aW9uLWJyZWFrZG93bi1zdGFjay13aWRlIDogXCIobWluLXdpZHRoOiA3NjBweClcIjtcblxuLmRpc3RyaWJ1dGlvbi1icmVha2Rvd24ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xufVxuXG4uZGlzdHJpYnV0aW9uLWJyZWFrZG93bl9fY29sLS1zdGF0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBtZWRpYSAjeyRicC1kaXN0cmlidXRpb24tYnJlYWtkb3duLXN0YWNrfSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDZweDtcbiAgICAgICAgd2lkdGg6IDIwJTtcbiAgICB9XG5cbiAgICBAbWVkaWEgI3skYnAtZGlzdHJpYnV0aW9uLWJyZWFrZG93bi1zdGFja30ge1xuICAgICAgICB3aWR0aDogMTYlO1xuICAgIH1cbn1cblxuLmRpc3RyaWJ1dGlvbi1icmVha2Rvd25fX2NvbC0tdmlzdWFsIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBtZWRpYSAjeyRicC1kaXN0cmlidXRpb24tYnJlYWtkb3duLXN0YWNrfSB7XG4gICAgICAgIHdpZHRoOiA4MCU7XG4gICAgfVxuXG4gICAgQG1lZGlhICN7JGJwLWRpc3RyaWJ1dGlvbi1icmVha2Rvd24tc3RhY2std2lkZX0ge1xuICAgICAgICB3aWR0aDogODQlO1xuICAgIH1cbn1cblxuLmRpc3RyaWJ1dGlvbi1icmVha2Rvd25fX3BlcmNlbnRhZ2Uge1xuICAgIGNvbG9yOiAkZ3JlZW4tcHJvO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDM0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcblxuICAgIEBtZWRpYSAjeyRicC1kaXN0cmlidXRpb24tYnJlYWtkb3duLXN0YWNrfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrXG4gICAgfVxufVxuXG4uZGlzdHJpYnV0aW9uLWJyZWFrZG93bl9fcGVyY2VudGFnZS1jb3B5IHtcbiAgICBjb2xvcjogJGFsdW1pbnVtO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgbWFyZ2luLWxlZnQ6IDZweDtcblxuICAgIGJyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBAbWVkaWEgI3skYnAtZGlzdHJpYnV0aW9uLWJyZWFrZG93bi1zdGFja30ge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcblxuICAgICAgICBiciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uZGlzdHJpYnV0aW9uLWJyZWFrZG93bl9fdmlzdWFsIHtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC5pY29uIHtcbiAgICAgICAgbWFyZ2luOiAwIC0ycHg7XG4gICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgd2lkdGg6IDE4cHg7XG5cbiAgICAgICAgQG1lZGlhICN7JGJwLWRpc3RyaWJ1dGlvbi1icmVha2Rvd24tc3RhY2t9IHtcbiAgICAgICAgICAgIC8vIG1ha2UgNSByb3dzIG9mIDIwIG9uIGRlc2t0b3BcbiAgICAgICAgICAgIGhlaWdodDogMjdweDtcbiAgICAgICAgICAgIHdpZHRoOiAyN3B4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKmRvY1xuLS0tXG50aXRsZTogQmFyIFBlcmNlbnRhZ2UgQ2hhcnRcbm5hbWU6IGEtYmFyLXBlcmNlbnRhZ2UtY2hhcnRcbmNhdGVnb3J5OiBDaGFydHMgJiBHcmFwaHMgLSBEYXRhIENoYXJ0IFdpZGdldHNcbmF1dGhvcnM6IFRvbW15IE1hcnNoYWxsXG5zZWxlY3RvcnM6XG4gICAgLSAuYmFyLXBlcmNlbnRhZ2UtY2hhcnRcbnRlbXBsYXRlOlxuLS0tXG5cbkEgd2lkZ2V0IHRoYXQgc2hvd3MgcGVyY2VudGFnZXMgb2Ygc2Nob29sJ3MgZGl2ZXJzaXR5IGJyZWFrZG93bi5cblxuYGBgIGh0bWxfZXhhbXBsZVxueyUgc2V0IHJhY2VzID0gW1xuICAgIHtcbiAgICAgICAgbmFtZSAgOiAnQW1lcmljYW4gSW5kaWFuL0FsYXNrYW4gTmF0aXZlJyxcbiAgICAgICAgdmFsdWUgOiAnMCUnXG4gICAgfSx7XG4gICAgICAgIG5hbWUgIDogJ0FzaWFuJyxcbiAgICAgICAgdmFsdWUgOiAnMTglJ1xuICAgIH0se1xuICAgICAgICBuYW1lICA6ICdCbGFjaycsXG4gICAgICAgIHZhbHVlIDogJzE0JSdcbiAgICB9LHtcbiAgICAgICAgbmFtZSAgOiAnSGF3YWlpYW4gTmF0aXZlL1BhY2lmaWMgSXNsYW5kZXInLFxuICAgICAgICB2YWx1ZSA6ICcxJSdcbiAgICB9LHtcbiAgICAgICAgbmFtZSAgOiAnSGlzcGFuaWMnLFxuICAgICAgICB2YWx1ZSA6ICcxNSUnXG4gICAgfSx7XG4gICAgICAgIG5hbWUgIDogJ1doaXRlJyxcbiAgICAgICAgdmFsdWUgOiAnNDAlJ1xuICAgIH0se1xuICAgICAgICBuYW1lICA6ICdUd28gb3IgTW9yZSBSYWNlcycsXG4gICAgICAgIHZhbHVlIDogJzIlJ1xuICAgIH1cbl0gJX1cbjxkaXYgY2xhc3M9XCJmbGV4LXJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNtYWxsLTEyIGZsZXgtbWVkaXVtLThcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJhci1wZXJjZW50YWdlLWNoYXJ0XCI+XG4gICAgICAgICAgICB7JSBmb3IgcmFjZSBpbiByYWNlcyAlfVxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiYmFyLXBlcmNlbnRhZ2UtY2hhcnRfX2hlYWRpbmdcIj57eyByYWNlLm5hbWUgfX08L2gzPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhci1wZXJjZW50YWdlLWNoYXJ0X19zdGF0XCI+e3sgcmFjZS52YWx1ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHBhZC1ub3JtYWwgYmxvY2stdGlnaHQge3sgXCJib3JkZXItYm90dG9tXCIgaWYgbm90IGxvb3AubGFzdCB9fVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFyLXBlcmNlbnRhZ2UtY2hhcnRfX3Zpc3VhbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhci1wZXJjZW50YWdlLWNoYXJ0X192aXN1YWxfX2ZpbGxcIiBzdHlsZT1cIndpZHRoOiB7eyByYWNlLnZhbHVlIH19XCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgeyUgZW5kZm9yICV9XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5gYGBcblxuKi9cblxuLmJhci1wZXJjZW50YWdlLWNoYXJ0IHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLmJhci1wZXJjZW50YWdlLWNoYXJ0X19oZWFkaW5nIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5iYXItcGVyY2VudGFnZS1jaGFydF9fc3RhdCB7XG4gICAgY29sb3I6ICRncmVlbi1wcm87XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLmJhci1wZXJjZW50YWdlLWNoYXJ0X192aXN1YWwge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIGJhY2tncm91bmQ6ICNkZGQ7XG4gICAgaGVpZ2h0OiAxMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uYmFyLXBlcmNlbnRhZ2UtY2hhcnRfX3Zpc3VhbF9fZmlsbCB7XG4gICAgYmFja2dyb3VuZDogJGdyZWVuLXBybztcbiAgICBoZWlnaHQ6IDEwcHg7XG59XG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBQYXBlciBFYWdsZSBEb251dHNcbm5hbWU6IGEtcGFwZXItZWFnbGUtZG9udXRcbmNhdGVnb3J5OiBDaGFydHMgJiBHcmFwaHMgLSBDaGFydHNcbmF1dGhvcnM6IFdlcyBEaU1pY2VsaVxuc2VsZWN0b3JzOlxudGVtcGxhdGU6XG4gICAgY2hhcnREYXRhOlxuXG4tLS1cblxuQSBkb251dCBjYW4gYmUgY29uc3RydWN0ZWQgYnkgY2FsbGluZyB0aGlzIG1hY3JvLiAgVGhlIG9ubHkgcmVxdWlyZWQgcGFyYW1ldGVyXG5pcyB0aGUgZG9udXQgdmFsdWUsIGJ1dCBhIHNldCBvZiBvcHRpb25zIGFuZCBhIGhlaWdodCBjYW4gYWxzbyBiZSBzcGVjaWZpZWQuXG5cbjxwcmU+XG57JSByYXcgJX1cbnslIGZyb20gXCJ0ZW1wbGF0ZXMvY29tbW9uL2RhdGEvY2hhcnRzL3BhcGVyLWVhZ2xlLm51bmpcIiBpbXBvcnQgcGFwZXJFYWdsZURvbnV0ICV9XG57JSBlbmRyYXcgJX1cbjwvcHJlPlxuXG5JdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdG8gc3BlY2lmeSB0aGUgYGRvbnV0RXh0ZW50YCBvcHRpb24sIHdoaWNoIHdpbGwgbWFzayB0aGUgbm9ybWFsIGBheGVzLltheGlzXS53aW5kb3dFeHRlbnRgIHByb3BlcnR5LlxuXG5gYGBodG1sX2V4YW1wbGVcbnslIGZyb20gXCJ0ZW1wbGF0ZXMvY29tbW9uL2RhdGEvY2hhcnRzL3BhcGVyLWVhZ2xlLm51bmpcIiBpbXBvcnQgcGFwZXJFYWdsZURvbnV0ICV9XG5cbnsjIEJhc2ljICN9XG57JSBzZXQgY2hhcnRPcHRpb25zID0ge1xuICAgIFwiZG9udXRFeHRlbnRcIjogNSxcbiAgICBzY3JvbGxUYXJnZXQ6ICcuc3R5bGVndWlkZS13cmFwcGVyJ1xufSAlfVxue3sgcGFwZXJFYWdsZURvbnV0KDEsIGNoYXJ0T3B0aW9ucykgfX1cblxueyMgRGlmZmVyZW50IHdpZHRocyAjfVxueyUgc2V0IGNoYXJ0T3B0aW9ucyA9IHtcbiAgICBcImRvbnV0RXh0ZW50XCI6IDUsXG4gICAgXCJkb251dFdpZHRoXCI6IDUuMCxcbiAgICBzY3JvbGxUYXJnZXQ6ICcuc3R5bGVndWlkZS13cmFwcGVyJ1xufSAlfVxue3sgcGFwZXJFYWdsZURvbnV0KDQsIGNoYXJ0T3B0aW9ucykgfX1cblxueyMgRGlmZmVyZW50IGNvbG9ycyAjfVxueyUgc2V0IGNoYXJ0T3B0aW9ucyA9IHtcbiAgICBcImRvbnV0RXh0ZW50XCI6IDUsXG4gICAgXCJkb251dEZpbGxDb2xvclwiOiAnb3JhbmdlJyxcbiAgICBcImRvbnV0QkdDb2xvclwiOiAnYmxhY2snLFxuICAgIHNjcm9sbFRhcmdldDogJy5zdHlsZWd1aWRlLXdyYXBwZXInXG59ICV9XG57eyBwYXBlckVhZ2xlRG9udXQoMywgY2hhcnRPcHRpb25zKSB9fVxuXG57IyBGaWxsIGNsb2NrLXdpc2UgI31cbnslIHNldCBjaGFydE9wdGlvbnMgPSB7XG4gICAgXCJkb251dEV4dGVudFwiOiAxMCxcbiAgICBcImRvbnV0RmlsbENDV1wiOiBmYWxzZSxcbiAgICBzY3JvbGxUYXJnZXQ6ICcuc3R5bGVndWlkZS13cmFwcGVyJ1xufSAlfVxue3sgcGFwZXJFYWdsZURvbnV0KDksIGNoYXJ0T3B0aW9ucykgfX1cblxueyMgZm9yIHB1cnBvc2VzIG9mIHRoaXMgZXhhbXBsZSBvbmx5ICN9XG48c3R5bGU+LnBhcGVyLWVhZ2xlLWNvbnRhaW5lcnt3aWR0aDoxNiU7ZGlzcGxheTppbmxpbmUtYmxvY2s7fTwvc3R5bGU+XG5cbmBgYFxuXG5Eb251dC1zcGVjaWZpYyBvcHRpb25zIGFyZSBhcyBmb2xsb3dzOlxuXG58IE9wdGlvbiAgICAgICAgICAgICAgICAgICB8IERlc2NyaXB0aW9uXG58LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXxcbnwgYGRvbnV0SW5pdGlhbEFuZ2xlYCAgICAgIHwgVGhlIHplcm8tcG9pbnQgd2hlcmUgdGhlIGRvbnV0IGJlZ2lucyBmaWxsaW5nLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCBgZG9udXRGaWxsQ0NXYCAgICAgICAgICAgfCBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGRvbnV0IHNob3VsZCBmaWxsIGNvdW50ZXItY2xvY2t3aXNlIG9yIGNsb2Nrd2lzZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IGBkb251dFdpZHRoYCAgICAgICAgICAgICB8IFdpZHRoIG9mIHRoZSBkb251dC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgYGRvbnV0QkdDb2xvcmAgICAgICAgICAgIHwgQ29sb3IgZm9yIHRoZSB1bmZpbGxlZCBiYWNrZ3JvdW5kIHBvcnRpb24uICBTaG91bGQgYmUgYSBzdHJpbmcgdmFsdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCBgZG9udXRGaWxsQ29sb3JgICAgICAgICAgfCBDb2xvciBmb3IgZmlsbGVkIGFyZWFzLiAgQ2FuIGJlIGVpdGhlciBhIHN0cmluZyBvciBmdW5jdGlvbiB0YWtpbmcgYSBkYXR1bS4gICAgICAgICAgICAgICAgICAgICAgICAgICB8XG5cbiovXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBQYXBlciBFYWdsZSBGaXhlZCBXaWR0aFxubmFtZTogei1wYXBlci1lYWdsZS1maXhlZC13aWR0aFxuY2F0ZWdvcnk6IENoYXJ0cyAmIEdyYXBocyAtIENoYXJ0c1xuYXV0aG9yczogV2VzIERpTWljZWxpXG5zZWxlY3RvcnM6XG50ZW1wbGF0ZTpcbiAgICBjaGFydERhdGE6XG4gICAgLVxuICAgICAgICAtIGFcbiAgICAgICAgLSAxXG4gICAgLVxuICAgICAgICAtIGJcbiAgICAgICAgLSAyXG4gICAgLVxuICAgICAgICAtIGNcbiAgICAgICAgLSAzXG4gICAgLVxuICAgICAgICAtIGRcbiAgICAgICAgLSA0XG4gICAgLVxuICAgICAgICAtIGVcbiAgICAgICAgLSA1XG4gICAgLVxuICAgICAgICAtIGZcbiAgICAgICAgLSA2XG4tLS1cblxuRml4ZWQgd2lkdGggY2hhcnRzIHdpdGggXCJzdGlja3lcIiB5LWF4aXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5TZXQgdGhlIGBjaGFydFdpZHRoYCBvcHRpb24gdG8gYSBzcGVjaWZpYyB2YWx1ZSB0byBmb3JjZSB0aGUgY2hhcnQgdG8gcmVuZGVyIHdpdGggY29uc3RyYWluZWQgd2lkdGguXG5JZiB0aGUgcGFyZW50IGAucGFwZXItZWFnbGUtY29udGFpbmVyYCBlbGVtZW50IGJlY29tZXMgbmFycm93ZXIgdGhlbiB0aGUgaW50ZW5kZWQgd2lkdGgsIGEgaG9yaXpvbnRhbCBzY3JvbGxiYXJcbndpbGwgYXBwZWFyIHdpdGggYSBmaXhlZCB5LWF4aXMuICBQbGVhc2Ugb25seSBzZXQgdGhlIHktYXhpcyBvcmllbnRhdGlvbiB0byBgbGVmdGAgd2l0aCB0aGlzIGZlYXR1cmUhXG5cbllvdSBjYW4gYWxzbyBzZXQgYGNoYXJ0TWluV2lkdGhgIHRvIGtlZXAgcmVzcG9uc2l2ZSBzaXppbmcgdW50aWwgdGhlIHdpZHRoIHJlYWNoZXMgYSBjZXJ0YWluIG1pbmltdW0uXG5cbmBgYGh0bWxfZXhhbXBsZVxueyUgZnJvbSBcInRlbXBsYXRlcy9jb21tb24vZGF0YS9jaGFydHMvcGFwZXItZWFnbGUubnVualwiIGltcG9ydCBwYXBlckVhZ2xlQmFyICV9XG5cbnslIHNldCBjaGFydE9wdGlvbnMgPSB7XG4gICAgXCJjaGFydE1pbldpZHRoXCI6IDgwMCxcbiAgICBzY3JvbGxUYXJnZXQ6ICcuc3R5bGVndWlkZS13cmFwcGVyJ1xufSAlfVxue3sgcGFwZXJFYWdsZUJhcihjaGFydERhdGEsIGNoYXJ0T3B0aW9ucykgfX1cblxueyMgZm9yIHB1cnBvc2VzIG9mIHRoaXMgZXhhbXBsZSBvbmx5ICN9XG48c3R5bGU+LnBhcGVyLWVhZ2xlLWNvbnRhaW5lcnt3aWR0aDoxMDAlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO308L3N0eWxlPlxuXG5gYGBcblxuKi9cblxuLmxlZ2VuZC10YWJsZSB7XG4gICAgdHI6Zmlyc3QtY2hpbGQgdGQge1xuICAgICAgICBwYWRkaW5nOiAxNXB4IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODg4O1xuICAgIH1cblxuICAgIHRyOm5vdCg6Zmlyc3QtY2hpbGQpIHRkIHtcbiAgICAgICAgcGFkZGluZzogMTBweCAwO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbiAgICB9XG59XG5cblxuLmxlZ2VuZC1ncm91cCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgLy8gdGhpcyBnZXRzIHRoZSBhcnJvdyB0byBsaW5lIHVwIHdpdGggdGhlIHRleHQgKC5sZWdlbmQtdHJpYW5nbGUpXG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgLy8ga2VlcHMgaXQgY2VudGVyZWQgaW4gYSB0YWJsZSBjZWxsXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICYubGVnZW5kLWlubGluZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICAgIH1cblxuICAgIC5sZWdlbmQtc3F1YXJlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmbG9hdDogbGVmdDtcblxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogNnB4O1xuICAgICAgICBoZWlnaHQ6IDEycHg7XG4gICAgICAgIHdpZHRoOiAxMnB4O1xuICAgIH1cblxuICAgIC5sZWdlbmQtdHJpYW5nbGUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiAzcHg7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgd2lkdGg6IDhweDtcbiAgICB9XG5cbiAgICAubGVnZW5kLXN5bWJvbCB7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICB3aWR0aDogMXB4O1xuXG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIH1cblxuICAgIC5sZWdlbmQtdmVydGljYWwtYWxpZ24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbn1cblxuLnJlc3BvbnNpdmUtc21hbGwge1xuICAgIC5sZWdlbmQtc3F1YXJlIHtcbiAgICAgICAgdG9wOiAwO1xuICAgIH1cbn1cblxuLnBhcGVyLWVhZ2xlLWNvbnRhaW5lciB7XG4gICAgJGJvcmRlci1zdHlsZTogMXB4IHNvbGlkICNjY2M7XG4gICAgJGV2ZW4tYmc6ICNmN2Y3Zjc7XG4gICAgJGNoYXJ0LXdpZHRoOiA1MDBweDtcbiAgICAkY2hhcnQtaGVpZ2h0OiAyMDBweDtcbiAgICAkeS1heGlzLXdpZHRoOiA5NnB4O1xuXG4gICAgJi5ib3JkZXJlZCB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gICAgfVxuXG4gICAgLnBhcGVyLWVhZ2xlLXRhYmxlIHtcbiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAvL3dpZHRoOiAkY2hhcnQtd2lkdGggKyAkeS1heGlzLXdpZHRoO1xuICAgICAgICB0aGVhZCB7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICB0ciB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aCB7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAxcHggMnB4IDFweCAwcHggI2NjYztcbiAgICAgICAgfVxuXG4gICAgICAgIHRkLCB0aCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHggMTVweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5heGlzLWxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIHRvcDogLTEycHg7XG4gICAgICAgIGxlZnQ6IDNweDtcbiAgICB9XG5cbiAgICAucGFwZXItZWFnbGUteS1heGlzIHtcbiAgICAgICAgLmF4aXMtbGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAucGFwZXItZWFnbGUtdGFibGUtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBhcGVyLWVhZ2xlLXRhYmxlIHtcblxuICAgICAgICAgICAgdHIge1xuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBoZWlnaHQgaGVscGVyc1xuLmNoYXJ0LWhlaWdodC0xNzUtMjUwIHtcbiAgICBoZWlnaHQ6IDE3NXB4O1xuXG4gICAgQG1lZGlhICN7JG1lZGl1bX0ge1xuICAgICAgICBoZWlnaHQ6IDI1MHB4O1xuICAgIH1cbn1cblxuLmNoYXJ0LWhlaWdodC0yMzAtNDE1IHtcbiAgICBoZWlnaHQ6IDIzMHB4O1xuXG4gICAgQG1lZGlhICN7JG1lZGl1bX0ge1xuICAgICAgICBoZWlnaHQ6IDQxNXB4O1xuICAgIH1cbn1cblxuXG4uY2hhcnQtaGVpZ2h0LTE1MC0yMTAge1xuICAgIGhlaWdodDogMTUwcHg7XG5cbiAgICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bSkge1xuICAgICAgICBoZWlnaHQ6IDIxMHB4O1xuICAgIH1cbn1cblxuLypkb2Ncbi0tLVxudGl0bGU6IFBhcGVyIEVhZ2xlIFN0YWNrZWQgQmFyIENoYXJ0c1xubmFtZTogei1wYXBlci1lYWdsZS1zdGFja2VkXG5jYXRlZ29yeTogQ2hhcnRzICYgR3JhcGhzIC0gQ2hhcnRzXG5hdXRob3JzOiBXZXMgRGlNaWNlbGlcbnNlbGVjdG9yczpcbiAgICAtIC5jaGFydC5jaGFydC1iYXJcbnRlbXBsYXRlOlxuICAgIGNoYXJ0RGF0YTpcbiAgICAgIFwiOXRoIEdyYWRlXCI6XG4gICAgICAtIC0gYVxuICAgICAgICAtIDJcbiAgICAgIC0gLSBiXG4gICAgICAgIC0gMlxuICAgICAgLSAtIGNcbiAgICAgICAgLSAxXG4gICAgICAtIC0gZFxuICAgICAgICAtIDRcbiAgICAgIC0gLSBlXG4gICAgICAgIC0gM1xuICAgICAgLSAtIGZcbiAgICAgICAgLSAzXG4gICAgICAtIC0gZ1xuICAgICAgICAtIDRcbiAgICAgIFwiMTB0aCBHcmFkZVwiOlxuICAgICAgLSAtIGFcbiAgICAgICAgLSA1XG4gICAgICAtIC0gYlxuICAgICAgICAtIDNcbiAgICAgIC0gLSBjXG4gICAgICAgIC0gMlxuICAgICAgLSAtIGRcbiAgICAgICAgLSA0XG4gICAgICAtIC0gZVxuICAgICAgICAtIDZcbiAgICAgIC0gLSBmXG4gICAgICAgIC0gM1xuICAgICAgLSAtIGdcbiAgICAgICAgLSA0XG4gICAgICBcIjExdGggR3JhZGVcIjpcbiAgICAgIC0gLSBhXG4gICAgICAgIC0gM1xuICAgICAgLSAtIGJcbiAgICAgICAgLSAzXG4gICAgICAtIC0gY1xuICAgICAgICAtIDNcbiAgICAgIC0gLSBkXG4gICAgICAgIC0gMlxuICAgICAgLSAtIGVcbiAgICAgICAgLSA0XG4gICAgICAtIC0gZlxuICAgICAgICAtIDNcbiAgICAgIC0gLSBnXG4gICAgICAgIC0gNFxuICAgICAgXCIxMnRoIEdyYWRlXCI6XG4gICAgICAtIC0gYVxuICAgICAgICAtIDJcbiAgICAgIC0gLSBiXG4gICAgICAgIC0gMVxuICAgICAgLSAtIGNcbiAgICAgICAgLSAzXG4gICAgICAtIC0gZFxuICAgICAgICAtIDFcbiAgICAgIC0gLSBlXG4gICAgICAgIC0gMFxuICAgICAgLSAtIGZcbiAgICAgICAgLSAwXG4gICAgICAtIC0gZ1xuICAgICAgICAtIDVcbi0tLVxuXG5CeSBwYXNzaW5nIGEgdHJ1dGh5IGBzdGFja2VkYCB2YWx1ZSBpbiB0aGUgb3B0aW9ucywgZWFjaCBzZXJpZXMgd2lsbCBiZSBzdGFja2VkLlxuXG5JdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdG8gc3BlY2lmeSBgYXhlcy55LndpbmRvd0V4dGVudGAsIHdoaWNoIGRldGVybWluZXMgdGhlIG51bWVyaWNhbCByYW5nZSB0byBkaXNwbGF5LlxuXG5gYGBodG1sX2V4YW1wbGVcbnslIGZyb20gXCJ0ZW1wbGF0ZXMvY29tbW9uL2RhdGEvY2hhcnRzL3BhcGVyLWVhZ2xlLm51bmpcIiBpbXBvcnQgcGFwZXJFYWdsZUJhciAlfVxuXG57JSBzZXQgY2hhcnRPcHRpb25zID0ge1xuICAgIFwic3RhY2tlZFwiOiB0cnVlLFxuICAgIFwiYXhlc1wiOiB7XG4gICAgICAgIFwieVwiOiB7XG4gICAgICAgICAgICBcIndpbmRvd0V4dGVudFwiOiBbMCwgMzBdLFxuICAgICAgICAgICAgXCJjaGFydEFyZWFNYXJnaW5zXCI6IFs1MCwgNTBdXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFwiYmFyQ29sb3JcIjoge1xuICAgICAgICBcImFcIjogXCIjMGQyOTRhXCIsXG4gICAgICAgIFwiYlwiOiBcIiMyYzYyYWNcIixcbiAgICAgICAgXCJjXCI6IFwiIzIxN2NlY1wiLFxuICAgICAgICBcImRcIjogXCIjYThlOGUwXCIsXG4gICAgICAgIFwiZVwiOiBcIiM0ZGQ1YzVcIixcbiAgICAgICAgXCJmXCI6IFwiIzAwYmJhNFwiLFxuICAgICAgICBcImdcIjogXCIjMDA3YjZiXCJcbiAgICB9LFxuICAgIFwiYmFyR3JvdXBTY2FsZVwiOiAwLjUsXG4gICAgc2Nyb2xsVGFyZ2V0OiAnLnN0eWxlZ3VpZGUtd3JhcHBlcidcbn0gJX1cbnt7IHBhcGVyRWFnbGVCYXIoY2hhcnREYXRhLCBjaGFydE9wdGlvbnMsIDMwMCkgfX1cblxueyMgZm9yIHB1cnBvc2VzIG9mIHRoaXMgZXhhbXBsZSBvbmx5ICN9XG48c3R5bGU+LnBhcGVyLWVhZ2xlLWNvbnRhaW5lcnt3aWR0aDo1MDBweDtkaXNwbGF5OmlubGluZS1ibG9jazt9PC9zdHlsZT5cblxuYGBgXG5cbiovXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBQYXBlciBFYWdsZSBIb3Jpem9udGFsIEJhciBDaGFydHNcbm5hbWU6IHotcGFwZXItZWFnbGUtaG9yaXpvbnRhbFxuY2F0ZWdvcnk6IENoYXJ0cyAmIEdyYXBocyAtIENoYXJ0c1xuYXV0aG9yczogV2VzIERpTWljZWxpXG5zZWxlY3RvcnM6XG4gICAgLSAuY2hhcnQuY2hhcnQtYmFyXG50ZW1wbGF0ZTpcbiAgICBjaGFydERhdGE6XG4gICAgICBcIjl0aCBHcmFkZVwiOlxuICAgICAgLSAtIGFcbiAgICAgICAgLSAyXG4gICAgICAtIC0gYlxuICAgICAgICAtIDJcbiAgICAgIC0gLSBjXG4gICAgICAgIC0gMVxuICAgICAgLSAtIGRcbiAgICAgICAgLSA0XG4gICAgICAtIC0gZVxuICAgICAgICAtIDNcbiAgICAgIC0gLSBmXG4gICAgICAgIC0gM1xuICAgICAgLSAtIGdcbiAgICAgICAgLSA0XG4gICAgICBcIjEwdGggR3JhZGVcIjpcbiAgICAgIC0gLSBhXG4gICAgICAgIC0gNVxuICAgICAgLSAtIGJcbiAgICAgICAgLSAzXG4gICAgICAtIC0gY1xuICAgICAgICAtIDJcbiAgICAgIC0gLSBkXG4gICAgICAgIC0gNFxuICAgICAgLSAtIGVcbiAgICAgICAgLSA2XG4gICAgICAtIC0gZlxuICAgICAgICAtIDNcbiAgICAgIC0gLSBnXG4gICAgICAgIC0gNFxuICAgICAgXCIxMXRoIEdyYWRlXCI6XG4gICAgICAtIC0gYVxuICAgICAgICAtIDNcbiAgICAgIC0gLSBiXG4gICAgICAgIC0gM1xuICAgICAgLSAtIGNcbiAgICAgICAgLSAzXG4gICAgICAtIC0gZFxuICAgICAgICAtIDJcbiAgICAgIC0gLSBlXG4gICAgICAgIC0gNFxuICAgICAgLSAtIGZcbiAgICAgICAgLSAzXG4gICAgICAtIC0gZ1xuICAgICAgICAtIDRcbiAgICAgIFwiMTJ0aCBHcmFkZVwiOlxuICAgICAgLSAtIGFcbiAgICAgICAgLSAyXG4gICAgICAtIC0gYlxuICAgICAgICAtIDFcbiAgICAgIC0gLSBjXG4gICAgICAgIC0gM1xuICAgICAgLSAtIGRcbiAgICAgICAgLSAxXG4gICAgICAtIC0gZVxuICAgICAgICAtIDBcbiAgICAgIC0gLSBmXG4gICAgICAgIC0gMFxuICAgICAgLSAtIGdcbiAgICAgICAgLSA1XG4tLS1cblxuQnkgcGFzc2luZyBhIHRydXRoeSBgc3RhY2tlZGAgdmFsdWUgaW4gdGhlIG9wdGlvbnMsIGVhY2ggc2VyaWVzIHdpbGwgYmUgc3RhY2tlZC5cblxuSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRvIHNwZWNpZnkgYGF4ZXMueS53aW5kb3dFeHRlbnRgLCB3aGljaCBkZXRlcm1pbmVzIHRoZSBudW1lcmljYWwgcmFuZ2UgdG8gZGlzcGxheS5cblxuYGBgaHRtbF9leGFtcGxlXG57JSBmcm9tIFwidGVtcGxhdGVzL2NvbW1vbi9kYXRhL2NoYXJ0cy9wYXBlci1lYWdsZS5udW5qXCIgaW1wb3J0IHBhcGVyRWFnbGVCYXIgJX1cblxueyUgc2V0IGNoYXJ0T3B0aW9ucyA9IHtcbiAgICBcImhvcml6b250YWxcIjogZmFsc2UsXG4gICAgXCJzdGFja2VkXCI6IHRydWUsXG4gICAgXCJiYXJDb2xvclwiOiB7XG4gICAgICAgIFwiYVwiOiBcIiMwZDI5NGFcIixcbiAgICAgICAgXCJiXCI6IFwiIzJjNjJhY1wiLFxuICAgICAgICBcImNcIjogXCIjMjE3Y2VjXCIsXG4gICAgICAgIFwiZFwiOiBcIiNhOGU4ZTBcIixcbiAgICAgICAgXCJlXCI6IFwiIzRkZDVjNVwiLFxuICAgICAgICBcImZcIjogXCIjMDBiYmE0XCIsXG4gICAgICAgIFwiZ1wiOiBcIiMwMDdiNmJcIlxuICAgIH0sXG4gICAgXCJiYXJHcm91cFNjYWxlXCI6IDAuNzUsXG4gICAgXCJiYXJHcm91cFNwYWNpbmdcIjogXCJwYWRkZWRcIixcbiAgICBzY3JvbGxUYXJnZXQ6ICcuc3R5bGVndWlkZS13cmFwcGVyJ1xufSAlfVxue3sgcGFwZXJFYWdsZUJhcihjaGFydERhdGEsIGNoYXJ0T3B0aW9ucywgMzAwKSB9fVxuXG57IyBmb3IgcHVycG9zZXMgb2YgdGhpcyBleGFtcGxlIG9ubHkgI31cbjxzdHlsZT4ucGFwZXItZWFnbGUtY29udGFpbmVye3dpZHRoOjUwMHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO308L3N0eWxlPlxuXG5gYGBcblxuKi9cblxuLypkb2Ncbi0tLVxudGl0bGU6IFBhcGVyIEVhZ2xlIEJveCBhbmQgV2hpc2tlciBQbG90XG5uYW1lOiB6LXBhcGVyLWVhZ2xlLWJveC13aGlza2VyXG5jYXRlZ29yeTogQ2hhcnRzICYgR3JhcGhzIC0gQ2hhcnRzXG5hdXRob3JzOiBXZXMgRGlNaWNlbGlcbnNlbGVjdG9yczpcbiAgICAtIC5jaGFydC5jaGFydC1ib3gtd2hpc2tlclxudGVtcGxhdGU6XG4gICAgY2hhcnREYXRhOlxuICAgIC0gLSBBXG4gICAgICAtIDNcbiAgICAgIC0gMTFcbiAgICAgIC0gMThcbiAgICAgIC0gNThcbiAgICAgIC0gNjFcbiAgICAgIC0gNDJcbiAgICAgIC0gMzRcbiAgICAgIC0gMjlcbiAgICAtIC0gQlxuICAgICAgLSA5XG4gICAgICAtIDIwXG4gICAgICAtIDUxXG4gICAgICAtIDgxXG4gICAgICAtIDg5XG4gICAgICAtIDgxXG4gICAgICAtIDMxXG4gICAgICAtIDQyXG4gICAgLSAtIENcbiAgICAgIC0gOFxuICAgICAgLSAzMFxuICAgICAgLSA3OVxuICAgICAgLSA4N1xuICAgICAgLSA5MFxuICAgICAgLSA3N1xuICAgICAgLSA2OVxuICAgICAgLSA4M1xuICAgIC0gLSBEXG4gICAgICAtIDMxXG4gICAgICAtIDUwXG4gICAgICAtIDc4XG4gICAgICAtIDg5XG4gICAgICAtIDkxXG4gICAgICAtIDcxXG4gICAgICAtIDg0XG4gICAgICAtIDgxXG4gICAgLSAtIEVcbiAgICAgIC0gMzBcbiAgICAgIC0gMzNcbiAgICAgIC0gNzNcbiAgICAgIC0gNzZcbiAgICAgIC0gODBcbiAgICAgIC0gNTJcbiAgICAgIC0gMzlcbiAgICAgIC0gNzNcbiAgICAtIC0gRlxuICAgICAgLSAzNlxuICAgICAgLSAzOVxuICAgICAgLSA4NFxuICAgICAgLSA5M1xuICAgICAgLSA5NFxuICAgICAgLSA0MFxuICAgICAgLSA1MVxuICAgICAgLSA0NlxuICAgIC0gLSBHXG4gICAgICAtIDM5XG4gICAgICAtIDUxXG4gICAgICAtIDY4XG4gICAgICAtIDkzXG4gICAgICAtIDkzXG4gICAgICAtIDYwXG4gICAgICAtIDU1XG4gICAgICAtIDc2XG4gICAgLSAtIEhcbiAgICAgIC0gMlxuICAgICAgLSA3XG4gICAgICAtIDQ2XG4gICAgICAtIDU4XG4gICAgICAtIDY1XG4gICAgICAtIDUwXG4gICAgICAtIDE3XG4gICAgICAtIDM0XG4gICAgLSAtIElcbiAgICAgIC0gMlxuICAgICAgLSAxMFxuICAgICAgLSAyNlxuICAgICAgLSA2NVxuICAgICAgLSA3NFxuICAgICAgLSAyN1xuICAgICAgLSA1MVxuICAgICAgLSAxM1xuICAgIC0gLSBKXG4gICAgICAtIDZcbiAgICAgIC0gMjVcbiAgICAgIC0gNTRcbiAgICAgIC0gOTBcbiAgICAgIC0gOTFcbiAgICAgIC0gMzJcbiAgICAgIC0gNDdcbiAgICAgIC0gNjlcbi0tLVxuXG5Cb3ggYW5kIHdoaXNrZXIgcGxvdC4gIFRoZSBZLCBaLCBXLCBQLCBhbmQgUSBheGVzIGluZGljYXRlIHRoZSBtaW5pbXVtLCAxc3QgcXVhcnRpbGUsIG1lZGlhbiwgM3JkIHF1YXJ0aWxlLCBhbmQgbWF4aW11bSwgcmVzcGVjdGl2ZWx5LiAgRXZlcnkgYWRkaXRpb25hbCBheGlzIGRlZmluZXMgYW4gYXJyb3csXG53aXRoIHRoZSBmaXJzdCBvbiB0aGUgbGVmdCBhbmQgZXZlcnkgc3Vic2VxdWVudCBvbmUgb24gdGhlIHJpZ2h0LlxuXG5Cb3ggYW5kIFdoaXNrZXItc3BlY2lmaWMgb3B0aW9ucyBhcmUgYXMgZm9sbG93czpcblxufCBPcHRpb24gICAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvblxufC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG58IGBlbmFibGVBbmltYXRpb25gICAgICAgICB8IEVuYWJsZSBvciBkaXNhYmxlIHRoZSBpbml0aWFsIGV4cGFuZGluZyBhbmltYXRpb24uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgYGJveFdpZHRoU2NhbGVgICAgICAgICAgIHwgT3ZlcmFsbCBzY2FsaW5nIGZhY3RvciBmb3IgZWFjaCBib3guICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCBgYm94U3BhY2luZ01vZGVgICAgICAgICAgfCBMYXlvdXQgbWV0aG9kLiAgQ2hvb3NlIGZyb20gXCJiZXR3ZWVuXCIsIFwiYXJvdW5kXCIsIG9yIFwicGFkZGVkXCIuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IGBib3hDb2xvcmAgICAgICAgICAgICAgICB8IENvbG9yIG9mIGVhY2ggYm94LiAgQ2FuIGJlIGEgZnVuY3Rpb24sIHN0cmluZywgYXJyYXksIG9yIG9iamVjdC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgYGFycm93Q29sb3JzYCAgICAgICAgICAgIHwgQ29sb3Igb2YgYXJyb3cuICBDYW4gYmUgYSBmdW5jdGlvbiwgc3RyaW5nLCBvciBhcnJheS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCBgYXJyb3dIZWlnaHRgICAgICAgICAgICAgfCBHZW5lcmFsIHNpemUgb2YgZWFjaCBhcnJvdy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IGB3aGlza2VyV2lkdGhgICAgICAgICAgICB8IFdpZHRoIG9mIHRoZSB3aGlza2VyIGxpbmVzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgYHdoaXNrZXJTdGVtV2lkdGhgICAgICAgIHwgRGlzdGFuY2UgdGhhdCB0aGUgXCJUXCIgc3RlbXMgd2lsbCBleHRlbmQgZnJvbSB0aGUgZW5kcyBvZiB0aGUgXCJ3aGlza2Vyc1wiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcblxuYGBgaHRtbF9leGFtcGxlXG57JSBmcm9tIFwidGVtcGxhdGVzL2NvbW1vbi9kYXRhL2NoYXJ0cy9wYXBlci1lYWdsZS5udW5qXCIgaW1wb3J0IHBhcGVyRWFnbGVCb3hXaGlza2VyICV9XG5cbnt7IHBhcGVyRWFnbGVCb3hXaGlza2VyKGNoYXJ0RGF0YSwgeyBzY3JvbGxUYXJnZXQ6ICcuc3R5bGVndWlkZS13cmFwcGVyJyB9LCAzMDApIH19XG5cbnsjIGZvciBwdXJwb3NlcyBvZiB0aGlzIGV4YW1wbGUgb25seSAjfVxuPHN0eWxlPi5wYXBlci1lYWdsZS1jb250YWluZXJ7d2lkdGg6MTAwJTtkaXNwbGF5OmlubGluZS1ibG9jazt9PC9zdHlsZT5cblxuYGBgXG5cbiovXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBQYXBlciBFYWdsZSBNZXRlclxubmFtZTogei1wYXBlci1lYWdsZS1tZXRlclxuY2F0ZWdvcnk6IENoYXJ0cyAmIEdyYXBocyAtIENoYXJ0c1xuYXV0aG9yczogV2VzIERpTWljZWxpXG5zZWxlY3RvcnM6XG4gICAgLSAuY2hhcnQuY2hhcnQtbWV0ZXJcbnRlbXBsYXRlOlxuLS0tXG5cblNwZWNpYWxpemF0aW9uIG9mIHBpZSBjaGFydHMgdGhhdCByZW5kZXJzIGhhbGYtY2lyY2xlcy4gIFRoZXJlIGFyZSBubyBhZGRpdGlvbmFsIG9wdGlvbnMgYXQgdGhpcyB0aW1lLlxuTm90ZSB0aGF0IGBpbml0aWFsQW5nbGVgIGFuZCBgdG90YWxBbmdsZWAgb3B0aW9ucyBhcmUgb3ZlcnJpZGRlbiBpbiBtZXRlcnMuXG5cbjxwcmU+XG57JSByYXcgJX1cbnslIGZyb20gXCJ0ZW1wbGF0ZXMvY29tbW9uL2RhdGEvY2hhcnRzL3BhcGVyLWVhZ2xlLm51bmpcIiBpbXBvcnQgcGFwZXJFYWdsZU1ldGVyICV9XG57JSBlbmRyYXcgJX1cbjwvcHJlPlxuXG5cbnwgT3B0aW9uICAgICAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb25cbnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxufCBgdGV4dFNpemVgICAgICAgICAgICAgICAgfCBUZXh0IHNpemUgb2YgdGhlIG51bWJlciBpbnNpZGUgdGhlIG1ldGVyLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IGB0ZXh0WU9mZnNldGAgICAgICAgICAgICB8IFktb2Zmc2V0IG9mIHRoZSB0ZXh0IGZyb20gdGhlIGJvdHRvbSBvZiB0aGUgbWV0ZXIuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgYHRleHRHZW5lcmF0b3JgICAgICAgICAgIHwgR2VuZXJhdG9yIGZ1bmN0aW9uIGZvciB0aGUgdGV4dC4gIFRha2VzIHRoZSBpbnB1dCB2YWx1ZSBhbmQgc2hvdWxkIHJldHVybiBhIGZvcm1hdHRlZCBzdHJpbmcuICAgICAgICAgfFxuXG5gYGBodG1sX2V4YW1wbGVcbnslIGZyb20gXCJ0ZW1wbGF0ZXMvY29tbW9uL2RhdGEvY2hhcnRzL3BhcGVyLWVhZ2xlLm51bmpcIiBpbXBvcnQgcGFwZXJFYWdsZU1ldGVyICV9XG5cbnsjIFR5cGljYWwgZXhhbXBsZSAjfVxueyUgc2V0IGNoYXJ0T3B0aW9ucyA9IHtcbiAgICBcImF4ZXNcIjoge1xuICAgICAgICBcInhcIjoge1xuICAgICAgICAgICAgXCJ3aW5kb3dFeHRlbnRcIjogWzAsIDEwXVxuICAgICAgICB9XG4gICAgfSxcbiAgICBcInNsaWNlQ29sb3JcIjogW1wiYmx1ZVwiLCBcIiNkZGRkZGRcIl0sXG4gICAgc2Nyb2xsVGFyZ2V0OiAnLnN0eWxlZ3VpZGUtd3JhcHBlcidcbn0gJX1cbnt7IHBhcGVyRWFnbGVNZXRlcig2LCBjaGFydE9wdGlvbnMpIH19XG5cbnsjIFRoaWNrICN9XG57JSBzZXQgY2hhcnRPcHRpb25zID0ge1xuICAgIFwiYXhlc1wiOiB7XG4gICAgICAgIFwieFwiOiB7XG4gICAgICAgICAgICBcIndpbmRvd0V4dGVudFwiOiBbMCwgMTBdXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFwic2xpY2VDb2xvclwiOiBbXCJjcmltc29uXCIsIFwicHVycGxlXCJdLFxuICAgIFwic2xpY2VSYWRpdXNcIjogNTAuMCxcbiAgICBzY3JvbGxUYXJnZXQ6ICcuc3R5bGVndWlkZS13cmFwcGVyJ1xufSAlfVxue3sgcGFwZXJFYWdsZU1ldGVyKDMsIGNoYXJ0T3B0aW9ucykgfX1cblxueyMgZm9yIHB1cnBvc2VzIG9mIHRoaXMgZXhhbXBsZSBvbmx5ICN9XG48c3R5bGU+LnBhcGVyLWVhZ2xlLWNvbnRhaW5lcnt3aWR0aDozMyU7ZGlzcGxheTppbmxpbmUtYmxvY2s7fTwvc3R5bGU+XG5cbmBgYFxuXG4qL1xuXG4vKmRvY1xuLS0tXG50aXRsZTogUGFwZXIgRWFnbGUgTGluZSBDaGFydFxubmFtZTogei1wYXBlci1lYWdsZS1saW5lXG5jYXRlZ29yeTogQ2hhcnRzICYgR3JhcGhzIC0gQ2hhcnRzXG5hdXRob3JzOiBXZXMgRGlNaWNlbGlcbnNlbGVjdG9yczpcbiAgICAtIC5jaGFydC5jaGFydC1saW5lXG50ZW1wbGF0ZTpcbiAgICBjaGFydERhdGE6XG4gICAgICAgIFZhbmd1YXJkIFRvdGFsIFN0b2NrIE1hcmtldDpcbiAgICAgICAgLSAtIDEyLzIwMDRcbiAgICAgICAgICAtIDMwMDBcbiAgICAgICAgLSAtIDYvMjAwOFxuICAgICAgICAgIC0gMTkwMDBcbiAgICAgICAgLSAtIDEwLzIwMTNcbiAgICAgICAgICAtIDI0MDAwXG4gICAgICAgIC0gLSA3LzIwMTVcbiAgICAgICAgICAtIDUwMDBcbiAgICAgICAgUyZQIDUwMCBUUiBVU0Q6XG4gICAgICAgIC0gLSAxMi8yMDA0XG4gICAgICAgICAgLSA5MDAwXG4gICAgICAgIC0gLSA2LzIwMDhcbiAgICAgICAgICAtIDE5NTAwXG4gICAgICAgIC0gLSAxMC8yMDEzXG4gICAgICAgICAgLSAyMzUwMFxuICAgICAgICAtIC0gNy8yMDE1XG4gICAgICAgICAgLSA3MDAwXG4gICAgdHJpZ0Z1bmN0aW9uczpcbiAgICAgICAgc2luZTpcbiAgICAgICAgLSAtIDBcbiAgICAgICAgICAtIDBcbiAgICAgICAgLSAtIDAuM1xuICAgICAgICAgIC0gMC4yOTU1MjAyMDY2NjEzMzk1NVxuICAgICAgICAtIC0gMC42XG4gICAgICAgICAgLSAwLjU2NDY0MjQ3MzM5NTAzNTRcbiAgICAgICAgLSAtIDAuODk5OTk5OTk5OTk5OTk5OVxuICAgICAgICAgIC0gMC43ODMzMjY5MDk2Mjc0ODMzXG4gICAgICAgIC0gLSAxLjJcbiAgICAgICAgICAtIDAuOTMyMDM5MDg1OTY3MjI2M1xuICAgICAgICAtIC0gMS41XG4gICAgICAgICAgLSAwLjk5NzQ5NDk4NjYwNDA1NDRcbiAgICAgICAgLSAtIDEuOFxuICAgICAgICAgIC0gMC45NzM4NDc2MzA4NzgxOTUxXG4gICAgICAgIC0gLSAyLjFcbiAgICAgICAgICAtIDAuODYzMjA5MzY2NjQ4ODczN1xuICAgICAgICAtIC0gMi40XG4gICAgICAgICAgLSAwLjY3NTQ2MzE4MDU1MTE1MVxuICAgICAgICAtIC0gMi42OTk5OTk5OTk5OTk5OTk3XG4gICAgICAgICAgLSAwLjQyNzM3OTg4MDIzMzgzMDE3XG4gICAgICAgIC0gLSAyLjk5OTk5OTk5OTk5OTk5OTZcbiAgICAgICAgICAtIDAuMTQxMTIwMDA4MDU5ODY3NjZcbiAgICAgICAgLSAtIDMuMjk5OTk5OTk5OTk5OTk5NFxuICAgICAgICAgIC0gLTAuMTU3NzQ1Njk0MTQzMjQ3NzdcbiAgICAgICAgLSAtIDMuNTk5OTk5OTk5OTk5OTk5XG4gICAgICAgICAgLSAtMC40NDI1MjA0NDMyOTQ4NTE3XG4gICAgICAgIC0gLSAzLjg5OTk5OTk5OTk5OTk5OVxuICAgICAgICAgIC0gLTAuNjg3NzY2MTU5MTgzOTczMVxuICAgICAgICAtIC0gNC4xOTk5OTk5OTk5OTk5OTlcbiAgICAgICAgICAtIC0wLjg3MTU3NTc3MjQxMzU4NzdcbiAgICAgICAgLSAtIDQuNDk5OTk5OTk5OTk5OTk5XG4gICAgICAgICAgLSAtMC45Nzc1MzAxMTc2NjUwOTY5XG4gICAgICAgIC0gLSA0Ljc5OTk5OTk5OTk5OTk5OVxuICAgICAgICAgIC0gLTAuOTk2MTY0NjA4ODM1ODQwOFxuICAgICAgICAtIC0gNS4wOTk5OTk5OTk5OTk5OTlcbiAgICAgICAgICAtIC0wLjkyNTgxNDY4MjMyNzczMjhcbiAgICAgICAgLSAtIDUuMzk5OTk5OTk5OTk5OTk5XG4gICAgICAgICAgLSAtMC43NzI3NjQ0ODc1NTU5ODgzXG4gICAgICAgIC0gLSA1LjY5OTk5OTk5OTk5OTk5OFxuICAgICAgICAgIC0gLTAuNTUwNjg1NTQyNTk3NjM5MVxuICAgICAgICAtIC0gNS45OTk5OTk5OTk5OTk5OThcbiAgICAgICAgICAtIC0wLjI3OTQxNTQ5ODE5ODkyNzZcbiAgICAgICAgLSAtIDYuMjgzXG4gICAgICAgICAgLSAwXG4gICAgICAgIGNvc2luZTpcbiAgICAgICAgLSAtIDBcbiAgICAgICAgICAtIDFcbiAgICAgICAgLSAtIDAuM1xuICAgICAgICAgIC0gMC45NTUzMzY0ODkxMjU2MDZcbiAgICAgICAgLSAtIDAuNlxuICAgICAgICAgIC0gMC44MjUzMzU2MTQ5MDk2NzgzXG4gICAgICAgIC0gLSAwLjg5OTk5OTk5OTk5OTk5OTlcbiAgICAgICAgICAtIDAuNjIxNjA5OTY4MjcwNjY0NVxuICAgICAgICAtIC0gMS4yXG4gICAgICAgICAgLSAwLjM2MjM1Nzc1NDQ3NjY3MzZcbiAgICAgICAgLSAtIDEuNVxuICAgICAgICAgIC0gMC4wNzA3MzcyMDE2Njc3MDI5XG4gICAgICAgIC0gLSAxLjhcbiAgICAgICAgICAtIC0wLjIyNzIwMjA5NDY5MzA4NzFcbiAgICAgICAgLSAtIDIuMVxuICAgICAgICAgIC0gLTAuNTA0ODQ2MTA0NTk5ODU3NlxuICAgICAgICAtIC0gMi40XG4gICAgICAgICAgLSAtMC43MzczOTM3MTU1NDEyNDU0XG4gICAgICAgIC0gLSAyLjY5OTk5OTk5OTk5OTk5OTdcbiAgICAgICAgICAtIC0wLjkwNDA3MjE0MjAxNzA2MVxuICAgICAgICAtIC0gMi45OTk5OTk5OTk5OTk5OTk2XG4gICAgICAgICAgLSAtMC45ODk5OTI0OTY2MDA0NDU0XG4gICAgICAgIC0gLSAzLjI5OTk5OTk5OTk5OTk5OTRcbiAgICAgICAgICAtIC0wLjk4NzQ3OTc2OTkwODg2NVxuICAgICAgICAtIC0gMy41OTk5OTk5OTk5OTk5OTlcbiAgICAgICAgICAtIC0wLjg5Njc1ODQxNjMzNDE0NzNcbiAgICAgICAgLSAtIDMuODk5OTk5OTk5OTk5OTk5XG4gICAgICAgICAgLSAtMC43MjU5MzIzMDQyMDAxNDA4XG4gICAgICAgIC0gLSA0LjE5OTk5OTk5OTk5OTk5OVxuICAgICAgICAgIC0gLTAuNDkwMjYwODIxMzQwNzAwMlxuICAgICAgICAtIC0gNC40OTk5OTk5OTk5OTk5OTlcbiAgICAgICAgICAtIC0wLjIxMDc5NTc5OTQzMDc4MDU4XG4gICAgICAgIC0gLSA0Ljc5OTk5OTk5OTk5OTk5OVxuICAgICAgICAgIC0gMC4wODc0OTg5ODM0Mzk0NDU1MVxuICAgICAgICAtIC0gNS4wOTk5OTk5OTk5OTk5OTlcbiAgICAgICAgICAtIDAuMzc3OTc3NzQyNzEyOTc5NFxuICAgICAgICAtIC0gNS4zOTk5OTk5OTk5OTk5OTlcbiAgICAgICAgICAtIDAuNjM0NjkyODc1OTQyNjMzMlxuICAgICAgICAtIC0gNS42OTk5OTk5OTk5OTk5OThcbiAgICAgICAgICAtIDAuODM0NzEyNzg0ODM5MTU4OFxuICAgICAgICAtIC0gNS45OTk5OTk5OTk5OTk5OThcbiAgICAgICAgICAtIDAuOTYwMTcwMjg2NjUwMzY1NVxuICAgICAgICAtIC0gNi4yODNcbiAgICAgICAgICAtIDFcbi0tLVxuXG48cHJlPlxueyUgcmF3ICV9XG57JSBmcm9tIFwidGVtcGxhdGVzL2NvbW1vbi9kYXRhL2NoYXJ0cy9wYXBlci1lYWdsZS5udW5qXCIgaW1wb3J0IHBhcGVyRWFnbGVMaW5lICV9XG57JSBlbmRyYXcgJX1cbjwvcHJlPlxuXG5MaW5lLXNwZWNpZmljIG9wdGlvbnMgYXJlIGFzIGZvbGxvd3M6XG5cbnwgT3B0aW9uICAgICAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb25cbnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxufCBgbGluZUNvbG9yYCAgICAgICAgICAgICAgfCBDb2xvciBvZiB0aGUgbGluZS4gIENhbiBiZSBhIHN0cmluZywgZnVuY3Rpb24sIGFycmF5LCBvciBvYmplY3QuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IGBsaW5lV2lkdGhgICAgICAgICAgICAgICB8IFdpZHRoIG9mIHRoZSBsaW5lLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgYGxpbmVEYXNoZWRgICAgICAgICAgICAgIHwgRHJhdyBkYXNoZWQgbGluZXMuICBDYW4gYmUgYSBib29sZWFuLCBmdW5jdGlvbiwgYXJyYXksIG9yIG9iamVjdC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuXG5gYGBodG1sX2V4YW1wbGVcbnslIGZyb20gXCJ0ZW1wbGF0ZXMvY29tbW9uL2RhdGEvY2hhcnRzL3BhcGVyLWVhZ2xlLm51bmpcIiBpbXBvcnQgcGFwZXJFYWdsZUxpbmUgJX1cblxueyMgVHlwaWNhbCBleGFtcGxlICN9XG57JSBzZXQgY2hhcnRPcHRpb25zID0ge1xuICAgIFwibGluZUNvbG9yXCI6IFsnY3JpbXNvbicsICdwdXJwbGUnXSxcbiAgICBcImxpbmVEYXNoZWRcIjogW3RydWUsIGZhbHNlXSxcbiAgICBzY3JvbGxUYXJnZXQ6ICcuc3R5bGVndWlkZS13cmFwcGVyJ1xufSAlfVxue3sgcGFwZXJFYWdsZUxpbmUodHJpZ0Z1bmN0aW9ucywgY2hhcnRPcHRpb25zKSB9fVxuXG57IyBUaGljayAjfVxueyUgc2V0IGNoYXJ0T3B0aW9ucyA9IHtcbiAgICBcImxpbmVDb2xvclwiOiBbJ2NyaW1zb24nLCAncHVycGxlJ10sXG4gICAgXCJsaW5lV2lkdGhcIjogMTAuMCxcbiAgICBzY3JvbGxUYXJnZXQ6ICcuc3R5bGVndWlkZS13cmFwcGVyJ1xufSAlfVxue3sgcGFwZXJFYWdsZUxpbmUodHJpZ0Z1bmN0aW9ucywgY2hhcnRPcHRpb25zKSB9fVxuXG57IyBTdHJpbmcgeC1jb29yZGluYXRlcyAjfVxueyUgc2V0IGNoYXJ0T3B0aW9ucyA9IHtcbiAgICBcImxpbmVDb2xvclwiOiBbJ2NyaW1zb24nLCAncHVycGxlJ10sXG4gICAgXCJsaW5lRGFzaGVkXCI6IFt0cnVlLCBmYWxzZV0sXG4gICAgc2Nyb2xsVGFyZ2V0OiAnLnN0eWxlZ3VpZGUtd3JhcHBlcidcbn0gJX1cbnt7IHBhcGVyRWFnbGVMaW5lKGNoYXJ0RGF0YSwgY2hhcnRPcHRpb25zKSB9fVxuXG57IyBTaGFkZWQgYXJlYXMgI31cbnslIHNldCBjaGFydE9wdGlvbnMgPSB7XG4gICAgXCJsaW5lUmVuZGVyRmlsbFwiOiB0cnVlLFxuICAgIFwibGluZUZpbGxDb2xvclwiOiBbJ2NyaW1zb24nLCAncHVycGxlJ10sXG4gICAgc2Nyb2xsVGFyZ2V0OiAnLnN0eWxlZ3VpZGUtd3JhcHBlcidcbn0gJX1cbnt7IHBhcGVyRWFnbGVMaW5lKHRyaWdGdW5jdGlvbnMuc2luZSwgY2hhcnRPcHRpb25zKSB9fVxuXG57IyBTYW1wbGVkIGZ1bmN0aW9ucyAjfVxueyUgc2V0IGNoYXJ0T3B0aW9ucyA9IHtcbiAgICBcImF4ZXNcIjoge1xuICAgICAgICBcInhcIjoge1xuICAgICAgICAgICAgXCJ3aW5kb3dFeHRlbnRcIjogWy0zLCAzXVxuICAgICAgICB9LFxuICAgICAgICBcInlcIjoge1xuICAgICAgICAgICAgXCJ3aW5kb3dFeHRlbnRcIjogXCJmaXRcIlxuICAgICAgICB9XG4gICAgfSxcbiAgICBcImxpbmVSZW5kZXJGaWxsXCI6IHRydWUsXG4gICAgXCJsaW5lRmlsbENvbG9yXCI6IFsnY3JpbXNvbicsICdwdXJwbGUnXSxcbiAgICBcImxpbmVGdW5jdGlvbnNcIjogW1wibm9ybWFsUERGOjAsMVwiXSxcbiAgICBcImxpbmVTYW1wbGVDb3VudFwiOiA1MCxcbiAgICBzY3JvbGxUYXJnZXQ6ICcuc3R5bGVndWlkZS13cmFwcGVyJ1xufSAlfVxue3sgcGFwZXJFYWdsZUxpbmUoW10sIGNoYXJ0T3B0aW9ucykgfX1cblxuXG57IyBmb3IgcHVycG9zZXMgb2YgdGhpcyBleGFtcGxlIG9ubHkgI31cbjxzdHlsZT4ucGFwZXItZWFnbGUtY29udGFpbmVye3dpZHRoOjMzJTtkaXNwbGF5OmlubGluZS1ibG9jazt9PC9zdHlsZT5cblxuYGBgXG5cbiovXG5cbi5zbGlkaW5nLXNjYWxlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAuc2NhbGUtaXRlbS1sYXN0IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICB9XG5cbiAgICAuc2NhbGUtbGluZSB7XG4gICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzaWx2ZXItbGlnaHQ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5zY2FsZS12YWx1ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuXG4gICAgICAgICY6bm90KC5maXJzdCk6bm90KC5sYXN0KSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBsZWZ0OiAtNDglO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJhbGxvb24ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmc6IDZweCA4cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcblxuICAgICAgICBAbWl4aW4gYmFsbG9vbi1jb2xvcigkY29sb3IpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcblxuICAgICAgICAgICAgJi5vdmVyOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLnVuZGVyOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmdyZWVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJhbGxvb24tY29sb3IoIzBhYmJhNCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLmxpZ2h0LWdyZWVuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJhbGxvb24tY29sb3IoIzVkZDVjNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLnllbGxvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBiYWxsb29uLWNvbG9yKCNmZmMxNGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5vcmFuZ2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgYmFsbG9vbi1jb2xvcigjZTM4ZDEzKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJhbGxvb24tY29sb3IoI2QxNDUzZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLmdyZXkge1xuICAgICAgICAgICAgQGluY2x1ZGUgYmFsbG9vbi1jb2xvcigjZGRkZGRkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYub3ZlcjphZnRlciB7XG4gICAgICAgICAgICB0b3A6IDg4JTtcbiAgICAgICAgfVxuXG4gICAgICAgICYudW5kZXI6YWZ0ZXIge1xuICAgICAgICAgICAgYm90dG9tOiA4OCU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIGJvcmRlcjogc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMTAsIDE4NywgMTY0LCAwKTtcbiAgICAgICAgICAgIC8vYm9yZGVyLXRvcC1jb2xvcjogIzBhYmJhNDtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogOXB4O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5hcnJvdy1sZWZ0OmFmdGVyIHtcbiAgICAgICAgICAgIGxlZnQ6IDEycHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLmFycm93LXJpZ2h0OmFmdGVyIHtcbiAgICAgICAgICAgIGxlZnQ6IGluaXRpYWw7XG4gICAgICAgICAgICByaWdodDogMnB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICAuYmFsbG9vbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiA4cHggMThweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qIFRoaXMgaXMgdGhlIGRlZmF1bHQgVG9vbHRpcHN0ZXIgdGhlbWUgKGZlZWwgZnJlZSB0byBtb2RpZnkgb3IgZHVwbGljYXRlIGFuZCBjcmVhdGUgbXVsdGlwbGUgdGhlbWVzISk6ICovXG5cbi50b29sdGlwc3Rlci1kZWZhdWx0IHtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYm9yZGVyOiAycHggc29saWQgIzAwMDtcbiAgICBiYWNrZ3JvdW5kOiAjNGM0YzRjO1xuICAgIGNvbG9yOiAjZmZmO1xufVxuXG4vKiBVc2UgdGhpcyBuZXh0IHNlbGVjdG9yIHRvIHN0eWxlIHRoaW5ncyBsaWtlIGZvbnQtc2l6ZSBhbmQgbGluZS1oZWlnaHQ6ICovXG5cbi50b29sdGlwc3Rlci1kZWZhdWx0IC50b29sdGlwc3Rlci1jb250ZW50IHtcbiAgICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIHRoaXMgaXMgdGhlIGRlZmF1bHQgc2hhZG93IHN0eWxlIGZyb20gdG9vbHRpcHN0ZXIgd2l0aCBzb21lIGV4dHJhIHBhZGRpbmcgYW5kIGxpbmUgaGVpZ2h0ICovXG5cbi50b29sdGlwc3Rlci1zaGFkb3cge1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJveC1zaGFkb3c6IDBweCAwcHggMTRweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gICAgY29sb3I6ICMyYzJjMmM7XG59XG4udG9vbHRpcHN0ZXItc2hhZG93IC50b29sdGlwc3Rlci1jb250ZW50IHtcbiAgICBmb250LWZhbWlseTogJ0FyaWFsJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgcGFkZGluZzogMTZweCAxMHB4O1xufVxuXG4vKiBUaGlzIG5leHQgc2VsZWN0b3IgZGVmaW5lcyB0aGUgY29sb3Igb2YgdGhlIGJvcmRlciBvbiB0aGUgb3V0c2lkZSBvZiB0aGUgYXJyb3cuIFRoaXMgd2lsbCBhdXRvbWF0aWNhbGx5IG1hdGNoIHRoZSBjb2xvciBhbmQgc2l6ZSBvZiB0aGUgYm9yZGVyIHNldCBvbiB0aGUgbWFpbiB0b29sdGlwIHN0eWxlcy4gU2V0IGRpc3BsYXk6IG5vbmU7IGlmIHlvdSB3b3VsZCBsaWtlIGEgYm9yZGVyIGFyb3VuZCB0aGUgdG9vbHRpcCBidXQgbm8gYm9yZGVyIGFyb3VuZCB0aGUgYXJyb3cgKi9cblxuLnRvb2x0aXBzdGVyLWRlZmF1bHQgLnRvb2x0aXBzdGVyLWFycm93IC50b29sdGlwc3Rlci1hcnJvdy1ib3JkZXIge1xuICAgIC8qIGJvcmRlci1jb2xvcjogLi4uICFpbXBvcnRhbnQ7ICovXG59XG5cbi8qIElmIHlvdSdyZSB1c2luZyB0aGUgaWNvbiBvcHRpb24sIHVzZSB0aGlzIG5leHQgc2VsZWN0b3IgdG8gc3R5bGUgdGhlbSAqL1xuXG4udG9vbHRpcHN0ZXItaWNvbiB7XG4gICAgY3Vyc29yOiBoZWxwO1xuICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG59XG5cbi8qIFRoaXMgaXMgdGhlIGJhc2Ugc3R5bGluZyByZXF1aXJlZCB0byBtYWtlIGFsbCBUb29sdGlwc3RlcnMgd29yayAqL1xuXG4udG9vbHRpcHN0ZXItYmFzZSB7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LXNpemU6IDA7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIHotaW5kZXg6IDk5OTk5OTk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi50b29sdGlwc3Rlci1iYXNlIC50b29sdGlwc3Rlci1jb250ZW50IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBUaGVzZSBuZXh0IGNsYXNzZXMgaGFuZGxlIHRoZSBzdHlsZXMgZm9yIHRoZSBsaXR0bGUgYXJyb3cgYXR0YWNoZWQgdG8gdGhlIHRvb2x0aXAuIEJ5IGRlZmF1bHQsIHRoZSBhcnJvdyB3aWxsIGluaGVyaXQgdGhlIHNhbWUgY29sb3JzIGFuZCBib3JkZXIgYXMgd2hhdCBpcyBzZXQgb24gdGhlIG1haW4gdG9vbHRpcCBpdHNlbGYuICovXG5cbi50b29sdGlwc3Rlci1hcnJvdyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogLTE7XG59XG5cbi50b29sdGlwc3Rlci1hcnJvdyBzcGFuLFxuLnRvb2x0aXBzdGVyLWFycm93LWJvcmRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLnRvb2x0aXBzdGVyLWFycm93LXRvcCBzcGFuLFxuLnRvb2x0aXBzdGVyLWFycm93LXRvcC1yaWdodCBzcGFuLFxuLnRvb2x0aXBzdGVyLWFycm93LXRvcC1sZWZ0IHNwYW4ge1xuICAgIGJvcmRlci1sZWZ0OiA4cHggc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmlnaHQ6IDhweCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci10b3A6IDhweCBzb2xpZDtcbiAgICBib3R0b206IC03cHg7XG59XG5cbi50b29sdGlwc3Rlci1hcnJvdy10b3AgLnRvb2x0aXBzdGVyLWFycm93LWJvcmRlcixcbi50b29sdGlwc3Rlci1hcnJvdy10b3AtcmlnaHQgLnRvb2x0aXBzdGVyLWFycm93LWJvcmRlcixcbi50b29sdGlwc3Rlci1hcnJvdy10b3AtbGVmdCAudG9vbHRpcHN0ZXItYXJyb3ctYm9yZGVyIHtcbiAgICBib3JkZXItbGVmdDogOXB4IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiA5cHggc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBib3JkZXItdG9wOiA5cHggc29saWQ7XG4gICAgYm90dG9tOiAtN3B4O1xufVxuXG4udG9vbHRpcHN0ZXItYXJyb3ctYm90dG9tIHNwYW4sXG4udG9vbHRpcHN0ZXItYXJyb3ctYm90dG9tLXJpZ2h0IHNwYW4sXG4udG9vbHRpcHN0ZXItYXJyb3ctYm90dG9tLWxlZnQgc3BhbiB7XG4gICAgYm9yZGVyLWxlZnQ6IDhweCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yaWdodDogOHB4IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogOHB4IHNvbGlkO1xuICAgIHRvcDogLTdweDtcbn1cblxuLnRvb2x0aXBzdGVyLWFycm93LWJvdHRvbSAudG9vbHRpcHN0ZXItYXJyb3ctYm9yZGVyLFxuLnRvb2x0aXBzdGVyLWFycm93LWJvdHRvbS1yaWdodCAudG9vbHRpcHN0ZXItYXJyb3ctYm9yZGVyLFxuLnRvb2x0aXBzdGVyLWFycm93LWJvdHRvbS1sZWZ0IC50b29sdGlwc3Rlci1hcnJvdy1ib3JkZXIge1xuICAgIGJvcmRlci1sZWZ0OiA5cHggc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmlnaHQ6IDlweCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1ib3R0b206IDlweCBzb2xpZDtcbiAgICB0b3A6IC03cHg7XG59XG5cbi50b29sdGlwc3Rlci1hcnJvdy10b3Agc3Bhbixcbi50b29sdGlwc3Rlci1hcnJvdy10b3AgLnRvb2x0aXBzdGVyLWFycm93LWJvcmRlcixcbi50b29sdGlwc3Rlci1hcnJvdy1ib3R0b20gc3Bhbixcbi50b29sdGlwc3Rlci1hcnJvdy1ib3R0b20gLnRvb2x0aXBzdGVyLWFycm93LWJvcmRlciB7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBtYXJnaW46IDAgYXV0bztcbn1cblxuLnRvb2x0aXBzdGVyLWFycm93LXRvcC1sZWZ0IHNwYW4sXG4udG9vbHRpcHN0ZXItYXJyb3ctYm90dG9tLWxlZnQgc3BhbiB7XG4gICAgbGVmdDogNnB4O1xufVxuXG4udG9vbHRpcHN0ZXItYXJyb3ctdG9wLWxlZnQgLnRvb2x0aXBzdGVyLWFycm93LWJvcmRlcixcbi50b29sdGlwc3Rlci1hcnJvdy1ib3R0b20tbGVmdCAudG9vbHRpcHN0ZXItYXJyb3ctYm9yZGVyIHtcbiAgICBsZWZ0OiA1cHg7XG59XG5cbi50b29sdGlwc3Rlci1hcnJvdy10b3AtcmlnaHQgc3Bhbixcbi50b29sdGlwc3Rlci1hcnJvdy1ib3R0b20tcmlnaHQgc3BhbiB7XG4gICAgcmlnaHQ6IDZweDtcbn1cblxuLnRvb2x0aXBzdGVyLWFycm93LXRvcC1yaWdodCAudG9vbHRpcHN0ZXItYXJyb3ctYm9yZGVyLFxuLnRvb2x0aXBzdGVyLWFycm93LWJvdHRvbS1yaWdodCAudG9vbHRpcHN0ZXItYXJyb3ctYm9yZGVyIHtcbiAgICByaWdodDogNXB4O1xufVxuXG4udG9vbHRpcHN0ZXItYXJyb3ctbGVmdCBzcGFuLFxuLnRvb2x0aXBzdGVyLWFycm93LWxlZnQgLnRvb2x0aXBzdGVyLWFycm93LWJvcmRlciB7XG4gICAgYm9yZGVyLXRvcDogOHB4IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogOHB4IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWxlZnQ6IDhweCBzb2xpZDtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtN3B4O1xuICAgIHJpZ2h0OiAtN3B4O1xufVxuXG4udG9vbHRpcHN0ZXItYXJyb3ctbGVmdCAudG9vbHRpcHN0ZXItYXJyb3ctYm9yZGVyIHtcbiAgICBib3JkZXItdG9wOiA5cHggc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tOiA5cHggc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBib3JkZXItbGVmdDogOXB4IHNvbGlkO1xuICAgIG1hcmdpbi10b3A6IC04cHg7XG59XG5cbi50b29sdGlwc3Rlci1hcnJvdy1yaWdodCBzcGFuLFxuLnRvb2x0aXBzdGVyLWFycm93LXJpZ2h0IC50b29sdGlwc3Rlci1hcnJvdy1ib3JkZXIge1xuICAgIGJvcmRlci10b3A6IDhweCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1ib3R0b206IDhweCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yaWdodDogOHB4IHNvbGlkO1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC03cHg7XG4gICAgbGVmdDogLTdweDtcbn1cblxuLnRvb2x0aXBzdGVyLWFycm93LXJpZ2h0IC50b29sdGlwc3Rlci1hcnJvdy1ib3JkZXIge1xuICAgIGJvcmRlci10b3A6IDlweCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1ib3R0b206IDlweCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yaWdodDogOXB4IHNvbGlkO1xuICAgIG1hcmdpbi10b3A6IC04cHg7XG59XG5cbi8qIFNvbWUgQ1NTIG1hZ2ljIGZvciB0aGUgYXdlc29tZSBhbmltYXRpb25zIC0gZmVlbCBmcmVlIHRvIG1ha2UgeW91ciBvd24gY3VzdG9tIGFuaW1hdGlvbnMgYW5kIHJlZmVyZW5jZSBpdCBpbiB5b3VyIFRvb2x0aXBzdGVyIHNldHRpbmdzISAqL1xuXG4udG9vbHRpcHN0ZXItZmFkZSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7XG4gICAgLW1vei10cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5O1xuICAgIC1vLXRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7XG4gICAgLW1zLXRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbn1cblxuLnRvb2x0aXBzdGVyLWZhZGUtc2hvdyB7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLnRvb2x0aXBzdGVyLWdyb3cge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLCAwKTtcbiAgICAtbW96LXRyYW5zZm9ybTogc2NhbGUoMCwgMCk7XG4gICAgLW8tdHJhbnNmb3JtOiBzY2FsZSgwLCAwKTtcbiAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAsIDApO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogLXdlYmtpdC10cmFuc2Zvcm07XG4gICAgLW1vei10cmFuc2l0aW9uLXByb3BlcnR5OiAtbW96LXRyYW5zZm9ybTtcbiAgICAtby10cmFuc2l0aW9uLXByb3BlcnR5OiAtby10cmFuc2Zvcm07XG4gICAgLW1zLXRyYW5zaXRpb24tcHJvcGVydHk6IC1tcy10cmFuc2Zvcm07XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtO1xuICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4udG9vbHRpcHN0ZXItZ3Jvdy1zaG93IHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSwgMSk7XG4gICAgLW1vei10cmFuc2Zvcm06IHNjYWxlKDEsIDEpO1xuICAgIC1vLXRyYW5zZm9ybTogc2NhbGUoMSwgMSk7XG4gICAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMSwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKTtcbiAgICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxKTtcbiAgICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjE1KTtcbiAgICAtbW96LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjE1KTtcbiAgICAtbXMtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEuMTUpO1xuICAgIC1vLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjE1KTtcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4xNSk7XG59XG5cbi50b29sdGlwc3Rlci1zd2luZyB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWig0ZGVnKTtcbiAgICAtbW96LXRyYW5zZm9ybTogcm90YXRlWig0ZGVnKTtcbiAgICAtby10cmFuc2Zvcm06IHJvdGF0ZVooNGRlZyk7XG4gICAgLW1zLXRyYW5zZm9ybTogcm90YXRlWig0ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooNGRlZyk7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiAtd2Via2l0LXRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAtbW96LXRyYW5zaXRpb24tcHJvcGVydHk6IC1tb3otdHJhbnNmb3JtO1xuICAgIC1vLXRyYW5zaXRpb24tcHJvcGVydHk6IC1vLXRyYW5zZm9ybTtcbiAgICAtbXMtdHJhbnNpdGlvbi1wcm9wZXJ0eTogLW1zLXRyYW5zZm9ybTtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm07XG59XG5cbi50b29sdGlwc3Rlci1zd2luZy1zaG93IHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKDBkZWcpO1xuICAgIC1tb3otdHJhbnNmb3JtOiByb3RhdGVaKDBkZWcpO1xuICAgIC1vLXRyYW5zZm9ybTogcm90YXRlWigwZGVnKTtcbiAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGVaKDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlWigwZGVnKTtcbiAgICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMywgMC42MzUsIDAuNDk1LCAxKTtcbiAgICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMywgMC42MzUsIDAuNDk1LCAyLjQpO1xuICAgIC1tb3otdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIzLCAwLjYzNSwgMC40OTUsIDIuNCk7XG4gICAgLW1zLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMywgMC42MzUsIDAuNDk1LCAyLjQpO1xuICAgIC1vLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMywgMC42MzUsIDAuNDk1LCAyLjQpO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMywgMC42MzUsIDAuNDk1LCAyLjQpO1xufVxuXG4udG9vbHRpcHN0ZXItZmFsbCB7XG4gICAgdG9wOiAwO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogdG9wO1xuICAgIC1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTogdG9wO1xuICAgIC1vLXRyYW5zaXRpb24tcHJvcGVydHk6IHRvcDtcbiAgICAtbXMtdHJhbnNpdGlvbi1wcm9wZXJ0eTogdG9wO1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRvcDtcbiAgICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxKTtcbiAgICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjE1KTtcbiAgICAtbW96LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjE1KTtcbiAgICAtbXMtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEuMTUpO1xuICAgIC1vLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjE1KTtcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4xNSk7XG59XG5cbi50b29sdGlwc3Rlci1mYWxsLXNob3cge1xufVxuXG4udG9vbHRpcHN0ZXItZmFsbC50b29sdGlwc3Rlci1keWluZyB7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gICAgLW1vei10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gICAgLW8tdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAgIC1tcy10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICAgIHRvcDogMHB4ICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogMDtcbn1cblxuLnRvb2x0aXBzdGVyLXNsaWRlIHtcbiAgICBsZWZ0OiAtNDBweDtcbiAgICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IGxlZnQ7XG4gICAgLW1vei10cmFuc2l0aW9uLXByb3BlcnR5OiBsZWZ0O1xuICAgIC1vLXRyYW5zaXRpb24tcHJvcGVydHk6IGxlZnQ7XG4gICAgLW1zLXRyYW5zaXRpb24tcHJvcGVydHk6IGxlZnQ7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbGVmdDtcbiAgICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxKTtcbiAgICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjE1KTtcbiAgICAtbW96LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjE1KTtcbiAgICAtbXMtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEuMTUpO1xuICAgIC1vLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjE1KTtcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4xNSk7XG59XG5cbi50b29sdGlwc3Rlci1zbGlkZS50b29sdGlwc3Rlci1zbGlkZS1zaG93IHtcbn1cblxuLnRvb2x0aXBzdGVyLXNsaWRlLnRvb2x0aXBzdGVyLWR5aW5nIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgICAtbW96LXRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgICAtby10cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gICAgLW1zLXRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gICAgbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogMDtcbn1cblxuLyogQ1NTIHRyYW5zaXRpb24gZm9yIHdoZW4gY29udGVudGluZyBpcyBjaGFuZ2luZyBpbiBhIHRvb2x0aXAgdGhhdCBpcyBzdGlsbCBvcGVuLiBUaGUgb25seSBwcm9wZXJ0aWVzIHRoYXQgd2lsbCBOT1QgdHJhbnNpdGlvbiBhcmU6IHdpZHRoLCBoZWlnaHQsIHRvcCwgYW5kIGxlZnQgKi9cblxuLnRvb2x0aXBzdGVyLWNvbnRlbnQtY2hhbmdpbmcge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4xLCAxLjEpO1xuICAgIC1tb3otdHJhbnNmb3JtOiBzY2FsZSgxLjEsIDEuMSk7XG4gICAgLW8tdHJhbnNmb3JtOiBzY2FsZSgxLjEsIDEuMSk7XG4gICAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMS4xLCAxLjEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xLCAxLjEpO1xufVxuXG4vLyBVU04gVEhFTUUgQkVMT1dcbi50b29sdGlwIHtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgaGVpZ2h0OiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxMnB4O1xuICAgIHdpZHRoOiAxMnB4O1xuICAgIGZvbnQtc2l6ZTogOXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAkYmx1ZS1saWdodDtcbiAgICBiYWNrZ3JvdW5kOiAkbGlnaHQtYmx1ZTtcbiAgICBtYXJnaW4tbGVmdDogM3B4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGN1cnNvcjogaGVscDtcbn1cblxuLy8gSW5zdGVhZCBvZiB1c2luZyB0aGUgLnRvb2x0aXAgY2xhc3MgYWJvdmUsIHlvdSBjYW4gdXNlIHRoaXMgb25lIGlmIHlvdSBqdXN0XG4vLyB3YW50IHRvb2x0aXAgdG8gZGlzcGxheSBhcyB0ZXh0IGluc3RlYWQgb2YgdGhlIGxpdHRsZSBibHVlIGNpcmNsZVxuLnRvb2x0aXAtdGV4dCB7XG4gICAgY3Vyc29yOiBoZWxwO1xuICAgIGNvbG9yOiAkbGluay1ibHVlLWxpZ2h0O1xufVxuXG4udXNuLXRvb2x0aXAge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG59XG5cbi51c24tdG9vbHRpcCB7XG4gICAgLnRvb2x0aXBzdGVyLWNvbnRlbnQge1xuICAgICAgICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgICAgIHBhZGRpbmc6IDhweCAxMHB4IDEycHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJvcmRlci1sZWZ0OiA1cHggc29saWQgJGJsdWU7XG4gICAgICAgIEBpbmNsdWRlIGJveC1zaGFkb3coMnB4LCAwcHgsIDRweCwgMXB4LCByZ2JhKDAsIDAsIDAsIDAuMzMpLCBmYWxzZSk7XG4gICAgfVxuICAgIC5ncmV5LWhlYWRpbmcge1xuICAgICAgICBtYXJnaW46IC04cHggLTEwcHggLTEycHg7XG4gICAgICAgIHBhZGRpbmc6IDRweCAxMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjY2NjO1xuICAgIH1cbiAgICAmLm5vYm9yZGVyIHtcbiAgICAgICAgLnRvb2x0aXBzdGVyLWNvbnRlbnQge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5ub2Fycm93IHtcbiAgICAgICAgLnRvb2x0aXBzdGVyLWFycm93IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmOm5vdCgudW5saW1pdC13aWR0aCkge1xuICAgICAgICAudG9vbHRpcHN0ZXItY29udGVudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmcm9tKGJwLXNtYWxsKSB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAyNjBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpbmNsdWRlIGZyb20oYnAtbWVkaXVtKSB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAyOTBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnVzbi10b29sdGlwLWRhdGEtZXhwbG9yZXIge1xuICAgIEBleHRlbmQgLnVzbi10b29sdGlwO1xuICAgIC50b29sdGlwc3Rlci1jb250ZW50IHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAqW2NsYXNzJD0nYm9yZGVyJ10ge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IDVweDtcbiAgICAgICAgfVxuICAgICAgICAueWVsbG93LWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICR5ZWxsb3c7XG4gICAgICAgIH1cbiAgICAgICAgLmJsdWUtYm9yZGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGJsdWU7XG4gICAgICAgIH1cbiAgICAgICAgLnB1cnBsZS1ib3JkZXIge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjODc2MWU5O1xuICAgICAgICB9XG4gICAgICAgIC5jeWFuLWJvcmRlciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICMzOWMyYzQ7XG4gICAgICAgIH1cbiAgICAgICAgLnBhbmVsIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxMHB4IDEycHg7XG4gICAgICAgICAgICAmLmRhdGEtdmFsdWVzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWlzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmRhdGFtYXBzLWhvdmVyb3ZlciB7XG4gICAgLnVzbi10b29sdGlwLWRhdGEtZXhwbG9yZXIge1xuICAgICAgICBtaW4td2lkdGg6IDIwMHB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuICAgICYucmlnaHQtaGFsZiAudXNuLXRvb2x0aXAtZGF0YS1leHBsb3JlciB7XG4gICAgICAgIHJpZ2h0OiAxMHB4O1xuICAgIH1cbiAgICAmLmJvdHRvbS1oYWxmIC51c24tdG9vbHRpcC1kYXRhLWV4cGxvcmVyIHtcbiAgICAgICAgYm90dG9tOiA0NXB4O1xuICAgIH1cbn1cblxuLmNoYXJ0LWhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGhlaWdodDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDA7XG59XG5cbi50b29sdGlwLWFuY2hvciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vL1NlYXJjaCByZXN1bHQgbWF0Y2ggdGhlbWVcbi5zZWFyY2gtbWF0Y2gtdG9vbHRpcCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAudG9vbHRpcHN0ZXItY29udGVudCB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIEBpbmNsdWRlIGJveC1zaGFkb3coMnB4LCAwcHgsIDRweCwgMXB4LCByZ2JhKDAsIDAsIDAsIDAuMzMpLCBmYWxzZSk7XG4gICAgICAgIEBpbmNsdWRlIGZyb20oYnAtc21hbGwpIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMjYwcHg7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgZnJvbShicC1tZWRpdW0pIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMjkwcHg7XG4gICAgICAgIH1cbiAgICAgICAgdWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZnJvbShicC1tZWRpdW0pIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjkwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaW5jbHVkZSBmcm9tKGJwLXNtYWxsKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDI2MHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPiBsaSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICNjY2M7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMTVweCAwcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDE1cHg7XG4gICAgICAgICAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuc2VhcmNoLW1hdGNoLXRvb2x0aXAtaGVhZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAyNXB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzJjN2VmMDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5kaWV0LW1hdGNoLXRvb2x0aXAge1xuICAgIEBleHRlbmQgLnNlYXJjaC1tYXRjaC10b29sdGlwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogNDcwcHg7XG4gICAgQGluY2x1ZGUgdG8oYnAtbWVkaXVtKSB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgfVxuICAgIC50b29sdGlwc3Rlci1jb250ZW50IHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIC5zZWFyY2gtbWF0Y2gtdG9vbHRpcC1oZWFkZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzY2NjY2NjtcbiAgICAgICAgfVxuICAgICAgICB1bCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5kaWV0LXRvb2x0aXAtbWF0Y2hlcyB7XG4gICAgQGV4dGVuZCAuZmxleDtcbiAgICBAZXh0ZW5kIC5mbGV4LW5vd3JhcDtcbiAgICBwYWRkaW5nOiAwIDE1cHg7XG59XG5cbi51c24tdG9vbHRpcC1uYXYge1xuICAgIEBleHRlbmQgLnVzbi10b29sdGlwO1xuICAgICRibHVlQ29sb3I6ICMxOTYxYjg7XG4gICAgLnRvb2x0aXBzdGVyLWNvbnRlbnQge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICAgIHVsIHtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgfVxuICAgIC5zdmctcmFkaW8ge1xuICAgICAgICBmaWxsOiB0cmFuc3BhcmVudDtcbiAgICAgICAgc3Ryb2tlOiAjODg4O1xuICAgICAgICBzdHJva2Utd2lkdGg6IDI7XG4gICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTtcbiAgICAgICAgY2lyY2xlIHtcbiAgICAgICAgICAgIGZpbGw6ICRibHVlQ29sb3I7XG4gICAgICAgICAgICBzdHJva2U6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgICAgICYuc2VsZWN0ZWQge1xuICAgICAgICAgICAgc3Ryb2tlOiAkYmx1ZUNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgICAgIC8vIEkga25vdywgSSBrbm93LCAhaW1wb3J0YW50IGlzIGV2aWwuXG4gICAgICAgIC8vICBXZSBuZWVkIHRvIG92ZXJyaWRlIHRoZSBpbmxpbmUgc3R5bGUgdGhhdCB0b29sdGlwc3RlciBzZXRzLlxuICAgICAgICAvLyAgVGhpcyBhY3R1YWxseSB3b3JrcyB3ZWxsIGJlY2F1c2UgdGhlIGVsZW1lbnQgaXMgc3RpbGwgcmVjZWl2aW5nIGEgcG9zaXRpb24sXG4gICAgICAgIC8vICBzbyB3ZSBjYW4gdG9nZ2xlIGJhc2VkIG9uIHRoZSBicmVha3BvaW50XG4gICAgICAgIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgLnRvb2x0aXBzdGVyLWNvbnRlbnQge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogaW5pdGlhbDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgICAgIGg0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRibHVlQ29sb3I7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICAgICAgLngtYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHRvcDogM3B4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vL0NoYXJ0IHRvb2x0aXAgc3R5bGVzXG4uY2hhcnQtdG9vbHRpcCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbn1cblxuLmNoYXJ0LXRvb2x0aXAgLnRvb2x0aXBzdGVyLWNvbnRlbnQge1xuICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIEBpbmNsdWRlIGJveC1zaGFkb3coMnB4LCAwcHgsIDRweCwgMXB4LCByZ2JhKDAsIDAsIDAsIDAuMzMpLCBmYWxzZSk7XG4gICAgQGluY2x1ZGUgZnJvbShicC1zbWFsbCkge1xuICAgICAgICBtYXgtd2lkdGg6IDI2MHB4O1xuICAgIH1cbiAgICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bSkge1xuICAgICAgICBtYXgtd2lkdGg6IDI5MHB4O1xuICAgIH1cbn1cblxuLmNoYXJ0LXRvb2x0aXAgLnRvb2x0aXBzdGVyLWNvbnRlbnQgLmNoYXJ0LXRvb2x0aXBfX2xhYmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJlYmViO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHBhZGRpbmc6IDdweCAxMnB4O1xufVxuXG4uY2hhcnQtdG9vbHRpcCAudG9vbHRpcHN0ZXItY29udGVudCAuY2hhcnQtdG9vbHRpcF9fdmFsdWUge1xuICAgIHBhZGRpbmc6IDdweCAxMnB4O1xuICAgIHVsIHtcbiAgICAgICAgcGFkZGluZzogMHB4O1xuICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICB9XG4gICAgbGkge1xuICAgICAgICAuY2hhcnQtdG9vbHRpcF9fdmFsdWVfX251bWJlciB7XG4gICAgICAgICAgICB3aWR0aDogNTBweDtcbiAgICAgICAgfVxuICAgICAgICAuY2hhcnQtdG9vbHRpcF9fdmFsdWVfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbi5jaGFydC10b29sdGlwX192YWx1ZV9fbnVtYmVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbi5jaGFydC10b29sdGlwX192YWx1ZV9fZGVzY3JpcHRpb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nOiAwIDAgMCA5cHg7XG59XG4iLCIvL01ha2Ugc3VyZSB0aGF0IHRoZSB0eXBlYWhlYWQgcGx1Z2luIGRvZXNuJ3Qgc2NyZXcgdXAgdGhlIHdpZHRoXG4udHdpdHRlci10eXBlYWhlYWQge1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgaW5wdXQudHQtaGludCwgaW5wdXQudHQtaW5wdXQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICB9XG5cbiAgICAudHQtbWVudSB7XG4gICAgICAgIEBpbmNsdWRlIHotaW5kZXgoJGltcG9ydGFudDogdHJ1ZSk7XG4gICAgICAgIEBpbmNsdWRlIHBhbmVsKFxuICAgICAgICAgICAgJGJnOiB3aGl0ZSxcbiAgICAgICAgICAgICRwYWRkaW5nOiAwXG4gICAgICAgICk7XG5cbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtaGVpZ2h0OiAzMDhweDtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICB9XG5cbiAgICAudHQtc3VnZ2VzdGlvbiB7XG4gICAgICAgIGNvbG9yOiAkb2lsO1xuICAgICAgICBmb250LXNpemU6ICR0ZXh0LXNtYWxsO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgZGl2IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAudHQtaGlnaGxpZ2h0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudHQtc3VnZ2VzdGlvbjpob3ZlciwgLnR0LWN1cnNvciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNkN2YwZmU7XG4gICAgICAgIGNvbG9yOiAkbGluay1ibHVlLWxpZ2h0O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgLnR0LWhpZ2hsaWdodCB7XG4gICAgICAgICAgICBjb2xvcjogJGxpbmstYmx1ZS1saWdodDtcbiAgICAgICAgfVxuICAgIH1cblxufVxuIiwiLypkb2Ncbi0tLVxudGl0bGU6IFNjb3JlIEJhclxubmFtZTogYS1zY29yZS1iYXJcbmNhdGVnb3J5OiBEYXRhIFBhdHRlcm5zIC0gU2NvcmUgQmFyXG5hdXRob3JzOiBQYWJsbyBMYXpvLCBXaWxsaWFtIEZlcmd1c29uXG5zZWxlY3RvcnM6XG4gIC0gLnNjb3JlLWJhclxuLS0tXG5cblNjb3JlIGJhciBmb3Igd2lkZ2V0cy5cblxufCBjbGFzcyAgICAgICAgICAgICAgICAgICAgICB8IHB1cnBvc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXxcbnwgYHNjb3JlLWJhcmAgICAgICAgICAgICAgICAgfCBiYXNlIGNsYXNzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCBgcm91bmRlZGAgICAgICAgICAgICAgICAgICB8IHJvdW5kZWQgY29ybmVycyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IGB0aGluL3RoaW5uZXIvdGhpY2tgICAgICAgIHwgY2hhbmdlcyB0aGUgaGVpZ2h0ICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgYGhhbmRsZWAgICAgICAgICAgICAgICAgICAgfCBoYW5kbGUgdG9nZ2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCBgYmctd2hpdGVgICAgICAgICAgICAgICAgICB8IHdoaXRlIGJhY2tncm91bmQsIG91dGxpbmVkICAgICAgICAgICAgICAgICB8XG58IGByZWRgLGByZWQtYnJpY2tgLCAgICAgICAgIHwgY29sb3IgdGhlIGJhciByZWQgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgYHllbGxvdy1saWdodGAsICAgICAgICAgICAgfCBjb2xvciB0aGUgYmFyIHllbGxvdyAgICAgICAgICAgICAgICAgICAgICAgfFxufCBgZ3JlZW4tc2VhLWZvYW1gLCAgICAgICAgICB8IGNvbG9yIHRoZSBiYXIgZ3JlZW4gICAgICAgICAgICAgICAgICAgICAgICB8XG58IGBncmVlbi1wcm9gLCBgZ3JlZW4tZm9yZXN0YHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcblxuYGBgIGh0bWxfZXhhbXBsZVxuPGRpdiBjbGFzcz1cInNjb3JlLWJhciB0aGluZXIgcm91bmRlZCBoYW5kbGUgYmxvY2stbm9ybWFsXCI+XG4gICAgPGRpdiBzdHlsZT1cIndpZHRoOiA0NiVcIj48L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwic2NvcmUtYmFyIHJvdW5kZWQgaGFuZGxlIGJsb2NrLW5vcm1hbFwiPlxuICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogNTAlXCI+PC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cInNjb3JlLWJhciB0aGluIGhhbmRsZSBibG9jay1ub3JtYWxcIj5cbiAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IDEwJVwiPjwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJzY29yZS1iYXIgcm91bmRlZCB0aGljayBoYW5kbGUgYmxvY2stbm9ybWFsXCI+XG4gICAgPGRpdiBzdHlsZT1cIndpZHRoOiAzMCVcIj48L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwic2NvcmUtYmFyIGJsb2NrLW5vcm1hbFwiPlxuICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogODAlXCI+PC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cInNjb3JlLWJhciBiZy13aGl0ZSBibG9jay1ub3JtYWxcIj5cbiAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IDgwJVwiPjwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJzY29yZS1iYXIgYmctd2hpdGUgcmVkLWJyaWNrIGJsb2NrLW5vcm1hbFwiPlxuICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogMTAlXCI+PC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJzY29yZS1iYXIgYmctd2hpdGUgcmVkIGJsb2NrLW5vcm1hbFwiPlxuICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogMjAlXCI+PC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJzY29yZS1iYXIgYmctd2hpdGUgeWVsbG93LWxpZ2h0IGJsb2NrLW5vcm1hbFwiPlxuICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogNDAlXCI+PC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJzY29yZS1iYXIgYmctd2hpdGUgZ3JlZW4tc2VhLWZvYW0gYmxvY2stbm9ybWFsXCI+XG4gICAgPGRpdiBzdHlsZT1cIndpZHRoOiA1MCVcIj48L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInNjb3JlLWJhciBiZy13aGl0ZSBncmVlbi1wcm8gYmxvY2stbm9ybWFsXCI+XG4gICAgPGRpdiBzdHlsZT1cIndpZHRoOiA2MCVcIj48L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInNjb3JlLWJhciBiZy13aGl0ZSBncmVlbi1mb3Jlc3QgYmxvY2stbm9ybWFsXCI+XG4gICAgPGRpdiBzdHlsZT1cIndpZHRoOiA3MCVcIj48L2Rpdj5cbjwvZGl2PlxuXG5gYGBcbiovXG5cbi5zY29yZS1iYXIge1xuICAgICRoZWlnaHQ6IDE1cHg7XG4gICAgJHRoaW4taGVpZ2h0OiAkaGVpZ2h0LzI7XG4gICAgJHRoaW5lci1oZWlnaHQ6ICRoZWlnaHQvMztcbiAgICAkdGhpY2staGVpZ2h0OiAkaGVpZ2h0KjEuNTtcbiAgICAkc2NvcmUtYmFyLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNtb2tlO1xuICAgID4gZGl2IHtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzY29yZS1iYXItY29sb3I7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG4gICAgJi5yb3VuZGVkIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGhlaWdodDtcbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJGhlaWdodC8yO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJGhlaWdodC8yO1xuICAgICAgICB9XG4gICAgICAgICYudGhpbiA+IGRpdiB7XG4gICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkdGhpbi1oZWlnaHQvMjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICR0aGluLWhlaWdodC8yO1xuICAgICAgICB9XG4gICAgICAgICYudGhpbmVyID4gZGl2IHtcbiAgICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICR0aGluLWhlaWdodC8zO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHRoaW4taGVpZ2h0LzM7XG4gICAgICAgIH1cbiAgICAgICAgJi50aGljayA+IGRpdiB7XG4gICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkdGhpY2staGVpZ2h0LzI7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkdGhpY2staGVpZ2h0LzI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi50aGluIHtcbiAgICAgICAgaGVpZ2h0OiAkdGhpbi1oZWlnaHQ7XG4gICAgfVxuICAgICYudGhpbmVyIHtcbiAgICAgICAgaGVpZ2h0OiAkdGhpbmVyLWhlaWdodDtcbiAgICB9XG4gICAgJi50aGljayB7XG4gICAgICAgIGhlaWdodDogJHRoaWNrLWhlaWdodDtcbiAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHRoaWNrLWhlaWdodC8yO1xuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkdGhpY2staGVpZ2h0LzI7XG4gICAgfVxuICAgICYuaGFuZGxlIHtcbiAgICAgICAgPiBkaXY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBkaXNwbGF5OmlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAkaGFuZGxlLXNpemU6ICRoZWlnaHQgKiAxLjI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRoYW5kbGUtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkaGFuZGxlLXNpemU7XG4gICAgICAgICAgICByaWdodDogLSRoYW5kbGUtc2l6ZS8yO1xuICAgICAgICAgICAgdG9wOiAtKCRoYW5kbGUtc2l6ZSAtICRoZWlnaHQpLzI7XG4gICAgICAgICAgICBib3JkZXI6ICRoZWlnaHQvNCAgc29saWQgJHNjb3JlLWJhci1jb2xvcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRoZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgJi50aGluID4gZGl2OmFmdGVyIHtcbiAgICAgICAgICAgICRoYW5kbGUtc2l6ZTogJHRoaW4taGVpZ2h0ICogMS40O1xuICAgICAgICAgICAgaGVpZ2h0OiAkaGFuZGxlLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJGhhbmRsZS1zaXplO1xuICAgICAgICAgICAgcmlnaHQ6IC0kaGFuZGxlLXNpemUvMjtcbiAgICAgICAgICAgIHRvcDogLSgkaGFuZGxlLXNpemUgLSAkdGhpbi1oZWlnaHQpLzI7XG4gICAgICAgICAgICBib3JkZXI6ICR0aGluLWhlaWdodC8zICBzb2xpZCAkc2NvcmUtYmFyLWNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJHRoaW4taGVpZ2h0O1xuICAgICAgICB9XG4gICAgICAgICYudGhpbmVyID4gZGl2OmFmdGVyIHtcbiAgICAgICAgICAgICRoYW5kbGUtc2l6ZTogJHRoaW5lci1oZWlnaHQgKiAxLjQ7XG4gICAgICAgICAgICBoZWlnaHQ6ICRoYW5kbGUtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkaGFuZGxlLXNpemU7XG4gICAgICAgICAgICByaWdodDogLSRoYW5kbGUtc2l6ZS8yO1xuICAgICAgICAgICAgdG9wOiAtKCRoYW5kbGUtc2l6ZSAtICR0aGluZXItaGVpZ2h0KS8yO1xuICAgICAgICAgICAgYm9yZGVyOiAkdGhpbmVyLWhlaWdodC8yICBzb2xpZCAkc2NvcmUtYmFyLWNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJHRoaW5lci1oZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgJi50aGljayA+IGRpdjphZnRlciB7XG4gICAgICAgICAgICAkaGFuZGxlLXNpemU6ICR0aGljay1oZWlnaHQgKiAxLjI7XG4gICAgICAgICAgICBoZWlnaHQ6ICRoYW5kbGUtc2l6ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkaGFuZGxlLXNpemU7XG4gICAgICAgICAgICByaWdodDogLSRoYW5kbGUtc2l6ZS8yO1xuICAgICAgICAgICAgdG9wOiAtKCRoYW5kbGUtc2l6ZSAtICR0aGljay1oZWlnaHQpLzI7XG4gICAgICAgICAgICBib3JkZXI6ICR0aGljay1oZWlnaHQvNCAgc29saWQgJHNjb3JlLWJhci1jb2xvcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICR0aGljay1oZWlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5iZy13aGl0ZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCByZW0tY2FsYygxKSAkZ2FpbnNib3JvO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbiAgICAmLnJlZC1icmljayA+IGRpdiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRyZWQtYnJpY2s7XG4gICAgfVxuICAgICYucmVkID4gZGl2IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJlZDtcbiAgICB9XG4gICAgJi55ZWxsb3ctbGlnaHQgPiBkaXYge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeWVsbG93LWxpZ2h0O1xuICAgIH1cbiAgICAmLmdyZWVuLXNlYS1mb2FtID4gZGl2IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdyZWVuLXNlYS1mb2FtO1xuICAgIH1cbiAgICAmLmdyZWVuLXBybyA+IGRpdiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRncmVlbi1wcm87XG4gICAgfVxuICAgICYuZ3JlZW4tZm9yZXN0ID4gZGl2IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdyZWVuLWZvcmVzdDtcbiAgICB9XG4gICAgJi5zbW9rZSA+IGRpdiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzbW9rZTtcbiAgICB9XG59XG4iLCIuaW5kZXgge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAuaW5kZXgtaXRlbSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICBwYWRkaW5nOiAuMjVyZW0gMDtcbiAgICAgICAgPiBhIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBmcm9tKGJwLXNtYWxsKSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0RERERERDtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bSkge1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5pbmRleC1hbHBoYSB7XG4gICAgICAgICYub2Zmc2V0OmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLTY1cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDY1cHg7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW5cbiAgICAgICAgfVxuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAuMjVyZW0gMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuaW5kZXgtaXRlbXMge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgPiBsaSA+IGEge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC42MjVyZW07XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgZnJvbShicC1zbWFsbCkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bSkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC45Mzc1cmVtICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmluZGV4LXNlY3Rpb25zIHtcbiAgICAgICAgQGluY2x1ZGUgZnJvbShicC1zbWFsbCkge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAuNXJlbTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bSkge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5pbmRleC1zaWRlYmFyIHtcbiAgICAgICAgd2lkdGg6IDRyZW07XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMC45Mzc1cmVtO1xuICAgICAgICAmLmluZGV4LXN0aWNreXtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgfVxuICAgICAgICAmLmluZGV4LWJvdHRvbSB7XG4gICAgICAgICAgICB0b3A6IGluaXRpYWw7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIGEge1xuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgJi50b3VjaGVkIHNwYW4ge1xuICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuaW5kZXgtdGFyZ2V0IHtcbiAgICAgICAgZm9udC1zaXplOiAzcmVtO1xuICAgICAgICB3aWR0aDogM3JlbTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBkaXNwbGF5Om5vbmU7XG4gICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGluaXRpYWw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmluZGV4LXRvcGJhciB7XG4gICAgICAgIGEge1xuICAgICAgICAgICAgd2lkdGg6IDE5cHg7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICAgICAgICAmLmRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qZG9jXG4tLS1cbnRpdGxlOiBNYXBzIChqcylcbm5hbWU6IGpzLW1hcHNcbmNhdGVnb3J5OiBKYXZhU2NyaXB0IC0gVXRpbGl0aWVzXG5hdXRob3JzOiBQYWJsbyBMYXpvXG4tLS1cblxuTGVhZmxldCBtYXBzIHVzaW5nIE1hcFF1ZXN0IHRpbGVzLlxuXG58IG9wdGlvbiAgICAgICAgfCBwdXJwb3NlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdHlwZSAgICB8IGRlZmF1bHQgfFxufC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tfC0tLS0tLS0tLXxcbnwgYHpvb21gICAgICAgICB8IHpvb20gdmFsdWUsIGhpZ2hlciBtZWFucyBjbG9zZXIuIG1heGltdW0gb2YgMTggfCBudW1iZXIgIHwgMTMgICAgICB8XG58IGBtYXJrZXJgICAgICAgfCBkaXNwbGF5IG1hcmtlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYm9vbGVhbiB8IHRydWUgICAgfFxufCBgcG9wdXBgICAgICAgIHwgaHRtbCBjb250ZW50IGZvciB0aGUgbWFya2VyIHBvcHVwICAgICAgICAgICAgICB8IHN0cmluZyAgfCBudWxsICAgIHxcbnwgYGxhdGAgICAgICAgICB8IGNlbnRlciBsYXRpdHVkZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBudW1iZXIgIHwgbnVsbCAgICB8XG58IGBsb25gICAgICAgICAgfCBjZW50ZXIgbG9uZ2l0dWRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbnVtYmVyICB8IG51bGwgICAgfFxufCBgaW50ZXJhY3RpdmVgIHwgbWFwIGludGVyYWN0aW9ucyB3aXRoIG1vdXNlL3RvdWNoICAgICAgICAgICAgICB8IGJvb2xlYW4gfCBmYWxzZSAgIHxcbnwgYHNjcm9sbC13aGVlbGB8IHNjcm9sbCB3aGVlbCB6b29tIChpbnRlcmFjdGl2ZT1mYWxzZSBvdmVycmlkZXMgdGhpcykgfCBib29sZWFuIHwgdHJ1ZSAgICB8XG5cblNldCBvcHRpb25zIHdoZW4gaW5pdGlhbGl6aW5nIHRoZSBjbGFzcyBieSBwYXNzaW5nIGluIGFuIG9wdGlvbnMgb2JqZWN0LiBTZWUgdGhlIEpTIGV4YW1wbGUuXG5Zb3UgY2FuIGFsc28gc2V0IHRoZW0gaW4gdGhlIGVsZW1lbnQncyBgZGF0YS1tYXAtPG9wdGlvbj5gIGF0dHJpYnV0ZXMuIFRoZSBleGFtcGxlIHNldHMgem9vbSB0aGlzIHdheS5cblxuYGBgaHRtbF9leGFtcGxlX2ZpeHR1cmVcbjxkaXYgZGF0YS1qcy1pZD1cIm1hcFwiIGRhdGEtbWFwcy16b29tPVwiMTZcIiBkYXRhLW1hcHMtYmFuYW5hPVwicGxhbnRhaW5cIiBzdHlsZT1cImhlaWdodDozMDBweDtcIj5cblxuPC9kaXY+XG5cbmBgYFxuXG5gYGBqc19leGFtcGxlXG5VU04uRXZlbnREaXNwYXRjaGVyLmluc3RhbmNlLmRpc3BhdGNoZXIudHJpZ2dlcignc3VtbW9uOnVpOm1hcHMnLCBmdW5jdGlvbihNYXApIHtcbiAgICB2YXIgZWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1qcy1pZD1cIm1hcFwiJyk7XG4gICAgdmFyIG9wdGlvbnMgPSB7XG4gICAgICAgIGxhdDogMzguOTAzNDcsXG4gICAgICAgIGxvbjogLTc3LjA2MDMwOCxcbiAgICAgICAgcG9wdXA6ICc8aW1nIHdpZHRoPVwiNTBweFwiIHNyYz1cIi9zdGF0aWMvaW1nL3Vzbi1sb2dvLXNtYWxsLnN2Z1wiPicsXG4gICAgfTtcbiAgICB2YXIgbWFwID0gbmV3IE1hcChlbCwgb3B0aW9ucyk7XG59KTtcblxuYGBgXG5cbiovXG5cbi5sZWFmbGV0LWNvbnRhaW5lciB7XG4gICAgdG91Y2gtYWN0aW9uOiBpbml0aWFsICFpbXBvcnRhbnQ7IC8vRml4ZXMgYSBMZWFmbGV0IGJ1Zy4gUmVtb3ZlIGlmIFBSIGlzIGFjY2VwdGVkLlxuICAgIGJvcmRlcjogc29saWQgMXB4ICNkZGQ7XG4gICAgLmxlYWZsZXQtYm90dG9tLCAubGVhZmxldC10b3Age1xuICAgICAgICB6LWluZGV4OiA5MDA7XG4gICAgfVxufVxuXG4ubGVhZmxldC11c24tdG9vbHRpcCB7XG4gICAgd2lkdGg6IDE1MHB4O1xuXG4gICAgLmxlYWZsZXQtcG9wdXAtY29udGVudCB7XG4gICAgICAgIC8vIC0tLS0tLS0tIHNvcnJ5LCBuZWVkIHRvIG92ZXJyaWRlIGxlYWZsZXQgc3RvY2sgY3NzXG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcblxuICAgICAgICBwIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgICAgICAvLyAtLS0tLS0tLVxuXG4gICAgICAgID4gZGl2Om50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZWZlZmVmO1xuICAgICAgICAgICAgcGFkZGluZzogNnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgPiBkaXY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDZweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC50b29sdGlwLWhlYWRlciB7XG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubGVhZmxldC1wb3B1cC1jb250ZW50LXdyYXBwZXIge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIH1cblxuICAgIC5sZWFmbGV0LXBvcHVwLXRpcC1jb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLm1hcCB7XG4gICAgaGVpZ2h0OiAxNXJlbTtcbiAgICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bSkge1xuICAgICAgICBoZWlnaHQ6IDI1cmVtO1xuICAgIH1cbiAgICBAaW5jbHVkZSBmcm9tKGJwLWxhcmdlKSB7XG4gICAgICAgIGhlaWdodDogMzByZW07XG4gICAgfVxuICAgICYuc21hbGwge1xuICAgICAgICBoZWlnaHQ6IDEwcmVtO1xuICAgICAgICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bSkge1xuICAgICAgICAgICAgaGVpZ2h0OiAxNXJlbTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBmcm9tKGJwLWxhcmdlKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcmVtOztcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLmxhcmdlIHtcbiAgICAgICAgaGVpZ2h0OiAyMHJlbTtcbiAgICAgICAgQGluY2x1ZGUgZnJvbShicC1tZWRpdW0pIHtcbiAgICAgICAgICAgIGhlaWdodDogMzByZW07XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgZnJvbShicC1sYXJnZSkge1xuICAgICAgICAgICAgaGVpZ2h0OiA0MHJlbTs7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vQ29weXJpZ2h0IGNyZWRpdCBmb3Igc3RhdGljIG1hcCAod2hlcmUgaXQgaXMgbm90IGF1dG9tYXRpY2FsbHkgaW5jbHVkZWQpXG4ubWFwLW1hbnVhbC1jcmVkaXQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC42KTtcbiAgICBwYWRkaW5nOiAzcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMDtcbn1cblxuLyogSGlnaCBTY2hvb2wgTWFwcyAqL1xuXG4ubGVhZmxldC1tYXAtY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbiNsZWFmbGV0LW1hcCB7XG4gICAgaGVpZ2h0OiA0MDBweDtcblxuICAgIEBpbmNsdWRlIGZyb20oYnAtbWVkaXVtKXtcbiAgICAgICAgaGVpZ2h0OiA2NTBweDtcbiAgICB9XG59XG5cbiNsZWFmbGV0LW1hcC10aHVtYm5haWwge1xuICAgIGhlaWdodDogMjA1cHg7XG5cbiAgICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bSl7XG4gICAgICAgIHdpZHRoOiAzMDVweDtcbiAgICB9XG59XG5cbi8vT3ZlcnJpZGUgY3Vyc29yIGZvciBcInN0YXRpY1wiIHRodW1ibmFpbFxuLmxlYWZsZXQtbWFwLXRodW1ibmFpbC1jb250YWluZXIgLmxlYWZsZXQtY29udGFpbmVyLFxuLmxlYWZsZXQtbWFwLXRodW1ibmFpbC1jb250YWluZXIgaW1nLmxlYWZsZXQtbWFya2VyLWljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8vUG9wdXBzXG4uaHMtcG9wdXBfX3NjaG9vbC1uYW1lIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJlYmViO1xuICAgIHBhZGRpbmc6IDNweCAyNXB4IDNweCA1cHg7XG59XG5cbi5ocy1wb3B1cF9fc2Nob29sLWxvY2F0aW9uIHtcbiAgICBwYWRkaW5nOiAzcHggNXB4O1xufVxuXG4uaHMtcG9wdXBfX3NjaG9vbC1yYW5raW5ncyB7XG4gICAgcGFkZGluZzogM3B4IDVweDtcbn1cblxuLmhzLXBvcHVwX19zY2hvb2wtcmFua2luZyB7fVxuXG4uaHMtcG9wdXBfX3NjaG9vbC1yYW5raW5nc19fYmFkZ2Uge1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbi5ocy1wb3B1cF9fc2Nob29sLXJhbmtpbmdzX19yYW5rIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIHBhZGRpbmc6IDAgNXB4O1xufVxuXG4uaHMtcG9wdXBfX3NjaG9vbC1yYW5raW5nc19fY2F0ZWdvcnkge1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG5cbi5ocy1wb3B1cF9fc2Nob29sLWxpbmsge1xuICAgIHBhZGRpbmc6IDAgNXB4O1xuXG4gICAgYSB7XG4gICAgICAgICY6bGluayB7XG4gICAgICAgICAgICBjb2xvcjogIzJjN2VmMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6dmlzaXRlZCB7XG4gICAgICAgICAgICBjb2xvcjogIzIyNjJCQlxuICAgICAgICB9XG4gICAgfVxufVxuXG4vL0xlZ2VuZFxuLmhzLWxlZ2VuZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYWFhO1xuICAgIHotaW5kZXg6IDUwMDsgLy9BYm92ZSB0aGUgbWFwIHRpbGVzIGJ1dCBiZWxvdyB0aGUgc3RpY2t5IGhlYWRlclxuXG4gICAgQGluY2x1ZGUgZnJvbShicC1tZWRpdW0pe1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogN3B4O1xuICAgICAgICBsZWZ0OiA3cHg7XG4gICAgfVxufVxuXG4uaHMtbGVnZW5kX19pdGVtcyB7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5ocy1sZWdlbmRfX2l0ZW0ge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIH1cblxuICAgIHNwYW4ge1xuICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgfVxufVxuXG4vL092ZXJyaWRlIGxlYWZsZXQgc3R5bGVzXG4udXNuZXdzLWxlYWZsZXQge1xuICAgIC5sZWFmbGV0LXBvcHVwLWNvbnRlbnQtd3JhcHBlciB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgfVxuXG4gICAgLmxlYWZsZXQtcG9wdXAtY29udGVudCB7XG4gICAgICAgIG1hcmdpbjogMCAwIDVweDtcbiAgICB9XG5cbiAgICAubGVhZmxldC1wb3B1cC10aXAge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIH1cblxuICAgIGEubGVhZmxldC1wb3B1cC1jbG9zZS1idXR0b24ge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgICYubm8tdGlwIHtcbiAgICAgICAgLmxlYWZsZXQtcG9wdXAtdGlwLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5Om5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5sZWFmbGV0LXBvcHVwIHN2ZyB7XG4gICAgcG9zaXRpb246IGluaXRpYWwgIWltcG9ydGFudDtcbn1cblxuLnVzbmV3cy1sZWFmbGV0LmNvbGxlZ2UtcG9wdXAge1xuICAgIC5sZWFmbGV0LXBvcHVwLWNvbnRlbnQtd3JhcHBlciB7XG4gICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICB9XG4gICAgLmNvbGxlZ2UtdGl0bGUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZWZlZmVmO1xuICAgICAgICBwYWRkaW5nOiAzcHggNnB4O1xuICAgIH1cbiAgICAuY29sbGVnZS1jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogNXB4IDZweDtcbiAgICB9XG59XG5cbi5tYXAtY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgXG4gICAgLm1hcC1sZWdlbmQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNDQ0M7XG4gICAgICAgIGJvdHRvbTogMjJweDtcbiAgICAgICAgcGFkZGluZzogOHB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAxMHB4O1xuICAgICAgICB6LWluZGV4OiA5OTk7XG5cbiAgICAgICAgLm1hcC1sZWdlbmQtY29sb3ItaW5kaWNhdG9yIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJlZDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTBweDtcbiAgICAgICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4udXNuZXdzLWxlYWZsZXQuaW5mby1wb3B1cCB7XG4gICAgLmxlYWZsZXQtcG9wdXAtY29udGVudC13cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZzogMHB4O1xuICAgIH1cbn1cblxuaW1nLmxlYWZsZXQtbWFya2VyLWljb24ge1xuICAgICYuY2lyY3VsYXItc2hhZG93IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBib3gtc2hhZG93OiAycHggMnB4IDhweCByZ2JhKDAsMCwwLC44NSk7XG4gICAgfVxufVxuXG4vKmRvY1xuLS0tXG50aXRsZTogTW9kYWwgTWFwXG5uYW1lOiBtb2RhbC1tYXBcbmNhdGVnb3J5OiBNb2RhbHMgLSBNYXBzXG5hdXRob3JzOiBXZXMgRGlNaWNlbGlcbi0tLVxuXG57JSBzZXQgZWRpdG9yX2lkID0gdXVpZCgpICV9XG5cbmBgYG51bmp1Y2tzX3RhYj9lZGl0b3ItaWQ9e3tlZGl0b3JfaWR9fVxueyUgbWFjcm8gbW0obW9kYWxNYXApICV9XG4gICAgeyUgaW5jbHVkZSBcInRlbXBsYXRlcy9jb21tb24vbGliL3VpL21vZGFsLW1hcC5udW5qXCIgJX1cbnslIGVuZG1hY3JvICV9XG57JSBjYWxsIG1tKHtcbiAgICBcImxhdGl0dWRlXCI6IDM4LjkwMzQ3LFxuICAgIFwibG9uZ2l0dWRlXCI6IC03Ny4wNjAzMDhcbn0pICV9XG4gICAgPHA+U29tZSBjb250ZW50IGJlbmVhdGggdGhlIG1hcCBpbiB0aGUgbW9kYWwuPC9wPlxueyUgZW5kY2FsbCAlfVxuYGBgXG5cbiovXG4iLCIvKmRvY1xuLS0tXG50aXRsZTogU3RhdCBMaXN0XG5uYW1lOiBhLXN0YXQtbGlzdFxuY2F0ZWdvcnk6IE1lZGlhIE9iamVjdHMgLSBTdGF0IExpc3QgT2JqZWN0XG5zZWxlY3RvcnM6XG4gICAgLSAuc3RhdC1saXN0XG5zZWxlY3Rvcl90eXBlOiBjb21wb25lbnRcbnRlbXBsYXRlOlxuICAgIHByb3M6XG4gICAgICAgIC0gSGVhcnQgaGVhbHRoeVxuICAgICAgICAtIE51dHJpdGlvbmFsbHkgc291bmRcbiAgICBjb25zOlxuICAgICAgICAtIExvdHMgb2YgZ3J1bnQgd29ya1xuICAgICAgICAtIFNvbWV3aGF0IHByaWNleVxuICAgIG1lZGlhbl9zYWxhcnk6IDE0NjM0MFxuICAgIHVuZW1wbG95bWVudF9yYXRlOiAwLjlcbiAgICBudW1iZXJfb2Zfam9iczogMjMwMDBcbi0tLVxuXG5BIGJ1aWxkZXIgZm9yIHNpbXBsZSBzdGF0IGxpc3RzIGFjY29tcGFuaWVkIGJ5IGFuIFNWRyBpY29uLlxuXG58IHBhcmFtZXRlciAgICAgICAgICAgIHwgcHVycG9zZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufC0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXxcbnwgYGhlYWRlcmAgICAgICAgICAgICAgfCBIZWFkZXIgdGV4dCB0byByZW5kZXIgYWJvdmUgdGhlIGxpc3RzLiAgICAgICAgICAgICAgICB8XG5cblRoZSBtYWNybyByZW5kZXJzIHRoZSBmcmFtZXdvcmsgZm9yIHRoZSBsaXN0IGFuZCBwYXNzZXMgYWxvbmcgYSBkaWN0aW9uYXJ5IG9mIGNvbHVtbiBidWlsZGVycy4gIFNpbXBseSBjYWxsIGEgYnVpbGRlciB0byByZW5kZXIgYSBzaW5nbGUgbGlzdC5cblxuRXhhbXBsZSB1c2FnZTpcblxueyUgc2V0IGVkaXRvcl9pZCA9IHV1aWQoKSAlfVxuXG5gYGBudW5qdWNrc190YWI/ZWRpdG9yLWlkPXt7ZWRpdG9yX2lkfX1cblxueyUgZnJvbSBcInRlbXBsYXRlcy9jb21tb24vbGlzdC9zdGF0LWxpc3QubnVualwiIGltcG9ydCBzdGF0TGlzdCAlfVxuXG57JSBjYWxsKGNvbEJ1aWxkZXJzKSBzdGF0TGlzdCgnUHJvcyAmIENvbnMnKSAlfVxuICAgIHt7IGNvbEJ1aWxkZXJzLnBybyhoZWFkZXJzPXByb3MpIH19XG4gICAge3sgY29sQnVpbGRlcnMuY29uKGhlYWRlcnM9Y29ucykgfX1cbnslIGVuZGNhbGwgJX1cblxueyUgY2FsbChjb2xCdWlsZGVycykgc3RhdExpc3QoJ1F1aWNrIFN0YXRzJykgJX1cbiAgICB7eyBjb2xCdWlsZGVycy5iYXNlKGhlYWRlcnM9W21lZGlhbl9zYWxhcnldLCBpY29uPSdtb25leScsIHN1YmhlYWRlcj0nTWVkaWFuIFNhbGFyeScpIH19XG4gICAge3sgY29sQnVpbGRlcnMuYmFzZShoZWFkZXJzPVt1bmVtcGxveW1lbnRfcmF0ZSArICclJ10sIGljb249J2RvY3VtZW50Jywgc3ViaGVhZGVyPSdVbmVtcGxveW1lbnQgUmF0ZScpIH19XG4gICAge3sgY29sQnVpbGRlcnMuYmFzZShoZWFkZXJzPVtudW1iZXJfb2Zfam9ic10sIGljb249J2JyaWVmY2FzZScsIHN1YmhlYWRlcj0nTnVtYmVyIG9mIEpvYnMnKSB9fVxueyUgZW5kY2FsbCAlfVxuXG5gYGBcblxuQ29sdW1uIEJ1aWxkZXJzXG4tLS0tLS0tLS0tLS0tLS1cblxuKipiYXNlKipcblxuVGhlIGJhc2UgY29sdW1uIGJ1aWxkZXIuICBPdGhlciBidWlsZGVycyBsZXZlcmFnZSB0aGlzIG1hY3JvLlxuXG58IHBhcmFtZXRlciAgICAgICAgICB8IHB1cnBvc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwtLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxufCBgaGVhZGVyc2AqICAgICAgICAgfCBBcnJheSBvZiBsYWJlbHMgdG8gcmVuZGVyIGFsb25nc2lkZSB0aGUgc3BlY2lmaWVkIGljb24uICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IGBpY29uYCogICAgICAgICAgICB8IElEIG9mIGFuIFNWRyBpY29uIHRvIGRpc3BsYXkuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgYGljb25DbGFzc2AgICAgICAgIHwgQ1NTIGNsYXNzIHRvIGFwcGx5IHRvIHRoZSBTVkcgZWxlbWVudC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCBgY3NzQ2xhc3NgICAgICAgICAgfCBDU1MgY2xhc3MgdG8gYXBwbHkgdG8gdGhlIGVuY2xvc2luZyBsaXN0IGVsZW1lbnQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IGBzdWJoZWFkZXJgICAgICAgICB8IE9wdGlvbmFsIHN1YmhlYWRlciB3aGljaCBpcyByZW5kZXJlZCBiZWxvdyB0aGUgbWFpbiBsYWJlbC4gICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgYGNvbGxhcHNlU21hbGxgICAgIHwgQm9vbGVhbiB0aGF0IHNwZWNpZmllcyB3aGV0aGVyIHRvIHJlbmRlciBjb2x1bW5zIG9uIG1lZGl1bSBkb3duOyBkZWZhdWx0cyB0byB0cnVlLiAgfFxuXFwqID0gcmVxdWlyZWRcblxuPHByZT5cbiAgICBjb2xCdWlsZGVycy5iYXNlKGhlYWRlcnM9WydTY2FsZXMgSGVhZGVyJ10sIGljb249J3NjYWxlcycpXG4gICAgY29sQnVpbGRlcnMuYmFzZShoZWFkZXJzPVsnTG9jayBIZWFkZXInXSwgaWNvbj0nbG9jaycsIGljb25DbGFzcz0ncm90YXRlLTQ1JylcbiAgICBjb2xCdWlsZGVycy5iYXNlKGhlYWRlcnM9WydCaWtlIEhlYWRlciddLCBpY29uPSdiaWtlJywgc3ViaGVhZGVyPSdUcmFuc3BvcnRhdGlvbiBTdHlsZScpXG48L3ByZT5cblxuKipwcm8gJiBjb24qKlxuXG5Db252ZW5pZW5jZSBidWlsZGVycyB0aGF0IHJlbmRlciBncmVlbiBjaGVja3MgYW5kIHJlZCBYJ3MuICBQYXNzIGEgc2luZ2xlIGxpc3Qgb2YgaGVhZGVyczpcblxuPHByZT5cbiAgICBjb2xCdWlsZGVycy5wcm8oaGVhZGVycz1bJ1BybyAxJywgJ1BybyAyJywgJ1BybyAzJ10pXG4gICAgY29sQnVpbGRlcnMuY29uKGhlYWRlcnM9WydDb24gMScsICdDb24gMicsICdDb24gMyddKVxuPC9wcmU+XG5cbk5vdGUgdGhhdCB0aGlzIGJ1aWxkZXIgd2lsbCBub3QgY29sbGFwc2UgbGlzdCByb3dzIGludG8gY29sdW1ucyBvbiBzbWFsbCBhbmQgbWVkaXVtLlxuXG4qL1xuXG4uc3RhdC1saXN0IHtcbiAgICBzdmcge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi10b3A6IC01cHg7XG4gICAgfVxufVxuIiwiLm1lbnUtY29tcG9uZW50IHtcblx0LmJhZGdlIHtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdH1cbn1cblxuLm1lZ2EtbWVudS1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIHotaW5kZXg7XG5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcblxuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KDAsIDAsIHJlbS1jYWxjKDUpLCAwLCByZ2JhKDAsIDAsIDAsIDAuNSkpO1xuXG4gICAgJi5qcy1tZWdhLW1lbnUtYWN0aXZlIHtcbiAgICAgICAgQG1lZGlhICN7JGxhcmdlLXVwfSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5tZWdhLW1lbnUge1xuICAgIFx0ZGlzcGxheTogbm9uZTtcblxuXHQgICAgJi5qcy1tZWdhLW1lbnUtYWN0aXZlIHtcblx0ICAgICAgICBAbWVkaWEgI3skbGFyZ2UtdXB9IHtcblx0ICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cdCAgICAgICAgfVxuXHQgICAgfVxuXG5cdCAgICAucmFua2luZ3Mge1xuXHQgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHNpbHZlciA1MCUsICR3aGl0ZSA1MCUsICR3aGl0ZSAxMDAlKTtcblxuXHQgICAgICAgIC5tZW51LWNvbXBvbmVudCB7XG5cdCAgICAgICAgXHRib3JkZXItbGVmdDogMXB4IHNvbGlkICNEREQ7XG5cdCAgICAgICAgfVxuXG5cdCAgICAgICAgLm1lbnUtY29tcG9uZW50Om50aC1jaGlsZCgxKSB7XG5cdFx0ICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2lsdmVyO1xuXHRcdCAgICAgICAgYm9yZGVyOiBub25lO1xuXHRcdCAgICB9XG5cblx0XHQgICAgLy8gaW5kZW50IHdyYXBwaW5nIHRleHQgb24gcmFua2luZyBsaXN0c1xuICAgIFx0XHQuZGlzcGxheS10YWJsZS1jZWxsIHtcblx0XHQgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cdFx0ICAgIH1cblx0ICAgIH1cblxuXHQgICAgLnByb2ZpbGUsIC50b3BpYywgLmdlbmVyaWMtcGFuZWwge1xuXHQgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHdoaXRlIDUwJSwgJHNpbHZlciA1MCUsICRzaWx2ZXIgMTAwJSk7XG5cblx0ICAgICAgICAubWVudS1jb21wb25lbnQge1xuXHQgICAgICAgIFx0YmFja2dyb3VuZC1jb2xvcjogJHNpbHZlcjtcblxuXHQgICAgICAgIFx0Ji5wYW5lbC13aWR0aC13aWRlIHtcblx0ICAgICAgICBcdFx0ZmxleC1iYXNpczogNjAwcHg7XG5cdCAgICAgICAgXHR9XG4gICAgICAgICAgICAgICAgJi5wYW5lbC13aWR0aC1uYXJyb3cge1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWJhc2lzOiAzMDBweDtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgICAgIH1cblx0ICAgICAgICB9XG5cblx0ICAgICAgICAubWVudS1jb21wb25lbnQ6bnRoLWNoaWxkKDEpIHtcblx0XHQgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcblx0XHQgICAgfVxuXHQgICAgfVxuXG4gICAgICAucHJvZ3JhbXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICR3aGl0ZSA1MCUsICRzaWx2ZXIgNTAlLCAkc2lsdmVyIDEwMCUpO1xuXG4gICAgICAgIC5tZW51LWNvbXBvbmVudCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1lbnUtY29tcG9uZW50Omxhc3QtY2hpbGQge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzaWx2ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cblxuXHQgICAgLnNwYXJrbGluZSB7XG5cdCAgICBcdC5zdG9jay1zcGFya2xpbmUge1xuXHQgICAgXHRcdHdpZHRoOiAzNTBweDtcblx0ICAgIFx0fVxuXHQgICAgXHQuc3RvY2stc3BhcmtsaW5lLXBhbmVsIHtcblx0ICAgIFx0XHRwYWRkaW5nOiAxLjM1cmVtIDAuNjI1cmVtO1xuXHQgICAgXHR9XG5cdCAgICB9XG5cbiAgXHRcdC5tZW51LWNvbXBvbmVudCB7XG4gIFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgXHRcdFx0cGFkZGluZy10b3A6IDMwcHg7XG5cbiAgICAgICAgJi5mbGV4LWdyb3ctMiB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1ncm93KDIpO1xuICAgICAgICB9XG4gIFx0XHR9XG4gICAgfVxufVxuXG4vL1RoZW1pbmdcbkBtaXhpbiBkYXJrLW1lZ2EtbWVudSgpIHtcbi5kYXJrIC5tZWdhLW1lbnUgLm1lbnUtY29tcG9uZW50LWNvbnRhaW5lciB7XG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiAkbGluay1ibHVlLWxpZ2h0O1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkbGluay1ibHVlLWRhcms7XG4gICAgICAgIH1cbiAgICB9XG59XG59XG4iLCIvKmRvY1xuLS0tXG50aXRsZTogQ1NTIENvbHVtbnNcbm5hbWU6IGEtY3NzLWNvbHVtbnNcbmNhdGVnb3J5OiBMYXlvdXQgLSBDU1MgQ29sdW1uc1xudGVtcGxhdGU6XG4gICAgc3RhdGVfcmFua2luZ19wYWdlczpcbiAgICAgICAgLSAgIG5hbWU6IEFsYWJhbWFcbiAgICAgICAgICAgIHVybDogL2VkdWNhdGlvbi9iZXN0LWhpZ2gtc2Nob29scy9hbGFiYW1hXG4gICAgICAgIC0gICBuYW1lOiBBbGFza2FcbiAgICAgICAgICAgIHVybDogL2VkdWNhdGlvbi9iZXN0LWhpZ2gtc2Nob29scy9hbGFza2FcbiAgICAgICAgLSAgIG5hbWU6IEFyaXpvbmFcbiAgICAgICAgICAgIHVybDogL2VkdWNhdGlvbi9iZXN0LWhpZ2gtc2Nob29scy9hcml6b25hXG4gICAgICAgIC0gICBuYW1lOiBBcmthbnNhc1xuICAgICAgICAgICAgdXJsOiAvZWR1Y2F0aW9uL2Jlc3QtaGlnaC1zY2hvb2xzL2Fya2Fuc2FzXG4gICAgICAgIC0gICBuYW1lOiBDYWxpZm9ybmlhXG4gICAgICAgICAgICB1cmw6IC9lZHVjYXRpb24vYmVzdC1oaWdoLXNjaG9vbHMvY2FsaWZvcm5pYVxuICAgICAgICAtICAgbmFtZTogQ29sb3JhZG9cbiAgICAgICAgICAgIHVybDogL2VkdWNhdGlvbi9iZXN0LWhpZ2gtc2Nob29scy9jb2xvcmFkb1xuICAgICAgICAtICAgbmFtZTogQ29ubmVjdGljdXRcbiAgICAgICAgICAgIHVybDogL2VkdWNhdGlvbi9iZXN0LWhpZ2gtc2Nob29scy9jb25uZWN0aWN1dFxuICAgICAgICAtICAgbmFtZTogRC5DLlxuICAgICAgICAgICAgdXJsOiAvZWR1Y2F0aW9uL2Jlc3QtaGlnaC1zY2hvb2xzL2Rpc3RyaWN0LW9mLWNvbHVtYmlhXG4gICAgICAgIC0gICBuYW1lOiBEZWxhd2FyZVxuICAgICAgICAgICAgdXJsOiAvZWR1Y2F0aW9uL2Jlc3QtaGlnaC1zY2hvb2xzL2RlbGF3YXJlXG4gICAgICAgIC0gICBuYW1lOiBGbG9yaWRhXG4gICAgICAgICAgICB1cmw6IC9lZHVjYXRpb24vYmVzdC1oaWdoLXNjaG9vbHMvZmxvcmlkYVxuICAgICAgICAtICAgbmFtZTogR2VvcmdpYVxuICAgICAgICAgICAgdXJsOiAvZWR1Y2F0aW9uL2Jlc3QtaGlnaC1zY2hvb2xzL2dlb3JnaWFcbiAgICAgICAgLSAgIG5hbWU6IEhhd2FpaVxuICAgICAgICAgICAgdXJsOiAvZWR1Y2F0aW9uL2Jlc3QtaGlnaC1zY2hvb2xzL2hhd2FpaVxuICAgICAgICAtICAgbmFtZTogSWRhaG9cbiAgICAgICAgICAgIHVybDogL2VkdWNhdGlvbi9iZXN0LWhpZ2gtc2Nob29scy9pZGFob1xuICAgICAgICAtICAgbmFtZTogSWxsaW5vaXNcbiAgICAgICAgICAgIHVybDogL2VkdWNhdGlvbi9iZXN0LWhpZ2gtc2Nob29scy9pbGxpbm9pc1xuICAgICAgICAtICAgbmFtZTogSW5kaWFuYVxuICAgICAgICAgICAgdXJsOiAvZWR1Y2F0aW9uL2Jlc3QtaGlnaC1zY2hvb2xzL2luZGlhbmFcbiAgICAgICAgLSAgIG5hbWU6IElvd2FcbiAgICAgICAgICAgIHVybDogL2VkdWNhdGlvbi9iZXN0LWhpZ2gtc2Nob29scy9pb3dhXG4gICAgICAgIC0gICBuYW1lOiBLYW5zYXNcbiAgICAgICAgICAgIHVybDogL2VkdWNhdGlvbi9iZXN0LWhpZ2gtc2Nob29scy9rYW5zYXNcbiAgICAgICAgLSAgIG5hbWU6IEtlbnR1Y2t5XG4gICAgICAgICAgICB1cmw6IC9lZHVjYXRpb24vYmVzdC1oaWdoLXNjaG9vbHMva2VudHVja3lcbiAgICAgICAgLSAgIG5hbWU6IExvdWlzaWFuYVxuICAgICAgICAgICAgdXJsOiAvZWR1Y2F0aW9uL2Jlc3QtaGlnaC1zY2hvb2xzL2xvdWlzaWFuYVxuICAgICAgICAtICAgbmFtZTogTWFpbmVcbiAgICAgICAgICAgIHVybDogL2VkdWNhdGlvbi9iZXN0LWhpZ2gtc2Nob29scy9tYWluZVxuICAgICAgICAtICAgbmFtZTogTWFyeWxhbmRcbiAgICAgICAgICAgIHVybDogL2VkdWNhdGlvbi9iZXN0LWhpZ2gtc2Nob29scy9tYXJ5bGFuZFxuICAgICAgICAtICAgbmFtZTogTWFzc2FjaHVzZXR0c1xuICAgICAgICAgICAgdXJsOiAvZWR1Y2F0aW9uL2Jlc3QtaGlnaC1zY2hvb2xzL21hc3NhY2h1c2V0dHNcbiAgICAgICAgLSAgIG5hbWU6IE1pY2hpZ2FuXG4gICAgICAgICAgICB1cmw6IC9lZHVjYXRpb24vYmVzdC1oaWdoLXNjaG9vbHMvbWljaGlnYW5cbiAgICAgICAgLSAgIG5hbWU6IE1pbm5lc290YVxuICAgICAgICAgICAgdXJsOiAvZWR1Y2F0aW9uL2Jlc3QtaGlnaC1zY2hvb2xzL21pbm5lc290YVxuICAgICAgICAtICAgbmFtZTogTWlzc2lzc2lwcGlcbiAgICAgICAgICAgIHVybDogL2VkdWNhdGlvbi9iZXN0LWhpZ2gtc2Nob29scy9taXNzaXNzaXBwaVxuICAgICAgICAtICAgbmFtZTogTWlzc291cmlcbiAgICAgICAgICAgIHVybDogL2VkdWNhdGlvbi9iZXN0LWhpZ2gtc2Nob29scy9taXNzb3VyaVxuICAgICAgICAtICAgbmFtZTogTW9udGFuYVxuICAgICAgICAgICAgdXJsOiAvZWR1Y2F0aW9uL2Jlc3QtaGlnaC1zY2hvb2xzL21vbnRhbmFcbiAgICAgICAgLSAgIG5hbWU6IE5lYnJhc2thXG4gICAgICAgICAgICB1cmw6IC9lZHVjYXRpb24vYmVzdC1oaWdoLXNjaG9vbHMvbmVicmFza2FcbiAgICAgICAgLSAgIG5hbWU6IE5ldmFkYVxuICAgICAgICAgICAgdXJsOiAvZWR1Y2F0aW9uL2Jlc3QtaGlnaC1zY2hvb2xzL25ldmFkYVxuICAgICAgICAtICAgbmFtZTogTmV3IEhhbXBzaGlyZVxuICAgICAgICAgICAgdXJsOiAvZWR1Y2F0aW9uL2Jlc3QtaGlnaC1zY2hvb2xzL25ldy1oYW1wc2hpcmVcbiAgICAgICAgLSAgIG5hbWU6IE5ldyBKZXJzZXlcbiAgICAgICAgICAgIHVybDogL2VkdWNhdGlvbi9iZXN0LWhpZ2gtc2Nob29scy9uZXctamVyc2V5XG4gICAgICAgIC0gICBuYW1lOiBOZXcgTWV4aWNvXG4gICAgICAgICAgICB1cmw6IC9lZHVjYXRpb24vYmVzdC1oaWdoLXNjaG9vbHMvbmV3LW1leGljb1xuICAgICAgICAtICAgbmFtZTogTmV3IFlvcmtcbiAgICAgICAgICAgIHVybDogL2VkdWNhdGlvbi9iZXN0LWhpZ2gtc2Nob29scy9uZXcteW9ya1xuICAgICAgICAtICAgbmFtZTogTm9ydGggQ2Fyb2xpbmFcbiAgICAgICAgICAgIHVybDogL2VkdWNhdGlvbi9iZXN0LWhpZ2gtc2Nob29scy9ub3J0aC1jYXJvbGluYVxuICAgICAgICAtICAgbmFtZTogTm9ydGggRGFrb3RhXG4gICAgICAgICAgICB1cmw6IC9lZHVjYXRpb24vYmVzdC1oaWdoLXNjaG9vbHMvbm9ydGgtZGFrb3RhXG4gICAgICAgIC0gICBuYW1lOiBPaGlvXG4gICAgICAgICAgICB1cmw6IC9lZHVjYXRpb24vYmVzdC1oaWdoLXNjaG9vbHMvb2hpb1xuICAgICAgICAtICAgbmFtZTogT2tsYWhvbWFcbiAgICAgICAgICAgIHVybDogL2VkdWNhdGlvbi9iZXN0LWhpZ2gtc2Nob29scy9va2xhaG9tYVxuICAgICAgICAtICAgbmFtZTogT3JlZ29uXG4gICAgICAgICAgICB1cmw6IC9lZHVjYXRpb24vYmVzdC1oaWdoLXNjaG9vbHMvb3JlZ29uXG4gICAgICAgIC0gICBuYW1lOiBQZW5uc3lsdmFuaWFcbiAgICAgICAgICAgIHVybDogL2VkdWNhdGlvbi9iZXN0LWhpZ2gtc2Nob29scy9wZW5uc3lsdmFuaWFcbiAgICAgICAgLSAgIG5hbWU6IFJob2RlIElzbGFuZFxuICAgICAgICAgICAgdXJsOiAvZWR1Y2F0aW9uL2Jlc3QtaGlnaC1zY2hvb2xzL3Job2RlLWlzbGFuZFxuICAgICAgICAtICAgbmFtZTogU291dGggQ2Fyb2xpbmFcbiAgICAgICAgICAgIHVybDogL2VkdWNhdGlvbi9iZXN0LWhpZ2gtc2Nob29scy9zb3V0aC1jYXJvbGluYVxuICAgICAgICAtICAgbmFtZTogU291dGggRGFrb3RhXG4gICAgICAgICAgICB1cmw6IC9lZHVjYXRpb24vYmVzdC1oaWdoLXNjaG9vbHMvc291dGgtZGFrb3RhXG4gICAgICAgIC0gICBuYW1lOiBUZW5uZXNzZWVcbiAgICAgICAgICAgIHVybDogL2VkdWNhdGlvbi9iZXN0LWhpZ2gtc2Nob29scy90ZW5uZXNzZWVcbiAgICAgICAgLSAgIG5hbWU6IFRleGFzXG4gICAgICAgICAgICB1cmw6IC9lZHVjYXRpb24vYmVzdC1oaWdoLXNjaG9vbHMvdGV4YXNcbiAgICAgICAgLSAgIG5hbWU6IFV0YWhcbiAgICAgICAgICAgIHVybDogL2VkdWNhdGlvbi9iZXN0LWhpZ2gtc2Nob29scy91dGFoXG4gICAgICAgIC0gICBuYW1lOiBWZXJtb250XG4gICAgICAgICAgICB1cmw6IC9lZHVjYXRpb24vYmVzdC1oaWdoLXNjaG9vbHMvdmVybW9udFxuICAgICAgICAtICAgbmFtZTogVmlyZ2luaWFcbiAgICAgICAgICAgIHVybDogL2VkdWNhdGlvbi9iZXN0LWhpZ2gtc2Nob29scy92aXJnaW5pYVxuICAgICAgICAtICAgbmFtZTogV2FzaGluZ3RvblxuICAgICAgICAgICAgdXJsOiAvZWR1Y2F0aW9uL2Jlc3QtaGlnaC1zY2hvb2xzL3dhc2hpbmd0b25cbiAgICAgICAgLSAgIG5hbWU6IFdlc3QgVmlyZ2luaWFcbiAgICAgICAgICAgIHVybDogL2VkdWNhdGlvbi9iZXN0LWhpZ2gtc2Nob29scy93ZXN0LXZpcmdpbmlhXG4gICAgICAgIC0gICBuYW1lOiBXaXNjb25zaW5cbiAgICAgICAgICAgIHVybDogL2VkdWNhdGlvbi9iZXN0LWhpZ2gtc2Nob29scy93aXNjb25zaW5cbiAgICAgICAgLSAgIG5hbWU6IFd5b21pbmdcbiAgICAgICAgICAgIHVybDogL2VkdWNhdGlvbi9iZXN0LWhpZ2gtc2Nob29scy93eW9taW5nXG5zZWxlY3RvcnM6XG4gICAgLSAuY3NzLWNvbHVtbnMtMS1zbWFsbFxuICAgIC0gLmNzcy1jb2x1bW5zLTEtc21hbGxcbiAgICAtIC5jc3MtY29sdW1ucy0yLXNtYWxsXG4gICAgLSAuY3NzLWNvbHVtbnMtMi1zbWFsbFxuICAgIC0gLmNzcy1jb2x1bW5zLTMtc21hbGxcbiAgICAtIC5jc3MtY29sdW1ucy0zLXNtYWxsXG4gICAgLSAuY3NzLWNvbHVtbnMtNC1zbWFsbFxuICAgIC0gLmNzcy1jb2x1bW5zLTQtc21hbGxcbiAgICAtIC5jc3MtY29sdW1ucy0xLXNtYWxsLW9ubHlcbiAgICAtIC5jc3MtY29sdW1ucy0xLXNtYWxsLW9ubHlcbiAgICAtIC5jc3MtY29sdW1ucy0yLXNtYWxsLW9ubHlcbiAgICAtIC5jc3MtY29sdW1ucy0yLXNtYWxsLW9ubHlcbiAgICAtIC5jc3MtY29sdW1ucy0zLXNtYWxsLW9ubHlcbiAgICAtIC5jc3MtY29sdW1ucy0zLXNtYWxsLW9ubHlcbiAgICAtIC5jc3MtY29sdW1ucy00LXNtYWxsLW9ubHlcbiAgICAtIC5jc3MtY29sdW1ucy00LXNtYWxsLW9ubHlcbiAgICAtIC5jc3MtY29sdW1ucy0xLW1lZGl1bVxuICAgIC0gLmNzcy1jb2x1bW5zLTEtbWVkaXVtXG4gICAgLSAuY3NzLWNvbHVtbnMtMi1tZWRpdW1cbiAgICAtIC5jc3MtY29sdW1ucy0yLW1lZGl1bVxuICAgIC0gLmNzcy1jb2x1bW5zLTMtbWVkaXVtXG4gICAgLSAuY3NzLWNvbHVtbnMtMy1tZWRpdW1cbiAgICAtIC5jc3MtY29sdW1ucy00LW1lZGl1bVxuICAgIC0gLmNzcy1jb2x1bW5zLTQtbWVkaXVtXG4gICAgLSAuY3NzLWNvbHVtbnMtMS1tZWRpdW0tdXBcbiAgICAtIC5jc3MtY29sdW1ucy0xLW1lZGl1bS11cFxuICAgIC0gLmNzcy1jb2x1bW5zLTItbWVkaXVtLXVwXG4gICAgLSAuY3NzLWNvbHVtbnMtMi1tZWRpdW0tdXBcbiAgICAtIC5jc3MtY29sdW1ucy0zLW1lZGl1bS11cFxuICAgIC0gLmNzcy1jb2x1bW5zLTMtbWVkaXVtLXVwXG4gICAgLSAuY3NzLWNvbHVtbnMtNC1tZWRpdW0tdXBcbiAgICAtIC5jc3MtY29sdW1ucy00LW1lZGl1bS11cFxuICAgIC0gLmNzcy1jb2x1bW5zLTEtbWVkaXVtLW9ubHlcbiAgICAtIC5jc3MtY29sdW1ucy0xLW1lZGl1bS1vbmx5XG4gICAgLSAuY3NzLWNvbHVtbnMtMi1tZWRpdW0tb25seVxuICAgIC0gLmNzcy1jb2x1bW5zLTItbWVkaXVtLW9ubHlcbiAgICAtIC5jc3MtY29sdW1ucy0zLW1lZGl1bS1vbmx5XG4gICAgLSAuY3NzLWNvbHVtbnMtMy1tZWRpdW0tb25seVxuICAgIC0gLmNzcy1jb2x1bW5zLTQtbWVkaXVtLW9ubHlcbiAgICAtIC5jc3MtY29sdW1ucy00LW1lZGl1bS1vbmx5XG4gICAgLSAuY3NzLWNvbHVtbnMtMS1sYXJnZVxuICAgIC0gLmNzcy1jb2x1bW5zLTEtbGFyZ2VcbiAgICAtIC5jc3MtY29sdW1ucy0yLWxhcmdlXG4gICAgLSAuY3NzLWNvbHVtbnMtMi1sYXJnZVxuICAgIC0gLmNzcy1jb2x1bW5zLTMtbGFyZ2VcbiAgICAtIC5jc3MtY29sdW1ucy0zLWxhcmdlXG4gICAgLSAuY3NzLWNvbHVtbnMtNC1sYXJnZVxuICAgIC0gLmNzcy1jb2x1bW5zLTQtbGFyZ2VcbiAgICAtIC5jc3MtY29sdW1ucy0xLWxhcmdlLXVwXG4gICAgLSAuY3NzLWNvbHVtbnMtMS1sYXJnZS11cFxuICAgIC0gLmNzcy1jb2x1bW5zLTItbGFyZ2UtdXBcbiAgICAtIC5jc3MtY29sdW1ucy0yLWxhcmdlLXVwXG4gICAgLSAuY3NzLWNvbHVtbnMtMy1sYXJnZS11cFxuICAgIC0gLmNzcy1jb2x1bW5zLTMtbGFyZ2UtdXBcbiAgICAtIC5jc3MtY29sdW1ucy00LWxhcmdlLXVwXG4gICAgLSAuY3NzLWNvbHVtbnMtNC1sYXJnZS11cFxuLS0tXG5cbkhlbHBlciBjbGFzc2VzIHRvIGZvcmNlIENTUyBjb2x1bW4gbGF5b3V0cyBmcm9tIDEgdG8gNCBjb2x1bW5zIGF0IGEgdmFyaWV0eVxub2YgYnJlYWtwb2ludHMuXG5cbiMjIyBBdmFpbGFibGUgYnJlYWtwb2ludHNcblxufCBCcmVha3BvaW50ICAgICAgICAgfCBweFxufC0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tXG58IHNtYWxsICAgICAgICAgICAgICB8IDArXG58IHNtYWxsLW9ubHkgICAgICAgICB8IDAgLSA2MzlcbnwgbWVkaXVtICAgICAgICAgICAgIHwgNjQwK1xufCBtZWRpdW0tb25seSAgICAgICAgfCA2NDAgLSAxMDIyXG58IGxhcmdlICAgICAgICAgICAgICB8IDEwMjMrXG5cbiMjIyBDb25zdHJ1Y3RpbmcgdGhlIGNsYXNzXG5cblVzaW5nIG91ciAzIGRlZmF1bHQgYnJlYWtwb2ludHMgYW5kIHRoZSB2b2NhYnVsYXJ5IGFib3ZlLCB3ZSB3ZXJlIGFibGUgdG9cbmNyZWF0ZSBoYW5keSBoZWxwZXIgY2xhc3NlcyB0byBzYXRpc2Z5IG1vc3Qgb2Ygb3VyIGxheW91dCBuZWVkcy4gVGhlIGZvcm11bGEgaXMgdGh1czpcbmAuY3NzLWNvbHVtbnMtYCArIGBbIyBvZiBjb2x1bW5zLCAxLTRdYCArIGBicmVha3BvaW50X3ZhcmlhYmxlYC5cblxuRm9yIGV4YW1wbGUsXG5gLmNzcy1jb2x1bW5zLTQtbGFyZ2VgXG5gLmNzcy1jb2x1bW5zLTMtbWVkaXVtLW9ubHlgXG5gLmNzcy1jb2x1bW5zLTItc21hbGxgXG5cbiMjIyMgQmFzaWMgdXNhZ2VcblxuU2ltcGx5IGFkZCBvbmUgb3IgbW9yZSBvZiB0aGUgY2xhc3NlcyB0byB0aGUgcGFyZW50IGNvbnRhaW5lciBpbiBvcmRlciB0byBmb3JjZSBjb2x1bW4gdXNhZ2UuXG5UaGUgY29sdW1uIHdpZHRocyBhcmUgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBjb250YWluZXIuXG5UaGUgZm9sbG93aW5nIGV4YW1wbGUgZW1wbG95cyB0aHJlZSBjb2x1bW5zIGF0IHRoZSBsYXJnZSBicmVha3BvaW50LCB0d28gY29sdW1uc1xuYXQgdGhlIG1lZGl1bSBicmVha3BvaW50LCBhbmQgbm9uZSBiZWxvdyB0aGF0IChpLmUuIHRoZSBkZWZhdWx0IHNpbmdsZSBjb2x1bW4pLlxuXG5UaGlzIGNzcyBpcyBoZWxwZnVsIHdoZW4geW91IHdhbnQgdG8gZmxvdyBhbiBhcmJpdHJhcnkgbnVtYmVyIG9mIGxpc3QgaXRlbXMgXG50byBrZWVwIHRoZW0gdmVydGljYWxseSBvcmllbnRlZCAobm90IGZsb2F0IHRoZW0pLlxuXG5gYGBodG1sX2V4YW1wbGVcblxuPHVsIGNsYXNzPVwibm8tYnVsbGV0IHRleHQtc3Ryb25nIGNzcy1jb2x1bW5zLTQtbWVkaXVtXCI+XG4gICAgeyUgZm9yIHN0YXRlIGluIHN0YXRlX3JhbmtpbmdfcGFnZXMgJX1cbiAgICAgICAgPGxpIGNsYXNzPVwicGFkLW5vcm1hbFwiPjxhIGhyZWY9XCJ7eyBzdGF0ZS51cmwgfX1cIj57eyBzdGF0ZS5uYW1lIH19PC9hPjwvbGk+XG4gICAgeyUgZW5kZm9yICV9XG48L3VsPlxuYGBgXG4qL1xuXG5AZWFjaCAkYnAsICRicC12YXIgaW4gJGJyZWFrcG9pbnQtdmFyaWFibGVzIHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDQge1xuICAgICAgICBAbWVkaWEgI3skYnAtdmFyfSB7XG4gICAgICAgICAgICAuY3NzLWNvbHVtbnMtI3skaX0tI3skYnB9IHtcbiAgICAgICAgICAgICAgICAtd2Via2l0LWNvbHVtbi1jb3VudDogJGk7XG4gICAgICAgICAgICAgICAgICAgLW1vei1jb2x1bW4tY291bnQ6ICRpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uLWNvdW50OiAkaTtcblxuICAgICAgICAgICAgICAgID4gKiB7XG4gICAgICAgICAgICAgICAgICAgIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypkb2Ncbi0tLVxudGl0bGU6IFRhYnNcbm5hbWU6IGEtdGFic1xuY2F0ZWdvcnk6IExheW91dCAtIFRhYnNcbi0tLVxuXG5Vc2VzIHRoZSB0YWIgc3RydWN0dXJlIGJ1aWx0IGludG8gWnVyYi5cblxuIyMjIyBCYXNpYyB1c2FnZVxuXG5Vc2UgdGhlIGRlZmF1bHQgWnVyYiBzdHJ1Y3R1cmUsIHRoZW4gYWRkIGAuY2hhcnQtdGFic2AgdG8gdGhlIHBhcmVudCBgLnRhYnNgIGNvbnRhaW5lciB0b1xua2ljayBpbiB0aGVzZSBvdmVycmlkaW5nIHN0eWxlcy5cblxuYGBgaHRtbF9leGFtcGxlXG48dWwgY2xhc3M9XCJ0YWJzIGNoYXJ0LXRhYnNcIiBkYXRhLXRhYj5cbiAgICA8bGkgY2xhc3M9XCJ0YWItdGl0bGUgYWN0aXZlXCI+PGEgaHJlZj1cIiNwYW5lbC0xXCI+UGFuZWwgMTwvYT48L2xpPlxuICAgIDxsaSBjbGFzcz1cInRhYi10aXRsZVwiPjxhIGhyZWY9XCIjcGFuZWwtMlwiPlBhbmVsIDI8L2E+PC9saT5cbjwvdWw+XG5cbjxkaXYgY2xhc3M9XCJ0YWJzLWNvbnRlbnQgYmxvY2stbG9vc2VcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGVudCBhY3RpdmVcIiBpZD1cInBhbmVsLTFcIj5cbiAgICAgICAgPGltZyBzcmM9XCJodHRwOi8vcGxhY2Vob2xkLml0LzY1MHgzNzAvRjBGMEYwLzNGNjJCNy8/dGV4dD1wYW5lbCUyMDFcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIiBpZD1cInBhbmVsLTJcIj5cbiAgICAgICAgPGltZyBzcmM9XCJodHRwOi8vcGxhY2Vob2xkLml0LzY1MHgzNzAvRjBGMEYwLzNGNjJCNy8/dGV4dD1wYW5lbCUyMDJcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiPlxuICAgIDwvZGl2PlxuPC9kaXY+XG5gYGBcbiovXG5cbi50YWJzLmNoYXJ0LXRhYnMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgJjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkZGQ7XG4gICAgYm90dG9tOiAwO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGhlaWdodDogMnB4O1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLnRhYi10aXRsZSB7XG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cblxuICAgICA+IGEge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQ7XG4gICAgICBib3JkZXItY29sb3I6ICNkZGQ7XG4gICAgICBjb2xvcjogJGxpbmstYmx1ZS1saWdodDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICBwYWRkaW5nOiA4cHggMDtcbiAgICAgIG1hcmdpbi1yaWdodDogMjRweDtcbiAgICB9XG5cbiAgICAgPiBhOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuXG4gICAgID4gYTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAmLmFjdGl2ZSA+IGEge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkbGluay1ibHVlLWxpZ2h0O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogIzk5OTtcbiAgICB9XG4gIH1cbn1cblxuLyogQWRkaW5nIHRoZSAuZmxleC1mcmllbmRsaWZ5IGNsYXNzIHRvIGVsZW1lbnRzIHdpdGggLmNoYXJ0LXRhYnNcbiAgIGFsbG93cyB1cyB0byB1c2UgZmxleCBncmlkcyBmb3IgcG9zaXRpb25pbmcgdGhlIHRhYnMsIHdoaWxlIHN0aWxsXG4gICBwbGF5aW5nIG5pY2VseSB3aXRoIHRoZSA6YmVmb3JlIGFuZCA6YWZ0ZXIgcHNldWRvc2VsZWN0b3Igc3R5bGluZy5cblxuICAgV2l0aG91dCB0aGlzLCBmbGV4IGdyaWRzIGRvIG5vdCByZXNwZWN0IHRoZSBganVzdGlmeS1jb250ZW50YFxuICAgYXR0cmlidXRlIGR1ZSB0byB0aGUgZGVmYXVsdCBhYnNvbHV0ZSBwb3NpdGlvbmluZyBvbiB0aGUgOmJlZm9yZVxuICAgcHNlZHVvc2VsZWN0b3IgZm9yIC5jaGFydC10YWJzLlxuKi9cbi50YWJzLmNoYXJ0LXRhYnMuZmxleC1mcmllbmRsaWZ5LXRhYnMge1xuICAmOmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICY6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGdhaW5zYm9ybztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm90dG9tOiAycHg7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgQGluY2x1ZGUgei1pbmRleDtcbiAgfVxufVxuIiwiLmpveXJpZGUtdGlwLWd1aWRlLnVzbi1zdG9wIHtcbiAgICBiYWNrZ3JvdW5kOiAjMTAyOTRCO1xuICAgIC5idXR0b24ge1xuICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIH1cbiAgICAuam95cmlkZS1udWIge1xuICAgICAgICAmLmxlZnR7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICMxMDI5NEIgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAmLnJpZ2h0e1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICMxMDI5NEIgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAmLmJvdHRvbXtcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICMxMDI5NEIgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAmLnRvcHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICMxMDI5NEIgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIltkYXRhLWFiaWRlXSAuZXJyb3Igc21hbGwuZXJyb3IsXG5bZGF0YS1hYmlkZV0gLmVycm9yIHNwYW4uZXJyb3IsXG5bZGF0YS1hYmlkZV0gc3Bhbi5lcnJvcixcbltkYXRhLWFiaWRlXSBzbWFsbC5lcnJvciB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIGNvbG9yOiAjRDE0NTNEO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG5bZGF0YS1hYmlkZV0gaW5wdXRbZGF0YS1pbnZhbGlkXSwgW2RhdGEtYWJpZGVdIHNlbGVjdFtkYXRhLWludmFsaWRdLCB0ZXh0YXJlYVtkYXRhLWludmFsaWRdIHtcbiAgICBib3JkZXItY29sb3I6ICNEMTQ1M0Q7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDksNjksNjEsLjEpO1xufVxuXG5bZGF0YS1hYmlkZV0gLmVycm9yIGxhYmVsIHtcbiAgICBjb2xvcjogI0QxNDUzRDtcbn1cbiIsIi5mYWRlLWVudGVyLCAuZmFkZS1hcHBlYXIge1xuICBvcGFjaXR5OiAwLjAxO1xufVxuXG4uZmFkZS1lbnRlci5mYWRlLWVudGVyLWFjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgNTAwbXMgZWFzZS1pbjtcbn1cblxuLmZhZGUtYXBwZWFyLmZhZGUtYXBwZWFyLWFjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgLjVzIGVhc2UtaW47XG59XG5cbi5mYWRlLWxlYXZlIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmZhZGUtbGVhdmUuZmFkZS1sZWF2ZS1hY3RpdmUge1xuICBvcGFjaXR5OiAwLjAxO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDMwMG1zIGVhc2UtaW47XG59XG4iLCIvLyBmaW5hbmNpYWwgYWR2aXNvcnMgcGFsYWRpbiB3aWRnZXQgcHJvbW9cbi5wYWxhZGluLXdpZGdldCB7XG4gICAgYm94LXNoYWRvdzogMHB4IDBweCA4cHggI2NjYztcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG5cbiAgICAucGFsYWRpbi13aWRnZXQtaGVhZGVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzMxNjNBRjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4IDNweCAwcHggMHB4O1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB9XG5cbiAgICAucGFsYWRpbi13aWRnZXQtYm9keSB7XG4gICAgICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgfVxufVxuXG4ucmFpbC10b2Mge1xuICAgICRhY3RpdmVDb2xvcjogIzE5NjFiNztcblxuICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgI2RkZDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcblxuICAgICYuc3ViLW5hdi1saW5rcyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDBweDsgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gKiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRvaWw7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IC0ycHg7XG5cbiAgICAgICAgICAgICAgICA+ICoge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGFjdGl2ZUNvbG9yO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkICRhY3RpdmVDb2xvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5oaWdoLXNjaG9vbC1jb21wYXNzLXByb21vIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBtYXJnaW46IDMwcHggYXV0bztcbiAgICBib3JkZXItdG9wLXdpZHRoOiBtZWRpdW07XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogI2QxNDUzZDtcblxuICAgIEBpbmNsdWRlIGZyb20oYnAtbGFyZ2UpIHtcbiAgICAgICAgbWF4LXdpZHRoOiA2MC42MjVyZW07XG4gICAgfVxuXG4gICAgLmNvbXBhc3MtcHJvbW8taW1nLW5vcm0ge1xuICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xuICAgICAgICB3aWR0aDogMjUlO1xuICAgICAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICAgICAgbWFyZ2luLXRvcDogNXB4O1xuICAgIH1cblxuICAgIC5jb21wYXNzLXByb21vLWltZy1zbWFsbCB7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICB3aWR0aDogMjUlXG4gICAgfVxufVxuIiwiLmNvbGxlZ2VzLXJlZ2lvbnMtbWFwID4gc3ZnIHtcbiAgICBhOmhvdmVyIHBhdGgge1xuICAgICAgICBzdHJva2Utd2lkdGg6IDEuMztcbiAgICB9XG4gICAgZy5mYWRlZCB7XG4gICAgICAgIGZpbGwtb3BhY2l0eTogLjY7XG4gICAgfVxufVxuLmNvbGxlZ2VzLXJlZ2lvbnMtbWFwID4gc3Bhbi5tYXAtdG9vbHRpcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDEwMDA7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgcGFkZGluZzogLjJyZW0gLjVyZW07XG4gICAgYmFja2dyb3VuZDogZ2FpbnNib3JvO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4iLCIjaGVhZGVyLWxvZ2luLWRlc2t0b3Age1xuICAgID4gYSB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAmLndlbGNvbWU6OmFmdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogNHB4O1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogM3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogNHB4IHNvbGlkICNmZmY7XG4gICAgICAgIH1cbiAgICAgICAgJi51bmF1dGgtZHJvcGRvd24ud2VsY29tZTo6YWZ0ZXIge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgICAgICAgfVxuICAgICAgICAmLndlbGNvbWUgc3BhbiB7XG4gICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjZmZmO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDNweDtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0tY2FsYygyMSk7XG4gICAgICAgICAgICB3aWR0aDogcmVtLWNhbGMoMjEpO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygxMyk7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmxvZ2luLWRyb3Bkb3duIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIG1pbi13aWR0aDogMTIwcHg7XG4gICAgICAgIHotaW5kZXg6IDEwMDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIHJpZ2h0OiA0NHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiBhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzk5OTk5OTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGxpbmstYmx1ZS1saWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIuZGF0YS1kaWN0aW9uYXJ5LWZpZWxkLmJvcmRlci1ib3R0b20ge1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1ib3R0b20tY29sb3IgMC4zcztcblxuICAgICY6aG92ZXIge1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAjYWFhICFpbXBvcnRhbnQ7XG4gICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1ib3R0b20tY29sb3IgMC4xcztcbiAgICB9XG59XG5cbi5kYXRhLWRpY3Rpb25hcnktZmllbGQgLmNvbXBhc3MtdW5sb2NrLWhvdmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgLyogb3ZlcmxheSBhbnkgY29udGVudCB0byB0aGUgbGVmdCBvZiBlbGVtZW50IHdpdGggXCJ1bmxvY2tcIiBsYWJlbCBvbiBob3ZlciAqL1xuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJ1VubG9jayB3aXRoIENvbXBhc3MnO1xuICAgICAgICAgICAgY29sb3I6ICRsaW5rLWJsdWUtbGlnaHQ7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogY2FsYygxMDAlKTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRibG9jay10aWdodDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRibG9jay10aWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICYgLmljb24ge1xuICAgICAgICAgICAgZmlsbDogJGxpbmstYmx1ZS1saWdodDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLypkb2Ncbi0tLVxudGl0bGU6IExvY2tlZFxubmFtZTogYS1sb2NrZWRcbmNhdGVnb3J5OiBEYXRhIFBhdHRlcm5zIC0gRGF0YSBEaWN0aW9uYXJ5IEZpZWxkc1xuYXV0aG9yczogVG9tbXkgTWFyc2hhbGwsIEpvbiBMZXdpc1xudGVtcGxhdGU6XG4gICAgaXNfcHJlbWl1bV91c2VyOiBmYWxzZVxuICAgIGZpZWxkX2lkOiB2QWRtaXR0ZWRQb2xpY3lcbiAgICBmaWVsZHNfbWV0YWRhdGE6XG4gICAgICAgIHZBZG1pdHRlZFBvbGljeTpcbiAgICAgICAgICAgIGRkYkZpZWxkVHlwZTogdGV4dGxpbmVcbiAgICAgICAgICAgIGRhdGFRYUlkOiB2X2FkbWl0dGVkX3BvbGljeVxuICAgICAgICAgICAgaXNQdWJsaWM6IGZhbHNlXG4gICAgICAgICAgICBsYWJlbDogRGVhZGxpbmUgZm9yIGFjY2VwdGluZyBhZG1pc3Npb24gb2ZmZXJzXG4gICAgICAgICAgICBmaWVsZE5hbWU6IHZBZG1pdHRlZFBvbGljeVxuICAgICAgICAgICAgZmllbGRUeXBlOiB0ZXh0bGluZVxuICAgICAgICAgICAgcHJpbWFyeUtleTogdkFkbWl0dGVkUG9saWN5XG4gICAgICAgICAgICBkaXNwbGF5T3JkZXI6IDNcbiAgICBmaWVsZHNfZGF0YTpcbiAgICAgICAgdkFkbWl0dGVkUG9saWN5OlxuICAgICAgICAgICAgcmF3VmFsdWU6IE11c3QgcmVwbHkgYnkgbWF5IDEgb3Igd2l0aGluIDMgd2Vla3MgaWYgbm90aWZpZWQgdGhlcmVhZnRlclxuICAgICAgICAgICAgZGF0YVFhSWQ6IFZfQURNSVRURURfUE9MSUNZXG4gICAgICAgICAgICBub3RlVGV4dDogVGhhbmtzLCBPYmFtYVxuICAgICAgICAgICAgZmllbGROYW1lOiB2QWRtaXR0ZWRQb2xpY3lcbiAgICAgICAgICAgIGZpZWxkVHlwZTogXG4gICAgICAgICAgICBkaXNwbGF5VmFsdWU6IE11c3QgcmVwbHkgYnkgbWF5IDEgb3Igd2l0aGluIDMgd2Vla3MgaWYgbm90aWZpZWQgdGhlcmVhZnRlclxuICAgICAgICAgICAgbm90ZUNoYXJhY3RlcjogXCIqXCJcbi0tLVxuXG5gYGBodG1sX2V4YW1wbGVcblxueyUgZnJvbSAndGVtcGxhdGVzL2NvbW1vbi9kYXRhLWRpY3Rpb25hcnkvZmllbGRzL19maWVsZC5udW5qJyBpbXBvcnQgZmllbGQgJX1cblxuPGRpdiBjbGFzcz1cImZsZXgtcm93XCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtbGFyZ2UtOVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyXCIgc3R5bGU9XCJwYWRkaW5nOiAxcmVtO1wiPlxuICAgICAgICAgICAge3sgZmllbGQoZmllbGRfaWQsIGZpZWxkc19tZXRhZGF0YSwgZmllbGRzX2RhdGEsIGlzX3ByZW1pdW1fdXNlcikgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbmBgYFxuXG4qL1xuXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBUZXh0IExpbmVcbm5hbWU6IGItdGV4dC1saW5lXG5jYXRlZ29yeTogRGF0YSBQYXR0ZXJucyAtIERhdGEgRGljdGlvbmFyeSBGaWVsZHNcbmF1dGhvcnM6IFRvbW15IE1hcnNoYWxsLCBKb24gTGV3aXNcbnRlbXBsYXRlOlxuICAgIGZpZWxkX2lkOiB2QWRtaXR0ZWRQb2xpY3lcbiAgICBmaWVsZHNfbWV0YWRhdGE6XG4gICAgICAgIHZBZG1pdHRlZFBvbGljeTpcbiAgICAgICAgICAgIGlzUHVibGljOiB0cnVlXG4gICAgICAgICAgICBkZGJGaWVsZFR5cGU6IHRleHRsaW5lXG4gICAgICAgICAgICBkYXRhUWFJZDogdl9hZG1pdHRlZF9wb2xpY3lcbiAgICAgICAgICAgIGxhYmVsOiBEZWFkbGluZSBmb3IgYWNjZXB0aW5nIGFkbWlzc2lvbiBvZmZlcnNcbiAgICAgICAgICAgIGZpZWxkTmFtZTogdkFkbWl0dGVkUG9saWN5XG4gICAgICAgICAgICBmaWVsZFR5cGU6IHRleHRsaW5lXG4gICAgICAgICAgICBwcmltYXJ5S2V5OiB2QWRtaXR0ZWRQb2xpY3lcbiAgICAgICAgICAgIGRpc3BsYXlPcmRlcjogM1xuICAgIGZpZWxkc19kYXRhOlxuICAgICAgICB2QWRtaXR0ZWRQb2xpY3k6XG4gICAgICAgICAgICByYXdWYWx1ZTogTXVzdCByZXBseSBieSBtYXkgMSBvciB3aXRoaW4gMyB3ZWVrcyBpZiBub3RpZmllZCB0aGVyZWFmdGVyXG4gICAgICAgICAgICBkYXRhUWFJZDogVl9BRE1JVFRFRF9QT0xJQ1lcbiAgICAgICAgICAgIG5vdGVUZXh0OiBUaGFua3MsIE9iYW1hXG4gICAgICAgICAgICBmaWVsZE5hbWU6IHZBZG1pdHRlZFBvbGljeVxuICAgICAgICAgICAgZmllbGRUeXBlOiBcbiAgICAgICAgICAgIGRpc3BsYXlWYWx1ZTogTXVzdCByZXBseSBieSBtYXkgMSBvciB3aXRoaW4gMyB3ZWVrcyBpZiBub3RpZmllZCB0aGVyZWFmdGVyXG4gICAgICAgICAgICBub3RlQ2hhcmFjdGVyOiBcIipcIlxuLS0tXG5cbmBgYGh0bWxfZXhhbXBsZVxuXG57JSBmcm9tICd0ZW1wbGF0ZXMvY29tbW9uL2RhdGEtZGljdGlvbmFyeS9maWVsZHMvX2ZpZWxkLm51bmonIGltcG9ydCBmaWVsZCAlfVxuXG48ZGl2IGNsYXNzPVwiZmxleC1yb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1sYXJnZS05XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXJcIiBzdHlsZT1cInBhZGRpbmc6IDFyZW07XCI+XG4gICAgICAgICAgICB7eyBmaWVsZChmaWVsZF9pZCwgZmllbGRzX21ldGFkYXRhLCBmaWVsZHNfZGF0YSwgaXNfcHJlbWl1bV91c2VyKSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuYGBgXG5cbiovXG5cblxuLypkb2Ncbi0tLVxudGl0bGU6IExvbmcgVGV4dFxubmFtZTogYy1sb25nLXRleHRcbmNhdGVnb3J5OiBEYXRhIFBhdHRlcm5zIC0gRGF0YSBEaWN0aW9uYXJ5IEZpZWxkc1xuYXV0aG9yczogVG9tbXkgTWFyc2hhbGwsIEpvbiBMZXdpc1xudGVtcGxhdGU6XG4gICAgZmllbGRzX21ldGFkYXRhOlxuICAgICAgICBtdXNldW1zOlxuICAgICAgICAgICAgaXNQdWJsaWM6IHRydWVcbiAgICAgICAgICAgIGZpZWxkVHlwZTogbG9uZy10ZXh0XG4gICAgICAgICAgICBsYWJlbDogTXVzZXVtIEZhY2lsaXRpZXNcbiAgICAgICAgICAgIGZpZWxkTmFtZTogbXVzZXVtc1xuICAgICAgICAgICAgbWF4TGVuZ3RoOiBcbiAgICAgICAgbWlzc2lvbkFuZFF1YWxpdGllczpcbiAgICAgICAgICAgIGlzUHVibGljOiB0cnVlXG4gICAgICAgICAgICBmaWVsZFR5cGU6IGxvbmctdGV4dFxuICAgICAgICAgICAgbGFiZWw6IFNjaG9vbCBNaXNzaW9uIGFuZCBVbmlxdWUgUXVhbGl0aWVzXG4gICAgICAgICAgICBzdWJMYWJlbDogaW5mb3JtYXRpb24gcHJvdmlkZWQgYnkgc2Nob29sXG4gICAgICAgICAgICBmaWVsZE5hbWU6IG1pc3Npb25BbmRRdWFsaXRpZXNcbiAgICAgICAgICAgIG1heExlbmd0aDogMTcwXG4gICAgZmllbGRzX2RhdGE6XG4gICAgICAgIG11c2V1bXM6XG4gICAgICAgICAgICBmaWVsZFR5cGU6IGxvbmctdGV4dFxuICAgICAgICAgICAgZGlzcGxheVZhbHVlOiBNb2xsaXMgbmlzbCBzdXNjaXBpdCB2aXZhbXVzIGN1cmFiaXR1ciBhcmN1IHNpdCB1dCBhIHV0LCBoaW1lbmFlb3NcbiAgICAgICAgICAgICAgICBkdWkgbGFjdXMgZmVybWVudHVtIGZhdWNpYnVzIGNvbmRpbWVudHVtIGNvbnViaWEgZnJpbmdpbGxhLCBxdWlzcXVlIHNjZWxlcmlzcXVlXG4gICAgICAgICAgICAgICAgaXBzdW0gcHJldGl1bSBmYXVjaWJ1cyBmYW1lcyBmYWNpbGlzaXMgb3JjaSBtYWVjZW5hcyBhZCBtYXR0aXMgY3VyYWJpdHVyXG4gICAgICAgICAgICAgICAgdHJpc3RpcXVlIHRlbXB1cyB1bHRyaWNpZXMgdml2YW11cyBpbXBlcmRpZXQgdGVtcHVzIGFjLCBncmF2aWRhIG1hc3NhIGhpbWVuYWVvc1xuICAgICAgICAgICAgICAgIHZhcml1cyB2ZXN0aWJ1bHVtIHZlbGl0IG9ybmFyZSBsb2JvcnRpcyBsZW8gZXVpc21vZCBtb3JiaSwgZmV1Z2lhdCBpbnRlZ2VyXG4gICAgICAgICAgICAgICAgaWQgdm9sdXRwYXQgb2RpbyB0YWNpdGkgcGxhdGVhIHBlbGxlbnRlc3F1ZSBjcmFzIGNvbnNlY3RldHVyIGR1aSBtb2xsaXNcbiAgICAgICAgICAgICAgICBlcmF0IGdyYXZpZGEgcXVpc3F1ZS5cbiAgICAgICAgICAgIG5vdGVDaGFyYWN0ZXI6IFwiKlwiXG4gICAgICAgICAgICBub3RlVGV4dDogVGhhbmtzLCBPYmFtYVxuICAgICAgICBtaXNzaW9uQW5kUXVhbGl0aWVzOlxuICAgICAgICAgICAgZmllbGRUeXBlOiBsb25nLXRleHRcbiAgICAgICAgICAgIGRpc3BsYXlWYWx1ZTogUnV0cnVtIGVyYXQgY2xhc3MgaWQgdGVsbHVzIGludGVnZXIgdHJpc3RpcXVlIGhlbmRyZXJpdCBtYWxlc3VhZGEsXG4gICAgICAgICAgICAgICAgY29tbW9kbyBhbGlxdWV0IG5pc2kgbWFlY2VuYXMgZXUgdHVycGlzIGVsZWlmZW5kIGp1c3RvIGN1cmFiaXR1ciwgbmlzaSBxdWlzcXVlXG4gICAgICAgICAgICAgICAgcHJhZXNlbnQgZHVpcyBudWxsYW0gcG9zdWVyZSB1bGxhbWNvcnBlciB1cm5hIGV1IHByaW1pcyB0ZWxsdXMgcGxhdGVhIG9kaW9cbiAgICAgICAgICAgICAgICBuZXF1ZSwgdWx0cmljZXMgY3ViaWxpYSBhcHRlbnQgbmlzbCBxdWlzcXVlIG5hbSBzYXBpZW4sIGRhcGlidXMgbGlndWxhIHNpdFxuICAgICAgICAgICAgICAgIHF1aXNxdWUgbW9yYmkgcHVydXMgYWVuZWFuIHRhY2l0aSBqdXN0byBhZW5lYW4gcG9ydHRpdG9yIHNjZWxlcmlzcXVlIHBlbGxlbnRlc3F1ZVxuICAgICAgICAgICAgICAgIHZlbmVuYXRpcywgbmV0dXMgcGhhcmV0cmEgc2l0IG5hbSBhcmN1IGFsaXF1YW0gc29kYWxlcyBldWlzbW9kIGNvbmRpbWVudHVtLFxuICAgICAgICAgICAgICAgIGR1aSB2aXZlcnJhIGJsYW5kaXQgdml0YWUgaGltZW5hZW9zIGFsaXF1YW0gbGFvcmVldCBsZWN0dXMgYWVuZWFuIGhhYml0YXNzZVxuICAgICAgICAgICAgICAgIGNvbnNlY3RldHVyIG51bmMgZXJvcyBpcHN1bSBldGlhbSwgbnVsbGFtIGlkIHR1cnBpcyBzb2Npb3NxdSBsb2JvcnRpcyBhbGlxdWV0XG4gICAgICAgICAgICAgICAgY29udmFsbGlzIHZlc3RpYnVsdW0sIGFsaXF1YW0gcGVyIGhhYml0YXNzZSBuZWMgbmliaCBkaWN0dW0uXG4tLS1cblxuYGBgaHRtbF9leGFtcGxlXG5cbnslIGZyb20gJ3RlbXBsYXRlcy9jb21tb24vZGF0YS1kaWN0aW9uYXJ5L2ZpZWxkcy9fZmllbGQubnVuaicgaW1wb3J0IGZpZWxkICV9XG5cbjxkaXYgY2xhc3M9XCJmbGV4LXJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LWxhcmdlLTlcIiBzdHlsZT1cInBhZGRpbmc6IDFyZW07XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXJcIiBzdHlsZT1cInBhZGRpbmc6IDFyZW07XCI+XG4gICAgICAgICAgICB7eyBmaWVsZCgnbXVzZXVtcycsIGZpZWxkc19tZXRhZGF0YSwgZmllbGRzX2RhdGEsIGlzX3ByZW1pdW1fdXNlcikgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImZsZXgtcm93XCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtbGFyZ2UtOVwiIHN0eWxlPVwicGFkZGluZzogMXJlbTtcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlclwiIHN0eWxlPVwicGFkZGluZzogMXJlbTtcIj5cbiAgICAgICAgICAgIHt7IGZpZWxkKCdtaXNzaW9uQW5kUXVhbGl0aWVzJywgZmllbGRzX21ldGFkYXRhLCBmaWVsZHNfZGF0YSwgaXNfcHJlbWl1bV91c2VyKSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuYGBgXG5cbiovXG5cblxuLypkb2Ncbi0tLVxudGl0bGU6IExpc3Rcbm5hbWU6IGQtbGlzdFxuY2F0ZWdvcnk6IERhdGEgUGF0dGVybnMgLSBEYXRhIERpY3Rpb25hcnkgRmllbGRzXG5hdXRob3JzOiBUb21teSBNYXJzaGFsbCwgSm9uIExld2lzXG50ZW1wbGF0ZTpcbiAgICBmaWVsZHNfbWV0YWRhdGE6XG4gICAgICAgIGdyYVNjaFNlbExpc3RDb246XG4gICAgICAgICAgICBkZGJGaWVsZFR5cGU6IGRlbGltaXRlZF9maWVsZFxuICAgICAgICAgICAgZGF0YVFhSWQ6IGdyYV9zY2hfc2VsX2xpc3RfY29uXG4gICAgICAgICAgICBpc1B1YmxpYzogdHJ1ZVxuICAgICAgICAgICAgcHJlY2lzaW9uOiBcbiAgICAgICAgICAgIGxhYmVsOiBHcmFkdWF0ZSBzY2hvb2xzIG1vc3Qgb2Z0ZW4gYXR0ZW5kZWQgYnkgcmVjZW50IGdyYWR1YXRlc1xuICAgICAgICAgICAgZGVsaW1pdGVyOiBcIjtcIlxuICAgICAgICAgICAgZmllbGRHcm91cFR5cGU6IFxuICAgICAgICAgICAgZmllbGROYW1lOiBncmFTY2hTZWxMaXN0Q29uXG4gICAgICAgICAgICBmaWVsZFR5cGU6IGxpc3RcbiAgICAgICAgICAgIHByaW1hcnlLZXk6IGdyYVNjaFNlbExpc3RDb25cbiAgICAgICAgICAgIGRpc3BsYXlPcmRlcjogJzEyJ1xuICAgICAgICAgICAgaWNvbkxpbms6XG4gICAgICAgICAgICBtYXhDb2xzOiAyXG4gICAgZmllbGRzX2RhdGE6XG4gICAgICAgIGdyYVNjaFNlbExpc3RDb246XG4gICAgICAgICAgICByYXdWYWx1ZTogQW1lcmljYW4gVW5pdmVyc2l0eSAoREMpO0FyaXpvbmEgU3RhdGUgVW5pdmVyc2l0eS0tVGVtcGUgKEFaKTtCb3N0b24gVW5pdmVyc2l0eVxuICAgICAgICAgICAgICAoTUEpO0NvbHVtYmlhIFVuaXZlcnNpdHkgKE5ZKTtDcmVpZ2h0b24gVW5pdmVyc2l0eSAoTkUpO0Vtb3J5IFVuaXZlcnNpdHkgKEdBKTtHZW9yZ2V0b3duXG4gICAgICAgICAgICAgIFVuaXZlcnNpdHkgKERDKTtKb2hucyBIb3BraW5zIFVuaXZlcnNpdHkgKE1EKTtMb3lvbGEgVW5pdmVyc2l0eSBDaGljYWdvIChJTCk7TWFycXVldHRlXG4gICAgICAgICAgICAgIFVuaXZlcnNpdHkgKFdJKTtOb3J0aHdlc3Rlcm4gVW5pdmVyc2l0eSAoSUwpO1Blbm5zeWx2YW5pYSBTdGF0ZSBVbml2ZXJzaXR5LS1IYXJyaXNidXJnXG4gICAgICAgICAgICAgIChQQSk7UHVyZHVlIFVuaXZlcnNpdHktLVdlc3QgTGFmYXlldHRlIChJTik7U2FpbnQgTG91aXMgVW5pdmVyc2l0eSAoTU8pO1N0YW5mb3JkXG4gICAgICAgICAgICAgIFVuaXZlcnNpdHkgKENBKTtVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEtLUJlcmtlbGV5IChDQSk7VW5pdmVyc2l0eSBvZiBNYXJ5bGFuZC0tQmFsdGltb3JlXG4gICAgICAgICAgICAgIChNRCk7VW5pdmVyc2l0eSBvZiBOZWJyYXNrYSBNZWRpY2FsIENlbnRlciAoTkUpO1ZpbGxhbm92YSBVbml2ZXJzaXR5IChQQSk7VmlyZ2luaWFcbiAgICAgICAgICAgICAgVGVjaCAoVkEpXG4gICAgICAgICAgICBkYXRhUWFJZDogR1JBX1NDSF9TRUxfTElTVF9DT05cbiAgICAgICAgICAgIGFuY2hvclBhZ2U6IFxuICAgICAgICAgICAgYW5jaG9yTG9jYXRpb246IFxuICAgICAgICAgICAgbm90ZVRleHQ6IFlvdSB3aWxsIGxpa2VseSBhdHRlbmQgYWxsIG9mIHRoZXNlIHNjaG9vbHMgYWZ0ZXJ3YXJkc1xuICAgICAgICAgICAgZmllbGROYW1lOiBncmFTY2hTZWxMaXN0Q29uXG4gICAgICAgICAgICBmaWVsZFR5cGU6IFxuICAgICAgICAgICAgZGlzcGxheVZhbHVlOlxuICAgICAgICAgICAgLSBBbWVyaWNhbiBVbml2ZXJzaXR5IChEQylcbiAgICAgICAgICAgIC0gQXJpem9uYSBTdGF0ZSBVbml2ZXJzaXR5LS1UZW1wZSAoQVopXG4gICAgICAgICAgICAtIEJvc3RvbiBVbml2ZXJzaXR5IChNQSlcbiAgICAgICAgICAgIC0gQ29sdW1iaWEgVW5pdmVyc2l0eSAoTlkpXG4gICAgICAgICAgICAtIENyZWlnaHRvbiBVbml2ZXJzaXR5IChORSlcbiAgICAgICAgICAgIC0gRW1vcnkgVW5pdmVyc2l0eSAoR0EpXG4gICAgICAgICAgICAtIEdlb3JnZXRvd24gVW5pdmVyc2l0eSAoREMpXG4gICAgICAgICAgICAtIEpvaG5zIEhvcGtpbnMgVW5pdmVyc2l0eSAoTUQpXG4gICAgICAgICAgICAtIExveW9sYSBVbml2ZXJzaXR5IENoaWNhZ28gKElMKVxuICAgICAgICAgICAgLSBNYXJxdWV0dGUgVW5pdmVyc2l0eSAoV0kpXG4gICAgICAgICAgICAtIE5vcnRod2VzdGVybiBVbml2ZXJzaXR5IChJTClcbiAgICAgICAgICAgIC0gUGVubnN5bHZhbmlhIFN0YXRlIFVuaXZlcnNpdHktLUhhcnJpc2J1cmcgKFBBKVxuICAgICAgICAgICAgLSBQdXJkdWUgVW5pdmVyc2l0eS0tV2VzdCBMYWZheWV0dGUgKElOKVxuICAgICAgICAgICAgLSBTYWludCBMb3VpcyBVbml2ZXJzaXR5IChNTylcbiAgICAgICAgICAgIC0gU3RhbmZvcmQgVW5pdmVyc2l0eSAoQ0EpXG4gICAgICAgICAgICAtIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS0tQmVya2VsZXkgKENBKVxuICAgICAgICAgICAgLSBVbml2ZXJzaXR5IG9mIE1hcnlsYW5kLS1CYWx0aW1vcmUgKE1EKVxuICAgICAgICAgICAgLSBVbml2ZXJzaXR5IG9mIE5lYnJhc2thIE1lZGljYWwgQ2VudGVyIChORSlcbiAgICAgICAgICAgIC0gVmlsbGFub3ZhIFVuaXZlcnNpdHkgKFBBKVxuICAgICAgICAgICAgLSBWaXJnaW5pYSBUZWNoIChWQSlcbiAgICAgICAgICAgIG5vdGVDaGFyYWN0ZXI6IFwiKlwiXG4tLS1cblxuYGBgaHRtbF9leGFtcGxlXG5cbnslIGZyb20gJ3RlbXBsYXRlcy9jb21tb24vZGF0YS1kaWN0aW9uYXJ5L2ZpZWxkcy9fZmllbGQubnVuaicgaW1wb3J0IGZpZWxkICV9XG5cbjxkaXYgY2xhc3M9XCJmbGV4LXJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LWxhcmdlLTlcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlclwiIHN0eWxlPVwicGFkZGluZzogMXJlbTtcIj5cbiAgICAgICAgICAgIHt7IGZpZWxkKCdncmFTY2hTZWxMaXN0Q29uJywgZmllbGRzX21ldGFkYXRhLCBmaWVsZHNfZGF0YSwgaXNfcHJlbWl1bV91c2VyKSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuYGBgXG5cbiovXG5cblxuLypkb2Ncbi0tLVxudGl0bGU6IFRhYmxlXG5uYW1lOiBlLXRhYmxlXG5jYXRlZ29yeTogRGF0YSBQYXR0ZXJucyAtIERhdGEgRGljdGlvbmFyeSBGaWVsZHNcbmF1dGhvcnM6IFRvbW15IE1hcnNoYWxsLCBKb24gTGV3aXNcbnRlbXBsYXRlOlxuICAgIGZpZWxkc19tZXRhZGF0YTpcbiAgICAgICAgZ0FycmVzdE5vbmNhbXB1czpcbiAgICAgICAgICAgIGNvbHVtbkhlYWRlcnM6XG4gICAgICAgICAgICAtIG5vdGVUZXh0OiBUaGlzIGlzIHRleHQgZm9yIG5vdGUgM1xuICAgICAgICAgICAgICBub3RlQ2hhcmFjdGVyOiAnMydcbiAgICAgICAgICAgICAgbGFiZWw6IEFycmVzdHMgLS0gTm9uY2FtcHVzIEJ1aWxkaW5nIG9yIFByb3BlcnR5XG4gICAgICAgICAgICAtIG5vdGVUZXh0OiBcbiAgICAgICAgICAgICAgbm90ZUNoYXJhY3RlcjogXG4gICAgICAgICAgICAgIGxhYmVsOiBcIjIwMTNcIlxuICAgICAgICAgICAgLSBub3RlVGV4dDogXG4gICAgICAgICAgICAgIG5vdGVDaGFyYWN0ZXI6IFxuICAgICAgICAgICAgICBsYWJlbDogXCIyMDE0XCJcbiAgICAgICAgICAgIC0gbm90ZVRleHQ6IFxuICAgICAgICAgICAgICBub3RlQ2hhcmFjdGVyOiBcbiAgICAgICAgICAgICAgbGFiZWw6IFwiMjAxNVwiXG4gICAgICAgICAgICBkYXRhUWFJZDogdl9hcnJlc3Rfbm9uY2FtcHVzXG4gICAgICAgICAgICBpc1B1YmxpYzogdHJ1ZVxuICAgICAgICAgICAgbGFiZWw6IEFycmVzdHMgTm9uY2FtcHVzXG4gICAgICAgICAgICBmaWVsZEdyb3VwVHlwZTogdGFibGVcbiAgICAgICAgICAgIGZpZWxkTmFtZTogZ19hcnJlc3Rfbm9uY2FtcHVzXG4gICAgICAgICAgICBmaWVsZFR5cGU6IGZpZWxkLWdyb3VwXG4gICAgICAgICAgICBzdWJGaWVsZHM6XG4gICAgICAgICAgICAtIGZpZWxkczpcbiAgICAgICAgICAgICAgLSB3ZWFwb25QeTNOb25jYW1wdXNcbiAgICAgICAgICAgICAgLSB3ZWFwb25QeTJOb25jYW1wdXNcbiAgICAgICAgICAgICAgLSB3ZWFwb25QeTFOb25jYW1wdXNcbiAgICAgICAgICAgICAgbGFiZWw6IElsbGVnYWwgd2VhcG9ucyBwb3NzZXNzaW9uXG4gICAgICAgICAgICAtIGZpZWxkczpcbiAgICAgICAgICAgICAgLSBkcnVnUHkzTm9uY2FtcHVzXG4gICAgICAgICAgICAgIC0gZHJ1Z1B5Mk5vbmNhbXB1c1xuICAgICAgICAgICAgICAtIGRydWdQeTFOb25jYW1wdXNcbiAgICAgICAgICAgICAgbGFiZWw6IERydWcgbGF3IHZpb2xhdGlvbnNcbiAgICAgICAgICAgIC0gZmllbGRzOlxuICAgICAgICAgICAgICAtIGxpcXVvclB5M05vbmNhbXB1c1xuICAgICAgICAgICAgICAtIGxpcXVvclB5Mk5vbmNhbXB1c1xuICAgICAgICAgICAgICAtIGxpcXVvclB5MU5vbmNhbXB1c1xuICAgICAgICAgICAgICBsYWJlbDogTGlxdW9yIGxhdyB2aW9sYXRpb25zXG4gICAgICAgICAgICBwcmltYXJ5S2V5OiBnQXJyZXN0Tm9uY2FtcHVzXG4gICAgICAgICAgICBkaXNwbGF5T3JkZXI6IDBcbiAgICAgICAgd2VhcG9uUHkzTm9uY2FtcHVzOlxuICAgICAgICAgICAgZGRiRmllbGRUeXBlOiBpbnRcbiAgICAgICAgICAgIGRhdGFRYUlkOiB3ZWFwb25fcHkzX25vbmNhbXB1c1xuICAgICAgICAgICAgaXNQdWJsaWM6IGZhbHNlXG4gICAgICAgICAgICBwcmVjaXNpb246IFxuICAgICAgICAgICAgbGFiZWw6IFwiIFwiXG4gICAgICAgICAgICBkZWxpbWl0ZXI6ICcnXG4gICAgICAgICAgICBmaWVsZEdyb3VwVHlwZTogXG4gICAgICAgICAgICBmaWVsZE5hbWU6IHdlYXBvblB5M05vbmNhbXB1c1xuICAgICAgICAgICAgZmllbGRUeXBlOiBudW1lcmljXG4gICAgICAgICAgICBwcmltYXJ5S2V5OiB3ZWFwb25QeTNOb25jYW1wdXNcbiAgICAgICAgICAgIGRpc3BsYXlPcmRlcjogJydcbiAgICAgICAgICAgIGljb25MaW5rOiBcbiAgICAgICAgd2VhcG9uUHkyTm9uY2FtcHVzOlxuICAgICAgICAgICAgZGRiRmllbGRUeXBlOiBpbnRcbiAgICAgICAgICAgIGRhdGFRYUlkOiB3ZWFwb25fcHkyX25vbmNhbXB1c1xuICAgICAgICAgICAgaXNQdWJsaWM6IGZhbHNlXG4gICAgICAgICAgICBwcmVjaXNpb246IFxuICAgICAgICAgICAgbGFiZWw6IFwiIFwiXG4gICAgICAgICAgICBkZWxpbWl0ZXI6ICcnXG4gICAgICAgICAgICBmaWVsZEdyb3VwVHlwZTogXG4gICAgICAgICAgICBmaWVsZE5hbWU6IHdlYXBvblB5Mk5vbmNhbXB1c1xuICAgICAgICAgICAgZmllbGRUeXBlOiBudW1lcmljXG4gICAgICAgICAgICBwcmltYXJ5S2V5OiB3ZWFwb25QeTJOb25jYW1wdXNcbiAgICAgICAgICAgIGRpc3BsYXlPcmRlcjogJydcbiAgICAgICAgICAgIGljb25MaW5rOiBcbiAgICAgICAgd2VhcG9uUHkxTm9uY2FtcHVzOlxuICAgICAgICAgICAgZGRiRmllbGRUeXBlOiBpbnRcbiAgICAgICAgICAgIGRhdGFRYUlkOiB3ZWFwb25fcHkxX25vbmNhbXB1c1xuICAgICAgICAgICAgaXNQdWJsaWM6IGZhbHNlXG4gICAgICAgICAgICBwcmVjaXNpb246IFxuICAgICAgICAgICAgbGFiZWw6IFwiIFwiXG4gICAgICAgICAgICBkZWxpbWl0ZXI6ICcnXG4gICAgICAgICAgICBmaWVsZEdyb3VwVHlwZTogXG4gICAgICAgICAgICBmaWVsZE5hbWU6IHdlYXBvblB5MU5vbmNhbXB1c1xuICAgICAgICAgICAgZmllbGRUeXBlOiBudW1lcmljXG4gICAgICAgICAgICBwcmltYXJ5S2V5OiB3ZWFwb25QeTFOb25jYW1wdXNcbiAgICAgICAgICAgIGRpc3BsYXlPcmRlcjogJydcbiAgICAgICAgICAgIGljb25MaW5rOiBcbiAgICAgICAgbGlxdW9yUHkzTm9uY2FtcHVzOlxuICAgICAgICAgICAgZGRiRmllbGRUeXBlOiBpbnRcbiAgICAgICAgICAgIGRhdGFRYUlkOiBsaXF1b3JfcHkzX25vbmNhbXB1c1xuICAgICAgICAgICAgaXNQdWJsaWM6IGZhbHNlXG4gICAgICAgICAgICBwcmVjaXNpb246IFxuICAgICAgICAgICAgbGFiZWw6IFwiIFwiXG4gICAgICAgICAgICBkZWxpbWl0ZXI6ICcnXG4gICAgICAgICAgICBmaWVsZEdyb3VwVHlwZTogXG4gICAgICAgICAgICBmaWVsZE5hbWU6IGxpcXVvclB5M05vbmNhbXB1c1xuICAgICAgICAgICAgZmllbGRUeXBlOiBudW1lcmljXG4gICAgICAgICAgICBwcmltYXJ5S2V5OiBsaXF1b3JQeTNOb25jYW1wdXNcbiAgICAgICAgICAgIGRpc3BsYXlPcmRlcjogJydcbiAgICAgICAgICAgIGljb25MaW5rOiBcbiAgICAgICAgbGlxdW9yUHkyTm9uY2FtcHVzOlxuICAgICAgICAgICAgZGRiRmllbGRUeXBlOiBpbnRcbiAgICAgICAgICAgIGRhdGFRYUlkOiBsaXF1b3JfcHkyX25vbmNhbXB1c1xuICAgICAgICAgICAgaXNQdWJsaWM6IGZhbHNlXG4gICAgICAgICAgICBwcmVjaXNpb246IFxuICAgICAgICAgICAgbGFiZWw6IFwiIFwiXG4gICAgICAgICAgICBkZWxpbWl0ZXI6ICcnXG4gICAgICAgICAgICBmaWVsZEdyb3VwVHlwZTogXG4gICAgICAgICAgICBmaWVsZE5hbWU6IGxpcXVvclB5Mk5vbmNhbXB1c1xuICAgICAgICAgICAgZmllbGRUeXBlOiBudW1lcmljXG4gICAgICAgICAgICBwcmltYXJ5S2V5OiBsaXF1b3JQeTJOb25jYW1wdXNcbiAgICAgICAgICAgIGRpc3BsYXlPcmRlcjogJydcbiAgICAgICAgICAgIGljb25MaW5rOiBcbiAgICAgICAgbGlxdW9yUHkxTm9uY2FtcHVzOlxuICAgICAgICAgICAgZGRiRmllbGRUeXBlOiBpbnRcbiAgICAgICAgICAgIGRhdGFRYUlkOiBsaXF1b3JfcHkxX25vbmNhbXB1c1xuICAgICAgICAgICAgaXNQdWJsaWM6IGZhbHNlXG4gICAgICAgICAgICBwcmVjaXNpb246IFxuICAgICAgICAgICAgbGFiZWw6IFwiIFwiXG4gICAgICAgICAgICBkZWxpbWl0ZXI6ICcnXG4gICAgICAgICAgICBmaWVsZEdyb3VwVHlwZTogXG4gICAgICAgICAgICBmaWVsZE5hbWU6IGxpcXVvclB5MU5vbmNhbXB1c1xuICAgICAgICAgICAgZmllbGRUeXBlOiBudW1lcmljXG4gICAgICAgICAgICBwcmltYXJ5S2V5OiBsaXF1b3JQeTFOb25jYW1wdXNcbiAgICAgICAgICAgIGRpc3BsYXlPcmRlcjogJydcbiAgICAgICAgICAgIGljb25MaW5rOiBcbiAgICBmaWVsZHNfZGF0YTpcbiAgICAgICAgd2VhcG9uUHkzTm9uY2FtcHVzOlxuICAgICAgICAgICAgcmF3VmFsdWU6IFxuICAgICAgICAgICAgZGF0YVFhSWQ6IFdFQVBPTl9QWTNfTk9OQ0FNUFVTXG4gICAgICAgICAgICBhbmNob3JQYWdlOiBcbiAgICAgICAgICAgIGFuY2hvckxvY2F0aW9uOiBcbiAgICAgICAgICAgIG5vdGVUZXh0OiBcbiAgICAgICAgICAgIGZpZWxkTmFtZTogd2VhcG9uUHkzTm9uY2FtcHVzXG4gICAgICAgICAgICBmaWVsZFR5cGU6IFxuICAgICAgICAgICAgZGlzcGxheVZhbHVlOiBOL0FcbiAgICAgICAgICAgIG5vdGVDaGFyYWN0ZXI6IFxuICAgICAgICB3ZWFwb25QeTJOb25jYW1wdXM6XG4gICAgICAgICAgICByYXdWYWx1ZTogMFxuICAgICAgICAgICAgZGF0YVFhSWQ6IFdFQVBPTl9QWTJfTk9OQ0FNUFVTXG4gICAgICAgICAgICBhbmNob3JQYWdlOiBcbiAgICAgICAgICAgIGFuY2hvckxvY2F0aW9uOiBcbiAgICAgICAgICAgIG5vdGVUZXh0OiBcbiAgICAgICAgICAgIGZpZWxkTmFtZTogd2VhcG9uUHkyTm9uY2FtcHVzXG4gICAgICAgICAgICBmaWVsZFR5cGU6IFxuICAgICAgICAgICAgZGlzcGxheVZhbHVlOiAnMCdcbiAgICAgICAgICAgIG5vdGVDaGFyYWN0ZXI6IFxuICAgICAgICB3ZWFwb25QeTFOb25jYW1wdXM6XG4gICAgICAgICAgICByYXdWYWx1ZTogMFxuICAgICAgICAgICAgZGF0YVFhSWQ6IFdFQVBPTl9QWTFfTk9OQ0FNUFVTXG4gICAgICAgICAgICBhbmNob3JQYWdlOiBcbiAgICAgICAgICAgIGFuY2hvckxvY2F0aW9uOiBcbiAgICAgICAgICAgIG5vdGVUZXh0OiBcbiAgICAgICAgICAgIGZpZWxkTmFtZTogd2VhcG9uUHkxTm9uY2FtcHVzXG4gICAgICAgICAgICBmaWVsZFR5cGU6IFxuICAgICAgICAgICAgZGlzcGxheVZhbHVlOiAnMCdcbiAgICAgICAgICAgIG5vdGVDaGFyYWN0ZXI6IFxuICAgICAgICBsaXF1b3JQeTNOb25jYW1wdXM6XG4gICAgICAgICAgICByYXdWYWx1ZTogXG4gICAgICAgICAgICBkYXRhUWFJZDogTElRVU9SX1BZM19OT05DQU1QVVNcbiAgICAgICAgICAgIGFuY2hvclBhZ2U6IFxuICAgICAgICAgICAgYW5jaG9yTG9jYXRpb246IFxuICAgICAgICAgICAgbm90ZVRleHQ6IFxuICAgICAgICAgICAgZmllbGROYW1lOiBsaXF1b3JQeTNOb25jYW1wdXNcbiAgICAgICAgICAgIGZpZWxkVHlwZTogXG4gICAgICAgICAgICBkaXNwbGF5VmFsdWU6IE4vQVxuICAgICAgICAgICAgbm90ZUNoYXJhY3RlcjogXG4gICAgICAgIGxpcXVvclB5Mk5vbmNhbXB1czpcbiAgICAgICAgICAgIHJhd1ZhbHVlOiAwXG4gICAgICAgICAgICBkYXRhUWFJZDogTElRVU9SX1BZMl9OT05DQU1QVVNcbiAgICAgICAgICAgIGFuY2hvclBhZ2U6IFxuICAgICAgICAgICAgYW5jaG9yTG9jYXRpb246IFxuICAgICAgICAgICAgbm90ZVRleHQ6IFxuICAgICAgICAgICAgZmllbGROYW1lOiBsaXF1b3JQeTJOb25jYW1wdXNcbiAgICAgICAgICAgIGZpZWxkVHlwZTogXG4gICAgICAgICAgICBkaXNwbGF5VmFsdWU6ICcwJ1xuICAgICAgICAgICAgbm90ZUNoYXJhY3RlcjogXG4gICAgICAgIGxpcXVvclB5MU5vbmNhbXB1czpcbiAgICAgICAgICAgIHJhd1ZhbHVlOiAwXG4gICAgICAgICAgICBkYXRhUWFJZDogTElRVU9SX1BZMV9OT05DQU1QVVNcbiAgICAgICAgICAgIGFuY2hvclBhZ2U6IFxuICAgICAgICAgICAgYW5jaG9yTG9jYXRpb246IFxuICAgICAgICAgICAgbm90ZVRleHQ6IFxuICAgICAgICAgICAgZmllbGROYW1lOiBsaXF1b3JQeTFOb25jYW1wdXNcbiAgICAgICAgICAgIGZpZWxkVHlwZTogXG4gICAgICAgICAgICBkaXNwbGF5VmFsdWU6ICcwJ1xuICAgICAgICAgICAgbm90ZUNoYXJhY3RlcjogXG4tLS1cblxuYGBgaHRtbF9leGFtcGxlXG5cbnslIGZyb20gJ3RlbXBsYXRlcy9jb21tb24vZGF0YS1kaWN0aW9uYXJ5L2ZpZWxkcy9fZmllbGQubnVuaicgaW1wb3J0IGZpZWxkICV9XG5cbjxkaXYgY2xhc3M9XCJmbGV4LXJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LWxhcmdlLTlcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlclwiIHN0eWxlPVwicGFkZGluZzogMXJlbTtcIj5cbiAgICAgICAgICAgIHt7IGZpZWxkKCdnQXJyZXN0Tm9uY2FtcHVzJywgZmllbGRzX21ldGFkYXRhLCBmaWVsZHNfZGF0YSkgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbmBgYFxuXG4qL1xuXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBEZW1vZ3JhcGhpYyBDaGFydFxubmFtZTogZi1kZW1vZ3JhcGhpYy1jaGFydFxuY2F0ZWdvcnk6IERhdGEgUGF0dGVybnMgLSBEYXRhIERpY3Rpb25hcnkgRmllbGRzXG5hdXRob3JzOiBUb21teSBNYXJzaGFsbCwgSm9uIExld2lzXG50ZW1wbGF0ZTpcbiAgICBpc19wcmVtaXVtX3VzZXI6IHRydWVcbiAgICBmaWVsZF9pZDogdW5kZXJncmFkR2VuZGVyRGlzdHJpYnV0aW9uXG4gICAgZmllbGRzX21ldGFkYXRhOlxuICAgICAgICB1bmRlcmdyYWRHZW5kZXJEaXN0cmlidXRpb246XG4gICAgICAgICAgICBmaWVsZFR5cGU6IGRlbW9ncmFwaGljLWNoYXJ0XG4gICAgICAgICAgICBmaWVsZEdyb3VwVHlwZTogZGVtb2dyYXBoaWMtZGlzdHJpYnV0aW9uLWNoYXJ0XG4gICAgICAgICAgICBmaWVsZE5hbWU6IHVuZGVyZ3JhZEdlbmRlckRpc3RyaWJ1dGlvblxuICAgICAgICAgICAgbGFiZWw6IEdlbmRlciBEaXN0cmlidXRpb25cbiAgICAgICAgICAgIHN1YkZpZWxkczpcbiAgICAgICAgICAgICAgICBtYWxlOlxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogb2Ygc3R1ZGVudHMgYXJlIG1hbGVcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogXCIvc3RhdGljL3Nwcml0ZXMvc3ZnL3Nwcml0ZS5zeW1ib2wuc3ZnI3Blb3BsZS1tYWxlXCJcbiAgICAgICAgICAgICAgICAgICAgZmllbGROYW1lOiB1bmRlcmdyYWRQY3RNYWxlXG4gICAgICAgICAgICAgICAgZmVtYWxlOlxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogb2Ygc3R1ZGVudHMgYXJlIGZlbWFsZVxuICAgICAgICAgICAgICAgICAgICBpY29uOiBcIi9zdGF0aWMvc3ByaXRlcy9zdmcvc3ByaXRlLnN5bWJvbC5zdmcjcGVvcGxlLWZlbWFsZVwiXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkTmFtZTogdW5kZXJncmFkUGN0RmVtYWxlXG4gICAgZmllbGRzX2RhdGE6XG4gICAgICAgIHVuZGVyZ3JhZFBjdE1hbGU6XG4gICAgICAgICAgICBmaWVsZFR5cGU6IHBlcmNlbnRhZ2VcbiAgICAgICAgICAgIGxhYmVsOiBwZXJjZW50IHVuZGVyZ3JhZHVhdGVzIHdobyBhcmUgbWFsZVxuICAgICAgICAgICAgc3ViTGFiZWw6IFxuICAgICAgICAgICAgcmF3VmFsdWU6IDQ0LjZcbiAgICAgICAgICAgIGRpc3BsYXlWYWx1ZTogNDQuNiVcbiAgICAgICAgdW5kZXJncmFkUGN0RmVtYWxlOlxuICAgICAgICAgICAgZmllbGRUeXBlOiBwZXJjZW50YWdlXG4gICAgICAgICAgICBsYWJlbDogcGVyY2VudCB1bmRlcmdyYWR1YXRlcyB3aG8gYXJlIGZlbWFsZVxuICAgICAgICAgICAgc3ViTGFiZWw6IFxuICAgICAgICAgICAgcmF3VmFsdWU6IDU1LjRcbiAgICAgICAgICAgIGRpc3BsYXlWYWx1ZTogNTUuNCVcbi0tLVxuXG5gYGBodG1sX2V4YW1wbGVcblxueyUgZnJvbSAndGVtcGxhdGVzL2NvbW1vbi9kYXRhLWRpY3Rpb25hcnkvZmllbGRzL19maWVsZC5udW5qJyBpbXBvcnQgZmllbGQgJX1cblxuPGRpdiBjbGFzcz1cImZsZXgtcm93XCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtbGFyZ2UtOVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyXCIgc3R5bGU9XCJwYWRkaW5nOiAxcmVtO1wiPlxuICAgICAgICAgICAge3sgZmllbGQoZmllbGRfaWQsIGZpZWxkc19tZXRhZGF0YSwgZmllbGRzX2RhdGEsIGlzX3ByZW1pdW1fdXNlcikgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbmBgYFxuXG4qL1xuXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBQaWUgQ2hhcnRcbm5hbWU6IHBpZS1jaGFydFxuY2F0ZWdvcnk6IERhdGEgUGF0dGVybnMgLSBEYXRhIERpY3Rpb25hcnkgRmllbGRzXG5hdXRob3JzOiBKb24gTGV3aXNcbnRlbXBsYXRlOlxuICAgIGZpZWxkc19tZXRhZGF0YTpcbiAgICAgICAgZ0Z0RmFjdWx0eUdlbmRlckRpc3Q6XG4gICAgICAgICAgICBkZGJGaWVsZFR5cGU6IGZpZWxkX2dyb3VwXG4gICAgICAgICAgICBkYXRhUWFJZDogZ19mdF9mYWN1bHR5X2dlbmRlcl9kaXN0XG4gICAgICAgICAgICBpc1B1YmxpYzogdHJ1ZVxuICAgICAgICAgICAgbGFiZWw6IEZ1bGwtdGltZSBmYWN1bHR5IGdlbmRlciBkaXN0cmlidXRpb25cbiAgICAgICAgICAgIGZpZWxkR3JvdXBUeXBlOiBwaWUtY2hhcnRcbiAgICAgICAgICAgIGZpZWxkTmFtZTogZ0Z0RmFjdWx0eUdlbmRlckRpc3RcbiAgICAgICAgICAgIGZpZWxkVHlwZTogZmllbGQtZ3JvdXBcbiAgICAgICAgICAgIHN1YkZpZWxkczpcbiAgICAgICAgICAgIC0gY29sb3I6IFwiIzJiODBmMFwiXG4gICAgICAgICAgICAgIGZpZWxkOiB3UGN0RnRGYWNNZW5cbiAgICAgICAgICAgICAgbGFiZWw6IE1hbGVcbiAgICAgICAgICAgIC0gY29sb3I6IFwiIzEwMjk0YVwiXG4gICAgICAgICAgICAgIGZpZWxkOiB3UGN0RnRGYWNXb21lblxuICAgICAgICAgICAgICBsYWJlbDogRmVtYWxlXG4gICAgICAgICAgICBwcmltYXJ5S2V5OiBnRnRGYWN1bHR5R2VuZGVyRGlzdFxuICAgICAgICAgICAgZGlzcGxheU9yZGVyOiAnNCdcbiAgICAgICAgd1BjdEZ0RmFjV29tZW46XG4gICAgICAgICAgICBkZGJGaWVsZFR5cGU6IHN0ZF9wZXJjZW50YWdlXG4gICAgICAgICAgICBkYXRhUWFJZDogd19wY3RfZnRfZmFjX3dvbWVuXG4gICAgICAgICAgICBpc1B1YmxpYzogZmFsc2VcbiAgICAgICAgICAgIHByZWNpc2lvbjogMFxuICAgICAgICAgICAgbGFiZWw6IEZlbWFsZVxuICAgICAgICAgICAgZGVsaW1pdGVyOiAnJ1xuICAgICAgICAgICAgZmllbGRHcm91cFR5cGU6IFxuICAgICAgICAgICAgZmllbGROYW1lOiB3UGN0RnRGYWNXb21lblxuICAgICAgICAgICAgZmllbGRUeXBlOiBudW1lcmljXG4gICAgICAgICAgICBwcmltYXJ5S2V5OiB3UGN0RnRGYWNXb21lblxuICAgICAgICAgICAgZGlzcGxheU9yZGVyOiAnJ1xuICAgICAgICAgICAgaWNvbkxpbms6IFxuICAgICAgICB3UGN0RnRGYWNNZW46XG4gICAgICAgICAgICBkZGJGaWVsZFR5cGU6IHN0ZF9wZXJjZW50YWdlXG4gICAgICAgICAgICBkYXRhUWFJZDogd19wY3RfZnRfZmFjX21lblxuICAgICAgICAgICAgaXNQdWJsaWM6IGZhbHNlXG4gICAgICAgICAgICBwcmVjaXNpb246IDBcbiAgICAgICAgICAgIGxhYmVsOiBNYWxlXG4gICAgICAgICAgICBkZWxpbWl0ZXI6ICcnXG4gICAgICAgICAgICBmaWVsZEdyb3VwVHlwZTogXG4gICAgICAgICAgICBmaWVsZE5hbWU6IHdQY3RGdEZhY01lblxuICAgICAgICAgICAgZmllbGRUeXBlOiBudW1lcmljXG4gICAgICAgICAgICBwcmltYXJ5S2V5OiB3UGN0RnRGYWNNZW5cbiAgICAgICAgICAgIGRpc3BsYXlPcmRlcjogJydcbiAgICAgICAgICAgIGljb25MaW5rOiBcbiAgICBmaWVsZHNfZGF0YTpcbiAgICAgICAgd1BjdEZ0RmFjV29tZW46XG4gICAgICAgICAgICByYXdWYWx1ZTogMzFcbiAgICAgICAgICAgIGRhdGFRYUlkOiBXX1BDVF9GVF9GQUNfV09NRU5cbiAgICAgICAgICAgIGFuY2hvclBhZ2U6IFxuICAgICAgICAgICAgYW5jaG9yTG9jYXRpb246IFxuICAgICAgICAgICAgbm90ZVRleHQ6IFxuICAgICAgICAgICAgZmllbGROYW1lOiB3UGN0RnRGYWNXb21lblxuICAgICAgICAgICAgZmllbGRUeXBlOiBcbiAgICAgICAgICAgIGRpc3BsYXlWYWx1ZTogMzElXG4gICAgICAgICAgICBub3RlQ2hhcmFjdGVyOiBcbiAgICAgICAgd1BjdEZ0RmFjTWVuOlxuICAgICAgICAgICAgcmF3VmFsdWU6IDY5XG4gICAgICAgICAgICBkYXRhUWFJZDogV19QQ1RfRlRfRkFDX01FTlxuICAgICAgICAgICAgYW5jaG9yUGFnZTogXG4gICAgICAgICAgICBhbmNob3JMb2NhdGlvbjogXG4gICAgICAgICAgICBub3RlVGV4dDogXG4gICAgICAgICAgICBmaWVsZE5hbWU6IHdQY3RGdEZhY01lblxuICAgICAgICAgICAgZmllbGRUeXBlOiBcbiAgICAgICAgICAgIGRpc3BsYXlWYWx1ZTogNjklXG4gICAgICAgICAgICBub3RlQ2hhcmFjdGVyOiBcbi0tLVxuXG5gYGBodG1sX2V4YW1wbGVcblxueyUgZnJvbSAndGVtcGxhdGVzL2NvbW1vbi9kYXRhLWRpY3Rpb25hcnkvZmllbGRzL19maWVsZC5udW5qJyBpbXBvcnQgZmllbGQgJX1cblxuPGRpdiBjbGFzcz1cImZsZXgtcm93XCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtbGFyZ2UtOVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyXCIgc3R5bGU9XCJwYWRkaW5nOiAxcmVtO1wiPlxuICAgICAgICAgICAge3sgZmllbGQoJ2dGdEZhY3VsdHlHZW5kZXJEaXN0JywgZmllbGRzX21ldGFkYXRhLCBmaWVsZHNfZGF0YSkgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbmBgYFxuXG4qL1xuXG5cbi8qZG9jXG4tLS1cbnRpdGxlOiBCYXIgQ2hhcnRcbm5hbWU6IF9iYXItY2hhcnRcbmNhdGVnb3J5OiBEYXRhIFBhdHRlcm5zIC0gRGF0YSBEaWN0aW9uYXJ5IEZpZWxkc1xuYXV0aG9yczogSm9uIExld2lzXG50ZW1wbGF0ZTpcbiAgICBmaWVsZHNfbWV0YWRhdGE6XG4gICAgICAgIGdHcmFkdWF0aW9uUmF0ZXM6XG4gICAgICAgICAgICBkZGJGaWVsZFR5cGU6IGZpZWxkX2dyb3VwXG4gICAgICAgICAgICBkYXRhUWFJZDogZ19ncmFkdWF0aW9uX3JhdGVzXG4gICAgICAgICAgICBpc1B1YmxpYzogdHJ1ZVxuICAgICAgICAgICAgbGFiZWw6IEdyYWR1YXRpb24gcmF0ZXNcbiAgICAgICAgICAgIGZpZWxkR3JvdXBUeXBlOiBiYXItY2hhcnRcbiAgICAgICAgICAgIGZpZWxkTmFtZTogZ0dyYWR1YXRpb25SYXRlc1xuICAgICAgICAgICAgZmllbGRUeXBlOiBmaWVsZC1ncm91cFxuICAgICAgICAgICAgc3ViRmllbGRzOlxuICAgICAgICAgICAgLSBjb2xvcjogXCIjMjI2MmJiXCJcbiAgICAgICAgICAgICAgZmllbGQ6IGdyYWRSYXRlNFllYXJcbiAgICAgICAgICAgICAgbGFiZWw6IDQteWVhciBncmFkdWF0aW9uIHJhdGVcbiAgICAgICAgICAgIC0gY29sb3I6IFwiIzEzMzI1ZFwiXG4gICAgICAgICAgICAgIGZpZWxkOiBncmFkUmF0ZTVZZWFyXG4gICAgICAgICAgICAgIGxhYmVsOiA1LXllYXIgZ3JhZHVhdGlvbiByYXRlXG4gICAgICAgICAgICAtIGNvbG9yOiBcIiMwYWJiYTRcIlxuICAgICAgICAgICAgICBmaWVsZDogckNBdmdQY3RHcmFkNllyXG4gICAgICAgICAgICAgIGxhYmVsOiA2LXllYXIgZ3JhZHVhdGlvbiByYXRlXG4gICAgICAgICAgICBwcmltYXJ5S2V5OiBnR3JhZHVhdGlvblJhdGVzXG4gICAgICAgICAgICBkaXNwbGF5T3JkZXI6ICcnXG4gICAgICAgIGdyYWRSYXRlNFllYXI6XG4gICAgICAgICAgICBkZGJGaWVsZFR5cGU6IHN0ZF9wZXJjZW50YWdlXG4gICAgICAgICAgICBkYXRhUWFJZDogZ3JhZF9yYXRlXzRfeWVhclxuICAgICAgICAgICAgaXNQdWJsaWM6IGZhbHNlXG4gICAgICAgICAgICBwcmVjaXNpb246IFxuICAgICAgICAgICAgbGFiZWw6IDQteWVhciBncmFkdWF0aW9uIHJhdGVcbiAgICAgICAgICAgIGRlbGltaXRlcjogJydcbiAgICAgICAgICAgIGZpZWxkR3JvdXBUeXBlOiBcbiAgICAgICAgICAgIGZpZWxkTmFtZTogZ3JhZFJhdGU0WWVhclxuICAgICAgICAgICAgZmllbGRUeXBlOiBudW1lcmljXG4gICAgICAgICAgICBwcmltYXJ5S2V5OiBncmFkUmF0ZTRZZWFyXG4gICAgICAgICAgICBkaXNwbGF5T3JkZXI6ICc0J1xuICAgICAgICAgICAgaWNvbkxpbms6IFxuICAgICAgICBncmFkUmF0ZTVZZWFyOlxuICAgICAgICAgICAgZGRiRmllbGRUeXBlOiBpbnRcbiAgICAgICAgICAgIGRhdGFRYUlkOiBncmFkX3JhdGVfNV95ZWFyXG4gICAgICAgICAgICBpc1B1YmxpYzogZmFsc2VcbiAgICAgICAgICAgIHByZWNpc2lvbjogXG4gICAgICAgICAgICBsYWJlbDogNS15ZWFyIGdyYWR1YXRpb24gcmF0ZVxuICAgICAgICAgICAgZGVsaW1pdGVyOiAnJ1xuICAgICAgICAgICAgZmllbGRHcm91cFR5cGU6IFxuICAgICAgICAgICAgZmllbGROYW1lOiBncmFkUmF0ZTVZZWFyXG4gICAgICAgICAgICBmaWVsZFR5cGU6IG51bWVyaWNcbiAgICAgICAgICAgIHByaW1hcnlLZXk6IGdyYWRSYXRlNVllYXJcbiAgICAgICAgICAgIGRpc3BsYXlPcmRlcjogJydcbiAgICAgICAgICAgIGljb25MaW5rOiBcbiAgICAgICAgckNBdmdQY3RHcmFkNllyOlxuICAgICAgICAgICAgZGRiRmllbGRUeXBlOiBzdGRfcGVyY2VudGFnZVxuICAgICAgICAgICAgZGF0YVFhSWQ6IHJfY19hdmdfcGN0X2dyYWRfNnlyXG4gICAgICAgICAgICBpc1B1YmxpYzogZmFsc2VcbiAgICAgICAgICAgIHByZWNpc2lvbjogXG4gICAgICAgICAgICBsYWJlbDogNi15ZWFyIGdyYWR1YXRpb24gcmF0ZVxuICAgICAgICAgICAgZGVsaW1pdGVyOiAnJ1xuICAgICAgICAgICAgZmllbGRHcm91cFR5cGU6IFxuICAgICAgICAgICAgZmllbGROYW1lOiByQ0F2Z1BjdEdyYWQ2WXJcbiAgICAgICAgICAgIGZpZWxkVHlwZTogbnVtZXJpY1xuICAgICAgICAgICAgcHJpbWFyeUtleTogckNBdmdQY3RHcmFkNllyXG4gICAgICAgICAgICBkaXNwbGF5T3JkZXI6ICc3J1xuICAgICAgICAgICAgaWNvbkxpbms6IFxuICAgIGZpZWxkc19kYXRhOlxuICAgICAgICBncmFkUmF0ZTRZZWFyOlxuICAgICAgICAgICAgcmF3VmFsdWU6IDcxXG4gICAgICAgICAgICBkYXRhUWFJZDogR1JBRF9SQVRFXzRfWUVBUlxuICAgICAgICAgICAgYW5jaG9yUGFnZTogXG4gICAgICAgICAgICBhbmNob3JMb2NhdGlvbjogXG4gICAgICAgICAgICBub3RlVGV4dDogXG4gICAgICAgICAgICBmaWVsZE5hbWU6IGdyYWRSYXRlNFllYXJcbiAgICAgICAgICAgIGZpZWxkVHlwZTogXG4gICAgICAgICAgICBkaXNwbGF5VmFsdWU6IDcxJVxuICAgICAgICAgICAgbm90ZUNoYXJhY3RlcjogXG4gICAgICAgIGdyYWRSYXRlNVllYXI6XG4gICAgICAgICAgICByYXdWYWx1ZTogNzdcbiAgICAgICAgICAgIGRhdGFRYUlkOiBHUkFEX1JBVEVfNV9ZRUFSXG4gICAgICAgICAgICBhbmNob3JQYWdlOiBcbiAgICAgICAgICAgIGFuY2hvckxvY2F0aW9uOiBcbiAgICAgICAgICAgIG5vdGVUZXh0OiBcbiAgICAgICAgICAgIGZpZWxkTmFtZTogZ3JhZFJhdGU1WWVhclxuICAgICAgICAgICAgZmllbGRUeXBlOiBcbiAgICAgICAgICAgIGRpc3BsYXlWYWx1ZTogJzc3J1xuICAgICAgICAgICAgbm90ZUNoYXJhY3RlcjogXG4gICAgICAgIHJDQXZnUGN0R3JhZDZZcjpcbiAgICAgICAgICAgIHJhd1ZhbHVlOiA3OFxuICAgICAgICAgICAgZGF0YVFhSWQ6IFJfQ19BVkdfUENUX0dSQURfNllSXG4gICAgICAgICAgICBhbmNob3JQYWdlOiBcbiAgICAgICAgICAgIGFuY2hvckxvY2F0aW9uOiBcbiAgICAgICAgICAgIG5vdGVUZXh0OiBcbiAgICAgICAgICAgIGZpZWxkTmFtZTogckNBdmdQY3RHcmFkNllyXG4gICAgICAgICAgICBmaWVsZFR5cGU6IFxuICAgICAgICAgICAgZGlzcGxheVZhbHVlOiA3OCVcbiAgICAgICAgICAgIG5vdGVDaGFyYWN0ZXI6IFxuLS0tXG5cbmBgYGh0bWxfZXhhbXBsZVxuXG57JSBmcm9tICd0ZW1wbGF0ZXMvY29tbW9uL2RhdGEtZGljdGlvbmFyeS9maWVsZHMvX2ZpZWxkLm51bmonIGltcG9ydCBmaWVsZCAlfVxuXG48ZGl2IGNsYXNzPVwiZmxleC1yb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1sYXJnZS05XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXJcIiBzdHlsZT1cInBhZGRpbmc6IDFyZW07XCI+XG4gICAgICAgICAgICB7eyBmaWVsZCgnZ0dyYWR1YXRpb25SYXRlcycsIGZpZWxkc19tZXRhZGF0YSwgZmllbGRzX2RhdGEpIH19XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5gYGBcblxuKi9cbiIsIi8vQ29sb3JzXG4kYmxhY2stc2VtaS10cmFuczogcmdiYSgjNDQ0LCAwLjUpO1xuJHdoaXRlLXNlbWktdHJhbnM6IHJnYmEoI2ZmZiwgMC41KTtcblxuLy9TaXplc1xuJGJhci13aWR0aDogMjc1cHg7XG4kYmFyLWluZGljYXRvci13aWR0aDogNDRweDtcblxuLm15Zml0X19iYXIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRyZWQtYnJpY2ssICRyZWQsICR5ZWxsb3ctbGlnaHQsICRncmVlbi1zZWEtZm9hbSwgJGdyZWVuLXBybywgJGdyZWVuLWZvcmVzdCk7XG4gIGJvcmRlcjogMXB4ICRnYWluc2Jvcm8gc29saWQ7XG4gIGhlaWdodDogMzVweDtcbiAgd2lkdGg6ICRiYXItd2lkdGg7XG59XG5cbi5teWZpdF9fYmFyX19pbmRpY2F0b3ItY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW4tbGVmdDogKCRiYXItaW5kaWNhdG9yLXdpZHRoIC8gMik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6ICgkYmFyLXdpZHRoIC0gJGJhci1pbmRpY2F0b3Itd2lkdGgpO1xufVxuXG4ubXlmaXRfX2Jhcl9faW5kaWNhdG9yIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrLXNlbWktdHJhbnM7XG4gIGJvcmRlci1sZWZ0OiAycHggc29saWQgJHdoaXRlLXNlbWktdHJhbnM7XG4gIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICR3aGl0ZS1zZW1pLXRyYW5zO1xuICBjb2xvcjogd2hpdGU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZvbnQtZmFtaWx5OiAnQXJpYWwnLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGhlaWdodDogMTAwJTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGxlZnQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAtKCRiYXItaW5kaWNhdG9yLXdpZHRoIC8gMik7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1zaGFkb3c6IDAgMCAycHggIzU1NTtcbiAgdG9wOiAwO1xuICB3aWR0aDogJGJhci1pbmRpY2F0b3Itd2lkdGg7XG5cbiAgJjpiZWZvcmUge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2ZmZiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMCA0LjVweCA2cHggNC41cHg7XG4gICAgYm90dG9tOiAwO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGhlaWdodDogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICB3aWR0aDogMDtcbiAgfVxufVxuXG4vLyBBcHBseSB0aGlzIGNsYXNzIHRvIHRoZSBpbmRpY2F0b3IgZWxlbWVudCB0byByZW1vdmUgdGhlIHdoaXRlIGFycm93XG4ubXlmaXRfX2Jhcl9fbm8tYXJyb3c6YmVmb3JlIHtcbiAgICBjb250ZW50OiBub25lO1xufVxuXG4vKiBBcHBseSB0aGlzIGNsYXNzIHRvIHRoZSAubXlmaXRfX2JhciB0byBlbmFibGUgdGhlIGJhciB0byBmaWxsIHRoZSBhdmFpbGFibGVcbiAgIHdpZHRoLCByYXRoZXIgdGhhbiBiZWluZyBhIGZpeGVkIHNpemUuICovXG4ubXlmaXRfX2Jhcl9fZnVsbC13aWR0aCB7XG4gICAgJi5teWZpdF9fYmFyIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyMnB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMnB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gICAgJiA+IC5teWZpdF9fYmFyX19pbmRpY2F0b3ItY29udGFpbmVyIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG4iLCIuY2hpY2xldHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICA+ZGl2IHtcbiAgICAgICAgaGVpZ2h0OiAuNXJlbTtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC4xNXJlbTtcblxuICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jaGljbGV0LXdyYXBwZXIge1xuICAgIG1pbi13aWR0aDogMTMwcHg7XG5cbiAgICAmLmxhcmdlIHtcbiAgICAgICAgbWluLXdpZHRoOiAxNDVweDtcblxuICAgICAgICAuY2hpY2xldCB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEycHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jaGljbGV0IHtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgd2lkdGg6IDIwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDJweDtcblxuICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cblxuICAgICYuYmx1ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRibHVlO1xuICAgIH1cblxuICAgICYuZ3JlZW4tZm9yZXN0IHtcbiAgICAgICAgYmFja2dyb3VuZDogJGdyZWVuLWZvcmVzdDtcbiAgICB9XG5cbiAgICAmLmdyZWVuLXBybyB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRncmVlbi1wcm87XG4gICAgfVxuXG4gICAgJi5vcmFuZ2UtZGFyayB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRvcmFuZ2UtZGFyaztcbiAgICB9XG5cbiAgICAmLnJlZC1icmljayB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRyZWQtYnJpY2s7XG4gICAgfVxuXG4gICAgJi5yZWQtY29uIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHJlZC1jb247XG4gICAgfVxuXG4gICAgJi5pcm9uIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGlyb247XG4gICAgfVxufVxuXG4uY2hpY2xldHMtY29udGFpbmVyIHtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG5cbiAgICAudG9vdGxpcC1jb250YWluZXIge1xuICAgICAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2hpY2xldC1oZWFkZXIge1xuICAgICAgICAmLmJsdWUge1xuICAgICAgICAgICAgY29sb3I6ICRibHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5ncmVlbi1mb3Jlc3Qge1xuICAgICAgICAgICAgY29sb3I6ICRncmVlbi1mb3Jlc3Q7XG4gICAgICAgIH1cblxuICAgICAgICAmLmdyZWVuLXBybyB7XG4gICAgICAgICAgICBjb2xvcjogJGdyZWVuLXBybztcbiAgICAgICAgfVxuXG4gICAgICAgICYub3JhbmdlLWRhcmsge1xuICAgICAgICAgICAgY29sb3I6ICRvcmFuZ2UtZGFyaztcbiAgICAgICAgfVxuXG4gICAgICAgICYucmVkLWJyaWNrIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcmVkLWJyaWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5yZWQtY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcmVkLWNvbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXJvbiB7XG4gICAgICAgICAgICBjb2xvcjogJGlyb247XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIuc2xpZGUtdXAtY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm90dG9tOiByZW0tY2FsYygtMzQ1KTtcbiAgICBAaW5jbHVkZSB6LWluZGV4O1xuXG4gICAgdHJhbnNpdGlvbjogYm90dG9tIDFzIGVhc2U7XG5cbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnNsaWRlLXVwLWNvbnRhaW5lci5vcGVuIHtcbiAgICBib3R0b206IDBweDtcblxuICAgIHRyYW5zaXRpb246IGJvdHRvbSAxcyBlYXNlOyAgICBcbn1cblxuLnNsaWRlLXVwIHtcbiAgICBoZWlnaHQ6IHJlbS1jYWxjKDM2MCk7XG4gICAgd2lkdGg6IHJlbS1jYWxjKDI3NSk7XG5cbiAgICBmbG9hdDogcmlnaHQ7XG5cbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xufVxuXG4uc2xpZGUtdXAtaG92ZXIge1xuICAgIGhlaWdodDogcmVtLWNhbGMoMTApO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbn1cblxuLnNsaWRlLXVwLXZpc2libGUge1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLnNsaWRlLXVwLWhlYWRlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiByZW0tY2FsYyg1KTtcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xufVxuXG4uc2xpZGUtdXAtY29udGVudCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xufVxuXG4udG9nZ2xlZC1zbGlkZXVwIHtcbiAgICAvLyBOb3RlOiBib3R0b20gb2Zmc2V0IHRvIHNob3cgb25seSBoZWFkZXIgd2hlbiBjbG9zZWQgaXMgc2V0IGJhc2VkIG9uXG4gICAgLy8gY29udGVudCBzaXplIG9uIGluaXRpYWxpemF0aW9uIGluIEpTLlxuICAgIGJvdHRvbTogLTEwMCU7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHJpZ2h0OiA1JTtcbiAgICBAaW5jbHVkZSB6LWluZGV4O1xuXG4gICAgdHJhbnNpdGlvbjogYm90dG9tIDFzIGVhc2U7XG5cbiAgICB3aWR0aDogMjkwcHg7XG59XG5cbi50b2dnbGVkLXNsaWRldXAub3BlbiB7XG4gICAgYm90dG9tOiAwcHggIWltcG9ydGFudDtcblxuICAgIHRyYW5zaXRpb246IGJvdHRvbSAxcyBlYXNlO1xufVxuIiwiLnRvbWJzdG9uZS10ZXh0IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLnRvbWJzdG9uZS1saW5lIHtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzIGVhc2UtaW4tb3V0ICFpbXBvcnRhbnQ7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcblxuICAgICAgICAmLmZpbGxlZCB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFwwMGEwXCI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IC02MCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDBweDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDEwcHggc29saWQgI2NjYztcbiAgICAgICAgfVxuXG4gICAgICAgICYudG9tYnN0b25lLXNtYWxsIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogNnB4IHNvbGlkICNjY2M7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDgwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKmRvY1xuLS0tXG50aXRsZTogV2l6YXJkXG5uYW1lOiBhLXdpemFyZFxuY2F0ZWdvcnk6IEZvcm1zIC0gV2l6YXJkXG5zZWxlY3RvcnM6XG4gICAgLSAud2l6YXJkXG5zZWxlY3Rvcl90eXBlOiBjb21wb25lbnRcbi0tLVxuXG5UaGVzZSBjbGFzc2VzIGFyZSB1c2VkIHdpdGggdGhlIFtGb3JtIFdpemFyZF1bMS13aXphcmRdLlxuXG5gYGBodG1sX2V4YW1wbGVcbjxmb3JtIGNsYXNzPVwid2l6YXJkXCI+XG4gICAgPGhlYWRlciBjbGFzcz1cIndpemFyZC1oZWFkZXJcIj5cbiAgICAgICAgPGgyIGRhdGEtc3RlcD1cIjFcIj5TdGVwIDE8L2gyPlxuICAgICAgICA8aDIgZGF0YS1zdGVwPVwiMlwiPlN0ZXAgMjwvaDI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3aXphcmQtcHJvZ3Jlc3NcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3aXphcmQtcHJvZ3Jlc3MtYmFyXCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2l6YXJkLXByb2dyZXNzLXN0YXRzXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3aXphcmQtcHJvZ3Jlc3MtY3VycmVudFwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAvXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3aXphcmQtcHJvZ3Jlc3MtdG90YWxcIj48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9oZWFkZXI+XG4gICAgPGRpdiBjbGFzcz1cIndpemFyZC1ib2R5XCI+XG4gICAgICAgIDxkaXYgZGF0YS1zdGVwPVwiMVwiPlxuICAgICAgICAgIDxwPldpemFyZCBmb3JtIGVsZW1lbnRzIC4uLjwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgZGF0YS1zdGVwPVwiMlwiPlxuICAgICAgICAgIDxwPk1vcmUgd2l6YXJkIGZvcm0gZWxlbWVudHMgLi4uPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZm9ybT5cbmBgYFxuXG4qL1xuXG4ud2l6YXJkIHtcblxuICBbZGF0YS1zdGVwXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIFtkYXRhLXN0ZXA9XCIxXCJdIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC53aXphcmQtcHJvZ3Jlc3MtYmFyIHtcbiAgICBtaW4taGVpZ2h0OiAxcmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgIHdpZHRoOiAwO1xuICB9XG5cbn0iLCIvKmRvY1xuLS0tXG50aXRsZTogQ2FyZCBMaXN0XG5uYW1lOiBhLWNhcmQtbGlzdFxuY2F0ZWdvcnk6IFZpc3VhbCBUcmVhdG1lbnRzIC0gQ2FyZCBMaXN0XG4tLS1cblxuYGBgaHRtbF9leGFtcGxlXG5cbnslXG4gICAgc2V0IGl0ZW1zID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICBpbWFnZVVybDogJy9zdGF0aWMvaW1nL3RlbXAtaW1hZ2VzL2NvdW50cmllcy1zd2l0emVybGFuZC1pbWFnZS5qcGcnLFxuICAgICAgICAgICAgaWNvbjogJ2NyZWRpdC1jYXJkcycsXG4gICAgICAgICAgICB0aXRsZTogXCJCYWQgQ3JlZGl0XCIsXG4gICAgICAgICAgICBjb2xvcjogJ2RhcmsnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGltYWdlVXJsOiAnL3N0YXRpYy9pbWcvdGVtcC1pbWFnZXMvaGVyby1oaWdoLXNjaG9vbHMtaHAtaGVhZGVyLTEyODAuanBnJyxcbiAgICAgICAgICAgIGljb246ICdob21lJyxcbiAgICAgICAgICAgIHRpdGxlOiBcIkhvbWUgSW1wcm92ZW1lbnRcIixcbiAgICAgICAgICAgIGNvbG9yOiAnZGFyaydcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgaW1hZ2VVcmw6ICcvc3RhdGljL2ltZy90ZW1wLWltYWdlcy9jb3VudHJpZXMtc3RvcnktMy1pbWFnZS5wbmcnLFxuICAgICAgICAgICAgaWNvbjogJ2J1aWxkaW5nJyxcbiAgICAgICAgICAgIHRpdGxlOiBcIk1vcnRnYWdlXCIsXG4gICAgICAgICAgICBjb2xvcjogJ2RhcmsnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGltYWdlVXJsOiAnL3N0YXRpYy9pbWcvdGVtcC1pbWFnZXMvZGlldHMtZm9vZC5wbmcnLFxuICAgICAgICAgICAgaWNvbjogJ21vbmV5JyxcbiAgICAgICAgICAgIHRpdGxlOiBcIkRlYnQgQ29uc29saWRhdGlvblwiLFxuICAgICAgICAgICAgY29sb3I6ICdyZWQnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGltYWdlVXJsOiAnL3N0YXRpYy9pbWcvdGVtcC1pbWFnZXMvaGVyby1kaWV0cy1ocC1oZWFkZXItOTcwLnBuZycsXG4gICAgICAgICAgICBpY29uOiAncGVyc29uJyxcbiAgICAgICAgICAgIHRpdGxlOiBcIlBlcnNvbmFsXCIsXG4gICAgICAgICAgICBjb2xvcjogJ2dyZWVuJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBpbWFnZVVybDogJy9zdGF0aWMvaW1nL3RlbXAtaW1hZ2VzL2hlcm8taGlnaC1zY2hvb2xzLWhwLWZvb3Rlci0xMjgwLmpwZycsXG4gICAgICAgICAgICBpY29uOiAnYm9vaycsXG4gICAgICAgICAgICB0aXRsZTogXCJTdHVkZW50c1wiLFxuICAgICAgICAgICAgY29sb3I6ICdibHVlJ1xuICAgICAgICB9XG4gICAgXVxuJX1cblxuPGRpdiBjbGFzcz1cImZsZXgtcm93XCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc21hbGwtMTIgZmxleC1sYXJnZS05XCI+XG4gICAgICAgIDx1bCBjbGFzcz1cImZsZXgtcm93IGNhcmQtbGlzdFwiPlxuICAgICAgICAgICAgeyUgZm9yIGl0ZW0gaW4gaXRlbXMgJX1cbiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJmbGV4LXNtYWxsLTEyIGZsZXgtbWVkaXVtLTYgZmxleC1sYXJnZS00IGNhcmQtbGlzdC1pdGVtIGNhcmQtbGlzdC17eyBpdGVtLmNvbG9yIH19XCI+XG4gICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1saXN0LWl0ZW0tY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtbGlzdC1pdGVtLWltYWdlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1saXN0LWl0ZW0taW1hZ2VcIiBzdHlsZT1cImJhY2tncm91bmQ6IHVybCh7eyBpdGVtLmltYWdlVXJsIH19KTtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1saXN0LWl0ZW0tY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1saXN0LWl0ZW0taWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImljb24gYmFja2dyb3VuZC17eyBpdGVtLmNvbG9yIH19IHJvdW5kIHdoaXRlXCI+PHVzZSB4bGluazpocmVmPVwiL3N0YXRpYy9zcHJpdGVzL3N2Zy9zcHJpdGUuc3ltYm9sLnN2ZyN7eyBpdGVtLmljb24gfX1cIiAvPjwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1saXN0LWl0ZW0tYm9keSBoZWFkaW5nLWxhcmdlIHRleHQtYmxhY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0udGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICB7JSBlbmRmb3IgJX1cbiAgICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG5gYGBcbiovXG5cbi5jYXJkLWxpc3Qge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5jYXJkLWxpc3QtaXRlbSB7XG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgIH1cbn1cblxuLmNhcmQtbGlzdC1pdGVtLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgZmxleGJveDtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLy8gYXMgYSBmcmFtZSBvZiByZWZlcmVuY2UgZm9yIHRoZSBhYnNvbHV0ZWx5LXBvc2l0aW9uZWQgYmFja2dyb3VuZCBpbWFnZSBkaXZcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcGFkZGluZzogMXJlbSAwO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkZ2FpbnNib3JvO1xuICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMzAwbXM7XG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAgIEBpbmNsdWRlIGJveC1zaGFkb3coMCwgMCwgNXB4LCAwLCByZ2JhKDAsIDAsIDAsIDAuNSksIGZhbHNlKTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJveC1zaGFkb3coMCwgMCwgMTVweCwgMCwgcmdiYSgwLCAwLCAwLCAwLjUpLCBmYWxzZSk7XG5cbiAgICAgICAgICAgIC5jYXJkLWxpc3QtaXRlbS1pbWFnZSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgYm9yZGVyLXRvcDogNXB4IHNvbGlkICRibHVlLWRhcms7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDI2MHB4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbn1cblxuQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgIC5jYXJkLWxpc3QtZGFyayAuY2FyZC1saXN0LWl0ZW0tY29udGFpbmVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYmx1ZS1kYXJrO1xuICAgIH1cblxuICAgIC5jYXJkLWxpc3QtYmx1ZSAuY2FyZC1saXN0LWl0ZW0tY29udGFpbmVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkbGluay1ibHVlLWxpZ2h0O1xuICAgIH1cblxuICAgIC5jYXJkLWxpc3QtZ3JlZW4gLmNhcmQtbGlzdC1pdGVtLWNvbnRhaW5lciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGdyZWVuLXBybztcbiAgICB9XG5cbiAgICAuY2FyZC1saXN0LXJlZCAuY2FyZC1saXN0LWl0ZW0tY29udGFpbmVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkcmVkO1xuICAgIH1cbn1cblxuLmNhcmQtbGlzdC1pdGVtOmZpcnN0LWNoaWxkIC5jYXJkLWxpc3QtaXRlbS1jb250YWluZXIge1xuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgfVxufVxuXG4uY2FyZC1saXN0LWl0ZW0tY29udGVudCB7XG4gICAgQGluY2x1ZGUgZmxleGJveDtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLy8gU28gaXQgd2lsbCBkcmF3IGluIGEgbGF5ZXIgYWJvdmUgdGhlIGFic29sdXRlbHktcG9zaXRpb25lZCBiYWNrZ3JvdW5kIGltYWdlIGRpdlxuICAgIG1hcmdpbjogMDtcblxuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC13cmFwKHdyYXApO1xuICAgICAgICBAaW5jbHVkZSBhbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1iYXNpcygxMDAlKTtcbiAgICB9XG59XG5cbi5jYXJkLWxpc3QtYWxpZ24tdG9wIC5jYXJkLWxpc3QtaXRlbS1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBhbGlnbi1jb250ZW50KGZsZXgtc3RhcnQpOyAvLyBmb3Igd2hlbiBjb250ZW50IGlzIHdyYXBwaW5nIGF0IG1lZGl1bS11cFxuICAgIEBpbmNsdWRlIGFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpOyAvLyBvdGhlcndpc2Vcbn1cblxuLmNhcmQtbGlzdC1pdGVtLWljb24ge1xuICAgIEBpbmNsdWRlIGZsZXhib3g7XG4gICAgQGluY2x1ZGUgYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LXNocmluaygwKTtcblxuICAgIG1hcmdpbi1yaWdodDogMXJlbTtcblxuICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1iYXNpcygxMDAlKTtcbiAgICAgICAgQGluY2x1ZGUganVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgICAgIEBpbmNsdWRlIGFsaWduLWl0ZW1zKHN0YXJ0KTtcblxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmctdG9wOiA4NXB4O1xuICAgIH1cbn1cblxuLmNhcmQtbGlzdC1pdGVtLWJvZHkge1xuICAgIEBpbmNsdWRlIGZsZXhib3g7XG4gICAgQGluY2x1ZGUgYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LXdyYXAod3JhcCk7XG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYmFzaXMoMTAwJSk7XG4gICAgICAgIEBpbmNsdWRlIGp1c3RpZnktY29udGVudChjZW50ZXIpO1xuXG4gICAgICAgIG1hcmdpbjogMXJlbSAxcmVtIDEuNXJlbSAxcmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiAtMnB4O1xuICAgIH1cbn1cblxuLmNhcmQtbGlzdC1pdGVtLWltYWdlLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgbGVmdDogMHB4O1xuICAgICAgICByaWdodDogMHB4O1xuICAgICAgICBoZWlnaHQ6IDEyMHB4O1xuICAgIH1cbn1cblxuLmNhcmQtbGlzdC1pdGVtLWltYWdlIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMXM7XG5cbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciAhaW1wb3J0YW50O1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuIiwiJG1heFRhYmxlV2lkdGg6IHJlbS1jYWxjKDk3MCk7XG4kaGVhZGVySGVpZ2h0OiByZW0tY2FsYygxMDApO1xuJGhlYWRlckltZ0hlaWdodDogOTBweDtcbiRoZWFkZXJJbWdXaWR0aDogMTM1cHg7XG4kbW9iaWxlSW1nTWF4SGVpZ2h0OiA2MHB4O1xuJG1vYmlsZS1ndXR0ZXItd2lkdGg6IDAuOTM3NXJlbTtcbiRkZWZhdWx0Qm9yZGVyOiAxcHggc29saWQgJGdhaW5zYm9ybztcblxuXG5AbWl4aW4gY2VudGVyLWZsZXgtY2hpbGRyZW4oKXtcbiAgICBAaW5jbHVkZSBhbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGFsaWduLWNvbnRlbnQoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgIC8vIEBpbmNsdWRlIGZsZXgoNCwgMSwgYXV0byk7XG59XG5cbi8vIEhpZGUgYW55IGV4dHJhIGNvbHVtbnMgd2hpY2ggbWlnaHQgYmUgcmVuZGVyZWQgb24gZmlyc3QgcGFnZSBsb2FkXG4uY29tcGFyZS1jb2w6bnRoLWNoaWxkKG4gKyA0KSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuQG1lZGlhICN7JG5vdC1sYXJnZS11cH0ge1xuICAgIC5jb21wYXJlLWNvbDpudGgtY2hpbGQobiArIDMpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbiN0YWJsZS1vcmlnaW4ge1xuICAgIEBpbmNsdWRlIGZsZXhib3g7XG4gICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbiAgICBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcblxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jb21wYXJlLXRhYmxlLWJvZHkge1xuICAgQGluY2x1ZGUgZmxleC1mbG93KHJvdyBub3dyYXApO1xuICAgLy8gQGluY2x1ZGUgYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgIEBpbmNsdWRlIGp1c3RpZnktY29udGVudChzcGFjZS1hcm91bmQpO1xuXG4gICAgLmxhYmVsLWNlbGwsXG4gICAgLmRhdGEtY2VsbCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxcmVtO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmRhdGEtY2VsbCB7XG4gICAgICAgQGluY2x1ZGUgY2VudGVyLWZsZXgtY2hpbGRyZW4oKTtcblxuICAgICAgIC5mb3JtLWNvbnRyb2wge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgICAgIH1cbiAgICB9XG5cbiAgICAuZGlzdHJpYnV0aW9uLWJyZWFrZG93bi5wYW5lbCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLmRpc3RyaWJ1dGlvbi1icmVha2Rvd25fX3Zpc3VhbCAuaWNvbiB7XG4gICAgICAgIGhlaWdodDogcmVtLWNhbGMoMTYpO1xuICAgICAgICB3aWR0aDogcmVtLWNhbGMoMTYpO1xuICAgIH1cblxuICAgIC5kaXN0cmlidXRpb24tYnJlYWtkb3duX19wZXJjZW50YWdlIHtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgIH1cbiAgICAuZGlzdHJpYnV0aW9uLWJyZWFrZG93bl9fcGVyY2VudGFnZS1jb3B5IHtcbiAgICAgICAgZm9udC1zaXplOiAwLjdyZW07XG4gICAgfVxuXG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICAuZGlzdHJpYnV0aW9uLWJyZWFrZG93bl9fY29sLS12aXN1YWwge1xuICAgICAgICAgICAgd2lkdGg6IDc1JTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5kaXN0cmlidXRpb24tYnJlYWtkb3duX19jb2wtLXN0YXQge1xuICAgICAgICAgICAgd2lkdGg6IDI1JTtcbiAgICAgICAgfVxuICAgIH1cblxufVxuXG4uY29tcGFyZS10YWJsZS1zZWN0aW9uLWhlYWRlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMzAwbXM7XG5cbiAgICAuaWNvbiB7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAzMDBtcyBlYXNlLW91dDtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNtb2tlO1xuICAgIH1cbn1cblxuLmNvbXBhcmUtdGFibGUtc2VjdGlvbi1jb250ZW50IHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDMwMG1zO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLmNvbXBhcmUtdGFibGUtc2VjdGlvbi5pcy1jb2xsYXBzZWQge1xuICAgIC5jb21wYXJlLXRhYmxlLXNlY3Rpb24taGVhZGVyIC5pY29uIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gICAgfVxuXG4gICAgLmNvbXBhcmUtdGFibGUtc2VjdGlvbi1jb250ZW50IHtcbiAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG59XG5cbi5saW5rLWJsdWUtaWNvbiB7XG4gICAgZmlsbDogIzJjN2VmMCAhaW1wb3J0YW50O1xufVxuXG4uaGVhZGVyLWNlbGwge1xuICAgIGJvcmRlci1yaWdodDogJGRlZmF1bHRCb3JkZXI7XG5cbiAgICBpbWcsXG4gICAgLnBsYWNlaG9sZGVyLWltZyB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gICAgICAgIHdpZHRoOiAkaGVhZGVySW1nV2lkdGg7XG4gICAgICAgIGhlaWdodDogJGhlYWRlckltZ0hlaWdodDtcbiAgICAgICAgQG1lZGlhICN7JHNtYWxsLW9ubHl9IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6ICRtb2JpbGVJbWdNYXhIZWlnaHQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1heC13aWR0aDogJG1vYmlsZUltZ01heEhlaWdodCAqIDEuNTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGltZyB7XG4gICAgICAgIGltYWdlLXJlbmRlcmluZzogcGl4ZWxhdGVkO1xuICAgIH1cblxuICAgIC5wbGFjZWhvbGRlci1pbWcge1xuICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygxMCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE1KTtcbiAgICB9XG59XG5cblxuLmxhYmVsLWNlbGwge1xuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG59XG5cblxuLmRhdGEtcGFydC1vZi1yb3cge1xuICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbiAgICBAbWVkaWEgI3skbWVkaXVtLXVwfSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgfVxufVxuXG5cbi5kcm9wZG93bi1zZWN0aW9uLWRpdmlkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzaWx2ZXI7XG4gICAgYm9yZGVyLXRvcDogJGRlZmF1bHRCb3JkZXI7XG4gICAgYm9yZGVyLWJvdHRvbTogJGRlZmF1bHRCb3JkZXI7XG59XG5cbi5kcm9wZG93bi1pY29uIHtcbiAgICBmaWxsOiAkYWx1bWludW07XG4gICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG59XG5cbi5zdGF0aWMtaGVhZGVyIHtcbiAgICBcbiAgICAuZHJvcGRvd24tY29udGFpbmVyIHtcbiAgICAgICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgICAgICAgICAmID4gYSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmRyb3Bkb3duLWljb24ge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMC43NXJlbTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMC43NXJlbTtcbiAgICAgICAgICAgICB9XG4gICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAuanVtcC10by1kcm9wZG93biB7XG4gICAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLWNvbnRhaW5lcigkbWF4LXdpZHRoOiBpbmhlcml0KTtcbiAgICAgICAgd2lkdGg6IDc1JSAhaW1wb3J0YW50O1xuICAgICAgICBsZWZ0OiAkbW9iaWxlLWd1dHRlci13aWR0aCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBtZWRpYSAjeyRzbWFsbC1vbmx5fSB7XG4gICAgICAgIC5idXR0b24ge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjc1cmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjc1cmVtICFpbXBvcnRhbnQ7IFxuICAgICAgICB9XG4gICAgfVxufVxuXG4jY29tcGFyZS1oZWFkZXItZHJvcGRvd24ge1xuICAgIEBpbmNsdWRlIGRyb3Bkb3duLWNvbnRhaW5lcihcbiAgICAgICAgJG1heC13aWR0aDogcmVtLWNhbGMoMjUwKVxuICAgICk7XG5cbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRnYWluc2Jvcm8gIWltcG9ydGFudDtcblxuICAgICY6YmVmb3JlLCAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogdW5zZXQ7IC8vIHRvIGdldCByaWQgb2YgcG9pbnRlciB0cmlhbmdsZVxuICAgIH1cbn1cblxuLmxvY2tlZC1jZWxsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUFGMEYxO1xuICAgIG1pbi1oZWlnaHQ6IDcwcHg7XG5cbiAgICBAbWVkaWEgI3skc21hbGwtb25seX0ge1xuICAgICAgICAucHJlbWl1bS1sb2NrZWQtdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLnByZW1pdW0tbG9ja2VkLWJ1dHRvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9ICAgXG4gICAgfVxuXG4gICAgQG1lZGlhICN7JG1lZGl1bS11cH0ge1xuICAgICAgICAucHJlbWl1bS1sb2NrZWQtYnV0dG9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICA6aG92ZXIgPiAmIHtcbiAgICAgICAgICAgIC5wcmVtaXVtLWxvY2tlZC10ZXh0IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucHJlbWl1bS1sb2NrZWQtYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IFxuICAgIH1cbn1cblxuLmRvbnV0LXBlcmNlbnQtY2VsbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZG9udXQtcGVyY2VudC1jZWxsLXRleHQge1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLmNoYXJ0LWNlbGxfX21heC1pbnRlcmlvci13aWR0aCB7XG4gICAgbWF4LXdpZHRoOiByZW0tY2FsYygyMjUpO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbiIsIi5jb21wYXJlLXRhYmxlLWJ1dHRvbnMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDE3MHB4O1xuICAgIGxlZnQ6IDBweDtcbiAgICByaWdodDogMHB4O1xuICAgIGhlaWdodDogMHB4O1xufVxuXG4uY29tcGFyZS10YWJsZS1idXR0b25zLmlzLWZpeGVkIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogMHB4O1xuICAgIHJpZ2h0OiAwcHg7XG4gICAgaGVpZ2h0OiAwcHg7XG59XG5cbi5jb21wYXJlLXRhYmxlLWJ1dHRvbnMuaXMtYWJzb2x1dGUtYm90dG9tIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiB1bnNldDtcbiAgICBib3R0b206IDE1MHB4O1xufVxuXG4uY29tcGFyZS1jb2wtc2Nyb2xsLWJ1dHRvbi1sZWZ0IHtcbiAgICBsZWZ0OiAwcHg7XG59XG5cbi5jb21wYXJlLWNvbC1zY3JvbGwtYnV0dG9uLXJpZ2h0IHtcbiAgICByaWdodDogMHB4OyBcbn1cblxuLmNvbXBhcmUtY29sLXNjcm9sbC1idXR0b24tbGVmdCxcbi5jb21wYXJlLWNvbC1zY3JvbGwtYnV0dG9uLXJpZ2h0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IHJlbS1jYWxjKDQwKTtcbiAgICBoZWlnaHQ6IHJlbS1jYWxjKDYwKTtcbiAgICBvcGFjaXR5OiAwLjc7XG4gICAgYmFja2dyb3VuZDogJGpldDtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygtMzApO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cztcblxuICAgICY6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgfVxufVxuXG4ubmF2LWFycm93IHtcblx0bWFyZ2luLXRvcDogcmVtLWNhbGMoMTQpOyAvLyAwLjg3NXJlbVxuICAgIGZpbGw6ICR3aGl0ZTtcbn1cblxuI2Fycm93LWxlZnQge1xuXHQtbXMtdHJhbnNmb3JtOiByb3RhdGUoLTE4MGRlZyk7XG5cdC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTE4MGRlZyk7XG5cdHRyYW5zZm9ybTogcm90YXRlKC0xODBkZWcpO1xufVxuXG4jYXJyb3ctcmlnaHQge1xuXHRtYXJnaW4tbGVmdDogcmVtLWNhbGMoNSk7XG59XG4iLCIucmFpbC1hcHB0LWJsb2NrIHtcbiAgICAmLnNwb25zb3JlZCB7XG4gICAgICAgIC5yYWlsLWFwcHQtYmxvY2stLWVsbGlwc2lzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAwJSwgJHNtb2tlLWdyYXkgMzAlKSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIGJhY2tncm91bmQ6ICRzbW9rZS1ncmF5O1xuICAgIH1cbiAgICBib3JkZXI6IDFweCBzb2xpZCAjREREREREO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIC5yYWlsLWFwcHQtYmxvY2stLW1haW4ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuICAgIC5yYWlsLWFwcHQtYmxvY2stLWltYWdlIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI0RERERERDtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgfVxuICAgIC5yYWlsLWFwcHQtYmxvY2stLWNvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIHBhZGRpbmc6IDAgMC45Mzc1cmVtO1xuICAgIH1cbiAgICAucmFpbC1hcHB0LWJsb2NrLS10aXRsZSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDQ4cHg7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbiAgICAucmFpbC1hcHB0LWJsb2NrLS1lbGxpcHNpcyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAwJSwgd2hpdGUgMzAlKTtcbiAgICB9XG4gICAgLnJhaWwtYXBwdC1ibG9jay0tYXBwdC1idXR0b24ge1xuICAgICAgICBwYWRkaW5nOiAzcHggMTBweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cbiAgICAgICAgKiB7XG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIH1cbiAgICAgICAgYmFja2dyb3VuZDogIzJjN2VmMDtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMjI2MmJiO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLnpvY2RvYy1pbm5lciB7XG4gICAgKixcbiAgICAuY29udHJvbC1wcmltaXRpdmVzX19EZXNrdG9wU3R5bGVkRGF0ZS1ieU1xTk8sXG4gICAgLlJhZGlvX19SYWRpb1RleHQta0FNVHdzIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFJvYm90bywgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZiAhaW1wb3J0YW50O1xuICAgICAgICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcbiAgICB9XG4gICAgKjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLnpvY2RvYy1oZWFkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLkNyZWF0ZVJlc3BvbnNpdmVTdHlsZWRDb21wb25lbnRfX1Jlc3BvbnNpdmVDb250YWluZXItYnFRSVh0IHtcbiAgICAgICAgbWluLXdpZHRoOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5mZUx3Y3c6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXI6IDAgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5mZUx3Y3c6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlcjogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAuRHJvcGRvd25XcmFwcGVyX19Ecm9wZG93bi1nWmNuTFIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIEBpbmNsdWRlIGJldHdlZW4oYnAtc21hbGwsIGJwLXNtYWxsLXdpZGVzdCkge1xuICAgICAgICAgICAgZm9udC1zaXplOiA1MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLkRyb3Bkb3duV3JhcHBlcl9fU2VsZWN0R3JvdXAtZVBtWlVpIHtcbiAgICAgICAgYm9yZGVyOiAwcHggIWltcG9ydGFudDtcbiAgICB9XG4gICAgLkRyb3Bkb3duV3JhcHBlcl9fRmF1eFNlbGVjdC1pbGN4a2sge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgLW1vei1hcHBlYXJhbmNlOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmEgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZOKApkoyWlNJK1BIQnZiSGxuYjI0Z2NHOXBiblJ6UFNJMUxqazVNaXd3SURJdU9Ua3lMRE1nTFRBdU1EQTRMREFnSWk4K1BDOXpkbWMrJyksXG4gICAgICAgICAgICAtd2Via2l0LWxpbmVhci1ncmFkaWVudCg5MGRlZywgI2VjZWNlYyAwLCAjZmZmIDEwMCUpICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItd2lkdGg6IDFweCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItY29sb3I6ICNjY2M7XG4gICAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNzUpICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbSAhaW1wb3J0YW50O1xuICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDIuNjI1cmVtICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5Ecm9wZG93bldyYXBwZXJfX0Fycm93LWVyY2ZaUyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDE2cHggIWltcG9ydGFudDtcbiAgICB9XG4gICAgLmNvbnRlbnQtcHJpbWl0aXZlc19fRGVza3RvcE5leHRBdmFpbGFiaWxpdHlMaW5rLWpSTmpXRSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlYmViZWIgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjZGNkZmU4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiAjMzMzMzMzICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItd2lkdGg6IDAuMDYyNXJlbSAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItdG9wLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDAuMTg3NXJlbSAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAwLjk2ODc1cmVtIDEuNzVyZW0gMC43MTg3NXJlbSAxLjc1cmVtICFpbXBvcnRhbnQ7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlLW91dCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgZm9udC1mYW1pbHk6IFJvYm90bywgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZiAhaW1wb3J0YW50O1xuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkY2RmZTggIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogI2RjZGZlOCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgY29sb3I6ICMzMzMgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5Db250cm9sc0FuZENvbnRlbnRfX0Rlc2t0b3BUaW1lc0dyaWRDb250cm9scy1jQU5oUk8ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZWVlZWVlO1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAuY29udHJvbC1wcmltaXRpdmVzX19EZXNrdG9wU3R5bGVkRGF5LWhqaXZoZyB7XG4gICAgICAgIGNvbG9yOiAjMjIyMjIyICFpbXBvcnRhbnQ7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICB9XG4gICAgLmNvbnRyb2wtcHJpbWl0aXZlc19fRGVza3RvcFN0eWxlZERhdGUtYnlNcU5PIHtcbiAgICAgICAgY29sb3I6ICMyMjIyMjIgIWltcG9ydGFudDtcbiAgICAgICAgZm9udC1mYW1pbHk6IFJvYm90bywgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZiAhaW1wb3J0YW50O1xuICAgICAgICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcbiAgICB9XG4gICAgLmRTTG5hSTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICBjb2xvcjogIzJjN2VmMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAvLyBibHVlIGJ1dHRvblxuICAgIC5jb250ZW50LXByaW1pdGl2ZXNfX0Rlc2t0b3BTbG90LWdHWG9qdSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzE1NTJhOCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItd2lkdGg6IDAuMDYyNXJlbTtcbiAgICAgICAgYm9yZGVyLXRvcC13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwLjE4NzVyZW0gIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMC45Njg3NXJlbSAxLjc1cmVtIDAuNzE4NzVyZW0gMS43NXJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4ICFpbXBvcnRhbnQ7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLy8gd2hpdGUgYnV0dG9uXG4gICAgLmNvbnRlbnQtcHJpbWl0aXZlc19fRGVza3RvcFNsb3QtZU94eHNJIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6ICMyYzdlZjAgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzJjN2VmMCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjE4NzVyZW0gIWltcG9ydGFudDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuICAgIC56b2Nkb2MtaGVhZCB7XG4gICAgICAgIC5XaWRnZXRBcHBXcmFwcGVyLWJwU3JlSiB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLlJhZGlvX19SYWRpb0NvbnRhaW5lci1mWkFORXQge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxNTBweCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIC5SYWRpb19fUmFkaW9UZXh0LWtBTVR3cyB7XG4gICAgICAgICAgICBjb2xvcjogIzU1NSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIC5SYWRpb19fUmFkaW9CdXR0b24tZ2F5RWZTIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgaW5wdXRbdHlwZT0ncmFkaW8nXSB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxN3B4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxN3B4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYmV0d2VlbihicC1zbWFsbCwgYnAtc21hbGwtd2lkZXN0KSB7XG4gICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgQGV4dGVuZCAuZm9ybS1jb250cm9sLWluZGljYXRvcjtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyMjYyYmIgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMyMjYyYmIgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejROQ2p3aExTMGdSMlZ1WlhKaGRHOXlPaUJCWkc5aVpTQkpiR3gxYzNSeVlYUnZjaUF4Tnk0eExqQXNJRk5XUnlCRmVIQnZjblFnVUd4MVp5MUpiaUF1SUZOV1J5QldaWEp6YVc5dU9pQTJMakF3SUVKMWFXeGtJREFwSUNBdExUNE5DandoUkU5RFZGbFFSU0J6ZG1jZ1VGVkNURWxESUNJdEx5OVhNME12TDBSVVJDQlRWa2NnTVM0eEx5OUZUaUlnSW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTDBkeVlYQm9hV056TDFOV1J5OHhMakV2UkZSRUwzTjJaekV4TG1SMFpDSStEUW84YzNabklIWmxjbk5wYjI0OUlqRXVNU0lnYVdROUlreGhlV1Z5WHpFaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2VHMXNibk02ZUd4cGJtczlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1RrdmVHeHBibXNpSUhnOUlqQndlQ0lnZVQwaU1IQjRJZzBLQ1NCMmFXVjNRbTk0UFNJd0lEQWdPQ0E0SWlCbGJtRmliR1V0WW1GamEyZHliM1Z1WkQwaWJtVjNJREFnTUNBNElEZ2lJSGh0YkRwemNHRmpaVDBpY0hKbGMyVnlkbVVpUGcwS1BIQmhkR2dnWm1sc2JEMGlJMFpHUmtaR1JpSWdaRDBpVFRRc01VTXlMak1zTVN3eExESXVNeXd4TERSek1TNHpMRE1zTXl3emN6TXRNUzR6TERNdE0xTTFMamNzTVN3MExERjZJaTgrRFFvOEwzTjJaejROQ2c9PScpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuUmFkaW9fX1JhZGlvSWNvbi1rTmdYS24sXG4gICAgICAgICAgICAuUmFkaW9fX1JhZGlvSWNvbi1lTXVOSkwge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuem9jZG9jLWJvZHkge1xuICAgICAgICAuV2lkZ2V0QXBwV3JhcHBlci1icFNyZUoge1xuICAgICAgICAgICAgQGV4dGVuZCAuYmxvY2stbG9vc2VyO1xuICAgICAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGRkZGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLlBhcnRuZXJUaW1lc0dyaWRfX092ZXJmbG93Um93LWtwU3VqeiB7XG4gICAgICAgIHBhZGRpbmc6IDAgMXJlbSAxcmVtIDFyZW07XG4gICAgfVxuICAgIC5Ecm9wZG93bldyYXBwZXJfX1NlbGVjdGVkR3JvdXAtZmRQUFRuIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbiAgICAgICAgLkRyb3Bkb3duV3JhcHBlcl9fU2VsZWN0ZWRUZXh0LWV0ZFV2SiB7XG4gICAgICAgICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjc1KSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBwYWRkaW5nOiA4cHggMTZweCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiXG4uY2hlY2tsaXN0LWl0ZW0ge1xuICAgIC8qIEluY29tcGxldGVkIGNoZWNrbGlzdCBpdGVtIHRleHQgYmFzZSBzdGF0ZSAqL1xuICAgICYgPiBhID4gc3BhbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHRleHQtc21hbGw7XG4gICAgICAgIGNvbG9yOiAkb2lsO1xuICAgIH1cblxuICAgIC8qIENvbXBsZXRlZCBjaGVja2xpc3QgaXRlbSB0ZXh0IGJhc2Ugc3RhdGUgKi9cbiAgICAmLmlzLWNvbXBsZXRlZCA+IGEgPiBzcGFuIHtcbiAgICAgICAgY29sb3I6ICRhbHVtaW51bTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgfVxuXG4gICAgLyogQ2hlY2tsaXN0IGl0ZW0gdGV4dCBiYXNlIGhvdmVyIHN0YXRlICovXG4gICAgJiA+IGEgPiBzcGFuOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICRvaWw7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgIH1cblxuICAgIC8qIENoZWNrbGlzdCBpdGVtIHdyYXBwZXIgYmFzZSBob3Zlcjo6YWZ0ZXIgc3RhdGUgKi9cbiAgICAmID4gYTpob3Zlcjo6YWZ0ZXIge1xuICAgICAgICBmb250LXNpemU6ICR0ZXh0LXNtYWxsZXN0O1xuICAgICAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW1lZGl1bS1ib2xkO1xuICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKCdsZWZ0JywgJ3RpZ2h0Jyk7XG4gICAgfVxuXG4gICAgLyogQ29tcGxldGVkIGNoZWNrbGlzdCBpdGVtIHdyYXBwZXIgaG92ZXI6OmFmdGVyIHN0YXRlICovXG4gICAgJi5pcy1jb21wbGV0ZWQgPiBhOmhvdmVyOjphZnRlciB7XG4gICAgICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICdJTkNPTVBMRVRFJztcbiAgICAgICAgICAgIGNvbG9yOiAkcmVkLWNvbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIEluY29tcGxldGVkIGNoZWNrbGlzdCBpdGVtIHdyYXBwZXIgaG92ZXI6OmFmdGVyIHN0YXRlICovXG4gICAgJjpub3QoLmlzLWNvbXBsZXRlZCkgPiBhOmhvdmVyOjphZnRlciB7XG4gICAgICAgIEBtZWRpYSAjeyRtZWRpdW0tdXB9IHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICdDT01QTEVURUQnO1xuICAgICAgICAgICAgY29sb3I6ICRncmVlbi1wcm87XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jaGVja2xpc3Qge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICYuaXMtY29tcGxldGVkID4gLmlzLWNvbXBsZXRlZC1vdmVybGF5IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICB9XG5cbiAgICAmLmlzLWNvbXBsZXRlZCA+IC5jaGVja2xpc3QtaXRlbSA+IGEgPiBzcGFuIHtcbiAgICAgICAgY29sb3I6ICRhbHVtaW51bTtcbiAgICB9XG59XG5cbi5hY3RpdmUtdGFiLWFycm93IHtcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDonJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC02cHg7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICB6LWluZGV4OjE7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgNnB4ICNmZmY7XG4gICAgICAgIGJvcmRlci1sZWZ0OiBzb2xpZCA2cHggdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1yaWdodDogc29saWQgNnB4IHRyYW5zcGFyZW50O1xuICAgIH1cbn1cbiIsIi5jb21wYXNzLWNoZWNrb3V0LXBheW1lbnQge1xuXG5cdCYuY3JlZGl0LWNhcmQtaW1nIHtcblx0XHRtYXJnaW4tcmlnaHQ6MTZweDtcblx0fVxuXG5cdC5wYXlwYWwtcmFkaW8tZGlhbCB7XG5cdFx0dG9wOjEycHg7XG5cdH1cbn0iLCIuYWR2aXNvci1vdmVydmlldy1pbWFnZSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1sZWZ0OiByZW0tY2FsYygxMCk7XG4gICAgbWF4LXdpZHRoOiAxNTBweDtcbn1cblxuXG4ucG9wdWxhci1hZHZpc29yLXNlYXJjaGVzIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuOTM3NXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG59XG4iLCIuYmxvY2stbGluayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkZ2FpbnNib3JvO1xufVxuXG4uam9iLWFsZXJ0cy1uZXdzbGV0dGVyLWhlYWRpbmcge1xuICAgIEBpbmNsdWRlIGZyb20oYnAtbWVkaXVtKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMi4yNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSB0byhicC1tZWRpdW0pIHtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xufVxuXG4vLyBSZXNpemUgYWxsIG9mIHRoZSB6aXByZWNydWl0ZXIgbG9nb3Ncbi8vIElzIHRoaXMgdG9vIGxhenk/XG5pbWdbc3JjPVwiL3N0YXRpYy9pbWcvcGFydG5lcnMvcG93ZXJlZC1ieS16aXByZWNydWl0ZXIucG5nXCJdIHtcbiAgICBoZWlnaHQ6IDM1cHggIWltcG9ydGFudDtcbn1cblxuXG4uam9icy1yYW5raW5nLWFydGljbGUge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICRnYWluc2Jvcm87XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcblxuICAgIGltZyB7XG4gICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAxMHB4O1xuICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAxMHB4O1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdhaW5zYm9ybztcbiAgICB9XG5cbiAgICBoNCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgLXdlYmtpdC1hbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAtbW96LWFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xuICAgICAgICAtd2Via2l0LWp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XG4gICAgICAgIC1tb3otanVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgY29sb3I6ICRsaW5rLWJsdWUtbGlnaHQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgICAgaGVpZ2h0OiA1cmVtO1xuXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICAgJiA+IGEge1xuICAgICAgICAgICAgd2lkdGg6IDg1JTtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5mdG4tbGFuZGluZy1zdWItbmF2IHVsIHtcbiAgICBvdmVyZmxvdy14OiBhdXRvICFpbXBvcnRhbnQ7XG59XG5cbi5sYXJnZXN0LWNvbGxlZ2VzLWFzaWRlIHtcbiAgICBtaW4td2lkdGg6IDI1MHB4O1xufVxuXG4uZnRuLWZvb3Rlci1zZWxlY3Qge1xuICAgICYgPiBoNiB7XG5cbiAgICAgICAgQGluY2x1ZGUgdG8oYnAtbWVkaXVtKSB7XG5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGZyb20oYnAtbGFyZ2UpIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJiA+IGRpdiB7XG5cbiAgICAgICAgQGluY2x1ZGUgdG8oYnAtbWVkaXVtKSB7XG5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGZyb20oYnAtbGFyZ2UpIHtcbiAgICAgICAgICAgd2lkdGg6IDQxMHB4O1xuICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cbiIsIi50YWJiZWQge1xuICAgIC50YWIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgcGFkZGluZzogMCAyMHB4O1xuXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICBoZWlnaHQ6IDQwcHg7XG5cbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlLWRhcms7XG5cbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAmLnRhYi1hY3RpdmUge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICRsaW5rLWJsdWUtbGlnaHQ7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnRhYi1jb250ZW50IHtcbiAgICAgICAgYmFja2dyb3VuZDogJGJsdWUtZGFyaztcbiAgICB9XG59XG5cblxuLnRhYmJlZC1oZXJvIHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcblxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG5cbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWF4LXdpZHRoOiA2MC42MjVyZW07XG5cbiAgICBjb2xvcjogJHdoaXRlO1xuXG4gICAgQGluY2x1ZGUgZnJvbShicC1tZWRpdW0pIHtcbiAgICAgICAgbWFyZ2luOiA0MHB4IGF1dG87XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgdG8oYnAtbWVkaXVtKSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRnYWluc2Jvcm8gIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6IGJsYWNrO1xuICAgIH1cblxuICAgIC50YWJiZWQtaGVyby1oZWFkaW5nIHtcbiAgICAgICAgZm9udC1zaXplOiAyLjI1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOjEwcHg7XG5cbiAgICAgICAgQGluY2x1ZGUgZnJvbShicC1tZWRpdW0pIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiA0MHB4O1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDBweCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC50YWJiZWQtaGVyby1ibHVyYiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbToyMHB4O1xuXG4gICAgICAgIEBpbmNsdWRlIHRvKGJwLW1lZGl1bSkge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgIGNvbG9yOiAkc3RlZWw7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bSkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTozMHB4O1xuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDBweCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC50YWItY29udGVudCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxLjVyZW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxLjVyZW07XG5cbiAgICAgICAgbWluLWhlaWdodDogMTM0cHg7XG5cbiAgICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgICAgICBAaW5jbHVkZSBmcm9tKGJwLW1lZGl1bSkge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICAgICAgLXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogM3B4O1xuICAgICAgICAgICAgICAgIC13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDNweDtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogM3B4O1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAzcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzZWxlY3QsIGlucHV0W3R5cGU9XCJ0ZXh0XCJdIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuMTI1cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cbi5zZWUtbW9yZS1zeW1ib2wge1xuICAgIHdpZHRoOiAxMHB4O1xuICAgIGhlaWdodDogOXB4O1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAmLnNlZS1tb3JlLXBsdXMge1xuICAgICAgICBsaW5lLWhlaWdodDogOHB4O1xuICAgIH1cblxuICAgICYuc2VlLW1vcmUtbWludXMge1xuICAgICAgICBsaW5lLWhlaWdodDogNnB4O1xuICAgIH1cblxuICAgICYuc2VlLW1vcmUtaGlkZGVuIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbn1cbiIsIi5yZXRpcmVtZW50LWNhbGMtdG9vbHRpcC1wb3B1cCB7XG4gICAgd2lkdGg6IDQwMHB4O1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAtMjBweDtcblxuICAgIEBpbmNsdWRlIHRvKGJwLW1lZGl1bSkge1xuICAgICAgICB3aWR0aDogMTAwdnc7XG4gICAgICAgIHJpZ2h0OiAtNTBweDtcbiAgICB9XG59XG4iLCIubG9nby1icmlnaHRob3VzZSB7XG5cbiAgICBoZWlnaHQ6NDBweDtcblxuICAgIGltZyB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbn1cbiIsIi8vIEZvciB1c2Ugd2l0aCBqUXVlcnkgVUkgQXV0b2NvbXBsZXRlIHN1bW1vbnMgaW4ganMvYXBwL3JlYWxlc3RhdGUvYXV0b2NvbXBsZXRlLmpzXG5cbi51aS1hdXRvY29tcGxldGUudWktc2VhcmNoLXJlc3VsdHMge1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG4gICAgei1pbmRleDogMTYwMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWF4LWhlaWdodDogMzA4cHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYjZiNmI2O1xuICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG4gICAgY29sb3I6ICMzMzM7XG5cbiAgICAudWktbWVudS1pdGVtIHtcbiAgICAgICAgY29sb3I6ICRvaWw7XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAudWktbWVudS1pdGVtLXdyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICB9XG4gICAgICAgIC8vIG1vdXNlIGhvdmVyLCBrZXlib2FyZCBmb2N1c1xuICAgICAgICAudWktbWVudS1pdGVtLXdyYXBwZXI6aG92ZXIsIC51aS1tZW51LWl0ZW0td3JhcHBlci51aS1zdGF0ZS1hY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2Q3ZjBmZTtcbiAgICAgICAgICAgIGNvbG9yOiAkbGluay1ibHVlLWxpZ2h0O1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICB9XG5cbn0iLCIvLyBDMyBjaGFydHMgZm9yIHVzZSB3aXRoIGFwcC9yZWFsZXN0YXRlL2NoYXJ0cy5qc1xuXG4uYzMtYXhpcyB7IGZpbGw6ICNhYWEgfVxuLmMzLWF4aXMgcGF0aCB7IHN0cm9rZTogI2JiYiAhaW1wb3J0YW50OyB9XG4uYzMtYXhpcyAudGljayBsaW5lIHsgc3Ryb2tlOiAjYmJiIH1cblxuLy8gR2F1Z2VzXG4uZ2F1Z2UtY2hhcnQge1xuICBtYXJnaW4tcmlnaHQ6YXV0bzsgbWFyZ2luLWxlZnQ6YXV0bzsgdGV4dC1hbGlnbjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tOyBtaW4taGVpZ2h0OiAxOTBweDsgbWF4LXdpZHRoOiAxOTJweDtcbiAgc3ZnIC5jMy1nYXVnZS12YWx1ZSB7IGZvbnQtc2l6ZTogMjFweCAhaW1wb3J0YW50OyBmaWxsOiAkcHJpbWFyeS1jb2xvciAhaW1wb3J0YW50OyBmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50IH1cbiAgc3ZnIC5jMy1jaGFydC1hcmNzIC5jMy1jaGFydC1hcmNzLWJhY2tncm91bmQgeyBmaWxsOiAkYmFja2dyb3VuZC1ibHVlIH1cbn1cbi5nYXVnZS1jaGFydC1tYXJrZXIgeyBtYXJnaW4tYm90dG9tOiAtMzJweDsgZmlsbDogJGdyZWVuLXBybyB9IiwiLnNob3ctb24tc3VjY2VzcywgLnNob3ctb24tZXJyb3Ige1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4iLCIvLyBIZWFkZXIgYW5kIEZvb3RlciBzdHlsZXMgYXJlIG5lZWRlZCBpbiBTdGF0ZSBBUCBGZWVkcywgZXg6IGB1c25ld3MuY29tL25ld3MvYWxhc2thYFxuLy8gdGhpcyBwYXJ0aWFsIGlzIGltcG9ydGVkIGluIG1haW4uc2NzcyBhbmQgc3RhdGVzLnNjc3NcblxuLy8gSGVhZGVyIEZvb3RlciBTdHlsZXMgZm9yIEJlc3QgU3RhdGVzXG4kaGVhZGVyZm9vdGVyLWNvbG9yOiAjMTcyMjJlO1xuJGhlYWRlcmZvb3Rlci10ZXh0LWFjY2VudC1jb2xvcjogIzQ4NTY2YjtcbiRjb3B5cmlnaHQtdGV4dC1jb2xvcjogIzc0N2E4MjtcbiRoZWFkZXJmb290ZXItdGV4dC1hY2NlbnQtaG92ZXItY29sb3I6ICNhOGIyYjY7XG4kbWVnYWZvb3Rlci1jb2xvcjogIzFiMzA0NTtcbiRtZWdhZm9vdGVyLXRleHQtYWNjZW50LWNvbG9yOiAjYjhjZWUyO1xuJGxlYWRlcmJvYXJkLWJhY2tncm91bmQ6ICMyMTNhNTU7XG4kb2ZmY2FudmFzLWJhY2tncm91bmQ6ICMxODJmNDU7XG5cbi5mb250LXdlaWdodC1saWdodCB7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1saWdodCAhaW1wb3J0YW50O1xufVxuXG4uZm9udC13ZWlnaHQtbm9ybWFsIHtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhaW1wb3J0YW50O1xufVxuXG4uZm9udC13ZWlnaHQtbWVkaXVtIHtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW1lZGl1bSAhaW1wb3J0YW50O1xufVxuXG4udGV4dC1kYXJrLW5hdnktYmx1ZSxcbmEudGV4dC1kYXJrLW5hdnktYmx1ZSB7XG4gICAgY29sb3I6ICRoZWFkZXJmb290ZXItdGV4dC1hY2NlbnQtY29sb3I7XG59XG5cbmEudGV4dC1kYXJrLW5hdnktYmx1ZTpob3ZlciB7XG4gICAgY29sb3I6ICRoZWFkZXJmb290ZXItdGV4dC1hY2NlbnQtaG92ZXItY29sb3IgIWltcG9ydGFudDtcbn1cblxuLnRleHQtbGlnaHQtYmx1ZSB7XG4gICAgY29sb3I6ICRtZWdhZm9vdGVyLXRleHQtYWNjZW50LWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1saWdodDtcbn1cblxuYS50ZXh0LWxpZ2h0LWJsdWU6aG92ZXIge1xuICAgIG9wYWNpdHk6IDAuNzU7XG59XG5cbi5kZWVwLW5hdnktYmx1ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGhlYWRlcmZvb3Rlci1jb2xvcjtcbn1cblxuLmhhenktYmx1ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG9mZmNhbnZhcy1iYWNrZ3JvdW5kO1xufVxuXG4ubmF2eS1ibHVlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWVnYWZvb3Rlci1jb2xvcjtcbn1cblxuLmxpZ2h0LW5hdnktYmx1ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGxlYWRlcmJvYXJkLWJhY2tncm91bmQ7XG59XG5cbi52ZXJ0aWNhbC1hbGlnbi1taWRkbGUge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbmhlYWRlciAubmF2eS1ibHVlIHtcblxuICAgIG5hdiB7XG4gICAgICAgIGhlaWdodDogcmVtLWNhbGMoNzUpO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbS1jYWxjKDE1KTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogcmVtLWNhbGMoMTUpO1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICB3aWR0aDogcmVtLWNhbGMoNjApO1xuICAgICAgICB9XG5cbiAgICAgICAgLnRpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZnJvbShicC1tZWRpdW0td2lkZXIpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMHB4O1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgZnJvbShicC1tZWRpdW0pIHtcbiAgICAgICAgICAgIGhlaWdodDogcmVtLWNhbGMoMTEwKTtcblxuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogcmVtLWNhbGMoMTAwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmhlYWRlci1saW5rcyBhLnRleHQtbGlnaHQtYmx1ZTpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgLTJweCAwIDAgJHdoaXRlO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5oZWFkZXItbGlua3MgbGk6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDMwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnRpdGxlIHtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRoZWFkaW5nLWxhcmdlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5oZWFkZXItbGlua3MgbGkge1xuICAgICAgICBtYXJnaW4tbGVmdDogcmVtLWNhbGMoMjQpO1xuICAgICAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoOSk7XG4gICAgfVxuXG4gICAgdWwub2ZmLWNhbnZhcy1saXN0IGxpIGxhYmVsIHtcbiAgICAgICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDQpO1xuICAgIH1cblxuICAgIHVsLm9mZi1jYW52YXMtbGlzdCBsaSBsYWJlbCxcbiAgICAucmlnaHQtc3VibWVudSAuYmFjayA+IGEge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb2ZmY2FudmFzLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgdWwub2ZmLWNhbnZhcy1saXN0IGEub2ZmLWNhbnZhcy1saXN0X19oZWFkZXIge1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XG4gICAgICBwYWRkaW5nLXRvcDogMHB4O1xuICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG4gICAgfVxuXG4gICAgdWwub2ZmLWNhbnZhcy1saXN0IGxpIGEge1xuICAgICAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoNyk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0tY2FsYygxMCk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzEzMjYzNztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5yaWdodC1zdWJtZW51IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9mZmNhbnZhcy1iYWNrZ3JvdW5kO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICRtZWdhZm9vdGVyLXRleHQtYWNjZW50LWNvbG9yO1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHVsIGxpIGEge1xuICAgICAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoNSkgcmVtLWNhbGMoMTUpIHJlbS1jYWxjKDUpIHJlbS1jYWxjKDQwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5yaWdodC1vZmZjYW52YXMtbWVudSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvZmZjYW52YXMtYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAucmlnaHQtb2ZmLWNhbnZhcy10b2dnbGUge1xuICAgICAgICB6LWluZGV4OiAxMDA1O1xuICAgIH1cblxuICAgIC50ZXh0LWxpZ2h0LWJsdWUuaGVhZGVyX19zZWNvbmRhcnktdGl0bGUge1xuICAgICAgICBvcGFjaXR5OiAuNzU7XG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICNiOGNlZTIhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIGE6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZSFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5tZWdhLW1lbnUtY29udGFpbmVyIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xufVxuXG5mb290ZXIgLmRlZXAtbmF2eS1ibHVlIHtcbiAgICBjb2xvcjogJGNvcHlyaWdodC10ZXh0LWNvbG9yO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICBhIHtcbiAgICAgICAgY29sb3I6ICRjb3B5cmlnaHQtdGV4dC1jb2xvcjtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5pbWcuZm9vdGVyLWxvZ28ge1xuICAgIHdpZHRoOiByZW0tY2FsYygxMjUpO1xuICAgIEBpbmNsdWRlIGZyb20oYnAtbWVkaXVtKSB7XG4gICAgICAgIHdpZHRoOiByZW0tY2FsYygxNzUpO1xuICAgIH1cbn1cblxuLm1lZ2Fmb290ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRtZWdhZm9vdGVyLWNvbG9yO1xuICAgIGNvbG9yOiAkd2hpdGU7XG5cbiAgICBhIHtcbiAgICAgICAgY29sb3I6ICRtZWdhZm9vdGVyLXRleHQtYWNjZW50LWNvbG9yO1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgICBmaWxsOiAkbWVnYWZvb3Rlci10ZXh0LWFjY2VudC1jb2xvcjtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGZpbGw6ICR3aGl0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ib3JkZXItbGVmdC1mb3ItbGFyZ2UtdXAge1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRoZWFkZXJmb290ZXItY29sb3IgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5zdGF0ZXMtbGVhZGVyYm9hcmQubGVhZGVyYm9hcmQtYS1jb250YWluZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRsZWFkZXJib2FyZC1iYWNrZ3JvdW5kO1xufVxuXG4uc3RhdGUtdmlkZW8tY29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjMWMzMDQ1O1xuICAgIC52aWRlby1uZXh0LWJ1dHRvbiB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNkYmRlZTIgMCUsICNhMWIzYzYgNjUlKTtcbiAgICB9XG4gICAgJl9fdmlkZW8tdGl0bGUge1xuICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgcGFkZGluZy10b3A6IDQwcHg7XG4gICAgfVxufVxuXG4vLy0tLS0gU2VsZWN0IHN0eWxlcyBjb3BpZWQgZnJvbSBAbWl4aW4gaW1hZ2VzLWVjbGlwc2UoKSAtLS0tXG4vLyBCYWNrZ3JvdW5kIEltYWdlc1xuLmJhY2tncm91bmQtY2VudGVyIHtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCU7XG4gIGJhY2tncm91bmQtc2l6ZTogNDclO1xuICB3aWR0aDogMTAwJTtcbn1cblxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztFQU1FO0FDTEY7OztHQUdHO0FEYUgsT0FBTyxDQUFDLHlIQUFJO0FDWlosQUFBQSxZQUFZO0FBQ1osQUFBYSxZQUFELENBQUMsQ0FBQyxDQUFDO0VBQ2YscUJBQXFCLEVBQUUsSUFBSztFQUM1QixtQkFBbUIsRUFBRSxJQUFLO0VBQzFCLGdCQUFnQixFQUFFLElBQUs7RUFDdEIsWUFBWSxFQUFFLElBQUs7RUFDcEIsZUFBZSxFQUFFLElBQUs7RUFDdEIsZ0JBQWdCLEVBQUUsSUFBSztFQUN0QixXQUFXLEVBQUUsSUFBSztFQUNuQixlQUFlLEVBQUUsVUFBVztFQUMzQixVQUFVLEVBQUUsVUFBVyxHQUN2Qjs7QUFDRCxBQUFBLFlBQVksQ0FBQztFQUNaLFFBQVEsRUFBRSxRQUFTO0VBQ25CLFNBQVMsRUFBRSxHQUFJLEdBQ2Y7O0FBQ0QsQUFBQSxVQUFVLENBQUM7RUFDVixLQUFLLEVBQUUsSUFBSztFQUNaLE1BQU0sRUFBRSxJQUFLO0VBQ2IsUUFBUSxFQUFFLFFBQVM7RUFDbkIsT0FBTyxFQUFFLENBQUU7RUFBRSxhQUFhLEVBQzFCOztBQUNELEFBQUEsWUFBWSxDQUFDO0VBQ1osUUFBUSxFQUFFLFFBQVM7RUFDbkIsS0FBSyxFQUFFLENBQUU7RUFDVCxHQUFHLEVBQUUsQ0FBRTtFQUNQLElBQUksRUFBRSxDQUFFO0VBQ1IsTUFBTSxFQUFFLENBQUUsR0FDVjs7QUFDRCxBQUFBLFlBQVksQ0FBQztFQUNaLFFBQVEsRUFBRSxRQUFTO0VBQ25CLE9BQU8sRUFBRSxDQUFFLEdBQ1g7O0FBQ0QsQUFBZSxjQUFELENBQUMsWUFBWSxDQUFDO0VBQzVCOzBCQUMwQjtFQUN6QixPQUFPLEVBQUUsRUFBRyxHQUNaOztBQUNE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LGlCOENQSyxDOUNPTCxFQUFFLEU4Q1BLLEE5Q09QLE04Q1BhLEFBQUEsV0FBVyxDOUNPeEIsRUFBRSxFOENGZCxBOUNFWSxZOENGQSxDOUNFQSxFQUFFLEU4Q29DZCxBOUNwQ1ksWThDb0NBLEM5Q3BDQSxFQUFFLEVBbUJWLEFBbkJZLE1BbUJOLENBbkJNLEVBQUUsRThDUGxCLEE5Q09nQixpQjhDUEMsQzlDT0QsRUFBRSxFOENQQyxBOUNPSCxNOENQUyxBQUFBLFdBQVcsQzlDT3BCLEVBQUUsRThDRmxCLEE5Q0VnQixZOENGSixDOUNFSSxFQUFFLEU4Q29DbEIsQTlDcENnQixZOENvQ0osQzlDcENJLEVBQUUsRUFtQmQsQUFuQmdCLE1BbUJWLENBbkJVLEVBQUUsRThDUHRCLEE5Q09vQixpQjhDUEgsQzlDT0csRUFBRSxFOENQSCxBOUNPQyxNOENQSyxBQUFBLFdBQVcsQzlDT2hCLEVBQUUsRThDRnRCLEE5Q0VvQixZOENGUixDOUNFUSxFQUFFLEU4Q29DdEIsQTlDcENvQixZOENvQ1IsQzlDcENRLEVBQUUsRUFtQmxCLEFBbkJvQixNQW1CZCxDQW5CYyxFQUFFLEU4Q1AxQixBOUNPd0IsaUI4Q1BQLEM5Q09PLEVBQUUsRThDUFAsQTlDT0ssTThDUEMsQUFBQSxXQUFXLEM5Q09aLEVBQUUsRThDRjFCLEE5Q0V3QixZOENGWixDOUNFWSxFQUFFLEU4Q29DMUIsQTlDcEN3QixZOENvQ1osQzlDcENZLEVBQUUsRUFtQnRCLEFBbkJ3QixNQW1CbEIsQ0FuQmtCLEVBQUUsRThDUDlCLEE5Q080QixpQjhDUFgsQzlDT1csRUFBRSxFOENQWCxBOUNPUyxNOENQSCxBQUFBLFdBQVcsQzlDT1IsRUFBRSxFOENGOUIsQTlDRTRCLFk4Q0ZoQixDOUNFZ0IsRUFBRSxFOENvQzlCLEE5Q3BDNEIsWThDb0NoQixDOUNwQ2dCLEVBQUUsRUFtQjFCLEFBbkI0QixNQW1CdEIsQ0FuQnNCLENBQUMsRThDUGpDLEE5Q09nQyxpQjhDUGYsQzlDT2UsQ0FBQyxFOENQZCxBOUNPYSxNOENQUCxBQUFBLFdBQVcsQzlDT0osQ0FBQyxFOENGakMsQTlDRWdDLFk4Q0ZwQixDOUNFb0IsQ0FBQyxFOENvQ2pDLEE5Q3BDZ0MsWThDb0NwQixDOUNwQ29CLENBQUMsRUFtQjdCLEFBbkIrQixNQW1CekIsQ0FuQnlCLEVBQUUsRThDUHJDLEE5Q09tQyxpQjhDUGxCLEM5Q09rQixFQUFFLEU4Q1BsQixBOUNPZ0IsTThDUFYsQUFBQSxXQUFXLEM5Q09ELEVBQUUsRThDRnJDLEE5Q0VtQyxZOENGdkIsQzlDRXVCLEVBQUUsRThDb0NyQyxBOUNwQ21DLFk4Q29DdkIsQzlDcEN1QixFQUFFLEVBbUJqQyxBQW5CbUMsTUFtQjdCLENBbkI2QixFQUFFLEU4Q1B6QyxBOUNPdUMsaUI4Q1B0QixDOUNPc0IsRUFBRSxFOENQdEIsQTlDT29CLE04Q1BkLEFBQUEsV0FBVyxDOUNPRyxFQUFFLEU4Q0Z6QyxBOUNFdUMsWThDRjNCLEM5Q0UyQixFQUFFLEU4Q29DekMsQTlDcEN1QyxZOENvQzNCLEM5Q3BDMkIsRUFBRSxDQUFDO0lBQUUsS0FBSyxFM0NoQzNDLE9BQU8sRzJDZ0MyRDtFQW1CcEUsQUFaRSxNQVlJLENBWkosRUFBRSxFOENkUixBOUNjTSxpQjhDZFcsQzlDY1gsRUFBRSxFOENkVyxBOUNjYixNOENkbUIsQUFBQSxXQUFXLEM5Q2M5QixFQUFFLEU4Q1RSLEE5Q1NNLFk4Q1RNLEM5Q1NOLEVBQUUsRThDNkJSLEE5QzdCTSxZOEM2Qk0sQzlDN0JOLEVBQUUsRUFZSixBQVpNLE1BWUEsQ0FaQSxFQUFFLEU4Q2RaLEE5Q2NVLGlCOENkTyxDOUNjUCxFQUFFLEU4Q2RPLEE5Q2NULE04Q2RlLEFBQUEsV0FBVyxDOUNjMUIsRUFBRSxFOENUWixBOUNTVSxZOENURSxDOUNTRixFQUFFLEU4QzZCWixBOUM3QlUsWThDNkJFLEM5QzdCRixFQUFFLEVBWVIsQUFaVSxNQVlKLENBWkksRUFBRSxFOENkaEIsQTlDY2MsaUI4Q2RHLEM5Q2NILEVBQUUsRThDZEcsQTlDY0wsTThDZFcsQUFBQSxXQUFXLEM5Q2N0QixFQUFFLEU4Q1RoQixBOUNTYyxZOENURixDOUNTRSxFQUFFLEU4QzZCaEIsQTlDN0JjLFk4QzZCRixDOUM3QkUsRUFBRSxFQVlaLEFBWmMsTUFZUixDQVpRLEVBQUUsRThDZHBCLEE5Q2NrQixpQjhDZEQsQzlDY0MsRUFBRSxFOENkRCxBOUNjRCxNOENkTyxBQUFBLFdBQVcsQzlDY2xCLEVBQUUsRThDVHBCLEE5Q1NrQixZOENUTixDOUNTTSxFQUFFLEU4QzZCcEIsQTlDN0JrQixZOEM2Qk4sQzlDN0JNLEVBQUUsRUFZaEIsQUFaa0IsTUFZWixDQVpZLEVBQUUsRThDZHhCLEE5Q2NzQixpQjhDZEwsQzlDY0ssRUFBRSxFOENkTCxBOUNjRyxNOENkRyxBQUFBLFdBQVcsQzlDY2QsRUFBRSxFOENUeEIsQTlDU3NCLFk4Q1RWLEM5Q1NVLEVBQUUsRThDNkJ4QixBOUM3QnNCLFk4QzZCVixDOUM3QlUsRUFBRSxFQVlwQixBQVpzQixNQVloQixDQVpnQixFQUFFLEU4Q2Q1QixBOUNjMEIsaUI4Q2RULEM5Q2NTLEVBQUUsRThDZFQsQTlDY08sTThDZEQsQUFBQSxXQUFXLEM5Q2NWLEVBQUUsRThDVDVCLEE5Q1MwQixZOENUZCxDOUNTYyxFQUFFLEU4QzZCNUIsQTlDN0IwQixZOEM2QmQsQzlDN0JjLEVBQUUsQ0FBQztJQUNyQixXQUFXLEVBQUUsQ0FBRTtJQUFFLGFBQWEsRUFBRSxRQUFRLEdBRXpDO0lBU0gsQUFaRSxNQVlJLENBWkosRUFBRSxBQUVDLFVBQVUsRThDaEJuQixBOUNjTSxpQjhDZFcsQzlDY1gsRUFBRSxBQUVDLFVBQVUsRThDWG5CLEE5Q1NNLFk4Q1RNLEM5Q1NOLEVBQUUsQUFFQyxVQUFVLEU4QzJCbkIsQTlDN0JNLFk4QzZCTSxDOUM3Qk4sRUFBRSxBQUVDLFVBQVUsRUFVZixBQVpNLE1BWUEsQ0FaQSxFQUFFLEFBRUgsVUFBVSxFOENoQm5CLEE5Q2NVLGlCOENkTyxDOUNjUCxFQUFFLEFBRUgsVUFBVSxFOENYbkIsQTlDU1UsWThDVEUsQzlDU0YsRUFBRSxBQUVILFVBQVUsRThDMkJuQixBOUM3QlUsWThDNkJFLEM5QzdCRixFQUFFLEFB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cEI7RUFDRCxBQUFFLEVBQUEsQUFBQSxvQkFBb0IsRUFBRSxBQUFFLEVBQUEsQUFBQSxvQkFBb0IsRUFBRSxBQUFFLEVBQUEsQUFBQSxrQkFBa0IsRUFBRSxBQUFFLEVBQUEsQUFBQSxrQkFBa0IsRUFBRSxBQUFFLEVBQUEsQUFBQSxlQUFlLEVBQUUsQUFBRSxFQUFBLEFBQUEsZUFBZSxFQUFFLEFBQUUsRUFBQSxBQUFBLG9CQUFvQixFQUFFLEFBQUUsRUFBQSxBQUFBLG9CQUFvQixFQUFFLEFBQUUsRUFBQSxBQUFBLHFCQUFxQixFQUFFLEFBQUUsRUFBQSxBQUFBLHFCQUFxQixFQUFFLEFBQUUsRUFBQSxBQUFBLG1CQUFtQixFQUFFLEFBQUUsRUFBQSxBQUFBLG1CQUFtQixFQUFFLEFBQUUsRUFBQSxBQUFBLGdCQUFnQixFQUFFLEFBQUUsRUFBQSxBQUFBLGdCQUFnQixFQUFFLEFBQUUsRUFBQSxBQUFBLHFCQUFxQixFQUFFLEFBQUUsRUFBQSxBQUFBLHFCQUFxQixFQUFFLEFBQUUsRUFBQSxBQUFBLG9CQUFvQixFQUFFLEFBQUUsRUFBQSxBQUFBLG9CQUFvQixFQUFFLEFBQUUsRUFBQSxBQUFBLGtCQUFrQixFQUFFLEFBQUUsRUFBQSxBQUFBLGtCQUFrQixFQUFFLEFBQUUsRUFBQSxBQUFBLGVBQWUsRUFBRSxBQUFFLEVBQUEsQUFBQSxlQUFlLEVBQUUsQUFBRSxFQUFBLEFBQUEsb0JBQW9CLEVBQUUsQUFBRSxFQUFBLEFBQUEsb0JBQW9CLEVBQUUsQUFBRSxFQUFBLEFBQUEscUJBQXFCLEVBQUUsQUFBRSxFQUFBLEFBQUEscUJBQXFCLEVBQUUsQUFBRSxFQUFBLEFBQUEsbUJBQW1CLEVBQUUsQUFBRSxFQUFBLEFBQUEsbUJBQW1CLEVBQUUsQUFBRSxFQUFBLEFBQUEsZ0JBQWdCLEVBQUUsQUFBRSxFQUFBLEFBQUEsZ0JBQWdCLEVBQUUsQUFBRSxFQUFBLEFBQUEscUJBQXFCLEVBQUUsQUFBRSxFQUFBLEFBQUEscUJBQXFCLEVBQUUsQUFBRSxFQUFBLEFBQUEsc0JBQXNCLEVBQUUsQUFBRSxFQUFB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QVUsR0FDcEI7RUFDRCxBQUFFLEVBQUEsQUFBQSxvQkFBb0IsRUFBRSxBQUFFLEVBQUEsQUFBQSxvQkFBb0IsRUFBRSxBQUFFLEVBQUEsQUFBQSxrQkFBa0IsRUFBRSxBQUFFLEVBQUEsQUFBQSxrQkFBa0IsRUFBRSxBQUFFLEVBQUEsQUFBQSxlQUFlLEVBQUUsQUFBRSxFQUFBLEFBQUEsZUFBZSxFQUFFLEFBQUUsRUFBQSxBQUFBLG9CQUFvQixFQUFFLEFBQUUsRUFBQSxBQUFBLG9CQUFvQixFQUFFLEFBQUUsRUFBQSxBQUFBLHFCQUFxQixFQUFFLEFBQUUsRUFBQSxBQUFBLHFCQUFxQixFQUFFLEFBQUUsRUFBQSxBQUFBLG1CQUFtQixFQUFFLEFBQUUsRUFBQSxBQUFBLG1CQUFtQixFQUFFLEFBQUUsRUFBQSxBQUFBLGdCQUFnQixFQUFFLEFBQUUsRUFBQSxBQUFBLGdCQUFnQixFQUFFLEFBQUUsRUFBQSxBQUFBLHFCQUFxQixFQUFFLEFBQUUsRUFBQSxBQUFBLHFCQUFxQixFQUFFLEFBQUUsRUFBQSxBQUFBLG9CQUFvQixFQUFFLEFBQUUsRUFBQSxBQUFBLG9CQUFvQixFQUFFLEFBQUUsRUFBQSxBQUFBLGtCQUFrQixFQUFFLEFBQUUsRUFBQSxBQUFBLGtCQUFrQixFQUFFLEFBQUUsRUFBQSxBQUFBLGVBQWUsRUFBRSxBQUFFLEVBQUEsQUFBQSxlQUFlLEVBQUUsQUFBRSxFQUFBLEFBQUEsb0JBQW9CLEVBQUUsQUFBRSxFQUFBLEFBQUEsb0JBQW9CLEVBQUUsQUFBRSxFQUFBLEFBQUEscUJBQXFCLEVBQUUsQUFBRSxFQUFBLEFBQUEscUJBQXFCLEVBQUUsQUFBRSxFQUFBLEFBQUEsbUJBQW1CLEVBQUUsQUFBRSxFQUFBLEFBQUEsbUJBQW1CLEVBQUUsQUFBRSxFQUFBLEFBQUEsZ0JBQWdCLEVBQUUsQUFBRSxFQUFBLEFBQUEsZ0JBQWdCLEVBQUUsQUFBRSxFQUFBLEFBQUEscUJBQXFCLEVBQUUsQUFBRSxFQUFBLEFBQUEscUJBQXFCLEVBQUUsQUFBRSxFQUFBLEFBQUEsc0JBQXNCLEVBQUUsQUFB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a0d6QyxBdkI3RlEsd0J1QjZGZ0IsQ3ZCN0ZoQixFQUFFLEV1QjZGVixBdkI3Rlksd0J1QjZGWSxDdkI3RlosRUFBRSxFdUI2RmQsQXZCN0ZnQix3QnVCNkZRLEN2QjdGUixFQUFFLEV1QjZGbEIsQXZCN0ZvQix3QnVCNkZJLEN2QjdGSixFQUFFLEV1QjZGdEIsQXZCN0Z3Qix3QnVCNkZBLEN2QjdGQSxFQUFFLEV1QjZGMUIsQXZCN0Y0Qix3QnVCNkZKLEN2QjdGSSxFQUFFLEV1QjZGOUIsQXZCN0ZnQyx3QnVCNkZSLEN2QjdGUSxDQUFDLEV1QjZGakMsQXZCN0ZtQyx3QnVCNkZYLEN2QjdGVyxFQUFFLEV1QjZGckMsQXZCN0Z1Qyx3QnVCNkZmLEN2QjdGZSxFQUFFLENBQUM7SUFBRSxLQUFLLEUzQ2hDM0MsT0FBTyxHMkNnQzJEO0V1QjZGeEUsQXZCdEZNLHdCdUJzRmtCLEN2QnRGbEIsRUFBRSxFdUJzRlIsQXZCdEZVLHdCdUJzRmMsQ3ZCdEZkLEVBQUUsRXVCc0ZaLEF2QnRGYyx3QnVCc0ZVLEN2QnRGVixFQUFFLEV1QnNGaEIsQXZCdEZrQix3QnVCc0ZNLEN2QnRGTixFQUFFLEV1QnNGcEIsQXZCdEZzQix3QnVCc0ZFLEN2QnRGRixFQUFFLEV1QnNGeEIsQXZCdEYwQix3QnVCc0ZGLEN2QnRGRSxFQUFFLENBQUM7SUFDckIsV0FBVyxFQUFFLENBQUU7SUFBRSxhQUFhLEVBQUUsUUFBUSxHQUV6QztJdUJtRlAsQXZCdEZNLHdCdUJzRmtCLEN2QnRGbEIsRUFBRSxBQUVDLFVBQVUsRXVCb0ZuQixBdkJ0RlUsd0J1QnNGYyxDdkJ0RmQsRUFBRSxBQUVILFVBQVUsRXVCb0ZuQixBdkJ0RmMsd0J1QnNGVSxDdkJ0RlYsRUFBRSxBQUVQLFVBQVUsRXVCb0ZuQixBdkJ0RmtCLHdCdUJzRk0sQ3ZCdEZOLEVBQUUsQUFFWCxVQUFVLEV1Qm9GbkIsQXZCdEZzQix3QnVCc0ZFLEN2QnRGRixFQUFFLEFBRWYsVUFBVSxFdUJvRm5CLEF2QnRGMEIsd0J1QnNGRixDdkJ0RkUsRUFBRSxBQUVuQixVQUFVLENBQUM7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Qzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSwyQkFBMkIsQ0FBM0I7SVJqUEksWUFBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSwyQkFBMkIsQ0FBM0I7SVJqUEksYUFBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSwyQkFBMkIsQ0FBM0I7SVJqUEksV0FBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSwyQkFBMkIsQ0FBM0I7SVJqUEksY0FBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSw0QkFBNEIsQ0FBNUI7SVJqUEksWUFBcUIsRUFBUyxZQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSw0QkFBNEIsQ0FBNUI7SVJqUEksYUFBcUIsRUFBUyxZQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSw0QkFBNEIsQ0FBNUI7SVJqUEksV0FBcUIsRUFBUyxZQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSw0QkFBNEIsQ0FBNUI7SVJqUEksY0FBcUIsRUFBUyxZQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSwrQkFBK0IsQ0FBL0I7SVJqUEksWUFBcUIsRUFBUyxtQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxF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LEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEsMEJBQTBCLENBQTFCO0lSalBJLFlBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEsMEJBQTBCLENBQTFCO0lSalBJLGFBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEsMEJBQTBCLENBQTFCO0lSalBJLFdBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEsMEJBQTBCLENBQTFCO0lSalBJLGNBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEsMkJBQTJCLENBQTNCO0lSalBJLFlBQXFCLEVBQVMsWUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEsMkJBQTJCLENBQTNCO0lSalBJLGFBQXFCLEVBQVMsWUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEsMkJBQTJCLENBQTNCO0lSalBJLFdBQXFCLEVBQVMsWUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEsMkJBQTJCLENBQTNCO0lSalBJLGNBQXFCLEVBQVMsWUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEsOEJBQThCLENBQTlCO0lSalBJLFlBQXFCLEVBQVMsbUJBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQs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QkFBMEIsQ0FBMUI7SVJqUEksV0FBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSwwQkFBMEIsQ0FBMUI7SVJqUEksY0FBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSwyQkFBMkIsQ0FBM0I7SVJqUEksWUFBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSwyQkFBMkIsQ0FBM0I7SVJqUEksYUFBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSwyQkFBMkIsQ0FBM0I7SVJqUEksV0FBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSwyQkFBMkIsQ0FBM0I7SVJqUEksY0FBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSw0QkFBNEIsQ0FBNUI7SVJqUEksWUFBcUIsRUFBUyxZQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSw0QkFBNEIsQ0FBNUI7SVJqUEksYUFBcUIsRUFBUyxZQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSw0QkFBNEIsQ0FBNUI7SVJqUEksV0FBcUIsRUFBUyxZQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSw0QkFBNEIsQ0FBNUI7SVJqUEksY0FBcUIsRUFBUyxZQUFDLEdR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QUk7RVFrUC9CLEFBQUEseUJBQXlCLENBQXpCO0lSalBJLFdBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEseUJBQXlCLENBQXpCO0lSalBJLGNBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEsMEJBQTBCLENBQTFCO0lSalBJLFlBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEsMEJBQTBCLENBQTFCO0lSalBJLGFBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEsMEJBQTBCLENBQTFCO0lSalBJLFdBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEsMEJBQTBCLENBQTFCO0lSalBJLGNBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEsMkJBQTJCLENBQTNCO0lSalBJLFlBQXFCLEVBQVMsWUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEsMkJBQTJCLENBQTNCO0lSalBJLGFBQXFCLEVBQVMsWUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEsMkJBQTJCLENBQTNCO0lSalBJLFdBQXFCLEVBQVMsWUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEsMkJBQTJCLENBQTNCO0lSalBJLGNB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LE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSwwQkFBMEIsQ0FBMUI7SVJqUEksYUFBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSwwQkFBMEIsQ0FBMUI7SVJqUEksV0FBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSwwQkFBMEIsQ0FBMUI7SVJqUEksY0FBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSwyQkFBMkIsQ0FBM0I7SVJqUEksWUFBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSwyQkFBMkIsQ0FBM0I7SVJqUEksYUFBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSwyQkFBMkIsQ0FBM0I7SVJqUEksV0FBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSwyQkFBMkIsQ0FBM0I7SVJqUEksY0FBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSw0QkFBNEIsQ0FBNUI7SVJqUEksWUFBcUIsRUFBUyxZQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSw0QkFBNEIsQ0FBNUI7SVJqUEksYUFBcUIsRUFBUyxZQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFB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O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEseUJBQXlCLENBQXpCO0lSalBJLGFBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEseUJBQXlCLENBQXpCO0lSalBJLFdBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEseUJBQXlCLENBQXpCO0lSalBJLGNBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEsMEJBQTBCLENBQTFCO0lSalBJLFlBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEsMEJBQTBCLENBQTFCO0lSalBJLGFBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEsMEJBQTBCLENBQTFCO0lSalBJLFdBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEsMEJBQTBCLENBQTFCO0lSalBJLGNBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEsMkJBQTJCLENBQTNCO0lSalBJLFlBQXFCLEVBQVMsWUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEsMkJBQTJCLENBQTNCO0lSalBJLGFBQXFCLEVBQVMsWUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEsMkJBQTJCLENBQTNCO0lSalBJLFdBQXFCLEVBQVMsWUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEsMkJBQTJCLENBQTNCO0lSalBJLGNBQXFCLEVBQVMsWUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEsOEJBQThCLENBQTlCO0lSalBJLFlBQXFCLEVBQVMsbUJBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxJQUFJO0VRa1AvQixBQUFBLDhCQUE4QixDQUE5QjtJUmpQSSxhQUFxQixFQUFTLG1CQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsSUFBSTtFUWtQL0IsQUFBQSw4QkFBOEIsQ0FBOUI7SVJqUEksV0FBcUIsRUFBUyxtQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEsOEJBQThCLENBQTlCO0lSalBJLGNBQXFCLEVBQVMsbUJBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxJQUFJO0VRa1AvQixBQUFBLDZCQUE2QixDQUE3QjtJUmpQSSxZQUFxQixFQUFTLGtCQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsSUFBSTtFUWtQL0IsQUFBQSw2QkFBNkIsQ0FBN0I7SVJqUEksYUFBcUIsRUFBUyxrQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEsNkJBQTZCLENBQTdCO0lSalBJLFdBQXFCLEVBQVMsa0JBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxJQUFJO0VRa1AvQixBQUFBLDZCQUE2QixDQUE3QjtJUmpQSSxjQUFxQixFQUFTLGtCQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsSUFBSTtFUWtQL0IsQUFBQSwyQkFBMkIsQ0FBM0I7SVJqUEksWUFBcUIsRUFBUyxpQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEsMkJBQTJCLENBQTNCO0lSalBJLGFBQXFCLEVBQVMsaUJBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxJQUFJO0VRa1AvQixBQUFBLDJCQUEyQixDQUEzQjtJUmpQSSxXQUFxQixFQUFTLGlCQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsSUFBSTtFUWtQL0IsQUFBQSwyQkFBMkIsQ0FBM0I7SVJqUEksY0FBcUIsRUFBUyxpQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEsNEJBQTRCLENBQTVCO0lSalBJLFlBQXFCLEVBQVMsb0JBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxJQUFJO0VRa1AvQixBQUFBLDRCQUE0QixDQUE1QjtJUmpQSSxhQUFxQixFQUFTLG9CQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsSUFBSTtFUWtQL0IsQUFBQSw0QkFBNEIsQ0FBNUI7SVJqUEksV0FBcUIsRUFBUyxvQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEsNEJBQTRCLENBQTVCO0lSalBJLGNBQXFCLEVBQVMsb0JBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxJQUFJO0VRa1AvQixBQUFBLDJCQUEyQixDQUEzQjtJUmpQSSxZQUFxQixFQUFTLGlCQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsSUFBSTtFUWtQL0IsQUFBQSwyQkFBMkIsQ0FBM0I7SVJqUEksYUFBcUIsRUFBUyxpQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7RVFrUC9CLEFBQUEsMkJBQTJCLENBQTNCO0lSalBJLFdBQXFCLEVBQVMsaUJBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxJQUFJO0VRa1AvQixBQUFBLDJCQUEyQixDQUEzQjtJUmpQSSxjQUFxQixFQUFTLGlCQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsSUFBSTtFUWtQL0IsQUFBQSw0QkFBNEIsQ0FBNUI7SVJqUEksWUFBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsSUFBSTtFUWtQL0IsQUFBQSw0QkFBNEIsQ0FBNUI7SVJqUEksYUFBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsSUFBSTtFUWtQL0IsQUFBQSw0QkFBNEIsQ0FBNUI7SVJqUEksV0FBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsSUFBSTtFUWtQL0IsQUFBQSw0QkFBNEIsQ0FBNUI7SVJqUEksY0FBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsSUFBSTtFUWtQL0IsQUFBQSw2QkFBNkIsQ0FBN0I7SVJqUEksWUFBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsSUFBSTtFUWtQL0IsQUFBQSw2QkFBNkIsQ0FBN0I7SVJqUEksYUFBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsSUFBSTtFUWtQL0IsQUFBQSw2QkFBNkIsQ0FBN0I7SVJqUEksV0FBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsSUFBSTtFUWtQL0IsQUFBQSw2QkFBNkIsQ0FBN0I7SVJqUEksY0FBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QUFiVCxBQUFBLGNBQWMsQ0FBZDtFUnBPSSxZQUFxQixFQUFTLGlCQUFDO0VBQS9CLGFBQXFCLEVBQVMsaUJBQUM7RUFBL0IsV0FBcUIsRUFBUyxpQkFBQztFQUEvQixjQUFxQixFQUFTLGlCQUFDLEdRd09sQzs7QVI3T08sTUFBTSxNQUFELE1BQU07RVFrUFgsQUFBQSx3QkFBd0IsQ0FBeEI7SVJqUEksWUFBcUIsRUFBUyxZQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU07RVFrUFgsQUFBQSx3QkFBd0IsQ0FBeEI7SVJqUEksYUFBcUIsRUFBUyxZQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU07RVFrUFgsQUFBQSx3QkFBd0IsQ0FBeEI7SVJqUEksV0FBcUIsRUFBUyxZQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU07RVFrUFgsQUFBQSx3QkFBd0IsQ0FBeEI7SVJqUEksY0FBcUIsRUFBUyxZQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU07RVFrUFgsQUFBQSwyQkFBMkIsQ0FBM0I7SVJqUEksWUFBcUIsRUFBUyxtQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNO0VRa1BYLEFBQUEsMkJBQTJCLENBQTNCO0lSalBJLGFBQXFCLEVBQVMsbUJBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTTtFUWtQWCxBQUFBLDJCQUEyQixDQUEzQjtJUmpQSSxXQUFxQixFQUFTLG1CQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU07RVFrUFgsQUFBQSwyQkFBMkIsQ0FBM0I7SVJqUEksY0FBcUIsRUFBUyxtQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNO0VRa1BYLEFBQUEsMEJBQTBCLENBQTFCO0lSalBJLFlBQXFCLEVBQVMsa0JBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTTtFUWtQWCxBQUFBLDBCQUEwQixDQUExQjtJUmpQSSxhQUFxQixFQUFTLGtCQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU07RVFrUFgsQUFBQSwwQkFBMEIsQ0FBMUI7SVJqUEksV0FBcUIsRUFBUyxrQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNO0VRa1BYLEFBQUEsMEJBQTBCLENBQTFCO0lSalBJLGNBQXFCLEVBQVMsa0JBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTTtFUWtQWCxBQUFBLHdCQUF3QixDQUF4QjtJUmpQSSxZQUFxQixFQUFTLGlCQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU07RVFrUFgsQUFBQSx3QkFBd0IsQ0FBeEI7SVJqUEksYUFBcUIsRUFBUyxpQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNO0VRa1BYLEFBQUEsd0JBQXdCLENBQXhCO0lSalBJLFdBQXFCLEVBQVMsaUJBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTTtFUWtQWCxBQUFBLHdCQUF3QixDQUF4QjtJUmpQSSxjQUFxQixFQUFTLGlCQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU07RVFrUFgsQUFBQSx5QkFBeUIsQ0FBekI7SVJqUEksWUFBcUIsRUFBUyxvQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNO0VRa1BYLEFBQUEseUJBQXlCLENBQXpCO0lSalBJLGFBQXFCLEVBQVMsb0JBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTTtFUWtQWCxBQUFBLHlCQUF5QixDQUF6QjtJUmpQSSxXQUFxQixFQUFTLG9CQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU07RVFrUFgsQUFBQSx5QkFBeUIsQ0FBekI7SVJqUEksY0FBcUIsRUFBUyxvQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNO0VRa1BYLEFBQUEsd0JBQXdCLENBQXhCO0lSalBJLFlBQXFCLEVBQVMsaUJBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTTtFUWtQWCxBQUFBLHdCQUF3QixDQUF4QjtJUmpQSSxhQUFxQixFQUFTLGlCQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU07RVFrUFgsQUFBQSx3QkFBd0IsQ0FBeEI7SVJqUEksV0FBcUIsRUFBUyxpQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNO0VRa1BYLEFBQUEsd0JBQXdCLENBQXhCO0lSalBJLGNBQXFCLEVBQVMsaUJBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTTtFUWtQWCxBQUFBLHlCQUF5QixDQUF6QjtJUmpQSSxZQUFxQixFQUFTLGVBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTTtFUWtQWCxBQUFBLHlCQUF5QixDQUF6QjtJUmpQSSxhQUFxQixFQUFTLGVBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTTtFUWtQWCxBQUFBLHlCQUF5QixDQUF6QjtJUmpQSSxXQUFxQixFQUFTLGVBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTTtFUWtQWCxBQUFBLHlCQUF5QixDQUF6QjtJUmpQSSxjQUFxQixFQUFTLGVBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTTtFUWtQWCxBQUFBLDBCQUEwQixDQUExQjtJUmpQSSxZQUFxQixFQUFTLGVBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTTtFUWtQWCxBQUFBLDBCQUEwQixDQUExQjtJUmpQSSxhQUFxQixFQUFTLGVBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTTtFUWtQWCxBQUFBLDBCQUEwQixDQUExQjtJUmpQSSxXQUFxQixFQUFTLGVBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTTtFUWtQWCxBQUFBLDBCQUEwQixDQUExQjtJUmpQSSxjQUFxQixFQUFTLGVBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBRSxJQUFJO0VRa1BoQyxBQUFBLDZCQUE2QixDQUE3QjtJUmpQSSxZQUFxQixFQUFTLFlBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBRSxJQUFJO0VRa1BoQyxBQUFBLDZCQUE2QixDQUE3QjtJUmpQSSxhQUFxQixFQUFTLFlBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBRSxJQUFJO0VRa1BoQyxBQUFBLDZCQUE2QixDQUE3QjtJUmpQSSxXQUFxQixFQUFTLFlBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBRSxJQUFJO0VRa1BoQyxBQUFBLDZCQUE2QixDQUE3QjtJUmpQSSxjQUFxQixFQUFTLFlBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBRSxJQUFJO0VRa1BoQyxBQUFBLGdDQUFnQyxDQUFoQztJUmpQSSxZQUFxQixFQUFTLG1CQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUUsSUFBSTtFUWtQaEMsQUFBQSxnQ0FBZ0MsQ0FBaEM7SVJqUEksYUFBcUIsRUFBUyxtQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RVFrUGhDLEFBQUEsZ0NBQWdDLENBQWhDO0lSalBJLFdBQXFCLEVBQVMsbUJBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBRSxJQUFJO0VRa1BoQyxBQUFBLGdDQUFnQyxDQUFoQztJUmpQSSxjQUFxQixFQUFTLG1CQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUUsSUFBSTtFUWtQaEMsQUFBQSwrQkFBK0IsQ0FBL0I7SVJqUEksWUFBcUIsRUFBUyxrQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RVFrUGhDLEFBQUEsK0JBQStCLENBQS9CO0lSalBJLGFBQXFCLEVBQVMsa0JBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBRSxJQUFJO0VRa1BoQyxBQUFBLCtCQUErQixDQUEvQjtJUmpQSSxXQUFxQixFQUFTLGtCQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUUsSUFBSTtFUWtQaEMsQUFBQSwrQkFBK0IsQ0FBL0I7SVJqUEksY0FBcUIsRUFBUyxrQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RVFrUGhDLEFBQUEsNkJBQTZCLENBQTdCO0lSalBJLFlBQXFCLEVBQVMsaUJBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBRSxJQUFJO0VRa1BoQyxBQUFBLDZCQUE2QixDQUE3QjtJUmpQSSxhQUFxQixFQUFTLGlCQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUUsSUFBSTtFUWtQaEMsQUFBQSw2QkFBNkIsQ0FBN0I7SVJqUEksV0FBcUIsRUFBUyxpQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RVFrUGhDLEFBQUEsNkJBQTZCLENBQTdCO0lSalBJLGNBQXFCLEVBQVMsaUJBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBRSxJQUFJO0VRa1BoQyxBQUFBLDhCQUE4QixDQUE5QjtJUmpQSSxZQUFxQixFQUFTLG9CQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUUsSUFBSTtFUWtQaEMsQUFBQSw4QkFBOEIsQ0FBOUI7SVJqUEksYUFBcUIsRUFBUyxvQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RVFrUGhDLEFBQUEsOEJBQThCLENBQTlCO0lSalBJLFdBQXFCLEVBQVMsb0JBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBRSxJQUFJO0VRa1BoQyxBQUFBLDhCQUE4QixDQUE5QjtJUmpQSSxjQUFxQixFQUFTLG9CQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUUsSUFBSTtFUWtQaEMsQUFBQSw2QkFBNkIsQ0FBN0I7SVJqUEksWUFBcUIsRUFBUyxpQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RVFrUGhDLEFBQUEsNkJBQTZCLENBQTdCO0lSalBJLGFBQXFCLEVBQVMsaUJBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBRSxJQUFJO0VRa1BoQyxBQUFBLDZCQUE2QixDQUE3QjtJUmpQSSxXQUFxQixFQUFTLGlCQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUUsSUFBSTtFUWtQaEMsQUFBQSw2QkFBNkIsQ0FBN0I7SVJqUEksY0FBcUIsRUFBUyxpQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RVFrUGhDLEFBQUEsOEJBQThCLENBQTlCO0lSalBJLFlBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RVFrUGhDLEFBQUEsOEJBQThCLENBQTlCO0lSalBJLGFBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RVFrUGhDLEFBQUEsOEJBQThCLENBQTlCO0lSalBJLFdBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RVFrUGhDLEFBQUEsOEJBQThCLENBQTlCO0lSalBJLGNBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RVFrUGhDLEFBQUEsK0JBQStCLENBQS9CO0lSalBJLFlBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RVFrUGhDLEFBQUEsK0JBQStCLENBQS9CO0lSalBJLGFBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RVFrUGhDLEFBQUEsK0JBQStCLENBQS9CO0lSalBJLFdBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RVFrUGhDLEFBQUEsK0JBQStCLENBQS9CO0lSalBJLGNBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVM7RVFrUHBDLEFBQUEseUJBQXlCLENBQXpCO0lSalBJLFlBQXFCLEVBQVMsWUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVM7RVFrUHBDLEFBQUEseUJBQXlCLENBQXpCO0lSalBJLGFBQXFCLEVBQVMsWUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVM7RVFrUHBDLEFBQUEseUJBQXlCLENBQXpCO0lSalBJLFdBQXFCLEVBQVMsWUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVM7RVFrUHBDLEFBQUEseUJBQXlCLENBQXpCO0lSalBJLGNBQXFCLEVBQVMsWUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVM7RVFrUHBDLEFBQUEsNEJBQTRCLENBQTVCO0lSalBJLFlBQXFCLEVBQVMsbUJBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxTQUFTO0VRa1BwQyxBQUFBLDRCQUE0QixDQUE1QjtJUmpQSSxhQUFxQixFQUFTLG1CQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSw0QkFBNEIsQ0FBNUI7SVJqUEksV0FBcUIsRUFBUyxtQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVM7RVFrUHBDLEFBQUEsNEJBQTRCLENBQTVCO0lSalBJLGNBQXFCLEVBQVMsbUJBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxTQUFTO0VRa1BwQyxBQUFBLDJCQUEyQixDQUEzQjtJUmpQSSxZQUFxQixFQUFTLGtCQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSwyQkFBMkIsQ0FBM0I7SVJqUEksYUFBcUIsRUFBUyxrQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVM7RVFrUHBDLEFBQUEsMkJBQTJCLENBQTNCO0lSalBJLFdBQXFCLEVBQVMsa0JBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxTQUFTO0VRa1BwQyxBQUFBLDJCQUEyQixDQUEzQjtJUmpQSSxjQUFxQixFQUFTLGtCQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSx5QkFBeUIsQ0FBekI7SVJqUEksWUFBcUIsRUFBUyxpQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVM7RVFrUHBDLEFBQUEseUJBQXlCLENBQXpCO0lSalBJLGFBQXFCLEVBQVMsaUJBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxTQUFTO0VRa1BwQyxBQUFBLHlCQUF5QixDQUF6QjtJUmpQSSxXQUFxQixFQUFTLGlCQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSx5QkFBeUIsQ0FBekI7SVJqUEksY0FBcUIsRUFBUyxpQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVM7RVFrUHBDLEFBQUEsMEJBQTBCLENBQTFCO0lSalBJLFlBQXFCLEVBQVMsb0JBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxTQUFTO0VRa1BwQyxBQUFBLDBCQUEwQixDQUExQjtJUmpQSSxhQUFxQixFQUFTLG9CQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSwwQkFBMEIsQ0FBMUI7SVJqUEksV0FBcUIsRUFBUyxvQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVM7RVFrUHBDLEFBQUEsMEJBQTBCLENBQTFCO0lSalBJLGNBQXFCLEVBQVMsb0JBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxTQUFTO0VRa1BwQyxBQUFBLHlCQUF5QixDQUF6QjtJUmpQSSxZQUFxQixFQUFTLGlCQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSx5QkFBeUIsQ0FBekI7SVJqUEksYUFBcUIsRUFBUyxpQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVM7RVFrUHBDLEFBQUEseUJBQXlCLENBQXpCO0lSalBJLFdBQXFCLEVBQVMsaUJBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxTQUFTO0VRa1BwQyxBQUFBLHlCQUF5QixDQUF6QjtJUmpQSSxjQUFxQixFQUFTLGlCQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSwwQkFBMEIsQ0FBMUI7SVJqUEksWUFBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSwwQkFBMEIsQ0FBMUI7SVJqUEksYUFBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSwwQkFBMEIsQ0FBMUI7SVJqUEksV0FBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSwwQkFBMEIsQ0FBMUI7SVJqUEksY0FBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSwyQkFBMkIsQ0FBM0I7SVJqUEksWUFBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSwyQkFBMkIsQ0FBM0I7SVJqUEksYUFBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSwyQkFBMkIsQ0FBM0I7SVJqUEksV0FBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSwyQkFBMkIsQ0FBM0I7SVJqUEksY0FBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFUWtQcEMsQUFBQSw0QkFBNEIsQ0FBNUI7SVJqUEksWUFBcUIsRUFBUyxZQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFE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LEFBQUEsOEJBQThCLENBQTlCO0lSalBJLFdBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RVFrUGhDLEFBQUEsOEJBQThCLENBQTlCO0lSalBJLGNBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RVFrUGhDLEFBQUEsK0JBQStCLENBQS9CO0lSalBJLFlBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RVFrUGhDLEFBQUEsK0JBQStCLENBQS9CO0lSalBJLGFBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RVFrUGhDLEFBQUEsK0JBQStCLENBQS9CO0lSalBJLFdBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RVFrUGhDLEFBQUEsK0JBQStCLENBQS9CO0lSalBJLGNBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVM7RVFrUHBDLEFBQUEseUJBQXlCLENBQXpCO0lSalBJLFlBQXFCLEVBQVMsWUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVM7RVFrUHBDLEFBQUEseUJBQXlCLENBQXpCO0lSalBJLGFBQXFCLEVBQVMsWUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVM7RVFrUHBDLEFBQUEseUJBQXlCLENBQXpCO0lSalBJLFdBQXFCLEVBQVMsWUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVM7RVFrUHBDLEFBQUEseUJBQXlCLENBQXpCO0lSalBJLGNBQXFCLEVBQVMs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QU0sU0FBUyxFQUFDLFNBQVMsT0FBTyxTQUFTLEVBQUMsU0FBUztFUWtQOUQsQUFBQSxpQ0FBaUMsQ0FBakM7SVJqUEksWUFBcUIsRUFBUyxtQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVMsT0FBTyxTQUFTLEVBQUMsU0FBUztFUWtQOUQsQUFBQSxpQ0FBaUMsQ0FBakM7SVJqUEksYUFBcUIsRUFBUyxtQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVMsT0FBTyxTQUFTLEVBQUMsU0FBUztFUWtQOUQsQUFBQSxpQ0FBaUMsQ0FBakM7SVJqUEksV0FBcUIsRUFBUyxtQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVMsT0FBTyxTQUFTLEVBQUMsU0FBUztFUWtQOUQsQUFBQSxpQ0FBaUMsQ0FBakM7SVJqUEksY0FBcUIsRUFBUyxtQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVMsT0FBTyxTQUFTLEVBQUMsU0FBUztFUWtQOUQsQUFBQSxnQ0FBZ0MsQ0FBaEM7SVJqUEksWUFBcUIsRUFBUyxrQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVMsT0FBTyxTQUFTLEVBQUMsU0FBUztFUWtQOUQsQUFBQSxnQ0FBZ0MsQ0FBaEM7SVJqUEksYUFBcUIsRUFBUyxrQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVMsT0FBTyxTQUFTLEVBQUMsU0FBUztFUWtQOUQsQUFBQSxnQ0FBZ0MsQ0FBaEM7SVJqUEksV0FBcUIsRUFBUyxrQkFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVMsT0FBTyxTQUFTLEVBQUMsU0FBUztFUWtQOUQsQUFBQSxnQ0FBZ0MsQ0FBaEM7SVJqUEksY0FBcUIsRUFBUyxr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TUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RVFrUGhDLEFBQUEsOEJBQThCLENBQTlCO0lSalBJLGFBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RVFrUGhDLEFBQUEsOEJBQThCLENBQTlCO0lSalBJLFdBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RVFrUGhDLEFBQUEsOEJBQThCLENBQTlCO0lSalBJLGNBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RVFrUGhDLEFBQUEsK0JBQStCLENBQS9CO0lSalBJLFlBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RVFrUGhDLEFBQUEsK0JBQStCLENBQS9CO0lSalBJLGFBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RVFrUGhDLEFBQUEsK0JBQStCLENBQS9CO0lSalBJLFdBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RVFrUGhDLEFBQUEsK0JBQStCLENBQS9CO0lSalBJLGNBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVM7RVFrUHBDLEFBQUEseUJBQXlCLENBQXpCO0lSalBJLFlBQXFCLEVBQVMsWUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVM7RVFrUHBDLEFBQUEseUJBQXlCLENBQXpCO0lSalBJLGFBQXFCLEVBQVMsWUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVM7RVFrUHBD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Qzs7QVJ0UEQsTUFBTSxNQUFELE1BQU07RVFrUFgsQUFBQSx5QkFBeUIsQ0FBekI7SVJqUEksYUFBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU07RVFrUFgsQUFBQSx5QkFBeUIsQ0FBekI7SVJqUEksV0FBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU07RVFrUFgsQUFBQSx5QkFBeUIsQ0FBekI7SVJqUEksY0FBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU07RVFrUFgsQUFBQSwwQkFBMEIsQ0FBMUI7SVJqUEksWUFBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU07RVFrUFgsQUFBQSwwQkFBMEIsQ0FBMUI7SVJqUEksYUFBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU07RVFrUFgsQUFBQSwwQkFBMEIsQ0FBMUI7SVJqUEksV0FBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU07RVFrUFgsQUFBQSwwQkFBMEIsQ0FBMUI7SVJqUEksY0FBcUIsRUFBUyxlQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUUsSUFBSTtFUWtQaEMsQUFBQSw2QkFBNkIsQ0FBN0I7SVJqUEksWUFBcUIsRUFBUyxZQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUUsSUFBSTtFUWtQaEMsQUFBQSw2QkFBNkIsQ0FBN0I7SVJqUEksYUFBcUIsRUFBUyxZQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUUsSUFBSTtFUWtQaEMsQUFBQSw2QkFBNkIsQ0FBN0I7SVJqUEksV0FBcUIsRUFBUyxZQUFDLEdRcVBsQzs7QVJ0UEQsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUUsSUFBSTtFUWtQaEMsQUFBQSw2QkFBNkIsQ0FBN0I7SVJqUEksY0FBcUIsRUFBUyxZ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alBJLGNBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVM7RVFrUHBDLEFBQUEsMkJBQTJCLENBQTNCO0lSalBJLFlBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVM7RVFrUHBDLEFBQUEsMkJBQTJCLENBQTNCO0lSalBJLGFBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVM7RVFrUHBDLEFBQUEsMkJBQTJCLENBQTNCO0lSalBJLFdBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVM7RVFrUHBDLEFBQUEsMkJBQTJCLENBQTNCO0lSalBJLGNBQXFCLEVBQVMsZUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVM7RVFrUHBDLEFBQUEsNEJBQTRCLENBQTVCO0lSalBJLFlBQXFCLEVBQVMsWUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVM7RVFrUHBDLEFBQUEsNEJBQTRCLENBQTVCO0lSalBJLGFBQXFCLEVBQVMsWUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVM7RVFrUHBDLEFBQUEsNEJBQTRCLENBQTVCO0lSalBJLFdBQXFCLEVBQVMsWUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVM7RVFrUHBDLEFBQUEsNEJBQTRCLENBQTVCO0lSalBJLGNBQXFCLEVBQVMsWUFBQyxHUXFQbEM7O0FSdFBELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVM7RVFrUHBDLEFBQUEsK0JBQStCLENBQS9CO0lSalBJLFlBQXFCLEVBQVMsbUJBQUMsR1FxUGxDOztBUnRQRCxN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UDlELEFBQUEsZ0NBQWdDLENBQWhDO0lSalBJLFlBQXFCLEVBQVMsa0JBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxTQUFTLE9BQU8sU0FBUyxFQUFDLFNBQVM7RVFrUDlELEFBQUEsZ0NBQWdDLENBQWhDO0lSalBJLGFBQXFCLEVBQVMsa0JBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxTQUFTLE9BQU8sU0FBUyxFQUFDLFNBQVM7RVFrUDlELEFBQUEsZ0NBQWdDLENBQWhDO0lSalBJLFdBQXFCLEVBQVMsa0JBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxTQUFTLE9BQU8sU0FBUyxFQUFDLFNBQVM7RVFrUDlELEFBQUEsZ0NBQWdDLENBQWhDO0lSalBJLGNBQXFCLEVBQVMsa0JBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxTQUFTLE9BQU8sU0FBUyxFQUFDLFNBQVM7RVFrUDlELEFBQUEsOEJBQThCLENBQTlCO0lSalBJLFlBQXFCLEVBQVMsaUJBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxTQUFTLE9BQU8sU0FBUyxFQUFDLFNBQVM7RVFrUDlELEFBQUEsOEJBQThCLENBQTlCO0lSalBJLGFBQXFCLEVBQVMsaUJBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxTQUFTLE9BQU8sU0FBUyxFQUFDLFNBQVM7RVFrUDlELEFBQUEsOEJBQThCLENBQTlCO0lSalBJLFdBQXFCLEVBQVMsaUJBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxTQUFTLE9BQU8sU0FBUyxFQUFDLFNBQVM7RVFrUDlELEFBQUEsOEJBQThCLENBQTlCO0lSalBJLGNBQXFCLEVBQVMsaUJBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxTQUFTLE9BQU8sU0FBUyxFQUFDLFNBQVM7RVFrUDlELEFBQUEsK0JBQStCLENBQS9CO0lSalBJLFlBQXFCLEVBQVMsb0JBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxTQUFTLE9BQU8sU0FBUyxFQUFDLFNBQVM7RVFrUDlELEFBQUEsK0JBQStCLENBQS9CO0lSalBJLGFBQXFCLEVBQVMsb0JBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxTQUFTLE9BQU8sU0FBUyxFQUFDLFNBQVM7RVFrUDlELEFBQUEsK0JBQStCLENBQS9CO0lSalBJLFdBQXFCLEVBQVMsb0JBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxTQUFTLE9BQU8sU0FBUyxFQUFDLFNBQVM7RVFrUDlELEFBQUEsK0JBQStCLENBQS9CO0lSalBJLGNBQXFCLEVBQVMsb0JBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxTQUFTLE9BQU8sU0FBUyxFQUFDLFNBQVM7RVFrUDlELEFBQUEsOEJBQThCLENBQTlCO0lSalBJLFlBQXFCLEVBQVMsaUJBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxTQUFTLE9BQU8sU0FBUyxFQUFDLFNBQVM7RVFrUDlELEFBQUEsOEJBQThCLENBQTlCO0lSalBJLGFBQXFCLEVBQVMsaUJBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxTQUFTLE9BQU8sU0FBUyxFQUFDLFNBQVM7RVFrUDlELEFBQUEsOEJBQThCLENBQTlCO0lSalBJLFdBQXFCLEVBQVMsaUJBQUMsR1FxUGxDOztBUnRQRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxTQUFTLE9BQU8sU0FBUyxFQUFDLFNBQVM7RVFrUDlELEFBQUEsOEJBQThCLENBQTlCO0lSalBJLGNBQXFCLEVBQVMsaUJBQUMs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QyxJQUFJLENBQUMsQ0FBakQ7RUFDSSxPQUFPLEVBQUUsSUFBSyxHQUNqQjs7QUFGRCxBQUFnRCxhQUFuQyxBQUFBLElBQUssQ0FBQSxBQUFBLFNBQVMsSUFBSSxDQUFDLEFBQUEsVUFBVyxDQUFBLEFBQUEsQ0FBQyxJQUFJLENBQUMsQ0FBakQ7RUFDSSxPQUFPLEVBQUUsSUFBSyxHQUNqQjs7QUFGRCxBQUFnRCxhQUFuQyxBQUFBLElBQUssQ0FBQSxBQUFBLFNBQVMsSUFBSSxDQUFDLEFBQUEsVUFBVyxDQUFBLEFBQUEsQ0FBQyxJQUFJLENBQUMsQ0FBakQ7RUFDSSxPQUFPLEVBQUUsSUFBSyxHQUNqQjs7QUFGRCxBQUFnRCxhQUFuQyxBQUFBLElBQUssQ0FBQSxBQUFBLFNBQVMsSUFBSSxDQUFDLEFBQUEsVUFBVyxDQUFBLEFBQUEsQ0FBQyxJQUFJLENBQUMsQ0FBakQ7RUFDSSxPQUFPLEVBQUUsSUFBSyxHQUNqQjs7QUFGRCxBQUFnRCxhQUFuQyxBQUFBLElBQUssQ0FBQSxBQUFBLFNBQVMsSUFBSSxDQUFDLEFBQUEsVUFBVyxDQUFBLEFBQUEsQ0FBQyxJQUFJLENBQUMsQ0FBakQ7RUFDSSxPQUFPLEVBQUUsSUFBSyxHQUNqQjs7QUFGRCxBQUFnRCxhQUFuQyxBQUFBLElBQUssQ0FBQSxBQUFBLFNBQVMsSUFBSSxDQUFDLEFBQUEsVUFBVyxDQUFBLEFBQUEsQ0FBQyxJQUFJLENBQUMsQ0FBakQ7RUFDSSxPQUFPLEVBQUUsSUFBSyxHQUNqQjs7QUFGRCxBQUFnRCxhQUFuQyxBQUFBLElBQUssQ0FBQSxBQUFBLFNBQVMsSUFBSSxDQUFDLEFBQUEsVUFBVyxDQUFBLEFBQUEsQ0FBQyxJQUFJLENBQUMsQ0FBakQ7RUFDSSxPQUFPLEVBQUUsSUFBSyxHQUNqQjs7QUFGRCxBQUFnRCxhQUFuQyxBQUFBLElBQUssQ0FBQSxBQUFBLFNBQVMsSUFBSSxDQUFDLEFBQUEsVUFBVyxDQUFBLEFBQUEsQ0FBQyxJQUFJLENBQUMsQ0FBakQ7RUFDSSxPQUFPLEVBQUUsSUFBSyxHQUNqQjs7QUFGRCxBQUFnRCxhQUFuQyxBQUFBLElBQUssQ0FBQSxBQUFBLFNBQVMsSUFBSSxDQUFDLEFBQUEsVUFBVyxDQUFBLEFBQUEsQ0FBQyxJQUFJLENBQUMsQ0FBakQ7RUFDSSxPQUFPLEVBQUUsSUFBSyxHQUNqQjs7QUFGRCxBQUFrRCxjQUFwQyxBQUFBLElBQUssQ0FBQSxBQUFBLFNBQVMsSUFBSSxDQUFDLEFBQUEsVUFBVyxDQUFBLEFBQUEsRUFBRSxJQUFJLENBQUMsQ0FBbkQ7RUFDSSxPQUFPLEVBQUUsSUFBSyxHQUNqQjs7QUMvdENMOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUF5REU7QUFRRixBQUFBLE1BQU07QUFDTixBQUFBLFdBQVcsQ0FBQztFQUNSLFFBQVEsRUFBRSxNQUFPO0VBQ2pCLElBQUksRUFBRSxDQUFFLEdBQ1g7O0FBR0QsQUFBQSxNQUFNO0FBQ04sQUFBTyxNQUFELENBQUMsTUFBTSxDQUFDO0VBQ1osVUFBVSxFdEZhRixTQUFVLEdzRlpuQjs7QUFDRCxBQUFNLE1BQUEsQUFBQSxZQUFZLENBQUM7RUFDakIsVUFBVSxFQUFFLENBQUUsR0FDZjs7QUFHRCxBQUFBLGFBQWEsQ0FBQztFQUNaLE9BQU8sRUFBRSxLQUFNLEdBQ2hCOztBQUdELEFBQUEsY0FBYyxDQUFDO0VBQ2IsYUFBYSxFdEZBTCxTQUFVLEdzRkNuQjs7QUFNRCxBQUNJLE1BREUsR0FDRixLQUFLLENBQUM7RUFDTixZQUFZLEV0RlROLE9BQVUsR3NGVWpCOztBQUhILEFBSVMsTUFKSCxHQUlGLEtBQUssQUFBQSxNQUFNLENBQUM7RUFDWixZQUFZLEVBQUUsTUFBNkIsR0FDNUM7O0FBTkgsQUFPSSxNQVBFLEdBT0YsTUFBTSxDQUFDO0VBQ1AsV0FBVyxFdEZmTCxPQUFVLEdzRmdCakI7O0FBVEgsQUFVVSxNQVZKLEdBVUYsTUFBTSxBQUFBLE1BQU0sQ0FBQztFQUNiLFdBQVcsRUFBRSxNQUE2QixHQUMzQzs7QUFRSCxBQUFBLFdBQVcsQ0FBQztFQUNWLFlBQVksRUFBRSxDQUFFO0VBQ2hCLE1BQU0sRUFBRSxDQUFFO0VBQ1YsVUFBVSxFQUFFLElBQUssR0FDbEI7O0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXdCRTtBQU1BLE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RUFGbEMsQUFHSSxjQUhVLENBR1YsYUFBYSxDQUFDO0lBQ1osS0FBSyxFdEZqRUQsUUFBVTtJc0ZrRWQsTUFBTSxFdEZsRUYsUUFBVSxHc0ZtRWY7O0FBR0gsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztFQVR0QyxBQVVJLGNBVlUsQ0FVVixhQUFhLENBQUM7SUFDWixNQUFNLEVBQUUsTUFBTyxHQUNoQjtFQVpMLEFBYUksY0FiVSxDQWFWLEtBQUssQ0FBQztJQUNKLEtBQUssRUFBRSxlQUFnQjtJQUN2QixNQUFNLEVBQUUsQ0FBRSxHQUNYO0VBaEJMLEFBaUJJLGNBakJVLENBaUJWLE1BQU0sQ0FBQztJQUNMLEtBQUssRUFBRSxlQUFnQjtJQUN2QixNQUFNLEVBQUUsQ0FBRSxHQUNYOztBQzdLTDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFnTEU7QUFFRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpRUU7QUFFRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXNIRTtBQUVGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBa0ZFO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBNlFFO0FBR0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQWtFRTtBQUtGLEFBQUEsV0FBVyxDQUFDO0U3QjF0QlYsT0FBTyxFQUFFLFdBQVk7RUFDckIsT0FBTyxFQUFFLFlBQWE7RUFDdEIsT0FBTyxFQUFFLFNBQVU7RUFDbkIsT0FBTyxFQUFFLFdBQVk7RUFDckIsT0FBTyxFQUFFLElBQUssRzZCb3VCZjtFQWRELEFBQUEsV0FBVyxBQUdOLFdBQVcsQ0FBQztJQUNULGFBQWEsRUFBRSxZQUFhO0lBQzVCLGNBQWMsRUFBRSxZQUFhO0lBQzdCLGFBQWEsRUFBRSxZQUFhLEdBQy9CO0VBUEwsQUFBQSxXQUFXLEFBU04sWUFBWSxDQUFDO0lBQ1YsVUFBVSxFQUFFLFlBQWE7SUFDekIsV0FBVyxFQUFFLFlBQWE7SUFDMUIsVUFBVSxFQUFFLFlBQWEsR0FDNUI7O0FBR0wsQUFBQSxrQkFBa0IsQUFDYixNQUFNLENBQUM7RUFDSixZQUFZLEVBQUUsT0FBMkIsR0FDNUM7O0FBSEwsQUFBQSxrQkFBa0IsQUFJYixPQUFPLENBQUM7RUFDTCxZQUFZLEV2Rmp0QlYsT0FBVSxHdUZrdEJmOztBQU5MLEFBQUEsa0JBQWtCLEFBT2IsTUFBTSxDQUFDO0VBQ0osWUFBWSxFQUFFLE1BQTJCLEdBQzVDOztBQVRMLEFBQUEsa0JBQWtCLEFBVWIsT0FBTyxDQUFDO0VBQ0wsWUFBWSxFQUFFLFFBQTJCLEdBQzVDOztBQVpMLEFBQUEsa0JBQWtCLEFBYWIsUUFBUSxDQUFDO0VBQ04sWUFBWSxFQUFFLE9BQTJCLEdBQzVDOztBQWZMLEFBQUEsa0JBQWtCLEFBZ0JiLE1BQU0sRUFoQlgsQUFBQSxrQkFBa0IsQWI1VWxCLG9CQUFvQixBQWlEakIsS0FBSyxFYTJSUixBQUFBLGtCQUFrQixBYjVVbEIsb0JBQW9CLEFBc0RqQixPQUFPLENhc1NFO0VBQ0osUUFBUSxFQUFFLE1BQU8sR0FDcEI7O0FBbEJMLEFBbUJJLGtCQW5CYyxDQW1CZCxHQUFHLENBQUM7RUFDQSxLQUFLLEVBQUUsSUFBSyxHQUNmOztBQXJCTCxBQXNCTyxrQkF0QlcsQ0FzQmQsR0FBRyxBQUFBLFlBQVksQ0FBQztFQUNaLE1BQU0sRUFBRSxJQUFLO0VBQ2IsS0FBSyxFQUFFLElBQUssR0FDZjs7QUF6QkwsQUEwQk8sa0JBMUJXLENBMEJkLEdBQUcsQUFBQSxTQUFTLENBQUM7RUFDVCxNQUFNLEVBQUUsY0FBZSxHQUMxQjs7QUE1QkwsQUE2QmlCLGtCQTdCQyxBQTZCYixXQUFXLENBQUMsR0FBRyxDQUFDO0VBQ2IsS0FBSyxFQUFFLElBQUs7RUFDWixTQUFTLEVBQUUsSUFBSyxHQUNuQjs7QUFHTCxBQUFBLG1CQUFtQixDQUFDO0U5QjFvQlosYUFBYSxFQUFDLFNBQUM7RUduSGYsU0FBUyxFQUFDLFFBQUM7RUFFUCxXQUFXLEVBQUMsR0FBQztFMkJpd0JyQixXQUFXLEVBQUUsR0FBSSxHQUNwQjtFM0I1d0JXLE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVM7STJCcXdCaEQsQUFBQSxtQkFBbUIsQ0FBQztNM0Jwd0JKLFNBQVMsRUFBQyxNQUFDO01BRVAsV0FBVyxFQUFDLEdBQUMsRzJCeXdCaEM7O0FBQ0QsQUFBQSxtQkFBbUIsQ0FBQztFN0Iza0JsQixnQkFBZ0IsRTZCNGtCQSxDQUFDO0U3QjNrQmpCLFlBQVksRTZCMmtCSSxDQUFDO0U3QjFrQmpCLGFBQWEsRTZCMGtCRyxDQUFDO0U3QnprQmpCLFNBQVMsRTZCeWtCTyxDQUFDO0U3QnhrQmpCLFFBQVEsRTZCd2tCUSxDQUFDO0U3QnZrQmpCLElBQUksRTZCdWtCWSxDQUFDLEdBQ2xCOztBQUVELEFBQXNCLFdBQVgsQUFBQSxRQUFRLEdBQUcsa0JBQWtCLENBQUM7RTdCdnFCdkMseUJBQXlCLEVBQUUsQ0FBSTtFQUMvQixhQUFhLEU2QnVxQkksQ0FBQztFN0J0cUJsQixVQUFVLEU2QnNxQk8sQ0FBQztFN0JycUJsQixjQUFjLEU2QnFxQkcsQ0FBQztFN0JwcUJsQixLQUFLLEU2Qm9xQlksQ0FBQztFQUNoQixXQUFXLEV2Rjd2QkwsT0FBVTtFdUY4dkJoQixZQUFZLEVBQUUsQ0FBRSxHQUNuQjs7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQStCRTtBQUVGLEFBQUEsZ0JBQWdCLENBQUM7RUFDYixPQUFPLEVBQUUsS0FBTTtFQUNmLFFBQVEsRUFBRSxRQUFTLEdBNEJ0QjtFQTlCRCxBQUlJLGdCQUpZLENBSVosc0JBQXNCLENBQUM7SUFDbkIsTUFBTSxFQUFFLGNBQWUsR0FDMUI7RUFFRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxJQUFJO0lBUm5DLEFBQUEsZ0JBQWdCLEFBU1AsTUFBTSxDQUFDO01BQ0osUUFBUSxFQUFFLFFBQVM7TUFDbkIsTUFBTSxFQUFDLElBQUs7TUFDWixLQUFLLEVBQUUsSUFBSztNQUNaLElBQUksRUFBRSxHQUFJO01BQ1YsR0FBRyxFQUFFLEdBQUk7TUFFVCxnQkFBZ0IsRUFBRSxzREFBZTtNQUNqQyxPQUFPLEVBQUUsRUFBRztNQUNaLE9BQU8sRUFBQyxLQUFNO01BQ2QsT0FBTyxFQUFDLENBQUUsR0FDYjtFQXBCVCxBQXVCRSxnQkF2QmMsQ0F1QmQsd0JBQXdCLENBQUM7SUFDdkIsTUFBTSxFQUFFLENBQUU7SUFDVixPQUFPLEVBQUUsSUFBSztJQUNkLFFBQVEsRUFBRSxRQUFTO0lBQ25CLEtBQUssRUFBRSxJQUFLO0lBQ1osT0FBTyxFQUFFLENBQUUsR0FDWjs7QUFHSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXdGRTtBQ3QvQkY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXlERTtBQUVGLEFBQUEsaUJBQWlCLEVBQVEsQUFBUixXQUFtQixBQUFwQyxpQkFBaUIsRUFBUSxBQUFSLFdBQW1CLEFBQWpCLE1BQU0sRUFBQSxBQUFSLFdBQW1CLEFBS3BDLFlBQVksRUFMYSxBQUFSLFdBQW1CLEFBMkNwQyxZQUFZLENBM0N5QjtFQUVuQyxNQUFNLEVBQUUsWUFBYSxHQUN0Qjs7QUFFRCxBQUFBLFlBQVksQ0FBQztFQUVYLE9BQU8sRXhGMEJDLFFBQVUsQ0FBVixJQUFVLEd3RnpCbkI7O0FBRUQsQUFBTSxNQUFBLEFBQUEsTUFBTSxFQUFOLEFBQU4sTUFBWSxBQVZaLGlCQUFpQixFQVVYLEFBQU4sTUFBWSxBQUxaLFlBQVksRUFLTixBQUFOLE1BQVksQUFpQ1osWUFBWSxDQWpDQztFQUNYLE9BQU8sRXhGc0JDLFFBQVUsQ0FBVixJQUFVLEd3RnJCbkI7O0FBRUQsQUFBTSxNQUFBLEFBQUEsTUFBTSxFQUFOLEFBQU4sTUFBWSxBQWRaLGlCQUFpQixFQWNYLEFBQU4sTUFBWSxBQVRaLFlBQVksRUFTTixBQUFOLE1BQVksQUE2QlosWUFBWSxDQTdCQztFQUNYLFVBQVUsRUFBRSxXQUFZO0VBQ3hCLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDekZuQ1AsT0FBTyxHeUZvQ2xCOztBQUVELEFBQU0sTUFBQSxBQUFBLE1BQU0sRUFBTixBQUFOLE1BQVksQUFuQlosaUJBQWlCLEVBbUJYLEFBQU4sTUFBWSxBQWRaLFlBQVksRUFjTixBQUFOLE1BQVksQUF3QlosWUFBWSxDQXhCQztFQUNYLFVBQVUsRXpGcENDLE9BQU87RXlGcUNsQixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3pGeENQLE9BQU8sR3lGeUNsQjs7QUFFRCxBQUFNLE1BQUEsQUFBQSxXQUFXLEVBQVgsQUFBTixXQUFpQixBQXhCakIsaUJBQWlCLEVBd0JYLEFBQU4sV0FBaUIsQUFuQmpCLFlBQVksRUFtQk4sQUFBTixXQUFpQixBQW1CakIsWUFBWSxDQW5CTTtFQUNkLFVBQVUsRXpGM0JFLE9BQU87RXlGNEJuQixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3pGN0JSLE9BQU8sR3lGOEJuQjs7QUFFRCxBQUFNLE1BQUEsQUFBQSxNQUFNLEVBQU4sQUFBTixNQUFZLEFBN0JaLGlCQUFpQixFQTZCWCxBQUFOLE1BQVksQUF4QlosWUFBWSxFQXdCTixBQUFOLE1BQVksQUFjWixZQUFZLENBZEM7RUFDWCxVQUFVLEVBQUUsSUFBSztFQUNqQixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3pGbERQLE9BQU8sR3lGbURsQjs7QUFFRCxBQUFNLE1BQUEsQUFBQSxhQUFhLEVBQWIsQUFBTixhQUFtQixBQWxDbkIsaUJBQWlCLEVBa0NYLEFBQU4sYUFBbUIsQUE3Qm5CLFlBQVksRUE2Qk4sQUFBTixhQUFtQixBQVNuQixZQUFZLENBVFE7RUFDaEIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEN6RnREVCxPQUFPLEN5RnNEYyxVQUFVLEdBQzFDOztBQUVELEFBQU0sTUFBQSxBQUFBLE9BQU8sRUFBUCxBQUFOLE9BQWEsQUF0Q2IsaUJBQWlCLEVBc0NYLEFBQU4sT0FBYSxBQWpDYixZQUFZLEVBaUNOLEFBQU4sT0FBYSxBQUtiLFlBQVksQ0FMRTtFQUNWLFVBQVUsRXpGL0JNLE9BQU87RXlGZ0N2QixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3pGbENOLE9BQU8sR3lGbUNyQjs7QUFFRCxBQUFBLFlBQVksQ0FBQztFQUVULFVBQVUsRUFBRSx3QkFBSTtFQUNoQixLQUFLLEVBQUUsT0FBUTtFQUNmLFlBQVksRUFBRSxPQUFRLEdBQ3pCOztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBbUJFO0FBRUYsQUFBTSxNQUFBLEFBQUEsS0FBSyxFQUFMLEFBQU4sS0FBVyxBQXZFWCxpQkFBaUIsRUF1RVgsQUFBTixLQUFXLEFBbEVYLFlBQVksRUFrRU4sQUFBTixLQUFXLEFBNUJYLFlBQVksQ0E0QkE7RUFDVixnQkFBZ0IsRUFBRSxXQUFZO0VBQzlCLFlBQVksRXpGNUZGLE9BQU8sR3lGNEhsQjtFdkZwR0csTUFBTSxFQUFKLFNBQVMsRUFBRSxJQUFJO0l1RmtFckIsQUFBTSxNQUFBLEFBQUEsS0FBSyxFQUFMLEFBQU4sS0FBVyxBQXZFWCxpQkFBaUIsRUF1RVgsQUFBTixLQUFXLEFBbEVYLFlBQVksRUFrRU4sQUFBTixLQUFXLEFBNUJYLFlBQVksQ0E0QkE7TUFJUixnQkFBZ0IsRUFBRSxlQUFnQjtNQUNsQyxXQUFXLEVBQUUsQ0FBRTtNQUNmLFlBQVksRUFBRSxDQUFFO01BQ2hCLFVBQVUsRUFBRSxDQUFFLEdBMkJqQjtFdkZwR0csTUFBTSxFQUFKLFNBQVMsRUFBRSxTQUFTO0l1RmtFMUIsQUFBTSxNQUFBLEFBQUEsS0FBSyxFQUFMLEFBQU4sS0FBVyxBQXZFWCxpQkFBaUIsRUF1RVgsQUFBTixLQUFXLEFBbEVYLFlBQVksRUFrRU4sQUFBTixLQUFXLEFBNUJYLFlBQVksQ0E0QkE7TUFVUixlQUFlLEVBQUUsV0FBWTtNQUM3QixpQkFBaUIsRUFBRSxTQUFVO01BQzdCLFdBQVcsRUFBRSxJQUFLO00zQnZHZCxrQkFBa0IsRTJCd0dGLENBQUMsQ0FBRSxDQUFDLENBQUUsR0FBRyxDQUFFLENBQUMsQ0FBRSxJQUFJO00zQnZHbEMsZUFBZSxFMkJ1R0MsQ0FBQyxDQUFFLENBQUMsQ0FBRSxHQUFHLENBQUUsQ0FBQyxDQUFFLElBQUk7TTNCdEdsQyxVQUFVLEUyQnNHTSxDQUFDLENBQUUsQ0FBQyxDQUFFLEdBQUcsQ0FBRSxDQUFDLENBQUUsSUFBSTtNQUN0QyxhQUFhLEVBQUUsR0FBSSxHQW9CdEI7TUFsQ0QsQUFBTSxNQUFBLEFBQUEsS0FBSyxBQWVOLFVBQVUsRUFmVCxBQUFOLEtBQVcsQUFlTixVQUFVLEFBdEZmLGlCQUFpQixFQXVFWCxBQUFOLEtBQVcsQUFlTixVQUFVLEFBakZmLFlBQVksRUFrRU4sQUFBTixLQUFXLEFBZU4sVUFBVSxBQTNDZixZQUFZLENBMkNJO1FBQ1YsVUFBVSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEN6RmpHVCxPQUFPLEd5RmtHcEI7TUFqQkwsQUFBTSxNQUFBLEFBQUEsS0FBSyxBQWtCTixXQUFXLEVBbEJWLEFBQU4sS0FBVyxBQWtCTixXQUFXLEFBekZoQixpQkFBaUIsRUF1RVgsQUFBTixLQUFXLEFBa0JOLFdBQVcsQUFwRmhCLFlBQVksRUFrRU4sQUFBTixLQUFXLEFBa0JOLFdBQVcsQUE5Q2hCLFlBQVksQ0E4Q0s7UUFDWCxVQUFVLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3pGekZmLE9BQU8sR3lGMEZkO01BcEJMLEFBQU0sTUFBQSxBQUFBLEtBQUssQUFxQk4sU0FBUyxFQXJCUixBQUFOLEtBQVcsQUFxQk4sU0FBUyxBQTVGZCxpQkFBaUIsRUF1RVgsQUFBTixLQUFXLEFBcUJOLFNBQVMsQUF2RmQsWUFBWSxFQWtFTixBQUFOLEtBQVcsQUFxQk4sU0FBUyxBQWpEZCxZQUFZLENBaURHO1FBQ1QsVUFBVSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEN6RmxGckIsT0FBTyxHeUZtRlI7TUF2QkwsQUFBTSxNQUFBLEFBQUEsS0FBSyxBQXdCTixVQUFVLEVBeEJULEFBQU4sS0FBVyxBQXdCTixVQUFVLEFBL0ZmLGlCQUFpQixFQXVFWCxBQUFOLEtBQVcsQUF3Qk4sVUFBVSxBQTFGZixZQUFZLEVBa0VOLEFBQU4sS0FBVyxBQXdCTixVQUFVLEFBcERmLFlBQVksQ0FvREk7UUFDVixVQUFVLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3pGOUdmLE9BQU8sR3lGK0dkO0V2RjVGRCxNQUFNLEVBQUosU0FBUyxFQUFFLFNBQVM7SXVGa0UxQixBQTRCRSxNQTVCSSxBQUFBLEtBQUssQ0E0QlQsYUFBYSxFQTVCVCxBQTRCSixLQTVCUyxBQXZFWCxpQkFBaUIsQ0FtR2YsYUFBYSxFQTVCVCxBQTRCSixLQTVCUyxBQWxFWCxZQUFZLENBOEZWLGFBQWEsRUE1QlQsQUE0QkosS0E1QlMsQUE1QlgsWUFBWSxDQXdEVixhQUFhLENBQUM7TUFHVixPQUFPLEVBQUUsQ0FBRSxHQUVkOztBQUdIOzs7Ozs7Ozs7Ozs7Ozs7RUFlRTtBQUNGLEFBQUEsU0FBUyxDQUFDO0VBQ04sZ0JBQWdCLEVBQUUsV0FBWTtFQUM5QixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3pGaEpULE9BQU87RXlGaUpmLE9BQU8sRUFBRSxDQUFFLEdBbURkO0V2RjVLRyxNQUFNLEVBQUosU0FBUyxFQUFFLElBQUk7SXVGc0hyQixBQUFBLFNBQVMsQ0FBQztNQUtGLFdBQVcsRUFBRSxDQUFFO01BQ2YsWUFBWSxFQUFFLENBQUU7TUFDaEIsVUFBVSxFQUFFLENBQUUsR0ErQ3JCO0V2RjVLRyxNQUFNLEVBQUosU0FBUyxFQUFFLFNBQVM7SXVGc0gxQixBQUFBLFNBQVMsQ0FBQztNM0IvSUYsa0JBQWtCLEUyQnlKRSxDQUFDLENBQUUsQ0FBQyxDQUFFLEdBQUcsQ0FBRSxDQUFDLENBQUUsSUFBSTtNM0J4SnRDLGVBQWUsRTJCd0pLLENBQUMsQ0FBRSxDQUFDLENBQUUsR0FBRyxDQUFFLENBQUMsQ0FBRSxJQUFJO00zQnZKdEMsVUFBVSxFMkJ1SlUsQ0FBQyxDQUFFLENBQUMsQ0FBRSxHQUFHLENBQUUsQ0FBQyxDQUFFLElBQUk7TUFDdEMsYUFBYSxFQUFFLEdBQUk7TUFDbkIsVUFBVSxFQUFFLFNBQVUsR0EwQzdCO01BdERELEFBQUEsU0FBUyxBQWFBLEtBQUssQ0FBQztRQUNMLFVBQVUsRUFBRSxHQUFHLENBQUMsS0FBSyxDekZuSmIsT0FBTyxHeUZvSmhCO01BZlQsQUFBQSxTQUFTLEFBZ0JBLE1BQU0sQ0FBQztRQUNOLFVBQVUsRUFBRSxHQUFHLENBQUMsS0FBSyxDekYzSW5CLE9BQU8sR3lGNElWO01BbEJULEFBQUEsU0FBUyxBQW1CQSxJQUFJLENBQUM7UUFDSixVQUFVLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3pGcEl6QixPQUFPLEd5RnFJSjtNQXJCVCxBQUFBLFNBQVMsQUFzQkEsS0FBSyxDQUFBO1FBQ0osVUFBVSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEN6RmhLbkIsT0FBTyxHeUZpS1Y7RXZGOUlMLE1BQU0sRUFBSixTQUFTLEVBQUUsSUFBSTtJdUZzSHJCLEFBMEJNLFNBMUJHLEdBMEJILENBQUMsQ0FBQztNQUVJLEtBQUssRUFBRSxJQUFLLEdBRW5CO0VBOUJMLEFBK0JJLFNBL0JLLENBK0JMLGFBQWEsQ0FBQztJQUlWLFFBQVEsRUFBRSxNQUFPLEdBVXBCO0l2Rm5LRCxNQUFNLEVBQUosU0FBUyxFQUFFLElBQUk7TXVGc0hyQixBQStCSSxTQS9CSyxDQStCTCxhQUFhLENBQUM7UUFFTixPQUFPLEVBQUUsSUFBSyxHQVlyQjtJQTdDTCxBQW9DUSxTQXBDQyxDQStCTCxhQUFhLENBS1QsR0FBRyxDQUFDO01BQ0EsS0FBSyxFQUFFLElBQUssR0FDZjtJdkY1SkwsTUFBTSxFQUFKLFNBQVMsRUFBRSxTQUFTO011RnNIMUIsQUErQkksU0EvQkssQ0ErQkwsYUFBYSxDQUFDO1FBU04sVUFBVSxFQUFFLEtBQU0sR0FLekI7SXZGbktELE1BQU0sRUFBSixTQUFTLEVBQUUsU0FBUztNdUZzSDFCLEFBK0JJLFNBL0JLLENBK0JMLGFBQWEsQ0FBQztRQVlOLFVBQVUsRUFBRSxLQUFNLEdBRXpCO0V2Rm5LRCxNQUFNLEVBQUosU0FBUyxFQUFFLFNBQVM7SXVGc0gxQixBQWdEYyxTQWhETCxDQThDTCxjQUFjLEdBRUosR0FBRyxDQUFDO01BQ0YsVUFBVSxFQUFFLEtBQU0sR0FDckI7O0F2RnhLVCxNQUFNLEVBQUosU0FBUyxFQUFFLFNBQVM7RXVGNksxQixBQUF5QixjQUFYLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQztJQUUzQixVQUFVLEVBQUUsS0FBTSxHQUs3Qjs7QXZGcExHLE1BQU0sRUFBSixTQUFTLEVBQUUsU0FBUztFdUY2SzFCLEFBQXlCLGNBQVgsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDO0lBSzNCLFVBQVUsRUFBRSxLQUFNLEdBRTdCOztBdkZwTEcsTUFBTSxFQUFKLFNBQVMsRUFBRSxTQUFTO0V1RnNMMUIsQUFBeUIsY0FBWCxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUM7SUFFM0IsVUFBVSxFQUFFLEtBQU0sR0FLN0I7O0F2RjdMRyxNQUFNLEVBQUosU0FBUyxFQUFFLFNBQVM7RXVGc0wxQixBQUF5QixjQUFYLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQztJQUszQixVQUFVLEVBQUUsS0FBTSxHQUU3Qjs7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXdDRTtBQUdGLEFBQUEsYUFBYSxDQUFDO0U5QzlQUixZQUFZLEVBL0JHLEtBQUs7RUFnQ3BCLFlBQVksRUEvQkUsR0FBRztFQWdDakIsWUFBWSxFQTVCRyxPQUFXO0VBa0M1QixhQUFhLEUxQ3dDUCxPQUFVO0UwQ3ZDaEIsT0FBTyxFOENzUDJDLElBQUk7RTlDcFB0RCxVQUFVLEUzQ25EVSxPQUFPO0UyQ29EQSxLQUFLLEUzQ3RCOUIsT0FBTyxHeUYwUVo7RUFGRCxBOUM5T00sYThDOE9PLEc5QzlPUCxZQUFZLENBQUM7SUFBRSxVQUFVLEVBQUUsQ0FBRSxHQUFJO0U4QzhPdkMsQTlDN09NLGE4QzZPTyxHOUM3T1AsV0FBVyxDQUFDO0lBQUUsYUFBYSxFQUFFLENBQUUsR0FBSTtFOEM2T3pDLEE5Q3hPUSxhOEN3T0ssQzlDeE9MLEVBQUUsRThDd09WLEE5Q3hPWSxhOEN3T0MsQzlDeE9ELEVBQUUsRThDd09kLEE5Q3hPZ0IsYThDd09ILEM5Q3hPRyxFQUFFLEU4Q3dPbEIsQTlDeE9vQixhOEN3T1AsQzlDeE9PLEVBQUUsRThDd090QixBOUN4T3dCLGE4Q3dPWCxDOUN4T1csRUFBRSxFOEN3TzFCLEE5Q3hPNEIsYThDd09mLEM5Q3hPZSxFQUFFLEU4Q3dPOUIsQTlDeE9nQyxhOEN3T25CLEM5Q3hPbUIsQ0FBQyxFOEN3T2pDLEE5Q3hPbUMsYThDd090QixDOUN4T3NCLEVBQUUsRThDd09yQyxBOUN4T3VDLGE4Q3dPMUIsQzlDeE8wQixFQUFFLENBQUM7SUFBRSxLQUFLLEUzQ2hDM0MsT0FBTyxHMkNnQzJEO0U4Q3dPeEUsQTlDak9NLGE4Q2lPTyxDOUNqT1AsRUFBRSxFOENpT1IsQTlDak9VLGE4Q2lPRyxDOUNqT0gsRUFBRSxFOENpT1osQTlDak9jLGE4Q2lPRCxDOUNqT0MsRUFBRSxFOENpT2hCLEE5Q2pPa0IsYThDaU9MLEM5Q2pPSyxFQUFFLEU4Q2lPcEIsQTlDak9zQixhOENpT1QsQzlDak9TLEVBQUUsRThDaU94QixBOUNqTzBCLGE4Q2lPYixDOUNqT2EsRUFBRSxDQUFDO0lBQ3JCLFdBQVcsRUFBRSxDQUFFO0lBQUUsYUFBYSxFQUFFLFFBQVEsR0FFekM7SThDOE5QLEE5Q2pPTSxhOENpT08sQzlDak9QLEVBQUUsQUFFQyxVQUFVLEU4QytObkIsQTlDak9VLGE4Q2lPRyxDOUNqT0gsRUFBRSxBQUVILFVBQVUsRThDK05uQixBOUNqT2MsYThDaU9ELEM5Q2pPQyxFQUFFLEFBRVAsVUFBVSxFOEMrTm5CLEE5Q2pPa0IsYThDaU9MLEM5Q2pPSyxFQUFFLEFBRVgsVUFBVSxFOEMrTm5CLEE5Q2pPc0IsYThDaU9ULEM5Q2pPUyxFQUFFLEFBRWYsVUFBVSxFOEMrTm5CLEE5Q2pPMEIsYThDaU9iLEM5Q2pPYSxFQUFFLEFBRW5CLFVBQVUsQ0FBQztNQUFFLFdBQVcsRUFBRSxHQUFJLEdBQUk7O0E4Q21PM0MsQUFBQSxlQUFlLENBQUM7RUFDWixRQUFRLEVBQUUsUUFBUztFQUNuQixPQUFPLEVBQUUsZUFBZ0I7RUFDekIsWUFBWSxFQUFFLGVBQWdCLEdBY2pDO0VBakJELEFBSUksZUFKVyxDQUlYLENBQUMsQ0FBQztJQUNFLEtBQUssRUFBRSxrQkFBbUIsR0FDN0I7RXZGcFBELE1BQU0sRUFBSixTQUFTLEVBQUUsR0FBRztJdUY4T3BCLEFBT0ssZUFQVSxHQU9WLEtBQUssQ0FBQztNQUVDLFFBQVEsRUFBRSxRQUFTO01BQ25CLE1BQU0sRUFBRSxJQUFLO01BQ2IsS0FBSyxFQUFFLEtBQU0sR0FLcEI7RXZGOVBELE1BQU0sRUFBSixTQUFTLEVBQUUsU0FBUztJdUY4TzFCLEFBT0ssZUFQVSxHQU9WLEtBQUssQ0FBQztNQU9DLFFBQVEsRUFBRSxPQUFRLEdBRXpCOztBQUdMLEFBQUEsV0FBVyxDQUFDO0VBSVYsVUFBVSxFQUZJLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksR0FtQy9CO0VBckNELEFBTUUsV0FOUyxDQU1ULGlCQUFpQixDQUFDO0lBQ2hCLE9BQU8sRUFOTSxJQUFJLEdBV2xCO0lBWkgsQUFTSSxXQVRPLENBTVQsaUJBQWlCLENBR2YsVUFBVSxDQUFDO01BQ1QsV0FBVyxFQUFFLElBQUssR0FDbkI7RUFYTCxBQWNFLFdBZFMsQ0FjVCxpQkFBaUIsQ0FBQztJQUNoQixVQUFVLEVBQUUsT0FBUTtJQUNwQixVQUFVLEVBZEUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSTtJQWU1QixPQUFPLEVBaEJNLElBQUksR0FpQmxCO0VBbEJILEFBb0JFLFdBcEJTLENBb0JULGlCQUFpQixDQUFDO0lBQ2hCLFdBQVcsRUFBRSxJQUFLO0lBVWxCLFFBQVEsRUFBRSxRQUFTLEdBS3BCO0lBcENILEFBb0JFLFdBcEJTLENBb0JULGlCQUFpQixBQUdkLEdBQUcsQ0FBQztNQUNILEtBQUssRXpGN1JDLE9BQU8sR3lGOFJkO0lBekJMLEFBb0JFLFdBcEJTLENBb0JULGlCQUFpQixBQU1kLEtBQUssQ0FBQztNQUNMLEtBQUssRXpGclJELE9BQU8sR3lGc1JaO0lBNUJMLEFBZ0NJLFdBaENPLENBb0JULGlCQUFpQixDQVlmLFlBQVksQ0FBQztNQUNYLFFBQVEsRUFBRSxRQUFTO01BQ25CLEtBQUssRUFBRSxJQUFLLEdBQ2I7O0FBSUwsQUFBQSxlQUFlLENBQUM7RUFHWixVQUFVLEVBQUMsZ0JBQWlCLEdBeUQvQjtFQTVERCxBQUFBLGVBQWUsQUFLVixPQUFPLENBQUM7SUFDTCxPQUFPLEVBQUUsRUFBRztJQUNaLE9BQU8sRUFBRSxLQUFNO0lBQ2YsTUFBTSxFQVBPLEdBQUcsR0FTbkI7RUFWTCxBQUFBLGVBQWUsQUFhVixVQUFVLEFBQUEsT0FBTyxDQUFDO0lBQ2YsTUFBTSxFQUFFLENBQUUsR0FDYjtFQWZMLEFBQUEsZUFBZSxBQWlCVixZQUFZLEFBQUEsT0FBTyxDQUFDO0lBQ2pCLFVBQVUsRUFBRSxPQUFRLEdBQ3ZCO0VBbkJMLEFBQUEsZUFBZSxBQXFCVixjQUFjLEFBQUEsT0FBTyxDQUFDO0lBQ25CLFVBQVUsRXpGbFVOLE9BQU8sR3lGbVVkO0VBdkJMLEFBQUEsZUFBZSxBQXlCVixjQUFjLEFBQUEsT0FBTyxDQUFDO0lBQ25CLFVBQVUsRXpGM1RSLE9BQU8sR3lGNFRaO0VBM0JMLEFBNkJZLGVBN0JHLENBNkJYLFFBQVEsQUFBQSxjQUFjLENBQUM7SUFDbkIsV0FBVyxFQUFFLElBQUssR0FDckI7RUEvQkwsQUFpQ0ksZUFqQ1csQ0FpQ1gsUUFBUSxDQUFDO0lBQ0wsT0FBTyxFQUFFLE1BQU8sR0FDbkI7RUFuQ0wsQUFxQ1ksZUFyQ0csQ0FxQ1gsUUFBUSxBQUFBLGFBQWEsQ0FBQztJQUNsQixjQUFjLEVBQUUsSUFBSyxHQUN4QjtFQXZDTCxBQTBDZ0IsZUExQ0QsQUF5Q1YsTUFBTSxDQUNILFFBQVEsQUFBQSxjQUFjLENBQUM7SUFDbkIsV0FBVyxFQUFFLEdBQUksR0FDcEI7RUE1Q1QsQUE4Q1EsZUE5Q08sQUF5Q1YsTUFBTSxDQUtILFFBQVEsQ0FBQztJQUNMLE9BQU8sRUFBRSxNQUFPLEdBQ25CO0VBaERULEFBa0RnQixlQWxERCxBQXlDVixNQUFNLENBU0gsUUFBUSxBQUFBLGFBQWEsQ0FBQztJQUNsQixjQUFjLEVBQUUsSUFBSyxHQUN4QjtFQXBEVCxBQXVETyxlQXZEUSxDQXVEWCxHQUFHLEFBQUEsWUFBWSxDQUFDO0lBQ1osTUFBTSxFQUFFLEtBQU07SUFDZCxLQUFLLEVBQUUsSUFBSztJQUNaLGVBQWUsRUFBRSxLQUFNLEdBQzFCOztBQUdMLEFBQUEsY0FBYyxDQUFDO0U5QzFYVCxZQUFZLEVBL0JHLEtBQUs7RUFnQ3BCLFlBQVksRUEvQkUsR0FBRztFQWdDakIsWUFBWSxFQTVCRyxPQUFXO0VBa0M1QixhQUFhLEUxQ3dDUCxPQUFVO0UwQ3ZDaEIsT0FBTyxFOENrWHVDLElBQUksQ0FBQyxJQUFJO0U5Q2hYdkQsVUFBVSxFM0NZTSxPQUFPO0UyQ1hJLEtBQUssRTNDdEI5QixPQUFPO0V5RnNZWCxZQUFZLEVBQUUsT0FBUSxHQUN2QjtFQUhELEE5QzFXTSxjOEMwV1EsRzlDMVdSLFlBQVksQ0FBQztJQUFFLFVBQVUsRUFBRSxDQUFFLEdBQUk7RThDMFd2QyxBOUN6V00sYzhDeVdRLEc5Q3pXUixXQUFXLENBQUM7SUFBRSxhQUFhLEVBQUUsQ0FBRSxHQUFJO0U4Q3lXekMsQTlDcFdRLGM4Q29XTSxDOUNwV04sRUFBRSxFOENvV1YsQTlDcFdZLGM4Q29XRSxDOUNwV0YsRUFBRSxFOENvV2QsQTlDcFdnQixjOENvV0YsQzlDcFdFLEVBQUUsRThDb1dsQixBOUNwV29CLGM4Q29XTixDOUNwV00sRUFBRSxFOENvV3RCLEE5Q3BXd0IsYzhDb1dWLEM5Q3BXVSxFQUFFLEU4Q29XMUIsQTlDcFc0QixjOENvV2QsQzlDcFdjLEVBQUUsRThDb1c5QixBOUNwV2dDLGM4Q29XbEIsQzlDcFdrQixDQUFDLEU4Q29XakMsQTlDcFdtQyxjOENvV3JCLEM5Q3BXcUIsRUFBRSxFOENvV3JDLEE5Q3BXdUMsYzhDb1d6QixDOUNwV3lCLEVBQUUsQ0FBQztJQUFFLEtBQUssRTNDaEMzQyxPQUFPLEcyQ2dDMkQ7RThDb1d4RSxBOUM3Vk0sYzhDNlZRLEM5QzdWUixFQUFFLEU4QzZWUixBOUM3VlUsYzhDNlZJLEM5QzdWSixFQUFFLEU4QzZWWixBOUM3VmMsYzhDNlZBLEM5QzdWQSxFQUFFLEU4QzZWaEIsQTlDN1ZrQixjOEM2VkosQzlDN1ZJLEVBQUUsRThDNlZwQixBOUM3VnNCLGM4QzZWUixDOUM3VlEsRUFBRSxFOEM2VnhCLEE5QzdWMEIsYzhDNlZaLEM5QzdWWSxFQUFFLENBQUM7SUFDckIsV0FBVyxFQUFFLENBQUU7SUFBRSxhQUFhLEVBQUUsUUFBUSxHQUV6QztJOEMwVlAsQTlDN1ZNLGM4QzZWUSxDOUM3VlIsRUFBRSxBQUVDLFVBQVUsRThDMlZuQixBOUM3VlUsYzhDNlZJLEM5QzdWSixFQUFFLEFBRUgsVUFBVSxFOEMyVm5CLEE5QzdWYyxjOEM2VkEsQzlDN1ZBLEVBQUUsQUFFUCxVQUFVLEU4QzJWbkIsQTlDN1ZrQixjOEM2VkosQzlDN1ZJLEVBQUUsQUFFWCxVQUFVLEU4QzJWbkIsQTlDN1ZzQixjOEM2VlIsQzlDN1ZRLEVBQUUsQUFFZixVQUFVLEU4QzJWbkIsQTlDN1YwQixjOEM2VlosQzlDN1ZZLEVBQUUsQUFFbkIsVUFBVSxDQUFDO01BQUUsV0FBVyxFQUFFLEdBQUksR0FBSTs7QThDZ1czQyxBQUFBLFdBQVcsQ0FBQztFOUMvWE4sWUFBWSxFQS9CRyxLQUFLO0VBZ0NwQixZQUFZLEVBL0JFLEdBQUc7RUFnQ2pCLFlBQVksRUE1QkcsT0FBVztFQWtDNUIsYUFBYSxFMUN3Q1AsT0FBVTtFMEN2Q2hCLE9BQU8sRThDdVhjLElBQUk7RTlDclh6QixVQUFVLEVuQjY4QkgsT0FBVztFbUI1OEJTLEtBQUssRTNDdEI5QixPQUFPLEd5RjJZWjtFQUZELEE5Qy9XTSxXOEMrV0ssRzlDL1dMLFlBQVksQ0FBQztJQUFFLFVBQVUsRUFBRSxDQUFFLEdBQUk7RThDK1d2QyxBOUM5V00sVzhDOFdLLEc5QzlXTCxXQUFXLENBQUM7SUFBRSxhQUFhLEVBQUUsQ0FBRSxHQUFJO0U4QzhXekMsQTlDeldRLFc4Q3lXRyxDOUN6V0gsRUFBRSxFOEN5V1YsQTlDeldZLFc4Q3lXRCxDOUN6V0MsRUFBRSxFOEN5V2QsQTlDeldnQixXOEN5V0wsQzlDeldLLEVBQUUsRThDeVdsQixBOUN6V29CLFc4Q3lXVCxDOUN6V1MsRUFBRSxFOEN5V3RCLEE5Q3pXd0IsVzhDeVdiLEM5Q3pXYSxFQUFFLEU4Q3lXMUIsQTlDelc0QixXOEN5V2pCLEM5Q3pXaUIsRUFBRSxFOEN5VzlCLEE5Q3pXZ0MsVzhDeVdyQixDOUN6V3FCLENBQUMsRThDeVdqQyxBOUN6V21DLFc4Q3lXeEIsQzlDeld3QixFQUFFLEU4Q3lXckMsQTlDeld1QyxXOEN5VzVC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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBcWFFO0FBRUY7Ozs7Ozs7Ozs7Ozs7RUFhRTtBQUVGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBa1VFO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBb0JFO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBdUJFO0FBR0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFzQkU7QUFFRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUF1QkU7QUFFRixBQUFBLEdBQUcsQUFDRSxTQUFTLENBQUM7RUFDUCxXQUFXLEVBQUUsSUFBSztFQUNsQixZQUFZLEVBQUUsSUFBSztFQUNuQixPQUFPLEVBQUUsS0FBTSxHQUNsQjs7QUFMTCxBQUFBLEdBQUcsQUFNRSxTQUFTLENBQUM7RUFDUCxRQUFRLEVBQUUsUUFBUztFQUNuQixHQUFHLEVBQUUsSUFBSyxHQUNiOztBQUdMLEFBQUEsaUJBQWlCLENBQUM7RUFDZCxLQUFLLEVBQUUsSUFBSztFQUNaLE1BQU0sRUFBRSxJQUFLLEdBQ2hCOztBQUVELEFBQUEsYUFBYSxDQUFDO0VBQ1YsU0FBUyxFekdqeEJILE9BQVU7RXlHa3hCaEIsTUFBTSxFQUFFLElBQUssR0FLaEI7RUFIRyxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxTQUFTO0lBSnhDLEFBQUEsYUFBYSxDQUFDO01BS1IsU0FBUyxFekdyeEJMLFFBQVUsR3lHdXhCbkI7O0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQWdERTtBQUVBLEFBQUEsY0FBYyxDQUFDO0VBQ2IsUUFBUSxFQUFFLFFBQVM7RUFDbkIsT0FBTyxFQUFFLEtBQU07RUFHZix1QkFBdUIsRUFBRSxXQUFZO0VBQ3JDLG9CQUFvQixFQUFFLFdBQVk7RUFDbEMsZUFBZSxFQUFFLFdBQVksR0E0QjlCO0VBbkNELEFBQUEsY0FBYyxBQVVYLE1BQU0sQ0FBQztJQUNOLEtBQUssRUFBRSxJQUFLO0lBQ1osTUFBTSxFQUFDLElBQUs7SUFDWixRQUFRLEVBQUUsUUFBUztJQUNuQixPQUFPLEVBQUUsRUFBRztJQUNaLEdBQUcsRUFBRSxHQUFJO0lBQ1QsSUFBSSxFQUFFLEdBQUk7SUFDVCxPQUFPLEVBQUMsRUFBRztJQUNaLE9BQU8sRUFBQyxDQUFFO0lBQ1YsT0FBTyxFQUFDLEtBQU07SUFDZCxVQUFVLEVBQUUscUJBQUk7SUFDaEIsVUFBVSxFQUFFLHlCQUEwQjtJQUN0QyxrQkFBa0IsRUFBRSxvQkFBcUI7SUFDekMsZUFBZSxFQUFFLG9CQUFxQjtJQUN0QyxhQUFhLEVBQUUsb0JBQXFCLEdBQ3JDO0VBekJILEFBQUEsY0FBYyxBQTBCWCxNQUFNLEFBQUEsTUFBTSxDQUFDO0lBQ1osVUFBVSxFQUFFLHFCQUFJLEdBQ2pCO0VBNUJILEFBQUEsY0FBYyxBQStCWCxNQUFNLEFBQUEsTUFBTSxFQS9CZixBQUFBLGNBQWMsQUFnQ1gsTUFBTSxBQUFBLE1BQU0sQUFBQSxNQUFNLENBQUM7SUFDbEIsVUFBVSxFQUFFLFdBQVksR0FDekI7O0FBR0gsQUFBQSxzQkFBc0IsQ0FBQztFQUVyQixRQUFRLEVBQUUsUUFBUztFQUNuQixPQUFPLEVBQUUsQ0FBRTtFQUNYLEdBQUcsRUFBRSxHQUFJO0VBQ1QsU0FBUyxFQUFFLGdCQUFVO0VBQ3JCLEtBQUssRUFBRSxJQUFLLEdBdUJiO0V4R3o2QkMsTUFBTSxFQUFKLFNBQVMsRUFBRSxTQUFTO0l3RzQ0QnhCLEFBQUEsc0JBQXNCLEFBVWpCLHFCQUFxQixDQUFDO01BQ3JCLEdBQUcsRUFBRSxHQUFJO01BQ1QsU0FBUyxFQUFFLGdCQUFVLEdBQ3RCO0V4R3o1QkgsTUFBTSxFQUFKLFNBQVMsRUFBRSxTQUFTO0l3RzQ0QnhCLEFBQUEsc0JBQXNCLEFBZ0JqQixvQkFBb0IsQ0FBQztNQUNwQixHQUFHLEVBQUUsR0FBSTtNQUNULFNBQVMsRUFBRSxnQkFBVSxHQUN0QjtJQW5CTCxBQUFBLHNCQUFzQixBQXFCakIsMEJBQTBCLENBQUM7TUFDeEIsR0FBRyxFQUFFLE9BQVE7TUFDYixTQUFTLEVBQUUsT0FBUTtNQUNuQixNQUFNLEVBQUUsQ0FBRTtNQUNWLElBQUksRUFBRSxDQUFFO01BQ1IsT0FBTyxFQUFFLFNBQVUsR0FDdEI7O0FDditCUDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQTRCRTtBQUVGLEFBQUEsTUFBTSxDQUFDO0VBQ0gsT0FBTyxFMUc2REQsU0FBVSxDMEc3RE0sQ0FBQztFQUN2QixhQUFhLEVBQUUsR0FBRyxDQUFDLEtBQUssQzNHT3JCLE9BQU87RTJHTlYsVUFBVSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEMzR01sQixPQUFPO0UyR0xWLFFBQVEsRUFBRSxJQUFLLEdBc0JsQjtFQTFCRCxBQU1RLE1BTkYsR0FNRSxNQUFNLENBQUM7SUFDUCxXQUFXLEUxR3VEVCxRQUFVLEcwR3REZjtFQVJMLEFBVVEsTUFWRixHQVVFLEtBQUssQ0FBQztJQUNOLFlBQVksRTFHbURWLFFBQVUsRzBHbERmO0VBWkwsQUFBQSxNQUFNLEFBY0QsTUFBTSxDQUFDO0lBU04sU0FBUyxFQUFFLEtBQU07SUFDakIsT0FBTyxFMUdzQ0gsU0FBVSxDMEd0Q1EsQ0FBQyxHQUN4QjtJQXpCTCxBQUFBLE1BQU0sQUFjRCxNQUFNLEFBQ0osTUFBTSxDQUFDO01BQ04sV0FBVyxFMUc4Q1QsU0FBVSxHMEc3Q2I7SUFqQlAsQUFBQSxNQUFNLEFBY0QsTUFBTSxBQUtKLEtBQUssQ0FBQztNQUNMLFlBQVksRTFHMENWLFNBQVUsRzBHekNiOztBQU9QLEFBQUEsZUFBZSxDQUFDO0VBQ1osY0FBYyxFQUFFLFNBQVU7RUFDMUIsV0FBVyxFM0dpRU0sR0FBRztFMkdoRXBCLFNBQVMsRTFHK0JILFFBQVUsRzBHOUJuQjs7QUM5REQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUE4Q0U7QUFFRixBQUFBLFVBQVUsQ0FBQztFQUNQLGVBQWUsRUFBRSxJQUFLO0VBQ3RCLFFBQVEsRUFBRSxNQUFPLEdBMEVwQjtFQTVFRCxBQUlRLFVBSkUsR0FJRixFQUFFLENBQUM7SUFFSCxPQUFPLEVBQUUsWUFBYTtJQUN0QixPQUFPLEVBQUUsSUFBSztJQUNkLEtBQUssRUFBRSxJQUFLO0lBQ1osT0FBTyxFQUFFLEtBQU07SUFDZixRQUFRLEVBQUUsUUFBUztJQUNuQixPQUFPLEUzR2lDTCxTQUFVLENBQVYsU0FBVSxDQUFWLFNBQVUsQzJHakNtQyxDQUFDO0lBQ2hELGFBQWEsRUFBRSxLQUFLLENBQUMsR0FBRyxDNUd1RVAsT0FBTyxHNEd2QjNCO0lBNURMLEFBSVEsVUFKRSxHQUlGLEVBQUUsQWxEa0dMLE9BQU8sRWtEdEdaLEFBSVEsVUFKRSxHQUlGLEVBQUUsQWxEbUdMLE1BQU0sQ0FBQztNQUNKLE9BQU8sRUFBRSxFQUFHO01BQ1osT0FBTyxFQUFFLEtBQU0sR0FDbEI7SWtEMUdMLEFBSVEsVUFKRSxHQUlGLEVBQUUsQWxEdUdMLE1BQU0sQ0FBQztNQUNKLEtBQUssRUFBRSxJQUFLLEdBQ2Y7SWtEaEdHLE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7TUFidkMsQUFJUSxVQUpFLEdBSUYsRUFBRSxDQUFDO1FBVUMsT0FBTyxFM0c4QlQsVUFBVSxDQUFWLFNBQVUsQ0FBVixVQUFVLEMyRzlCMkMsQ0FBQztRQUNwRCxhQUFhLEVBQUUsSUFBSztRQUNwQixTQUFTLEUzRzRCWCxRQUFVLEcyR2dCZjtJQXpDRyxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxTQUFTO01BbkI1QyxBQW9CZ0IsVUFwQk4sR0FJRixFQUFFLEdBZ0JNLENBQUMsQ0FBQztRQUNGLE9BQU8sRUFBRSxZQUFhO1FBQ3RCLE9BQU8sRUFBRSxJQUFLLEdBQ2pCO0lBdkJiLEFBMEJnQixVQTFCTixHQUlGLEVBQUUsR0FzQkUsQ0FBQyxHQUFHLEdBQUc7SUExQm5CLEFBMkIwQixVQTNCaEIsR0FJRixFQUFFLEdBdUJFLENBQUMsR0FBRyxPQUFPLEdBQUcsR0FBRyxDQUFDO01BQ2xCLFNBQVMsRTNHZ0JYLE9BQVU7TTJHZlIsU0FBUyxFM0dlWCxPQUFVO00yR2RSLFVBQVUsRTNHY1osT0FBVTtNMkdiUixVQUFVLEUzR2FaLE9BQVUsRzJHSlg7TUF4Q1QsQUEwQmdCLFVBMUJOLEdBSUYsRUFBRSxHQXNCRSxDQUFDLEdBQUcsR0FBRyxBQU9OLEtBQUs7TUFqQ2xCLEFBMkIwQixVQTNCaEIsR0FJRixFQUFFLEdBdUJFLENBQUMsR0FBRyxPQUFPLEdBQUcsR0FBRyxBQU1oQixLQUFLLENBQUM7UUFDSCxZQUFZLEUzR1VsQixTQUFVLEcyR1RQO01BbkNiLEFBMEJnQixVQTFCTixHQUlGLEVBQUUsR0FzQkUsQ0FBQyxHQUFHLEdBQUcsQUFXTixNQUFNO01BckNuQixBQTJCMEIsVUEzQmhCLEdBSUYsRUFBRSxHQXVCRSxDQUFDLEdBQUcsT0FBTyxHQUFHLEdBQUcsQUFVaEIsTUFBTSxDQUFDO1FBQ0osV0FBVyxFM0dNakIsU0FBVSxHMkdMUDtJQXZDYixBQUlRLFVBSkUsR0FJRixFQUFFLEFBc0NELFlBQVksQ0FBQztNQUNWLFdBQVcsRUFBRSxDQUFFLEdBQ2xCO0lBNUNULEFBSVEsVUFKRSxHQUlGLEVBQUUsQUEwQ0QsV0FBVyxDQUFDO01BQ1QsYUFBYSxFQUFFLElBQUs7TUFDcEIsY0FBYyxFQUFFLENBQUUsR0FXckI7TUFURyxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxJQUFJO1FBbEQzQyxBQW1EcUIsVUFuRFgsR0FJRixFQUFFLEFBMENELFdBQVcsR0FLQSxDQUFDLEFBQUEsT0FBTyxDQUFDO1VBQ1QsYUFBYSxFQUFFLENBQUUsR0FDcEI7TUFyRGpCLEFBd0RjLFVBeERKLEdBSUYsRUFBRSxBQTBDRCxXQUFXLENBVU4sVUFBVSxDQUFDO1FBQ1gsVUFBVSxFM0diZCxTQUFVLEcyR2NQO0VBMURiLEFBOERhLFVBOURILEdBOERGLEVBQUUsR0FBRyxFQUFFLENBQUM7SS9DaENSLFNBQVMsRUFBQyxNQUFDO0lBRVAsV0FBVyxFQUFDLEdBQUM7SStDZ0NqQixhQUFhLEVBQUUsQ0FBRSxHQUNwQjtFQWpFTCxBQW9Fd0IsVUFwRWQsQ0FvRUosRUFBRSxDQUFBLEFBQUEsSUFBQyxDQUFELE1BQUMsQUFBQSxJQUFlLE9BQU8sQ0FBQztJQUMxQixNQUFNLEUzR3pCRixRQUFVLEMyR3lCTSxDQUFDLEdBQ3RCO0VBdEVMLEFBeUVNLFVBekVJLENBeUVKLFVBQVUsQ0FBQztJbER6QmYsUUFBUSxFQUFFLFFBQVM7SUFDbkIsR0FBRyxFQUFFLEdBQUk7SUFDVCxpQkFBaUIsRUFBRSxnQkFBVTtJQUM3QixhQUFhLEVBQUUsZ0JBQVU7SUFDekIsU0FBUyxFQUFFLGdCQUFVO0lBQ3JCLE9BQU8sRUFBRSxZQUFhLEdrRHNCbkI7O0FBR0wsQUFBRSxFQUFBLEFBQUEsVUFBVSxDQUFDO0VBQ1QsTUFBTSxFQUFFLENBQUUsR0FDYjs7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQTZERTtBQUVGLEFBQUEsZUFBZSxDQUFDO0VBQ1osS0FBSyxFNUdqS0gsT0FBTztFNEdrS1QsU0FBUyxFM0d2R0gsSUFBVTtFMkd3R2hCLFVBQVUsRTNHeEdKLE9BQVU7RTJHeUdoQixPQUFPLEVBQUUsS0FBTSxHQUNsQjs7QUFFRCxBQUFzQixVQUFaLEFBQUEsV0FBVyxDQUFDLFVBQVUsQ0FBQztFbEQxRS9CLFFBQVEsRUFBRSxRQUFTO0VBQ25CLEdBQUcsRUFBRSxJQUFLO0VBQ1YsaUJBQWlCLEVBQUUsSUFBSztFQUN4QixhQUFhLEVBQUUsSUFBSztFQUNwQixTQUFTLEVBQUUsSUFBSztFQUNoQixPQUFPLEVBQUUsS0FBTTtFa0R1RWIsVUFBVSxFM0c5R0osU0FBVSxHMkcrR25COztBQUVELE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFFLElBQUk7RUFDOUIsQUFBNEMsVUFBbEMsQUFBQSxXQUFXLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLEFBQUEsS0FBSyxHQUFHLFVBQVUsQ0FBQztJQUNyRCxXQUFXLEUzR25ITCxTQUFVLEcyR29IakI7RUFFRCxBQUE2QyxVQUFuQyxBQUFBLFdBQVcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQUFBQSxNQUFNLEdBQUcsVUFBVSxDQUFDO0lBQ3RELFlBQVksRTNHdkhOLFNBQVUsRzJHd0hqQjs7QUFHSCxBQUFzQyxVQUE1QixBQUFBLFdBQVcsR0FBRyxFQUFFLEFBQUEsV0FBVyxDQUFDLFVBQVUsQ0FBQztFQUM3QyxVQUFVLEUzRzVISixVQUFVLEcyRzZIbkI7O0FBR0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUF5RUU7QUFFRixBQUE2QixVQUFuQixBQUFBLE9BQU8sR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUc7QUFDaEMsQUFBdUMsVUFBN0IsQUFBQSxPQUFPLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxPQUFPLEdBQUcsR0FBRyxDQUFDO0VBQ3ZDLFNBQVMsRTNHN01ILE1BQVU7RTJHOE1oQixTQUFTLEUzRzlNSCxNQUFVO0UyRytNaEIsVUFBVSxFM0cvTUosTUFBVTtFMkdnTmhCLFVBQVUsRTNHaE5KLE1BQVUsRzJHeU5uQjtFQWRELEFBQTZCLFVBQW5CLEFBQUEsT0FBTyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxBQU8zQixLQUFLO0VBTlYsQUFBdUMsVUFBN0IsQUFBQSxPQUFPLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxPQUFPLEdBQUcsR0FBRyxBQU1yQyxLQUFLLENBQUM7SUFDSCxZQUFZLEVBQUUsUUFBVyxHQUM1QjtFQVRMLEFBQTZCLFVBQW5CLEFBQUEsT0FBTyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxBQVczQixNQUFNO0VBVlgsQUFBdUMsVUFBN0IsQUFBQSxPQUFPLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxPQUFPLEdBQUcsR0FBRyxBQVVyQyxNQUFNLENBQUM7SUFDSixXQUFXLEVBQUUsUUFBVyxHQUMzQjs7QUFHTDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBbURFO0FBRUYsQUFBaUIsVUFBUCxBQUFBLE1BQU0sQ0FBQyxHQUFHLEVBQXBCLEFBQWlCLFVBQVAsQWpDZ0hWLG9CQUFvQixBQWlEakIsS0FBSyxDaUNqS1MsR0FBRyxFQUFwQixBQUFpQixVQUFQLEFqQ2dIVixvQkFBb0IsQUFzRGpCLE9BQU8sQ2lDdEtPLEdBQUcsQ0FBQztFQUNqQixhQUFhLEUzR2pSUCxPQUFVLEcyR2tSbkI7O0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBNENFO0FBRUYsQUFBa0IsVUFBUixBQUFBLEtBQUssR0FBRyxFQUFFLENBQUM7RUFDakIsYUFBYSxFQUFFLElBQUs7RUFDcEIsU0FBUyxFM0dwVUgsSUFBVSxHMkdxVW5COztBQUNELEFBQW9CLFVBQVYsQUFBQSxLQUFLLEdBQUcsRUFBRSxBQUFBLFdBQVcsQ0FBQztFQUM1QixhQUFhLEVBQUUsR0FBRyxDQUFDLEtBQUssQzVHaFNILE9BQU8sRzRHaVMvQjs7QUFDRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW9ERTtBQUVGLEFBQW1CLFVBQVQsQUFBQSxJQUFJLEdBQUcsRUFBRSxBQUFBLFdBQVc7QUFDOUIsQUFBd0IsVUFBZCxBQUFBLEtBQUssQUFBQSxJQUFJLEdBQUcsRUFBRSxBQUFBLFdBQVcsQ0FBQztFQUNoQyxhQUFhLEVBQUUsSUFBSyxHQUN2Qjs7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1FRTtBQUlFLE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVM7RUFGeEMsQUFDTSxVQURJLEFBQUEsUUFBUSxHQUNaLEVBQUUsQ0FBQztJQUVELE9BQU8sRTNHNWNMLFVBQVUsQ0FBVixTQUFVLENBQVYsVUFBVSxDMkc0Y3VDLENBQUM7SUFDcEQsYUFBYSxFQUFFLElBQUs7SUFDcEIsU0FBUyxFM0c5Y1AsUUFBVSxHMkdnZGpCOztBQUdIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUEwQ0U7QUFFRixBQUFVLFVBQUEsQUFBQSxTQUFTLENBQUM7RUFDaEIsU0FBUyxFQUFFLElBQUs7RUFDaEIsU0FBUyxFM0dqZ0JILE9BQVUsRzJHaWhCbkI7RUFsQkQsQUFJUSxVQUpFLEFBQUEsU0FBUyxHQUlYLEVBQUUsQ0FBQztJQUNILEtBQUssRUFBRSxJQUFLO0lBQ1osT0FBTyxFQUFFLENBQUU7SUFDWCxhQUFhLEVBQUUsSUFBSztJQUNwQixhQUFhLEUzR3ZnQlgsVUFBVSxHMkdnaEJmO0lBakJMLEFBVVksVUFWRixBQUFBLFNBQVMsR0FJWCxFQUFFLEdBTUUsRUFBRSxDQUFDO01BQ0gsT0FBTyxFM0cxZ0JULE9BQVUsQzJHMGdCYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FLOUI7TUFIRyxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxTQUFTO1FBYmhELEFBVVksVUFWRixBQUFBLFNBQVMsR0FJWCxFQUFFLEdBTUUsRUFBRSxDQUFDO1VBSUMsT0FBTyxFQUFFLENBQUUsR0FFbEI7O0FBSVQsQUFBMkIsVUFBakIsQUFBQSxTQUFTLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQztFQUMzQixLQUFLLEVBQUUsSUFBSztFQUNaLE9BQU8sRUFBRSxZQUFhO0VBQ3RCLE9BQU8sRUFBRSxJQUFLO0VBQ2QsV0FBVyxFM0d2aEJMLFNBQVU7RTJHd2hCaEIsY0FBYyxFM0d4aEJSLFNBQVU7RTJHeWhCaEIsYUFBYSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEM1R2xmSCxPQUFPLEc0RzJsQi9CO0VBL0dELEFBUU0sVUFSSSxBQUFBLFNBQVMsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQVF4QixFQUFFLENBQUM7SWxEdmhCUCxRQUFRLEVBQUUsUUFBUztJQUNuQixHQUFHLEVBQUUsR0FBSTtJQUNULGlCQUFpQixFQUFFLGdCQUFVO0lBQzdCLGFBQWEsRUFBRSxnQkFBVTtJQUN6QixTQUFTLEVBQUUsZ0JBQVU7SUFDckIsT0FBTyxFQUFFLFlBQWEsR2tEd2hCbkI7SUFIRyxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxTQUFTO01BWDVDLEFBUU0sVUFSSSxBQUFBLFNBQVMsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQVF4QixFQUFFLENBQUM7UWxEemZQLFFBQVEsRUFBRSxRQUFTO1FBQ25CLEdBQUcsRUFBRSxJQUFLO1FBQ1YsaUJBQWlCLEVBQUUsSUFBSztRQUN4QixhQUFhLEVBQUUsSUFBSztRQUNwQixTQUFTLEVBQUUsSUFBSztRQUNoQixPQUFPLEVBQUUsS0FBTSxHa0QwZlo7RUFkTCxBQWdCUSxVQWhCRSxBQUFBLFNBQVMsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQWdCdEIsQ0FBQyxDQUFDO0lBQ0YsWUFBWSxFQUFFLENBQUUsR0FrQ25CO0lBakNHLE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7TUFsQnZDLEFBZ0JRLFVBaEJFLEFBQUEsU0FBUyxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBZ0J0QixDQUFDLENBQUM7UWxGN2dCTixZQUFZLEVBQUcsU0FBYztRQUM3QixhQUFhLEVBQUcsU0FBYztRQUs5QixLQUFLLEVBekZFLEdBQVU7UUFvR3NCLEtBQUssRUMrSTlCLElBQUksR2lGZ1pqQjtRQW5ETCxBQWdCUSxVQWhCRSxBQUFBLFNBQVMsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQWdCdEIsQ0FBQyxBQUlJLEtBQUssQ0FBQztVQUNGLFlBQVksRUFBRSxDQUFFLEdBU3BCO1VBOUJiLEFBdUJxQixVQXZCWCxBQUFBLFNBQVMsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQWdCdEIsQ0FBQyxBQUlJLEtBQUssR0FHRyxpQkFBaUIsQ0FBQztZQUNuQixhQUFhLEVBQUUsQ0FBRSxHQUtuQjtNQUpFLE1BQU0sTUFBTixNQUFNLE1BUEQsU0FBUyxFQUFDLElBQUksT0FPRixTQUFTLEVBQUMsU0FBUztRQXpCeEQsQUF1QnFCLFVBdkJYLEFBQUEsU0FBUyxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBZ0J0QixDQUFDLEFBSUksS0FBSyxHQUdHLGlCQUFpQixDQUFDO1VsRnBoQm5DLFlBQVksRUFBRyxTQUFjO1VBQzdCLGFBQWEsRUFBRyxTQUFjO1VBSzlCLEtBQUssRUF6RkUsR0FBVTtVQW9Hc0IsS0FBSyxFQytJOUIsSUFBSTtVaUZ3WEUsYUFBYSxFQUFFLENBQUUsR0FFdkI7SUFYVixNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxJQUFJO1FBbEJ2QyxBQWdCUSxVQWhCRSxBQUFBLFNBQVMsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQWdCdEIsQ0FBQyxBQWdCSSxNQUFNLENBQUM7VUFDSixhQUFhLEVBQUUsQ0FBRSxHQVNwQjtVQTFDYixBQW1DcUIsVUFuQ1gsQUFBQSxTQUFTLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FnQnRCLENBQUMsQUFnQkksTUFBTSxHQUdFLGlCQUFpQixDQUFDO1lBQ25CLFlBQVksRUFBRSxDQUFFLEdBS2xCO01BSkUsTUFBTSxNQUFOLE1BQU0sTUFuQkQsU0FBUyxFQUFDLElBQUksT0FtQkYsU0FBUyxFQUFDLFNBQVM7UUFyQ3hELEFBbUNxQixVQW5DWCxBQUFBLFNBQVMsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQWdCdEIsQ0FBQyxBQWdCSSxNQUFNLEdBR0UsaUJBQWlCLENBQUM7VWxGaGlCbkMsWUFBWSxFQUFHLFNBQWM7VUFDN0IsYUFBYSxFQUFHLFNBQWM7VUFLOUIsS0FBSyxFQXpGRSxHQUFVO1VBb0dzQixLQUFLLEVDK0k5QixJQUFJO1VpRm9ZRSxZQUFZLEVBQUUsQ0FBRSxHQUV0QjtJQUlWLE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVM7TUE3QzVDLEFBOENnQixVQTlDTixBQUFBLFNBQVMsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQWdCdEIsQ0FBQyxHQThCTyxHQUFHLEVBOUNuQixBQThDbUMsVUE5Q3pCLEFBQUEsU0FBUyxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBZ0J0QixDQUFDLEdBOEJnQixPQUFPLEdBQUcsR0FBRyxDQUFDO1FBQ3ZCLFNBQVMsRTNHbGtCZixTQUFVO1EyR21rQkosU0FBUyxFM0dua0JmLFNBQVUsRzJHb2tCUDtFQUlULE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLElBQUk7SUFyRG5DLEFBQTJCLFVBQWpCLEFBQUEsU0FBUyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUM7TUFzRHZCLFdBQVcsRTNHemtCVCxTQUFVO00yRzBrQlosY0FBYyxFM0cxa0JaLFNBQVU7TTJHMmtCWixhQUFhLEVBQUUsSUFBSztNQUNwQixVQUFVLEVBQUUsR0FBRyxDQUFDLEtBQUssQzVHcmlCSixPQUFPLEc0RzJsQi9CO0VBL0dELEFBNERnQixVQTVETixBQUFBLFNBQVMsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQTREdEIsS0FBSyxHQUFHLEdBQUc7RUE1RG5CLEFBNkQwQixVQTdEaEIsQUFBQSxTQUFTLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0E2RHRCLEtBQUssR0FBRyxPQUFPLEdBQUcsR0FBRyxDQUFDO0lBQ3RCLGFBQWEsRTNHamxCWCxTQUFVLEcyR3FsQmY7SUFIRyxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxJQUFJO01BL0R2QyxBQTREZ0IsVUE1RE4sQUFBQSxTQUFTLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0E0RHRCLEtBQUssR0FBRyxHQUFHO01BNURuQixBQTZEMEIsVUE3RGhCLEFBQUEsU0FBUyxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBNkR0QixLQUFLLEdBQUcsT0FBTyxHQUFHLEdBQUcsQ0FBQztRQUdsQixhQUFhLEUzR2xsQlEsQ0FBQyxHMkdvbEI3QjtFQWxFTCxBQW9FaUIsVUFwRVAsQUFBQSxTQUFTLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FvRXRCLE1BQU0sR0FBRyxHQUFHO0VBcEVwQixBQXFFMkIsVUFyRWpCLEFBQUEsU0FBUyxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBcUV0QixNQUFNLEdBQUcsT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUN2QixZQUFZLEUzR3psQlYsU0FBVSxHMkc2bEJmO0lBSEcsTUFBTSxDQUFOLFFBQVE7TUF2RWhCLEFBb0VpQixVQXBFUCxBQUFBLFNBQVMsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQW9FdEIsTUFBTSxHQUFHLEdBQUc7TUFwRXBCLEFBcUUyQixVQXJFakIsQUFBQSxTQUFTLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FxRXRCLE1BQU0sR0FBRyxPQUFPLEdBQUcsR0FBRyxDQUFDO1FBR25CLFlBQVksRTNHMWxCUyxDQUFDLEcyRzRsQjdCO0VBMUVMLEFBNEVJLFVBNUVNLEFBQUEsU0FBUyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBNEUxQixDQUFDLENBQUM7SUFDRSxVQUFVLEUzR2htQlIsU0FBVTtJMkdpbUJaLGFBQWEsRUFBRSxDQUFFO0lBQ2pCLE9BQU8sRUFBRSxJQUFLO0lBQ2QsS0FBSyxFNUc5cEJQLE9BQU8sRzRHbXFCUjtJQUhHLE1BQU0sTUFBRCxNQUFNLE1BQU0sU0FBUyxFQUFDLFNBQVM7TUFsRjVDLEFBNEVJLFVBNUVNLEFBQUEsU0FBUyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBNEUxQixDQUFDLENBQUM7UUFPSSxPQUFPLEVBQUUsS0FBTSxHQUVwQjtFQXJGTCxBQXVGc0IsVUF2RlosQUFBQSxTQUFTLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0F1RjFCLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztJQUNqQixhQUFhLEVBQUUsQ0FBRTtJQUNqQixTQUFTLEUzRzVtQlAsSUFBVSxHMkdnbkJmO0lBSEcsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztNQTFGNUMsQUF1RnNCLFVBdkZaLEFBQUEsU0FBUyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBdUYxQixpQkFBaUIsQ0FBQyxFQUFFLENBQUM7UUFJYixTQUFTLEUzRzltQlgsTUFBVSxHMkdnbkJmO0VBN0ZMLEFBK0ZJLFVBL0ZNLEFBQUEsU0FBUyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBK0YxQixnQkFBZ0IsQ0FBQztJQUNmLFNBQVMsRTNHbm5CTCxRQUFVLEcyR2lvQmY7SUE5R0wsQUFrR00sVUFsR0ksQUFBQSxTQUFTLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0ErRjFCLGdCQUFnQixDQUdkLENBQUMsQ0FBQztNQUNBLEtBQUssRTVHOXFCTCxPQUFPLEc0R3dyQlI7TUE3R1AsQUFrR00sVUFsR0ksQUFBQSxTQUFTLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0ErRjFCLGdCQUFnQixDQUdkLENBQUMsQUFFRSxPQUFPLENBQUM7UUFDUCxPQUFPLEVBQUUsS0FBTTtRQUNmLEtBQUssRTVHbHJCSixPQUFPO1E0R21yQlIsV0FBVyxFM0cxbkJYLFFBQVU7UTJHMm5CVixZQUFZLEUzRzNuQlosUUFBVSxHMkc0bkJYO01BekdULEFBa0dNLFVBbEdJLEFBQUEsU0FBUyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBK0YxQixnQkFBZ0IsQ0FHZCxDQUFDLEFBUUUsTUFBTSxFQTFHZixBQWtHTSxVQWxHSSxBQUFBLFNBQVMsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQStGMUIsZ0JBQWdCLENBR2QsQ0FBQyxBQVFXLE1BQU0sQ0FBQztRQUNmLEtBQUssRTVHenFCRyxPQUFPLEc0RzBxQmhCOztBQUtULEFBQXdDLFVBQTlCLEFBQUEsU0FBUyxHQUFHLEVBQUUsQ0FBQSxBQUFBLElBQUMsQ0FBRCxNQUFDLEFBQUEsSUFBZSxDQUFDLENBQUM7RUFDdEMsVUFBVSxFM0dyb0JKLE9BQVU7RTJHc29CaEIsYUFBYSxFM0d0b0JQLFNBQVUsRzJHMm9CbkI7RUFKRyxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxJQUFJO0lBSG5DLEFBQXdDLFVBQTlCLEFBQUEsU0FBUyxHQUFHLEVBQUUsQ0FBQSxBQUFBLElBQUMsQ0FBRCxNQUFDLEFBQUEsSUFBZSxDQUFDLENBQUM7TUFJbEMsVUFBVSxFM0d4b0JSLFNBQVU7TTJHeW9CWixhQUFhLEUzR3pvQlgsU0FBVSxHMkcyb0JuQjs7QUN2dUJEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQTJERTtBQUdGLEFBQUEsMkJBQTJCLENBQUM7RUFDeEIsVUFBVSxFQUFFLENBQUU7RUFDZCxXQUFXLEVBQUUsQ0FBRSxHQVdsQjtFQWJELEFBR0ksMkJBSHVCLENBR3ZCLEdBQUcsQ0FBQztJQUNBLEtBQUssRUFBRSxJQUFLO0lBQ1osTUFBTSxFQUFFLElBQUssR0FDaEI7RUFDRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxTQUFTO0lBUHhDLEFBQUEsMkJBQTJCLENBQUM7TUFRcEIsS0FBSyxFQUFFLEtBQU07TUFDYixXQUFXLEVBQUUsSUFBSztNQUNsQixhQUFhLEVBQUUsSUFBSztNQUNwQixTQUFTLEVBQUUsS0FBTSxHQUV4Qjs7QUFFRCxBQUFBLDRCQUE0QixDQUFDO0VBQ3pCLFVBQVUsRUFBRSxDQUFFO0VBQ2QsYUFBYSxFQUFFLE1BQU87RUFDdEIsTUFBTSxFQUFFLEtBQU07RUFDZCxLQUFLLEVBQUUsS0FBTTtFQUNiLFdBQVcsRUFBRSxNQUFPLEdBS3ZCO0VBSkcsTUFBTSxNQUFELE1BQU0sTUFBTSxTQUFTLEVBQUMsU0FBUztJQU54QyxBQUFBLDRCQUE0QixDQUFDO01BT3JCLE1BQU0sRUFBRSxLQUFNO01BQ2QsVUFBVSxFQUFFLEtBQU0sR0FFekI7O0FBRUQsQUFBQSxvQkFBb0IsQ0FBQztFQUNqQixVQUFVLEVBQUUsQ0FBRTtFQUNkLFdBQVcsRUFBRSxDQUFFLEdBY2xCO0VBaEJELEFBR0ksb0JBSGdCLENBR2hCLEdBQUcsQ0FBQztJQUNBLEtBQUssRUFBRSxJQUFLO0lBQ1osTUFBTSxFQUFFLElBQUssR0FDaEI7RUFDRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxTQUFTO0lBUHhDLEFBQUEsb0JBQW9CLENBQUM7TUFRYixLQUFLLEVBQUUsS0FBTTtNQUNiLFdBQVcsRUFBRSxJQUFLO01BQ2xCLGFBQWEsRUFBRSxJQUFLLEdBTTNCO01BaEJELEFBV1Esb0JBWFksQ0FXWixHQUFHLENBQUM7UUFDQSxLQUFLLEVBQUUsSUFBSztRQUNaLE1BQU0sRUFBRSxLQUFNLEdBQ2pCOztBQUlULEFBQUEsdUJBQXVCLENBQUM7RUFDcEIsVUFBVSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEM3R3BFYixPQUFPO0U2R3FFZixXQUFXLEVBQUUsSUFBSyxHQUNyQjs7QUFFRCxBQUFBLGdCQUFnQixDQUFDO0VBQ2IsUUFBUSxFQUFFLFFBQVM7RUFFbkIsd0JBQXdCLEVBQUUsSUFBSyxHQUNsQzs7QUFHRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBNkNFO0FBRUYsQUFBQSxpQkFBaUIsQUFDWixNQUFNLENBQUM7RUFDSixPQUFPLEVBQUUsR0FBSSxHQUNoQjs7QUFDRCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxTQUFTO0VBSnhDLEFBQUEsaUJBQWlCLENBQUM7SUFLVixTQUFTLEU1Ry9FUCxRQUFVO0k0R2dGWixRQUFRLEVBQUUsUUFBUztJQUNuQixHQUFHLEVBQUUsSUFBSyxHQUtqQjtJQVpELEFBQUEsaUJBQWlCLEFBUVIsTUFBTSxDQUFDO01BQ0osT0FBTyxFQUFFLEVBQUcsR0FDZjs7QUFLTCxNQUFNLE1BQUQsTUFBTSxNQUFNLFNBQVMsRUFBQyxTQUFTO0VBRHhDLEFBQUEsbUJBQW1CLENBQUM7SUFFWixTQUFTLEU1RzFGUCxRQUFVLEc0RzRGbkI7O0FDeExEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBNEVFO0FBSUYsQUFBQSxVQUFVLENBQUM7RW5FcENMLFlBQVksRUEvQkcsS0FBSztFQWdDcEIsWUFBWSxFQS9CRSxHQUFHO0VBZ0NqQixZQUFZLEVBNUJHLE9BQVc7RUFrQzVCLGFBQWEsRTFDd0NQLE9BQVU7RTBDdkNoQixPQUFPLEVtRTRCK0IsSUFBSTtFbkUxQjFDLFVBQVUsRTNDWE4sT0FBTztFMkNZZ0IsS0FBSyxFM0N0QjlCLE9BQU87RThHZ0RULGFBQWEsRUFBRSxHQUFJO0VBQ25CLFlBQVksRUFBRSxXQUFZO0VoRDVDdEIsa0JBQWtCLEVnRDZDRixDQUFDLENBQUUsQ0FBQyxDQUFFLEdBQUcsQ0FBRSxDQUFDLENBQUUsSUFBSTtFaEQ1Q2xDLGVBQWUsRWdENENDLENBQUMsQ0FBRSxDQUFDLENBQUUsR0FBRyxDQUFFLENBQUMsQ0FBRSxJQUFJO0VoRDNDbEMsVUFBVSxFZ0QyQ00sQ0FBQyxDQUFFLENBQUMsQ0FBRSxHQUFHLENBQUUsQ0FBQyxDQUFFLElBQUk7RXBENkdsQyxhQUFhLEVBQUMsSUFBQztFb0QzR25CLFdBQVcsRUFBRSxDQUFFLEdBQ2xCO0VBUEQsQW5FcEJNLFVtRW9CSSxHbkVwQkosWUFBWSxDQUFDO0lBQUUsVUFBVSxFQUFFLENBQUUsR0FBSTtFbUVvQnZDLEFuRW5CTSxVbUVtQkksR25FbkJKLFdBQVcsQ0FBQztJQUFFLGFBQWEsRUFBRSxDQUFFLEdBQUk7RW1FbUJ6QyxBbkVkUSxVbUVjRSxDbkVkRixFQUFFLEVtRWNWLEFuRWRZLFVtRWNGLENuRWRFLEVBQUUsRW1FY2QsQW5FZGdCLFVtRWNOLENuRWRNLEVBQUUsRW1FY2xCLEFuRWRvQixVbUVjVixDbkVkVSxFQUFFLEVtRWN0QixBbkVkd0IsVW1FY2QsQ25FZGMsRUFBRSxFbUVjMUIsQW5FZDRCLFVtRWNsQixDbkVka0IsRUFBRSxFbUVjOUIsQW5FZGdDLFVtRWN0QixDbkVkc0IsQ0FBQyxFbUVjakMsQW5FZG1DLFVtRWN6QixDbkVkeUIsRUFBRSxFbUVjckMsQW5FZHVDLFVtRWM3QixDbkVkNkIsRUFBRSxDQUFDO0lBQUUsS0FBSyxFM0NoQzNDLE9BQU8sRzJDZ0MyRDtFbUVjeEUsQW5FUE0sVW1FT0ksQ25FUEosRUFBRSxFbUVPUixBbkVQVSxVbUVPQSxDbkVQQSxFQUFFLEVtRU9aLEFuRVBjLFVtRU9KLENuRVBJLEVBQUUsRW1FT2hCLEFuRVBrQixVbUVPUixDbkVQUSxFQUFFLEVtRU9wQixBbkVQc0IsVW1FT1osQ25FUFksRUFBRSxFbUVPeEIsQW5FUDBCLFVtRU9oQixDbkVQZ0IsRUFBRSxDQUFDO0lBQ3JCLFdBQVcsRUFBRSxDQUFFO0lBQUUsYUFBYSxFQUFFLFFBQVEsR0FFekM7SW1FSVAsQW5FUE0sVW1FT0ksQ25FUEosRUFBRSxBQUVDLFVBQVUsRW1FS25CLEFuRVBVLFVtRU9BLENuRVBBLEVBQUUsQUFFSCxVQUFVLEVtRUtuQixBbkVQYyxVbUVPSixDbkVQSSxFQUFFLEFBRVAsVUFBVSxFbUVLbkIsQW5FUGtCLFVtRU9SLENuRVBRLEVBQUUsQUFFWCxVQUFVLEVtRUtuQixBbkVQc0IsVW1FT1osQ25FUFksRUFBRSxBQUVmLFVBQVUsRW1FS25CLEFuRVAwQixVbUVPaEIsQ25FUGdCLEVBQUUsQUFFbkIsVUFBVSxDQUFDO01BQUUsV0FBVyxFQUFFLEdBQUksR0FBSTs7QW1FYzNDLEFBQUEsa0JBQWtCLENBQUM7RUFDZixzQkFBc0IsRUFBRSxHQUFJO0VBQzVCLHVCQUF1QixFQUFFLEdBQUk7RUFDN0IsZ0JBQWdCLEU5RzdDSCxPQUFPO0U4RzhDcEIsTUFBTSxFQUFFLEtBQU07RUFDZCxPQUFPLEU3R0ZELFNBQVUs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 */
