/* --------------------
 @@ Mixins
-------------------- */
/* ----------
 @ Maintain Aspect Ratio
	- *** requires that the element has an inner container element if there is inner content
	- $x => x portion of ratio
	- $y => y portion of ratio
    - $c => set to 'false' to skip :first-child styling
---------- */
/* ----------
 @ Background Image
	- Shortcut for linking images in the configured images folder
	- $i => image file name (relative to images folder)
	- $rest => any additional 'background' property shortcut declarations (ie: no-repeat)
---------- */
/* --------------------
 @@ Functions
-------------------- */
/* ----------
 @ Color Get
 	- get value from the $theme-colors map
---------- */
/* ----------
 @ Breakpoint Get
 	- get value from the $grid-breakpoints map
 	- $type => 'max' | 'min', depending on media query type
---------- */
/* ----------
 @ Ems
	- convert pixels to ems
	- $p => pixel value
	- $b => base size (to use in formula) - defaults to $font-sizes root variable
---------- */
/* ----------
 @ Rems
	- convert pixels to rems
	- $p => pixel value
	- $b => base size (to use in formula) - defaults to $font-sizes root variable
---------- */
/* ----------
 @ Map Deep Get
 	- get value from nested maps
---------- */
/* ----------
 @ Weight Get
 	- get value from the $font-weights map
---------- */
/* ----------------------------------------------------------------------------

 @@@ Global Extensions

---------------------------------------------------------------------------- */
/* --------------------------------------
 @@ Generic Styles
-------------------------------------- */
/* ----------
 @ Display
---------- */
/* ----------
 @ Positioning
---------- */
/* ----------
 @ Layout
---------- */
/* ----------
 @ Colors
---------- */
/* ----------
 @ Typography
---------- */
/* ----------
 @ Overflow
---------- */
/* ----------
 @ Misc Visuals
---------- */
/* --------------------------------------
 @@ Components
-------------------------------------- */
/* ----------
 @ Pagination
---------- */
/* ----------
 @ Sliders
---------- */
/* ----------
 @ Text Fields
---------- */
/* ----------
 @ Dropdowns
---------- */
/* ----------
 @ Checkboxes
---------- */
/* ----------
 @ Radio Buttons
---------- */
/* ----------
 @ Dialogs
---------- */
/* ----------
 @ Tooltips
---------- */
/* --------------------
 @@ Project Specific Variables
-------------------- */
/* ----------
 @ Options
---------- */
/* ----------
 @ Colors
---------- */
/* ----------
 @ Layout
---------- */
/* ----------
 @ Typography
---------- */
/* ----------
 @ Misc
---------- */
#news {
  margin: 6.75rem 0;
}

#news .no-results {
  width: 100%;
  margin: 4rem 0 2rem;
}

#news .no-results::before, #news .no-results::after {
  background: rgba(150, 150, 150, 0.25);
}

#news .no-results .no-results-text {
  opacity: 0.3;
  text-align: center;
  margin: 0 5rem;
  font-family: azo-sans-web, "Avenir", "Tw Cen MT", "Helvetica", Arial, sans-serif;
  font-size: 2.5rem;
}

#news .card .card-content p {
  margin: 0.5rem 0;
}

#news .pagination-area {
  margin-top: 2rem;
}

@media only screen and (max-width: 991px) {
  #news .card {
    padding: 1.75rem;
  }
  #news .card .card-content {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  #news .card .fa-chevron-circle-right {
    font-size: 1.5rem;
  }
}

@media only screen and (max-width: 768px) and (min-width: 576px) {
  #news .card-content, #news .card-image {
    margin-top: 0;
  }
  #news .news-posting {
    margin: 1rem 0;
  }
}

@media only screen and (max-width: 768px) {
  #news .card .card-bottom {
    position: relative;
  }
}

@media only screen and (max-width: 575px) {
  #news {
    margin: 4rem 0;
  }
  #news div.card {
    padding: 2rem;
  }
  #news div.card .card-image img {
    width: 100%;
  }
}

#single {
  margin-top: 6rem;
  margin-bottom: 8rem;
  position: relative;
}

#single .article__publish-date {
  font-weight: 500;
  text-transform: uppercase;
}

#single .article {
  width: 100%;
  position: relative;
}

#single .article .article-head {
  padding: 0;
}

#single .article .article-head h3 {
  margin-bottom: 2rem;
}

#single .article .article-head .article-intro {
  line-height: 35px;
  font-weight: 500;
  font-size: 23px;
}

#single .article h4 {
  margin-top: 2em;
}

#single .article h4:first-child {
  margin-top: 0;
}

#single .article .block-content {
  margin-top: 1rem;
}

#single .article .block-content .block-text-content {
  padding: 1rem 0;
}

#single.white-bg {
  background: #fff;
}

#single.white-bg .article .article-head {
  padding: 3rem 0 0;
}

#single .featured-image {
  width: 100%;
  margin-bottom: 4rem;
  text-align: center;
}

#single .featured-image img {
  width: 100%;
}

#single .block-content {
  padding: 0;
}

#single .image-text-block h4 {
  margin-top: 0;
}

#single .icon-row {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  vertical-align: middle;
}

#single .addtoany_list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

#single .share-icons {
  display: inline-block;
  position: relative;
}

#single .share-icons a {
  display: inline;
  vertical-align: top;
  border: 1px solid #007AF8;
  border-radius: 26px;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}

#single .share-icons a:hover, #single .share-icons a:focus {
  background-color: #eee047;
  color: #1a1a1a;
  border: 1px solid #eee047 !important;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}

#single .share-icons a:hover svg path, #single .share-icons a:hover g, #single .share-icons a:hover g path, #single .share-icons a:focus svg path, #single .share-icons a:focus g, #single .share-icons a:focus g path {
  fill: #1a1a1a;
}

#single .share-icons .a2a_button_instagram {
  padding: 5px;
  margin: 0 5px 0 1px;
}

#single .share-icons .a2a_svg {
  height: 22px;
  width: 22px;
}

#single .insta-icon {
  margin-left: 3px;
  position: relative;
}

#single .addtoany_list a {
  margin: 0 4px;
  -webkit-transition: 0.3s;
  transition: 0.3s;
  height: 32px;
  width: 32px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

#single .article-social {
  margin-top: 1rem;
  margin-bottom: 6rem;
}

#single section.article-navigation {
  position: relative;
}

#single section.article-navigation .nav-box {
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  min-height: 10rem;
}

#single section.article-navigation .nav-box a {
  padding: 2.25rem 3rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  height: 100%;
}

#single section.article-navigation .nav-box.right {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}

#single section.article-navigation .nav-box.left {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}

#single section.article-navigation a.back-to-list:hover, #single section.article-navigation a.back-to-list:focus, #single section.article-navigation .nav-box a:hover, #single section.article-navigation .nav-box a:focus {
  -webkit-transition: 0.3s;
  transition: 0.3s;
  color: #fff;
  background-color: #007AF8;
}

#single section.article-navigation a.back-to-list:hover .article-list, #single section.article-navigation a.back-to-list:focus .article-list, #single section.article-navigation .nav-box a:hover .article-list, #single section.article-navigation .nav-box a:focus .article-list {
  -webkit-transition: 0.3s;
  transition: 0.3s;
  color: #fff;
  background-color: #007AF8;
}

#single section.article-navigation .nav-box, #single section.article-navigation .article-list {
  -webkit-transition: 0.3s;
  transition: 0.3s;
  background-color: #e9e9e9;
}

#single section.article-navigation .nav-box .fa-chevron-circle-left::before, #single section.article-navigation .nav-box .fa-chevron-circle-right::before, #single section.article-navigation .article-list .fa-chevron-circle-left::before, #single section.article-navigation .article-list .fa-chevron-circle-right::before {
  top: 25%;
  position: relative;
}

#single section.article-navigation .nav-box .fa-chevron-circle-left::before, #single section.article-navigation .article-list .fa-chevron-circle-left::before {
  margin-right: 4rem;
}

#single section.article-navigation .nav-box .fa-chevron-circle-right::before, #single section.article-navigation .article-list .fa-chevron-circle-right::before {
  margin-left: 4rem;
}

#single section.article-navigation .nav-box .article-preview, #single section.article-navigation .article-list .article-preview {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

#single section.article-navigation .fal {
  font-size: 2.25rem;
}

#single section.article-navigation a.previous, #single section.article-navigation a.next, #single section.article-navigation a.back-to-list {
  color: #1a1a1a;
  line-height: 31px;
  font-size: 1.5625rem;
  font-weight: 500;
  text-decoration: none;
}

#single section.article-navigation .previous span, #single section.article-navigation .next span {
  line-height: 25px;
}

#single section.article-navigation .article-list {
  background-color: #e9e9e9;
  margin-top: 1rem;
  padding: 0.7rem 3rem;
}

.news-single-banner {
  height: 8.75rem;
}

.row-no-padding [class*="col-"] {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

@media only screen and (max-width: 991px) {
  #single h4 {
    margin-top: 1rem;
  }
}

@media only screen and (max-width: 768px) {
  #single {
    margin-top: 3rem;
  }
  #single .article .article-head h3 {
    max-width: 100%;
  }
  #single section.article-navigation .nav-box a {
    min-height: 7rem;
  }
  #single section.article-navigation .nav-box .fa-chevron-circle-left::before {
    margin-right: 1rem;
  }
  #single section.article-navigation .nav-box .fa-chevron-circle-right::before {
    margin-left: 1rem;
  }
  #single .image-text-block {
    margin: 1rem 0;
  }
}

@media only screen and (max-width: 575px) {
  #single .article {
    padding: 0 2rem;
  }
  #single .article .article-head {
    padding: 0;
  }
  #single .article .article-head h3 {
    margin-top: 3rem;
  }
  #single section.article-navigation {
    padding: 0 2rem;
  }
  #single section.article-navigation .nav-box a {
    padding: 2.25rem 2rem;
  }
}

