@charset "UTF-8";
/*
 * Vars
 */
/*  ------------------------------------------------------
  Colors
------------------------------------------------------  */
/* FYI */
/* Grays */
/*
  *    Ceaser cubic bezierâ€™s
  *    @see: http://matthewlein.com/ceaser/
  *
  *    In order from soft to extreme (top to bottom)
  */
/*  ------------------------------------------------------
  Fonts
------------------------------------------------------  */
@import url("https://fonts.googleapis.com/css?family=Roboto:300,400,500,700");
/*  ------------------------------------------------------
  Grid
------------------------------------------------------  */
/*
 *  ----------------------------------------------------------------------------
 *    Viewport breakpoints
 *  ----------------------------------------------------------------------------
 *
 *  Based on em, 1em for media queries is the browser's default font-size.
 *  In generic preset to 16px / 14pt.
 *
 *  Why do we use em?
 *  http://blog.cloudfour.com/the-ems-have-it-proportional-media-queries-ftw/
 */
/*
 * Extends
 */
/*
 * Mixins
 */
/*  ------------------------------------------------------
   Horizontal Align
  ------------------------------------------------------  */
/*  ------------------------------------------------------
   Vertical Align
  ------------------------------------------------------  */
/*  ------------------------------------------------------
   Horizontal and Vertical Align
  ------------------------------------------------------  */
/*  ------------------------------------------------------
   Classes for using mixins as defined above
  ------------------------------------------------------  */
.align--v {
  top: 50%;
  transform: translateY(-50%); }

.align--h {
  left: 50%;
  transform: translateX(-50%); }

.align--vh {
  left: 50%;
  top: 50%;
  transform: translateX(-50%) translateY(-50%); }

/*
 *    Block mixin
 */
/*
 *    Keyframes mixin
 */
/*
 *    Placeholder
 */
/*
 *    Uni-color SVG
 */
/*
 *    Font mixin - custom shorthand
 */
/*
 *    User select mixin
 *
 *    Default value: `none`.
 */
/*
 *  ----------------------------------------------------------------------------
 *    Viewport mixin
 *  ----------------------------------------------------------------------------
 *
 *
 *  Sample use:
 *
 *  @include viewport('small-min'){ display: none; }
 *  @include viewport('medium'){  display: none; }
 *  @include viewport('large-max'){  display: none; }
 */
/*
 *  ----------------------------------------------------------------------------
 *    Enable-on-{{specific-viewport}} mixin
 *  ----------------------------------------------------------------------------
 *
 *
 *  Mixin to show - and automaticly hide - elements only on one
 *  specific viewports.
 *
 *  Optional param `display` is preset to `block`.
 *
 *
 *  Sample use:
 *
 *  @include enable-on-small();
 *  @include enable-on-medium(inline-block);
 *  @include disable-on-large();
 *  @include disable-on-extra-large();
 */
/* Small variations */
/* Medium variations */
/* Large variations */
/* Extra large variations */
/*
 * Layout
 */
/*
 *  Align content.
 */
.align--left {
  text-align: left; }

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

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

/*
 *  Disable vertical overflow.
 *
 *  Set the height to 100% and disables the overflow,
 *  this way there are no scrollbars whatsoever.
 *
 */
.overflow--none {
  overflow: hidden;
  height: 100%; }

/*
 *  Lock item
 *
 *  This disables its overflow.
 *  Like .overflow--none but without (re-)setting the height.
 *
 */
.locked {
  overflow: hidden; }

/*
 *  Hidden
 *
 *  Hides the object widht display set to `none`.
 *
 */
.hidden {
  display: none; }

/*
 *  Viewport specific
 *
 *  Enable an object to hide or show for a specific viewport.
 *
 */
.hide--small {
  /* Smallest variation */
  /* Small variations */
  /* Medium variations */
  /* Large variations */
  /* Extra large variations */ }
  @media (max-width: 47.99em) {
    .hide--small {
      display: none; } }

.show--small {
  display: none;
  /* Smallest variation */
  /* Small variations */
  /* Medium variations */
  /* Large variations */
  /* Extra large variations */ }
  @media (max-width: 47.99em) {
    .show--small {
      display: block; } }

.hide--medium-min {
  /* Smallest variation */
  /* Small variations */
  /* Medium variations */
  /* Large variations */
  /* Extra large variations */ }
  @media (min-width: 48em) {
    .hide--medium-min {
      display: none; } }

/*
 *  HTML and BODY layout
 */
html,
body {
  width: 100%;
  min-width: 320px;
  margin: 0;
  font-size: 10px;
  font-family: "Roboto", serif;
  color: #000;
  text-rendering: antialiased;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: antialiased;
  /* Smallest variation */
  /* Small variations */
  /* Medium variations */
  /* Large variations */
  /* Extra large variations */ }
  @media (max-width: 47.99em) {
    html,
    body {
      font-size: 7px; } }

html {
  height: 100%; }

body {
  min-height: 100%;
  background: #ffffff;
  border-top: 2px solid #ff0054;
  border-bottom: 2px solid #ff0054;
  font-size: 2rem;
  line-height: 1.5;
  color: inherit;
  font-weight: inherit; }

/*
 *  Default styling & resets.
 */
*, *:before, *:after {
  box-sizing: border-box; }

a,
article,
b,
button,
div,
figure,
form,
h1,
h2,
h3,
h4,
h5,
header,
img,
li,
ol,
p,
section,
strong,
span,
svg,
ul {
  position: relative;
  margin: 0;
  padding: 0; }

a,
a:hover,
a:active,
a:visited {
  cursor: pointer;
  outline: 0;
  text-decoration: none;
  color: inherit; }

a {
  transition: all 100ms ease-in-out; }

button {
  border: none;
  background: none;
  cursor: pointer;
  white-space: nowrap; }

figure {
  margin: 0;
  text-align: center; }

