/* ----------
 @ Bourbon
---------- */
/* ----------
 @ Bootstrap Variables
---------- */
/* ----------
 @ Custom Variables
---------- */
/* --------------------
 @@ Project Specific Variables
-------------------- */
/* ----------
 @ Options
---------- */
/* ----------
 @ Colors
---------- */
/* ----------
 @ Typography
---------- */
/* ----------
 @ Layout
---------- */
/* ----------
 @ Misc
---------- */
/* ----------
 @ Custom Utilities
---------- */
/* Project specific mixins */
/* ----------
 @ A mixin to handle some site entity colors
---------- */
/* --------------------
 @@ 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)
---------- */
/* ----------
 @ Size
 	- Shortcut for setting height and width
 	- $width => width of element
 	- $height => height of element
 	- Single value will set both values (e.g. size(100%);
---------- */
/* --------------------
 @@ 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
---------- */
/* ----------
 @ 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
---------- */
.c-banner-small {
  height: 15rem;
  margin: 0;
}

.c-banner-small + * {
  margin-top: 5rem;
}

.c-banner-small__swoop {
  position: absolute;
  top: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  width: 100%;
  height: 15rem;
  z-index: -1;
}

.parent-back-to-batoche .c-banner-small-swoop__circle-back,
.c-banner-small--batoche .c-banner-small-swoop__circle-back {
  fill: #ffcd00;
}

@media only screen and (min-width: 1900px) {
  .c-banner-small__swoop {
    top: -2vw;
    height: 13.7vw;
  }
}

@media only screen and (max-width: 768px) {
  .c-banner-small {
    height: 8rem;
  }
  .c-banner-small + * {
    margin-top: 3rem;
  }
  .c-banner-small__swoop {
    height: 8rem;
  }
}

.c-add-to-any .addtoany_list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.c-add-to-any .addtoany_list [class^="a2a_button"] {
  padding: 0;
}

.c-add-to-any .addtoany_list [class^="a2a_button"] .a2a_svg {
  display: block;
  margin: 0;
  padding: 0.25rem;
  background-color: #fff !important;
  border-radius: 50% !important;
}

.c-add-to-any .addtoany_list [class^="a2a_button"] .a2a_svg svg {
  fill: #ff6a13;
}

.c-add-to-any .addtoany_list [class^="a2a_button"] .a2a_svg svg path {
  fill: #ff6a13;
  -webkit-transition: fill 150ms ease-out;
  transition: fill 150ms ease-out;
}

.c-add-to-any .addtoany_list [class^="a2a_button"]:hover, .c-add-to-any .addtoany_list [class^="a2a_button"]:focus {
  opacity: 1;
}

.c-add-to-any .addtoany_list [class^="a2a_button"]:hover .a2a_svg, .c-add-to-any .addtoany_list [class^="a2a_button"]:focus .a2a_svg {
  opacity: 1;
}

.c-add-to-any .addtoany_list [class^="a2a_button"]:hover svg, .c-add-to-any .addtoany_list [class^="a2a_button"]:focus svg {
  opacity: 1;
}

.c-add-to-any .addtoany_list [class^="a2a_button"]:hover svg path, .c-add-to-any .addtoany_list [class^="a2a_button"]:focus svg path {
  fill: #0057b7;
}