@media only screen and (max-width: 400px) {
  #single section.article-navigation a.previous, #single section.article-navigation a.next, #single section.article-navigation a.back-to-list {
    font-size: 1.25rem;
    line-height: 20px;
  }
  #single section.article-navigation .nav-box a {
    padding: 2.25rem 1rem;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2Jhc2UtdGhlbWUvYXNzZXRzL3Njc3MvdXRpbGl0aWVzL19taXhpbnMuc2NzcyIsInBhZ2UtdGVtcGxhdGVzL3NpbmdsZS5jc3MiLCIuLi8uLi8uLi9iYXNlLXRoZW1lL2Fzc2V0cy9zY3NzL3V0aWxpdGllcy9fZXh0ZW5zaW9ucy5zY3NzIiwiX3ZhcmlhYmxlcy5zY3NzIiwiX2FyY2hpdmUtbmV3cy5zY3NzIiwiX3NpbmdsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztzQkNFc0I7QURFdEI7Ozs7OztZQ0tZO0FEa0JaOzs7OztZQ1pZO0FEdUJaOztzQkNwQnNCO0FEd0J0Qjs7O1lDcEJZO0FEOEJaOzs7O1lDekJZO0FEd0NaOzs7OztZQ2xDWTtBRDZDWjs7Ozs7WUN2Q1k7QURrRFo7OztZQzlDWTtBRDBEWjs7O1lDdERZO0FDL0NaOzs7OzhFRG9EOEU7QUM5QzlFOzt3Q0RpRHdDO0FDN0N4Qzs7WURnRFk7QUNsQlo7O1lEcUJZO0FDRVo7O1lEQ1k7QUNvRFo7O1lEakRZO0FDa0VaOztZRC9EWTtBQ2lHWjs7WUQ5Rlk7QUMrR1o7O1lENUdZO0FDdUhaOzt3Q0RwSHdDO0FDd0h4Qzs7WURySFk7QUNxSVo7O1lEbElZO0FDK0xaOztZRDVMWTtBQ2tOWjs7WUQvTVk7QUNvUVo7O1lEalFZO0FDMFZaOztZRHZWWTtBQ21XWjs7WURoV1k7QUM2YVo7O1lEMWFZO0FFdkdaOztzQkYwR3NCO0FFdEd0Qjs7WUZ5R1k7QUVqR1o7O1lGb0dZO0FFbkVaOztZRnNFWTtBRXJEWjs7WUZ3RFk7QUVIWjs7WUZNWTtBR3pIWjtFQUNJLGlCQUFpQjtBSDJIckI7O0FHNUhBO0VBSVEsV0FBVztFQUNYLG1CQUFtQjtBSDRIM0I7O0FHaklBO0VBUVkscUNBQXFDO0FINkhqRDs7QUdySUE7RUFXWSxZQUFZO0VBQ1osa0JBQWtCO0VBQ2xCLGNBQWM7RUFDZCxnRkR1RWdGO0VDdEVoRixpQkFBaUI7QUg4SDdCOztBRzdJQTtFQXFCZ0IsZ0JBQWdC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RUluTkU7SUFjZ0Isa0JBQWtCO0VKd01wQztFSXRORTtJQWlCZ0IsaUJBQWlCO0VKd01uQztFSXpORTtJQXNCUSxjQUFjO0VKc014QjtBQUNGOztBSWxNQTtFQTNQQTtJQStQWSxlQUFlO0VKbU16QjtFSWxjRjtJQWtRZ0IsVUFBVTtFSm1NeEI7RUlyY0Y7SUFxUW9CLGdCQUFnQjtFSm1NbEM7RUl4Y0Y7SUEwUVksZUFBZTtFSmlNekI7RUkzY0Y7SUE2UWdCLHFCQUFxQjtFSmlNbkM7QUFDRjs7QUk1TEE7RUFuUkE7SUF1UmdCLGtCTGpNb0M7SUtrTXBDLGlCQUFpQjtFSjZML0I7RUlyZEY7SUEyUmdCLHFCQUFxQjtFSjZMbkM7QUFDRiIsImZpbGUiOiJwYWdlLXRlbXBsYXRlcy9zaW5nbGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiBAQCBNaXhpbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qIC0tLS0tLS0tLS1cbiBAIE1haW50YWluIEFzcGVjdCBSYXRpb1xuXHQtICoqKiByZXF1aXJlcyB0aGF0IHRoZSBlbGVtZW50IGhhcyBhbiBpbm5lciBjb250YWluZXIgZWxlbWVudCBpZiB0aGVyZSBpcyBpbm5lciBjb250ZW50XG5cdC0gJHggPT4geCBwb3J0aW9uIG9mIHJhdGlvXG5cdC0gJHkgPT4geSBwb3J0aW9uIG9mIHJhdGlvXG4gICAgLSAkYyA9PiBzZXQgdG8gJ2ZhbHNlJyB0byBza2lwIDpmaXJzdC1jaGlsZCBzdHlsaW5nXG4tLS0tLS0tLS0tICovXG5cbkBtaXhpbiBhc3BlY3QtcmF0aW8oJHg6IDEsICR5OiAxLCAkYzogdHJ1ZSkge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cGFkZGluZy10b3A6IHBlcmNlbnRhZ2UoJHkgLyAkeCk7XG5cdH1cblx0QGlmICgkYyA9PSB0cnVlKSB7XG5cdFx0JiA+IDpmaXJzdC1jaGlsZCB7XG5cdFx0XHRAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCAwIDAgMCk7XG5cdFx0fVxuXHR9XG59XG5cbi8qIC0tLS0tLS0tLS1cbiBAIEJhY2tncm91bmQgSW1hZ2Vcblx0LSBTaG9ydGN1dCBmb3IgbGlua2luZyBpbWFnZXMgaW4gdGhlIGNvbmZpZ3VyZWQgaW1hZ2VzIGZvbGRlclxuXHQtICRpID0+IGltYWdlIGZpbGUgbmFtZSAocmVsYXRpdmUgdG8gaW1hZ2VzIGZvbGRlcilcblx0LSAkcmVzdCA9PiBhbnkgYWRkaXRpb25hbCAnYmFja2dyb3VuZCcgcHJvcGVydHkgc2hvcnRjdXQgZGVjbGFyYXRpb25zIChpZTogbm8tcmVwZWF0KVxuLS0tLS0tLS0tLSAqL1xuXG5AbWl4aW4gYmctaW1hZ2UoJGksICRyZXN0Li4uKSB7XG5cdGJhY2tncm91bmQ6IHVybChcIiN7JGltYWdlcy1mb2xkZXJ9LyN7JGl9XCIpICRyZXN0O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEBAIEZ1bmN0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyogLS0tLS0tLS0tLVxuIEAgQ29sb3IgR2V0XG4gXHQtIGdldCB2YWx1ZSBmcm9tIHRoZSAkdGhlbWUtY29sb3JzIG1hcFxuLS0tLS0tLS0tLSAqL1xuXG5AZnVuY3Rpb24gY29sb3ItZ2V0KCRrZXlzKSB7XG5cdCRjb2xvcjogbWFwLWRlZXAtZ2V0KCR0aGVtZS1jb2xvcnMsICRrZXlzKTtcblx0QHJldHVybiAkY29sb3I7XG59XG5cbi8qIC0tLS0tLS0tLS1cbiBAIEJyZWFrcG9pbnQgR2V0XG4gXHQtIGdldCB2YWx1ZSBmcm9tIHRoZSAkZ3JpZC1icmVha3BvaW50cyBtYXBcbiBcdC0gJHR5cGUgPT4gJ21heCcgfCAnbWluJywgZGVwZW5kaW5nIG9uIG1lZGlhIHF1ZXJ5IHR5cGVcbi0tLS0tLS0tLS0gKi9cblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtZ2V0KCR0eXBlLCAka2V5cykge1xuXHQkYnJlYWtwb2ludDogbWFwLWRlZXAtZ2V0KCRncmlkLWJyZWFrcG9pbnRzLCAka2V5cyk7XG5cdEBpZiAoJHR5cGUgPT0gJ21heCcpe1xuXHRcdEByZXR1cm4gJGJyZWFrcG9pbnQgLSAxO1xuXHR9IEBlbHNlIHtcblx0XHRAcmV0dXJuICRicmVha3BvaW50O1xuXHR9XG59XG5cbi8qIC0tLS0tLS0tLS1cbiBAIEVtc1xuXHQtIGNvbnZlcnQgcGl4ZWxzIHRvIGVtc1xuXHQtICRwID0+IHBpeGVsIHZhbHVlXG5cdC0gJGIgPT4gYmFzZSBzaXplICh0byB1c2UgaW4gZm9ybXVsYSkgLSBkZWZhdWx0cyB0byAkZm9udC1zaXplcyByb290IHZhcmlhYmxlXG4tLS0tLS0tLS0tICovXG5cbkBmdW5jdGlvbiBlbXMoJHAsICRiOiBtYXAtZ2V0KCRmb250LXNpemVzLCByb290KSkge1xuXHRAcmV0dXJuIChzdHJpcC11bml0KCRwKSAvIHN0cmlwLXVuaXQoJGIpKSArIDBlbTtcbn1cblxuLyogLS0tLS0tLS0tLVxuIEAgUmVtc1xuXHQtIGNvbnZlcnQgcGl4ZWxzIHRvIHJlbXNcblx0LSAkcCA9PiBwaXhlbCB2YWx1ZVxuXHQtICRiID0+IGJhc2Ugc2l6ZSAodG8gdXNlIGluIGZvcm11bGEpIC0gZGVmYXVsdHMgdG8gJGZvbnQtc2l6ZXMgcm9vdCB2YXJpYWJsZVxuLS0tLS0tLS0tLSAqL1xuXG5AZnVuY3Rpb24gcmVtcygkcCwgJGI6IG1hcC1nZXQoJGZvbnQtc2l6ZXMsIHJvb3QpKSB7XG4gICAgQHJldHVybiAoc3RyaXAtdW5pdCgkcCkgLyBzdHJpcC11bml0KCRiKSkgKyAwcmVtO1xufVxuXG4vKiAtLS0tLS0tLS0tXG4gQCBNYXAgRGVlcCBHZXRcbiBcdC0gZ2V0IHZhbHVlIGZyb20gbmVzdGVkIG1hcHNcbi0tLS0tLS0tLS0gKi9cblxuQGZ1bmN0aW9uIG1hcC1kZWVwLWdldCgkbWFwLCAka2V5cy4uLikge1xuXHRAZWFjaCAka2V5IGluICRrZXlzIHtcblx0XHQkbWFwOiBtYXAtZ2V0KCRtYXAsICRrZXkpO1xuXHR9XG5cdEByZXR1cm4gJG1hcDtcbn1cblxuLyogLS0tLS0tLS0tLVxuIEAgV2VpZ2h0IEdldFxuIFx0LSBnZXQgdmFsdWUgZnJvbSB0aGUgJGZvbnQtd2VpZ2h0cyBtYXBcbi0tLS0tLS0tLS0gKi9cblxuQGZ1bmN0aW9uIHdlaWdodC1nZXQoJGtleXMpIHtcblx0JHdlaWdodDogbWFwLWRlZXAtZ2V0KCRmb250LXdlaWdodHMsICRrZXlzKTtcblx0QHJldHVybiAkd2VpZ2h0O1xufSIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gQEAgTWl4aW5zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLVxuIEAgTWFpbnRhaW4gQXNwZWN0IFJhdGlvXG5cdC0gKioqIHJlcXVpcmVzIHRoYXQgdGhlIGVsZW1lbnQgaGFzIGFuIGlubmVyIGNvbnRhaW5lciBlbGVtZW50IGlmIHRoZXJlIGlzIGlubmVyIGNvbnRlbnRcblx0LSAkeCA9PiB4IHBvcnRpb24gb2YgcmF0aW9cblx0LSAkeSA9PiB5IHBvcnRpb24gb2YgcmF0aW9cbiAgICAtICRjID0+IHNldCB0byAnZmFsc2UnIHRvIHNraXAgOmZpcnN0LWNoaWxkIHN0eWxpbmdcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIEJhY2tncm91bmQgSW1hZ2Vcblx0LSBTaG9ydGN1dCBmb3IgbGlua2luZyBpbWFnZXMgaW4gdGhlIGNvbmZpZ3VyZWQgaW1hZ2VzIGZvbGRlclxuXHQtICRpID0+IGltYWdlIGZpbGUgbmFtZSAocmVsYXRpdmUgdG8gaW1hZ2VzIGZvbGRlcilcblx0LSAkcmVzdCA9PiBhbnkgYWRkaXRpb25hbCAnYmFja2dyb3VuZCcgcHJvcGVydHkgc2hvcnRjdXQgZGVjbGFyYXRpb25zIChpZTogbm8tcmVwZWF0KVxuLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiBAQCBGdW5jdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tXG4gQCBDb2xvciBHZXRcbiBcdC0gZ2V0IHZhbHVlIGZyb20gdGhlICR0aGVtZS1jb2xvcnMgbWFwXG4tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tXG4gQCBCcmVha3BvaW50IEdldFxuIFx0LSBnZXQgdmFsdWUgZnJvbSB0aGUgJGdyaWQtYnJlYWtwb2ludHMgbWFwXG4gXHQtICR0eXBlID0+ICdtYXgnIHwgJ21pbicsIGRlcGVuZGluZyBvbiBtZWRpYSBxdWVyeSB0eXBlXG4tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tXG4gQCBFbXNcblx0LSBjb252ZXJ0IHBpeGVscyB0byBlbXNcblx0LSAkcCA9PiBwaXhlbCB2YWx1ZVxuXHQtICRiID0+IGJhc2Ugc2l6ZSAodG8gdXNlIGluIGZvcm11bGEpIC0gZGVmYXVsdHMgdG8gJGZvbnQtc2l6ZXMgcm9vdCB2YXJpYWJsZVxuLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLVxuIEAgUmVtc1xuXHQtIGNvbnZlcnQgcGl4ZWxzIHRvIHJlbXNcblx0LSAkcCA9PiBwaXhlbCB2YWx1ZVxuXHQtICRiID0+IGJhc2Ugc2l6ZSAodG8gdXNlIGluIGZvcm11bGEpIC0gZGVmYXVsdHMgdG8gJGZvbnQtc2l6ZXMgcm9vdCB2YXJpYWJsZVxuLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLVxuIEAgTWFwIERlZXAgR2V0XG4gXHQtIGdldCB2YWx1ZSBmcm9tIG5lc3RlZCBtYXBzXG4tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tXG4gQCBXZWlnaHQgR2V0XG4gXHQtIGdldCB2YWx1ZSBmcm9tIHRoZSAkZm9udC13ZWlnaHRzIG1hcFxuLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gQEBAIEdsb2JhbCBFeHRlbnNpb25zXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gQEAgR2VuZXJpYyBTdHlsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tXG4gQCBEaXNwbGF5XG4tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tXG4gQCBQb3NpdGlvbmluZ1xuLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLVxuIEAgTGF5b3V0XG4tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tXG4gQCBDb2xvcnNcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIFR5cG9ncmFwaHlcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIE92ZXJmbG93XG4tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tXG4gQCBNaXNjIFZpc3VhbHNcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gQEAgQ29tcG9uZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIFBhZ2luYXRpb25cbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIFNsaWRlcnNcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIFRleHQgRmllbGRzXG4tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tXG4gQCBEcm9wZG93bnNcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIENoZWNrYm94ZXNcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIFJhZGlvIEJ1dHRvbnNcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIERpYWxvZ3Ncbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIFRvb2x0aXBzXG4tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEBAIFByb2plY3QgU3BlY2lmaWMgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLVxuIEAgT3B0aW9uc1xuLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLVxuIEAgQ29sb3JzXG4tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tXG4gQCBMYXlvdXRcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIFR5cG9ncmFwaHlcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIE1pc2Ncbi0tLS0tLS0tLS0gKi9cbiNuZXdzIHtcbiAgbWFyZ2luOiA2Ljc1cmVtIDA7XG59XG5cbiNuZXdzIC5uby1yZXN1bHRzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogNHJlbSAwIDJyZW07XG59XG5cbiNuZXdzIC5uby1yZXN1bHRzOjpiZWZvcmUsICNuZXdzIC5uby1yZXN1bHRzOjphZnRlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTUwLCAxNTAsIDE1MCwgMC4yNSk7XG59XG5cbiNuZXdzIC5uby1yZXN1bHRzIC5uby1yZXN1bHRzLXRleHQge1xuICBvcGFjaXR5OiAwLjM7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAwIDVyZW07XG4gIGZvbnQtZmFtaWx5OiBhem8tc2Fucy13ZWIsIFwiQXZlbmlyXCIsIFwiVHcgQ2VuIE1UXCIsIFwiSGVsdmV0aWNhXCIsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDIuNXJlbTtcbn1cblxuI25ld3MgLmNhcmQgLmNhcmQtY29udGVudCBwIHtcbiAgbWFyZ2luOiAwLjVyZW0gMDtcbn1cblxuI25ld3MgLnBhZ2luYXRpb24tYXJlYSB7XG4gIG1hcmdpbi10b3A6IDJyZW07XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgI25ld3MgLmNhcmQge1xuICAgIHBhZGRpbmc6IDEuNzVyZW07XG4gIH1cbiAgI25ld3MgLmNhcmQgLmNhcmQtY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG4gICNuZXdzIC5jYXJkIC5mYS1jaGV2cm9uLWNpcmNsZS1yaWdodCB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkgYW5kIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gICNuZXdzIC5jYXJkLWNvbnRlbnQsICNuZXdzIC5jYXJkLWltYWdlIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG4gICNuZXdzIC5uZXdzLXBvc3Rpbmcge1xuICAgIG1hcmdpbjogMXJlbSAwO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgI25ld3MgLmNhcmQgLmNhcmQtYm90dG9tIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NzVweCkge1xuICAjbmV3cyB7XG4gICAgbWFyZ2luOiA0cmVtIDA7XG4gIH1cbiAgI25ld3MgZGl2LmNhcmQge1xuICAgIHBhZGRpbmc6IDJyZW07XG4gIH1cbiAgI25ld3MgZGl2LmNhcmQgLmNhcmQtaW1hZ2UgaW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4jc2luZ2xlIHtcbiAgbWFyZ2luLXRvcDogNnJlbTtcbiAgbWFyZ2luLWJvdHRvbTogOHJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4jc2luZ2xlIC5hcnRpY2xlX19wdWJsaXNoLWRhdGUge1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4jc2luZ2xlIC5hcnRpY2xlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuI3NpbmdsZSAuYXJ0aWNsZSAuYXJ0aWNsZS1oZWFkIHtcbiAgcGFkZGluZzogMDtcbn1cblxuI3NpbmdsZSAuYXJ0aWNsZSAuYXJ0aWNsZS1oZWFkIGgzIHtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbn1cblxuI3NpbmdsZSAuYXJ0aWNsZSAuYXJ0aWNsZS1oZWFkIC5hcnRpY2xlLWludHJvIHtcbiAgbGluZS1oZWlnaHQ6IDM1cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMjNweDtcbn1cblxuI3NpbmdsZSAuYXJ0aWNsZSBoNCB7XG4gIG1hcmdpbi10b3A6IDJlbTtcbn1cblxuI3NpbmdsZSAuYXJ0aWNsZSBoNDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG5cbiNzaW5nbGUgLmFydGljbGUgLmJsb2NrLWNvbnRlbnQge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xufVxuXG4jc2luZ2xlIC5hcnRpY2xlIC5ibG9jay1jb250ZW50IC5ibG9jay10ZXh0LWNvbnRlbnQge1xuICBwYWRkaW5nOiAxcmVtIDA7XG59XG5cbiNzaW5nbGUud2hpdGUtYmcge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuXG4jc2luZ2xlLndoaXRlLWJnIC5hcnRpY2xlIC5hcnRpY2xlLWhlYWQge1xuICBwYWRkaW5nOiAzcmVtIDAgMDtcbn1cblxuI3NpbmdsZSAuZmVhdHVyZWQtaW1hZ2Uge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogNHJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4jc2luZ2xlIC5mZWF0dXJlZC1pbWFnZSBpbWcge1xuICB3aWR0aDogMTAwJTtcbn1cblxuI3NpbmdsZSAuYmxvY2stY29udGVudCB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbiNzaW5nbGUgLmltYWdlLXRleHQtYmxvY2sgaDQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG4jc2luZ2xlIC5pY29uLXJvdyB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4jc2luZ2xlIC5hZGR0b2FueV9saXN0IHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuI3NpbmdsZSAuc2hhcmUtaWNvbnMge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuI3NpbmdsZSAuc2hhcmUtaWNvbnMgYSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgYm9yZGVyOiAxcHggc29saWQgIzAwN0FGODtcbiAgYm9yZGVyLXJhZGl1czogMjZweDtcbiAgdHJhbnNpdGlvbjogMC4zcztcbn1cblxuI3NpbmdsZSAuc2hhcmUtaWNvbnMgYTpob3ZlciwgI3NpbmdsZSAuc2hhcmUtaWNvbnMgYTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWUwNDc7XG4gIGNvbG9yOiAjMWExYTFhO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZWVlMDQ3ICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IDAuM3M7XG59XG5cbiNzaW5nbGUgLnNoYXJlLWljb25zIGE6aG92ZXIgc3ZnIHBhdGgsICNzaW5nbGUgLnNoYXJlLWljb25zIGE6aG92ZXIgZywgI3NpbmdsZSAuc2hhcmUtaWNvbnMgYTpob3ZlciBnIHBhdGgsICNzaW5nbGUgLnNoYXJlLWljb25zIGE6Zm9jdXMgc3ZnIHBhdGgsICNzaW5nbGUgLnNoYXJlLWljb25zIGE6Zm9jdXMgZywgI3NpbmdsZSAuc2hhcmUtaWNvbnMgYTpmb2N1cyBnIHBhdGgge1xuICBmaWxsOiAjMWExYTFhO1xufVxuXG4jc2luZ2xlIC5zaGFyZS1pY29ucyAuYTJhX2J1dHRvbl9pbnN0YWdyYW0ge1xuICBwYWRkaW5nOiA1cHg7XG4gIG1hcmdpbjogMCA1cHggMCAxcHg7XG59XG5cbiNzaW5nbGUgLnNoYXJlLWljb25zIC5hMmFfc3ZnIHtcbiAgaGVpZ2h0OiAyMnB4O1xuICB3aWR0aDogMjJweDtcbn1cblxuI3NpbmdsZSAuaW5zdGEtaWNvbiB7XG4gIG1hcmdpbi1sZWZ0OiAzcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuI3NpbmdsZSAuYWRkdG9hbnlfbGlzdCBhIHtcbiAgbWFyZ2luOiAwIDRweDtcbiAgdHJhbnNpdGlvbjogMC4zcztcbiAgaGVpZ2h0OiAzMnB4O1xuICB3aWR0aDogMzJweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuI3NpbmdsZSAuYXJ0aWNsZS1zb2NpYWwge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiA2cmVtO1xufVxuXG4jc2luZ2xlIHNlY3Rpb24uYXJ0aWNsZS1uYXZpZ2F0aW9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4jc2luZ2xlIHNlY3Rpb24uYXJ0aWNsZS1uYXZpZ2F0aW9uIC5uYXYtYm94IHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtaW4taGVpZ2h0OiAxMHJlbTtcbn1cblxuI3NpbmdsZSBzZWN0aW9uLmFydGljbGUtbmF2aWdhdGlvbiAubmF2LWJveCBhIHtcbiAgcGFkZGluZzogMi4yNXJlbSAzcmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuI3NpbmdsZSBzZWN0aW9uLmFydGljbGUtbmF2aWdhdGlvbiAubmF2LWJveC5yaWdodCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbiNzaW5nbGUgc2VjdGlvbi5hcnRpY2xlLW5hdmlnYXRpb24gLm5hdi1ib3gubGVmdCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cblxuI3NpbmdsZSBzZWN0aW9uLmFydGljbGUtbmF2aWdhdGlvbiBhLmJhY2stdG8tbGlzdDpob3ZlciwgI3NpbmdsZSBzZWN0aW9uLmFydGljbGUtbmF2aWdhdGlvbiBhLmJhY2stdG8tbGlzdDpmb2N1cywgI3NpbmdsZSBzZWN0aW9uLmFydGljbGUtbmF2aWdhdGlvbiAubmF2LWJveCBhOmhvdmVyLCAjc2luZ2xlIHNlY3Rpb24uYXJ0aWNsZS1uYXZpZ2F0aW9uIC5uYXYtYm94IGE6Zm9jdXMge1xuICB0cmFuc2l0aW9uOiAwLjNzO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwN0FGODtcbn1cblxuI3NpbmdsZSBzZWN0aW9uLmFydGljbGUtbmF2aWdhdGlvbiBhLmJhY2stdG8tbGlzdDpob3ZlciAuYXJ0aWNsZS1saXN0LCAjc2luZ2xlIHNlY3Rpb24uYXJ0aWNsZS1uYXZpZ2F0aW9uIGEuYmFjay10by1saXN0OmZvY3VzIC5hcnRpY2xlLWxpc3QsICNzaW5nbGUgc2VjdGlvbi5hcnRpY2xlLW5hdmlnYXRpb24gLm5hdi1ib3ggYTpob3ZlciAuYXJ0aWNsZS1saXN0LCAjc2luZ2xlIHNlY3Rpb24uYXJ0aWNsZS1uYXZpZ2F0aW9uIC5uYXYtYm94IGE6Zm9jdXMgLmFydGljbGUtbGlzdCB7XG4gIHRyYW5zaXRpb246IDAuM3M7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3QUY4O1xufVxuXG4jc2luZ2xlIHNlY3Rpb24uYXJ0aWNsZS1uYXZpZ2F0aW9uIC5uYXYtYm94LCAjc2luZ2xlIHNlY3Rpb24uYXJ0aWNsZS1uYXZpZ2F0aW9uIC5hcnRpY2xlLWxpc3Qge1xuICB0cmFuc2l0aW9uOiAwLjNzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTllOWU5O1xufVxuXG4jc2luZ2xlIHNlY3Rpb24uYXJ0aWNsZS1uYXZpZ2F0aW9uIC5uYXYtYm94IC5mYS1jaGV2cm9uLWNpcmNsZS1sZWZ0OjpiZWZvcmUsICNzaW5nbGUgc2VjdGlvbi5hcnRpY2xlLW5hdmlnYXRpb24gLm5hdi1ib3ggLmZhLWNoZXZyb24tY2lyY2xlLXJpZ2h0OjpiZWZvcmUsICNzaW5nbGUgc2VjdGlvbi5hcnRpY2xlLW5hdmlnYXRpb24gLmFydGljbGUtbGlzdCAuZmEtY2hldnJvbi1jaXJjbGUtbGVmdDo6YmVmb3JlLCAjc2luZ2xlIHNlY3Rpb24uYXJ0aWNsZS1uYXZpZ2F0aW9uIC5hcnRpY2xlLWxpc3QgLmZhLWNoZXZyb24tY2lyY2xlLXJpZ2h0OjpiZWZvcmUge1xuICB0b3A6IDI1JTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4jc2luZ2xlIHNlY3Rpb24uYXJ0aWNsZS1uYXZpZ2F0aW9uIC5uYXYtYm94IC5mYS1jaGV2cm9uLWNpcmNsZS1sZWZ0OjpiZWZvcmUsICNzaW5nbGUgc2VjdGlvbi5hcnRpY2xlLW5hdmlnYXRpb24gLmFydGljbGUtbGlzdCAuZmEtY2hldnJvbi1jaXJjbGUtbGVmdDo6YmVmb3JlIHtcbiAgbWFyZ2luLXJpZ2h0OiA0cmVtO1xufVxuXG4jc2luZ2xlIHNlY3Rpb24uYXJ0aWNsZS1uYXZpZ2F0aW9uIC5uYXYtYm94IC5mYS1jaGV2cm9uLWNpcmNsZS1yaWdodDo6YmVmb3JlLCAjc2luZ2xlIHNlY3Rpb24uYXJ0aWNsZS1uYXZpZ2F0aW9uIC5hcnRpY2xlLWxpc3QgLmZhLWNoZXZyb24tY2lyY2xlLXJpZ2h0OjpiZWZvcmUge1xuICBtYXJnaW4tbGVmdDogNHJlbTtcbn1cblxuI3NpbmdsZSBzZWN0aW9uLmFydGljbGUtbmF2aWdhdGlvbiAubmF2LWJveCAuYXJ0aWNsZS1wcmV2aWV3LCAjc2luZ2xlIHNlY3Rpb24uYXJ0aWNsZS1uYXZpZ2F0aW9uIC5hcnRpY2xlLWxpc3QgLmFydGljbGUtcHJldmlldyB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbiNzaW5nbGUgc2VjdGlvbi5hcnRpY2xlLW5hdmlnYXRpb24gLmZhbCB7XG4gIGZvbnQtc2l6ZTogMi4yNXJlbTtcbn1cblxuI3NpbmdsZSBzZWN0aW9uLmFydGljbGUtbmF2aWdhdGlvbiBhLnByZXZpb3VzLCAjc2luZ2xlIHNlY3Rpb24uYXJ0aWNsZS1uYXZpZ2F0aW9uIGEubmV4dCwgI3NpbmdsZSBzZWN0aW9uLmFydGljbGUtbmF2aWdhdGlvbiBhLmJhY2stdG8tbGlzdCB7XG4gIGNvbG9yOiAjMWExYTFhO1xuICBsaW5lLWhlaWdodDogMzFweDtcbiAgZm9udC1zaXplOiAxLjU2MjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuI3NpbmdsZSBzZWN0aW9uLmFydGljbGUtbmF2aWdhdGlvbiAucHJldmlvdXMgc3BhbiwgI3NpbmdsZSBzZWN0aW9uLmFydGljbGUtbmF2aWdhdGlvbiAubmV4dCBzcGFuIHtcbiAgbGluZS1oZWlnaHQ6IDI1cHg7XG59XG5cbiNzaW5nbGUgc2VjdGlvbi5hcnRpY2xlLW5hdmlnYXRpb24gLmFydGljbGUtbGlzdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlOWU5ZTk7XG4gIG1hcmdpbi10b3A6IDFyZW07XG4gIHBhZGRpbmc6IDAuN3JlbSAzcmVtO1xufVxuXG4ubmV3cy1zaW5nbGUtYmFubmVyIHtcbiAgaGVpZ2h0OiA4Ljc1cmVtO1xufVxuXG4ucm93LW5vLXBhZGRpbmcgW2NsYXNzKj1cImNvbC1cIl0ge1xuICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gICNzaW5nbGUgaDQge1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAjc2luZ2xlIHtcbiAgICBtYXJnaW4tdG9wOiAzcmVtO1xuICB9XG4gICNzaW5nbGUgLmFydGljbGUgLmFydGljbGUtaGVhZCBoMyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gICNzaW5nbGUgc2VjdGlvbi5hcnRpY2xlLW5hdmlnYXRpb24gLm5hdi1ib3ggYSB7XG4gICAgbWluLWhlaWdodDogN3JlbTtcbiAgfVxuICAjc2luZ2xlIHNlY3Rpb24uYXJ0aWNsZS1uYXZpZ2F0aW9uIC5uYXYtYm94IC5mYS1jaGV2cm9uLWNpcmNsZS1sZWZ0OjpiZWZvcmUge1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgfVxuICAjc2luZ2xlIHNlY3Rpb24uYXJ0aWNsZS1uYXZpZ2F0aW9uIC5uYXYtYm94IC5mYS1jaGV2cm9uLWNpcmNsZS1yaWdodDo6YmVmb3JlIHtcbiAgICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgfVxuICAjc2luZ2xlIC5pbWFnZS10ZXh0LWJsb2NrIHtcbiAgICBtYXJnaW46IDFyZW0gMDtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU3NXB4KSB7XG4gICNzaW5nbGUgLmFydGljbGUge1xuICAgIHBhZGRpbmc6IDAgMnJlbTtcbiAgfVxuICAjc2luZ2xlIC5hcnRpY2xlIC5hcnRpY2xlLWhlYWQge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbiAgI3NpbmdsZSAuYXJ0aWNsZSAuYXJ0aWNsZS1oZWFkIGgzIHtcbiAgICBtYXJnaW4tdG9wOiAzcmVtO1xuICB9XG4gICNzaW5nbGUgc2VjdGlvbi5hcnRpY2xlLW5hdmlnYXRpb24ge1xuICAgIHBhZGRpbmc6IDAgMnJlbTtcbiAgfVxuICAjc2luZ2xlIHNlY3Rpb24uYXJ0aWNsZS1uYXZpZ2F0aW9uIC5uYXYtYm94IGEge1xuICAgIHBhZGRpbmc6IDIuMjVyZW0gMnJlbTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQwMHB4KSB7XG4gICNzaW5nbGUgc2VjdGlvbi5hcnRpY2xlLW5hdmlnYXRpb24gYS5wcmV2aW91cywgI3NpbmdsZSBzZWN0aW9uLmFydGljbGUtbmF2aWdhdGlvbiBhLm5leHQsICNzaW5nbGUgc2VjdGlvbi5hcnRpY2xlLW5hdmlnYXRpb24gYS5iYWNrLXRvLWxpc3Qge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgfVxuICAjc2luZ2xlIHNlY3Rpb24uYXJ0aWNsZS1uYXZpZ2F0aW9uIC5uYXYtYm94IGEge1xuICAgIHBhZGRpbmc6IDIuMjVyZW0gMXJlbTtcbiAgfVxufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gQEBAIEdsb2JhbCBFeHRlbnNpb25zXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiBAQCBHZW5lcmljIFN0eWxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyogLS0tLS0tLS0tLVxuIEAgRGlzcGxheVxuLS0tLS0tLS0tLSAqL1xuXG4lYmxvY2sge1xuXHRkaXNwbGF5OiBibG9jaztcbn1cbiVpbmxpbmUge1xuXHRkaXNwbGF5OiBpbmxpbmU7XG59XG4laW5saW5lLWJsb2NrIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuJXRhYmxlIHtcblx0ZGlzcGxheTogdGFibGU7XG59XG4ldGFibGUtcm93IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XG59XG4ldGFibGUtY2VsbCB7XG5cdGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG4lbm9uZSB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG4lcHNldWRvIHtcblx0Y29udGVudDogXCJcIjtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi8qIC0tLS0tLS0tLS1cbiBAIFBvc2l0aW9uaW5nXG4tLS0tLS0tLS0tICovXG5cbiVhYnNvbHV0ZSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbiVyZWxhdGl2ZSB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbiVmaXhlZCB7XG5cdHBvc2l0aW9uOiBmaXhlZDtcbn1cbiVzdGF0aWMge1xuXHRwb3NpdGlvbjogc3RhdGljO1xufVxuJXN0cmV0Y2gge1xuXHR0b3A6IDA7XG5cdGJvdHRvbTogMDtcblx0bGVmdDogMDtcblx0cmlnaHQ6IDA7XG59XG5cbi8qIC0tLS0tLS0tLS1cbiBAIExheW91dFxuLS0tLS0tLS0tLSAqL1xuXG4lZnVsbC13aWR0aCB7XG5cdHdpZHRoOiAxMDAlO1xufVxuJWZ1bGwtaGVpZ2h0IHtcblx0aGVpZ2h0OiAxMDAlO1xufVxuJWFsaWduLWxlZnQge1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xufVxuJWFsaWduLWNlbnRlciB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbiVhbGlnbi1yaWdodCB7XG5cdHRleHQtYWxpZ246IHJpZ2h0O1xufVxuJWp1c3RpZnkge1xuXHR0ZXh0LWFsaWduOiBqdXN0aWZ5O1xufVxuJXYtYWxpZ24tdG9wIHtcblx0dmVydGljYWwtYWxpZ246IHRvcDtcbn1cbiV2LWFsaWduLW1pZGRsZSB7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4ldi1hbGlnbi1ib3R0b20ge1xuXHR2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xufVxuJXYtYWxpZ24tYmFzZWxpbmUge1xuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG4lbm8tbWFyZ2luIHtcblx0bWFyZ2luOiAwO1xufVxuJW1hcmdpbi1hdXRvIHtcblx0bWFyZ2luOiBhdXRvO1xufVxuJW5vLXBhZGRpbmcge1xuXHRwYWRkaW5nOiAwO1xufVxuJWZsb2F0LWxlZnQge1xuXHRmbG9hdDogbGVmdDtcbn1cbiVmbG9hdC1yaWdodCB7XG5cdGZsb2F0OiByaWdodDtcbn1cbiVmbG9hdC1ub25lIHtcbiAgICBmbG9hdDogbm9uZTtcbn1cblxuLyogLS0tLS0tLS0tLVxuIEAgQ29sb3JzXG4tLS0tLS0tLS0tICovXG5cbiViZy13aGl0ZSB7XG5cdGJhY2tncm91bmQ6ICNmZmY7XG59XG4lYmctYmxhY2sge1xuXHRiYWNrZ3JvdW5kOiAjMDAwO1xufVxuJWNvbG9yLXdoaXRlIHtcblx0Y29sb3I6ICNmZmY7XG59XG4lY29sb3ItYmxhY2sge1xuXHRjb2xvcjogIzAwMDtcbn1cblxuLyogLS0tLS0tLS0tLVxuIEAgVHlwb2dyYXBoeVxuLS0tLS0tLS0tLSAqL1xuXG4ldXBwZXJjYXNlIHtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbiVsb3dlcmNhc2Uge1xuXHR0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xufVxuJWNhcGl0YWxpemUge1xuXHR0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbn1cbiV1bmRlcmxpbmUge1xuXHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbiVuby11bmRlcmxpbmUge1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4lbm8tbGlzdC1zdHlsZSB7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG59XG4ld2hpdGUtc3BhY2Utbm9ybWFsIHtcblx0d2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cbiVub3dyYXAge1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuJWVsbGlwc2lzIHtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi8qIC0tLS0tLS0tLS1cbiBAIE92ZXJmbG93XG4tLS0tLS0tLS0tICovXG5cbiVvdmVyZmxvdy1hdXRvIHtcblx0b3ZlcmZsb3c6IGF1dG87XG59XG4lb3ZlcmZsb3ctaGlkZGVuIHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cbiVvdmVyZmxvdy12aXNpYmxlIHtcblx0b3ZlcmZsb3c6IHZpc2libGU7XG59XG4lb3ZlcmZsb3ctc2Nyb2xsIHtcblx0b3ZlcmZsb3c6IHNjcm9sbDtcbn1cblxuLyogLS0tLS0tLS0tLVxuIEAgTWlzYyBWaXN1YWxzXG4tLS0tLS0tLS0tICovXG5cbiVwb2ludGVyIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuJXRyYW5zaXRpb24ge1xuXHR0cmFuc2l0aW9uOiAwLjE1cyBhbGwgZWFzZS1pbi1vdXQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gQEAgQ29tcG9uZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyogLS0tLS0tLS0tLVxuIEAgUGFnaW5hdGlvblxuLS0tLS0tLS0tLSAqL1xuXG4lcGFnaW5hdGlvbiB7XG5cdC5wYWdlLWxpbmsge1xuXHRcdEBpZiB2YXJpYWJsZS1leGlzdHMoYm9keS1jb2xvcil7XG5cdFx0XHRjb2xvcjogJGJvZHktY29sb3I7XG5cdFx0fVxuXHR9XG5cdC5kaXNhYmxlZCAucGFnZS1saW5rIHtcblx0XHRjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXHRcdHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cdH1cbn1cblxuLyogLS0tLS0tLS0tLVxuIEAgU2xpZGVyc1xuLS0tLS0tLS0tLSAqL1xuXG4lc2xpZGVyIHtcbiAgICBAZXh0ZW5kICVyZWxhdGl2ZSAhb3B0aW9uYWw7XG5cdEBleHRlbmQgLm5vLWF4aW9tYXRpYy1tYXJnaW4gIW9wdGlvbmFsO1xuXG4gICAgLnNsaWRlLXBhZ2luYXRpb24ge1xuICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVlbTtcblx0XHRcdEBpZiB2YXJpYWJsZS1leGlzdHMoZm9udC1zaXplLWJhc2Upe1xuXHRcdFx0XHRmb250LXNpemU6ICRmb250LXNpemUtYmFzZTtcblx0XHRcdH1cbiAgICAgICAgICAgIEBpbmNsdWRlIHNpemUoMWVtKTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMwMDA7XG5cbiAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgW2RhdGEtc2xpZGVyLWNvbXBvbmVudH49XCJjb250cm9sc1wiXSB7XG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICBAZXh0ZW5kICVwb2ludGVyICFvcHRpb25hbDtcbiAgICAgICAgfVxuICAgIH1cblx0LnNsaWRlLW92ZXJmbG93IHtcblx0XHRAZXh0ZW5kICVvdmVyZmxvdy1oaWRkZW4gIW9wdGlvbmFsO1xuXHR9XG5cdC5zbGlkZSB7XG5cdFx0YmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdH1cbiAgICAmLnRyYW5zaXRpb24tZmFkZSB7XG4gICAgICAgIEBleHRlbmQgJXJlbGF0aXZlICFvcHRpb25hbDtcblxuICAgICAgICAuc2xpZGUtaG9sZGVyIHtcbiAgICAgICAgICAgIEBleHRlbmQgJWZ1bGwtd2lkdGggIW9wdGlvbmFsO1xuXHRcdFx0aGVpZ2h0OiAyNWVtO1xuICAgICAgICAgICAgQGV4dGVuZCAlcmVsYXRpdmUgIW9wdGlvbmFsO1xuICAgICAgICB9XG5cdFx0LnNsaWRlIHtcblx0XHRcdEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIDAgMCAwKTtcblx0XHR9XG4gICAgfVxuICAgICYudHJhbnNpdGlvbi1zbGlkZSB7XG4gICAgICAgIC5zbGlkZS1ob2xkZXIge1xuICAgICAgICAgICAgQGV4dGVuZCAlcmVsYXRpdmUgIW9wdGlvbmFsO1xuICAgICAgICAgICAgQGV4dGVuZCAuZC1mbGV4ICFvcHRpb25hbDtcblx0XHRcdEBleHRlbmQgLmFsaWduLWl0ZW1zLWNlbnRlciAhb3B0aW9uYWw7XG5cdFx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuICAgICAgICAuc2xpZGUge1xuXHRcdFx0ZmxleDogMTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogLS0tLS0tLS0tLVxuIEAgVGV4dCBGaWVsZHNcbi0tLS0tLS0tLS0gKi9cblxuJWlucHV0IHtcblx0YmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgcGFkZGluZzogMC4zNWVtO1xuXG4gICAgQGlmIHZhcmlhYmxlLWV4aXN0cyh0aGVtZS1jb2xvcnMpIGFuZCBtYXAtaGFzLWtleSgkdGhlbWUtY29sb3JzLCBwcmltYXJ5KXtcblx0ICAgICY6Zm9jdXMge1xuXHQgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkdGhlbWUtY29sb3JzLCBwcmltYXJ5KTtcblx0ICAgIH1cblx0fVxuXHRAaWYgdmFyaWFibGUtZXhpc3RzKHRoZW1lLWNvbG9ycykgYW5kIG1hcC1oYXMta2V5KCR0aGVtZS1jb2xvcnMsIGRhbmdlcil7XG5cdCAgICAmLmVycm9yIHtcblx0ICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHRoZW1lLWNvbG9ycywgZGFuZ2VyKTtcblx0ICAgIH1cblx0fVxufVxuXG4vKiAtLS0tLS0tLS0tXG4gQCBEcm9wZG93bnNcbi0tLS0tLS0tLS0gKi9cblxuJWN1c3RvbS1kcm9wZG93biB7XG4gICAgQGV4dGVuZCAlcmVsYXRpdmUgIW9wdGlvbmFsO1xuXG4gICAgc2VsZWN0IHtcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgQGV4dGVuZCAlcG9pbnRlciAhb3B0aW9uYWw7XG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIDAgMCAwKTtcbiAgICAgICAgei1pbmRleDogNTtcbiAgICAgICAgb3BhY2l0eTogMDtcblxuICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgICAgICYgKyAuZmFrZS1kcm9wZG93biB7XG5cdFx0XHRcdEBpZiB2YXJpYWJsZS1leGlzdHModGhlbWUtY29sb3JzKSBhbmQgbWFwLWhhcy1rZXkoJHRoZW1lLWNvbG9ycywgcHJpbWFyeSl7XG5cdCAgICAgICAgICAgICAgICAuYXJyb3ctaG9sZGVyIHtcblx0ICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBkYXJrZW4obWFwLWdldCgkdGhlbWUtY29sb3JzLCBwcmltYXJ5KSwgMTAlKTtcblx0ICAgICAgICAgICAgICAgIH1cblx0ICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5mYWtlLWRyb3Bkb3duIHtcbiAgICAgICAgW2RhdGEtdmFsdWVdIHtcbiAgICAgICAgICAgIEBleHRlbmQgJWlucHV0O1xuICAgICAgICB9XG4gICAgICAgIC5hcnJvdy1ob2xkZXIge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogMC4xNXMgYmFja2dyb3VuZCBlYXNlLWluLW91dDtcblx0XHRcdEBpZiB2YXJpYWJsZS1leGlzdHModGhlbWUtY29sb3JzKSBhbmQgbWFwLWhhcy1rZXkoJHRoZW1lLWNvbG9ycywgcHJpbWFyeSl7XG5cdFx0XHRcdGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLWNvbG9ycywgcHJpbWFyeSk7XG5cdFx0XHR9XG4gICAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCAwIG51bGwgbnVsbCk7XG4gICAgICAgICAgICBAZXh0ZW5kICVhbGlnbi1jZW50ZXIgIW9wdGlvbmFsO1xuICAgICAgICAgICAgQGluY2x1ZGUgc2l6ZSgyLjA1ZW0pO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICBAZXh0ZW5kICVpbmxpbmUtYmxvY2sgIW9wdGlvbmFsO1xuXG5cdFx0XHRAaWYgdmFyaWFibGUtZXhpc3RzKHRoZW1lLWNvbG9ycykgYW5kIG1hcC1oYXMta2V5KCR0aGVtZS1jb2xvcnMsIHByaW1hcnkpe1xuXHQgICAgICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcblx0ICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGRhcmtlbihtYXAtZ2V0KCR0aGVtZS1jb2xvcnMsIHByaW1hcnkpLCAxMCUpO1xuXHQgICAgICAgICAgICB9XG5cdCAgICAgICAgfVxuICAgICAgICAgICAgLmFycm93OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFxmMGQ3XCI7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIC0tLS0tLS0tLS1cbiBAIENoZWNrYm94ZXNcbi0tLS0tLS0tLS0gKi9cblxuJWN1c3RvbS1jaGVja2JveCB7XG5cdEBpZiB2YXJpYWJsZS1leGlzdHMoZ3JpZC1wYWRkaW5nKXtcblx0XHRtYXJnaW46ICRncmlkLXBhZGRpbmcgMDtcblx0fVxuXHRAZXh0ZW5kIC5kLWZsZXggIW9wdGlvbmFsO1xuXHRAZXh0ZW5kIC5hbGlnbi1pdGVtcy1jZW50ZXIgIW9wdGlvbmFsO1xuXG5cdGxhYmVsIHtcblx0XHRmbGV4LWdyb3c6IDE7XG5cdFx0cGFkZGluZy1sZWZ0OiAwLjVyZW07XG5cdFx0Zm9udC1zaXplOiAxcmVtO1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjI7XG5cdH1cbiAgICBsaSB7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuXHRpbnB1dCB7XG5cdFx0b3BhY2l0eTogMDtcblx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdEBleHRlbmQgJXJlbGF0aXZlICFvcHRpb25hbDtcblx0XHR6LWluZGV4OiA1O1xuXHRcdEBleHRlbmQgJXBvaW50ZXIgIW9wdGlvbmFsO1xuICAgICAgICBAaW5jbHVkZSBzaXplKDEwMCUpO1xuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblx0XHQmW2Rpc2FibGVkXSB+IC5pbnB1dC1iZyB7XG5cdFx0XHRvcGFjaXR5OiAwLjM1O1xuXHRcdH1cblx0fVxuICAgIC5pbnB1dCB7XG4gICAgICAgIEBpbmNsdWRlIHNpemUoMS4yNWVtKTtcblx0XHRtYXJnaW4tcmlnaHQ6IDAuNWVtO1xuXHRcdEBleHRlbmQgJXJlbGF0aXZlICFvcHRpb25hbDtcblx0XHRAZXh0ZW5kICVwb2ludGVyICFvcHRpb25hbDtcblx0fVxuICAgIC5pbnB1dC1iZyB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7XG4gICAgICAgIEBleHRlbmQgJWFic29sdXRlICFvcHRpb25hbDtcbiAgICAgICAgQGV4dGVuZCAlc3RyZXRjaCAhb3B0aW9uYWw7XG4gICAgfVxuICAgIC5zZWxlY3RlZC1pbmRpY2F0b3Ige1xuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgNTAlIG51bGwgbnVsbCA1MCUpO1xuICAgICAgICBAZXh0ZW5kICVhbGlnbi1jZW50ZXIgIW9wdGlvbmFsO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLC01MCUpO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBGb250QXdlc29tZTtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFxmMDBjXCI7XG4gICAgICAgICAgICB3aWR0aDogMS4zNXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM1cmVtO1xuICAgICAgICAgICAgQGV4dGVuZCAlYWxpZ24tY2VudGVyICFvcHRpb25hbDtcbiAgICAgICAgICAgIEBleHRlbmQgJWlubGluZS1ibG9jayAhb3B0aW9uYWw7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAwLjE1cyB0cmFuc2Zvcm0gZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5zZWxlY3RlZCB7XG4gICAgICAgIC5zZWxlY3RlZC1pbmRpY2F0b3Ige1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgQGlmIHZhcmlhYmxlLWV4aXN0cyhmb250LXdlaWdodHMpIGFuZCBtYXAtaGFzLWtleSgkZm9udC13ZWlnaHRzLCByZWd1bGFyKXtcblx0ICAgICAgICBmb250LXdlaWdodDogbWFwLWdldCgkZm9udC13ZWlnaHRzLCByZWd1bGFyKTtcblx0ICAgIH1cbiAgICB9XG5cdCYuZm9jdXMgbGFiZWwsIC5mb2N1cyArIGxhYmVsIHtcblx0XHRAZXh0ZW5kICV1bmRlcmxpbmUgIW9wdGlvbmFsO1xuXHR9XG5cdEBpZiB2YXJpYWJsZS1leGlzdHModGhlbWUtY29sb3JzKSBhbmQgbWFwLWhhcy1rZXkoJHRoZW1lLWNvbG9ycywgcHJpbWFyeSl7XG5cdCAgICAuZm9jdXMgKyBsaSBpbnB1dCB7XG5cdCAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCR0aGVtZS1jb2xvcnMsIHByaW1hcnkpO1xuXHQgICAgfVxuXHR9XG59XG5cbi8qIC0tLS0tLS0tLS1cbiBAIFJhZGlvIEJ1dHRvbnNcbi0tLS0tLS0tLS0gKi9cblxuJWN1c3RvbS1yYWRpbyB7XG5cdEBleHRlbmQgJWN1c3RvbS1jaGVja2JveDtcblxuXHQuaW5wdXQtYmcge1xuXHRcdGJvcmRlci1yYWRpdXM6IDIwcmVtO1xuXHR9XG59XG5cbi8qIC0tLS0tLS0tLS1cbiBAIERpYWxvZ3Ncbi0tLS0tLS0tLS0gKi9cblxuJWRpYWxvZy1ob2xkZXIge1xuXHRAaW5jbHVkZSBwb3NpdGlvbihmaXhlZCwgMCAwIDAgMCk7XG5cdG92ZXJmbG93OiBzY3JvbGw7XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4zKTtcbiAgICB0cmFuc2l0aW9uOiAwLjJzIGJhY2tncm91bmQgZWFzZS1pbi1vdXQ7XG5cblx0LnNjcm9sbCB7XG5cdFx0QGV4dGVuZCAlZnVsbC13aWR0aCAhb3B0aW9uYWw7XG5cdFx0QGV4dGVuZCAlZnVsbC1oZWlnaHQgIW9wdGlvbmFsO1xuXHRcdEBleHRlbmQgJXRhYmxlICFvcHRpb25hbDtcblx0fVxuXHQuY2VudGVyIHtcblx0XHRAZXh0ZW5kICV0YWJsZS1jZWxsICFvcHRpb25hbDtcblx0XHRAZXh0ZW5kICV2LWFsaWduLW1pZGRsZSAhb3B0aW9uYWw7XG4gICAgICAgIEBleHRlbmQgJXJlbGF0aXZlICFvcHRpb25hbDtcblx0fVxuXHQuZGlhbG9nIHtcbiAgICAgICAgQGV4dGVuZCAlYmctd2hpdGUgIW9wdGlvbmFsO1xuXHRcdEBleHRlbmQgJWZ1bGwtd2lkdGggIW9wdGlvbmFsO1xuXHRcdEBpZiB2YXJpYWJsZS1leGlzdHMoZ3JpZC1ndXR0ZXItd2lkdGgpe1xuXHRcdFx0bWFyZ2luOiAkZ3JpZC1ndXR0ZXItd2lkdGggYXV0bztcblx0XHR9XG4gICAgICAgIG1heC13aWR0aDogNTAwcHg7XG5cdFx0d2lkdGg6IDkwJTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAycHggMWVtIHJnYmEoMCwwLDAsMC4zNSk7XG5cdFx0QGlmIHZhcmlhYmxlLWV4aXN0cyhncmlkLXBhZGRpbmcpe1xuXHRcdFx0cGFkZGluZzogJGdyaWQtcGFkZGluZyAqIDEuNTtcblx0XHR9XG5cdFx0dHJhbnNmb3JtOiBzY2FsZSgwLjUpO1xuXG5cdFx0QGlmIHZhcmlhYmxlLWV4aXN0cyhncmlkLWJyZWFrcG9pbnRzKXtcblx0XHRcdCYuZGlhbG9nLWxnIHtcblx0XHRcdFx0bWF4LXdpZHRoOiBtYXAtZ2V0KCRncmlkLWJyZWFrcG9pbnRzLCBsZyk7XG5cdFx0XHR9XG5cdFx0XHQmLmRpYWxvZy1tZCB7XG5cdFx0XHRcdG1heC13aWR0aDogbWFwLWdldCgkZ3JpZC1icmVha3BvaW50cywgbWQpO1xuXHRcdFx0fVxuXHRcdFx0Ji5kaWFsb2ctc20ge1xuXHRcdFx0XHRtYXgtd2lkdGg6IG1hcC1nZXQoJGdyaWQtYnJlYWtwb2ludHMsIHNtKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0LmRpYWxvZy1oZWFkaW5nIHtcblx0XHRcdEBpZiB2YXJpYWJsZS1leGlzdHMoZ3JpZC1wYWRkaW5nKSBhbmQgdmFyaWFibGUtZXhpc3RzKGdyaWQtZ3V0dGVyLXdpZHRoKXtcblx0XHRcdFx0cGFkZGluZzogKCRncmlkLXBhZGRpbmcgKiAxLjUpICRncmlkLWd1dHRlci13aWR0aDtcblx0XHRcdH1cblxuICAgICAgICAgICAgaDQge1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAyZW07XG5cdFx0XHRcdG1hcmdpbjogMDtcbiAgICAgICAgICAgIH1cblx0XHR9XG5cdFx0LmJ1dHRvbi1ncm91cCB7XG5cdFx0XHRAaWYgdmFyaWFibGUtZXhpc3RzKGdyaWQtcGFkZGluZyl7XG5cdFx0XHRcdG1hcmdpbi10b3A6ICRncmlkLXBhZGRpbmc7XG5cdFx0XHR9XG5cblx0XHRcdC5idG4ge1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDAuNWVtO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQuZGlhbG9nLWVycm9yIHtcblx0XHRcdHdpZHRoOiA2MCU7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxuXHQmOm5vdCguY2xvc2luZykgfiAmIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0fVxufVxuXG4vKiAtLS0tLS0tLS0tXG4gQCBUb29sdGlwc1xuLS0tLS0tLS0tLSAqL1xuXG4ldG9vbHRpcHN0ZXItYmFzZSB7XG5cdC50b29sdGlwc3Rlci1ib3gge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgOHB4IHJnYmEoMCwwLDAsMC4yNSk7XG5cdFx0Zm9udC1mYW1pbHk6IGluaGVyaXQ7XG5cdFx0Zm9udC1zaXplOiAxMnB4O1xuXHRcdGxpbmUtaGVpZ2h0OiAxOHB4O1xuXHRcdHBhZGRpbmc6IDhweCAxMHB4O1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIG1heC13aWR0aDogMjc1cHg7XG5cbiAgICAgICAgLnRvb2x0aXBzdGVyLWNvbnRlbnQge1xuICAgICAgICAgICAgQGV4dGVuZCAlY29sb3Itd2hpdGUgIW9wdGlvbmFsO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuXHR9XG4gICAgLnRvb2x0aXBzdGVyLWFycm93LWJvcmRlciB7XG4gICAgXHRkaXNwbGF5OiBub25lO1xuICAgIH1cblx0Ji5kZWZhdWx0IHtcbiAgICAgICAgLnRvb2x0aXBzdGVyLWJveCB7XG4gICAgICAgIFx0QGlmIHZhcmlhYmxlLWV4aXN0cyhib2R5LWNvbG9yKXtcblx0ICAgICAgICAgICAgYmFja2dyb3VuZDogJGJvZHktY29sb3I7XG5cdCAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC50b29sdGlwc3Rlci1hcnJvdy1iYWNrZ3JvdW5kIHtcbiAgICAgICAgXHRAaWYgdmFyaWFibGUtZXhpc3RzKGJvZHktY29sb3Ipe1xuXHQgICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiAkYm9keS1jb2xvcjtcblx0ICAgICAgICB9XG4gICAgICAgIH1cblx0fVxuICAgIHVsLnRvb2x0aXAtbGlzdCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEuNWVtO1xuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGxpc3QtaXRlbTtcbiAgICAgICAgfVxuICAgICAgICBwIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gQEAgUHJvamVjdCBTcGVjaWZpYyBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qIC0tLS0tLS0tLS1cbiBAIE9wdGlvbnNcbi0tLS0tLS0tLS0gKi9cblxuJGVuYWJsZS1yb3VuZGVkOiAgICAgICAgICAgIGZhbHNlO1xuJGVuYWJsZS1zaGFkb3dzOlx0XHRcdGZhbHNlO1xuJGVuYWJsZS1yZXNwb25zaXZlLXRleHQ6XHR0cnVlO1xuXG4vKiAtLS0tLS0tLS0tXG4gQCBDb2xvcnNcbi0tLS0tLS0tLS0gKi9cblxuJGJyYW5kLXByaW1hcnk6ICAgICAgICAgIzAwN0FGODtcbiRicmFuZC1zZWNvbmRhcnk6ICAgICAgICNlZWUwNDc7XG4kYnJhbmQtdGVydGlhcnk6ICAgICAgICAjZTkyYTBlO1xuXG4kdGhlbWUtY29sb3JzOiBtYXAtbWVyZ2UoJHRoZW1lLWNvbG9ycywgKFxuICAgIHByaW1hcnk6ICRicmFuZC1wcmltYXJ5LFxuICAgIHNlY29uZGFyeTogJGJyYW5kLXNlY29uZGFyeSxcbiAgICB0ZXJ0aWFyeTogJGJyYW5kLXRlcnRpYXJ5LFxuICAgIGJsdWU6ICRicmFuZC1wcmltYXJ5LFxuICAgIHllbGxvdzogJGJyYW5kLXNlY29uZGFyeSxcbiAgICByZWQ6ICRicmFuZC10ZXJ0aWFyeSxcbiAgICBicmFuZC1saWdodDogI2U5ZTllOSxcbiAgICBicmFuZC1kYXJrOiAjMWExYTFhLFxuICAgIGxpZ2h0OiAjZTllOWU5LFxuICAgIGRhcms6ICMxYTFhMWEsXG4gICAgc3VjY2VzczogIzY2YjEzMixcbiAgICBpbmZvOiAkYnJhbmQtcHJpbWFyeSxcbiAgICB3YXJuaW5nOiAkYnJhbmQtc2Vjb25kYXJ5LFxuICAgIGRhbmdlcjogJGJyYW5kLXRlcnRpYXJ5XG4pKTtcblxuJGJvZHktYmc6ICAgICAgICAgICAgICAgI2ZmZjtcbiRib2R5LWNvbG9yOiAgICAgICAgICAgICMxYTFhMWE7XG5cbiRsaW5rLWNvbG9yOiAgICAgICAgICAgICRicmFuZC1wcmltYXJ5O1xuJGxpbmstaG92ZXItY29sb3I6ICAgICAgZGFya2VuKCRsaW5rLWNvbG9yLCAxNSUpO1xuXG4kbGluZS1jb2xvcjogXHRcdFx0I2RkZDtcblxuLyogLS0tLS0tLS0tLVxuIEAgTGF5b3V0XG4tLS0tLS0tLS0tICovXG5cbiRncmlkLWd1dHRlci13aWR0aDogXHQgMXJlbTtcbiRncmlkLXBhZGRpbmc6XHRcdFx0ICRncmlkLWd1dHRlci13aWR0aCAvIDI7XG5cbiR2ZXJ0aWNhbC1tYXJnaW4tYmFzZTpcdCAxLjVlbTtcblxuJGdyaWQtYnJlYWtwb2ludHM6IChcbiAgICB4czogMCxcbiAgICBzbTogNTc2cHgsXG4gICAgbWQ6IDc2OXB4LFxuICAgIGxnOiA5OTJweCxcbiAgICB4bDogMTI4MHB4XG4pO1xuXG4vKiAtLS0tLS0tLS0tXG4gQCBUeXBvZ3JhcGh5XG4tLS0tLS0tLS0tICovXG5cbiRmb250LXNpemVzOiAoXG4gICAgcm9vdDogMTZweCxcbiAgICBoMTogMzFweCxcbiAgICBoMjogNTRweCxcbiAgICBoMzogMzJweCxcbiAgICBoNDogMjNweCxcbiAgICBoNTogMjBweCxcbiAgICBoNjogMThweCxcbiAgICBsZWFkOiAyNXB4LFxuICAgIGJsb2NrcXVvdGU6IDE4cHhcbik7XG5cbiRmb250LXNpemUtYmFzZTogMXJlbTtcblxuLy8kZW5hYmxlLWFudGlhbGlhc2luZzogZmFsc2U7XG5cbiRsZWFkLWZvbnQtc2l6ZTogcmVtcyhtYXAtZ2V0KCRmb250LXNpemVzLCBsZWFkKSk7XG4kYmxvY2txdW90ZS1mb250LXNpemU6IHJlbXMobWFwLWdldCgkZm9udC1zaXplcywgYmxvY2txdW90ZSkpO1xuXG4kZm9udC1mYW1pbHktc2Fucy1zZXJpZjogYXpvLXNhbnMtd2ViLCBcIkF2ZW5pclwiLCBcIlR3IENlbiBNVFwiLCBcIkhlbHZldGljYVwiLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiRoZWFkaW5ncy1mb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWY7XG4kZm9udC1mYW1pbHktYmFzZTogJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWY7XG5cbiRmb250LXdlaWdodHM6IChcbiAgICBib2xkOiA3MDAsXG4gICAgbWVkaXVtOiA1MDAsXG4gICAgcmVndWxhcjogNDAwXG4pO1xuXG4kZm9udC13ZWlnaHQtYmFzZTogbWFwLWdldCgkZm9udC13ZWlnaHRzLCByZWd1bGFyKTtcbiRoZWFkaW5ncy1mb250LXdlaWdodDogbWFwLWdldCgkZm9udC13ZWlnaHRzLCBib2xkKTtcbiRsZWFkLWZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCRmb250LXdlaWdodHMsIG1lZGl1bSk7XG5cbiRsaW5lLWhlaWdodC1iYXNlOiAxLjY1O1xuJGhlYWRpbmdzLWxpbmUtaGVpZ2h0OiAxLjI1O1xuXG4kbGluay1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4kbGluay1ob3Zlci1kZWNvcmF0aW9uOiAkbGluay1kZWNvcmF0aW9uO1xuXG4kcmVzcG9uc2l2ZS10ZXh0OiAoXG4gICAgbW9iaWxlLW1pbi1zaXplOiAxMnB4LFxuICAgIG1vYmlsZS1tYXgtc2l6ZTogbWFwLWdldCgkZm9udC1zaXplcywgcm9vdCksXG4gICAgZGVza3RvcC1taW4tc2l6ZTogMTJweCxcbiAgICBkZXNrdG9wLW1heC1zaXplOiBtYXAtZ2V0KCRmb250LXNpemVzLCByb290KSxcbiAgICBtaW4tc2NyZWVuLXdpZHRoOiAzMjBweCxcbiAgICBtb2JpbGUtc2NyZWVuLXdpZHRoOiA3NjhweCxcbiAgICBtYXgtc2NyZWVuLXdpZHRoOiBtYXAtZ2V0KCRncmlkLWJyZWFrcG9pbnRzLCB4bClcbik7XG5cbi8qIC0tLS0tLS0tLS1cbiBAIE1pc2Ncbi0tLS0tLS0tLS0gKi9cblxuJGhyLWJvcmRlci1jb2xvcjogJGxpbmUtY29sb3I7XG4kaHItYm9yZGVyLXdpZHRoOiAxcHg7XG5cbiRib3JkZXItcmFkaXVzOiAwO1xuJGJvcmRlci1yYWRpdXMtbGc6ICRib3JkZXItcmFkaXVzICogMS41O1xuJGJvcmRlci1yYWRpdXMtc206ICRib3JkZXItcmFkaXVzIC8gMS41O1xuXG4kY29udGFpbmVyLXdpZHRoOiAxMzQ0cHg7XG4iLCIjbmV3cyB7XG4gICAgbWFyZ2luOiA2Ljc1cmVtIDA7XG5cbiAgICAubm8tcmVzdWx0cyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW46IDRyZW0gMCAycmVtO1xuXG4gICAgICAgICY6OmJlZm9yZSwgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNTAsIDE1MCwgMTUwLCAwLjI1KTtcbiAgICAgICAgfVxuICAgICAgICAubm8tcmVzdWx0cy10ZXh0IHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuMztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIG1hcmdpbjogMCA1cmVtO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zYW5zLXNlcmlmO1xuICAgICAgICAgICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmNhcmQge1xuICAgICAgICAuY2FyZC1jb250ZW50IHtcbiAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnBhZ2luYXRpb24tYXJlYSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgfVxufVxuXG4vLyBNb2JpbGUgU3R5bGVzXG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogYnJlYWtwb2ludC1nZXQoJ21heCcsIGxnKSkge1xuICAgICNuZXdzIHtcbiAgICAgICAgLmNhcmQge1xuICAgICAgICAgICAgcGFkZGluZzogMS43NXJlbTtcblxuICAgICAgICAgICAgLmNhcmQtY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5jYXJkIC5mYS1jaGV2cm9uLWNpcmNsZS1yaWdodCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiBicmVha3BvaW50LWdldCgnbWF4JywgbWQpKSBhbmQgKG1pbi13aWR0aDogYnJlYWtwb2ludC1nZXQoJ21pbicsIHNtKSkge1xuICAgICNuZXdzIHtcbiAgICAgICAgLmNhcmQtY29udGVudCwgLmNhcmQtaW1hZ2Uge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgfVxuICAgICAgICAubmV3cy1wb3N0aW5nIHtcbiAgICAgICAgICAgIG1hcmdpbjogMXJlbSAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IGJyZWFrcG9pbnQtZ2V0KCdtYXgnLCBtZCkpIHtcbiAgICAjbmV3cyB7XG4gICAgICAgIC5jYXJkIHtcbiAgICAgICAgICAgIC5jYXJkLWJvdHRvbSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IGJyZWFrcG9pbnQtZ2V0KCdtYXgnLCBzbSkpIHtcbiAgICAjbmV3cyB7XG4gICAgICAgIG1hcmdpbjogNHJlbSAwO1xuXG4gICAgICAgIGRpdi5jYXJkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW07XG5cbiAgICAgICAgICAgIC5jYXJkLWltYWdlIGltZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIjc2luZ2xlIHtcbiAgICBtYXJnaW4tdG9wOiA2cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDhyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLmFydGljbGVfX3B1Ymxpc2gtZGF0ZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuICAgIC5hcnRpY2xlIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAuYXJ0aWNsZS1oZWFkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgICAgIGgzIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmFydGljbGUtaW50cm8ge1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB3ZWlnaHQtZ2V0KG1lZGl1bSk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBtYXAtZ2V0KCRmb250LXNpemVzLCBoNCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaDQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5ibG9jay1jb250ZW50IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG5cbiAgICAgICAgICAgIC5ibG9jay10ZXh0LWNvbnRlbnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmLndoaXRlLWJnIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcblxuICAgICAgICAuYXJ0aWNsZSAuYXJ0aWNsZS1oZWFkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDNyZW0gMCAwO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5mZWF0dXJlZC1pbWFnZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5ibG9jay1jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gICAgLmltYWdlLXRleHQtYmxvY2sge1xuICAgICAgICBoNCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWRkLXRvLUFueSBpY29uc1xuXG4gICAgLmljb24tcm93IHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICAgIC5hZGR0b2FueV9saXN0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG4gICAgLnNoYXJlLWljb25zIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwN0FGODtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDI2cHg7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAwLjNzO1xuXG4gICAgICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci1nZXQoeWVsbG93KTtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkdGhlbWUtY29sb3JzLCBicmFuZC1kYXJrKTtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci1nZXQoeWVsbG93KSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IDAuM3M7XG5cbiAgICAgICAgICAgICAgICBzdmcgcGF0aCwgZywgZyBwYXRoIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogbWFwLWdldCgkdGhlbWUtY29sb3JzLCBicmFuZC1kYXJrKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmEyYV9idXR0b25faW5zdGFncmFtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgICAgICAgIG1hcmdpbjogMCA1cHggMCAxcHg7XG4gICAgICAgIH1cbiAgICAgICAgLmEyYV9zdmcge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMnB4O1xuICAgICAgICAgICAgd2lkdGg6IDIycHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmluc3RhLWljb24ge1xuICAgICAgICBtYXJnaW4tbGVmdDogM3B4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuICAgIC5hZGR0b2FueV9saXN0IGEge1xuICAgICAgICBtYXJnaW46IDAgNHB4O1xuICAgICAgICB0cmFuc2l0aW9uOiAwLjNzO1xuICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgICAuYXJ0aWNsZS1zb2NpYWwge1xuICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA2cmVtO1xuICAgIH1cblxuICAgIC8vIEFydGljbGUgTmF2aWdhdGlvblxuXG4gICAgc2VjdGlvbi5hcnRpY2xlLW5hdmlnYXRpb24ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgLm5hdi1ib3gge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxMHJlbTtcblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMi4yNXJlbSAzcmVtO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLnJpZ2h0IHtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5sZWZ0IHtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYS5iYWNrLXRvLWxpc3QsIC5uYXYtYm94IGEge1xuICAgICAgICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogMC4zcztcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCR0aGVtZS1jb2xvcnMsIGJsdWUpO1xuXG4gICAgICAgICAgICAgICAgLmFydGljbGUtbGlzdCB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IDAuM3M7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCR0aGVtZS1jb2xvcnMsIGJsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAubmF2LWJveCwgLmFydGljbGUtbGlzdCB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAwLjNzO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U5ZTllOTtcblxuICAgICAgICAgICAgLmZhLWNoZXZyb24tY2lyY2xlLWxlZnQ6OmJlZm9yZSwgLmZhLWNoZXZyb24tY2lyY2xlLXJpZ2h0OjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIHRvcDogMjUlO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5mYS1jaGV2cm9uLWNpcmNsZS1sZWZ0OjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5mYS1jaGV2cm9uLWNpcmNsZS1yaWdodDo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5hcnRpY2xlLXByZXZpZXcge1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmZhbCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDIuMjVyZW07XG4gICAgICAgIH1cbiAgICAgICAgYS5wcmV2aW91cywgYS5uZXh0LCBhLmJhY2stdG8tbGlzdCB7XG4gICAgICAgICAgICBjb2xvcjogIzFhMWExYTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzMXB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW1zKDI1cHgpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHdlaWdodC1nZXQobWVkaXVtKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAucHJldmlvdXMgc3BhbiwgLm5leHQgc3BhbiB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjVweDtcbiAgICAgICAgfVxuICAgICAgICAuYXJ0aWNsZS1saXN0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlOWU5ZTk7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkZ3JpZC1ndXR0ZXItd2lkdGg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjdyZW0gM3JlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gQmFubmVyXG5cbi5uZXdzLXNpbmdsZS1iYW5uZXIge1xuICAgIGhlaWdodDogOC43NXJlbTtcbn1cbi5yb3ctbm8tcGFkZGluZyB7XG4gICAgW2NsYXNzKj1cImNvbC1cIl0ge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLy8gTW9iaWxlIFN0eWxlc1xuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IGJyZWFrcG9pbnQtZ2V0KCdtYXgnLCBsZykpIHtcbiAgICAjc2luZ2xlIHtcbiAgICAgICAgaDQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiBicmVha3BvaW50LWdldCgnbWF4JywgbWQpKSB7XG4gICAgI3NpbmdsZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDNyZW07XG5cbiAgICAgICAgLmFydGljbGUge1xuICAgICAgICAgICAgLmFydGljbGUtaGVhZCBoMyB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHNlY3Rpb24uYXJ0aWNsZS1uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIC5uYXYtYm94IHtcbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgbWluLWhlaWdodDogN3JlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLmZhLWNoZXZyb24tY2lyY2xlLWxlZnQ6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLmZhLWNoZXZyb24tY2lyY2xlLXJpZ2h0OjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmltYWdlLXRleHQtYmxvY2sge1xuICAgICAgICAgICAgbWFyZ2luOiAxcmVtIDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogYnJlYWtwb2ludC1nZXQoJ21heCcsIHNtKSkge1xuICAgICNzaW5nbGUge1xuXG4gICAgICAgIC5hcnRpY2xlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMnJlbTtcblxuICAgICAgICAgICAgLmFydGljbGUtaGVhZCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAgICAgICAgIGgzIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogM3JlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgc2VjdGlvbi5hcnRpY2xlLW5hdmlnYXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAycmVtO1xuXG4gICAgICAgICAgICAubmF2LWJveCBhIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAyLjI1cmVtIDJyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDAwcHgpIHtcbiAgICAjc2luZ2xlIHtcbiAgICAgICAgc2VjdGlvbi5hcnRpY2xlLW5hdmlnYXRpb24ge1xuICAgICAgICAgICAgYS5wcmV2aW91cywgYS5uZXh0LCBhLmJhY2stdG8tbGlzdCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW1zKDIwcHgpO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLm5hdi1ib3ggYSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMi4yNXJlbSAxcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl19 */