hr {
  width: 100%;
  height: 5px;
  margin: 30px 0 0 0;
  border: none;
  background-color: #000; }

img,
svg {
  max-width: 100%;
  max-height: 100%;
  vertical-align: middle; }

.row {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -ms-flex-direction: row;
      flex-direction: row;
  -ms-flex-pack: justify;
      justify-content: space-between;
  max-width: 1440px;
  margin: 15rem auto;
  padding: 0 5rem;
  /* Smallest variation */
  /* Small variations */
  /* Medium variations */
  /* Large variations */
  /* Extra large variations */ }
  @media (max-width: 47.99em) {
    .row {
      margin: 10rem auto; } }

.col-1 {
  -ms-flex: 0 0 5.5833333333%;
      flex: 0 0 5.5833333333%; }

.col-2 {
  -ms-flex: 0 0 14.1666666667%;
      flex: 0 0 14.1666666667%; }

.col-3 {
  -ms-flex: 0 0 22.75%;
      flex: 0 0 22.75%; }

.col-4 {
  -ms-flex: 0 0 31.3333333333%;
      flex: 0 0 31.3333333333%; }

.col-5 {
  -ms-flex: 0 0 39.9166666667%;
      flex: 0 0 39.9166666667%; }

.col-6 {
  -ms-flex: 0 0 48.5%;
      flex: 0 0 48.5%; }

.col-7 {
  -ms-flex: 0 0 57.0833333333%;
      flex: 0 0 57.0833333333%; }

.col-8 {
  -ms-flex: 0 0 65.6666666667%;
      flex: 0 0 65.6666666667%; }

.col-9 {
  -ms-flex: 0 0 74.25%;
      flex: 0 0 74.25%; }

.col-10 {
  -ms-flex: 0 0 82.8333333333%;
      flex: 0 0 82.8333333333%; }

.col-11 {
  -ms-flex: 0 0 91.4166666667%;
      flex: 0 0 91.4166666667%; }

.col-12 {
  -ms-flex: 0 0 100%;
      flex: 0 0 100%; }

.col-xs-12 {
  /* Smallest variation */
  /* Small variations */
  /* Medium variations */
  /* Large variations */
  /* Extra large variations */ }
  @media (max-width: 20em) {
    .col-xs-12 {
      -ms-flex: 0 0 100%;
          flex: 0 0 100%; } }

.col-s-12 {
  /* Smallest variation */
  /* Small variations */
  /* Medium variations */
  /* Large variations */
  /* Extra large variations */ }
  @media (max-width: 47.99em) {
    .col-s-12 {
      -ms-flex: 0 0 100%;
          flex: 0 0 100%; } }

/*
 * Elements
 */
/*
 *  BUTTONS
 */
[class^="e--button"] {
  display: inline-block;
  padding: 0 2rem;
  border: 2px solid #ff0054;
  white-space: nowrap;
  text-align: center;
  font-size: 2rem;
  line-height: 2.5;
  color: #ff0054;
  font-weight: 400; }
  [class^="e--button"][class*="--white"] {
    border-color: #fff;
    color: #fff; }
    [class^="e--button"][class*="--white"]:hover {
      background-color: #fff;
      color: #ff0054; }

/*
 *  CREDITS
 */
.credits span {
  color: #797979; }

.disabled {
  cursor: not-allowed !important; }

h1 {
  font-size: 6rem;
  line-height: 1.25;
  color: #ff0054;
  font-weight: 700;
  /* Smallest variation */
  /* Small variations */
  /* Medium variations */
  /* Large variations */
  /* Extra large variations */ }
  @media (max-width: 47.99em) {
    h1 {
      font-size: 4rem; } }

h2 {
  margin-bottom: 3rem;
  font-size: 3rem;
  line-height: 1.8;
  color: inherit;
  font-weight: 500;
  /* Smallest variation */
  /* Small variations */
  /* Medium variations */
  /* Large variations */
  /* Extra large variations */ }
  @media (max-width: 47.99em) {
    h2 {
      font-size: 2.5rem; } }
  h2::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 50px;
    height: 2px;
    background: currentColor; }
  h2 + p {
    margin-top: 3rem; }

h3 {
  font-size: 2.2rem;
  line-height: 1.5;
  color: inherit;
  font-weight: 500; }

/*
 *  Default inline test links,
 *  normally wrapped inside a paragraph.
 *
 *  This way you will not need many overwrites to style specific links.
 */
p > a,
p > a:active,
p > a:hover,
p > a:visited,
p > a,
.link--default {
  border-bottom: 2px solid #ff0054; }
  p > a:hover,
  p > a:active:hover,
  p > a:hover:hover,
  p > a:visited:hover,
  p > a:hover,
  .link--default:hover {
    color: #ff0054; }

.link--bold {
  display: block;
  margin-top: 5rem;
  font-size: 5rem;
  line-height: 1;
  color: inherit;
  font-weight: 700; }
  .link--bold.disabled {
    opacity: .3; }
    .link--bold.disabled small {
      font-size: 40%; }
  .link--bold:not(.disabled):hover {
    color: #ff0054; }

ol,
ul {
  margin-left: 1em; }

.list--half {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .list--half li {
    -ms-flex: 50%;
        flex: 50%;
    /* Smallest variation */
    /* Small variations */
    /* Medium variations */
    /* Large variations */
    /* Extra large variations */ }
    @media (min-width: 48em) and (max-width: 63.99em) {
      .list--half li {
        -ms-flex: 100%;
            flex: 100%; } }

/*
 *  VIDEO
 */
.video {
  margin-top: 3rem;
  border: 1px solid #bfbfbf;
  background: #bfbfbf; }

/*
 * Modules
 */
.m--article {
  margin-top: 6rem;
  /* headers */
  /* image */
  /* lists */
  /* paragraph */
  /* LinkedIn widget logo fix, it's not showing by default */ }
  .m--article blockquote {
    position: relative;
    max-width: 70rem;
    margin: 8rem auto;
    padding: 20px 0;
    text-align: center;
    font-style: italic;
    font-size: 4rem;
    line-height: 1.2;
    color: inherit;
    font-weight: inherit;
    /* Smallest variation */
    /* Small variations */
    /* Medium variations */
    /* Large variations */
    /* Extra large variations */ }
    @media (max-width: 47.99em) {
      .m--article blockquote {
        padding: 20px 0; } }
    .m--article blockquote:before {
      content: '';
      position: absolute;
      top: 0;
      left: calc(50% - 60px);
      width: 120px;
      height: 1px;
      background: #ff0054; }
    .m--article blockquote:after {
      content: '';
      position: absolute;
      bottom: 0;
      left: calc(50% - 60px);
      width: 120px;
      height: 1px;
      background: #ff0054; }
  .m--article h3 {
    margin-bottom: 1rem; }
    .m--article h3 small {
      display: block;
      font-size: 1.6rem;
      font-weight: 300; }
  .m--article p + h3 {
    margin-top: 6rem; }
  .m--article img {
    display: block;
    margin: 6rem auto; }
  .m--article li {
    font-size: 2rem;
    line-height: 2;
    color: inherit;
    font-weight: 300; }
  .m--article p {
    font-size: 2rem;
    line-height: 2;
    color: inherit;
    font-weight: 300; }
  .m--article p + p {
    margin-top: 2em; }
  .m--article .IN-widget [id*="-logo"] {
    z-index: 1; }

.m--branded {
  display: -ms-flexbox;
  display: flex;
  background-color: #ff0054;
  color: #fff; }
  .m--branded p > a {
    border-color: #fff; }
    .m--branded p > a:hover {
      border-color: #252525;
      color: #252525; }
  .m--branded h2 {
    margin: 0; }
  .m--branded [class^="e--button"] {
    margin-top: 4rem; }

.m--card-project {
  display: block;
  margin: 6rem 0 4rem 0;
  transition: opacity 150ms ease-out; }
  .m--card-project[href]:hover {
    opacity: .7; }
  .m--card-project .img {
    width: 100%;
    border: 1px solid #bfbfbf; }
  .m--card-project .title {
    margin-top: 1.5rem;
    font-size: 2rem;
    line-height: 1.2;
    color: inherit;
    font-weight: 500; }

.m--navigation-toggle {
  position: fixed;
  top: 0px;
  left: 0;
  z-index: 200;
  background: #ff0054;
  text-align: center;
  color: #fff;
  cursor: pointer; }
  .m--navigation-toggle a {
    display: block;
    width: 6rem;
    height: 6rem;
    line-height: 6rem;
    /* Smallest variation */
    /* Small variations */
    /* Medium variations */
    /* Large variations */
    /* Extra large variations */ }
    @media (max-width: 47.99em) {
      .m--navigation-toggle a {
        width: 4.75rem;
        height: 4.75rem;
        line-height: 4.75rem; } }

.m--page-header {
  text-align: center;
  margin-bottom: 10rem;
  /* Smallest variation */
  /* Small variations */
  /* Medium variations */
  /* Large variations */
  /* Extra large variations */ }
  @media (max-width: 47.99em) {
    .m--page-header {
      margin-top: 4rem;
      margin-bottom: 4rem; } }
  .m--page-header h1 {
    display: block;
    letter-spacing: 3rem;
    text-transform: uppercase;
    font-family: "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
    font-size: 4rem;
    line-height: 1;
    color: rgba(0, 0, 0, 0.1);
    font-weight: 600; }

.m--page-intro p {
  margin-top: 4rem;
  font-size: 3rem;
  line-height: 1.4;
  color: #252525;
  font-weight: 500;
  /* Smallest variation */
  /* Small variations */
  /* Medium variations */
  /* Large variations */
  /* Extra large variations */ }
  @media (max-width: 47.99em) {
    .m--page-intro p {
      font-size: 2.2rem; } }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uY3NzIiwibWFpbi5zY3NzIiwiX3ZhcnMvX2NvbG9yLnNjc3MiLCJfdmFycy9fZWFzaW5ncy5zY3NzIiwiX3ZhcnMvX2ZvbnRzLnNjc3MiLCJfdmFycy9fZ3JpZC5zY3NzIiwiX3ZhcnMvX3ZpZXdwb3J0LnNjc3MiLCJfbWl4aW5zL19hbGlnbm1lbnQuc2NzcyIsIl9taXhpbnMvX2Jsb2NrLnNjc3MiLCJfbWl4aW5zL19rZXlmcmFtZXMuc2NzcyIsIl9taXhpbnMvX3BsYWNlaG9sZGVyLnNjc3MiLCJfbWl4aW5zL19zdmcuc2NzcyIsIl9taXhpbnMvX3R5cG9ncmFwaHkuc2NzcyIsIl9taXhpbnMvX3VzZXItc2VsZWN0LnNjc3MiLCJfbWl4aW5zL192aWV3cG9ydC5zY3NzIiwibGF5b3V0L2RlZmF1bHRzLWNsYXNzZXMuc2NzcyIsImxheW91dC9kZWZhdWx0cy5zY3NzIiwibGF5b3V0L2dyaWQuc2NzcyIsImVsZW1lbnRzL2J1dHRvbi5zY3NzIiwiZWxlbWVudHMvY3JlZGl0cy5zY3NzIiwiZWxlbWVudHMvZGlzYWJsZWQuc2NzcyIsImVsZW1lbnRzL2hlYWRlcnMuc2NzcyIsImVsZW1lbnRzL2xpbmtzLnNjc3MiLCJlbGVtZW50cy9saXN0cy5zY3NzIiwiZWxlbWVudHMvdmlkZW8uc2NzcyIsIm1vZHVsZXMvYXJ0aWNsZS5zY3NzIiwibW9kdWxlcy9icmFuZGVkLnNjc3MiLCJtb2R1bGVzL2NhcmQtcHJvamVjdC5zY3NzIiwibW9kdWxlcy9uYXZpZ2F0aW9uLnNjc3MiLCJtb2R1bGVzL3BhZ2UtaGVhZGVyLnNjc3MiLCJtb2R1bGVzL3BhZ2UtaW50cm8uc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUNBakI7O0dBRUc7QUNGSDs7MERBRTBEO0FBRTFELFNBQVM7QUFHVCxXQUFXO0FDUFg7Ozs7O0lBS0k7QUNMSjs7MERBRTBEO0FBRTFELDhFQUFZO0FDSlo7OzBEQUUwRDtBQ0YxRDs7Ozs7Ozs7OztHQVVHO0FMQUg7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c0I7SUFtQnRCLDRCQUE0QixFY3pEM0I7SWRFQztNY3hCSjtRQWlCTSxlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLHFCQUFxQixFQUd4QixFQUFBOztBQ3RCSDtFQUNFLG1CQUFtQjtFQUNuQixxQkFBcUI7RWZhckIsd0JBQXdCO0VBT3hCLHNCQUFzQjtFQW1CdEIsdUJBQXVCO0VBbUJ2QixzQkFBc0I7RUFtQnRCLDRCQUE0QixFZS9EN0I7RWZRRztJZXhCSjtNQUtJLGlCQUFpQjtNQUNqQixvQkFBb0IsRUFVdkIsRUFBQTtFQWhCRDtJQVVJLGVBQWU7SUFDZixxQkFBcUI7SUFDckIsMEJBQTBCO0lBQzFCLDhGQUE4RjtJakJSaEcsZ0JpQlNvQjtJakJScEIsZWlCUXVCO0lqQlB2QiwwQmlCTzZCO0lqQk43QixpQmlCTThDLEVBQzdDOztBQ2ZIO0VBRUksaUJBQWlCO0VsQkduQixnQmtCRm9CO0VsQkdwQixpQmtCSHlCO0VsQkl6QixlVkV1QjtFVUR2QixpQmtCTDRDO0VoQlk1Qyx3QkFBd0I7RUFPeEIsc0JBQXNCO0VBbUJ0Qix1QkFBdUI7RUFtQnZCLHNCQUFzQjtFQW1CdEIsNEJBQTRCLEVnQnZFM0I7RWhCZ0JDO0lnQnhCSjtNQU1NLGtCQUFrQixFQUVyQixFQUFBIiwiZmlsZSI6Im1haW4uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLypcbiAqIFZhcnNcbiAqL1xuLyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgKi9cbi8qIEZZSSAqL1xuLyogR3JheXMgKi9cbi8qXG4gICogICAgQ2Vhc2VyIGN1YmljIGJlemllcsOi4oKs4oSic1xuICAqICAgIEBzZWU6IGh0dHA6Ly9tYXR0aGV3bGVpbi5jb20vY2Vhc2VyL1xuICAqXG4gICogICAgSW4gb3JkZXIgZnJvbSBzb2Z0IHRvIGV4dHJlbWUgKHRvcCB0byBib3R0b20pXG4gICovXG4vKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICovXG5AaW1wb3J0IHVybChcImh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Sb2JvdG86MzAwLDQwMCw1MDAsNzAwXCIpO1xuLyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICovXG4vKlxuICogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICAgIFZpZXdwb3J0IGJyZWFrcG9pbnRzXG4gKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqICBCYXNlZCBvbiBlbSwgMWVtIGZvciBtZWRpYSBxdWVyaWVzIGlzIHRoZSBicm93c2VyJ3MgZGVmYXVsdCBmb250LXNpemUuXG4gKiAgSW4gZ2VuZXJpYyBwcmVzZXQgdG8gMTZweCAvIDE0cHQuXG4gKlxuICogIFdoeSBkbyB3ZSB1c2UgZW0/XG4gKiAgaHR0cDovL2Jsb2cuY2xvdWRmb3VyLmNvbS90aGUtZW1zLWhhdmUtaXQtcHJvcG9ydGlvbmFsLW1lZGlhLXF1ZXJpZXMtZnR3L1xuICovXG4vKlxuICogRXh0ZW5kc1xuICovXG4vKlxuICogTWl4aW5zXG4gKi9cbi8qICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIEhvcml6b250YWwgQWxpZ25cbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAqL1xuLyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgVmVydGljYWwgQWxpZ25cbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAqL1xuLyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgSG9yaXpvbnRhbCBhbmQgVmVydGljYWwgQWxpZ25cbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAqL1xuLyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgQ2xhc3NlcyBmb3IgdXNpbmcgbWl4aW5zIGFzIGRlZmluZWQgYWJvdmVcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAqL1xuLmFsaWduLS12IHtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuXG4uYWxpZ24tLWgge1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgfVxuXG4uYWxpZ24tLXZoIHtcbiAgbGVmdDogNTAlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7IH1cblxuLypcbiAqICAgIEJsb2NrIG1peGluXG4gKi9cbi8qXG4gKiAgICBLZXlmcmFtZXMgbWl4aW5cbiAqL1xuLypcbiAqICAgIFBsYWNlaG9sZGVyXG4gKi9cbi8qXG4gKiAgICBVbmktY29sb3IgU1ZHXG4gKi9cbi8qXG4gKiAgICBGb250IG1peGluIC0gY3VzdG9tIHNob3J0aGFuZFxuICovXG4vKlxuICogICAgVXNlciBzZWxlY3QgbWl4aW5cbiAqXG4gKiAgICBEZWZhdWx0IHZhbHVlOiBgbm9uZWAuXG4gKi9cbi8qXG4gKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogICAgVmlld3BvcnQgbWl4aW5cbiAqICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICpcbiAqICBTYW1wbGUgdXNlOlxuICpcbiAqICBAaW5jbHVkZSB2aWV3cG9ydCgnc21hbGwtbWluJyl7IGRpc3BsYXk6IG5vbmU7IH1cbiAqICBAaW5jbHVkZSB2aWV3cG9ydCgnbWVkaXVtJyl7ICBkaXNwbGF5OiBub25lOyB9XG4gKiAgQGluY2x1ZGUgdmlld3BvcnQoJ2xhcmdlLW1heCcpeyAgZGlzcGxheTogbm9uZTsgfVxuICovXG4vKlxuICogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICAgIEVuYWJsZS1vbi17e3NwZWNpZmljLXZpZXdwb3J0fX0gbWl4aW5cbiAqICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICpcbiAqICBNaXhpbiB0byBzaG93IC0gYW5kIGF1dG9tYXRpY2x5IGhpZGUgLSBlbGVtZW50cyBvbmx5IG9uIG9uZVxuICogIHNwZWNpZmljIHZpZXdwb3J0cy5cbiAqXG4gKiAgT3B0aW9uYWwgcGFyYW0gYGRpc3BsYXlgIGlzIHByZXNldCB0byBgYmxvY2tgLlxuICpcbiAqXG4gKiAgU2FtcGxlIHVzZTpcbiAqXG4gKiAgQGluY2x1ZGUgZW5hYmxlLW9uLXNtYWxsKCk7XG4gKiAgQGluY2x1ZGUgZW5hYmxlLW9uLW1lZGl1bShpbmxpbmUtYmxvY2spO1xuICogIEBpbmNsdWRlIGRpc2FibGUtb24tbGFyZ2UoKTtcbiAqICBAaW5jbHVkZSBkaXNhYmxlLW9uLWV4dHJhLWxhcmdlKCk7XG4gKi9cbi8qIFNtYWxsIHZhcmlhdGlvbnMgKi9cbi8qIE1lZGl1bSB2YXJpYXRpb25zICovXG4vKiBMYXJnZSB2YXJpYXRpb25zICovXG4vKiBFeHRyYSBsYXJnZSB2YXJpYXRpb25zICovXG4vKlxuICogTGF5b3V0XG4gKi9cbi8qXG4gKiAgQWxpZ24gY29udGVudC5cbiAqL1xuLmFsaWduLS1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4uYWxpZ24tLWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4uYWxpZ24tLXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLypcbiAqICBEaXNhYmxlIHZlcnRpY2FsIG92ZXJmbG93LlxuICpcbiAqICBTZXQgdGhlIGhlaWdodCB0byAxMDAlIGFuZCBkaXNhYmxlcyB0aGUgb3ZlcmZsb3csXG4gKiAgdGhpcyB3YXkgdGhlcmUgYXJlIG5vIHNjcm9sbGJhcnMgd2hhdHNvZXZlci5cbiAqXG4gKi9cbi5vdmVyZmxvdy0tbm9uZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGhlaWdodDogMTAwJTsgfVxuXG4vKlxuICogIExvY2sgaXRlbVxuICpcbiAqICBUaGlzIGRpc2FibGVzIGl0cyBvdmVyZmxvdy5cbiAqICBMaWtlIC5vdmVyZmxvdy0tbm9uZSBidXQgd2l0aG91dCAocmUtKXNldHRpbmcgdGhlIGhlaWdodC5cbiAqXG4gKi9cbi5sb2NrZWQge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qXG4gKiAgSGlkZGVuXG4gKlxuICogIEhpZGVzIHRoZSBvYmplY3Qgd2lkaHQgZGlzcGxheSBzZXQgdG8gYG5vbmVgLlxuICpcbiAqL1xuLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLypcbiAqICBWaWV3cG9ydCBzcGVjaWZpY1xuICpcbiAqICBFbmFibGUgYW4gb2JqZWN0IHRvIGhpZGUgb3Igc2hvdyBmb3IgYSBzcGVjaWZpYyB2aWV3cG9ydC5cbiAqXG4gKi9cbi5oaWRlLS1zbWFsbCB7XG4gIC8qIFNtYWxsZXN0IHZhcmlhdGlvbiAqL1xuICAvKiBTbWFsbCB2YXJpYXRpb25zICovXG4gIC8qIE1lZGl1bSB2YXJpYXRpb25zICovXG4gIC8qIExhcmdlIHZhcmlhdGlvbnMgKi9cbiAgLyogRXh0cmEgbGFyZ2UgdmFyaWF0aW9ucyAqLyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgLmhpZGUtLXNtYWxsIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4uc2hvdy0tc21hbGwge1xuICBkaXNwbGF5OiBub25lO1xuICAvKiBTbWFsbGVzdCB2YXJpYXRpb24gKi9cbiAgLyogU21hbGwgdmFyaWF0aW9ucyAqL1xuICAvKiBNZWRpdW0gdmFyaWF0aW9ucyAqL1xuICAvKiBMYXJnZSB2YXJpYXRpb25zICovXG4gIC8qIEV4dHJhIGxhcmdlIHZhcmlhdGlvbnMgKi8gfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgIC5zaG93LS1zbWFsbCB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG5cbi5oaWRlLS1tZWRpdW0tbWluIHtcbiAgLyogU21hbGxlc3QgdmFyaWF0aW9uICovXG4gIC8qIFNtYWxsIHZhcmlhdGlvbnMgKi9cbiAgLyogTWVkaXVtIHZhcmlhdGlvbnMgKi9cbiAgLyogTGFyZ2UgdmFyaWF0aW9ucyAqL1xuICAvKiBFeHRyYSBsYXJnZSB2YXJpYXRpb25zICovIH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuaGlkZS0tbWVkaXVtLW1pbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLypcbiAqICBIVE1MIGFuZCBCT0RZIGxheW91dFxuICovXG5odG1sLFxuYm9keSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDMyMHB4O1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIHNlcmlmO1xuICBjb2xvcjogIzAwMDtcbiAgdGV4dC1yZW5kZXJpbmc6IGFudGlhbGlhc2VkO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAvKiBTbWFsbGVzdCB2YXJpYXRpb24gKi9cbiAgLyogU21hbGwgdmFyaWF0aW9ucyAqL1xuICAvKiBNZWRpdW0gdmFyaWF0aW9ucyAqL1xuICAvKiBMYXJnZSB2YXJpYXRpb25zICovXG4gIC8qIEV4dHJhIGxhcmdlIHZhcmlhdGlvbnMgKi8gfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgIGh0bWwsXG4gICAgYm9keSB7XG4gICAgICBmb250LXNpemU6IDdweDsgfSB9XG5cbmh0bWwge1xuICBoZWlnaHQ6IDEwMCU7IH1cblxuYm9keSB7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjZmYwMDU0O1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2ZmMDA1NDtcbiAgZm9udC1zaXplOiAycmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7IH1cblxuLypcbiAqICBEZWZhdWx0IHN0eWxpbmcgJiByZXNldHMuXG4gKi9cbiosICo6YmVmb3JlLCAqOmFmdGVyIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG5hLFxuYXJ0aWNsZSxcbmIsXG5idXR0b24sXG5kaXYsXG5maWd1cmUsXG5mb3JtLFxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmhlYWRlcixcbmltZyxcbmxpLFxub2wsXG5wLFxuc2VjdGlvbixcbnN0cm9uZyxcbnNwYW4sXG5zdmcsXG51bCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbmEsXG5hOmhvdmVyLFxuYTphY3RpdmUsXG5hOnZpc2l0ZWQge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG91dGxpbmU6IDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IGluaGVyaXQ7IH1cblxuYSB7XG4gIHRyYW5zaXRpb246IGFsbCAxMDBtcyBlYXNlLWluLW91dDsgfVxuXG5idXR0b24ge1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG5maWd1cmUge1xuICBtYXJnaW46IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG5ociB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDVweDtcbiAgbWFyZ2luOiAzMHB4IDAgMCAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7IH1cblxuaW1nLFxuc3ZnIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi5yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWF4LXdpZHRoOiAxNDQwcHg7XG4gIG1hcmdpbjogMTVyZW0gYXV0bztcbiAgcGFkZGluZzogMCA1cmVtO1xuICAvKiBTbWFsbGVzdCB2YXJpYXRpb24gKi9cbiAgLyogU21hbGwgdmFyaWF0aW9ucyAqL1xuICAvKiBNZWRpdW0gdmFyaWF0aW9ucyAqL1xuICAvKiBMYXJnZSB2YXJpYXRpb25zICovXG4gIC8qIEV4dHJhIGxhcmdlIHZhcmlhdGlvbnMgKi8gfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgIC5yb3cge1xuICAgICAgbWFyZ2luOiAxMHJlbSBhdXRvOyB9IH1cblxuLmNvbC0xIHtcbiAgZmxleDogMCAwIDUuNTgzMzMzMzMzMyU7IH1cblxuLmNvbC0yIHtcbiAgZmxleDogMCAwIDE0LjE2NjY2NjY2NjclOyB9XG5cbi5jb2wtMyB7XG4gIGZsZXg6IDAgMCAyMi43NSU7IH1cblxuLmNvbC00IHtcbiAgZmxleDogMCAwIDMxLjMzMzMzMzMzMzMlOyB9XG5cbi5jb2wtNSB7XG4gIGZsZXg6IDAgMCAzOS45MTY2NjY2NjY3JTsgfVxuXG4uY29sLTYge1xuICBmbGV4OiAwIDAgNDguNSU7IH1cblxuLmNvbC03IHtcbiAgZmxleDogMCAwIDU3LjA4MzMzMzMzMzMlOyB9XG5cbi5jb2wtOCB7XG4gIGZsZXg6IDAgMCA2NS42NjY2NjY2NjY3JTsgfVxuXG4uY29sLTkge1xuICBmbGV4OiAwIDAgNzQuMjUlOyB9XG5cbi5jb2wtMTAge1xuICBmbGV4OiAwIDAgODIuODMzMzMzMzMzMyU7IH1cblxuLmNvbC0xMSB7XG4gIGZsZXg6IDAgMCA5MS40MTY2NjY2NjY3JTsgfVxuXG4uY29sLTEyIHtcbiAgZmxleDogMCAwIDEwMCU7IH1cblxuLmNvbC14cy0xMiB7XG4gIC8qIFNtYWxsZXN0IHZhcmlhdGlvbiAqL1xuICAvKiBTbWFsbCB2YXJpYXRpb25zICovXG4gIC8qIE1lZGl1bSB2YXJpYXRpb25zICovXG4gIC8qIExhcmdlIHZhcmlhdGlvbnMgKi9cbiAgLyogRXh0cmEgbGFyZ2UgdmFyaWF0aW9ucyAqLyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAyMGVtKSB7XG4gICAgLmNvbC14cy0xMiB7XG4gICAgICBmbGV4OiAwIDAgMTAwJTsgfSB9XG5cbi5jb2wtcy0xMiB7XG4gIC8qIFNtYWxsZXN0IHZhcmlhdGlvbiAqL1xuICAvKiBTbWFsbCB2YXJpYXRpb25zICovXG4gIC8qIE1lZGl1bSB2YXJpYXRpb25zICovXG4gIC8qIExhcmdlIHZhcmlhdGlvbnMgKi9cbiAgLyogRXh0cmEgbGFyZ2UgdmFyaWF0aW9ucyAqLyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgLmNvbC1zLTEyIHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlOyB9IH1cblxuLypcbiAqIEVsZW1lbnRzXG4gKi9cbi8qXG4gKiAgQlVUVE9OU1xuICovXG5bY2xhc3NePVwiZS0tYnV0dG9uXCJdIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwIDJyZW07XG4gIGJvcmRlcjogMnB4IHNvbGlkICNmZjAwNTQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAycmVtO1xuICBsaW5lLWhlaWdodDogMi41O1xuICBjb2xvcjogI2ZmMDA1NDtcbiAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuICBbY2xhc3NePVwiZS0tYnV0dG9uXCJdW2NsYXNzKj1cIi0td2hpdGVcIl0ge1xuICAgIGJvcmRlci1jb2xvcjogI2ZmZjtcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAgIFtjbGFzc149XCJlLS1idXR0b25cIl1bY2xhc3MqPVwiLS13aGl0ZVwiXTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgY29sb3I6ICNmZjAwNTQ7IH1cblxuLypcbiAqICBDUkVESVRTXG4gKi9cbi5jcmVkaXRzIHNwYW4ge1xuICBjb2xvcjogIzc5Nzk3OTsgfVxuXG4uZGlzYWJsZWQge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkICFpbXBvcnRhbnQ7IH1cblxuaDEge1xuICBmb250LXNpemU6IDZyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICBjb2xvcjogI2ZmMDA1NDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgLyogU21hbGxlc3QgdmFyaWF0aW9uICovXG4gIC8qIFNtYWxsIHZhcmlhdGlvbnMgKi9cbiAgLyogTWVkaXVtIHZhcmlhdGlvbnMgKi9cbiAgLyogTGFyZ2UgdmFyaWF0aW9ucyAqL1xuICAvKiBFeHRyYSBsYXJnZSB2YXJpYXRpb25zICovIH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICBoMSB7XG4gICAgICBmb250LXNpemU6IDRyZW07IH0gfVxuXG5oMiB7XG4gIG1hcmdpbi1ib3R0b206IDNyZW07XG4gIGZvbnQtc2l6ZTogM3JlbTtcbiAgbGluZS1oZWlnaHQ6IDEuODtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIC8qIFNtYWxsZXN0IHZhcmlhdGlvbiAqL1xuICAvKiBTbWFsbCB2YXJpYXRpb25zICovXG4gIC8qIE1lZGl1bSB2YXJpYXRpb25zICovXG4gIC8qIExhcmdlIHZhcmlhdGlvbnMgKi9cbiAgLyogRXh0cmEgbGFyZ2UgdmFyaWF0aW9ucyAqLyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgaDIge1xuICAgICAgZm9udC1zaXplOiAyLjVyZW07IH0gfVxuICBoMjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICB3aWR0aDogNTBweDtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7IH1cbiAgaDIgKyBwIHtcbiAgICBtYXJnaW4tdG9wOiAzcmVtOyB9XG5cbmgzIHtcbiAgZm9udC1zaXplOiAyLjJyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBmb250LXdlaWdodDogNTAwOyB9XG5cbi8qXG4gKiAgRGVmYXVsdCBpbmxpbmUgdGVzdCBsaW5rcyxcbiAqICBub3JtYWxseSB3cmFwcGVkIGluc2lkZSBhIHBhcmFncmFwaC5cbiAqXG4gKiAgVGhpcyB3YXkgeW91IHdpbGwgbm90IG5lZWQgbWFueSBvdmVyd3JpdGVzIHRvIHN0eWxlIHNwZWNpZmljIGxpbmtzLlxuICovXG5wID4gYSxcbnAgPiBhOmFjdGl2ZSxcbnAgPiBhOmhvdmVyLFxucCA+IGE6dmlzaXRlZCxcbnAgPiBhLFxuLmxpbmstLWRlZmF1bHQge1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2ZmMDA1NDsgfVxuICBwID4gYTpob3ZlcixcbiAgcCA+IGE6YWN0aXZlOmhvdmVyLFxuICBwID4gYTpob3Zlcjpob3ZlcixcbiAgcCA+IGE6dmlzaXRlZDpob3ZlcixcbiAgcCA+IGE6aG92ZXIsXG4gIC5saW5rLS1kZWZhdWx0OmhvdmVyIHtcbiAgICBjb2xvcjogI2ZmMDA1NDsgfVxuXG4ubGluay0tYm9sZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiA1cmVtO1xuICBmb250LXNpemU6IDVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuICAubGluay0tYm9sZC5kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogLjM7IH1cbiAgICAubGluay0tYm9sZC5kaXNhYmxlZCBzbWFsbCB7XG4gICAgICBmb250LXNpemU6IDQwJTsgfVxuICAubGluay0tYm9sZDpub3QoLmRpc2FibGVkKTpob3ZlciB7XG4gICAgY29sb3I6ICNmZjAwNTQ7IH1cblxub2wsXG51bCB7XG4gIG1hcmdpbi1sZWZ0OiAxZW07IH1cblxuLmxpc3QtLWhhbGYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLmxpc3QtLWhhbGYgbGkge1xuICAgIGZsZXg6IDUwJTtcbiAgICAvKiBTbWFsbGVzdCB2YXJpYXRpb24gKi9cbiAgICAvKiBTbWFsbCB2YXJpYXRpb25zICovXG4gICAgLyogTWVkaXVtIHZhcmlhdGlvbnMgKi9cbiAgICAvKiBMYXJnZSB2YXJpYXRpb25zICovXG4gICAgLyogRXh0cmEgbGFyZ2UgdmFyaWF0aW9ucyAqLyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgICAubGlzdC0taGFsZiBsaSB7XG4gICAgICAgIGZsZXg6IDEwMCU7IH0gfVxuXG4vKlxuICogIFZJREVPXG4gKi9cbi52aWRlbyB7XG4gIG1hcmdpbi10b3A6IDNyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNiZmJmYmY7XG4gIGJhY2tncm91bmQ6ICNiZmJmYmY7IH1cblxuLypcbiAqIE1vZHVsZXNcbiAqL1xuLm0tLWFydGljbGUge1xuICBtYXJnaW4tdG9wOiA2cmVtO1xuICAvKiBoZWFkZXJzICovXG4gIC8qIGltYWdlICovXG4gIC8qIGxpc3RzICovXG4gIC8qIHBhcmFncmFwaCAqL1xuICAvKiBMaW5rZWRJbiB3aWRnZXQgbG9nbyBmaXgsIGl0J3Mgbm90IHNob3dpbmcgYnkgZGVmYXVsdCAqLyB9XG4gIC5tLS1hcnRpY2xlIGJsb2NrcXVvdGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXgtd2lkdGg6IDcwcmVtO1xuICAgIG1hcmdpbjogOHJlbSBhdXRvO1xuICAgIHBhZGRpbmc6IDIwcHggMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGZvbnQtc2l6ZTogNHJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICAgIC8qIFNtYWxsZXN0IHZhcmlhdGlvbiAqL1xuICAgIC8qIFNtYWxsIHZhcmlhdGlvbnMgKi9cbiAgICAvKiBNZWRpdW0gdmFyaWF0aW9ucyAqL1xuICAgIC8qIExhcmdlIHZhcmlhdGlvbnMgKi9cbiAgICAvKiBFeHRyYSBsYXJnZSB2YXJpYXRpb25zICovIH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLm0tLWFydGljbGUgYmxvY2txdW90ZSB7XG4gICAgICAgIHBhZGRpbmc6IDIwcHggMDsgfSB9XG4gICAgLm0tLWFydGljbGUgYmxvY2txdW90ZTpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiBjYWxjKDUwJSAtIDYwcHgpO1xuICAgICAgd2lkdGg6IDEyMHB4O1xuICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmYwMDU0OyB9XG4gICAgLm0tLWFydGljbGUgYmxvY2txdW90ZTphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gNjBweCk7XG4gICAgICB3aWR0aDogMTIwcHg7XG4gICAgICBoZWlnaHQ6IDFweDtcbiAgICAgIGJhY2tncm91bmQ6ICNmZjAwNTQ7IH1cbiAgLm0tLWFydGljbGUgaDMge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgICAubS0tYXJ0aWNsZSBoMyBzbWFsbCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICAubS0tYXJ0aWNsZSBwICsgaDMge1xuICAgIG1hcmdpbi10b3A6IDZyZW07IH1cbiAgLm0tLWFydGljbGUgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDZyZW0gYXV0bzsgfVxuICAubS0tYXJ0aWNsZSBsaSB7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAyO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7IH1cbiAgLm0tLWFydGljbGUgcCB7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAyO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7IH1cbiAgLm0tLWFydGljbGUgcCArIHAge1xuICAgIG1hcmdpbi10b3A6IDJlbTsgfVxuICAubS0tYXJ0aWNsZSAuSU4td2lkZ2V0IFtpZCo9XCItbG9nb1wiXSB7XG4gICAgei1pbmRleDogMTsgfVxuXG4ubS0tYnJhbmRlZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjAwNTQ7XG4gIGNvbG9yOiAjZmZmOyB9XG4gIC5tLS1icmFuZGVkIHAgPiBhIHtcbiAgICBib3JkZXItY29sb3I6ICNmZmY7IH1cbiAgICAubS0tYnJhbmRlZCBwID4gYTpob3ZlciB7XG4gICAgICBib3JkZXItY29sb3I6ICMyNTI1MjU7XG4gICAgICBjb2xvcjogIzI1MjUyNTsgfVxuICAubS0tYnJhbmRlZCBoMiB7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5tLS1icmFuZGVkIFtjbGFzc149XCJlLS1idXR0b25cIl0ge1xuICAgIG1hcmdpbi10b3A6IDRyZW07IH1cblxuLm0tLWNhcmQtcHJvamVjdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDZyZW0gMCA0cmVtIDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgZWFzZS1vdXQ7IH1cbiAgLm0tLWNhcmQtcHJvamVjdFtocmVmXTpob3ZlciB7XG4gICAgb3BhY2l0eTogLjc7IH1cbiAgLm0tLWNhcmQtcHJvamVjdCAuaW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYmZiZmJmOyB9XG4gIC5tLS1jYXJkLXByb2plY3QgLnRpdGxlIHtcbiAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDsgfVxuXG4ubS0tbmF2aWdhdGlvbi10b2dnbGUge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAyMDA7XG4gIGJhY2tncm91bmQ6ICNmZjAwNTQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICNmZmY7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICAubS0tbmF2aWdhdGlvbi10b2dnbGUgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDZyZW07XG4gICAgaGVpZ2h0OiA2cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiA2cmVtO1xuICAgIC8qIFNtYWxsZXN0IHZhcmlhdGlvbiAqL1xuICAgIC8qIFNtYWxsIHZhcmlhdGlvbnMgKi9cbiAgICAvKiBNZWRpdW0gdmFyaWF0aW9ucyAqL1xuICAgIC8qIExhcmdlIHZhcmlhdGlvbnMgKi9cbiAgICAvKiBFeHRyYSBsYXJnZSB2YXJpYXRpb25zICovIH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLm0tLW5hdmlnYXRpb24tdG9nZ2xlIGEge1xuICAgICAgICB3aWR0aDogNC43NXJlbTtcbiAgICAgICAgaGVpZ2h0OiA0Ljc1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogNC43NXJlbTsgfSB9XG5cbi5tLS1wYWdlLWhlYWRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMTByZW07XG4gIC8qIFNtYWxsZXN0IHZhcmlhdGlvbiAqL1xuICAvKiBTbWFsbCB2YXJpYXRpb25zICovXG4gIC8qIE1lZGl1bSB2YXJpYXRpb25zICovXG4gIC8qIExhcmdlIHZhcmlhdGlvbnMgKi9cbiAgLyogRXh0cmEgbGFyZ2UgdmFyaWF0aW9ucyAqLyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgLm0tLXBhZ2UtaGVhZGVyIHtcbiAgICAgIG1hcmdpbi10b3A6IDRyZW07XG4gICAgICBtYXJnaW4tYm90dG9tOiA0cmVtOyB9IH1cbiAgLm0tLXBhZ2UtaGVhZGVyIGgxIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBsZXR0ZXItc3BhY2luZzogM3JlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYU5ldWVcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBcIkx1Y2lkYSBHcmFuZGVcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDRyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICBmb250LXdlaWdodDogNjAwOyB9XG5cbi5tLS1wYWdlLWludHJvIHAge1xuICBtYXJnaW4tdG9wOiA0cmVtO1xuICBmb250LXNpemU6IDNyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIGNvbG9yOiAjMjUyNTI1O1xuICBmb250LXdlaWdodDogNTAwO1xuICAvKiBTbWFsbGVzdCB2YXJpYXRpb24gKi9cbiAgLyogU21hbGwgdmFyaWF0aW9ucyAqL1xuICAvKiBNZWRpdW0gdmFyaWF0aW9ucyAqL1xuICAvKiBMYXJnZSB2YXJpYXRpb25zICovXG4gIC8qIEV4dHJhIGxhcmdlIHZhcmlhdGlvbnMgKi8gfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgIC5tLS1wYWdlLWludHJvIHAge1xuICAgICAgZm9udC1zaXplOiAyLjJyZW07IH0gfVxuIiwiLypcbiAqIFZhcnNcbiAqL1xuQGltcG9ydCBcIi9Vc2Vycy9zaW1vbmNvbGlqbi9naXQvc2ltb24tZnlpL3Nhc3MvX3ZhcnMvX2NvbG9yLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvc2ltb25jb2xpam4vZ2l0L3NpbW9uLWZ5aS9zYXNzL192YXJzL19lYXNpbmdzLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvc2ltb25jb2xpam4vZ2l0L3NpbW9uLWZ5aS9zYXNzL192YXJzL19mb250cy5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL3NpbW9uY29saWpuL2dpdC9zaW1vbi1meWkvc2Fzcy9fdmFycy9fZ3JpZC5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL3NpbW9uY29saWpuL2dpdC9zaW1vbi1meWkvc2Fzcy9fdmFycy9fdmlld3BvcnQuc2Nzc1wiO1xuXG5cbi8qXG4gKiBFeHRlbmRzXG4gKi9cblxuXG4vKlxuICogTWl4aW5zXG4gKi9cbkBpbXBvcnQgXCIvVXNlcnMvc2ltb25jb2xpam4vZ2l0L3NpbW9uLWZ5aS9zYXNzL19taXhpbnMvX2FsaWdubWVudC5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL3NpbW9uY29saWpuL2dpdC9zaW1vbi1meWkvc2Fzcy9fbWl4aW5zL19ibG9jay5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL3NpbW9uY29saWpuL2dpdC9zaW1vbi1meWkvc2Fzcy9fbWl4aW5zL19pY29uLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvc2ltb25jb2xpam4vZ2l0L3NpbW9uLWZ5aS9zYXNzL19taXhpbnMvX2tleWZyYW1lcy5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL3NpbW9uY29saWpuL2dpdC9zaW1vbi1meWkvc2Fzcy9fbWl4aW5zL19wbGFjZWhvbGRlci5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL3NpbW9uY29saWpuL2dpdC9zaW1vbi1meWkvc2Fzcy9fbWl4aW5zL19zdmcuc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9zaW1vbmNvbGlqbi9naXQvc2ltb24tZnlpL3Nhc3MvX21peGlucy9fdHlwb2dyYXBoeS5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL3NpbW9uY29saWpuL2dpdC9zaW1vbi1meWkvc2Fzcy9fbWl4aW5zL191c2VyLXNlbGVjdC5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL3NpbW9uY29saWpuL2dpdC9zaW1vbi1meWkvc2Fzcy9fbWl4aW5zL192aWV3cG9ydC5zY3NzXCI7XG5cblxuLypcbiAqIExheW91dFxuICovXG5AaW1wb3J0IFwiL1VzZXJzL3NpbW9uY29saWpuL2dpdC9zaW1vbi1meWkvc2Fzcy9sYXlvdXQvZGVmYXVsdHMtY2xhc3Nlcy5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL3NpbW9uY29saWpuL2dpdC9zaW1vbi1meWkvc2Fzcy9sYXlvdXQvZGVmYXVsdHMuc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9zaW1vbmNvbGlqbi9naXQvc2ltb24tZnlpL3Nhc3MvbGF5b3V0L2dyaWQuc2Nzc1wiO1xuXG5cblxuLypcbiAqIEVsZW1lbnRzXG4gKi9cbkBpbXBvcnQgXCIvVXNlcnMvc2ltb25jb2xpam4vZ2l0L3NpbW9uLWZ5aS9zYXNzL2VsZW1lbnRzL2J1dHRvbi5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL3NpbW9uY29saWpuL2dpdC9zaW1vbi1meWkvc2Fzcy9lbGVtZW50cy9jcmVkaXRzLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvc2ltb25jb2xpam4vZ2l0L3NpbW9uLWZ5aS9zYXNzL2VsZW1lbnRzL2Rpc2FibGVkLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvc2ltb25jb2xpam4vZ2l0L3NpbW9uLWZ5aS9zYXNzL2VsZW1lbnRzL2hlYWRlcnMuc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9zaW1vbmNvbGlqbi9naXQvc2ltb24tZnlpL3Nhc3MvZWxlbWVudHMvbGlua3Muc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9zaW1vbmNvbGlqbi9naXQvc2ltb24tZnlpL3Nhc3MvZWxlbWVudHMvbGlzdHMuc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9zaW1vbmNvbGlqbi9naXQvc2ltb24tZnlpL3Nhc3MvZWxlbWVudHMvdmlkZW8uc2Nzc1wiO1xuXG5cblxuLypcbiAqIE1vZHVsZXNcbiAqL1xuQGltcG9ydCBcIi9Vc2Vycy9zaW1vbmNvbGlqbi9naXQvc2ltb24tZnlpL3Nhc3MvbW9kdWxlcy9hcnRpY2xlLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvc2ltb25jb2xpam4vZ2l0L3NpbW9uLWZ5aS9zYXNzL21vZHVsZXMvYnJhbmRlZC5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL3NpbW9uY29saWpuL2dpdC9zaW1vbi1meWkvc2Fzcy9tb2R1bGVzL2NhcmQtcHJvamVjdC5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL3NpbW9uY29saWpuL2dpdC9zaW1vbi1meWkvc2Fzcy9tb2R1bGVzL25hdmlnYXRpb24uc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9zaW1vbmNvbGlqbi9naXQvc2ltb24tZnlpL3Nhc3MvbW9kdWxlcy9wYWdlLWhlYWRlci5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL3NpbW9uY29saWpuL2dpdC9zaW1vbi1meWkvc2Fzcy9tb2R1bGVzL3BhZ2UtaW50cm8uc2Nzc1wiO1xuXG4iLCIvKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAqL1xuXG4vKiBGWUkgKi9cbiRjb2xvci1icmFuZDogICAgICNmZjAwNTQ7XG5cbi8qIEdyYXlzICovXG4kY29sb3Itd2hpdGU6ICAgICAjZmZmO1xuJGNvbG9yLWJsYWNrOiAgICAgIzI1MjUyNTtcbiRjb2xvci1ncmF5OiAgICAgICNiZmJmYmY7XG4kY29sb3ItZ3JheS1kYXJrOiAjNzk3OTc5O1xuIiwiLypcbiAgKiAgICBDZWFzZXIgY3ViaWMgYmV6aWVyw6LigqzihKJzXG4gICogICAgQHNlZTogaHR0cDovL21hdHRoZXdsZWluLmNvbS9jZWFzZXIvXG4gICpcbiAgKiAgICBJbiBvcmRlciBmcm9tIHNvZnQgdG8gZXh0cmVtZSAodG9wIHRvIGJvdHRvbSlcbiAgKi9cblxuXG4vLyBzaW5lXG4kZWFzZS1pbi1zaW5lICAgICA6IGN1YmljLWJlemllcigwLjQ3MCwgMC4wMDAsIDAuNzQ1LCAwLjcxNSk7XG4kZWFzZS1vdXQtc2luZSAgICA6IGN1YmljLWJlemllcigwLjM5MCwgMC41NzUsIDAuNTY1LCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtc2luZSA6IGN1YmljLWJlemllcigwLjQ0NSwgMC4wNTAsIDAuNTUwLCAwLjk1MCk7XG5cbi8vIHF1YWRcbiRlYXNlLWluLXF1YWQgICAgIDogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA4NSwgMC42ODAsIDAuNTMwKTtcbiRlYXNlLW91dC1xdWFkICAgIDogY3ViaWMtYmV6aWVyKDAuMjUwLCAwLjQ2MCwgMC40NTAsIDAuOTQwKTtcbiRlYXNlLWluLW91dC1xdWFkIDogY3ViaWMtYmV6aWVyKDAuNDU1LCAwLjAzMCwgMC41MTUsIDAuOTU1KTtcblxuLy8gY3ViaWNcbiRlYXNlLWluLWN1YmljICAgIDogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiRlYXNlLW91dC1jdWJpYyAgIDogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1jdWJpYzogY3ViaWMtYmV6aWVyKDAuNjQ1LCAwLjA0NSwgMC4zNTUsIDEuMDAwKTtcblxuLy8gcXVhcnRcbiRlYXNlLWluLXF1YXJ0ICAgIDogY3ViaWMtYmV6aWVyKDAuODk1LCAwLjAzMCwgMC42ODUsIDAuMjIwKTtcbiRlYXNlLW91dC1xdWFydCAgIDogY3ViaWMtYmV6aWVyKDAuMTY1LCAwLjg0MCwgMC40NDAsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1xdWFydDogY3ViaWMtYmV6aWVyKDAuNzcwLCAwLjAwMCwgMC4xNzUsIDEuMDAwKTtcblxuLy8gcXVpbnRcbiRlYXNlLWluLXF1aW50ICAgIDogY3ViaWMtYmV6aWVyKDAuNzU1LCAwLjA1MCwgMC44NTUsIDAuMDYwKTtcbiRlYXNlLW91dC1xdWludCAgIDogY3ViaWMtYmV6aWVyKDAuMjMwLCAxLjAwMCwgMC4zMjAsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1xdWludDogY3ViaWMtYmV6aWVyKDAuODYwLCAwLjAwMCwgMC4wNzAsIDEuMDAwKTtcblxuLy8gZXhwb1xuJGVhc2UtaW4tZXhwbyAgICAgOiBjdWJpYy1iZXppZXIoMC45NTAsIDAuMDUwLCAwLjc5NSwgMC4wMzUpO1xuJGVhc2Utb3V0LWV4cG8gICAgOiBjdWJpYy1iZXppZXIoMC4xOTAsIDEuMDAwLCAwLjIyMCwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LWV4cG8gOiBjdWJpYy1iZXppZXIoMS4wMDAsIDAuMDAwLCAwLjAwMCwgMS4wMDApO1xuXG4vLyBjaXJjXG4kZWFzZS1pbi1jaXJjICAgICA6IGN1YmljLWJlemllcigwLjYwMCwgMC4wNDAsIDAuOTgwLCAwLjMzNSk7XG4kZWFzZS1vdXQtY2lyYyAgICA6IGN1YmljLWJlemllcigwLjA3NSwgMC44MjAsIDAuMTY1LCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtY2lyYyA6IGN1YmljLWJlemllcigwLjc4NSwgMC4xMzUsIDAuMTUwLCAwLjg2MCk7XG5cbi8vIGJhY2tcbiRlYXNlLWluLWJhY2sgICAgIDogY3ViaWMtYmV6aWVyKDAuNjAwLCAtMC4yODAsIDAuNzM1LCAwLjA0NSk7XG4kZWFzZS1vdXQtYmFjayAgICA6IGN1YmljLWJlemllcigwLjE3NSwgIDAuODg1LCAwLjMyMCwgMS4yNzUpO1xuJGVhc2UtaW4tb3V0LWJhY2sgOiBjdWJpYy1iZXppZXIoMC42ODAsIC0wLjU1MCwgMC4yNjUsIDEuNTUwKTtcbiIsIi8qICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgKi9cblxuQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Sb2JvdG86MzAwLDQwMCw1MDAsNzAwJyk7XG5cbiRmb250LXNlcmlmOiAnUm9ib3RvJywgc2VyaWY7XG4iLCIvKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgKi9cblxuXG4kZ3JpZC1ndXR0ZXI6ICAgICAgICAgMzBweDtcbiRncmlkLWd1dHRlci1zbWFsbDogICAxNXB4O1xuXG4kZ3JpZC13aWR0aC1tYXg6ICAgICAgMTA4MHB4O1xuIiwiLypcbiAqICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAgICBWaWV3cG9ydCBicmVha3BvaW50c1xuICogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiAgQmFzZWQgb24gZW0sIDFlbSBmb3IgbWVkaWEgcXVlcmllcyBpcyB0aGUgYnJvd3NlcidzIGRlZmF1bHQgZm9udC1zaXplLlxuICogIEluIGdlbmVyaWMgcHJlc2V0IHRvIDE2cHggLyAxNHB0LlxuICpcbiAqICBXaHkgZG8gd2UgdXNlIGVtP1xuICogIGh0dHA6Ly9ibG9nLmNsb3VkZm91ci5jb20vdGhlLWVtcy1oYXZlLWl0LXByb3BvcnRpb25hbC1tZWRpYS1xdWVyaWVzLWZ0dy9cbiAqL1xuXG4kdmlld3BvcnQtbWluOiAgICAgICAgICAgIDMyMHB4OyAgICAgICAvLyAgMzIwcHhcbiR2aWV3cG9ydC1tYXg6ICAgICAgICAgICAgMTI2MHB4OyAgICAgIC8vIDEyNjBweFxuXG4kdmlld3BvcnQtc21hbGw6ICAgICAgICAgIDIwLjAwZW07ICAgICAvLyAgMzIwcHhcbiR2aWV3cG9ydC1tZWRpdW06ICAgICAgICAgNDguMDBlbTsgICAgIC8vICA3NjhweFxuJHZpZXdwb3J0LWxhcmdlOiAgICAgICAgICA2NC4wMGVtOyAgICAgLy8gMTAyNHB4XG4kdmlld3BvcnQtZXh0cmEtbGFyZ2U6ICAgIDc4Ljc1ZW07ICAgICAvLyAxMjYwcHhcbiIsIi8qICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIEhvcml6b250YWwgQWxpZ25cbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAqL1xuQG1peGluIGgtYWxpZ24ge1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbn1cblxuLyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgVmVydGljYWwgQWxpZ25cbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAqL1xuQG1peGluIHYtYWxpZ24ge1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4vKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBIb3Jpem9udGFsIGFuZCBWZXJ0aWNhbCBBbGlnblxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICovXG5AbWl4aW4gYWxsLWFsaWduIHtcbiAgbGVmdDogNTAlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbi8qICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIENsYXNzZXMgZm9yIHVzaW5nIG1peGlucyBhcyBkZWZpbmVkIGFib3ZlXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgKi9cbi5hbGlnbi0tdiB7XG4gICAgQGluY2x1ZGUgdi1hbGlnbigpO1xufVxuXG4uYWxpZ24tLWgge1xuICAgIEBpbmNsdWRlIGgtYWxpZ24oKTtcbn1cblxuLmFsaWduLS12aCB7XG4gICAgQGluY2x1ZGUgYWxsLWFsaWduKCk7XG59XG4iLCIvKlxuICogICAgQmxvY2sgbWl4aW5cbiAqL1xuXG5AbWl4aW4gYmxvY2soXG4gICAgJHBvc2l0aW9uOiBhYnNvbHV0ZSxcbiAgICAkd2lkdGg6IDEwMCUsXG4gICAgJGhlaWdodDogMTAwJSxcbiAgICAkdG9wOiAwLFxuICAgICRyaWdodDogMCxcbiAgICAkYm90dG9tOiAwLFxuICAgICRsZWZ0OiAwXG4gICkge1xuICBwb3NpdGlvbjogJHBvc2l0aW9uO1xuICB3aWR0aDogJHdpZHRoO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIHRvcDogJHRvcDtcbiAgcmlnaHQ6ICRyaWdodDtcbiAgYm90dG9tOiAkYm90dG9tO1xuICBsZWZ0OiAkbGVmdDtcbn1cbiIsIi8qXG4gKiAgICBLZXlmcmFtZXMgbWl4aW5cbiAqL1xuXG5AbWl4aW4ga2V5ZnJhbWVzKCRhbmltYXRpb25OYW1lKSB7XG4gICAgQC13ZWJraXQta2V5ZnJhbWVzICN7JGFuaW1hdGlvbk5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICAgIEAtbW96LWtleWZyYW1lcyAjeyRhbmltYXRpb25OYW1lfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgICBALW8ta2V5ZnJhbWVzICN7JGFuaW1hdGlvbk5hbWV9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICAgIEBrZXlmcmFtZXMgI3skYW5pbWF0aW9uTmFtZX0ge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG4iLCIvKlxuICogICAgUGxhY2Vob2xkZXJcbiAqL1xuXG5cbiRwbGFjZWhvbGRlcnM6ICctd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyJyxcbiAgICAgICAgICAgICAgICctbW96LXBsYWNlaG9sZGVyJyxcbiAgICAgICAgICAgICAgICctbXMtaW5wdXQtcGxhY2Vob2xkZXInO1xuXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICBAZWFjaCAkcGxhY2Vob2xkZXIgaW4gJHBsYWNlaG9sZGVycyB7XG4gICAgQGlmICRwbGFjZWhvbGRlciA9PSBcIi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXJcIiB7XG4gICAgICAmOjojeyRwbGFjZWhvbGRlcn0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJHBsYWNlaG9sZGVyID09IFwiLW1vei1wbGFjZWhvbGRlclwiIHtcbiAgICAgIC8vIEZGIDE4LVxuICAgICAgJjojeyRwbGFjZWhvbGRlcn0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cblxuICAgICAgLy8gRkYgMTkrXG4gICAgICAmOjojeyRwbGFjZWhvbGRlcn0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJjojeyRwbGFjZWhvbGRlcn0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qXG4gKiAgICBVbmktY29sb3IgU1ZHXG4gKi9cblxuQG1peGluIHN2Z2NvbG9yKFxuICAgICRjb2xvcl9kZWZhdWx0OiBjdXJyZW50Q29sb3IsXG4gICAgJGNvbG9yX2hvdmVyOiAkY29sb3JfZGVmYXVsdCxcbiAgICAkYW5pbWF0aW9uX3RpbWU6IDE1MG1zLFxuICAgICRhbmltYXRpb25fZWFzZTogZWFzZS1pbi1vdXQsXG4gICAgJGFuaW1hdGlvbl9kZWxheTogMG1zXG4gICkge1xuXG4gICAgLy8gRGVmYXVsdCBzdGF0dXNcbiAgICBbZmlsbF06bm90KFtmaWxsPVwibm9uZVwiXSkge1xuICAgICAgZmlsbDogJGNvbG9yX2RlZmF1bHQ7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgJGFuaW1hdGlvbl90aW1lICRhbmltYXRpb25fZWFzZSAkYW5pbWF0aW9uX2RlbGF5O1xuICAgIH1cblxuICAgIFtzdHJva2VdOm5vdChbc3Ryb2tlPVwibm9uZVwiXSkge1xuICAgICAgc3Ryb2tlOiAkY29sb3JfZGVmYXVsdDtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAkYW5pbWF0aW9uX3RpbWUgJGFuaW1hdGlvbl9lYXNlICRhbmltYXRpb25fZGVsYXk7XG4gICAgfVxuXG4gICAgLy8gSG92ZXIgc3RhdHVzXG4gICAgJjpob3ZlciB7XG4gICAgICBbZmlsbF06bm90KFtmaWxsPVwibm9uZVwiXSkge1xuICAgICAgICBmaWxsOiAkY29sb3JfaG92ZXI7XG4gICAgICB9XG5cbiAgICAgIFtzdHJva2VdOm5vdChbc3Ryb2tlPVwibm9uZVwiXSkge1xuICAgICAgICBzdHJva2U6ICRjb2xvcl9ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbn1cbiIsIi8qXG4gKiAgICBGb250IG1peGluIC0gY3VzdG9tIHNob3J0aGFuZFxuICovXG5cbkBtaXhpbiBmb250KCRmb250c2l6ZTogaW5oZXJpdCwgJGxpbmVoZWlnaHQ6IDEsICRjb2xvcjogaW5oZXJpdCwgJHdlaWdodDogaW5oZXJpdCl7XG4gIGZvbnQtc2l6ZTogJGZvbnRzaXplO1xuICBsaW5lLWhlaWdodDogJGxpbmVoZWlnaHQ7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xufVxuIiwiLypcbiAqICAgIFVzZXIgc2VsZWN0IG1peGluXG4gKlxuICogICAgRGVmYXVsdCB2YWx1ZTogYG5vbmVgLlxuICovXG5cbkBtaXhpbiB1c2VyLXNlbGVjdCgkdmFsdWU6IG5vbmUpe1xuICAtd2Via2l0LXVzZXItZHJhZzogJHZhbHVlO1xuICAgLWtodG1sLXVzZXItZHJhZzogJHZhbHVlO1xuXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbiAgIC1raHRtbC11c2VyLXNlbGVjdDogJHZhbHVlO1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkdmFsdWU7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6ICR2YWx1ZTtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHZhbHVlO1xufVxuXG4iLCIvKlxuICogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqICAgIFZpZXdwb3J0IG1peGluXG4gKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqXG4gKiAgU2FtcGxlIHVzZTpcbiAqXG4gKiAgQGluY2x1ZGUgdmlld3BvcnQoJ3NtYWxsLW1pbicpeyBkaXNwbGF5OiBub25lOyB9XG4gKiAgQGluY2x1ZGUgdmlld3BvcnQoJ21lZGl1bScpeyAgZGlzcGxheTogbm9uZTsgfVxuICogIEBpbmNsdWRlIHZpZXdwb3J0KCdsYXJnZS1tYXgnKXsgIGRpc3BsYXk6IG5vbmU7IH1cbiAqL1xuXG5AbWl4aW4gdmlld3BvcnQoJHZpZXdwb3J0KSB7XG5cbiAgLyogU21hbGxlc3QgdmFyaWF0aW9uICovXG4gIEBpZiAkdmlld3BvcnQgPT0gXCJzbWFsbGVzdFwiIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJHZpZXdwb3J0LXNtYWxsKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICAvKiBTbWFsbCB2YXJpYXRpb25zICovXG4gIEBpZiAkdmlld3BvcnQgPT0gXCJzbWFsbFwiIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJHZpZXdwb3J0LW1lZGl1bSAtIDAuMDEpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkdmlld3BvcnQgPT0gXCJzbWFsbC1taW5cIiB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICR2aWV3cG9ydC1zbWFsbCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICR2aWV3cG9ydCA9PSBcInNtYWxsLW1heFwiIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJHZpZXdwb3J0LW1lZGl1bSAtIDAuMDEpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIC8qIE1lZGl1bSB2YXJpYXRpb25zICovXG4gIEBpZiAkdmlld3BvcnQgPT0gXCJtZWRpdW1cIiB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICR2aWV3cG9ydC1tZWRpdW0pIGFuZCAobWF4LXdpZHRoOiAkdmlld3BvcnQtbGFyZ2UgLSAwLjAxKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICBAaWYgJHZpZXdwb3J0ID09IFwibWVkaXVtLW1pblwiIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJHZpZXdwb3J0LW1lZGl1bSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICR2aWV3cG9ydCA9PSBcIm1lZGl1bS1tYXhcIiB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICR2aWV3cG9ydC1sYXJnZSAtIDAuMDEpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIC8qIExhcmdlIHZhcmlhdGlvbnMgKi9cbiAgQGlmICR2aWV3cG9ydCA9PSBcImxhcmdlXCIge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkdmlld3BvcnQtbGFyZ2UpIGFuZCAobWF4LXdpZHRoOiAkdmlld3BvcnQtZXh0cmEtbGFyZ2UgLSAwLjAxKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICBAaWYgJHZpZXdwb3J0ID09IFwibGFyZ2UtbWluXCIge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkdmlld3BvcnQtbGFyZ2UpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkdmlld3BvcnQgPT0gXCJsYXJnZS1tYXhcIiB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICR2aWV3cG9ydC1leHRyYS1sYXJnZSAtIDAuMDEpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIC8qIEV4dHJhIGxhcmdlIHZhcmlhdGlvbnMgKi9cbiAgQGlmICR2aWV3cG9ydCA9PSBcImV4dHJhLWxhcmdlXCIge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkdmlld3BvcnQtZXh0cmEtbGFyZ2UpIHtcbiAgICAgIC8qIERvZXMgbm90IGluY2x1ZGUgYSBgbWF4LXdpZHRoYCwgYmVjYXVzZSB0aGVyZSdzIG5vbmUuICovXG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICBAaWYgJHZpZXdwb3J0ID09IFwiZXh0cmEtbGFyZ2UtbWluXCIge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkdmlld3BvcnQtZXh0cmEtbGFyZ2UpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkdmlld3BvcnQgPT0gXCJleHRyYS1sYXJnZS1tYXhcIiB7XG4gICAgICAvKiBEb2VzIG5vdCBpbmNsdWRlIGEgYG1pbi13aWR0aGAgbm9yIGBtYXgtd2lkdGgsIGJlY2F1c2UgdGhlcmUncyBub25lLiAqL1xuICAgICAgQGNvbnRlbnQ7XG4gIH1cblxufVxuXG5cblxuLypcbiAqICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiAgICBFbmFibGUtb24te3tzcGVjaWZpYy12aWV3cG9ydH19IG1peGluXG4gKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqXG4gKiAgTWl4aW4gdG8gc2hvdyAtIGFuZCBhdXRvbWF0aWNseSBoaWRlIC0gZWxlbWVudHMgb25seSBvbiBvbmVcbiAqICBzcGVjaWZpYyB2aWV3cG9ydHMuXG4gKlxuICogIE9wdGlvbmFsIHBhcmFtIGBkaXNwbGF5YCBpcyBwcmVzZXQgdG8gYGJsb2NrYC5cbiAqXG4gKlxuICogIFNhbXBsZSB1c2U6XG4gKlxuICogIEBpbmNsdWRlIGVuYWJsZS1vbi1zbWFsbCgpO1xuICogIEBpbmNsdWRlIGVuYWJsZS1vbi1tZWRpdW0oaW5saW5lLWJsb2NrKTtcbiAqICBAaW5jbHVkZSBkaXNhYmxlLW9uLWxhcmdlKCk7XG4gKiAgQGluY2x1ZGUgZGlzYWJsZS1vbi1leHRyYS1sYXJnZSgpO1xuICovXG5cbi8qIFNtYWxsIHZhcmlhdGlvbnMgKi9cbkBtaXhpbiBlbmFibGUtb24tc21hbGwoJGRpc3BsYXkgOiBibG9jaykge1xuICBkaXNwbGF5OiBub25lO1xuXG4gIEBpbmNsdWRlIHZpZXdwb3J0KCdzbWFsbCcpIHtcbiAgICBkaXNwbGF5OiAkZGlzcGxheTtcbiAgfVxufVxuXG5AbWl4aW4gZGlzYWJsZS1vbi1zbWFsbCgpIHtcbiAgQGluY2x1ZGUgdmlld3BvcnQoJ3NtYWxsJykge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuQG1peGluIGRpc2FibGUtb24tbWVkaXVtLWFuZC1hYm92ZSgpIHtcbiAgQGluY2x1ZGUgdmlld3BvcnQobWVkaXVtLW1pbikge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLyogTWVkaXVtIHZhcmlhdGlvbnMgKi9cbkBtaXhpbiBlbmFibGUtb24tbWVkaXVtKCRkaXNwbGF5IDogYmxvY2spIHtcbiAgZGlzcGxheTogbm9uZTtcblxuICBAaW5jbHVkZSB2aWV3cG9ydCgnbWVkaXVtJykge1xuICAgIGRpc3BsYXk6ICRkaXNwbGF5O1xuICB9XG59XG5cbkBtaXhpbiBkaXNhYmxlLW9uLW1lZGl1bSgpIHtcbiAgQGluY2x1ZGUgdmlld3BvcnQoJ21lZGl1bScpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi8qIExhcmdlIHZhcmlhdGlvbnMgKi9cbkBtaXhpbiBlbmFibGUtb24tbGFyZ2UoJGRpc3BsYXkgOiBibG9jaykge1xuICBkaXNwbGF5OiBub25lO1xuXG4gIEBpbmNsdWRlIHZpZXdwb3J0KCdsYXJnZScpIHtcbiAgICBkaXNwbGF5OiAkZGlzcGxheTtcbiAgfVxufVxuXG5AbWl4aW4gZGlzYWJsZS1vbi1sYXJnZSgpIHtcbiAgQGluY2x1ZGUgdmlld3BvcnQoJ2xhcmdlJykge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLyogRXh0cmEgbGFyZ2UgdmFyaWF0aW9ucyAqL1xuQG1peGluIGVuYWJsZS1vbi1leHRyYS1sYXJnZSgkZGlzcGxheSA6IGJsb2NrKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgQGluY2x1ZGUgdmlld3BvcnQoJ2V4dHJhLWxhcmdlJykge1xuICAgIGRpc3BsYXk6ICRkaXNwbGF5O1xuICB9XG59XG5cbkBtaXhpbiBkaXNhYmxlLW9uLWV4dHJhLWxhcmdlKCkge1xuICBAaW5jbHVkZSB2aWV3cG9ydCgnZXh0cmEtbGFyZ2UnKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIiwiXG4vKlxuICogIEFsaWduIGNvbnRlbnQuXG4gKi9cblxuLmFsaWduLS1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmFsaWduLS1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5hbGlnbi0tcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLypcbiAqICBEaXNhYmxlIHZlcnRpY2FsIG92ZXJmbG93LlxuICpcbiAqICBTZXQgdGhlIGhlaWdodCB0byAxMDAlIGFuZCBkaXNhYmxlcyB0aGUgb3ZlcmZsb3csXG4gKiAgdGhpcyB3YXkgdGhlcmUgYXJlIG5vIHNjcm9sbGJhcnMgd2hhdHNvZXZlci5cbiAqXG4gKi9cbi5vdmVyZmxvdy0tbm9uZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLypcbiAqICBMb2NrIGl0ZW1cbiAqXG4gKiAgVGhpcyBkaXNhYmxlcyBpdHMgb3ZlcmZsb3cuXG4gKiAgTGlrZSAub3ZlcmZsb3ctLW5vbmUgYnV0IHdpdGhvdXQgKHJlLSlzZXR0aW5nIHRoZSBoZWlnaHQuXG4gKlxuICovXG4ubG9ja2VkIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLypcbiAqICBIaWRkZW5cbiAqXG4gKiAgSGlkZXMgdGhlIG9iamVjdCB3aWRodCBkaXNwbGF5IHNldCB0byBgbm9uZWAuXG4gKlxuICovXG4uaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLypcbiAqICBWaWV3cG9ydCBzcGVjaWZpY1xuICpcbiAqICBFbmFibGUgYW4gb2JqZWN0IHRvIGhpZGUgb3Igc2hvdyBmb3IgYSBzcGVjaWZpYyB2aWV3cG9ydC5cbiAqXG4gKi9cbi5oaWRlLS1zbWFsbCB7XG4gIEBpbmNsdWRlIGRpc2FibGUtb24tc21hbGwoKTtcbn1cblxuLnNob3ctLXNtYWxsIHtcbiAgQGluY2x1ZGUgZW5hYmxlLW9uLXNtYWxsKCk7XG59XG5cbi5oaWRlLS1tZWRpdW0tbWluIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1vbi1tZWRpdW0tYW5kLWFib3ZlKCk7XG59XG4iLCIvKlxuICogIEhUTUwgYW5kIEJPRFkgbGF5b3V0XG4gKi9cbmh0bWwsXG5ib2R5IHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogJHZpZXdwb3J0LW1pbjtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1zZXJpZjtcbiAgY29sb3I6ICMwMDA7XG4gIHRleHQtcmVuZGVyaW5nOiBhbnRpYWxpYXNlZDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcblxuICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCl7XG4gICAgZm9udC1zaXplOiA3cHg7XG4gIH1cbn1cblxuaHRtbCB7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuYm9keSB7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAkY29sb3ItYnJhbmQ7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkY29sb3ItYnJhbmQ7XG4gIEBpbmNsdWRlIGZvbnQoMnJlbSwgMS41KTtcbn1cblxuLypcbiAqICBEZWZhdWx0IHN0eWxpbmcgJiByZXNldHMuXG4gKi9cbiosICo6YmVmb3JlLCAqOmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5hLFxuYXJ0aWNsZSxcbmIsXG5idXR0b24sXG5kaXYsXG5maWd1cmUsXG5mb3JtLFxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmhlYWRlcixcbmltZyxcbmxpLFxub2wsXG5wLFxuc2VjdGlvbixcbnN0cm9uZyxcbnNwYW4sXG5zdmcsXG51bCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG5hLFxuYTpob3ZlcixcbmE6YWN0aXZlLFxuYTp2aXNpdGVkIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgb3V0bGluZTogMDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6IGluaGVyaXQ7XG59XG5cbmEge1xuICB0cmFuc2l0aW9uOiBhbGwgMTAwbXMgZWFzZS1pbi1vdXQ7XG59XG5cbmJ1dHRvbiB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbmZpZ3VyZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuaHIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNXB4O1xuICAgIG1hcmdpbjogMzBweCAwIDAgMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbn1cblxuaW1nLFxuc3ZnIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuIiwiLy8tLS0tLSBHcmlkIFN5c3RlbVxuJGdyaWQtc3BhY2luZzogMyU7XG4kZ3JpZC13aWR0aC1tYXg6IDE0NDBweDtcblxuLnJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXgtd2lkdGg6ICRncmlkLXdpZHRoLW1heDtcbiAgbWFyZ2luOiAxNXJlbSBhdXRvO1xuICBwYWRkaW5nOiAwIDVyZW07XG5cbiAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpe1xuICAgIG1hcmdpbjogMTByZW0gYXV0bztcbiAgfVxufVxuXG4uY29sLTEgICB7IGZsZXg6IDAgMCAoMTAwJSAvIDEyKSAtICgkZ3JpZC1zcGFjaW5nICogMTEgLyAxMik7IH1cbi5jb2wtMiAgIHsgZmxleDogMCAwICgxMDAlIC8gNikgLSAoJGdyaWQtc3BhY2luZyAqIDEwIC8gMTIpOyB9XG4uY29sLTMgICB7IGZsZXg6IDAgMCAoMTAwJSAvIDQpIC0gKCRncmlkLXNwYWNpbmcgKiA5IC8gMTIpOyB9XG4uY29sLTQgICB7IGZsZXg6IDAgMCAoMTAwJSAvIDMpIC0gKCRncmlkLXNwYWNpbmcgKiA4IC8gMTIpOyB9XG4uY29sLTUgICB7IGZsZXg6IDAgMCAoMTAwJSAvIDIuNCkgLSAoJGdyaWQtc3BhY2luZyAqIDcgLyAxMik7IH1cbi5jb2wtNiAgIHsgZmxleDogMCAwICgxMDAlIC8gMikgLSAoJGdyaWQtc3BhY2luZyAqIDYgLyAxMik7IH1cbi5jb2wtNyAgIHsgZmxleDogMCAwICgxMDAlIC8gMS43MTQyODU3MTQyODU3MTQpIC0gKCRncmlkLXNwYWNpbmcgKiA1IC8gMTIpOyB9XG4uY29sLTggICB7IGZsZXg6IDAgMCAoMTAwJSAvIDEuNSkgLSAoJGdyaWQtc3BhY2luZyAqIDQgLyAxMik7IH1cbi5jb2wtOSAgIHsgZmxleDogMCAwICgxMDAlIC8gMS4zMzMzMzMzMzMzMzMzMzMpIC0gKCRncmlkLXNwYWNpbmcgKiAzIC8gMTIpOyB9XG4uY29sLTEwICB7IGZsZXg6IDAgMCAoMTAwJSAvIDEuMikgLSAoJGdyaWQtc3BhY2luZyAqIDIgLyAxMik7IH1cbi5jb2wtMTEgIHsgZmxleDogMCAwICgxMDAlIC8gMS4wOTA5MDkwOTA5MDkwOTEpIC0gKCRncmlkLXNwYWNpbmcgKiAxIC8gMTIpOyB9XG4uY29sLTEyICB7IGZsZXg6IDAgMCAxMDAlOyB9XG5cbi5jb2wteHMtMTIge1xuICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbGVzdCkge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICB9XG59XG5cbi5jb2wtcy0xMiB7XG4gIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKSB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gIH1cbn1cbiIsIi8qXG4gKiAgQlVUVE9OU1xuICovXG5cbltjbGFzc149XCJlLS1idXR0b25cIl0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAgMnJlbTtcbiAgYm9yZGVyOiAycHggc29saWQgJGNvbG9yLWJyYW5kO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC8vIHRleHQtc2hhZG93OiAwcHggMHB4IDBweCByZ2JhKDU1LDU1LDU1LDApO1xuICBAaW5jbHVkZSBmb250KDJyZW0sIDIuNSwgJGNvbG9yLWJyYW5kLCA0MDApO1xuXG4gICZbY2xhc3MqPVwiLS13aGl0ZVwiXSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3Itd2hpdGU7XG4gICAgY29sb3I6ICRjb2xvci13aGl0ZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgICAgY29sb3I6ICRjb2xvci1icmFuZDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qXG4gKiAgQ1JFRElUU1xuICovXG5cbi5jcmVkaXRzIHtcbiAgc3BhbiB7XG4gICAgY29sb3I6ICRjb2xvci1ncmF5LWRhcms7XG4gIH1cbn1cbiIsIi5kaXNhYmxlZCB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQgIWltcG9ydGFudDtcbn1cbiIsImgxIHtcbiAgQGluY2x1ZGUgZm9udCg2cmVtLCAxLjI1LCAkY29sb3ItYnJhbmQsIDcwMCk7XG5cbiAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpe1xuICAgIGZvbnQtc2l6ZTogNHJlbTtcbiAgfVxufVxuXG5oMiB7XG4gIG1hcmdpbi1ib3R0b206IDNyZW07XG4gIEBpbmNsdWRlIGZvbnQoM3JlbSwgMS44LCBpbmhlcml0LCA1MDApO1xuXG4gIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKXtcbiAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICBib3R0b206IDA7XG4gICAgd2lkdGg6IDUwcHg7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xuICB9XG5cbiAgJiArIHAge1xuICAgIG1hcmdpbi10b3A6IDNyZW07XG4gIH1cbn1cblxuaDMge1xuICBAaW5jbHVkZSBmb250KDIuMnJlbSwgMS41LCBpbmhlcml0LCA1MDApO1xufVxuIiwiLypcbiAqICBEZWZhdWx0IGlubGluZSB0ZXN0IGxpbmtzLFxuICogIG5vcm1hbGx5IHdyYXBwZWQgaW5zaWRlIGEgcGFyYWdyYXBoLlxuICpcbiAqICBUaGlzIHdheSB5b3Ugd2lsbCBub3QgbmVlZCBtYW55IG92ZXJ3cml0ZXMgdG8gc3R5bGUgc3BlY2lmaWMgbGlua3MuXG4gKi9cblxucCA+IGEsXG5wID4gYTphY3RpdmUsXG5wID4gYTpob3ZlcixcbnAgPiBhOnZpc2l0ZWQsXG5wID4gYSxcbi5saW5rLS1kZWZhdWx0IHtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGNvbG9yLWJyYW5kO1xuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRjb2xvci1icmFuZDtcbiAgICB9XG59XG5cbi5saW5rLS1ib2xkIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDVyZW07XG4gIEBpbmNsdWRlIGZvbnQoNXJlbSwgMSwgaW5oZXJpdCwgNzAwKTtcblxuICAmLmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAuMztcblxuICAgIHNtYWxsIHtcbiAgICAgIGZvbnQtc2l6ZTogNDAlO1xuICAgIH1cbiAgfVxuXG4gICY6bm90KC5kaXNhYmxlZCk6aG92ZXIge1xuICAgIGNvbG9yOiAkY29sb3ItYnJhbmQ7XG4gIH1cbn1cbiIsIm9sLFxudWwge1xuICBtYXJnaW4tbGVmdDogMWVtO1xufVxuXG4ubGlzdC0taGFsZiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcblxuICBsaSB7XG4gICAgZmxleDogNTAlO1xuXG4gICAgQGluY2x1ZGUgdmlld3BvcnQobWVkaXVtKSB7XG4gICAgICBmbGV4OiAxMDAlO1xuICAgIH1cbiAgfVxufVxuIiwiLypcbiAqICBWSURFT1xuICovXG5cbi52aWRlbyB7XG4gIG1hcmdpbi10b3A6IDNyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1ncmF5O1xuICBiYWNrZ3JvdW5kOiAkY29sb3ItZ3JheTtcbn1cbiIsIi5tLS1hcnRpY2xlIHtcbiAgbWFyZ2luLXRvcDogNnJlbTtcblxuICBibG9ja3F1b3RlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWF4LXdpZHRoOiA3MHJlbTtcbiAgICBtYXJnaW46IDhyZW0gYXV0bztcbiAgICBwYWRkaW5nOiAyMHB4IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBAaW5jbHVkZSBmb250KDRyZW0sIDEuMik7XG5cbiAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCkge1xuICAgICAgcGFkZGluZzogMjBweCAwO1xuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogY2FsYyg1MCUgLSA2MHB4KTtcbiAgICAgIHdpZHRoOiAxMjBweDtcbiAgICAgIGhlaWdodDogMXB4O1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWJyYW5kO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDA7XG4gICAgICBsZWZ0OiBjYWxjKDUwJSAtIDYwcHgpO1xuICAgICAgd2lkdGg6IDEyMHB4O1xuICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItYnJhbmQ7XG4gICAgfVxuICB9XG5cblxuICAvKiBoZWFkZXJzICovXG4gIGgzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgc21hbGwge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgfVxuICB9XG5cbiAgcCArIGgzIHtcbiAgICBtYXJnaW4tdG9wOiA2cmVtO1xuICB9XG5cblxuICAvKiBpbWFnZSAqL1xuICBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogNnJlbSBhdXRvO1xuICB9XG5cbiAgLyogbGlzdHMgKi9cbiAgbGkge1xuICAgIEBpbmNsdWRlIGZvbnQoMnJlbSwgMiwgaW5oZXJpdCwgMzAwKTtcbiAgfVxuXG4gIC8qIHBhcmFncmFwaCAqL1xuICBwIHtcbiAgICBAaW5jbHVkZSBmb250KDJyZW0sIDIsIGluaGVyaXQsIDMwMCk7XG4gIH1cblxuICBwICsgcCB7XG4gICAgbWFyZ2luLXRvcDogMmVtO1xuICB9XG5cbiAgLyogTGlua2VkSW4gd2lkZ2V0IGxvZ28gZml4LCBpdCdzIG5vdCBzaG93aW5nIGJ5IGRlZmF1bHQgKi9cbiAgLklOLXdpZGdldCBbaWQqPVwiLWxvZ29cIl0ge1xuICAgIHotaW5kZXg6IDE7XG4gIH1cbn1cbiIsIi5tLS1icmFuZGVkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJyYW5kO1xuICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuXG4gIHAgPiBhIHtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvci13aGl0ZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItYmxhY2s7XG4gICAgICBjb2xvcjogJGNvbG9yLWJsYWNrO1xuICAgIH1cbiAgfVxuXG4gIGgyIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICBbY2xhc3NePVwiZS0tYnV0dG9uXCJdIHtcbiAgICBtYXJnaW4tdG9wOiA0cmVtO1xuICB9XG59XG4iLCIubS0tY2FyZC1wcm9qZWN0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogNnJlbSAwIDRyZW0gMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxNTBtcyBlYXNlLW91dDtcblxuICAmW2hyZWZdOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAuNztcbiAgfVxuXG4gIC5pbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1ncmF5O1xuICB9XG5cbiAgLnRpdGxlIHtcbiAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgQGluY2x1ZGUgZm9udCgycmVtLCAxLjIsIGluaGVyaXQsIDUwMClcbiAgfVxuXG4gIC8vIC5kZXNjIHtcbiAgLy8gICBkaXNwbGF5OiBibG9jaztcbiAgLy8gICBtYXJnaW4tdG9wOiAuNXJlbTtcbiAgLy8gICBAaW5jbHVkZSBmb250KDEuOHJlbSwgMS41LCBpbmhlcml0LCAzMDApXG4gIC8vIH1cbn1cbiIsIi5tLS1uYXZpZ2F0aW9uLXRvZ2dsZSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDIwMDtcbiAgYmFja2dyb3VuZDogJGNvbG9yLWJyYW5kO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogNnJlbTtcbiAgICBoZWlnaHQ6IDZyZW07XG4gICAgbGluZS1oZWlnaHQ6IDZyZW07XG5cbiAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCl7XG4gICAgICB3aWR0aDogNC43NXJlbTtcbiAgICAgIGhlaWdodDogNC43NXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiA0Ljc1cmVtO1xuICAgIH1cblxuICB9XG59XG4iLCIubS0tcGFnZS1oZWFkZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDEwcmVtO1xuXG4gIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKXtcbiAgICBtYXJnaW4tdG9wOiA0cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDRyZW07XG4gIH1cblxuICBoMSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDNyZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2FOZXVlXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgXCJMdWNpZGEgR3JhbmRlXCIsIHNhbnMtc2VyaWY7XG4gICAgQGluY2x1ZGUgZm9udCg0cmVtLCAxLCByZ2JhKDAsMCwwLCAwLjEpLCA2MDApO1xuICB9XG59XG4iLCIubS0tcGFnZS1pbnRybyB7XG4gIHAge1xuICAgIG1hcmdpbi10b3A6IDRyZW07XG4gICAgQGluY2x1ZGUgZm9udCgzcmVtLCAxLjQsICRjb2xvci1ibGFjaywgNTAwKTtcblxuICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKXtcbiAgICAgIGZvbnQtc2l6ZTogMi4ycmVtO1xuICAgIH1cbiAgfVxufVxuIl19 */