.c-add-to-any--vertical .addtoany_list {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.c-add-to-any--vertical .addtoany_list [class^="a2a_button"] {
  margin: 0.5rem 0;
}

.c-add-to-any--vertical .addtoany_list [class^="a2a_button"]:first-child {
  margin-top: 0;
}

.c-add-to-any--horizontal {
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  margin: 0 auto;
}

.c-add-to-any--horizontal .addtoany_list {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
}

.c-add-to-any--horizontal .addtoany_list [class^="a2a_button"] {
  margin: 0 0.5rem;
}

.c-add-to-any--horizontal .addtoany_list [class^="a2a_button"]:first-child {
  margin-left: 0;
}

.c-product-gallery__primary {
  position: relative;
  overflow: hidden;
}

.c-product-gallery__primary-el {
  border-radius: 0.33333em;
  width: 100%;
  height: auto;
  margin-top: 0;
  position: relative;
}

.c-product-gallery__rail {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
  width: 105%;
}

.c-product-gallery__thumb {
  width: 20%;
  position: relative;
  overflow: hidden;
  border-radius: 0.33333em;
  margin: 5% 5% 0 0;
}

.c-product-gallery__thumb::before {
  content: '';
  display: block;
  padding-top: 100%;
}

.c-product-gallery__thumb-el {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.c-product-gallery__thumb-el--long {
  width: auto;
  height: 100%;
}

.c-product-gallery__thumb-el--tall {
  height: 100%;
  width: auto;
}

.product_title {
  font-family: kiro, sans-serif;
  font-size: 3.55556rem;
  font-weight: 400;
  line-height: 1.28;
  color: #0057b7;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl91dGlsaXRpZXMuc2NzcyIsInBhZ2UtdGVtcGxhdGVzL3NpbmdsZS1wcm9kdWN0cy5jc3MiLCJfY3VzdG9tLXV0aWxpdGllcy5zY3NzIiwiX3ZhcmlhYmxlcy5zY3NzIiwiX21peGlucy5zY3NzIiwiLi4vLi4vLi4vYmFzZS10aGVtZS9hc3NldHMvc2Nzcy91dGlsaXRpZXMvX21peGlucy5zY3NzIiwiY29tcG9uZW50cy9fYmFubmVyLXNtYWxsLnNjc3MiLCJjb21wb25lbnRzL19hZGQtdG8tYW55LnNjc3MiLCJjb21wb25lbnRzL19wcm9kdWN0LWdhbGxlcnkuc2NzcyIsInBhZ2UtdGVtcGxhdGVzL3NpbmdsZS1wcm9kdWN0cy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztZQ0VZO0FESVo7O1lDRFk7QUNMWjs7WURRWTtBRVJaOztzQkZXc0I7QUVQdEI7O1lGVVk7QUVKWjs7WUZPWTtBRStFWjs7WUY1RVk7QUU4SFo7O1lGM0hZO0FFbUpaOztZRmhKWTtBQ3BCWjs7WUR1Qlk7QUc3QlosNEJBQUE7QUFFQTs7WUgrQlk7QUlqQ1o7O3NCSm9Dc0I7QUloQ3RCOzs7Ozs7WUp1Q1k7QUloQlo7Ozs7O1lKc0JZO0FJWFo7Ozs7OztZSmtCWTtBSU5aOztzQkpTc0I7QUlMdEI7OztZSlNZO0FJQ1o7Ozs7WUpJWTtBSVdaOzs7OztZSkxZO0FJZ0JaOzs7WUpaWTtBSXdCWjs7O1lKcEJZO0FLbEZaO0VBQ0ksYUFBYTtFQUNiLFNBQVM7QUxvRmI7O0FLdEZBO0VBS1EsZ0JBQWdCO0FMcUZ4Qjs7QUtsRkE7RUFDSSxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLFNBQVM7RUFDVCxtQ0FBMkI7VUFBM0IsMkJBQTJCO0VBQzNCLFdBQVc7RUFDWCxhQUFhO0VBQ2IsV0FBVztBTHFGZjs7QUtuRkE7O0VBRUksYUhKMkI7QUYwRi9COztBS25GQTtFQUNJO0lBQ0ksU0FBUztJQUNULGNBQWM7RUxzRnBCO0FBQ0Y7O0FLbkZBO0VBQ0k7SUFDSSxZQUFZO0VMc0ZsQjtFS3ZGRTtJQUlRLGdCQUFnQjtFTHNGMUI7RUtuRkU7SUFDSSxZQUFZO0VMcUZsQjtBQUNGOztBTTVIQTtFQUVRLG9CQUFhO0VBQWIsb0JBQWE7RUFBYixhQUFhO0FOOEhyQjs7QU1oSUE7RUFLWSxVQUFVO0FOK0h0Qjs7QU1wSUE7RUFRZ0IsY0FBYztFQUNkLFNBQVM7RUFDVCxnQkFBZ0I7RUFDaEIsaUNBQWlDO0VBQ2pDLDZCQUE2QjtBTmdJN0M7O0FNNUlBO0VBZW9CLGFKQ1c7QUZnSS9COztBTWhKQTtFQWtCd0IsYUpGTztFSUdQLHVDQUErQjtFQUEvQiwrQkFBK0I7QU5rSXZEOztBTXJKQTtFQXlCZ0IsVUFBVTtBTmdJMUI7O0FNekpBO0VBNEJvQixVQUFVO0FOaUk5Qjs7QU03SkE7RUErQm9CLFVBQVU7QU5rSTlCOztBTWpLQTtFQWtDd0IsYUpwQk87QUZ1Si9COztBTTVIQTtFQUVRLDRCQUFzQjtFQUF0Qiw2QkFBc0I7TUFBdEIsMEJBQXNCO1VBQXRCLHNCQUFzQjtBTjhIOUI7O0FNaElBO0VBS1ksZ0JBQWdCO0FOK0g1Qjs7QU1wSUE7RUFRZ0IsYUFBYTtBTmdJN0I7O0FNM0hBO0VBQ0ksMEJBQWtCO0VBQWxCLHVCQUFrQjtFQUFsQixrQkFBa0I7RUFDbEIsY0FBYztBTjhIbEI7O0FNaElBO0VBS1EsOEJBQW1CO0VBQW5CLDZCQUFtQjtNQUFuQix1QkFBbUI7VUFBbkIsbUJBQW1CO0FOK0gzQjs7QU1wSUE7RUFRWSxnQkFBZ0I7QU5nSTVCOztBTXhJQTtFQVdnQixjQUFjO0FOaUk5Qjs7QU9sTUE7RUFDSSxrQkFBa0I7RUFDbEIsZ0JBQWdCO0FQcU1wQjs7QU9uTUE7RUFDSSx3Qkw4S21DO0VLN0tuQyxXQUFXO0VBQ1gsWUFBWTtFQUNaLGFBQWE7RUFDYixrQkFBa0I7QVBzTXRCOztBT3BNQTtFQUNJLG9CQUFhO0VBQWIsb0JBQWE7RUFBYixhQUFhO0VBQ2IsOEJBQW1CO0VBQW5CLDZCQUFtQjtNQUFuQix1QkFBbUI7VUFBbkIsbUJBQW1CO0VBQ25CLFdBQVc7QVB1TWY7O0FPck1BO0VBQ0ksVUFBVTtFQUNWLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsd0JMK0ptQztFSzlKbkMsaUJBQWlCO0FQd01yQjs7QU83TUE7RUFRUSxXQUFXO0VBQ1gsY0FBYztFQUNkLGlCQUFpQjtBUHlNekI7O0FPdE1BO0VBQ0ksa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixTQUFTO0VBQ1QsT0FBTztFQUNQLFFBQVE7RUFDUixXQUFXO0VBQ1gsWUFBWTtFQUNaLG9CQUFpQjtLQUFqQixpQkFBaUI7QVB5TXJCOztBT3ZNQTtFQUNJLFdBQVc7RUFDWCxZQUFZO0FQME1oQjs7QU94TUE7RUFDSSxZQUFZO0VBQ1osV0FBVztBUDJNZjs7QVFuUEE7RUFDSSw2Qk5xSG1DO0VNcEhuQyxxQkpnRmdEO0VJL0VoRCxnQk4ySFk7RU0xSFosaUJBQWdCO0VBQ2hCLGNOSTJCO0FGa1AvQiIsImZpbGUiOiJwYWdlLXRlbXBsYXRlcy9zaW5nbGUtcHJvZHVjdHMuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyogLS0tLS0tLS0tLVxuIEAgQm91cmJvblxuLS0tLS0tLS0tLSAqL1xuXG5AaW1wb3J0IFwiYm91cmJvbi9jb3JlL19ib3VyYm9uLnNjc3NcIjtcblxuLyogLS0tLS0tLS0tLVxuIEAgQm9vdHN0cmFwIFZhcmlhYmxlc1xuLS0tLS0tLS0tLSAqL1xuXG5AaW1wb3J0IFwiYm9vdHN0cmFwL3Njc3MvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiYm9vdHN0cmFwL3Njc3MvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiYm9vdHN0cmFwL3Njc3MvbWl4aW5zXCI7IiwiLyogLS0tLS0tLS0tLVxuIEAgQm91cmJvblxuLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLVxuIEAgQm9vdHN0cmFwIFZhcmlhYmxlc1xuLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLVxuIEAgQ3VzdG9tIFZhcmlhYmxlc1xuLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiBAQCBQcm9qZWN0IFNwZWNpZmljIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIE9wdGlvbnNcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIENvbG9yc1xuLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLVxuIEAgVHlwb2dyYXBoeVxuLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLVxuIEAgTGF5b3V0XG4tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tXG4gQCBNaXNjXG4tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tXG4gQCBDdXN0b20gVXRpbGl0aWVzXG4tLS0tLS0tLS0tICovXG4vKiBQcm9qZWN0IHNwZWNpZmljIG1peGlucyAqL1xuLyogLS0tLS0tLS0tLVxuIEAgQSBtaXhpbiB0byBoYW5kbGUgc29tZSBzaXRlIGVudGl0eSBjb2xvcnNcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gQEAgTWl4aW5zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLVxuIEAgTWFpbnRhaW4gQXNwZWN0IFJhdGlvXG5cdC0gKioqIHJlcXVpcmVzIHRoYXQgdGhlIGVsZW1lbnQgaGFzIGFuIGlubmVyIGNvbnRhaW5lciBlbGVtZW50IGlmIHRoZXJlIGlzIGlubmVyIGNvbnRlbnRcblx0LSAkeCA9PiB4IHBvcnRpb24gb2YgcmF0aW9cblx0LSAkeSA9PiB5IHBvcnRpb24gb2YgcmF0aW9cbiAgICAtICRjID0+IHNldCB0byAnZmFsc2UnIHRvIHNraXAgOmZpcnN0LWNoaWxkIHN0eWxpbmdcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIEJhY2tncm91bmQgSW1hZ2Vcblx0LSBTaG9ydGN1dCBmb3IgbGlua2luZyBpbWFnZXMgaW4gdGhlIGNvbmZpZ3VyZWQgaW1hZ2VzIGZvbGRlclxuXHQtICRpID0+IGltYWdlIGZpbGUgbmFtZSAocmVsYXRpdmUgdG8gaW1hZ2VzIGZvbGRlcilcblx0LSAkcmVzdCA9PiBhbnkgYWRkaXRpb25hbCAnYmFja2dyb3VuZCcgcHJvcGVydHkgc2hvcnRjdXQgZGVjbGFyYXRpb25zIChpZTogbm8tcmVwZWF0KVxuLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLVxuIEAgU2l6ZVxuIFx0LSBTaG9ydGN1dCBmb3Igc2V0dGluZyBoZWlnaHQgYW5kIHdpZHRoXG4gXHQtICR3aWR0aCA9PiB3aWR0aCBvZiBlbGVtZW50XG4gXHQtICRoZWlnaHQgPT4gaGVpZ2h0IG9mIGVsZW1lbnRcbiBcdC0gU2luZ2xlIHZhbHVlIHdpbGwgc2V0IGJvdGggdmFsdWVzIChlLmcuIHNpemUoMTAwJSk7XG4tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEBAIEZ1bmN0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIENvbG9yIEdldFxuIFx0LSBnZXQgdmFsdWUgZnJvbSB0aGUgJHRoZW1lLWNvbG9ycyBtYXBcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIEJyZWFrcG9pbnQgR2V0XG4gXHQtIGdldCB2YWx1ZSBmcm9tIHRoZSAkZ3JpZC1icmVha3BvaW50cyBtYXBcbiBcdC0gJHR5cGUgPT4gJ21heCcgfCAnbWluJywgZGVwZW5kaW5nIG9uIG1lZGlhIHF1ZXJ5IHR5cGVcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIFJlbXNcblx0LSBjb252ZXJ0IHBpeGVscyB0byByZW1zXG5cdC0gJHAgPT4gcGl4ZWwgdmFsdWVcblx0LSAkYiA9PiBiYXNlIHNpemUgKHRvIHVzZSBpbiBmb3JtdWxhKSAtIGRlZmF1bHRzIHRvICRmb250LXNpemVzIHJvb3QgdmFyaWFibGVcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIE1hcCBEZWVwIEdldFxuIFx0LSBnZXQgdmFsdWUgZnJvbSBuZXN0ZWQgbWFwc1xuLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLVxuIEAgV2VpZ2h0IEdldFxuIFx0LSBnZXQgdmFsdWUgZnJvbSB0aGUgJGZvbnQtd2VpZ2h0cyBtYXBcbi0tLS0tLS0tLS0gKi9cbi5jLWJhbm5lci1zbWFsbCB7XG4gIGhlaWdodDogMTVyZW07XG4gIG1hcmdpbjogMDtcbn1cblxuLmMtYmFubmVyLXNtYWxsICsgKiB7XG4gIG1hcmdpbi10b3A6IDVyZW07XG59XG5cbi5jLWJhbm5lci1zbWFsbF9fc3dvb3Age1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDE1cmVtO1xuICB6LWluZGV4OiAtMTtcbn1cblxuLnBhcmVudC1iYWNrLXRvLWJhdG9jaGUgLmMtYmFubmVyLXNtYWxsLXN3b29wX19jaXJjbGUtYmFjayxcbi5jLWJhbm5lci1zbWFsbC0tYmF0b2NoZSAuYy1iYW5uZXItc21hbGwtc3dvb3BfX2NpcmNsZS1iYWNrIHtcbiAgZmlsbDogI2ZmY2QwMDtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxOTAwcHgpIHtcbiAgLmMtYmFubmVyLXNtYWxsX19zd29vcCB7XG4gICAgdG9wOiAtMnZ3O1xuICAgIGhlaWdodDogMTMuN3Z3O1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmMtYmFubmVyLXNtYWxsIHtcbiAgICBoZWlnaHQ6IDhyZW07XG4gIH1cbiAgLmMtYmFubmVyLXNtYWxsICsgKiB7XG4gICAgbWFyZ2luLXRvcDogM3JlbTtcbiAgfVxuICAuYy1iYW5uZXItc21hbGxfX3N3b29wIHtcbiAgICBoZWlnaHQ6IDhyZW07XG4gIH1cbn1cblxuLmMtYWRkLXRvLWFueSAuYWRkdG9hbnlfbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5jLWFkZC10by1hbnkgLmFkZHRvYW55X2xpc3QgW2NsYXNzXj1cImEyYV9idXR0b25cIl0ge1xuICBwYWRkaW5nOiAwO1xufVxuXG4uYy1hZGQtdG8tYW55IC5hZGR0b2FueV9saXN0IFtjbGFzc149XCJhMmFfYnV0dG9uXCJdIC5hMmFfc3ZnIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMC4yNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA1MCUgIWltcG9ydGFudDtcbn1cblxuLmMtYWRkLXRvLWFueSAuYWRkdG9hbnlfbGlzdCBbY2xhc3NePVwiYTJhX2J1dHRvblwiXSAuYTJhX3N2ZyBzdmcge1xuICBmaWxsOiAjZmY2YTEzO1xufVxuXG4uYy1hZGQtdG8tYW55IC5hZGR0b2FueV9saXN0IFtjbGFzc149XCJhMmFfYnV0dG9uXCJdIC5hMmFfc3ZnIHN2ZyBwYXRoIHtcbiAgZmlsbDogI2ZmNmExMztcbiAgdHJhbnNpdGlvbjogZmlsbCAxNTBtcyBlYXNlLW91dDtcbn1cblxuLmMtYWRkLXRvLWFueSAuYWRkdG9hbnlfbGlzdCBbY2xhc3NePVwiYTJhX2J1dHRvblwiXTpob3ZlciwgLmMtYWRkLXRvLWFueSAuYWRkdG9hbnlfbGlzdCBbY2xhc3NePVwiYTJhX2J1dHRvblwiXTpmb2N1cyB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5jLWFkZC10by1hbnkgLmFkZHRvYW55X2xpc3QgW2NsYXNzXj1cImEyYV9idXR0b25cIl06aG92ZXIgLmEyYV9zdmcsIC5jLWFkZC10by1hbnkgLmFkZHRvYW55X2xpc3QgW2NsYXNzXj1cImEyYV9idXR0b25cIl06Zm9jdXMgLmEyYV9zdmcge1xuICBvcGFjaXR5OiAxO1xufVxuXG4uYy1hZGQtdG8tYW55IC5hZGR0b2FueV9saXN0IFtjbGFzc149XCJhMmFfYnV0dG9uXCJdOmhvdmVyIHN2ZywgLmMtYWRkLXRvLWFueSAuYWRkdG9hbnlfbGlzdCBbY2xhc3NePVwiYTJhX2J1dHRvblwiXTpmb2N1cyBzdmcge1xuICBvcGFjaXR5OiAxO1xufVxuXG4uYy1hZGQtdG8tYW55IC5hZGR0b2FueV9saXN0IFtjbGFzc149XCJhMmFfYnV0dG9uXCJdOmhvdmVyIHN2ZyBwYXRoLCAuYy1hZGQtdG8tYW55IC5hZGR0b2FueV9saXN0IFtjbGFzc149XCJhMmFfYnV0dG9uXCJdOmZvY3VzIHN2ZyBwYXRoIHtcbiAgZmlsbDogIzAwNTdiNztcbn1cblxuLmMtYWRkLXRvLWFueS0tdmVydGljYWwgLmFkZHRvYW55X2xpc3Qge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uYy1hZGQtdG8tYW55LS12ZXJ0aWNhbCAuYWRkdG9hbnlfbGlzdCBbY2xhc3NePVwiYTJhX2J1dHRvblwiXSB7XG4gIG1hcmdpbjogMC41cmVtIDA7XG59XG5cbi5jLWFkZC10by1hbnktLXZlcnRpY2FsIC5hZGR0b2FueV9saXN0IFtjbGFzc149XCJhMmFfYnV0dG9uXCJdOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLmMtYWRkLXRvLWFueS0taG9yaXpvbnRhbCB7XG4gIHdpZHRoOiBtYXgtY29udGVudDtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi5jLWFkZC10by1hbnktLWhvcml6b250YWwgLmFkZHRvYW55X2xpc3Qge1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xufVxuXG4uYy1hZGQtdG8tYW55LS1ob3Jpem9udGFsIC5hZGR0b2FueV9saXN0IFtjbGFzc149XCJhMmFfYnV0dG9uXCJdIHtcbiAgbWFyZ2luOiAwIDAuNXJlbTtcbn1cblxuLmMtYWRkLXRvLWFueS0taG9yaXpvbnRhbCAuYWRkdG9hbnlfbGlzdCBbY2xhc3NePVwiYTJhX2J1dHRvblwiXTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4uYy1wcm9kdWN0LWdhbGxlcnlfX3ByaW1hcnkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5jLXByb2R1Y3QtZ2FsbGVyeV9fcHJpbWFyeS1lbCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMzMzMzNlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luLXRvcDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uYy1wcm9kdWN0LWdhbGxlcnlfX3JhaWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICB3aWR0aDogMTA1JTtcbn1cblxuLmMtcHJvZHVjdC1nYWxsZXJ5X190aHVtYiB7XG4gIHdpZHRoOiAyMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyLXJhZGl1czogMC4zMzMzM2VtO1xuICBtYXJnaW46IDUlIDUlIDAgMDtcbn1cblxuLmMtcHJvZHVjdC1nYWxsZXJ5X190aHVtYjo6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nLXRvcDogMTAwJTtcbn1cblxuLmMtcHJvZHVjdC1nYWxsZXJ5X190aHVtYi1lbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb3Zlcjtcbn1cblxuLmMtcHJvZHVjdC1nYWxsZXJ5X190aHVtYi1lbC0tbG9uZyB7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5jLXByb2R1Y3QtZ2FsbGVyeV9fdGh1bWItZWwtLXRhbGwge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4ucHJvZHVjdF90aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiBraXJvLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDMuNTU1NTZyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI4O1xuICBjb2xvcjogIzAwNTdiNztcbn1cbiIsIi8qIC0tLS0tLS0tLS1cbiBAIEN1c3RvbSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0gKi9cblxuQGltcG9ydCBcImNoaWxkLXRoZW1lL2Fzc2V0cy9zY3NzL3ZhcmlhYmxlc1wiO1xuXG4vKiAtLS0tLS0tLS0tXG4gQCBDdXN0b20gVXRpbGl0aWVzXG4tLS0tLS0tLS0tICovXG5cbkBpbXBvcnQgXCJjaGlsZC10aGVtZS9hc3NldHMvc2Nzcy9taXhpbnNcIjtcblxuQGltcG9ydCBcImJhc2UtdGhlbWUvYXNzZXRzL3Njc3MvdXRpbGl0aWVzL21peGluc1wiO1xuQGltcG9ydCBcImJhc2UtdGhlbWUvYXNzZXRzL3Njc3MvdXRpbGl0aWVzL3Jlc2V0XCI7XG5AaW1wb3J0IFwiYmFzZS10aGVtZS9hc3NldHMvc2Nzcy91dGlsaXRpZXMvYmFzZVwiO1xuQGltcG9ydCBcImJhc2UtdGhlbWUvYXNzZXRzL3Njc3MvdXRpbGl0aWVzL3dwLWJhc2VcIjsiLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEBAIFByb2plY3QgU3BlY2lmaWMgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKiAtLS0tLS0tLS0tXG4gQCBPcHRpb25zXG4tLS0tLS0tLS0tICovXG5cbiRlbmFibGUtcmVzcG9uc2l2ZS10ZXh0Olx0dHJ1ZTtcblxuLyogLS0tLS0tLS0tLVxuIEAgQ29sb3JzXG4tLS0tLS0tLS0tICovXG5cbiRicmFuZC1ibHVlOiAgICAgICAgICAgICMwMDU3Yjc7XG4kYnJhbmQteWVsbG93OiAgICAgICAgICAjZmZjZDAwO1xuJGJyYW5kLW9yYW5nZTogICAgICAgICAgI2ZmNmExMztcbiRicmFuZC1ncmVlbjogICAgICAgICAgICMwYjhkMmI7XG4kYnJhbmQtYmFieS1ibHVlOiAgICAgICAjNzFjNWU4O1xuJGJyYW5kLWxpZ2h0LWJsdWU6ICAgICAgIzI2NzBjMjtcbiRicmFuZC1kYXJrLWJsdWU6ICAgICAgICMwMDQ4OTg7XG5cbiRicmFuZC1wcmltYXJ5OiAgICAgICAgICRicmFuZC1ibHVlO1xuJGJyYW5kLXNlY29uZGFyeTogICAgICAgJGJyYW5kLXllbGxvdztcbiRicmFuZC10ZXJ0aWFyeTogICAgICAgICRicmFuZC1vcmFuZ2U7XG5cbiR0aGVtZS1jb2xvcnM6IG1hcC1tZXJnZSgkdGhlbWUtY29sb3JzLCAoXG4gICAgYmx1ZTogJGJyYW5kLWJsdWUsXG4gICAgeWVsbG93OiAkYnJhbmQteWVsbG93LFxuICAgIG9yYW5nZTogJGJyYW5kLW9yYW5nZSxcbiAgICBncmVlbjogJGJyYW5kLWdyZWVuLFxuICAgIGJhYnktYmx1ZTogJGJyYW5kLWJhYnktYmx1ZSxcbiAgICBsaWdodC1ibHVlOiAkYnJhbmQtbGlnaHQtYmx1ZSxcbiAgICBkYXJrLWJsdWU6ICRicmFuZC1kYXJrLWJsdWUsXG4gICAgcHJpbWFyeTogJGJyYW5kLXByaW1hcnksXG4gICAgc2Vjb25kYXJ5OiAkYnJhbmQtc2Vjb25kYXJ5LFxuICAgIHRlcnRpYXJ5OiAkYnJhbmQtdGVydGlhcnksXG4gICAgc3VjY2VzczogIzY2YjEzMixcbiAgICBpbmZvOiAkYnJhbmQtcHJpbWFyeSxcbiAgICB3YXJuaW5nOiAkYnJhbmQteWVsbG93LFxuICAgIGRhbmdlcjogJGJyYW5kLW9yYW5nZVxuKSk7XG5cbi8vIEJhdG9jaGUgQ29sb3Vyc1xuXG4kYmF0b2NoZS1wcmltYXJ5OiAgICAgICAgICMwMDU3Yjc7IC8vIEJsdWVcbiRiYXRvY2hlLXNlY29uZGFyeTogICAgICAgIzcxYzVlODsgLy8gTGlnaHQgQmx1ZVxuJGJhdG9jaGUtdGVydGlhcnk6ICAgICAgICAjZmZjZDAwOyAvLyBZZWxsb3dcbiRiYXRvY2hlLWRhcmstYmx1ZTogICAgICAgIzAwMmI0NTsgLy8gRGFyayBCbHVlXG4kYmF0b2NoZS1vcmFuZ2U6ICAgICAgICAgICNmZjZhMTM7IC8vIE9yYW5nZVxuJGJhdG9jaGUtZ3JlZW46ICAgICAgICAgICAjNGM4ZDJiOyAvLyBHcmVlblxuJGJhdG9jaGUtcGluazogICAgICAgICAgICAjZjA0NjY0OyAvLyBQaW5rXG4kYmF0b2NoZS1wdXJwbGU6ICAgICAgICAgICM2ZTQxYjQ7IC8vIFB1cnBsZVxuJGJhdG9jaGUtdGVhbDogICAgICAgICAgICAjMDBhMGFhOyAvLyBUZWFsXG4kYmF0b2NoZS1yZWQ6ICAgICAgICAgICAgICNkMjI4Mjg7IC8vIFJlZFxuXG4kYmF0b2NoZS1jb2xvcnM6IChcbiAgICBibHVlOiAkYmF0b2NoZS1wcmltYXJ5LFxuICAgIGxpZ2h0LWJsdWU6ICRiYXRvY2hlLXNlY29uZGFyeSxcbiAgICB5ZWxsb3c6ICRiYXRvY2hlLXRlcnRpYXJ5LFxuICAgIGRhcmstYmx1ZTogJGJhdG9jaGUtZGFyay1ibHVlLFxuICAgIG9yYW5nZTogJGJhdG9jaGUtb3JhbmdlLFxuICAgIGdyZWVuOiAkYmF0b2NoZS1ncmVlbixcbiAgICBwaW5rOiAkYmF0b2NoZS1waW5rLFxuICAgIHB1cnBsZTogJGJhdG9jaGUtcHVycGxlLFxuICAgIHRlYWw6ICRiYXRvY2hlLXRlYWwsXG4gICAgcmVkOiAkYmF0b2NoZS1yZWQsXG4pO1xuXG4vLyBjZXJ0YWluIHNpdGUgZWxlbWVudHMgYW5kIHNlY3Rpb25zIGhhdmUgYXNzaWduZWQgY29sb3JzLi4uIGFzc2lnbmFibGUgaGVyZVxuJGVudGl0eS1jb2xvcnM6IChcbiAgICBhcnRpc2FuLXZpbGxhZ2U6IHBpbmssXG4gICAgYmF0b2NoZS1oaXN0b3JpYy1zaXRlOiBwdXJwbGUsXG4gICAgZWxkZXJzLWxvZGdlOiBibHVlLFxuICAgIGZvb2QtdHJ1Y2stYWxsZXk6IHJlZCxcbiAgICBsaXR0bGUtamlnZ2Vycy12aWxsYWdlOiBwdXJwbGUsXG4gICAgbWFpbi1zdGFnZTogZGFyay1ibHVlLFxuICAgIG1pY2hpZi1jb3JuZXI6IG9yYW5nZSxcbiAgICBzZWNvbmQtc3RhZ2U6IGdyZWVuLFxuICAgIHZveWFnZXVyLWdhbWVzLWRlbW9uc3RyYXRpb246IHRlYWwsXG4gICAgY29udGVzdC1hZ2VzOiBvcmFuZ2UsXG4gICAgY29udGVzdC1jYXRlZ29yaWVzOiBibHVlLFxuICAgIHZlbmRvcnM6IHB1cnBsZSxcbiAgICBzdG9yZS1jYXRlZ29yaWVzOiBvcmFuZ2UsXG4gICAgeWVsbG93OiB5ZWxsb3csXG4gICAgbGlnaHQtYmx1ZTogbGlnaHQtYmx1ZVxuKTtcblxuJGJvZHktYmc6ICAgICAgICAgICAgICAgI2YwZjBmMDtcbiRib2R5LWNvbG9yOiAgICAgICAgICAgICMyZTJlMmU7XG5cbiRsaW5rLWNvbG9yOiAgICAgICAgICAgICRicmFuZC1wcmltYXJ5O1xuJGxpbmstaG92ZXItY29sb3I6ICAgICAgZGFya2VuKCRsaW5rLWNvbG9yLCAxNSUpO1xuXG4kbGluZS1jb2xvcjogXHRcdFx0I2RkZDtcblxuLyogLS0tLS0tLS0tLVxuIEAgVHlwb2dyYXBoeVxuLS0tLS0tLS0tLSAqL1xuXG4kYmFzZUZvbnRTaXplOiAxOHB4O1xuXG4kcm9vdEZvbnRTaXplOiBzdHJpcC11bml0KCRiYXNlRm9udFNpemUpIC8gMTYgKiAxMDAlOyAvLyBGb3IgYWNjZXNzaWJpbGl0eSByZWFzb25zIHRoZSByb290IGZvbnQgc2l6ZSBzaG91bGQgYmUgc2V0IHRvICUsIG1vc3QgYnJvd3NlcnMgaGF2ZSBhIGJhc2UgZm9udCBzaXplIG9mIDE2cHhcblxuJGZvbnQtc2l6ZXM6IChcbiAgICByb290OiAkcm9vdEZvbnRTaXplLFxuICAgIGgxOiA2NHB4LFxuICAgIGgyOiA0MHB4LFxuICAgIGgzOiAyNHB4LFxuICAgIGg0OiAyMHB4LFxuICAgIGg1OiAyMHB4LFxuICAgIGg2OiAxOHB4LFxuICAgIGxlYWQ6IDIycHgsXG4gICAgYmxvY2txdW90ZTogNDBweFxuKTtcblxuJGZvbnQtc2l6ZS1iYXNlOiAxcmVtO1xuXG4kbGVhZC1mb250LXNpemU6IHJlbXMobWFwLWdldCgkZm9udC1zaXplcywgbGVhZCkpO1xuJGJsb2NrcXVvdGUtZm9udC1zaXplOiByZW1zKG1hcC1nZXQoJGZvbnQtc2l6ZXMsIGJsb2NrcXVvdGUpKTtcblxuJGZvbnQtZmFtaWx5LWJhc2U6IGFjdW1pbi1wcm8sIHNhbnMtc2VyaWY7XG4kZm9udC1mYW1pbHktc2Fucy1zZXJpZjogJGZvbnQtZmFtaWx5LWJhc2U7XG4kaGVhZGluZ3MtZm9udC1mYW1pbHk6IGtpcm8sIHNhbnMtc2VyaWY7XG5cbiRmYS1mb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNSBQcm9cIjtcblxuJGZvbnQtd2VpZ2h0czogKFxuICAgIGJsYWNrOiA4MDAsXG4gICAgYm9sZDogNzAwLFxuICAgIHNlbWlib2xkOiA2MDAsXG4gICAgcmVndWxhcjogNDAwLFxuICAgIGxpZ2h0OiAzMDAsXG4gICAgdGhpbjogMzAwXG4pO1xuXG4kZm9udC13ZWlnaHQtYmFzZTogbWFwLWdldCgkZm9udC13ZWlnaHRzLCByZWd1bGFyKTtcbiRoZWFkaW5ncy1mb250LXdlaWdodDogbWFwLWdldCgkZm9udC13ZWlnaHRzLCBib2xkKTtcbiRsZWFkLWZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCRmb250LXdlaWdodHMsIHNlbWktYm9sZCk7XG5cbiRsaW5lLWhlaWdodC1iYXNlOiAxLjY1O1xuJGhlYWRpbmdzLWxpbmUtaGVpZ2h0OiAxLjQ7XG5cbiRsaW5rLWRlY29yYXRpb246IHVuZGVybGluZTtcbiRsaW5rLWhvdmVyLWRlY29yYXRpb246ICRsaW5rLWRlY29yYXRpb247XG5cbi8qIC0tLS0tLS0tLS1cbiBAIExheW91dFxuLS0tLS0tLS0tLSAqL1xuXG4kZ3JpZC1ndXR0ZXItd2lkdGg6IFx0IDJyZW07XG4kZ3JpZC1wYWRkaW5nOlx0XHRcdCAkZ3JpZC1ndXR0ZXItd2lkdGggLyAyO1xuXG4kdmVydGljYWwtbWFyZ2luLWJhc2U6XHQgMS41cmVtO1xuXG4kZ3JpZC1icmVha3BvaW50czogKFxuICAgIHhzOiAwLCAvLyBOb3Qgc3VyZSB3aHkgYnV0IHRoaXMgbXVzdCBiZSB6ZXJvXG4gICAgc206IDU3NnB4LFxuICAgIG1kOiA3NjlweCxcbiAgICBsZzogOTkycHgsXG4gICAgeGw6IDE0NDBweFxuKTtcblxuJGNvbnRhaW5lci13aWR0aDogbWFwLWdldCgkZ3JpZC1icmVha3BvaW50cywgeGwpKyhzdHJpcC11bml0KCRncmlkLWd1dHRlci13aWR0aCkgKiBzdHJpcC11bml0KCRiYXNlRm9udFNpemUpKTtcblxuJGhlYWRlci1oZWlnaHQ6IDZyZW07XG5cbiRjaXJjbGUtaW1hZ2Utc2l6ZTogMTFyZW07XG4kY2lyY2xlLWltYWdlLW1vYmlsZS1zaXplOiAxMHJlbTtcblxuLyogLS0tLS0tLS0tLVxuIEAgTWlzY1xuLS0tLS0tLS0tLSAqL1xuXG4kaHItYm9yZGVyLWNvbG9yOiAkbGluZS1jb2xvcjtcbiRoci1ib3JkZXItd2lkdGg6IDFweDtcblxuJGJvcmRlci1yYWRpdXM6IDAuNWVtO1xuJGJvcmRlci1yYWRpdXMtbGc6ICRib3JkZXItcmFkaXVzICogMS41O1xuJGJvcmRlci1yYWRpdXMtc206ICRib3JkZXItcmFkaXVzIC8gMS41OyIsIi8qIFByb2plY3Qgc3BlY2lmaWMgbWl4aW5zICovXG5cbi8qIC0tLS0tLS0tLS1cbiBAIEEgbWl4aW4gdG8gaGFuZGxlIHNvbWUgc2l0ZSBlbnRpdHkgY29sb3JzXG4tLS0tLS0tLS0tICovXG5cbkBmdW5jdGlvbiBnZXRFbnRpdHlDb2xvcigkZW50aXR5TmFtZSkge1xuICAgIEBpZiAobWFwLWhhcy1rZXkoJGVudGl0eS1jb2xvcnMsICRlbnRpdHlOYW1lKSkge1xuICAgICAgICBAcmV0dXJuIG1hcC1nZXQoJGJhdG9jaGUtY29sb3JzLCBtYXAtZ2V0KCRlbnRpdHktY29sb3JzLCAkZW50aXR5TmFtZSkpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBAcmV0dXJuIG1hcC1nZXQoJGJhdG9jaGUtY29sb3JzLCAkZW50aXR5TmFtZSk7XG4gICAgfVxufSIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gQEAgTWl4aW5zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKiAtLS0tLS0tLS0tXG4gQCBNYWludGFpbiBBc3BlY3QgUmF0aW9cblx0LSAqKiogcmVxdWlyZXMgdGhhdCB0aGUgZWxlbWVudCBoYXMgYW4gaW5uZXIgY29udGFpbmVyIGVsZW1lbnQgaWYgdGhlcmUgaXMgaW5uZXIgY29udGVudFxuXHQtICR4ID0+IHggcG9ydGlvbiBvZiByYXRpb1xuXHQtICR5ID0+IHkgcG9ydGlvbiBvZiByYXRpb1xuICAgIC0gJGMgPT4gc2V0IHRvICdmYWxzZScgdG8gc2tpcCA6Zmlyc3QtY2hpbGQgc3R5bGluZ1xuLS0tLS0tLS0tLSAqL1xuXG5AbWl4aW4gYXNwZWN0LXJhdGlvKCR4OiAxLCAkeTogMSwgJGM6IHRydWUpIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBhZGRpbmctdG9wOiBwZXJjZW50YWdlKCR5IC8gJHgpO1xuXHR9XG5cdEBpZiAoJGMgPT0gdHJ1ZSkge1xuXHRcdCYgPiA6Zmlyc3QtY2hpbGQge1xuXHRcdFx0QGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgMCAwIDApO1xuXHRcdH1cblx0fVxufVxuXG4vKiAtLS0tLS0tLS0tXG4gQCBCYWNrZ3JvdW5kIEltYWdlXG5cdC0gU2hvcnRjdXQgZm9yIGxpbmtpbmcgaW1hZ2VzIGluIHRoZSBjb25maWd1cmVkIGltYWdlcyBmb2xkZXJcblx0LSAkaSA9PiBpbWFnZSBmaWxlIG5hbWUgKHJlbGF0aXZlIHRvIGltYWdlcyBmb2xkZXIpXG5cdC0gJHJlc3QgPT4gYW55IGFkZGl0aW9uYWwgJ2JhY2tncm91bmQnIHByb3BlcnR5IHNob3J0Y3V0IGRlY2xhcmF0aW9ucyAoaWU6IG5vLXJlcGVhdClcbi0tLS0tLS0tLS0gKi9cblxuQG1peGluIGJnLWltYWdlKCRpLCAkcmVzdC4uLikge1xuXHRiYWNrZ3JvdW5kOiB1cmwoXCIjeyRpbWFnZXMtZm9sZGVyfS8jeyRpfVwiKSAkcmVzdDtcbn1cblxuLyogLS0tLS0tLS0tLVxuIEAgU2l6ZVxuIFx0LSBTaG9ydGN1dCBmb3Igc2V0dGluZyBoZWlnaHQgYW5kIHdpZHRoXG4gXHQtICR3aWR0aCA9PiB3aWR0aCBvZiBlbGVtZW50XG4gXHQtICRoZWlnaHQgPT4gaGVpZ2h0IG9mIGVsZW1lbnRcbiBcdC0gU2luZ2xlIHZhbHVlIHdpbGwgc2V0IGJvdGggdmFsdWVzIChlLmcuIHNpemUoMTAwJSk7XG4tLS0tLS0tLS0tICovXG5AbWl4aW4gc2l6ZSgkd2lkdGgsICRoZWlnaHQ6ICR3aWR0aCkge1xuXHR3aWR0aDogJHdpZHRoO1xuXHRoZWlnaHQ6ICRoZWlnaHQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gQEAgRnVuY3Rpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKiAtLS0tLS0tLS0tXG4gQCBDb2xvciBHZXRcbiBcdC0gZ2V0IHZhbHVlIGZyb20gdGhlICR0aGVtZS1jb2xvcnMgbWFwXG4tLS0tLS0tLS0tICovXG5cbkBmdW5jdGlvbiBjb2xvci1nZXQoJGtleXMpIHtcblx0JGNvbG9yOiBtYXAtZGVlcC1nZXQoJHRoZW1lLWNvbG9ycywgJGtleXMpO1xuXHRAcmV0dXJuICRjb2xvcjtcbn1cblxuLyogLS0tLS0tLS0tLVxuIEAgQnJlYWtwb2ludCBHZXRcbiBcdC0gZ2V0IHZhbHVlIGZyb20gdGhlICRncmlkLWJyZWFrcG9pbnRzIG1hcFxuIFx0LSAkdHlwZSA9PiAnbWF4JyB8ICdtaW4nLCBkZXBlbmRpbmcgb24gbWVkaWEgcXVlcnkgdHlwZVxuLS0tLS0tLS0tLSAqL1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1nZXQoJHR5cGUsICRrZXlzKSB7XG5cdCRicmVha3BvaW50OiBtYXAtZGVlcC1nZXQoJGdyaWQtYnJlYWtwb2ludHMsICRrZXlzKTtcblx0QGlmICgkdHlwZSA9PSAnbWF4Jyl7XG5cdFx0QHJldHVybiAkYnJlYWtwb2ludCAtIDE7XG5cdH0gQGVsc2Uge1xuXHRcdEByZXR1cm4gJGJyZWFrcG9pbnQ7XG5cdH1cbn1cblxuLyogLS0tLS0tLS0tLVxuIEAgUmVtc1xuXHQtIGNvbnZlcnQgcGl4ZWxzIHRvIHJlbXNcblx0LSAkcCA9PiBwaXhlbCB2YWx1ZVxuXHQtICRiID0+IGJhc2Ugc2l6ZSAodG8gdXNlIGluIGZvcm11bGEpIC0gZGVmYXVsdHMgdG8gJGZvbnQtc2l6ZXMgcm9vdCB2YXJpYWJsZVxuLS0tLS0tLS0tLSAqL1xuXG5AZnVuY3Rpb24gcmVtcygkcCwgJGI6ICRiYXNlRm9udFNpemUpIHtcbiAgICBAcmV0dXJuIChzdHJpcC11bml0KCRwKSAvIHN0cmlwLXVuaXQoJGIpKSArIDByZW07XG59XG5cbi8qIC0tLS0tLS0tLS1cbiBAIE1hcCBEZWVwIEdldFxuIFx0LSBnZXQgdmFsdWUgZnJvbSBuZXN0ZWQgbWFwc1xuLS0tLS0tLS0tLSAqL1xuXG5AZnVuY3Rpb24gbWFwLWRlZXAtZ2V0KCRtYXAsICRrZXlzLi4uKSB7XG5cdEBlYWNoICRrZXkgaW4gJGtleXMge1xuXHRcdCRtYXA6IG1hcC1nZXQoJG1hcCwgJGtleSk7XG5cdH1cblx0QHJldHVybiAkbWFwO1xufVxuXG4vKiAtLS0tLS0tLS0tXG4gQCBXZWlnaHQgR2V0XG4gXHQtIGdldCB2YWx1ZSBmcm9tIHRoZSAkZm9udC13ZWlnaHRzIG1hcFxuLS0tLS0tLS0tLSAqL1xuXG5AZnVuY3Rpb24gd2VpZ2h0LWdldCgka2V5cykge1xuXHQkd2VpZ2h0OiBtYXAtZGVlcC1nZXQoJGZvbnQtd2VpZ2h0cywgJGtleXMpO1xuXHRAcmV0dXJuICR3ZWlnaHQ7XG59IiwiLmMtYmFubmVyLXNtYWxsIHtcbiAgICBoZWlnaHQ6IDE1cmVtO1xuICAgIG1hcmdpbjogMDtcblxuICAgICYgKyAqIHtcbiAgICAgICAgbWFyZ2luLXRvcDogNXJlbTtcbiAgICB9XG59XG4uYy1iYW5uZXItc21hbGxfX3N3b29wIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxNXJlbTtcbiAgICB6LWluZGV4OiAtMTtcbn1cbi5wYXJlbnQtYmFjay10by1iYXRvY2hlIC5jLWJhbm5lci1zbWFsbC1zd29vcF9fY2lyY2xlLWJhY2ssXG4uYy1iYW5uZXItc21hbGwtLWJhdG9jaGUgLmMtYmFubmVyLXNtYWxsLXN3b29wX19jaXJjbGUtYmFjayB7XG4gICAgZmlsbDogY29sb3ItZ2V0KHllbGxvdyk7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTkwMHB4KSB7XG4gICAgLmMtYmFubmVyLXNtYWxsX19zd29vcCB7XG4gICAgICAgIHRvcDogLTJ2dztcbiAgICAgICAgaGVpZ2h0OiAxMy43dnc7XG4gICAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IGJyZWFrcG9pbnQtZ2V0KCdtYXgnLCBtZCkpIHtcbiAgICAuYy1iYW5uZXItc21hbGwge1xuICAgICAgICBoZWlnaHQ6IDhyZW07XG4gICAgXG4gICAgICAgICYgKyAqIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDNyZW07XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmMtYmFubmVyLXNtYWxsX19zd29vcCB7XG4gICAgICAgIGhlaWdodDogOHJlbTtcbiAgICB9XG59IiwiLmMtYWRkLXRvLWFueSB7XG4gICAgLmFkZHRvYW55X2xpc3Qge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgIFtjbGFzc149XCJhMmFfYnV0dG9uXCJdIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgICAgIC5hMmFfc3ZnIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlICFpbXBvcnRhbnQ7XG4gICAgICAgIFxuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6IGNvbG9yLWdldChvcmFuZ2UpO1xuICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiBjb2xvci1nZXQob3JhbmdlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGZpbGwgMTUwbXMgZWFzZS1vdXQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcblxuICAgICAgICAgICAgICAgIC5hMmFfc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcblxuICAgICAgICAgICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6IGNvbG9yLWdldChibHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbi5jLWFkZC10by1hbnktLXZlcnRpY2FsIHtcbiAgICAuYWRkdG9hbnlfbGlzdCB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgW2NsYXNzXj1cImEyYV9idXR0b25cIl0ge1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbi5jLWFkZC10by1hbnktLWhvcml6b250YWwge1xuICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICBtYXJnaW46IDAgYXV0bztcblxuICAgIC5hZGR0b2FueV9saXN0IHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICBbY2xhc3NePVwiYTJhX2J1dHRvblwiXSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCIuYy1wcm9kdWN0LWdhbGxlcnlfX3ByaW1hcnkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmMtcHJvZHVjdC1nYWxsZXJ5X19wcmltYXJ5LWVsIHtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1zbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uYy1wcm9kdWN0LWdhbGxlcnlfX3JhaWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICB3aWR0aDogMTA1JTtcbn1cbi5jLXByb2R1Y3QtZ2FsbGVyeV9fdGh1bWIge1xuICAgIHdpZHRoOiAyMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtc207XG4gICAgbWFyZ2luOiA1JSA1JSAwIDA7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMDAlO1xuICAgIH1cbn1cbi5jLXByb2R1Y3QtZ2FsbGVyeV9fdGh1bWItZWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuLmMtcHJvZHVjdC1nYWxsZXJ5X190aHVtYi1lbC0tbG9uZyB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuLmMtcHJvZHVjdC1nYWxsZXJ5X190aHVtYi1lbC0tdGFsbCB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiBhdXRvO1xufSIsIkBpbXBvcnQgXCIuLi9iYXNlXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9iYW5uZXItc21hbGxcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2FkZC10by1hbnlcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL3Byb2R1Y3QtZ2FsbGVyeVwiO1xuXG4ucHJvZHVjdF90aXRsZSB7XG4gICAgZm9udC1mYW1pbHk6ICRoZWFkaW5ncy1mb250LWZhbWlseTtcbiAgICBmb250LXNpemU6IHJlbXMobWFwLWdldCgkZm9udC1zaXplcywgaDEpKTtcbiAgICBmb250LXdlaWdodDogd2VpZ2h0LWdldChyZWd1bGFyKTtcbiAgICBsaW5lLWhlaWdodDogKDY0IC8gNTApO1xuICAgIGNvbG9yOiBjb2xvci1nZXQoYmx1ZSk7XG59Il19 */
