/**
 * @package 	WordPress
 * @subpackage 	Agricole
 * @version 	1.0.2
 * 
 * WooCommerce CSS Rules
 * Created by CMSMasters
 * 
 */
/*-------------------------------------------------------------------------*/
/* Global Styles
/*-------------------------------------------------------------------------*/
/* Icons */
.cmsmasters_icon_custom_basket:before {
  content: '\e8d5';
  font-family: 'fontello-custom';
}
.cmsmasters_theme_icon_star_empty:before {
  content: '\e8aa';
}
.cmsmasters_theme_icon_star_full:before {
  content: '\e8aa';
}
.woocommerce:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.woocommerce-store-notice {
  display: block;
  width: 100%;
  margin: 0;
  padding: 10px 50px 10px 20px;
  position: fixed;
  left: 0;
  bottom: 0;
  z-index: 99999;
}
.woocommerce-store-notice p {
  margin: 0;
  padding: 0;
}
.woocommerce-store-notice p a {
  opacity: 0.8;
}
.woocommerce-store-notice p a:hover {
  opacity: 1;
}
.woocommerce-store-notice .woocommerce-store-notice__dismiss-link {
  font-size: 13px;
  line-height: 1em;
  width: 20px;
  height: 20px;
  margin: auto;
  position: absolute;
  left: auto;
  right: 20px;
  top: 0;
  bottom: 0;
}
.woocommerce-store-notice .woocommerce-store-notice__dismiss-link:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.woocommerce-store-notice .woocommerce-store-notice__dismiss-link:hover {
  opacity: 0.8;
}
.product .preloader {
  padding-bottom: 100%;
}
.product .preloader img {
  image-rendering: auto;
  width: 100%;
  min-width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
/* Star Rating */
.cmsmasters_star_rating {
  width: 73px;
  display: block;
  position: relative;
  overflow: hidden;
}
.cmsmasters_star_rating .cmsmasters_star {
  font-size: 13px;
  width: 13px;
  height: 100%;
  display: block;
  margin-left: 2px;
  margin-right: 0;
  position: relative;
  overflow: hidden;
  float: left;
}
.cmsmasters_star_rating .cmsmasters_star:first-child {
  margin-left: 0;
}
.cmsmasters_star_rating .cmsmasters_star:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_star_rating .cmsmasters_star_trans_wrap {
  height: 100%;
  position: relative;
  overflow: hidden;
}
.cmsmasters_star_rating .cmsmasters_star_color_wrap {
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  overflow: hidden;
}
.cmsmasters_star_rating .cmsmasters_star_color_inner {
  width: 73px;
  height: 100%;
  position: relative;
  overflow: hidden;
}
.comment-form-rating {
  position: relative;
  overflow: hidden;
}
.comment-form-rating .stars {
  margin-top: 5px;
}
.comment-form-rating .stars > span {
  display: block;
  width: 65px;
  height: 14px;
  position: relative;
  overflow: hidden;
}
.comment-form-rating .stars > span:before,
.comment-form-rating .stars > span a:before {
  font-family: "fontello";
  line-height: 1em;
  font-style: normal;
  font-weight: normal;
  text-decoration: inherit;
  text-align: center;
  vertical-align: baseline;
  font-variant: normal;
  text-transform: none;
  speak: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 14px;
  text-indent: 0;
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
.comment-form-rating .stars > span:before {
  content: '\e8aa\e8aa\e8aa\e8aa\e8aa';
}
.comment-form-rating .stars > span a:before {
  content: '\e8aa\e8aa\e8aa\e8aa\e8aa';
}
.comment-form-rating .stars > span a {
  color: transparent;
  text-indent: 9999px;
  height: 100%;
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  overflow: hidden;
}
.comment-form-rating .stars > span a.star-1 {
  width: 13px;
  z-index: 10;
}
.comment-form-rating .stars > span a.star-2 {
  width: 26px;
  z-index: 9;
}
.comment-form-rating .stars > span a.star-3 {
  width: 39px;
  z-index: 8;
}
.comment-form-rating .stars > span a.star-4 {
  width: 52px;
  z-index: 7;
}
.comment-form-rating .stars > span a.star-5 {
  width: 65px;
  z-index: 6;
}
/* Sale */
.onsale,
.out-of-stock,
.stock {
  padding: 5px 20px;
  position: absolute;
  left: auto;
  right: 15px;
  top: 15px;
  bottom: auto;
  z-index: 10;
  -webkit-border-radius: 30px;
  border-radius: 30px;
  overflow: hidden;
}
#page .outofstock .onsale {
  display: none;
}
/* checkbox and radio */
label > .input-checkbox,
label > .input-radio,
label > input.shipping_method {
  float: none;
  width: auto;
  height: auto;
  position: relative;
  left: auto;
  top: auto;
  bottom: auto;
  opacity: 1;
}
.input-checkbox,
.input-radio,
input.shipping_method:not([type=hidden]) {
  float: left;
  opacity: 0;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: 0;
  bottom: 0;
}
.input-checkbox + label,
.input-radio + label,
input.shipping_method:not([type=hidden]) + label {
  display: inline-block;
  padding: 0 0 0 25px;
  position: relative;
  cursor: pointer;
}
.input-checkbox + label:before,
.input-radio + label:before,
input.shipping_method:not([type=hidden]) + label:before {
  content: '';
  border-width: 1px;
  border-style: solid;
  width: 17px;
  height: 17px;
  margin: auto !important;
  position: absolute;
  left: 1px;
  right: auto;
  top: 0;
  bottom: 0;
  -webkit-box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.5);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.5);
}
.input-checkbox + label:after,
.input-radio + label:after,
input.shipping_method:not([type=hidden]) + label:after {
  content: '';
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  transform: scale(0);
  width: 9px;
  height: 9px;
  margin: auto !important;
  position: absolute;
  left: 5px;
  right: auto;
  top: 0;
  bottom: 0;
  opacity: 0;
}
.input-checkbox:checked + label:after,
.input-radio:checked + label:after,
input.shipping_method:not([type=hidden]):checked + label:after {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  transform: scale(1);
  opacity: 1;
}
label.checkbox {
  display: inline-block;
  padding: 0 0 0 25px;
}
label.checkbox + input {
  visibility: visible;
  opacity: 1;
}
.input-radio + label:before,
input.shipping_method + label:before,
.input-radio + label:after,
input.shipping_method + label:after {
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
/* Shipping */
#shipping_method {
  padding: 0;
  margin: 0;
}
#shipping_method li {
  overflow: hidden;
}
#shipping_method li:before {
  content: none;
}
#shipping_method + p {
  padding: 20px 0 0;
}
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  padding: 18px 25px;
  margin-bottom: 30px;
  float: none;
  position: relative;
  border-width: 1px;
  border-style: solid;
  -webkit-border-radius: 8px;
  border-radius: 8px;
  clear: both;
  overflow: hidden;
}
.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button {
  margin-right: 30px;
}
.woocommerce-message .showcoupon,
.woocommerce-info .showcoupon,
.woocommerce-error .showcoupon {
  margin: 0 5px -1px;
}
.woocommerce-error li {
  padding: 0;
  margin: 0;
}
.woocommerce-error li:before {
  content: none;
}
/* Quantity */
.quantity {
  display: inline-block;
  vertical-align: middle;
  position: relative;
  overflow: hidden;
}
.quantity .screen-reader-text {
  display: none;
}
.quantity .text {
  display: block;
  width: 82px;
  padding: 0 10px 0 20px !important;
  min-width: 0;
}
/* Variation */
table.variations {
  margin: 0 0 30px;
}
table.variations tr:first-child td {
  padding: 0 !important;
}
table.variations tr td {
  padding: 15px 0 0 !important;
  border-width: 0 !important;
  border-style: solid !important;
}
table.variations tr td.label {
  min-width: 90px;
  padding: 0 20px 0 0 !important;
}
table.variations select {
  height: 44px;
}
table.variations .reset_variations {
  margin-left: 15px;
  margin-right: 0;
}
.single_variation_wrap .woocommerce-variation-description {
  border: 0 !important;
  margin: 0 0 10px;
}
.single_variation_wrap .woocommerce-variation-description:empty {
  display: none;
}
.single_variation_wrap .woocommerce-variation-description > *:last-child {
  margin: 0;
  padding: 0;
}
.single_variation_wrap .single_variation {
  margin: 0 0 15px;
  overflow: hidden;
}
.single_variation_wrap .single_variation .stock {
  display: inline-block !important;
  margin: 0 0 0 10px;
  vertical-align: middle;
  position: static;
}
.single_variation_wrap .variations_button {
  overflow: hidden;
}
.single_variation_wrap .variations_button input[type="number"] {
  -webkit-border-radius: 8px !important;
  border-radius: 8px !important;
}
dl.variation {
  display: block;
  padding: 0;
  overflow: hidden;
}
dl.variation:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
dl.variation dt,
dl.variation dd,
dl.variation p {
  display: block;
  margin: 0;
  padding: 0;
  overflow: hidden;
}
dl.variation dt {
  padding-left: 0;
  padding-right: 10px;
  float: left;
  clear: left;
}
dl.variation dd {
  float: left;
}
/* Col2-set */
.col2-set {
  margin: 0 -1.3% 30px;
  position: relative;
  overflow: hidden;
}
.col2-set > * {
  width: 47.4%;
  margin: 0 1.3%;
  position: relative;
  float: left;
  overflow: hidden;
}
/* Form Row Styles */
.form-row {
  width: 47.4%;
  margin: 0 1.3%;
  position: relative;
  float: left;
}
.form-row:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.form-row.form-row-wide,
.form-row.notes,
.form-row.place-order {
  width: 97.4%;
  float: none;
  clear: both;
}
.form-row.place-order {
  width: auto;
  margin: 0;
}
.form-row label {
  display: block;
  padding: 0 0 10px;
}
.form-row select,
.form-row input,
.form-row textarea {
  width: 100%;
  max-width: 100%;
}
.form-row textarea {
  min-height: 200px;
}
.form-row input[type="checkbox"],
.form-row input[type="radio"],
.form-row input[type="submit"],
.form-row input[type="button"] {
  width: auto;
}
/* Amount Styles */
.amount {
  white-space: nowrap;
}
/* Remove Button Styles */
#page .remove {
  text-indent: -9999px;
  display: inline-block;
  width: 20px;
  height: 20px;
  margin: 0 1px;
  position: relative;
  text-align: center;
}
#page .remove:before {
  content: '';
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
  width: 11px;
  height: 2px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
#page .remove:after {
  content: '';
  -webkit-transform: rotate(135deg);
  -moz-transform: rotate(135deg);
  -ms-transform: rotate(135deg);
  transform: rotate(135deg);
  width: 11px;
  height: 2px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
/*-------------------------------------------------------------------------*/
/* Shop Page
/*-------------------------------------------------------------------------*/
.cmsmasters_woo_wrap_result {
  padding: 0 0 40px;
  position: relative;
  overflow: hidden;
  clear: both;
}
.cmsmasters_woo_wrap_result select {
  width: 100%;
  max-width: 100%;
}
.cmsmasters_woo_wrap_result .woocommerce-result-count {
  padding: 10px;
  float: right;
}
.cmsmasters_woo_wrap_result .woocommerce-ordering {
  float: left;
}
.content .cmsmasters_products.columns-5 .product {
  width: 30.73%;
}
.content .cmsmasters_products.columns-5 .product:nth-child(5n+1) {
  clear: none;
}
.content .cmsmasters_products.columns-5 .product:nth-child(3n+1) {
  clear: left;
}
.content .cmsmasters_products.columns-6 .product {
  width: 30.73%;
}
.content .cmsmasters_products.columns-6 .product:nth-child(6n+1) {
  clear: none;
}
.content .cmsmasters_products.columns-6 .product:nth-child(3n+1) {
  clear: left;
}
.cmsmasters_products {
  margin: -40px -1.3% 0;
  padding: 0;
  overflow: hidden;
  position: relative;
}
.cmsmasters_products .product {
  width: 22.4%;
  margin: 0 1.3%;
  padding: 40px 0 0;
  position: relative;
  word-wrap: break-word;
  overflow: hidden;
  float: left;
}
.cmsmasters_products .product:before {
  content: none;
}
.columns-6.cmsmasters_products .product {
  width: 13.94%;
}
.columns-6.cmsmasters_products .product:nth-child(6n+1) {
  clear: left;
}
.columns-5.cmsmasters_products .product {
  width: 17.4%;
}
.columns-5.cmsmasters_products .product:nth-child(5n+1) {
  clear: left;
}
.columns-4.cmsmasters_products .product {
  width: 22.4%;
}
.columns-4.cmsmasters_products .product:nth-child(4n+1) {
  clear: left;
}
.columns-3.cmsmasters_products .product {
  width: 30.73%;
}
.columns-3.cmsmasters_products .product:nth-child(3n+1) {
  clear: left;
}
.columns-2.cmsmasters_products .product {
  width: 47.4%;
}
.columns-2.cmsmasters_products .product:nth-child(2n+1) {
  clear: left;
}
.columns-1.cmsmasters_products .product {
  width: 97.4%;
  float: none;
  clear: both;
}
.cmsmasters_product {
  padding: 0;
  position: relative;
  -webkit-border-radius: 15px;
  border-radius: 15px;
  overflow: hidden;
}
.sale .cmsmasters_product {
  padding-bottom: 20px ;
  border-width: 1px;
  border-style: dashed;
}
.sale .cmsmasters_product .cmsmasters_product_img {
  -webkit-border-radius: 15px 15px 0 0;
  border-radius: 15px 15px 0 0;
}
.cmsmasters_product:hover .cmsmasters_product_add_wrap {
  visibility: visible;
  opacity: 1;
}
.cmsmasters_product .cmsmasters_product_img {
  margin: 0 0 23px;
  position: relative;
  -webkit-border-radius: 15px;
  border-radius: 15px;
  overflow: hidden;
}
.cmsmasters_product .cmsmasters_product_img img {
  image-rendering: auto;
  width: 100%;
}
.cmsmasters_product .cmsmasters_product_img:hover img,
.cmsmasters_product .cmsmasters_product_img.cmsmasters_mobile_hover img {
  -webkit-transform: scale(1.05);
  -moz-transform: scale(1.05);
  transform: scale(1.05);
}
.cmsmasters_product .cmsmasters_product_inner {
  position: relative;
  padding: 0 5px;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_product .cmsmasters_star_rating {
  margin: 0 auto 15px;
  display: none;
}
.show_rating .cmsmasters_product .cmsmasters_star_rating {
  display: block;
}
.cmsmasters_product .cmsmasters_product_header {
  padding: 0 0 2px;
}
.cmsmasters_product .cmsmasters_product_title {
  margin: 0;
}
.cmsmasters_product .cmsmasters_product_cat {
  padding: 0 0 10px;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_product .cmsmasters_product_info_wrap {
  min-height: 40px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_product .cmsmasters_product_info {
  text-align: center;
  overflow: hidden;
}
.cmsmasters_product .price {
  display: block;
  min-height: 40px;
  padding-top: 7px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_product .price:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.cmsmasters_product .price > * {
  display: inline-block;
  vertical-align: middle;
}
.cmsmasters_product .price del {
  margin: 0 3px 0 0;
  vertical-align: middle;
  white-space: nowrap;
}
.cmsmasters_product .price del:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.cmsmasters_product .price del span {
  display: inline-block;
  vertical-align: bottom;
  text-decoration: line-through;
}
.cmsmasters_product .price ins {
  text-decoration: none;
  vertical-align: middle;
  white-space: nowrap;
}
.cmsmasters_product .price .woocommerce-price-suffix {
  outline: none;
}
.cmsmasters_product .cmsmasters_product_add_wrap {
  width: 100%;
  height: 100%;
  visibility: hidden;
  position: absolute;
  left: 0;
  top: 0;
  text-align: center;
  opacity: 0;
}
.cmsmasters_product .cmsmasters_product_add_wrap:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.cmsmasters_product .cmsmasters_product_add_wrap .cmsmasters_button {
  line-height: 38px;
}
.cmsmasters_product .cmsmasters_product_add_inner {
  display: inline-block;
  vertical-align: middle;
}
.cmsmasters_product .cmsmasters_product_add_inner .cmsmasters_button {
  padding: 0 15px;
}
.cmsmasters_product .cmsmasters_product_button {
  display: block;
}
.cmsmasters_product .cmsmasters_product_button:last-child {
  margin: 0;
}
.cmsmasters_product .cmsmasters_product_button.added_to_cart {
  display: none;
}
.cmsmasters_product .cmsmasters_product_button.added {
  display: none;
}
.cmsmasters_product .cmsmasters_product_button.added + .added_to_cart {
  display: block;
}
.cmsmasters_product .cmsmasters_product_button.loading {
  text-indent: -9999px;
}
.cmsmasters_product .cmsmasters_product_button.loading:before {
  content: '\e9fd';
  font-family: "fontello";
  font-style: normal;
  font-weight: normal;
  speak: none;
  display: inline-block;
  text-decoration: inherit;
  text-align: center;
  vertical-align: baseline;
  font-variant: normal;
  text-transform: none;
  line-height: 1em !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-animation: spin 2s infinite linear;
  -moz-animation: spin 2s infinite linear;
  animation: spin 2s infinite linear;
  font-size: 16px;
  text-indent: 0;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.product-category {
  text-align: center;
}
.product-category .woocommerce-loop-category__title {
  display: inline-block;
  margin: 23px 0 0;
}
/*-------------------------------------------------------------------------*/
/* Single Product
/*-------------------------------------------------------------------------*/
.cmsmasters_single_product {
  margin: 0;
  padding: 10px 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_single_product .cmsmasters_product_sale_wrap {
  width: 100%;
  position: absolute;
  left: 0;
  top: 0;
  text-align: center;
}
.cmsmasters_single_product .cmsmasters_product_sale_wrap .onsale,
.cmsmasters_single_product .cmsmasters_product_sale_wrap .out-of-stock,
.cmsmasters_single_product .cmsmasters_product_sale_wrap .stock {
  display: inline-block;
  position: relative;
  right: auto;
  bottom: auto;
}
.cmsmasters_single_product .cmsmasters_product_left_column {
  width: 42%;
  position: relative;
  float: left;
  overflow: hidden;
}
.cmsmasters_single_product .cmsmasters_product_images {
  position: relative;
  overflow: hidden;
}
.cmsmasters_single_product .cmsmasters_product_image {
  display: block;
  max-width: 100%;
  position: relative;
  text-align: center;
}
.cmsmasters_single_product .cmsmasters_product_image img {
  image-rendering: auto;
  width: 100%;
  height: auto;
  max-width: 100%;
}
.cmsmasters_single_product .cmsmasters_product_thumbs {
  display: block;
  position: relative;
  overflow: hidden;
}
.cmsmasters_single_product .cmsmasters_product_thumbs .cmsmasters_product_thumb {
  display: block;
  width: 82px;
  margin: 10px 10px 0 0;
  position: relative;
  text-align: center;
  float: left;
}
.cmsmasters_single_product .cmsmasters_product_thumbs .cmsmasters_product_thumb:last-child {
  margin: 10px 0 0;
}
.cmsmasters_single_product .cmsmasters_product_right_column {
  width: 58%;
  padding: 0 0 0 40px;
  position: relative;
  float: right;
  overflow: hidden;
}
.cmsmasters_single_product .cmsmasters_product_right_column .out-of-stock {
  display: none !important;
}
.cmsmasters_single_product .cmsmasters_product_right_column > div:first-child {
  padding-top: 0;
}
.cmsmasters_single_product .cmsmasters_product_right_column .variations_form {
  padding: 15px 0;
}
.cmsmasters_single_product .cmsmasters_product_right_column .variations_form .out-of-stock {
  display: block;
  padding: 0;
  position: relative;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_single_product .cmsmasters_product_right_column .stock,
.cmsmasters_single_product .cmsmasters_product_right_column in-stock {
  display: block;
  padding: 0;
  position: relative;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_single_product .cmsmasters_product_title_wrap {
  padding: 0;
  overflow: hidden;
}
.cmsmasters_single_product .product_title {
  margin: 0;
}
.cmsmasters_single_product .cmsmasters_product_info_wrap {
  padding: 6px 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_single_product .cmsmasters_star_rating {
  margin: 0 0 15px;
}
.cmsmasters_single_product .price {
  margin: 0;
  padding: 0;
}
.cmsmasters_single_product .price del {
  vertical-align: bottom;
}
.cmsmasters_single_product .price ins {
  text-decoration: none;
  vertical-align: bottom;
}
.cmsmasters_single_product .cmsmasters_product_content {
  padding: 45px 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_single_product .cart {
  padding: 15px 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_single_product .cart .quantity input:not([type=button]):not([type=checkbox]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=reset]):not([type=submit]):not([type=color]):not([type=range]) {
  height: 46px;
}
.cmsmasters_single_product .cart .single_add_to_cart_button {
  line-height: 44px;
  vertical-align: middle;
  margin: 0 0 0 6px;
}
.cmsmasters_single_product .product_meta {
  padding: 18px 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_single_product .product_meta > span {
  display: block;
}
.cmsmasters_single_product .woocommerce-grouped-product-list tr td {
  padding: 13px 15px;
}
.cmsmasters_tabs.cmsmasters_woo_tabs {
  margin: 70px 0 0;
  overflow: hidden;
}
.cmsmasters_tabs.cmsmasters_woo_tabs .cmsmasters_tabs_list {
  margin: 0 -25px;
  text-align: left;
}
.cmsmasters_tabs.cmsmasters_woo_tabs .cmsmasters_tabs_list_item > a {
  padding: 0 25px 12px;
}
.cmsmasters_tabs.cmsmasters_woo_tabs .cmsmasters_tab_inner > h2 {
  display: none;
}
.cmsmasters_tabs.cmsmasters_woo_tabs .cmsmasters_tab_inner {
  padding: 26px 0 0;
}
.shop_attributes tbody tr:first-child th,
.shop_attributes tbody tr:first-child td {
  border-top-width: 0 !important;
  border-top-style: solid !important;
}
.shop_attributes tbody tr:last-child th,
.shop_attributes tbody tr:last-child td {
  border-bottom-width: 0;
  border-bottom-style: solid;
}
.shop_attributes tbody tr th:first-child,
.shop_attributes tbody tr td:first-child {
  border-left-width: 0;
  border-left-style: solid;
}
.shop_attributes tbody tr th:last-child,
.shop_attributes tbody tr td:last-child {
  border-right-width: 0;
  border-right-style: solid;
}
.shop_attributes tbody th {
  width: 190px;
  padding: 8px 10px 8px 0;
}
.shop_attributes tbody td {
  padding: 8px 0;
}
.shop_attributes p {
  margin: 0;
  padding: 0;
}
.cmsmasters_woo_comments {
  margin: 0;
  padding: 0;
}
.cmsmasters_woo_comments .post_comments_title {
  position: relative;
}
.cmsmasters_woo_comments .cmsmasters_star_rating {
  display: inline-block;
  vertical-align: middle;
  margin: -3px 0 0 10px;
}
.cmsmasters_woo_comments .commentlist .comment {
  padding: 40px 0;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_woo_comments .commentlist .comment .cmsmasters_comment_item_avatar {
  margin-right: 35px;
}
.cmsmasters_woo_comments .commentlist .comment .cmsmasters_comment_item_cont_info {
  margin: 0 0 10px;
  padding: 0 85px 0 0;
}
.cmsmasters_woo_comments .commentlist .comment .cmsmasters_comment_item_cont_info * {
  display: inline;
  vertical-align: baseline;
}
.cmsmasters_woo_comments .commentlist .comment .cmsmasters_comment_item_cont_info .cmsmasters_comment_item_title + .cmsmasters_comment_item_date:before {
  content: '-';
  margin: 0 5px 0 2px;
}
.cmsmasters_woo_comments .commentlist .comment .cmsmasters_comment_item_cont_info .cmsmasters_comment_item_date + .star-rating:before {
  content: '-';
  margin: 0 2px;
}
.cmsmasters_woo_comments .commentlist .comment .cmsmasters_comment_item_cont_info .star-rating > span {
  width: auto !important;
}
.cmsmasters_woo_comments .commentlist .comment .cmsmasters_comment_item_cont_info .cmsmasters_star_rating {
  width: 73px;
  height: 13px;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_woo_comments .commentlist .comment .cmsmasters_comment_item_cont_info .cmsmasters_star_rating * {
  display: block;
}
section.products {
  margin: 40px 0 0;
  padding: 45px 0 0;
  position: relative;
  border-top-width: 1px;
  border-top-style: solid;
  overflow: hidden;
}
section.products > h2 {
  margin: 0;
  padding: 0 0 33px;
}
.page-description {
  margin: 0 -1.3%;
}
/*-------------------------------------------------------------------------*/
/* Cart
/*-------------------------------------------------------------------------*/
.shop_table {
  border-spacing: 0;
  border-collapse: separate;
  width: 100%;
  padding: 0 0 60px;
  position: relative;
}
.shop_table.shop_table_responsive {
  padding: 0 0 20px;
}
.shop_table.woocommerce-checkout-review-order-table {
  padding: 0 0 40px;
}
.shop_table.order_details td.woocommerce-table__product-name ul {
  padding: 5px 0 0;
}
.shop_table.order_details td.woocommerce-table__product-name ul:last-child {
  margin: 0;
}
.shop_table.order_details td.woocommerce-table__product-name li {
  padding: 0;
}
.shop_table.order_details td.woocommerce-table__product-name li:before {
  content: none;
}
.shop_table.order_details td.woocommerce-table__product-name li > strong,
.shop_table.order_details td.woocommerce-table__product-name li > p {
  display: inline-block;
  vertical-align: middle;
}
.shop_table.order_details td.woocommerce-table__product-name li > strong:last-child,
.shop_table.order_details td.woocommerce-table__product-name li > p:last-child {
  padding-bottom: 0;
}
.shop_table.order_details td.woocommerce-table__product-name li > strong {
  padding: 0 10px 0 0;
  clear: left;
}
.shop_table thead,
.shop_table tr {
  width: 100%;
  position: relative;
  overflow: hidden;
}
.shop_table th,
.shop_table td {
  vertical-align: middle;
  position: relative;
  text-align: left;
  overflow: hidden;
}
.shop_table .product-remove {
  width: 30px;
  padding-left: 30px;
  padding-right: 30px;
}
.shop_table .product-thumbnail {
  width: 70px;
  padding-left: 0;
  padding-right: 20px;
}
.shop_table .product-thumbnail img {
  image-rendering: auto;
  width: 50px;
  height: auto;
  -webkit-border-radius: 100px;
  border-radius: 100px;
}
.shop_table .product-name {
  outline: none;
}
.shop_table .product-price {
  outline: none;
}
.shop_table .product-quantity input:not([type=button]):not([type=checkbox]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=reset]):not([type=submit]):not([type=color]):not([type=range]) {
  -webkit-border-radius: 8px;
  border-radius: 8px;
}
.shop_table .amount {
  outline: none;
}
.shop_table .actions {
  text-align: right;
}
.shop_table .actions .coupon {
  position: relative;
  float: left;
  overflow: hidden;
}
.shop_table .actions .coupon label {
  display: none;
}
.shop_table .actions .input-text {
  width: 260px;
  margin: 0 3px 0 1px;
  vertical-align: bottom;
}
.cross-sells {
  margin: 30px 0 50px;
}
.cart_totals {
  position: relative;
  overflow: hidden;
}
.cart_totals > h2 {
  position: relative;
}
.cart_totals table {
  border-spacing: 0;
  border-collapse: separate;
  width: 50%;
  position: relative;
  overflow: hidden;
}
.cart_totals table tr {
  width: 100%;
  position: relative;
  overflow: hidden;
}
.cart_totals table th,
.cart_totals table td {
  vertical-align: middle;
  position: relative;
  text-align: left;
  border-bottom-width: 1px !important;
  border-bottom-style: solid !important;
  overflow: hidden;
}
.cart_totals table th {
  width: 43%;
}
.cart_totals table td {
  width: 57%;
  text-align: right;
}
.cart_totals table input[type="checkbox"],
.cart_totals table input[type="radio"] {
  left: auto;
  right: 0;
  float: right;
}
.cart_totals table input[type="checkbox"] + label,
.cart_totals table input[type="radio"] + label {
  padding-left: 0;
  padding-right: 25px;
  float: right;
}
.cart_totals table input[type="checkbox"] + label:before,
.cart_totals table input[type="radio"] + label:before {
  left: auto;
  right: 0;
}
.cart_totals table input[type="checkbox"] + label:after {
  left: auto;
  right: 3px;
}
.cart_totals table input[type="radio"] + label:after {
  left: auto;
  right: 4px;
}
.woocommerce-shipping-calculator {
  padding: 20px 0 0;
  position: relative;
  overflow: hidden;
}
.woocommerce-shipping-calculator > p {
  margin: 0;
  padding: 0;
}
.shipping-calculator-form {
  margin: 20px -1.3% 0;
}
.shipping-calculator-form > * {
  width: 97.4%;
  margin: 0 1.3%;
  clear: both;
}
.shipping-calculator-form > p {
  padding: 0 0 10px;
}
.wc-proceed-to-checkout {
  padding: 15px 0 0;
  position: relative;
  overflow: hidden;
}
.wc-proceed-to-checkout .wcppec-checkout-buttons {
  display: inline-block;
  margin: 0;
}
.wc-proceed-to-checkout .wcppec-checkout-buttons .wcppec-checkout-buttons__separator {
  display: inline-block;
  margin: 0 30px;
}
.wc-proceed-to-checkout .wcppec-checkout-buttons .wcppec-checkout-buttons__button {
  margin: 0;
  padding: 0;
}
.wc-proceed-to-checkout .wcppec-checkout-buttons .wcppec-checkout-buttons__button img {
  display: none;
}
.wc-proceed-to-checkout .wcppec-checkout-buttons .wcppec-checkout-buttons__button:before {
  content: '\ebba';
  font-family: fontello;
}
.wc-proceed-to-checkout .wcppec-checkout-buttons .wcppec-checkout-buttons__button:after {
  content: 'Check out with PayPal';
  display: inline-block;
  margin-left: 2px;
}
/*-------------------------------------------------------------------------*/
/* Checkout
/*-------------------------------------------------------------------------*/
.checkout_coupon {
  margin: 0 -1.3% 30px;
  position: relative;
  overflow: hidden;
}
.checkout_coupon p:not([class]) {
  width: 97.4%;
  margin: 0 1.3%;
}
.checkout_coupon input,
.checkout_coupon button[type=submit] {
  width: 100%;
  max-width: 100%;
}
.checkout_coupon button[type=submit] {
  line-height: 46px;
}
body .select2-container .select2-choice,
body .select2-container.select2-drop-above .select2-choice {
  padding: 8px 8px 8px 15px;
}
body .select2-container.select2-container--open .select2-selection--single,
body .select2-container.select2-container--focus .select2-selection--single {
  -webkit-border-radius: 30px !important;
  border-radius: 30px !important;
}
body .select2-container.select2-container--open .select2-dropdown--below,
body .select2-container.select2-container--focus .select2-dropdown--below {
  border-top-width: 1px;
  border-top-style: solid;
}
body .select2-container.select2-container--open .select2-dropdown--above,
body .select2-container.select2-container--focus .select2-dropdown--above {
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
body .select2-container .select2-selection--single {
  height: 48px;
  padding: 8px 40px 8px 25px;
  background-image: url('../../../../img/select.png');
  background-position: 100% center;
  background-repeat: no-repeat;
  -webkit-border-radius: 30px;
  border-radius: 30px;
}
body .select2-container .select2-selection--single .select2-selection__arrow {
  display: none;
}
body .select2-container .select2-selection--single .select2-selection__rendered {
  line-height: 32px;
  padding: 0;
}
body .select2-dropdown {
  -webkit-border-radius: 0;
  border-radius: 0;
}
body .select2-dropdown .select2-results .select2-results__option {
  padding: 6px 6px 6px 18px;
}
body .select2-dropdown .select2-results .select2-results__option:first-child {
  padding: 6px 6px 6px 18px;
}
body .select2-dropdown .select2-results .select2-results__option:before {
  content: none;
}
body .select2-results li {
  padding: 5px 0;
}
body .select2-results li:before {
  content: none;
}
body .select2-search {
  padding-bottom: 10px;
}
body .select2-search input {
  padding: 0 20px 0 15px !important;
  height: 40px !important;
}
.checkout {
  position: relative;
  overflow: hidden;
}
.woocommerce-additional-fields,
.woocommerce-billing-fields,
.woocommerce-shipping-fields {
  margin: 0 -1.3%;
  position: relative;
  overflow: hidden;
}
.woocommerce-additional-fields:after,
.woocommerce-billing-fields:after,
.woocommerce-shipping-fields:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.woocommerce-additional-fields > h3,
.woocommerce-billing-fields > h3,
.woocommerce-shipping-fields > h3 {
  margin-left: 1.3%;
  margin-right: 1.3%;
  position: relative;
  overflow: hidden;
}
.woocommerce-additional-fields > h3 .woocommerce-form__label-for-checkbox,
.woocommerce-billing-fields > h3 .woocommerce-form__label-for-checkbox,
.woocommerce-shipping-fields > h3 .woocommerce-form__label-for-checkbox {
  padding-left: 0;
}
.woocommerce-additional-fields .shipping_address,
.woocommerce-billing-fields .shipping_address,
.woocommerce-shipping-fields .shipping_address {
  overflow: hidden;
}
.woocommerce-checkout-payment {
  padding: 30px;
  position: relative;
  overflow: hidden;
  border-width: 1px;
  border-style: solid;
}
.woocommerce-checkout-payment .payment_methods {
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
  overflow: hidden;
}
.woocommerce-checkout-payment .payment_methods li {
  padding: 18px 0 0;
  position: relative;
  overflow: hidden;
}
.woocommerce-checkout-payment .payment_methods li:first-child {
  padding: 0;
}
.woocommerce-checkout-payment .payment_methods li:before {
  content: none;
}
.woocommerce-checkout-payment .payment_methods li.woocommerce-notice {
  margin: 0;
  padding: 15px;
}
.woocommerce-checkout-payment .payment_methods label {
  display: inline-block;
  float: none;
}
.woocommerce-checkout-payment .payment_methods label img {
  display: none;
}
.woocommerce-checkout-payment .payment_methods .payment_box {
  margin: 17px 0 0;
  padding: 24px 25px;
  position: relative;
  border-width: 1px;
  border-style: solid;
  clear: both;
}
.woocommerce-checkout-payment .payment_methods .payment_box:before,
.woocommerce-checkout-payment .payment_methods .payment_box:after {
  content: '';
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  position: absolute;
  left: 30px;
  border-bottom-width: 13px;
  border-bottom-style: solid;
}
.woocommerce-checkout-payment .payment_methods .payment_box:before {
  top: -13px;
}
.woocommerce-checkout-payment .payment_methods .payment_box:after {
  top: -11px;
}
.woocommerce-checkout-payment .payment_methods .payment_box p {
  margin: 0;
  padding: 0;
}
.woocommerce-checkout-payment .woocommerce-terms-and-conditions-wrapper {
  padding: 30px 0 0;
  position: relative;
  overflow: hidden;
}
.woocommerce-checkout-payment .woocommerce-terms-and-conditions-wrapper > * {
  display: inline-block;
  float: none;
  vertical-align: middle;
}
.woocommerce-checkout-payment .woocommerce-terms-and-conditions-wrapper .form-row {
  width: auto;
  padding: 0;
  margin: 10px 20px 10px 0;
  direction: rtl;
  overflow: hidden;
}
.woocommerce-checkout-payment .woocommerce-terms-and-conditions-wrapper .form-row > * {
  direction: ltr;
}
.woocommerce-checkout-payment .woocommerce-terms-and-conditions-wrapper .form-row label {
  display: inline-block;
  vertical-align: middle;
  padding: 0 0 0 5px;
}
.woocommerce-checkout-payment .woocommerce-terms-and-conditions-wrapper .form-row label span {
  display: inline;
}
.woocommerce-checkout-payment .woocommerce-terms-and-conditions-wrapper .form-row .input-checkbox {
  display: inline-block;
  vertical-align: middle;
  float: none;
  position: static;
  opacity: 1;
}
.woocommerce-password-strength {
  padding: 20px 0 0;
}
.woocommerce-terms-and-conditions {
  word-wrap: break-word;
  max-width: 100%;
  max-height: none !important;
  overflow: visible !important;
}
.woocommerce-terms-and-conditions .cmsmasters_row_inner {
  width: 100%;
}
/*-------------------------------------------------------------------------*/
/* Order
/*-------------------------------------------------------------------------*/
ul.order_details {
  list-style: none;
  margin: 0 0 30px;
  padding: 0;
  position: relative;
  word-break: break-word;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: flex;
  overflow: hidden;
  border-width: 1px;
  border-style: solid;
}
ul.order_details li {
  width: 100%;
  margin: 0;
  padding: 17px 15px 13px;
  position: relative;
  overflow: hidden;
}
ul.order_details li:before {
  content: none;
}
ul.order_details li strong {
  display: block;
  margin: 17px -15px -13px;
  padding: 17px 15px 13px;
}
.woocommerce-page.woocommerce-order-received .woocommerce > h2 {
  padding-top: 30px;
}
/*-------------------------------------------------------------------------*/
/* Dynamic Cart
/*-------------------------------------------------------------------------*/
.cmsmasters_header_cart_link {
  display: none;
}
.cmsmasters_header_cart_link .count_wrap {
  display: inline-block;
  font-size: 20px;
  line-height: 18px;
  width: 20px;
  height: 20px;
  vertical-align: middle;
  position: relative;
  text-align: left;
}
.cmsmasters_header_cart_link .count_wrap:before {
  margin: 0;
  vertical-align: bottom;
}
.cmsmasters_header_cart_link .count_wrap:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.cmsmasters_header_cart_link .count {
  font-size: 9px;
  line-height: 16px;
  font-weight: 500;
  font-style: normal;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  text-align: center;
  width: 16px;
  height: 16px;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: -8px;
  top: -8px;
  bottom: auto;
}
.cmsmasters_dynamic_cart_wrap {
  height: 100%;
  margin: 0 0 0 15px;
  position: relative;
  float: right;
}
.enable_header_centered .cmsmasters_dynamic_cart_wrap {
  float: none;
  display: inline-block;
}
.header_mid .cmsmasters_dynamic_cart_wrap {
  margin-right: 15px;
}
.cmsmasters_dynamic_cart_wrap:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.cmsmasters_dynamic_cart {
  display: inline-block;
  vertical-align: middle;
  position: relative;
  word-wrap: break-word;
}
#page .cmsmasters_dynamic_cart .remove {
  position: absolute;
  left: auto;
  right: 0;
  top: -1px;
}
.cmsmasters_dynamic_cart .cmsmasters_dynamic_cart_button {
  font-size: 0;
  line-height: 0;
  display: block;
  -webkit-border-radius: 30px;
  border-radius: 30px;
}
.cmsmasters_dynamic_cart .cmsmasters_dynamic_cart_button .count_wrap {
  display: inline-block;
  font-size: 20px;
  line-height: 18px;
  width: 20px;
  height: 20px;
  vertical-align: middle;
  position: relative;
  text-align: left;
}
.cmsmasters_dynamic_cart .cmsmasters_dynamic_cart_button .count_wrap:before {
  margin: 0;
  vertical-align: bottom;
}
.cmsmasters_dynamic_cart .cmsmasters_dynamic_cart_button .count_wrap:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.cmsmasters_dynamic_cart .cmsmasters_dynamic_cart_button:before {
  margin: 0;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_dynamic_cart .cmsmasters_dynamic_cart_button .count {
  font-size: 9px;
  line-height: 16px;
  font-weight: 500;
  font-style: normal;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  text-align: center;
  width: 16px;
  height: 16px;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: -8px;
  top: -8px;
  bottom: auto;
}
.cmsmasters_dynamic_cart .widget_shopping_cart_content {
  width: 325px;
  padding: 30px 0;
  margin: 60px 0 0;
  visibility: hidden;
  position: absolute;
  left: auto;
  right: 0;
  top: 100%;
  border-width: 1px;
  border-style: dashed;
  -webkit-border-radius: 15px;
  border-radius: 15px;
  z-index: 1000;
  opacity: 0 !important;
}
.cmsmasters_dynamic_cart .widget_shopping_cart_content:before {
  content: '';
  display: block;
  width: 100%;
  height: 40px;
  position: absolute;
  left: 0;
  top: -40px;
}
.cmsmasters_dynamic_cart .widget_shopping_cart_content .woocommerce-mini-cart__empty-message {
  padding: 0 20px;
}
.cmsmasters_dynamic_cart .widget_shopping_cart_content .cart_list {
  list-style: none;
  max-height: 395px;
  margin: 0;
  padding: 0 30px;
  overflow-x: hidden;
  overflow-y: auto;
}
.cmsmasters_dynamic_cart .widget_shopping_cart_content .cart_list li {
  min-height: 50px;
  margin: 25px 0 0;
  padding: 0 30px 0 65px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_dynamic_cart .widget_shopping_cart_content .cart_list li:before {
  content: none;
}
.cmsmasters_dynamic_cart .widget_shopping_cart_content .cart_list li:first-child {
  margin: 0;
}
.cmsmasters_dynamic_cart .widget_shopping_cart_content .cart_list li.empty {
  min-height: 1px;
  padding: 0 30px;
}
.cmsmasters_dynamic_cart .widget_shopping_cart_content .cart_list a {
  display: block;
}
.cmsmasters_dynamic_cart .widget_shopping_cart_content .cart_list img {
  image-rendering: auto;
  width: 50px;
  height: 50px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: 0;
  bottom: auto;
  -webkit-border-radius: 6px;
  border-radius: 6px;
}
.cmsmasters_dynamic_cart .widget_shopping_cart_content .cart_list .quantity {
  direction: rtl;
}
.cmsmasters_dynamic_cart .widget_shopping_cart_content .cart_list .quantity * {
  display: inline-block;
  direction: ltr;
}
.cmsmasters_dynamic_cart .widget_shopping_cart_content .cart_list .quantity .amount {
  white-space: nowrap;
}
.cmsmasters_dynamic_cart .widget_shopping_cart_content .total {
  padding: 35px 30px 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_dynamic_cart .widget_shopping_cart_content .total strong {
  margin: 0 5px 0 0;
}
.cmsmasters_dynamic_cart .widget_shopping_cart_content .buttons {
  margin: 0 -2%;
  padding: 15px 30px 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_dynamic_cart .widget_shopping_cart_content .buttons .button {
  width: 46%;
  margin: 0 2%;
  padding: 0 20px;
  float: left;
}
.cmsmasters_dynamic_cart .widget_shopping_cart_content .buttons .wcppec-cart-widget-button {
  height: auto;
  width: 100%;
  text-align: center;
  margin-top: 5px;
}
.cmsmasters_dynamic_cart:hover .widget_shopping_cart_content,
.cmsmasters_dynamic_cart .cmsmasters_dynamic_cart_button:hover + .widget_shopping_cart_content,
.cmsmasters_dynamic_cart .widget_shopping_cart_content:hover {
  visibility: visible;
  margin-top: 40px;
  opacity: 1 !important;
}
.cmsmasters_added_product_info {
  width: 260px;
  margin: 40px 0 0;
  padding: 15px 20px;
  visibility: hidden;
  position: absolute;
  left: auto;
  right: 0;
  top: 100%;
  z-index: 1001;
  overflow: hidden;
  opacity: 0;
}
.cmsmasters_added_product_info .cmsmasters_added_product_info_img {
  width: 50px;
  height: 50px;
  float: left;
}
.cmsmasters_added_product_info .cmsmasters_added_product_info_text {
  display: block;
  padding: 14px 0 14px 15px;
  overflow: hidden;
}
/*-------------------------------------------------------------------------*/
/* Widgets
/*-------------------------------------------------------------------------*/
.widget.woocommerce > form {
  overflow: visible;
}
.widget.woocommerce > form > * {
  overflow: visible;
}
/***************** Widget Product Search ******************/
.widget_product_search {
  position: relative;
}
/***************** Widget Lists ******************/
.widget_layered_nav ul,
.widget_layered_nav_filters ul,
.widget_product_categories ul {
  margin: 0;
  padding: 0;
}
.widget_layered_nav ul ul,
.widget_layered_nav_filters ul ul,
.widget_product_categories ul ul {
  margin: 0 0 -4px;
  padding: 4px 0 0 10px;
}
.widget_layered_nav ul li,
.widget_layered_nav_filters ul li,
.widget_product_categories ul li {
  margin: 0;
  padding: 4px 0;
}
.widget_layered_nav ul li:before,
.widget_layered_nav_filters ul li:before,
.widget_product_categories ul li:before {
  content: none;
}
.widget_layered_nav ul li a,
.widget_layered_nav_filters ul li a,
.widget_product_categories ul li a {
  outline: none;
}
/***************** Widget Product List ******************/
.widget > .product_list_widget {
  list-style: none;
  margin: -18px 0 0;
  padding: 0;
  position: relative;
  overflow: hidden;
}
.widget > .product_list_widget li {
  min-height: 52px;
  margin: 18px 0 0;
  padding: 0 20px 0 65px;
  position: relative;
  overflow: hidden;
}
.widget > .product_list_widget li:before {
  content: none;
}
.widget > .product_list_widget a {
  display: block;
}
.widget > .product_list_widget img {
  image-rendering: auto;
  width: 50px;
  height: 50px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: 2px;
  bottom: auto;
}
.widget > .product_list_widget .star-rating {
  display: none;
}
.widget > .product_list_widget .cmsmasters_star_rating {
  margin: 5px 0;
}
.widget > .product_list_widget ins {
  text-decoration: none;
}
/***************** Widget Shopping Cart ******************/
.widget_shopping_cart {
  position: relative;
  word-wrap: break-word;
  overflow: hidden;
}
#page .widget_shopping_cart .remove {
  position: absolute;
  left: auto;
  right: 0;
  top: -1px;
}
.widget_shopping_cart .widget_shopping_cart_content {
  position: relative;
  overflow: hidden;
}
.widget_shopping_cart .cart_list {
  list-style: none;
  margin: -18px 0 0;
  padding: 0;
  overflow: hidden;
}
.widget_shopping_cart .cart_list li {
  min-height: 52px;
  max-width: 320px;
  margin: 18px 0 0;
  padding: 0 20px 0 65px;
  position: relative;
  overflow: hidden;
}
.widget_shopping_cart .cart_list li:before {
  content: none;
}
.widget_shopping_cart .cart_list li.empty {
  min-height: 1px;
  padding: 0 20px;
}
.widget_shopping_cart .cart_list a {
  display: block;
}
.widget_shopping_cart .cart_list img {
  image-rendering: auto;
  width: 50px;
  height: 50px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: 2px;
  bottom: auto;
}
.widget_shopping_cart .cart_list .quantity {
  direction: rtl;
}
.widget_shopping_cart .cart_list .quantity * {
  display: inline-block;
  direction: ltr;
}
.widget_shopping_cart .cart_list .quantity .amount {
  white-space: nowrap;
}
.widget_shopping_cart .total {
  padding: 35px 0 0;
  position: relative;
  overflow: hidden;
}
.widget_shopping_cart .total strong {
  padding: 0 7px 0 0;
}
.widget_shopping_cart .buttons {
  margin: 0 -1.3%;
  padding: 12px 0 0;
  position: relative;
  overflow: hidden;
}
.widget_shopping_cart .buttons .button {
  display: inline-block;
  vertical-align: middle;
  width: 47.4%;
  padding: 0 15px;
  margin: 0 1.3% 2.6%;
  float: left;
}
.widget_price_filter .widgettitle {
  margin: 0 0 27px;
}
.widget_price_filter .price_slider_wrapper {
  position: relative;
  overflow: hidden;
}
.widget_price_filter .price_slider {
  height: 2px;
  margin: 0 0 5px;
  padding: 1px;
  position: relative;
}
.widget_price_filter .ui-slider-range {
  height: 100%;
  position: absolute;
  top: 0;
}
.widget_price_filter .ui-slider-handle {
  display: block;
  width: 12px;
  height: 12px;
  cursor: pointer;
  position: absolute;
  left: 0;
  right: auto;
  top: -5px;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.widget_price_filter .ui-slider-handle:last-child {
  left: 100%;
  margin-left: -12px;
  margin-right: 0;
}
.widget_price_filter .price_slider_amount {
  padding: 20px 0 0;
  position: relative;
  overflow: hidden;
}
.widget_price_filter .price_slider_amount .button {
  float: right;
  padding: 0 20px;
}
.widget_price_filter .price_slider_amount .price_label {
  display: block;
  padding: 10px 5px 10px 0;
  overflow: hidden;
}
/***************** Widget Tag Cloud ******************/
.widget_product_tag_cloud {
  position: relative;
  overflow: hidden;
}
.widget_product_tag_cloud a {
  line-height: 1em;
  display: inline-block;
  margin: 0 4px 0 0;
}
.widget_product_tag_cloud a:last-child {
  margin: 0;
}
/***************** Widget Tag Cloud ******************/
.widget_rating_filter li:before {
  content: none;
}
/*-------------------------------------------------------------------------*/
/* Shortcodes
/*-------------------------------------------------------------------------*/
.cmsmasters_products_shortcode,
.cmsmasters_selected_products_shortcode {
  position: relative;
  overflow: hidden;
}
/*	Other Shortcodes */
.create-account .input-radio + label,
.create-account .input-checkbox + label {
  padding: 0 0 0 25px;
}
.create-account > p {
  margin-left: 1.3%;
  margin-right: 1.3%;
}
.login,
.register {
  margin: 0 -1.3%;
  position: relative;
  overflow: hidden;
}
.login:after,
.register:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.login label.inline,
.register label.inline {
  display: inline-block;
  padding: 0;
  margin-left: 10px;
  margin-right: 0;
}
.login label.inline input,
.register label.inline input {
  vertical-align: middle;
  margin-top: -2px;
}
.login > *,
.register > * {
  width: 97.4%;
  margin-left: 1.3%;
  margin-right: 1.3%;
  overflow: hidden;
}
.login .lost_password,
.register .lost_password {
  clear: both;
}
.track_order {
  margin: 0 -1.3%;
  position: relative;
  overflow: hidden;
}
.track_order:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.track_order > * {
  margin-left: 1.3%;
  margin-right: 1.3%;
  overflow: hidden;
}
/* MyAccount */
.woocommerce-MyAccount-navigation {
  margin: 0 0 30px;
}
.woocommerce-MyAccount-navigation > ul {
  margin: 0 -10px;
}
.woocommerce-MyAccount-navigation > ul > li {
  display: inline-block;
  padding: 0 10px 20px;
}
.woocommerce-MyAccount-navigation > ul > li > a {
  display: inline-block;
  padding: 0 20px;
  cursor: pointer;
  position: relative;
  border-width: 1px;
  border-style: solid;
  -webkit-border-radius: 22px;
  border-radius: 22px;
}
.woocommerce-MyAccount-content > .woocommerce-EditAccountForm {
  margin: 0 -1.3%;
}
.woocommerce-MyAccount-content fieldset {
  padding: 20px 0 0;
}
.woocommerce-MyAccount-content form {
  overflow: hidden;
}
.woocommerce-MyAccount-content p:not([class]) {
  width: 97.4%;
  margin: 0 1.3%;
  position: relative;
  clear: both;
}
/*-------------------------------------------------------------------------*/
/* CSS3 Animations
/*-------------------------------------------------------------------------*/
html.csstransitions .woocommerce-store-notice a {
  -webkit-transition: opacity .3s ease-in-out;
  -moz-transition: opacity .3s ease-in-out;
  -ms-transition: opacity .3s ease-in-out;
  -o-transition: opacity .3s ease-in-out;
  transition: opacity .3s ease-in-out;
}
html.csstransitions .cmsmasters_star_rating .cmsmasters_star,
html.csstransitions .product-category .woocommerce-loop-category__title {
  -webkit-transition: color 0.3s ease-in-out;
  -moz-transition: color 0.3s ease-in-out;
  -ms-transition: color 0.3s ease-in-out;
  -o-transition: color 0.3s ease-in-out;
  transition: color 0.3s ease-in-out;
}
html.csstransitions .remove:before,
html.csstransitions .remove:after,
html.csstransitions .cmsmasters_dynamic_cart .cmsmasters_dynamic_cart_button {
  -webkit-transition: background-color .3s ease-in-out, color .3s ease-in-out;
  -moz-transition: background-color .3s ease-in-out, color .3s ease-in-out;
  -ms-transition: background-color .3s ease-in-out, color .3s ease-in-out;
  -o-transition: background-color .3s ease-in-out, color .3s ease-in-out;
  transition: background-color .3s ease-in-out, color .3s ease-in-out;
}
html.csstransitions .woocommerce-MyAccount-navigation > ul > li > a {
  -webkit-transition: border-color .3s ease-in-out, background-color .3s ease-in-out, color .3s ease-in-out;
  -moz-transition: border-color .3s ease-in-out, background-color .3s ease-in-out, color .3s ease-in-out;
  -ms-transition: border-color .3s ease-in-out, background-color .3s ease-in-out, color .3s ease-in-out;
  -o-transition: border-color .3s ease-in-out, background-color .3s ease-in-out, color .3s ease-in-out;
  transition: border-color .3s ease-in-out, background-color .3s ease-in-out, color .3s ease-in-out;
}
html.csstransitions .cmsmasters_product .cmsmasters_product_add_wrap {
  -webkit-transition: opacity .4s ease-in-out, visibility .4s ease-in-out;
  -moz-transition: opacity .4s ease-in-out, visibility .4s ease-in-out;
  -ms-transition: opacity .4s ease-in-out, visibility .4s ease-in-out;
  -o-transition: opacity .4s ease-in-out, visibility .4s ease-in-out;
  transition: opacity .4s ease-in-out, visibility .4s ease-in-out;
}
html.csstransitions .cmsmasters_dynamic_cart .widget_shopping_cart_content {
  -webkit-transition: opacity .3s ease-in-out, margin .3s ease-in-out, visibility .3s ease-in-out;
  -moz-transition: opacity .3s ease-in-out, margin .3s ease-in-out, visibility .3s ease-in-out;
  -ms-transition: opacity .3s ease-in-out, margin .3s ease-in-out, visibility .3s ease-in-out;
  -o-transition: opacity .3s ease-in-out, margin .3s ease-in-out, visibility .3s ease-in-out;
  transition: opacity .3s ease-in-out, margin .3s ease-in-out, visibility .3s ease-in-out;
}
html.csstransitions .cmsmasters_product .cmsmasters_product_img img,
html.csstransitions .shipping_method + label:after,
html.csstransitions .input-radio + label:after,
html.csstransitions .input-checkbox + label:after,
html.csstransitions .woocommerce-form__label-for-checkbox .input-checkbox + span:after {
  -webkit-transition: all 0.3s ease-in-out;
  -moz-transition: all 0.3s ease-in-out;
  -ms-transition: all 0.3s ease-in-out;
  -o-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsdWdpbi1zdHlsZS5sZXNzIiwiLi4vLi4vLi4vLi4vLi4vdGhlbWUtZnJhbWV3b3JrL3RoZW1lLXN0eWxlL2Nzcy9sZXNzL2dlbmVyYWwubGVzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBc0JBLDhCQUE4QjtFQUM3QixTQUFTLE9BQVQ7RUFDQSxhQUFZLGlCQUFaOztBQUVELGlDQUFpQztFQUFVLFNBQVMsT0FBVDs7QUFDM0MsZ0NBQWdDO0VBQVUsU0FBUyxPQUFUOztBQUcxQyxZQUFZO0VDK0tYLFNBQVEsR0FBUjtFQUNBLGNBQUE7RUFDQSxXQUFBO0VBQ0EsU0FBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7O0FEaExEO0VBQ0MsY0FBQTtFQUNBLFdBQUE7RUFDQSxTQUFBO0VBQ0EsNEJBQUE7RUFDQSxlQUFBO0VBQ0EsT0FBQTtFQUNBLFNBQUE7RUFDQSxjQUFBOztBQVJELHlCQVVDO0VBQ0MsU0FBQTtFQUNBLFVBQUE7O0FBWkYseUJBVUMsRUFJQztFQ3dHRCxZQUFBOztBRHJHRSx5QkFQRixFQUlDLEVBR0U7RUNxR0gsVUFBQTs7QUR0SEQseUJBdUJDO0VBQ0MsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtFQUNBLE1BQUE7RUFDQSxTQUFBOztBQUVBLHlCQVpELHdDQVlFO0VDd0pGLFVBQUE7RUFDQSxXQUFBO0VBQ0EsdUJBQUE7RUFDQSxrQkFBQTtFQUNBLE9BQUE7RUFDQSxRQUFBO0VBQ0EsTUFBQTtFQUNBLFNBQUE7O0FEM0pDLHlCQWhCRCx3Q0FnQkU7RUMrRUYsWUFBQTs7QUR6RUQsUUFBUztFQUNSLG9CQUFBOztBQURELFFBQVMsV0FHUjtFQUNDLHFCQUFBO0VBQ0EsV0FBQTtFQUNBLGVBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxPQUFBO0VBQ0EsTUFBQTs7O0FBTUY7RUFDQyxXQUFBO0VBQ0EsY0FBQTtFQUNBLGtCQUFBO0VDS0EsZ0JBQUE7O0FEUkQsdUJBTUM7RUFDQyxlQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxjQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBO0VBQ0Esa0JBQUE7RUNMRCxnQkFBQTtFQTVCQSxXQUFBOztBRHFDQyx1QkFYRCxpQkFXRTtFQUNBLGNBQUE7O0FBR0QsdUJBZkQsaUJBZUU7RUN5R0YsVUFBQTtFQUNBLFdBQUE7RUFDQSx1QkFBQTtFQUNBLGtCQUFBO0VBQ0EsT0FBQTtFQUNBLFFBQUE7RUFDQSxNQUFBO0VBQ0EsU0FBQTs7QURySUQsdUJBMEJDO0VBQ0MsWUFBQTtFQUNBLGtCQUFBO0VDcEJELGdCQUFBOztBRFJELHVCQWdDQztFQUNDLFlBQUE7RUFDQSxrQkFBQTtFQUNBLE9BQUE7RUFDQSxNQUFBO0VDNUJELGdCQUFBOztBRFJELHVCQXdDQztFQUNDLFdBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7RUNuQ0QsZ0JBQUE7O0FEd0NEO0VBQ0Msa0JBQUE7RUN6Q0EsZ0JBQUE7O0FEd0NELG9CQUlDO0VBQ0MsZUFBQTs7QUFMRixvQkFJQyxPQUdDO0VBQ0MsY0FBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7RUNuREYsZ0JBQUE7O0FEc0RFLG9CQVZGLE9BR0MsT0FPRTtBQWRKLG9CQUlDLE9BR0MsT0FRQyxFQUFDO0VBQ0EsYUFBWSxVQUFaO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0Esd0JBQUE7RUFDQSxrQkFBQTtFQUNBLHdCQUFBO0VBQ0Esb0JBQUE7RUFDQSxvQkFBQTtFQUNBLFdBQUE7RUFDQSxtQ0FBQTtFQUNBLGtDQUFBO0VBRUEsZUFBQTtFQUNBLGNBQUE7RUFDQSxjQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLE9BQUE7RUFDQSxNQUFBOztBQUdELG9CQW5DRixPQUdDLE9BZ0NFO0VBQ0EsU0FBUSwyQkFBUjs7QUF4Q0osb0JBSUMsT0FHQyxPQW9DQyxFQUFDO0VBQ0EsU0FBUSwyQkFBUjs7QUE1Q0osb0JBSUMsT0FHQyxPQXdDQztFQUNDLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxZQUFBO0VBQ0EsY0FBQTtFQUNBLGtCQUFBO0VBQ0EsT0FBQTtFQUNBLE1BQUE7RUM5RkgsZ0JBQUE7O0FEaUdHLG9CQXJESCxPQUdDLE9Bd0NDLEVBVUU7RUFDQSxXQUFBO0VBQ0EsV0FBQTs7QUFHRCxvQkExREgsT0FHQyxPQXdDQyxFQWVFO0VBQ0EsV0FBQTtFQUNBLFVBQUE7O0FBR0Qsb0JBL0RILE9BR0MsT0F3Q0MsRUFvQkU7RUFDQSxXQUFBO0VBQ0EsVUFBQTs7QUFHRCxvQkFwRUgsT0FHQyxPQXdDQyxFQXlCRTtFQUNBLFdBQUE7RUFDQSxVQUFBOztBQUdELG9CQXpFSCxPQUdDLE9Bd0NDLEVBOEJFO0VBQ0EsV0FBQTtFQUNBLFVBQUE7OztBQVNMO0FBQ0E7QUFDQTtFQUNDLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtFQUNBLFNBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQ0lBLDJCQUFBO0VBQ0EsbUJBQUE7RUE5SUEsZ0JBQUE7O0FEOElELEtBQU0sWUFBWTtFQ2xLakIsYUFBQTs7O0FEd0tELEtBQ0M7QUFERCxLQUVDO0FBRkQsS0FHQyxRQUFPO0VBQ04sV0FBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0VBQ0EsU0FBQTtFQUNBLFlBQUE7RUM3R0QsVUFBQTs7QURrSEQ7QUFDQTtBQUNBLEtBQUssZ0JBQWdCLElBQUk7RUNqTXhCLFdBQUE7RUE2RUEsVUFBQTtFQXFFQSxVQUFBO0VBQ0EsV0FBQTtFQUNBLHVCQUFBO0VBQ0Esa0JBQUE7RUFDQSxPQUFBO0VBQ0EsV0FBQTtFQUNBLE1BQUE7RUFDQSxTQUFBOztBRHNDRCxlQU9DO0FBTkQsWUFNQztBQUxELEtBQUssZ0JBQWdCLElBQUksZUFLeEI7RUFDQyxxQkFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxlQUFBOztBQUVBLGVBTkQsUUFNRTtBQUFELFlBTkQsUUFNRTtBQUFELEtBWEcsZ0JBQWdCLElBQUksZUFLeEIsUUFNRTtFQUNBLFNBQVEsRUFBUjtFQ3pLRixpQkFBQTtFQUNBLG1CQUFBO0VBNkdBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsdUJBQUE7RUFDQSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxXQUFBO0VBQ0EsTUFBQTtFQUNBLFNBQUE7RUEwQkEsc0RBQUE7RUFDQSw4Q0FBQTs7QUQrQkMsZUFiRCxRQWFFO0FBQUQsWUFiRCxRQWFFO0FBQUQsS0FsQkcsZ0JBQWdCLElBQUksZUFLeEIsUUFhRTtFQUNBLFNBQVEsRUFBUjtFQUNBLG1CQUFrQixRQUFsQjtFQUNBLGdCQUFlLFFBQWY7RUFDQSxXQUFVLFFBQVY7RUNyRUYsVUFBQTtFQUNBLFdBQUE7RUFDQSx1QkFBQTtFQUNBLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7RUFDQSxNQUFBO0VBQ0EsU0FBQTtFQTVFQSxVQUFBOztBRGtKRSxlQUZELFFBQ0EsUUFDRTtBQUFELFlBRkQsUUFDQSxRQUNFO0FBQUQsS0E5QkUsZ0JBQWdCLElBQUksZUE0QnZCLFFBQ0EsUUFDRTtFQUNBLG1CQUFrQixRQUFsQjtFQUNBLGdCQUFlLFFBQWY7RUFDQSxXQUFVLFFBQVY7RUNySkgsVUFBQTs7QUQ0SkQsS0FBSztFQUNKLHFCQUFBO0VBQ0EsbUJBQUE7O0FBRkQsS0FBSyxTQUlKO0VBQ0MsbUJBQUE7RUNqS0QsVUFBQTs7QUR5S0MsWUFERCxRQUNFO0FBQUQsS0FGRyxnQkFDSixRQUNFO0FBQ0QsWUFGRCxRQUVFO0FBQUQsS0FIRyxnQkFDSixRQUVFO0VDOUVGLDBCQUFBO0VBQ0Esa0JBQUE7OztBRHFGRDtFQUNDLFVBQUE7RUFDQSxTQUFBOztBQUZELGdCQUlDO0VDdk9BLGdCQUFBOztBRDBPQyxnQkFIRCxHQUdFO0VBQ0EsYUFBQTs7QUFSSCxnQkFZQztFQUNDLGlCQUFBOztBQUlGO0FBQ0E7QUFDQTtFQUNDLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxXQUFBO0VBQ0Esa0JBQUE7RUNsUEEsaUJBQUE7RUFDQSxtQkFBQTtFQW9JQSwwQkFBQTtFQUNBLGtCQUFBO0VBbEpBLFdBQUE7RUFJQSxnQkFBQTs7QURvUEQsb0JBWUM7QUFYRCxpQkFXQztBQVZELGtCQVVDO0VBQ0Msa0JBQUE7O0FBYkYsb0JBZ0JDO0FBZkQsaUJBZUM7QUFkRCxrQkFjQztFQUNDLGtCQUFBOztBQUlGLGtCQUNDO0VBQ0MsVUFBQTtFQUNBLFNBQUE7O0FBRUEsa0JBSkQsR0FJRTtFQUNBLGFBQUE7OztBQU9IO0VBQ0MscUJBQUE7RUFDQSxzQkFBQTtFQUNBLGtCQUFBO0VDelJBLGdCQUFBOztBRHNSRCxTQU1DO0VBQ0MsYUFBQTs7QUFQRixTQVVDO0VBQ0MsY0FBQTtFQUNBLFdBQUE7RUFDQSxpQ0FBQTtFQUNBLFlBQUE7OztBQU1GLEtBQUs7RUFDSixnQkFBQTs7QUFHQyxLQUpHLFdBR0osR0FDRSxZQUNBO0VBQ0MscUJBQUE7O0FBTkosS0FBSyxXQUdKLEdBT0M7RUFDQyw0QkFBQTtFQzdTRixlQUFBO0VBQ0EsbUJBQUE7O0FEK1NFLEtBZEUsV0FHSixHQU9DLEdBSUU7RUFDQSxlQUFBO0VBQ0EsOEJBQUE7O0FBaEJKLEtBQUssV0FxQko7RUFDQyxZQUFBOztBQXRCRixLQUFLLFdBeUJKO0VBQ0MsaUJBQUE7RUFDQSxlQUFBOztBQUlGLHNCQUNDO0VBQ0Msb0JBQUE7RUFDQSxnQkFBQTs7QUFFQSxzQkFKRCxtQ0FJRTtFQ2xXRixhQUFBOztBRDZWRCxzQkFDQyxtQ0FRQyxJQUFHO0VBQ0YsU0FBQTtFQUNBLFVBQUE7O0FBWEgsc0JBZUM7RUFDQyxnQkFBQTtFQ3pWRCxnQkFBQTs7QUR5VUQsc0JBZUMsa0JBSUM7RUFDQyxxQkFBQTtFQUNBLGtCQUFBO0VBQ0Esc0JBQUE7RUFDQSxnQkFBQTs7QUF2Qkgsc0JBMkJDO0VDcFdBLGdCQUFBOztBRHlVRCxzQkEyQkMsbUJBR0MsTUFBSztFQzFOTiwwQkFBQTtFQUNBLGtCQUFBOztBRCtORCxFQUFFO0VBQ0QsY0FBQTtFQUNBLFVBQUE7RUMvV0EsZ0JBQUE7O0FEa1hBLEVBTEMsVUFLQTtFQzVRRCxTQUFRLEdBQVI7RUFDQSxjQUFBO0VBQ0EsV0FBQTtFQUNBLFNBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBOztBRGtRRCxFQUFFLFVBU0Q7QUFURCxFQUFFLFVBVUQ7QUFWRCxFQUFFLFVBV0Q7RUFDQyxjQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7RUMzWEQsZ0JBQUE7O0FENldELEVBQUUsVUFrQkQ7RUFDQyxlQUFBO0VBQ0EsbUJBQUE7RUFDQSxXQUFBO0VBQ0EsV0FBQTs7QUF0QkYsRUFBRSxVQXlCRDtFQUNDLFdBQUE7OztBQU1GO0VBQ0Msb0JBQUE7RUFDQSxrQkFBQTtFQy9ZQSxnQkFBQTs7QUQ2WUQsU0FLQztFQUNDLFlBQUE7RUFDQSxjQUFBO0VBQ0Esa0JBQUE7RUNqYkQsV0FBQTtFQTRCQSxnQkFBQTs7O0FENlpEO0VBQ0MsWUFBQTtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQzViQSxXQUFBOztBRCtiQSxTQUFDO0VDN1RELFNBQVEsR0FBUjtFQUNBLGNBQUE7RUFDQSxXQUFBO0VBQ0EsU0FBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7O0FENFRBLFNBQUM7QUFDRCxTQUFDO0FBQ0QsU0FBQztFQUNBLFlBQUE7RUFDQSxXQUFBO0VDL2FELFdBQUE7O0FEbWJBLFNBQUM7RUFDQSxXQUFBO0VBQ0EsU0FBQTs7QUFwQkYsU0F1QkM7RUFDQyxjQUFBO0VBQ0EsaUJBQUE7O0FBekJGLFNBNEJDO0FBNUJELFNBNkJDO0FBN0JELFNBOEJDO0VBQ0MsV0FBQTtFQUNBLGVBQUE7O0FBaENGLFNBbUNDO0VBQ0MsaUJBQUE7O0FBcENGLFNBdUNDLE1BQUs7QUF2Q04sU0F3Q0MsTUFBSztBQXhDTixTQXlDQyxNQUFLO0FBekNOLFNBMENDLE1BQUs7RUFDSixXQUFBOzs7QUFNRjtFQUNDLG1CQUFBOzs7QUFLRCxLQUFNO0VBQ0wsb0JBQUE7RUFDQSxxQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtFQUNBLGtCQUFBO0VDdGVBLGtCQUFBOztBRHllQSxLQVRLLFFBU0o7RUFDQSxTQUFRLEVBQVI7RUFDQSxtQkFBa0IsYUFBbEI7RUFDQSxnQkFBZSxhQUFmO0VBQ0EsZUFBYyxhQUFkO0VBQ0EsV0FBVSxhQUFWO0VDNVdELFdBQUE7RUFDQSxXQUFBO0VBQ0EsdUJBQUE7RUFDQSxrQkFBQTtFQUNBLE9BQUE7RUFDQSxRQUFBO0VBQ0EsTUFBQTtFQUNBLFNBQUE7O0FEeVdBLEtBbEJLLFFBa0JKO0VBQ0EsU0FBUSxFQUFSO0VBQ0EsbUJBQWtCLGNBQWxCO0VBQ0EsZ0JBQWUsY0FBZjtFQUNBLGVBQWMsY0FBZDtFQUNBLFdBQVUsY0FBVjtFQ3JYRCxXQUFBO0VBQ0EsV0FBQTtFQUNBLHVCQUFBO0VBQ0Esa0JBQUE7RUFDQSxPQUFBO0VBQ0EsUUFBQTtFQUNBLE1BQUE7RUFDQSxTQUFBOzs7OztBRHlYRDtFQUNDLGlCQUFBO0VBQ0Esa0JBQUE7RUN4ZkEsZ0JBQUE7RUFKQSxXQUFBOztBRDBmRCwyQkFNQztFQUNDLFdBQUE7RUFDQSxlQUFBOztBQVJGLDJCQVdDO0VBQ0MsYUFBQTtFQzFoQkQsWUFBQTs7QUQ4Z0JELDJCQWdCQztFQ2xpQkEsV0FBQTs7QUR1aUJELFFBQ0MscUJBQW9CLFVBQ25CO0VBQ0MsYUFBQTs7QUFFQSxRQUpGLHFCQUFvQixVQUNuQixTQUdFLFVBQVU7RUFDVixXQUFBOztBQUdELFFBUkYscUJBQW9CLFVBQ25CLFNBT0UsVUFBVTtFQUNWLFdBQUE7O0FBVkosUUFlQyxxQkFBb0IsVUFDbkI7RUFDQyxhQUFBOztBQUVBLFFBSkYscUJBQW9CLFVBQ25CLFNBR0UsVUFBVTtFQUNWLFdBQUE7O0FBR0QsUUFSRixxQkFBb0IsVUFDbkIsU0FPRSxVQUFVO0VBQ1YsV0FBQTs7QUFNSjtFQUNDLHFCQUFBO0VBQ0EsVUFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7O0FBSkQsb0JBTUM7RUFDQyxZQUFBO0VBQ0EsY0FBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxxQkFBQTtFQ3BqQkQsZ0JBQUE7RUE1QkEsV0FBQTs7QURvbEJDLG9CQVRELFNBU0U7RUFDQSxhQUFBOztBQUdELFVBQVUsb0JBYlg7RUFjRSxhQUFBOztBQUVBLFVBSFMsb0JBYlgsU0FnQkcsVUFBVTtFQUNWLFdBQUE7O0FBSUYsVUFBVSxvQkFyQlg7RUFzQkUsWUFBQTs7QUFFQSxVQUhTLG9CQXJCWCxTQXdCRyxVQUFVO0VBQ1YsV0FBQTs7QUFJRixVQUFVLG9CQTdCWDtFQThCRSxZQUFBOztBQUVBLFVBSFMsb0JBN0JYLFNBZ0NHLFVBQVU7RUFDVixXQUFBOztBQUlGLFVBQVUsb0JBckNYO0VBc0NFLGFBQUE7O0FBRUEsVUFIUyxvQkFyQ1gsU0F3Q0csVUFBVTtFQUNWLFdBQUE7O0FBSUYsVUFBVSxvQkE3Q1g7RUE4Q0UsWUFBQTs7QUFFQSxVQUhTLG9CQTdDWCxTQWdERyxVQUFVO0VBQ1YsV0FBQTs7QUFJRixVQUFVLG9CQXJEWDtFQXNERSxZQUFBO0VBQ0EsV0FBQTtFQzFtQkYsV0FBQTs7QURnbkJEO0VBQ0MsVUFBQTtFQUNBLGtCQUFBO0VDamVBLDJCQUFBO0VBQ0EsbUJBQUE7RUE5SUEsZ0JBQUE7O0FEa25CQSxLQUFNO0VBQ0wscUJBQUE7RUMzbUJELGlCQUFBO0VBQ0Esb0JBQUE7O0FEeW1CQSxLQUFNLG9CQUlMO0VDemVELG9DQUFBO0VBQ0EsNEJBQUE7O0FENmVBLG1CQUFDLE1BQ0E7RUFDQyxtQkFBQTtFQzVrQkYsVUFBQTs7QUQyakJELG1CQXNCQztFQUNDLGdCQUFBO0VBQ0Esa0JBQUE7RUN2ZkQsMkJBQUE7RUFDQSxtQkFBQTtFQTlJQSxnQkFBQTs7QUQ0bUJELG1CQXNCQyx3QkFNQztFQUNDLHFCQUFBO0VBQ0EsV0FBQTs7QUFHRCxtQkFYRCx3QkFXRSxNQUVBO0FBREQsbUJBWkQsd0JBWUUsd0JBQ0E7RUFDQyxtQkFBa0IsV0FBbEI7RUFDQSxnQkFBZSxXQUFmO0VBQ0EsV0FBVSxXQUFWOztBQXRDSixtQkEyQ0M7RUFDQyxrQkFBQTtFQUNBLGNBQUE7RUNycUJELGtCQUFBO0VBWUEsZ0JBQUE7O0FENG1CRCxtQkFrREM7RUFDQyxtQkFBQTtFQ25yQkQsYUFBQTs7QURzckJDLFlBQWEsb0JBSmQ7RUFLRSxjQUFBOztBQXZESCxtQkEyREM7RUFDQyxnQkFBQTs7QUE1REYsbUJBK0RDO0VBQ0MsU0FBQTs7QUFoRUYsbUJBbUVDO0VBQ0MsaUJBQUE7RUM1ckJELGtCQUFBO0VBWUEsZ0JBQUE7O0FENG1CRCxtQkF5RUM7RUFDQyxnQkFBQTtFQUNBLGtCQUFBO0VDdnJCRCxnQkFBQTs7QUQ0bUJELG1CQStFQztFQ3ZzQkEsa0JBQUE7RUFZQSxnQkFBQTs7QUQ0bUJELG1CQW9GQztFQUNDLGNBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7RUNwc0JELGdCQUFBOztBRHVzQkMsbUJBUEQsT0FPRTtFQ3hsQkYsU0FBUSxFQUFSO0VBQ0EscUJBQUE7RUFDQSxzQkFBQTtFQUNBLFlBQUE7O0FEMGZELG1CQW9GQyxPQVdDO0VBQ0MscUJBQUE7RUFDQSxzQkFBQTs7QUFqR0gsbUJBb0ZDLE9BZ0JDO0VBQ0MsaUJBQUE7RUFDQSxzQkFBQTtFQUNBLG1CQUFBOztBQUVBLG1CQXJCRixPQWdCQyxJQUtFO0VDdG1CSCxTQUFRLEVBQVI7RUFDQSxxQkFBQTtFQUNBLHNCQUFBO0VBQ0EsWUFBQTs7QUQwZkQsbUJBb0ZDLE9BZ0JDLElBU0M7RUFDQyxxQkFBQTtFQUNBLHNCQUFBO0VBQ0EsNkJBQUE7O0FBaEhKLG1CQW9GQyxPQWdDQztFQUNDLHFCQUFBO0VBQ0Esc0JBQUE7RUFDQSxtQkFBQTs7QUF2SEgsbUJBb0ZDLE9Bc0NDO0VBQ0MsYUFBQTs7QUEzSEgsbUJBK0hDO0VBQ0MsV0FBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsT0FBQTtFQUNBLE1BQUE7RUM3dkJELGtCQUFBO0VBNkRBLFVBQUE7O0FEb3NCQyxtQkFWRCw2QkFVRTtFQ3RvQkYsU0FBUSxFQUFSO0VBQ0EscUJBQUE7RUFDQSxzQkFBQTtFQUNBLFlBQUE7O0FEMGZELG1CQStIQyw2QkFjQztFQUNDLGlCQUFBOztBQTlJSCxtQkFrSkM7RUFDQyxxQkFBQTtFQUNBLHNCQUFBOztBQXBKRixtQkFrSkMsOEJBSUM7RUFDQyxlQUFBOztBQXZKSCxtQkEySkM7RUFDQyxjQUFBOztBQUVBLG1CQUhELDJCQUdFO0VBQ0EsU0FBQTs7QUFHRCxtQkFQRCwyQkFPRTtFQ2x5QkYsYUFBQTs7QURzeUJDLG1CQVhELDJCQVdFO0VDdHlCRixhQUFBOztBRHN5QkMsbUJBWEQsMkJBV0UsTUFHQTtFQUNDLGNBQUE7O0FBSUYsbUJBbkJELDJCQW1CRTtFQUNBLG9CQUFBOztBQUVBLG1CQXRCRiwyQkFtQkUsUUFHQztFQUNBLFNBQVEsT0FBUjtFQUNBLGFBQVksVUFBWjtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxXQUFBO0VBQ0EscUJBQUE7RUFDQSx3QkFBQTtFQUVBLGtCQUFBO0VBQ0Esd0JBQUE7RUFDQSxvQkFBQTtFQUNBLG9CQUFBO0VBQ0EsMkJBQUE7RUFDQSxtQ0FBQTtFQUNBLGtDQUFBO0VBQ0EsMENBQUE7RUFDQSx1Q0FBQTtFQUNBLGtDQUFBO0VBQ0EsZUFBQTtFQUNBLGNBQUE7RUMzckJILFVBQUE7RUFDQSxXQUFBO0VBQ0EsdUJBQUE7RUFDQSxrQkFBQTtFQUNBLE9BQUE7RUFDQSxRQUFBO0VBQ0EsTUFBQTtFQUNBLFNBQUE7O0FEMnJCRDtFQ3AwQkMsa0JBQUE7O0FEbzBCRCxpQkFHQztFQUNDLHFCQUFBO0VBQ0EsZ0JBQUE7Ozs7O0FBVUY7RUFDQyxTQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtFQzEwQkEsZ0JBQUE7O0FEdTBCRCwwQkFNQztFQUNDLFdBQUE7RUFDQSxrQkFBQTtFQUNBLE9BQUE7RUFDQSxNQUFBO0VDNzFCRCxrQkFBQTs7QURtMUJELDBCQU1DLDhCQU9DO0FBYkYsMEJBTUMsOEJBUUM7QUFkRiwwQkFNQyw4QkFTQztFQUNDLHFCQUFBO0VBQ0Esa0JBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTs7QUFuQkgsMEJBdUJDO0VBQ0MsVUFBQTtFQUNBLGtCQUFBO0VDNTNCRCxXQUFBO0VBNEJBLGdCQUFBOztBRHUwQkQsMEJBOEJDO0VBQ0Msa0JBQUE7RUN0MkJELGdCQUFBOztBRHUwQkQsMEJBbUNDO0VBQ0MsY0FBQTtFQUNBLGVBQUE7RUFDQSxrQkFBQTtFQ3ozQkQsa0JBQUE7O0FEbTFCRCwwQkFtQ0MsMEJBTUM7RUFDQyxxQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTs7QUE3Q0gsMEJBaURDO0VBQ0MsY0FBQTtFQUNBLGtCQUFBO0VDMTNCRCxnQkFBQTs7QUR1MEJELDBCQWlEQywyQkFLQztFQUNDLGNBQUE7RUFDQSxXQUFBO0VBQ0EscUJBQUE7RUFDQSxrQkFBQTtFQzc0QkYsa0JBQUE7RUFoQkEsV0FBQTs7QURpNkJFLDBCQWJGLDJCQUtDLDBCQVFFO0VBQ0EsZ0JBQUE7O0FBL0RKLDBCQW9FQztFQUNDLFVBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0VDdDZCRCxZQUFBO0VBd0JBLGdCQUFBOztBRHUwQkQsMEJBb0VDLGlDQU9DO0VBQ0Msd0JBQUE7O0FBNUVILDBCQW9FQyxpQ0FXQyxNQUFLO0VBQ0osY0FBQTs7QUFoRkgsMEJBb0VDLGlDQWVDO0VBQ0MsZUFBQTs7QUFwRkgsMEJBb0VDLGlDQWVDLGlCQUdDO0VBQ0MsY0FBQTtFQUNBLFVBQUE7RUFDQSxrQkFBQTtFQUNBLE9BQUE7RUFDQSxRQUFBO0VBQ0EsTUFBQTtFQUNBLFNBQUE7O0FBN0ZKLDBCQW9FQyxpQ0E2QkM7QUFqR0YsMEJBb0VDLGlDQThCQztFQUNDLGNBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxPQUFBO0VBQ0EsUUFBQTtFQUNBLE1BQUE7RUFDQSxTQUFBOztBQXpHSCwwQkE2R0M7RUFDQyxVQUFBO0VDcjdCRCxnQkFBQTs7QUR1MEJELDBCQWtIQztFQUNDLFNBQUE7O0FBbkhGLDBCQXNIQztFQUNDLGdCQUFBO0VBQ0Esa0JBQUE7RUMvN0JELGdCQUFBOztBRHUwQkQsMEJBNEhDO0VBQ0MsZ0JBQUE7O0FBN0hGLDBCQWdJQztFQUNDLFNBQUE7RUFDQSxVQUFBOztBQWxJRiwwQkFnSUMsT0FJQztFQUNDLHNCQUFBOztBQXJJSCwwQkFnSUMsT0FRQztFQUNDLHFCQUFBO0VBQ0Esc0JBQUE7O0FBMUlILDBCQThJQztFQUNDLGlCQUFBO0VBQ0Esa0JBQUE7RUN2OUJELGdCQUFBOztBRHUwQkQsMEJBb0pDO0VBQ0MsaUJBQUE7RUFDQSxrQkFBQTtFQzc5QkQsZ0JBQUE7O0FEdTBCRCwwQkFvSkMsTUFLQyxVQ3RrQ0YsTUFBSyxJQUFJLGVBQ0YsSUFBSSxpQkFFTCxJQUFJLGFBQWEsSUFDcEIsZUFBZSxJQUFJLGNBQ2YsSUFBSSxjQUFjLElBQUksY0FDaEIsSUFBSSxlQUNSLElBQUksY0FDWCxJQUFJO0VEZ2tDRixZQUFBOztBQTNKSiwwQkFvSkMsTUFXQztFQUNDLGlCQUFBO0VBQ0Esc0JBQUE7RUFDQSxpQkFBQTs7QUFsS0gsMEJBc0tDO0VBQ0MsaUJBQUE7RUFDQSxrQkFBQTtFQy8rQkQsZ0JBQUE7O0FEdTBCRCwwQkFzS0MsY0FLQztFQUNDLGNBQUE7O0FBNUtILDBCQWdMQyxrQ0FDQyxHQUNDO0VBQ0Msa0JBQUE7O0FBTUosZ0JBQWdCO0VBQ2YsZ0JBQUE7RUNqZ0NBLGdCQUFBOztBRGdnQ0QsZ0JBQWdCLG9CQUlmO0VBQ0MsZUFBQTtFQ3JoQ0QsZ0JBQUE7O0FEZ2hDRCxnQkFBZ0Isb0JBU2YsMkJBQ0M7RUFDQyxvQkFBQTs7QUFYSCxnQkFBZ0Isb0JBZWYsc0JBQ0M7RUNwaUNELGFBQUE7O0FEb2hDRCxnQkFBZ0Isb0JBcUJmO0VBQ0MsaUJBQUE7O0FBT0MsZ0JBRkYsTUFDQyxHQUNFLFlBQ0E7QUFERCxnQkFGRixNQUNDLEdBQ0UsWUFFQTtFQ2xoQ0gsbUJBQUE7RUFDQSx1QkFBQTs7QURzaENFLGdCQVRGLE1BQ0MsR0FRRSxXQUNBO0FBREQsZ0JBVEYsTUFDQyxHQVFFLFdBRUE7RUNwaENILHNCQUFBO0VBQ0EsMEJBQUE7O0FEMGhDRyxnQkFsQkgsTUFDQyxHQWVDLEdBRUU7QUFBRCxnQkFsQkgsTUFDQyxHQWdCQyxHQUNFO0VDamhDSixvQkFBQTtFQUNBLHdCQUFBOztBRG9oQ0csZ0JBdEJILE1BQ0MsR0FlQyxHQU1FO0FBQUQsZ0JBdEJILE1BQ0MsR0FnQkMsR0FLRTtFQzFoQ0oscUJBQUE7RUFDQSx5QkFBQTs7QURrZ0NELGdCQUNDLE1BNEJDO0VBQ0MsWUFBQTtFQUNBLHVCQUFBOztBQS9CSCxnQkFDQyxNQWlDQztFQUNDLGNBQUE7O0FBbkNILGdCQXVDQztFQUNDLFNBQUE7RUFDQSxVQUFBOztBQUlGO0VBQ0MsU0FBQTtFQUNBLFVBQUE7O0FBRkQsd0JBSUM7RUFDQyxrQkFBQTs7QUFMRix3QkFRQztFQUNDLHFCQUFBO0VBQ0Esc0JBQUE7RUFDQSxxQkFBQTs7QUFYRix3QkFjQyxhQUNDO0VBQ0MsZUFBQTtFQ3JrQ0Ysd0JBQUE7RUFDQSwwQkFBQTs7QURvakNELHdCQWNDLGFBQ0MsU0FJQztFQUNDLGtCQUFBOztBQXBCSix3QkFjQyxhQUNDLFNBUUM7RUFDQyxnQkFBQTtFQUNBLG1CQUFBOztBQXpCSix3QkFjQyxhQUNDLFNBUUMsbUNBSUM7RUFDQyxlQUFBO0VBQ0Esd0JBQUE7O0FBN0JMLHdCQWNDLGFBQ0MsU0FRQyxtQ0FTQywrQkFDQyxnQ0FBK0I7RUFDOUIsU0FBUSxHQUFSO0VBQ0EsbUJBQUE7O0FBbkNOLHdCQWNDLGFBQ0MsU0FRQyxtQ0FnQkMsOEJBQ0MsZUFBYztFQUNiLFNBQVEsR0FBUjtFQUNBLGFBQUE7O0FBMUNOLHdCQWNDLGFBQ0MsU0FRQyxtQ0F1QkMsYUFDQztFQUNDLHNCQUFBOztBQWhETix3QkFjQyxhQUNDLFNBUUMsbUNBNkJDO0VDcmdDSCxXQUFBO0VBQ0EsWUFBQTtFQUNBLHVCQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0VBQ0EsUUFBQTtFQUNBLE1BQUE7RUFDQSxTQUFBOztBRDA4QkQsd0JBY0MsYUFDQyxTQVFDLG1DQTZCQyx3QkFHQztFQUNDLGNBQUE7O0FBUU4sT0FBTztFQUNOLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtFQzduQ0EscUJBQUE7RUFDQSx1QkFBQTtFQWRBLGdCQUFBOztBRHVvQ0QsT0FBTyxTQU9OO0VBQ0MsU0FBQTtFQUNBLGlCQUFBOztBQUlGO0VBQ0MsZUFBQTs7Ozs7QUFTRDtFQUNDLGlCQUFBO0VBQ0EseUJBQUE7RUFDQSxXQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTs7QUFFQSxXQUFDO0VBQ0EsaUJBQUE7O0FBR0QsV0FBQztFQUNBLGlCQUFBOztBQUlBLFdBREEsY0FBZSxHQUNkLGdDQUNBO0VBQ0MsZ0JBQUE7O0FBRUEsV0FMRixjQUFlLEdBQ2QsZ0NBQ0EsR0FHRTtFQUNBLFNBQUE7O0FBTEgsV0FEQSxjQUFlLEdBQ2QsZ0NBU0E7RUFDQyxVQUFBOztBQUVBLFdBYkYsY0FBZSxHQUNkLGdDQVNBLEdBR0U7RUFDQSxhQUFBOztBQWJILFdBREEsY0FBZSxHQUNkLGdDQVNBLEdBT0M7QUFoQkYsV0FEQSxjQUFlLEdBQ2QsZ0NBU0EsR0FRQztFQUNDLHFCQUFBO0VBQ0Esc0JBQUE7O0FBRUEsV0F0QkgsY0FBZSxHQUNkLGdDQVNBLEdBT0MsU0FLRTtBQUFELFdBdEJILGNBQWUsR0FDZCxnQ0FTQSxHQVFDLElBSUU7RUFDQSxpQkFBQTs7QUF0QkosV0FEQSxjQUFlLEdBQ2QsZ0NBU0EsR0FpQkM7RUFDQyxtQkFBQTtFQUNBLFdBQUE7O0FBNUNMLFdBa0RDO0FBbERELFdBbURDO0VBQ0MsV0FBQTtFQUNBLGtCQUFBO0VDbnRDRCxnQkFBQTs7QUQ4cENELFdBeURDO0FBekRELFdBMERDO0VBQ0Msc0JBQUE7RUFDQSxrQkFBQTtFQzF1Q0QsZ0JBQUE7RUFnQkEsZ0JBQUE7O0FEOHBDRCxXQWlFQztFQUNDLFdBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBOztBQXBFRixXQXVFQztFQUNDLFdBQUE7RUFDQSxlQUFBO0VBQ0EsbUJBQUE7O0FBMUVGLFdBdUVDLG1CQUtDO0VBQ0MscUJBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQ2htQ0YsNEJBQUE7RUFDQSxvQkFBQTs7QURnaENELFdBb0ZDO0VBQ0MsYUFBQTs7QUFyRkYsV0F3RkM7RUFDQyxhQUFBOztBQXpGRixXQTRGQyxrQkNoMkNELE1BQUssSUFBSSxlQUNGLElBQUksaUJBRUwsSUFBSSxhQUFhLElBQ3BCLGVBQWUsSUFBSSxjQUNmLElBQUksY0FBYyxJQUFJLGNBQ2hCLElBQUksZUFDUixJQUFJLGNBQ1gsSUFBSTtFQTJPTCwwQkFBQTtFQUNBLGtCQUFBOztBRGdoQ0QsV0FrR0M7RUFDQyxhQUFBOztBQW5HRixXQXNHQztFQzV3Q0EsaUJBQUE7O0FEc3FDRCxXQXNHQyxTQUdDO0VBQ0Msa0JBQUE7RUNweUNGLFdBQUE7RUE0QkEsZ0JBQUE7O0FEOHBDRCxXQXNHQyxTQUdDLFFBS0M7RUNoeUNGLGFBQUE7O0FEa3JDRCxXQXNHQyxTQWFDO0VBQ0MsWUFBQTtFQUNBLG1CQUFBO0VBQ0Esc0JBQUE7O0FBS0g7RUFDQyxtQkFBQTs7QUFHRDtFQUNDLGtCQUFBO0VDOXhDQSxnQkFBQTs7QUQ2eENELFlBSUM7RUFDQyxrQkFBQTs7QUFMRixZQVFDO0VBQ0MsaUJBQUE7RUFDQSx5QkFBQTtFQUNBLFVBQUE7RUFDQSxrQkFBQTtFQ3p5Q0QsZ0JBQUE7O0FENnhDRCxZQVFDLE1BT0M7RUFDQyxXQUFBO0VBQ0Esa0JBQUE7RUM5eUNGLGdCQUFBOztBRDZ4Q0QsWUFRQyxNQWFDO0FBckJGLFlBUUMsTUFjQztFQUNDLHNCQUFBO0VBQ0Esa0JBQUE7RUNyMENGLGdCQUFBO0VBa0NBLHdCQUFBO0VBQ0EsMEJBQUE7RUFuQkEsZ0JBQUE7O0FENnhDRCxZQVFDLE1Bc0JDO0VBQ0MsVUFBQTs7QUEvQkgsWUFRQyxNQTBCQztFQUNDLFVBQUE7RUN4MENGLGlCQUFBOztBRHF5Q0QsWUFRQyxNQStCQyxNQUFLO0FBdkNQLFlBUUMsTUFnQ0MsTUFBSztFQUNKLFVBQUE7RUFDQSxRQUFBO0VDLzFDRixZQUFBOztBRHF6Q0QsWUFRQyxNQStCQyxNQUFLLGlCQU1KO0FBN0NILFlBUUMsTUFnQ0MsTUFBSyxjQUtKO0VBQ0MsZUFBQTtFQUNBLG1CQUFBO0VDcDJDSCxZQUFBOztBRHUyQ0csWUExQ0gsTUErQkMsTUFBSyxpQkFNSixRQUtFO0FBQUQsWUExQ0gsTUFnQ0MsTUFBSyxjQUtKLFFBS0U7RUFDQSxVQUFBO0VBQ0EsUUFBQTs7QUFPRCxZQW5ESCxNQWlEQyxNQUFLLGlCQUNKLFFBQ0U7RUFDQSxVQUFBO0VBQ0EsVUFBQTs7QUFPRCxZQTVESCxNQTBEQyxNQUFLLGNBQ0osUUFDRTtFQUNBLFVBQUE7RUFDQSxVQUFBOztBQU9MO0VBQ0MsaUJBQUE7RUFDQSxrQkFBQTtFQzUyQ0EsZ0JBQUE7O0FEMDJDRCxnQ0FLQztFQUNDLFNBQUE7RUFDQSxVQUFBOztBQUlGO0VBQ0Msb0JBQUE7O0FBREQseUJBR0M7RUFDQyxZQUFBO0VBQ0EsY0FBQTtFQzkzQ0QsV0FBQTs7QUR5M0NELHlCQVNDO0VBQ0MsaUJBQUE7O0FBSUY7RUFDQyxpQkFBQTtFQUNBLGtCQUFBO0VDcjRDQSxnQkFBQTs7QURtNENELHVCQUtDO0VBQ0MscUJBQUE7RUFDQSxTQUFBOztBQVBGLHVCQUtDLHlCQUlDO0VBQ0MscUJBQUE7RUFDQSxjQUFBOztBQVhILHVCQUtDLHlCQVNDO0VBQ0MsU0FBQTtFQUNBLFVBQUE7O0FBaEJILHVCQUtDLHlCQVNDLGlDQUlDO0VBQ0MsYUFBQTs7QUFHRCx1QkFqQkYseUJBU0MsaUNBUUU7RUFDQSxTQUFRLE9BQVI7RUFDQSxxQkFBQTs7QUFHRCx1QkF0QkYseUJBU0MsaUNBYUU7RUFDQSxTQUFRLHVCQUFSO0VBQ0EscUJBQUE7RUFDQSxnQkFBQTs7Ozs7QUFZSjtFQUNDLG9CQUFBO0VBQ0Esa0JBQUE7RUMvNkNBLGdCQUFBOztBRDY2Q0QsZ0JBS0MsRUFBQyxJQUFJO0VBQ0osWUFBQTtFQUNBLGNBQUE7O0FBUEYsZ0JBVUM7QUFWRCxnQkFXQyxPQUFNO0VBQ0wsV0FBQTtFQUNBLGVBQUE7O0FBYkYsZ0JBZ0JDLE9BQU07RUFDTCxpQkFBQTs7QUFJRixJQUFLLG1CQUNKO0FBQ0EsSUFGSSxtQkFFSCxtQkFBb0I7RUFDcEIseUJBQUE7O0FBTUEsSUFERCxtQkFDRSx3QkFFQTtBQURELElBRkQsbUJBRUUseUJBQ0E7RUNoMENGLDJCQUFBO0VBQ0EsbUJBQUE7O0FENnpDQyxJQURELG1CQUNFLHdCQU1BO0FBTEQsSUFGRCxtQkFFRSx5QkFLQTtFQ3A4Q0YscUJBQUE7RUFDQSx1QkFBQTs7QUQ2N0NDLElBREQsbUJBQ0Usd0JBVUE7QUFURCxJQUZELG1CQUVFLHlCQVNBO0VDbjhDRix3QkFBQTtFQUNBLDBCQUFBOztBRHM3Q0QsSUFDQyxtQkFnQkM7RUFDQyxZQUFBO0VBQ0EsMEJBQUE7RUFDQSxzQkFBcUIsNkJBQXJCO0VBQ0EsZ0NBQUE7RUFDQSw0QkFBQTtFQ2wxQ0YsMkJBQUE7RUFDQSxtQkFBQTs7QUQyekNELElBQ0MsbUJBZ0JDLDJCQVFDO0VDdC9DRixhQUFBOztBRDY5Q0QsSUFDQyxtQkFnQkMsMkJBWUM7RUFDQyxpQkFBQTtFQUNBLFVBQUE7O0FBL0JKLElBb0NDO0VDaDJDQSx3QkFBQTtFQUNBLGdCQUFBOztBRDJ6Q0QsSUFvQ0Msa0JBR0MsaUJBQ0M7RUFDQyx5QkFBQTs7QUFFQSxJQVBILGtCQUdDLGlCQUNDLHlCQUdFO0VBQ0EseUJBQUE7O0FBR0QsSUFYSCxrQkFHQyxpQkFDQyx5QkFPRTtFQUNBLGFBQUE7O0FBT0wsSUFBSyxpQkFDSjtFQUNDLGNBQUE7O0FBRUEsSUFKRyxpQkFDSixHQUdFO0VBQ0EsYUFBQTs7QUFLSCxJQUFLO0VBQ0osb0JBQUE7O0FBREQsSUFBSyxnQkFHSjtFQUNDLGlDQUFBO0VBQ0EsdUJBQUE7O0FBSUY7RUFDQyxrQkFBQTtFQ3BoREEsZ0JBQUE7O0FEd2hERDtBQUNBO0FBQ0E7RUFDQyxlQUFBO0VBQ0Esa0JBQUE7RUM1aERBLGdCQUFBOztBRCtoREEsOEJBQUM7QUFBRCwyQkFBQztBQUFELDRCQUFDO0VDejdDRCxTQUFRLEdBQVI7RUFDQSxjQUFBO0VBQ0EsV0FBQTtFQUNBLFNBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBOztBRDY2Q0QsOEJBV0M7QUFWRCwyQkFVQztBQVRELDRCQVNDO0VBQ0MsaUJBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VDdGlERCxnQkFBQTs7QUR3aERELDhCQVdDLEtBTUM7QUFoQkYsMkJBVUMsS0FNQztBQWZGLDRCQVNDLEtBTUM7RUFDQyxlQUFBOztBQWxCSCw4QkFzQkM7QUFyQkQsMkJBcUJDO0FBcEJELDRCQW9CQztFQzlpREEsZ0JBQUE7O0FEbWpERDtFQUNDLGFBQUE7RUFDQSxrQkFBQTtFQ3JqREEsZ0JBQUE7RUFRQSxpQkFBQTtFQUNBLG1CQUFBOztBRDBpREQsNkJBTUM7RUFDQyxnQkFBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUM3akRELGdCQUFBOztBRG1qREQsNkJBTUMsaUJBT0M7RUFDQyxpQkFBQTtFQUNBLGtCQUFBO0VDbGtERixnQkFBQTs7QURxa0RFLDZCQVpGLGlCQU9DLEdBS0U7RUFDQSxVQUFBOztBQUdELDZCQWhCRixpQkFPQyxHQVNFO0VBQ0EsYUFBQTs7QUFHRCw2QkFwQkYsaUJBT0MsR0FhRTtFQUNBLFNBQUE7RUFDQSxhQUFBOztBQTVCSiw2QkFNQyxpQkEwQkM7RUFDQyxxQkFBQTtFQUNBLFdBQUE7O0FBbENILDZCQU1DLGlCQTBCQyxNQUlDO0VDM21ERixhQUFBOztBRHVrREQsNkJBTUMsaUJBbUNDO0VBQ0MsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VDdmxERixpQkFBQTtFQUNBLG1CQUFBO0VBYkEsV0FBQTs7QUR1bURFLDZCQTFDRixpQkFtQ0MsYUFPRTtBQUNELDZCQTNDRixpQkFtQ0MsYUFRRTtFQUNBLFNBQVEsRUFBUjtFQUNBLG1DQUFBO0VBQ0Esb0NBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7RUN2bERILHlCQUFBO0VBQ0EsMEJBQUE7O0FEMGxERSw2QkFwREYsaUJBbUNDLGFBaUJFO0VBQ0EsVUFBQTs7QUFHRCw2QkF4REYsaUJBbUNDLGFBcUJFO0VBQ0EsVUFBQTs7QUEvREosNkJBTUMsaUJBbUNDLGFBeUJDO0VBQ0MsU0FBQTtFQUNBLFVBQUE7O0FBcEVKLDZCQXlFQztFQUNDLGlCQUFBO0VBQ0Esa0JBQUE7RUM5bkRELGdCQUFBOztBRG1qREQsNkJBeUVDLDBDQUtDO0VBQ0MscUJBQUE7RUFDQSxXQUFBO0VBQ0Esc0JBQUE7O0FBakZILDZCQXlFQywwQ0FXQztFQUNDLFdBQUE7RUFDQSxVQUFBO0VBQ0Esd0JBQUE7RUFDQSxjQUFBO0VDM29ERixnQkFBQTs7QURtakRELDZCQXlFQywwQ0FXQyxVQU9DO0VBQ0MsY0FBQTs7QUE1RkosNkJBeUVDLDBDQVdDLFVBV0M7RUFDQyxxQkFBQTtFQUNBLHNCQUFBO0VBQ0Esa0JBQUE7O0FBbEdKLDZCQXlFQywwQ0FXQyxVQVdDLE1BS0M7RUFDQyxlQUFBOztBQXJHTCw2QkF5RUMsMENBV0MsVUFxQkM7RUFDQyxxQkFBQTtFQUNBLHNCQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0VDL21ESCxVQUFBOztBRHNuREQ7RUFDQyxpQkFBQTs7QUFHRDtFQUNDLHFCQUFBO0VBQ0EsZUFBQTtFQUNBLDJCQUFBO0VBQ0EsNEJBQUE7O0FBSkQsaUNBTUM7RUFDQyxXQUFBOzs7OztBQVVGLEVBQUU7RUFDRCxnQkFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0Esc0JBQUE7RUM1b0RBLHFCQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtFQUNBLGFBQUE7RUF4REEsZ0JBQUE7RUFRQSxpQkFBQTtFQUNBLG1CQUFBOztBRG1yREQsRUFBRSxjQVVEO0VBQ0MsV0FBQTtFQUNBLFNBQUE7RUFDQSx1QkFBQTtFQUNBLGtCQUFBO0VDMXNERCxnQkFBQTs7QUQ2c0RDLEVBakJBLGNBVUQsR0FPRTtFQUNBLGFBQUE7O0FBbEJILEVBQUUsY0FVRCxHQVdDO0VBQ0MsY0FBQTtFQUNBLHdCQUFBO0VBQ0EsdUJBQUE7O0FBS0gsaUJBQWlCLDJCQUE0QixhQUFhO0VBQ3pELGlCQUFBOzs7OztBQVNEO0VDdnZEQyxhQUFBOztBRHV2REQsNEJBR0M7RUFDQyxxQkFBQTtFQUNBLGVBQUE7RUFDQSxpQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0Esc0JBQUE7RUFDQSxrQkFBQTtFQzd2REQsZ0JBQUE7O0FEZ3dEQyw0QkFWRCxZQVVFO0VBQ0EsU0FBQTtFQUNBLHNCQUFBOztBQUdELDRCQWZELFlBZUU7RUN0b0RGLFNBQVEsRUFBUjtFQUNBLHFCQUFBO0VBQ0Esc0JBQUE7RUFDQSxZQUFBOztBRGluREQsNEJBdUJDO0VBQ0MsY0FBQTtFQUNBLGlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQ2puREQsMEJBQUE7RUFDQSxrQkFBQTtFQTFKQSxrQkFBQTtFQWtJQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLHVCQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtFQUNBLFNBQUE7RUFDQSxZQUFBOztBRHdvREQ7RUFDQyxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtFQ2h5REEsWUFBQTs7QURteURBLHVCQUF3QjtFQUN2QixXQUFBO0VBQ0EscUJBQUE7O0FBR0QsV0FBWTtFQUNYLGtCQUFBOztBQUdELDZCQUFDO0VDcnFERCxTQUFRLEVBQVI7RUFDQSxxQkFBQTtFQUNBLHNCQUFBO0VBQ0EsWUFBQTs7QUR1cUREO0VBQ0MscUJBQUE7RUFDQSxzQkFBQTtFQUNBLGtCQUFBO0VBQ0EscUJBQUE7O0FBR0MsS0FBTSx5QkFEUDtFQUVFLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFFBQUE7RUFDQSxTQUFBOztBQVhILHdCQWVDO0VBQ0MsWUFBQTtFQUNBLGNBQUE7RUFDQSxjQUFBO0VDOXBERCwyQkFBQTtFQUNBLG1CQUFBOztBRDJvREQsd0JBZUMsZ0NBTUM7RUFDQyxxQkFBQTtFQUNBLGVBQUE7RUFDQSxpQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0Esc0JBQUE7RUFDQSxrQkFBQTtFQ3IwREYsZ0JBQUE7O0FEdzBERSx3QkFoQkYsZ0NBTUMsWUFVRTtFQUNBLFNBQUE7RUFDQSxzQkFBQTs7QUFHRCx3QkFyQkYsZ0NBTUMsWUFlRTtFQzlzREgsU0FBUSxFQUFSO0VBQ0EscUJBQUE7RUFDQSxzQkFBQTtFQUNBLFlBQUE7O0FEZ3REQyx3QkExQkQsZ0NBMEJFO0VBQ0EsU0FBQTtFQzdzREYsVUFBQTtFQUNBLFdBQUE7RUFDQSx1QkFBQTtFQUNBLGtCQUFBO0VBQ0EsT0FBQTtFQUNBLFFBQUE7RUFDQSxNQUFBO0VBQ0EsU0FBQTs7QUQ0cERELHdCQWVDLGdDQStCQztFQUNDLGNBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7RUM5ckRGLDBCQUFBO0VBQ0Esa0JBQUE7RUExSkEsa0JBQUE7RUFrSUEsV0FBQTtFQUNBLFlBQUE7RUFDQSx1QkFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7RUFDQSxTQUFBO0VBQ0EsWUFBQTs7QUQ0cERELHdCQXlEQztFQUNDLFlBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0VDbDFERCxpQkFBQTtFQUNBLG9CQUFBO0VBb0lBLDJCQUFBO0VBQ0EsbUJBQUE7RUQrc0RDLGFBQUE7RUM1eURELFVBQUE7O0FEK3lEQyx3QkFkRCw4QkFjRTtFQUNBLFNBQVEsRUFBUjtFQUNBLGNBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBO0VBQ0EsT0FBQTtFQUNBLFVBQUE7O0FBOUVILHdCQXlEQyw4QkF3QkM7RUFDQyxlQUFBOztBQWxGSCx3QkF5REMsOEJBNEJDO0VBQ0MsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLFNBQUE7RUFDQSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTs7QUEzRkgsd0JBeURDLDhCQTRCQyxXQVFDO0VBQ0MsZ0JBQUE7RUFDQSxnQkFBQTtFQUNBLHNCQUFBO0VBQ0Esa0JBQUE7RUMxM0RILGdCQUFBOztBRDYzREcsd0JBM0NILDhCQTRCQyxXQVFDLEdBT0U7RUFDQSxhQUFBOztBQUdELHdCQS9DSCw4QkE0QkMsV0FRQyxHQVdFO0VBQ0EsU0FBQTs7QUFHRCx3QkFuREgsOEJBNEJDLFdBUUMsR0FlRTtFQUNBLGVBQUE7RUFDQSxlQUFBOztBQTlHTCx3QkF5REMsOEJBNEJDLFdBNkJDO0VBQ0MsY0FBQTs7QUFuSEosd0JBeURDLDhCQTRCQyxXQWlDQztFQUNDLHFCQUFBO0VDMXhESCxXQUFBO0VBQ0EsWUFBQTtFQUNBLHVCQUFBO0VBQ0Esa0JBQUE7RUFDQSxPQUFBO0VBQ0EsV0FBQTtFQUNBLE1BQUE7RUFDQSxZQUFBO0VBZ0JBLDBCQUFBO0VBQ0Esa0JBQUE7O0FEMm9ERCx3QkF5REMsOEJBNEJDLFdBdUNDO0VBQ0MsY0FBQTs7QUE3SEosd0JBeURDLDhCQTRCQyxXQXVDQyxVQUdDO0VBQ0MscUJBQUE7RUFDQSxjQUFBOztBQWpJTCx3QkF5REMsOEJBNEJDLFdBdUNDLFVBUUM7RUFDQyxtQkFBQTs7QUFySUwsd0JBeURDLDhCQWlGQztFQUNDLG9CQUFBO0VBQ0Esa0JBQUE7RUNyNkRGLGdCQUFBOztBRHl4REQsd0JBeURDLDhCQWlGQyxPQUtDO0VBQ0MsaUJBQUE7O0FBaEpKLHdCQXlEQyw4QkEyRkM7RUFDQyxhQUFBO0VBQ0Esb0JBQUE7RUFDQSxrQkFBQTtFQ2g3REYsZ0JBQUE7O0FEeXhERCx3QkF5REMsOEJBMkZDLFNBTUM7RUFDQyxVQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7RUNsOURILFdBQUE7O0FEcXpERCx3QkF5REMsOEJBMkZDLFNBYUM7RUFDQyxZQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTs7QUFLSCx3QkFBQyxNQUFPO0FBMUtULHdCQTJLQyxnQ0FBK0IsTUFBTztBQTNLdkMsd0JBNEtDLDhCQUE2QjtFQUM1QixtQkFBQTtFQUNBLGdCQUFBO0VDdDVERCxVQUFBOztBRDQ1REQ7RUFDQyxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7RUFDQSxhQUFBO0VDdDlEQSxnQkFBQTtFQWlEQSxVQUFBOztBRDQ1REQsOEJBYUM7RUFDQyxXQUFBO0VBQ0EsWUFBQTtFQ3gvREQsV0FBQTs7QUR5K0RELDhCQW1CQztFQUNDLGNBQUE7RUFDQSx5QkFBQTtFQ2wrREQsZ0JBQUE7Ozs7O0FENitERCxPQUFPLFlBQWE7RUFDbkIsaUJBQUE7O0FBREQsT0FBTyxZQUFhLE9BR25CO0VBQ0MsaUJBQUE7OztBQU1GO0VBQ0Msa0JBQUE7OztBQUtELG1CQUdDO0FBRkQsMkJBRUM7QUFERCwwQkFDQztFQUNDLFNBQUE7RUFDQSxVQUFBOztBQUxGLG1CQUdDLEdBSUM7QUFORiwyQkFFQyxHQUlDO0FBTEYsMEJBQ0MsR0FJQztFQUNDLGdCQUFBO0VBQ0EscUJBQUE7O0FBVEgsbUJBR0MsR0FTQztBQVhGLDJCQUVDLEdBU0M7QUFWRiwwQkFDQyxHQVNDO0VBQ0MsU0FBQTtFQUNBLGNBQUE7O0FBRUEsbUJBYkYsR0FTQyxHQUlFO0FBQUQsMkJBYkYsR0FTQyxHQUlFO0FBQUQsMEJBYkYsR0FTQyxHQUlFO0VBQ0EsYUFBQTs7QUFqQkosbUJBR0MsR0FTQyxHQVFDO0FBbkJILDJCQUVDLEdBU0MsR0FRQztBQWxCSCwwQkFDQyxHQVNDLEdBUUM7RUFDQyxhQUFBOzs7QUFRSixPQUNDO0VBQ0MsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLFVBQUE7RUFDQSxrQkFBQTtFQy9oRUQsZ0JBQUE7O0FEMGhFRCxPQUNDLHVCQU9DO0VBQ0MsZ0JBQUE7RUFDQSxnQkFBQTtFQUNBLHNCQUFBO0VBQ0Esa0JBQUE7RUN0aUVGLGdCQUFBOztBRHlpRUUsT0FkRix1QkFPQyxHQU9FO0VBQ0EsYUFBQTs7QUFoQkosT0FDQyx1QkFtQkM7RUFDQyxjQUFBOztBQXJCSCxPQUNDLHVCQXVCQztFQUNDLHFCQUFBO0VDNzdERixXQUFBO0VBQ0EsWUFBQTtFQUNBLHVCQUFBO0VBQ0Esa0JBQUE7RUFDQSxPQUFBO0VBQ0EsV0FBQTtFQUNBLFFBQUE7RUFDQSxZQUFBOztBRDY1REQsT0FDQyx1QkE0QkM7RUMza0VELGFBQUE7O0FEOGlFRCxPQUNDLHVCQWdDQztFQUNDLGFBQUE7O0FBbENILE9BQ0MsdUJBb0NDO0VBQ0MscUJBQUE7OztBQU9IO0VBQ0Msa0JBQUE7RUFDQSxxQkFBQTtFQ3prRUEsZ0JBQUE7O0FENmtFQyxLQUFNLHNCQURQO0VBRUUsa0JBQUE7RUFDQSxVQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7O0FBVkgscUJBY0M7RUFDQyxrQkFBQTtFQ3RsRUQsZ0JBQUE7O0FEdWtFRCxxQkFtQkM7RUFDQyxnQkFBQTtFQUNBLGlCQUFBO0VBQ0EsVUFBQTtFQzdsRUQsZ0JBQUE7O0FEdWtFRCxxQkFtQkMsV0FNQztFQUNDLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTtFQUNBLHNCQUFBO0VBQ0Esa0JBQUE7RUNybUVGLGdCQUFBOztBRHdtRUUscUJBZEYsV0FNQyxHQVFFO0VBQ0EsYUFBQTs7QUFHRCxxQkFsQkYsV0FNQyxHQVlFO0VBQ0EsZUFBQTtFQUNBLGVBQUE7O0FBdkNKLHFCQW1CQyxXQXdCQztFQUNDLGNBQUE7O0FBNUNILHFCQW1CQyxXQTRCQztFQUNDLHFCQUFBO0VDamdFRixXQUFBO0VBQ0EsWUFBQTtFQUNBLHVCQUFBO0VBQ0Esa0JBQUE7RUFDQSxPQUFBO0VBQ0EsV0FBQTtFQUNBLFFBQUE7RUFDQSxZQUFBOztBRDA4REQscUJBbUJDLFdBaUNDO0VBQ0MsY0FBQTs7QUFyREgscUJBbUJDLFdBaUNDLFVBR0M7RUFDQyxxQkFBQTtFQUNBLGNBQUE7O0FBekRKLHFCQW1CQyxXQWlDQyxVQVFDO0VBQ0MsbUJBQUE7O0FBN0RKLHFCQWtFQztFQUNDLGlCQUFBO0VBQ0Esa0JBQUE7RUMzb0VELGdCQUFBOztBRHVrRUQscUJBa0VDLE9BS0M7RUFDQyxrQkFBQTs7QUF4RUgscUJBNEVDO0VBQ0MsZUFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7RUN0cEVELGdCQUFBOztBRHVrRUQscUJBNEVDLFNBTUM7RUFDQyxxQkFBQTtFQUNBLHNCQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7RUFDQSxtQkFBQTtFQzFyRUYsV0FBQTs7QURnc0VELG9CQUNDO0VBQ0MsZ0JBQUE7O0FBRkYsb0JBS0M7RUFDQyxrQkFBQTtFQzFxRUQsZ0JBQUE7O0FEb3FFRCxvQkFVQztFQUNDLFdBQUE7RUFDQSxlQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBOztBQWRGLG9CQWlCQztFQUNDLFlBQUE7RUFDQSxrQkFBQTtFQUNBLE1BQUE7O0FBcEJGLG9CQXVCQztFQUNDLGNBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7RUFDQSxrQkFBQTtFQUNBLE9BQUE7RUFDQSxXQUFBO0VBQ0EsU0FBQTtFQ3RqRUQsMEJBQUE7RUFDQSxrQkFBQTs7QUR3akVDLG9CQVhELGtCQVdFO0VBQ0EsVUFBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTs7QUFyQ0gsb0JBeUNDO0VBQ0MsaUJBQUE7RUFDQSxrQkFBQTtFQy9zRUQsZ0JBQUE7O0FEb3FFRCxvQkF5Q0MscUJBS0M7RUMxdUVELFlBQUE7RUQ0dUVFLGVBQUE7O0FBaERILG9CQXlDQyxxQkFVQztFQUNDLGNBQUE7RUFDQSx3QkFBQTtFQ3p0RUYsZ0JBQUE7OztBRGl1RUQ7RUFDQyxrQkFBQTtFQ2x1RUEsZ0JBQUE7O0FEaXVFRCx5QkFJQztFQUNDLGdCQUFBO0VBQ0EscUJBQUE7RUFDQSxpQkFBQTs7QUFFQSx5QkFMRCxFQUtFO0VBQ0EsU0FBQTs7O0FBU0QscUJBREQsR0FDRTtFQUNBLGFBQUE7Ozs7O0FBV0g7QUFDQTtFQUNDLGtCQUFBO0VDbHdFQSxnQkFBQTs7O0FEeXdFRCxlQUNDLGFBQWE7QUFEZCxlQUVDLGdCQUFnQjtFQUNmLG1CQUFBOztBQUhGLGVBTUM7RUFDQyxpQkFBQTtFQUNBLGtCQUFBOztBQUlGO0FBQ0E7RUFDQyxlQUFBO0VBQ0Esa0JBQUE7RUN4eEVBLGdCQUFBOztBRDJ4RUEsTUFBQztBQUFELFNBQUM7RUNyckVELFNBQVEsR0FBUjtFQUNBLGNBQUE7RUFDQSxXQUFBO0VBQ0EsU0FBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7O0FEMHFFRCxNQVVDLE1BQUs7QUFUTixTQVNDLE1BQUs7RUFDSixxQkFBQTtFQUNBLFVBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7O0FBZEYsTUFVQyxNQUFLLE9BTUo7QUFmRixTQVNDLE1BQUssT0FNSjtFQUNDLHNCQUFBO0VBQ0EsZ0JBQUE7O0FBbEJILE1Bc0JDO0FBckJELFNBcUJDO0VBQ0MsWUFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7RUM5eUVELGdCQUFBOztBRHF4RUQsTUE2QkM7QUE1QkQsU0E0QkM7RUN0ekVBLFdBQUE7O0FEMnpFRDtFQUNDLGVBQUE7RUFDQSxrQkFBQTtFQ3p6RUEsZ0JBQUE7O0FENHpFQSxZQUFDO0VDdHRFRCxTQUFRLEdBQVI7RUFDQSxjQUFBO0VBQ0EsV0FBQTtFQUNBLFNBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBOztBRDRzRUQsWUFTQztFQUNDLGlCQUFBO0VBQ0Esa0JBQUE7RUNsMEVELGdCQUFBOzs7QUR5MEVEO0VBQ0MsZ0JBQUE7O0FBREQsaUNBR0M7RUFDQyxlQUFBOztBQUpGLGlDQUdDLEtBR0M7RUFDQyxxQkFBQTtFQUNBLG9CQUFBOztBQVJILGlDQUdDLEtBR0MsS0FJQztFQUNDLHFCQUFBO0VBQ0EsZUFBQTtFQUNBLGVBQUE7RUFDQSxrQkFBQTtFQy8wRUgsaUJBQUE7RUFDQSxtQkFBQTtFQW9JQSwyQkFBQTtFQUNBLG1CQUFBOztBRGl0RUQsOEJBQ0M7RUFDQyxlQUFBOztBQUZGLDhCQUtDO0VBQ0MsaUJBQUE7O0FBTkYsOEJBU0M7RUN4MkVBLGdCQUFBOztBRCsxRUQsOEJBYUMsRUFBQyxJQUFJO0VBQ0osWUFBQTtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQ24zRUQsV0FBQTs7Ozs7QUQ4M0VELElBQUksZUFDSCwwQkFBMEI7RUNodEV2QiwyQ0FBQTtFQUNBLHdDQUFBO0VBQ0EsdUNBQUE7RUFDQSxzQ0FBQTtFQUNBLG1DQUFBOztBRDJzRUosSUFBSSxlQUtILHdCQUF3QjtBQUx6QixJQUFJLGVBTUgsa0JBQWtCO0VDcnRFZiwwQ0FBQTtFQUNBLHVDQUFBO0VBQ0Esc0NBQUE7RUFDQSxxQ0FBQTtFQUNBLGtDQUFBOztBRDJzRUosSUFBSSxlQVVILFFBQU87QUFWUixJQUFJLGVBV0gsUUFBTztBQVhSLElBQUksZUFZSCx5QkFBeUI7RUMzdEV0QiwyRUFBQTtFQUNBLHdFQUFBO0VBQ0EsdUVBQUE7RUFDQSxzRUFBQTtFQUNBLG1FQUFBOztBRDJzRUosSUFBSSxlQWdCSCxrQ0FBa0MsS0FBSyxLQUFLO0VDL3RFekMseUdBQUE7RUFDQSxzR0FBQTtFQUNBLHFHQUFBO0VBQ0Esb0dBQUE7RUFDQSxpR0FBQTs7QUQyc0VKLElBQUksZUFvQkgsb0JBQW9CO0VDbnVFakIsdUVBQUE7RUFDQSxvRUFBQTtFQUNBLG1FQUFBO0VBQ0Esa0VBQUE7RUFDQSwrREFBQTs7QUQyc0VKLElBQUksZUF3QkgseUJBQXlCO0VDdnVFdEIsK0ZBQUE7RUFDQSw0RkFBQTtFQUNBLDJGQUFBO0VBQ0EsMEZBQUE7RUFDQSx1RkFBQTs7QUQyc0VKLElBQUksZUE0Qkgsb0JBQW9CLHdCQUF3QjtBQTVCN0MsSUFBSSxlQTZCSCxpQkFBaUIsUUFBTztBQTdCekIsSUFBSSxlQThCSCxhQUFhLFFBQU87QUE5QnJCLElBQUksZUErQkgsZ0JBQWdCLFFBQU87QUEvQnhCLElBQUksZUFnQ0gsc0NBQXNDLGdCQUFnQixPQUFNO0VDL3VFekQsd0NBQUE7RUFDQSxxQ0FBQTtFQUNBLG9DQUFBO0VBQ0EsbUNBQUE7RUFDQSxnQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHBhY2thZ2UgXHRXb3JkUHJlc3NcbiAqIEBzdWJwYWNrYWdlIFx0QWdyaWNvbGVcbiAqIEB2ZXJzaW9uIFx0MS4wLjJcbiAqIFxuICogV29vQ29tbWVyY2UgQ1NTIFJ1bGVzXG4gKiBDcmVhdGVkIGJ5IENNU01hc3RlcnNcbiAqIFxuICovXG5cblxuXG5AaW1wb3J0IFwiLi4vLi4vLi4vLi4vLi4vdGhlbWUtZnJhbWV3b3JrL3RoZW1lLXN0eWxlL2Nzcy9sZXNzL2dlbmVyYWwubGVzc1wiO1xuXG5AcHJlbG9hZGVyX3Byb2R1Y3RfcGFnZV9wYWQ6IDEwMCU7XG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEdsb2JhbCBTdHlsZXNcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIEljb25zICovXG4uY21zbWFzdGVyc19pY29uX2N1c3RvbV9iYXNrZXQ6YmVmb3JlIHtcblx0Y29udGVudDogJ1xcZThkNSc7XG5cdGZvbnQtZmFtaWx5Oidmb250ZWxsby1jdXN0b20nO1xufVxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9zdGFyX2VtcHR5OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4YWEnOyB9XG4uY21zbWFzdGVyc190aGVtZV9pY29uX3N0YXJfZnVsbDpiZWZvcmUgeyBjb250ZW50OiAnXFxlOGFhJzsgfVxuXG5cbi53b29jb21tZXJjZTphZnRlciB7XG5cdC5jbF9hZnRlcjtcbn1cblxuLndvb2NvbW1lcmNlLXN0b3JlLW5vdGljZSB7XG5cdGRpc3BsYXk6YmxvY2s7XG5cdHdpZHRoOjEwMCU7XG5cdG1hcmdpbjowO1xuXHRwYWRkaW5nOjEwcHggNTBweCAxMHB4IDIwcHg7XG5cdHBvc2l0aW9uOmZpeGVkO1xuXHRsZWZ0OjA7XG5cdGJvdHRvbTowO1xuXHR6LWluZGV4Ojk5OTk5O1xuXHRcblx0cCB7XG5cdFx0bWFyZ2luOjA7XG5cdFx0cGFkZGluZzowO1xuXHRcdFxuXHRcdGEge1xuXHRcdFx0Lm9wKC44KTtcblx0XHRcdFxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdC5vcCgxKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdC53b29jb21tZXJjZS1zdG9yZS1ub3RpY2VfX2Rpc21pc3MtbGluayB7XG5cdFx0Zm9udC1zaXplOjEzcHg7XG5cdFx0bGluZS1oZWlnaHQ6MWVtO1xuXHRcdHdpZHRoOjIwcHg7XG5cdFx0aGVpZ2h0OjIwcHg7XG5cdFx0bWFyZ2luOmF1dG87XG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0bGVmdDphdXRvO1xuXHRcdHJpZ2h0OjIwcHg7XG5cdFx0dG9wOjA7XG5cdFx0Ym90dG9tOjA7XG5cdFx0XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0LnBvc19hYnM7XG5cdFx0fVxuXHRcdFxuXHRcdCY6aG92ZXIge1xuXHRcdFx0Lm9wKC44KTtcblx0XHR9XG5cdH1cbn1cblxuLnByb2R1Y3QgLnByZWxvYWRlciB7XG5cdHBhZGRpbmctYm90dG9tOkBwcmVsb2FkZXJfcHJvZHVjdF9wYWdlX3BhZDtcblx0XG5cdGltZyB7XG5cdFx0aW1hZ2UtcmVuZGVyaW5nOmF1dG87XG5cdFx0d2lkdGg6MTAwJTtcblx0XHRtaW4td2lkdGg6MTAwJTtcblx0XHRoZWlnaHQ6MTAwJTtcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0XHRsZWZ0OjA7XG5cdFx0dG9wOjA7XG5cdH1cbn1cblxuXG4vKiBTdGFyIFJhdGluZyAqL1xuLmNtc21hc3RlcnNfc3Rhcl9yYXRpbmcge1xuXHR3aWR0aDo3M3B4O1xuXHRkaXNwbGF5OmJsb2NrO1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0Lm92aDtcblx0XG5cdC5jbXNtYXN0ZXJzX3N0YXIge1xuXHRcdGZvbnQtc2l6ZToxM3B4O1xuXHRcdHdpZHRoOjEzcHg7XG5cdFx0aGVpZ2h0OjEwMCU7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0XHRtYXJnaW4tbGVmdDoycHg7XG5cdFx0bWFyZ2luLXJpZ2h0OjA7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0Lm92aDtcblx0XHQuZmw7XG5cdFx0XG5cdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRtYXJnaW4tbGVmdDowO1xuXHRcdH1cblx0XHRcblx0XHQmOmJlZm9yZSB7XG5cdFx0XHQucG9zX2Ficztcblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3N0YXJfdHJhbnNfd3JhcCB7XG5cdFx0aGVpZ2h0OjEwMCU7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0Lm92aDtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfc3Rhcl9jb2xvcl93cmFwIHtcblx0XHRoZWlnaHQ6MTAwJTtcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0XHRsZWZ0OjA7XG5cdFx0dG9wOjA7XG5cdFx0Lm92aDtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfc3Rhcl9jb2xvcl9pbm5lciB7XG5cdFx0d2lkdGg6NzNweDtcblx0XHRoZWlnaHQ6MTAwJTtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQub3ZoO1xuXHR9XG59XG5cbi5jb21tZW50LWZvcm0tcmF0aW5nIHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdC5vdmg7XG5cdFxuXHQuc3RhcnMge1xuXHRcdG1hcmdpbi10b3A6NXB4O1xuXHRcdFxuXHRcdD4gc3BhbiB7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0d2lkdGg6NjVweDtcblx0XHRcdGhlaWdodDoxNHB4O1xuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XHQub3ZoO1xuXHRcdFx0XG5cdFx0XHQmOmJlZm9yZSwgXG5cdFx0XHRhOmJlZm9yZSB7XG5cdFx0XHRcdGZvbnQtZmFtaWx5OlwiZm9udGVsbG9cIjtcblx0XHRcdFx0bGluZS1oZWlnaHQ6MWVtO1xuXHRcdFx0XHRmb250LXN0eWxlOm5vcm1hbDtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6bm9ybWFsO1xuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246aW5oZXJpdDtcblx0XHRcdFx0dGV4dC1hbGlnbjpjZW50ZXI7XG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO1xuXHRcdFx0XHRmb250LXZhcmlhbnQ6bm9ybWFsO1xuXHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTpub25lO1xuXHRcdFx0XHRzcGVhazpub25lO1xuXHRcdFx0XHQtd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkO1xuXHRcdFx0XHQtbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGU7XG5cdFx0XHRcdFxuXHRcdFx0XHRmb250LXNpemU6MTRweDtcblx0XHRcdFx0dGV4dC1pbmRlbnQ6MDtcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdFx0aGVpZ2h0OjEwMCU7XG5cdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0XHRsZWZ0OjA7XG5cdFx0XHRcdHRvcDowO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdGNvbnRlbnQ6J1xcZThhYVxcZThhYVxcZThhYVxcZThhYVxcZThhYSc7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdGE6YmVmb3JlIHtcblx0XHRcdFx0Y29udGVudDonXFxlOGFhXFxlOGFhXFxlOGFhXFxlOGFhXFxlOGFhJztcblx0XHRcdH1cblx0XHRcblx0XHRcdGEge1xuXHRcdFx0XHRjb2xvcjp0cmFuc3BhcmVudDtcblx0XHRcdFx0dGV4dC1pbmRlbnQ6OTk5OXB4O1xuXHRcdFx0XHRoZWlnaHQ6MTAwJTtcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0XHRcdGxlZnQ6MDtcblx0XHRcdFx0dG9wOjA7XG5cdFx0XHRcdC5vdmg7XG5cdFx0XHRcblx0XHRcdFx0Ji5zdGFyLTEge1xuXHRcdFx0XHRcdHdpZHRoOjEzcHg7XG5cdFx0XHRcdFx0ei1pbmRleDoxMDtcblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdFx0Ji5zdGFyLTIge1xuXHRcdFx0XHRcdHdpZHRoOjI2cHg7XG5cdFx0XHRcdFx0ei1pbmRleDo5O1xuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0XHQmLnN0YXItMyB7XG5cdFx0XHRcdFx0d2lkdGg6MzlweDtcblx0XHRcdFx0XHR6LWluZGV4Ojg7XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdCYuc3Rhci00IHtcblx0XHRcdFx0XHR3aWR0aDo1MnB4O1xuXHRcdFx0XHRcdHotaW5kZXg6Nztcblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdFx0Ji5zdGFyLTUge1xuXHRcdFx0XHRcdHdpZHRoOjY1cHg7XG5cdFx0XHRcdFx0ei1pbmRleDo2O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cblxuLyogU2FsZSAqL1xuLm9uc2FsZSwgXG4ub3V0LW9mLXN0b2NrLCBcbi5zdG9jayB7XG5cdHBhZGRpbmc6NXB4IDIwcHg7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHRsZWZ0OmF1dG87XG5cdHJpZ2h0OjE1cHg7XG5cdHRvcDoxNXB4O1xuXHRib3R0b206YXV0bztcblx0ei1pbmRleDoxMDtcblx0LmJkcnMoMzBweCk7XG5cdC5vdmg7XG59XG5cbiNwYWdlIC5vdXRvZnN0b2NrIC5vbnNhbGUge1xuXHQuZG47XG59XG5cblxuLyogY2hlY2tib3ggYW5kIHJhZGlvICovXG5sYWJlbCB7XG5cdD4gLmlucHV0LWNoZWNrYm94LCBcblx0PiAuaW5wdXQtcmFkaW8sIFxuXHQ+IGlucHV0LnNoaXBwaW5nX21ldGhvZCB7XG5cdFx0ZmxvYXQ6bm9uZTtcblx0XHR3aWR0aDphdXRvO1xuXHRcdGhlaWdodDphdXRvO1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdGxlZnQ6YXV0bztcblx0XHR0b3A6YXV0bztcblx0XHRib3R0b206YXV0bztcblx0XHQub3AoMSk7XG5cdH1cbn1cblxuLmlucHV0LWNoZWNrYm94LCBcbi5pbnB1dC1yYWRpbywgXG5pbnB1dC5zaGlwcGluZ19tZXRob2Q6bm90KFt0eXBlPWhpZGRlbl0pIHtcblx0LmZsO1xuXHQub3AoMCk7XG5cdC5wb3NfYWJzKDFlbSwgMWVtLCAwLCBhdXRvKTtcblxuXHQrIGxhYmVsIHtcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRwYWRkaW5nOjAgMCAwIDI1cHg7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0Y3Vyc29yOnBvaW50ZXI7XG5cdFx0XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDonJztcblx0XHRcdC5iZDtcblx0XHRcdC5wb3NfYWJzKDE3cHgsIDE3cHgsIDFweCwgYXV0byk7XG5cdFx0XHQuYnhzaF93aGl0ZSgwLCAwLCAwLCAxcHgsIC41KTtcblx0XHR9XG5cdFx0XG5cdFx0JjphZnRlciB7XG5cdFx0XHRjb250ZW50OicnO1xuXHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMCk7XG5cdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgwKTtcblx0XHRcdHRyYW5zZm9ybTpzY2FsZSgwKTtcblx0XHRcdC5wb3NfYWJzKDlweCwgOXB4LCA1cHgsIGF1dG8pO1xuXHRcdFx0Lm9wKDApO1xuXHRcdH1cblx0fVxuXHRcblx0JjpjaGVja2VkIHtcblx0XHQrIGxhYmVsIHtcblx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTtcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06c2NhbGUoMSk7XG5cdFx0XHRcdHRyYW5zZm9ybTpzY2FsZSgxKTtcblx0XHRcdFx0Lm9wKDEpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5sYWJlbC5jaGVja2JveCB7XG5cdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRwYWRkaW5nOjAgMCAwIDI1cHg7XG5cdFxuXHQrIGlucHV0IHtcblx0XHR2aXNpYmlsaXR5OnZpc2libGU7XG5cdFx0Lm9wKDEpO1xuXHR9XG59XG5cbi5pbnB1dC1yYWRpbywgXG5pbnB1dC5zaGlwcGluZ19tZXRob2Qge1xuXHQrIGxhYmVsIHtcblx0XHQmOmJlZm9yZSwgXG5cdFx0JjphZnRlciB7XG5cdFx0XHQuYmRycyg1MCUpO1xuXHRcdH1cblx0fVxufVxuXG5cbi8qIFNoaXBwaW5nICovXG4jc2hpcHBpbmdfbWV0aG9kIHtcblx0cGFkZGluZzowO1xuXHRtYXJnaW46MDtcblx0XG5cdGxpIHtcblx0XHQub3ZoO1xuXHRcdFxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGNvbnRlbnQ6bm9uZTtcblx0XHR9XG5cdH1cblx0XG5cdCsgcCB7XG5cdFx0cGFkZGluZzoyMHB4IDAgMDtcblx0fVxufVxuXG4ud29vY29tbWVyY2UtbWVzc2FnZSxcbi53b29jb21tZXJjZS1pbmZvLFxuLndvb2NvbW1lcmNlLWVycm9yIHtcblx0cGFkZGluZzoxOHB4IDI1cHg7XG5cdG1hcmdpbi1ib3R0b206MzBweDtcblx0ZmxvYXQ6bm9uZTtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdC5iZDtcblx0LmJkcnMoOHB4KTtcblx0LmNsO1xuXHQub3ZoO1xuXHRcblx0LmJ1dHRvbiB7XG5cdFx0bWFyZ2luLXJpZ2h0OjMwcHg7XG5cdH1cblx0XG5cdC5zaG93Y291cG9uIHtcblx0XHRtYXJnaW46MCA1cHggLTFweDtcblx0fVxufVxuXG4ud29vY29tbWVyY2UtZXJyb3Ige1xuXHRsaSB7XG5cdFx0cGFkZGluZzowO1xuXHRcdG1hcmdpbjowO1xuXHRcdFxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGNvbnRlbnQ6bm9uZTtcblx0XHR9XG5cdH1cbn1cblxuXG4vKiBRdWFudGl0eSAqL1xuLnF1YW50aXR5IHtcblx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdC5vdmg7XG5cdFxuXHQuc2NyZWVuLXJlYWRlci10ZXh0IHtcblx0XHRkaXNwbGF5Om5vbmU7XG5cdH1cblx0XG5cdC50ZXh0IHtcblx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdHdpZHRoOjgycHg7XG5cdFx0cGFkZGluZzowIDEwcHggMCAyMHB4ICFpbXBvcnRhbnQ7XG5cdFx0bWluLXdpZHRoOjA7XG5cdH1cbn1cblxuXG4vKiBWYXJpYXRpb24gKi9cbnRhYmxlLnZhcmlhdGlvbnMge1xuXHRtYXJnaW46MCAwIDMwcHg7XG5cdFxuXHR0ciB7XG5cdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHR0ZCB7XG5cdFx0XHRcdHBhZGRpbmc6MCAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHR0ZCB7XG5cdFx0XHRwYWRkaW5nOjE1cHggMCAwICFpbXBvcnRhbnQ7XG5cdFx0XHQuYmQoMCkgIWltcG9ydGFudDtcblx0XHRcdFxuXHRcdFx0Ji5sYWJlbCB7XG5cdFx0XHRcdG1pbi13aWR0aDo5MHB4O1xuXHRcdFx0XHRwYWRkaW5nOjAgMjBweCAwIDAgIWltcG9ydGFudDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdHNlbGVjdCB7XG5cdFx0aGVpZ2h0OjQ0cHg7XG5cdH1cblx0XG5cdC5yZXNldF92YXJpYXRpb25zIHtcblx0XHRtYXJnaW4tbGVmdDoxNXB4O1xuXHRcdG1hcmdpbi1yaWdodDowO1xuXHR9XG59XG5cbi5zaW5nbGVfdmFyaWF0aW9uX3dyYXAge1xuXHQud29vY29tbWVyY2UtdmFyaWF0aW9uLWRlc2NyaXB0aW9uIHtcblx0XHRib3JkZXI6MCAhaW1wb3J0YW50O1xuXHRcdG1hcmdpbjowIDAgMTBweDtcblx0XHRcblx0XHQmOmVtcHR5IHtcblx0XHRcdC5kbjtcblx0XHR9XG5cdFx0XG5cdFx0PiAqOmxhc3QtY2hpbGQge1xuXHRcdFx0bWFyZ2luOjA7XG5cdFx0XHRwYWRkaW5nOjA7XG5cdFx0fVxuXHR9XG5cdFxuXHQuc2luZ2xlX3ZhcmlhdGlvbiB7XG5cdFx0bWFyZ2luOjAgMCAxNXB4O1xuXHRcdC5vdmg7XG5cdFx0XG5cdFx0LnN0b2NrIHtcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG5cdFx0XHRtYXJnaW46MCAwIDAgMTBweDtcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0XHRcdHBvc2l0aW9uOnN0YXRpYztcblx0XHR9XG5cdH1cblx0XG5cdC52YXJpYXRpb25zX2J1dHRvbiB7XG5cdFx0Lm92aDtcblx0XHRcblx0XHRpbnB1dFt0eXBlPVwibnVtYmVyXCJdIHtcblx0XHRcdC5iZHJzKDhweCkgIWltcG9ydGFudDtcblx0XHR9XG5cdH1cbn1cblxuZGwudmFyaWF0aW9uIHtcblx0ZGlzcGxheTpibG9jaztcblx0cGFkZGluZzowO1xuXHQub3ZoO1xuXHRcblx0JjphZnRlciB7XG5cdFx0LmNsX2FmdGVyO1xuXHR9XG5cdFxuXHRkdCxcblx0ZGQsIFxuXHRwIHtcblx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdG1hcmdpbjowO1xuXHRcdHBhZGRpbmc6MDtcblx0XHQub3ZoO1xuXHR9XG5cdFxuXHRkdCB7XG5cdFx0cGFkZGluZy1sZWZ0OjA7XG5cdFx0cGFkZGluZy1yaWdodDoxMHB4O1xuXHRcdGZsb2F0OmxlZnQ7XG5cdFx0Y2xlYXI6bGVmdDtcblx0fVxuXHRcblx0ZGQge1xuXHRcdGZsb2F0OmxlZnQ7XG5cdH1cbn1cblxuXG4vKiBDb2wyLXNldCAqL1xuLmNvbDItc2V0IHtcblx0bWFyZ2luOjAgLUBjb2xfbWFyIDMwcHg7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHQub3ZoO1xuXG5cdD4gKiB7XG5cdFx0d2lkdGg6cm91bmQoKDEwMCUgLyAyKSAtIChAY29sX21hciAqIDIpLCAyKTtcblx0XHRtYXJnaW46MCBAY29sX21hcjtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQuZmw7XG5cdFx0Lm92aDtcblx0fVxufVxuXG5cbi8qIEZvcm0gUm93IFN0eWxlcyAqL1xuLmZvcm0tcm93IHtcblx0d2lkdGg6cm91bmQoKDEwMCUgLyAyKSAtIChAY29sX21hciAqIDIpLCAyKTtcblx0bWFyZ2luOjAgQGNvbF9tYXI7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHQuZmw7XG5cdFxuXHQmOmFmdGVyIHtcblx0XHQuY2xfYWZ0ZXI7XG5cdH1cblx0XG5cdCYuZm9ybS1yb3ctd2lkZSwgXG5cdCYubm90ZXMsIFxuXHQmLnBsYWNlLW9yZGVyIHtcblx0XHR3aWR0aDpyb3VuZCgxMDAlIC0gKEBjb2xfbWFyICogMiksIDIpO1xuXHRcdGZsb2F0Om5vbmU7XG5cdFx0LmNsO1xuXHR9XG5cdFxuXHQmLnBsYWNlLW9yZGVyIHtcblx0XHR3aWR0aDphdXRvO1xuXHRcdG1hcmdpbjowO1xuXHR9XG5cdFxuXHRsYWJlbCB7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0XHRwYWRkaW5nOjAgMCAxMHB4O1xuXHR9XG5cdFxuXHRzZWxlY3QsIFxuXHRpbnB1dCwgXG5cdHRleHRhcmVhIHtcblx0XHR3aWR0aDoxMDAlO1xuXHRcdG1heC13aWR0aDoxMDAlO1xuXHR9XG5cdFxuXHR0ZXh0YXJlYSB7XG5cdFx0bWluLWhlaWdodDoyMDBweDtcblx0fVxuXHRcblx0aW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLCBcblx0aW5wdXRbdHlwZT1cInJhZGlvXCJdLCBcblx0aW5wdXRbdHlwZT1cInN1Ym1pdFwiXSwgXG5cdGlucHV0W3R5cGU9XCJidXR0b25cIl0ge1xuXHRcdHdpZHRoOmF1dG87XG5cdH1cbn1cblxuXG4vKiBBbW91bnQgU3R5bGVzICovXG4uYW1vdW50IHtcblx0d2hpdGUtc3BhY2U6bm93cmFwO1xufVxuXG5cbi8qIFJlbW92ZSBCdXR0b24gU3R5bGVzICovXG4jcGFnZSAucmVtb3ZlIHtcblx0dGV4dC1pbmRlbnQ6LTk5OTlweDtcblx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdHdpZHRoOjIwcHg7XG5cdGhlaWdodDoyMHB4O1xuXHRtYXJnaW46MCAxcHg7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHQudGFjO1xuXHRcblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6Jyc7XG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcblx0XHQtbW96LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO1xuXHRcdC1tcy10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcblx0XHR0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcblx0XHQucG9zX2FicygxMXB4LCAycHgpO1xuXHR9XG5cdFxuXHQmOmFmdGVyIHtcblx0XHRjb250ZW50OicnO1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpO1xuXHRcdC1tb3otdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpO1xuXHRcdC1tcy10cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7XG5cdFx0dHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpO1xuXHRcdC5wb3NfYWJzKDExcHgsIDJweCk7XG5cdH1cbn1cblxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaG9wIFBhZ2Vcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5jbXNtYXN0ZXJzX3dvb193cmFwX3Jlc3VsdCB7XG5cdHBhZGRpbmc6MCAwIDQwcHg7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHQub3ZoO1xuXHQuY2w7XG5cdFxuXHRzZWxlY3Qge1xuXHRcdHdpZHRoOjEwMCU7XG5cdFx0bWF4LXdpZHRoOjEwMCU7XG5cdH1cblx0XG5cdC53b29jb21tZXJjZS1yZXN1bHQtY291bnQge1xuXHRcdHBhZGRpbmc6MTBweDtcblx0XHQuZnI7XG5cdH1cblx0XG5cdC53b29jb21tZXJjZS1vcmRlcmluZyB7XG5cdFx0LmZsO1xuXHR9XG59XG5cbi5jb250ZW50IHtcblx0LmNtc21hc3RlcnNfcHJvZHVjdHMuY29sdW1ucy01IHtcblx0XHQucHJvZHVjdCB7XG5cdFx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDMpIC0gKEBjb2xfbWFyICogMiksIDIpO1xuXHRcdFx0XG5cdFx0XHQmOm50aC1jaGlsZCg1bisxKSB7XG5cdFx0XHRcdGNsZWFyOm5vbmU7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdCY6bnRoLWNoaWxkKDNuKzEpIHtcblx0XHRcdFx0Y2xlYXI6bGVmdDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3Byb2R1Y3RzLmNvbHVtbnMtNiB7XG5cdFx0LnByb2R1Y3Qge1xuXHRcdFx0d2lkdGg6cm91bmQoKDEwMCUgLyAzKSAtIChAY29sX21hciAqIDIpLCAyKTtcblx0XHRcdFxuXHRcdFx0JjpudGgtY2hpbGQoNm4rMSkge1xuXHRcdFx0XHRjbGVhcjpub25lO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQmOm50aC1jaGlsZCgzbisxKSB7XG5cdFx0XHRcdGNsZWFyOmxlZnQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cdFxuLmNtc21hc3RlcnNfcHJvZHVjdHMge1xuXHRtYXJnaW46LTQwcHggLUBjb2xfbWFyIDA7XG5cdHBhZGRpbmc6MDtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XG5cdC5wcm9kdWN0IHtcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDQpIC0gKEBjb2xfbWFyICogMiksIDIpO1xuXHRcdG1hcmdpbjowIEBjb2xfbWFyO1xuXHRcdHBhZGRpbmc6NDBweCAwIDA7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0d29yZC13cmFwOmJyZWFrLXdvcmQ7XG5cdFx0Lm92aDtcblx0XHQuZmw7XG5cdFx0XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDpub25lO1xuXHRcdH1cblx0XHRcblx0XHQuY29sdW1ucy02JiB7XG5cdFx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDYpIC0gKEBjb2xfbWFyICogMi4xKSwgMik7XG5cdFx0XHRcblx0XHRcdCY6bnRoLWNoaWxkKDZuKzEpIHtcblx0XHRcdFx0Y2xlYXI6bGVmdDtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0LmNvbHVtbnMtNSYge1xuXHRcdFx0d2lkdGg6cm91bmQoKDEwMCUgLyA1KSAtIChAY29sX21hciAqIDIpLCAyKTtcblx0XHRcdFxuXHRcdFx0JjpudGgtY2hpbGQoNW4rMSkge1xuXHRcdFx0XHRjbGVhcjpsZWZ0O1xuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHQuY29sdW1ucy00JiB7XG5cdFx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDQpIC0gKEBjb2xfbWFyICogMiksIDIpO1xuXHRcdFx0XG5cdFx0XHQmOm50aC1jaGlsZCg0bisxKSB7XG5cdFx0XHRcdGNsZWFyOmxlZnQ7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdC5jb2x1bW5zLTMmIHtcblx0XHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gMykgLSAoQGNvbF9tYXIgKiAyKSwgMik7XG5cdFx0XHRcblx0XHRcdCY6bnRoLWNoaWxkKDNuKzEpIHtcblx0XHRcdFx0Y2xlYXI6bGVmdDtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0LmNvbHVtbnMtMiYge1xuXHRcdFx0d2lkdGg6cm91bmQoKDEwMCUgLyAyKSAtIChAY29sX21hciAqIDIpLCAyKTtcblx0XHRcdFxuXHRcdFx0JjpudGgtY2hpbGQoMm4rMSkge1xuXHRcdFx0XHRjbGVhcjpsZWZ0O1xuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHQuY29sdW1ucy0xJiB7XG5cdFx0XHR3aWR0aDpyb3VuZCgxMDAlIC0gKEBjb2xfbWFyICogMiksIDIpO1xuXHRcdFx0ZmxvYXQ6bm9uZTtcblx0XHRcdC5jbDtcblx0XHR9XG5cdH1cbn1cblxuLmNtc21hc3RlcnNfcHJvZHVjdCB7XG5cdHBhZGRpbmc6MDtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdC5iZHJzKDE1cHgpO1xuXHQub3ZoO1xuXHRcblx0LnNhbGUgJiB7XG5cdFx0cGFkZGluZy1ib3R0b206MjBweCA7XG5cdFx0LmJkKDFweCwgZGFzaGVkKTtcblx0XHRcblx0XHQuY21zbWFzdGVyc19wcm9kdWN0X2ltZyB7XG5cdFx0XHQuYmRycygxNXB4IDE1cHggMCAwKTtcblx0XHR9XG5cdH1cblx0XG5cdCY6aG92ZXIge1xuXHRcdC5jbXNtYXN0ZXJzX3Byb2R1Y3RfYWRkX3dyYXAge1xuXHRcdFx0dmlzaWJpbGl0eTp2aXNpYmxlO1xuXHRcdFx0Lm9wKDEpO1xuXHRcdH1cblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcHJvZHVjdF9pbWcge1xuXHRcdG1hcmdpbjowIDAgMjNweDtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQuYmRycygxNXB4KTtcblx0XHQub3ZoO1xuXHRcdFxuXHRcdGltZyB7XG5cdFx0XHRpbWFnZS1yZW5kZXJpbmc6YXV0bztcblx0XHRcdHdpZHRoOjEwMCU7XG5cdFx0fVxuXHRcdFxuXHRcdCY6aG92ZXIsIFxuXHRcdCYuY21zbWFzdGVyc19tb2JpbGVfaG92ZXIge1xuXHRcdFx0aW1nIHtcblx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS4wNSk7XG5cdFx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKDEuMDUpO1xuXHRcdFx0XHR0cmFuc2Zvcm06c2NhbGUoMS4wNSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19wcm9kdWN0X2lubmVyIHtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRwYWRkaW5nOjAgNXB4O1xuXHRcdC50YWM7XG5cdFx0Lm92aDtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfc3Rhcl9yYXRpbmcge1xuXHRcdG1hcmdpbjowIGF1dG8gMTVweDtcblx0XHQuZG47XG5cdFx0XG5cdFx0LnNob3dfcmF0aW5nICYge1xuXHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3Byb2R1Y3RfaGVhZGVyIHtcblx0XHRwYWRkaW5nOjAgMCAycHg7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3Byb2R1Y3RfdGl0bGUge1xuXHRcdG1hcmdpbjowO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19wcm9kdWN0X2NhdCB7XG5cdFx0cGFkZGluZzowIDAgMTBweDtcblx0XHQudGFjO1xuXHRcdC5vdmg7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3Byb2R1Y3RfaW5mb193cmFwIHtcblx0XHRtaW4taGVpZ2h0OjQwcHg7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0Lm92aDtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcHJvZHVjdF9pbmZvIHtcblx0XHQudGFjO1xuXHRcdC5vdmg7XG5cdH1cblx0XG5cdC5wcmljZSB7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0XHRtaW4taGVpZ2h0OjQwcHg7XG5cdFx0cGFkZGluZy10b3A6N3B4O1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdC5vdmg7XG5cdFx0XG5cdFx0JjphZnRlciB7XG5cdFx0XHQudmFsaWduX2FmdGVyO1xuXHRcdH1cblx0XHRcblx0XHQ+ICoge1xuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG5cdFx0fVxuXHRcdFxuXHRcdGRlbCB7XG5cdFx0XHRtYXJnaW46MCAzcHggMCAwO1xuXHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xuXHRcdFx0d2hpdGUtc3BhY2U6bm93cmFwO1xuXHRcdFx0XG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0LnZhbGlnbl9hZnRlcjtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0c3BhbiB7XG5cdFx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjpib3R0b207XG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2g7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdGlucyB7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246bm9uZTtcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0XHRcdHdoaXRlLXNwYWNlOm5vd3JhcDtcblx0XHR9XG5cdFx0XG5cdFx0Lndvb2NvbW1lcmNlLXByaWNlLXN1ZmZpeCB7XG5cdFx0XHRvdXRsaW5lOm5vbmU7XG5cdFx0fVxuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19wcm9kdWN0X2FkZF93cmFwIHtcblx0XHR3aWR0aDoxMDAlO1xuXHRcdGhlaWdodDoxMDAlO1xuXHRcdHZpc2liaWxpdHk6aGlkZGVuO1xuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdGxlZnQ6MDtcblx0XHR0b3A6MDtcblx0XHQudGFjO1xuXHRcdC5vcCgwKTtcblx0XHRcblx0XHQmOmFmdGVyIHtcblx0XHRcdC52YWxpZ25fYWZ0ZXI7XG5cdFx0fVxuXHRcdFxuXHRcdC5jbXNtYXN0ZXJzX2J1dHRvbiB7XG5cdFx0XHRsaW5lLWhlaWdodDozOHB4O1xuXHRcdH1cblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcHJvZHVjdF9hZGRfaW5uZXIge1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0XHRcblx0XHQuY21zbWFzdGVyc19idXR0b24ge1xuXHRcdFx0cGFkZGluZzowIDE1cHg7XG5cdFx0fVxuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19wcm9kdWN0X2J1dHRvbiB7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0XHRcblx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0bWFyZ2luOjA7XG5cdFx0fVxuXHRcdFxuXHRcdCYuYWRkZWRfdG9fY2FydCB7XG5cdFx0XHQuZG47XG5cdFx0fVxuXHRcdFxuXHRcdCYuYWRkZWQge1xuXHRcdFx0LmRuO1xuXHRcdFx0XG5cdFx0XHQrIC5hZGRlZF90b19jYXJ0IHtcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0Ji5sb2FkaW5nIHtcblx0XHRcdHRleHQtaW5kZW50Oi05OTk5cHg7XG5cdFx0XHRcblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0Y29udGVudDonXFxlOWZkJztcblx0XHRcdFx0Zm9udC1mYW1pbHk6XCJmb250ZWxsb1wiO1xuXHRcdFx0XHRmb250LXN0eWxlOm5vcm1hbDtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6bm9ybWFsO1xuXHRcdFx0XHRzcGVhazpub25lO1xuXHRcdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOmluaGVyaXQ7XG5cdFx0XHRcdHdpZHRoOjFlbTtcblx0XHRcdFx0dGV4dC1hbGlnbjpjZW50ZXI7XG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO1xuXHRcdFx0XHRmb250LXZhcmlhbnQ6bm9ybWFsO1xuXHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTpub25lO1xuXHRcdFx0XHRsaW5lLWhlaWdodDoxZW0gIWltcG9ydGFudDtcblx0XHRcdFx0LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDtcblx0XHRcdFx0LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6Z3JheXNjYWxlO1xuXHRcdFx0XHQtd2Via2l0LWFuaW1hdGlvbjpzcGluIDJzIGluZmluaXRlIGxpbmVhcjtcblx0XHRcdFx0LW1vei1hbmltYXRpb246c3BpbiAycyBpbmZpbml0ZSBsaW5lYXI7XG5cdFx0XHRcdGFuaW1hdGlvbjpzcGluIDJzIGluZmluaXRlIGxpbmVhcjtcblx0XHRcdFx0Zm9udC1zaXplOjE2cHg7XG5cdFx0XHRcdHRleHQtaW5kZW50OjA7XG5cdFx0XHRcdC5wb3NfYWJzO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4ucHJvZHVjdC1jYXRlZ29yeSB7XG5cdC50YWM7XG5cdFxuXHQud29vY29tbWVyY2UtbG9vcC1jYXRlZ29yeV9fdGl0bGUge1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdG1hcmdpbjoyM3B4IDAgMDtcblx0fVxufVxuXG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNpbmdsZSBQcm9kdWN0XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uY21zbWFzdGVyc19zaW5nbGVfcHJvZHVjdCB7XG5cdG1hcmdpbjowO1xuXHRwYWRkaW5nOjEwcHggMCAwO1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0Lm92aDtcblx0XG5cdC5jbXNtYXN0ZXJzX3Byb2R1Y3Rfc2FsZV93cmFwIHtcblx0XHR3aWR0aDoxMDAlO1xuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdGxlZnQ6MDtcblx0XHR0b3A6MDtcblx0XHQudGFjO1xuXHRcdFxuXHRcdC5vbnNhbGUsXG5cdFx0Lm91dC1vZi1zdG9jayxcblx0XHQuc3RvY2sge1xuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdHJpZ2h0OmF1dG87XG5cdFx0XHRib3R0b206YXV0bztcblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3Byb2R1Y3RfbGVmdF9jb2x1bW4ge1xuXHRcdHdpZHRoOjQyJTtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQuZmw7XG5cdFx0Lm92aDtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcHJvZHVjdF9pbWFnZXMge1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdC5vdmg7XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3Byb2R1Y3RfaW1hZ2Uge1xuXHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0bWF4LXdpZHRoOjEwMCU7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0LnRhYztcblx0XHRcblx0XHRpbWcge1xuXHRcdFx0aW1hZ2UtcmVuZGVyaW5nOmF1dG87XG5cdFx0XHR3aWR0aDoxMDAlO1xuXHRcdFx0aGVpZ2h0OmF1dG87XG5cdFx0XHRtYXgtd2lkdGg6MTAwJTtcblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3Byb2R1Y3RfdGh1bWJzIHtcblx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdC5vdmg7XG5cdFx0XG5cdFx0LmNtc21hc3RlcnNfcHJvZHVjdF90aHVtYiB7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0d2lkdGg6ODJweDtcblx0XHRcdG1hcmdpbjoxMHB4IDEwcHggMCAwO1xuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XHQudGFjO1xuXHRcdFx0LmZsO1xuXHRcdFx0XG5cdFx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0XHRtYXJnaW46MTBweCAwIDA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19wcm9kdWN0X3JpZ2h0X2NvbHVtbiB7XG5cdFx0d2lkdGg6NTglO1xuXHRcdHBhZGRpbmc6MCAwIDAgNDBweDtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQuZnI7XG5cdFx0Lm92aDtcblx0XHRcblx0XHQub3V0LW9mLXN0b2NrIHtcblx0XHRcdGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50O1xuXHRcdH1cblx0XHRcblx0XHQ+IGRpdjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRwYWRkaW5nLXRvcDowO1xuXHRcdH1cblx0XHRcblx0XHQudmFyaWF0aW9uc19mb3JtIHtcblx0XHRcdHBhZGRpbmc6MTVweCAwO1xuXHRcdFx0XG5cdFx0XHQub3V0LW9mLXN0b2NrIHtcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdFx0cGFkZGluZzowO1xuXHRcdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdFx0bGVmdDowO1xuXHRcdFx0XHRyaWdodDowO1xuXHRcdFx0XHR0b3A6MDtcblx0XHRcdFx0Ym90dG9tOjA7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdC5zdG9jayxcblx0XHRpbi1zdG9jayB7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0cGFkZGluZzowO1xuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XHRsZWZ0OjA7XG5cdFx0XHRyaWdodDowO1xuXHRcdFx0dG9wOjA7XG5cdFx0XHRib3R0b206MDtcblx0XHR9XG5cdH1cblx0XG5cdC5jbXNtYXN0ZXJzX3Byb2R1Y3RfdGl0bGVfd3JhcCB7XG5cdFx0cGFkZGluZzowO1xuXHRcdC5vdmg7XG5cdH1cblx0XG5cdC5wcm9kdWN0X3RpdGxlIHtcblx0XHRtYXJnaW46MDtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcHJvZHVjdF9pbmZvX3dyYXAge1xuXHRcdHBhZGRpbmc6NnB4IDAgMDtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQub3ZoO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19zdGFyX3JhdGluZyB7XG5cdFx0bWFyZ2luOjAgMCAxNXB4O1xuXHR9XG5cdFxuXHQucHJpY2Uge1xuXHRcdG1hcmdpbjowO1xuXHRcdHBhZGRpbmc6MDtcblx0XHRcblx0XHRkZWwge1xuXHRcdFx0dmVydGljYWwtYWxpZ246Ym90dG9tO1xuXHRcdH1cblx0XHRcblx0XHRpbnMge1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOm5vbmU7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjpib3R0b207XG5cdFx0fVxuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19wcm9kdWN0X2NvbnRlbnQge1xuXHRcdHBhZGRpbmc6NDVweCAwIDA7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0Lm92aDtcblx0fVxuXHRcblx0LmNhcnQge1xuXHRcdHBhZGRpbmc6MTVweCAwIDA7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0Lm92aDtcblx0XHRcblx0XHQucXVhbnRpdHkge1xuXHRcdFx0QHtpbnB1dF90ZXh0fSB7XG5cdFx0XHRcdGhlaWdodDo0NnB4O1xuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHQuc2luZ2xlX2FkZF90b19jYXJ0X2J1dHRvbiB7XG5cdFx0XHRsaW5lLWhlaWdodDo0NHB4O1xuXHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xuXHRcdFx0bWFyZ2luOjAgMCAwIDZweDtcblx0XHR9XG5cdH1cblx0XG5cdC5wcm9kdWN0X21ldGEge1xuXHRcdHBhZGRpbmc6MThweCAwIDA7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0Lm92aDtcblx0XHRcblx0XHQ+IHNwYW4ge1xuXHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHR9XG5cdH1cblx0XG5cdC53b29jb21tZXJjZS1ncm91cGVkLXByb2R1Y3QtbGlzdCB7XG5cdFx0dHIge1xuXHRcdFx0dGQge1xuXHRcdFx0XHRwYWRkaW5nOjEzcHggMTVweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLmNtc21hc3RlcnNfdGFicy5jbXNtYXN0ZXJzX3dvb190YWJzIHtcblx0bWFyZ2luOjcwcHggMCAwO1xuXHQub3ZoO1xuXHRcblx0LmNtc21hc3RlcnNfdGFic19saXN0IHtcblx0XHRtYXJnaW46MCAtMjVweDtcblx0XHQudGFsO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc190YWJzX2xpc3RfaXRlbSB7XG5cdFx0PiBhIHtcblx0XHRcdHBhZGRpbmc6MCAyNXB4IDEycHg7XG5cdFx0fVxuXHR9XG5cdFxuXHQuY21zbWFzdGVyc190YWJfaW5uZXIge1xuXHRcdD4gaDIge1xuXHRcdFx0LmRuO1xuXHRcdH1cblx0fVxuXHRcblx0LmNtc21hc3RlcnNfdGFiX2lubmVyIHtcblx0XHRwYWRkaW5nOjI2cHggMCAwO1xuXHR9XG59XG5cbi5zaG9wX2F0dHJpYnV0ZXMge1xuXHR0Ym9keSB7XG5cdFx0dHIge1xuXHRcdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRcdHRoLFxuXHRcdFx0XHR0ZCB7XG5cdFx0XHRcdFx0LmJkdCgwKSAhaW1wb3J0YW50O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRcdHRoLFxuXHRcdFx0XHR0ZCB7XG5cdFx0XHRcdFx0LmJkYigwKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHR0aCxcblx0XHRcdHRkIHtcblx0XHRcdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRcdFx0LmJkbCgwKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdFx0XHQuYmRyKDApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdHRoIHtcblx0XHRcdHdpZHRoOjE5MHB4O1xuXHRcdFx0cGFkZGluZzo4cHggMTBweCA4cHggMDtcblx0XHR9XG5cdFx0XG5cdFx0dGQge1xuXHRcdFx0cGFkZGluZzo4cHggMDtcblx0XHR9XG5cdH1cblx0XG5cdHAge1xuXHRcdG1hcmdpbjowO1xuXHRcdHBhZGRpbmc6MDtcblx0fVxufVxuXG4uY21zbWFzdGVyc193b29fY29tbWVudHMge1xuXHRtYXJnaW46MDtcblx0cGFkZGluZzowO1xuXHRcblx0LnBvc3RfY29tbWVudHNfdGl0bGUge1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19zdGFyX3JhdGluZyB7XG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xuXHRcdG1hcmdpbjotM3B4IDAgMCAxMHB4O1xuXHR9XG5cdFxuXHQuY29tbWVudGxpc3Qge1xuXHRcdC5jb21tZW50ICB7XG5cdFx0XHRwYWRkaW5nOjQwcHggMDtcblx0XHRcdC5iZGI7XG5cdFx0XHRcblx0XHRcdC5jbXNtYXN0ZXJzX2NvbW1lbnRfaXRlbV9hdmF0YXIge1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6MzVweDtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0LmNtc21hc3RlcnNfY29tbWVudF9pdGVtX2NvbnRfaW5mbyB7XG5cdFx0XHRcdG1hcmdpbjowIDAgMTBweDtcblx0XHRcdFx0cGFkZGluZzowIDg1cHggMCAwO1xuXHRcdFx0XHRcblx0XHRcdFx0KiB7XG5cdFx0XHRcdFx0ZGlzcGxheTppbmxpbmU7XG5cdFx0XHRcdFx0dmVydGljYWwtYWxpZ246YmFzZWxpbmU7XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdC5jbXNtYXN0ZXJzX2NvbW1lbnRfaXRlbV90aXRsZSB7XG5cdFx0XHRcdFx0KyAuY21zbWFzdGVyc19jb21tZW50X2l0ZW1fZGF0ZTpiZWZvcmUge1xuXHRcdFx0XHRcdFx0Y29udGVudDonLSc7XG5cdFx0XHRcdFx0XHRtYXJnaW46MCA1cHggMCAycHg7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0XHQuY21zbWFzdGVyc19jb21tZW50X2l0ZW1fZGF0ZSB7XG5cdFx0XHRcdFx0KyAuc3Rhci1yYXRpbmc6YmVmb3JlIHtcblx0XHRcdFx0XHRcdGNvbnRlbnQ6Jy0nO1xuXHRcdFx0XHRcdFx0bWFyZ2luOjAgMnB4O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdFx0LnN0YXItcmF0aW5nIHtcblx0XHRcdFx0XHQ+IHNwYW4ge1xuXHRcdFx0XHRcdFx0d2lkdGg6YXV0byAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdFx0LmNtc21hc3RlcnNfc3Rhcl9yYXRpbmcge1xuXHRcdFx0XHRcdC5wb3NfYWJzKDczcHgsIDEzcHgsIGF1dG8pO1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdCoge1xuXHRcdFx0XHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuc2VjdGlvbi5wcm9kdWN0cyB7XG5cdG1hcmdpbjo0MHB4IDAgMDtcblx0cGFkZGluZzo0NXB4IDAgMDtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdC5iZHQ7XG5cdC5vdmg7XG5cdFxuXHQ+IGgyIHtcblx0XHRtYXJnaW46MDtcblx0XHRwYWRkaW5nOjAgMCAzM3B4O1xuXHR9XG59XG5cbi5wYWdlLWRlc2NyaXB0aW9uIHtcblx0bWFyZ2luOjAgLUBjb2xfbWFyO1xufVxuXG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIENhcnRcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5zaG9wX3RhYmxlIHtcblx0Ym9yZGVyLXNwYWNpbmc6MDtcblx0Ym9yZGVyLWNvbGxhcHNlOnNlcGFyYXRlO1xuXHR3aWR0aDoxMDAlO1xuXHRwYWRkaW5nOjAgMCA2MHB4O1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XG5cdCYuc2hvcF90YWJsZV9yZXNwb25zaXZlIHtcblx0XHRwYWRkaW5nOjAgMCAyMHB4O1xuXHR9XG5cdFxuXHQmLndvb2NvbW1lcmNlLWNoZWNrb3V0LXJldmlldy1vcmRlci10YWJsZSB7XG5cdFx0cGFkZGluZzowIDAgNDBweDtcblx0fVxuXHRcblx0Ji5vcmRlcl9kZXRhaWxzIHRkIHtcblx0XHQmLndvb2NvbW1lcmNlLXRhYmxlX19wcm9kdWN0LW5hbWUge1xuXHRcdFx0dWwge1xuXHRcdFx0XHRwYWRkaW5nOjVweCAwIDA7XG5cdFx0XHRcdFxuXHRcdFx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0XHRcdG1hcmdpbjowO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdGxpIHtcblx0XHRcdFx0cGFkZGluZzowO1xuXHRcdFx0XHRcblx0XHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRcdGNvbnRlbnQ6bm9uZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdFx0PiBzdHJvbmcsXG5cdFx0XHRcdD4gcCB7XG5cdFx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xuXHRcdFx0XHRcdFxuXHRcdFx0XHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRcdFx0XHRwYWRkaW5nLWJvdHRvbTowO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdFx0PiBzdHJvbmcge1xuXHRcdFx0XHRcdHBhZGRpbmc6MCAxMHB4IDAgMDtcblx0XHRcdFx0XHRjbGVhcjpsZWZ0O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHR0aGVhZCwgXG5cdHRyIHtcblx0XHR3aWR0aDoxMDAlO1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdC5vdmg7XG5cdH1cblx0XG5cdHRoLCBcblx0dGQge1xuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQudGFsO1xuXHRcdC5vdmg7XG5cdH1cblx0XG5cdC5wcm9kdWN0LXJlbW92ZSB7XG5cdFx0d2lkdGg6MzBweDtcblx0XHRwYWRkaW5nLWxlZnQ6MzBweDtcblx0XHRwYWRkaW5nLXJpZ2h0OjMwcHg7XG5cdH1cblx0XG5cdC5wcm9kdWN0LXRodW1ibmFpbCB7XG5cdFx0d2lkdGg6NzBweDtcblx0XHRwYWRkaW5nLWxlZnQ6MDtcblx0XHRwYWRkaW5nLXJpZ2h0OjIwcHg7XG5cdFx0XG5cdFx0aW1nIHtcblx0XHRcdGltYWdlLXJlbmRlcmluZzphdXRvO1xuXHRcdFx0d2lkdGg6NTBweDtcblx0XHRcdGhlaWdodDphdXRvO1xuXHRcdFx0LmJkcnMoMTAwcHgpO1xuXHRcdH1cblx0fVxuXHRcblx0LnByb2R1Y3QtbmFtZSB7XG5cdFx0b3V0bGluZTpub25lO1xuXHR9XG5cdFxuXHQucHJvZHVjdC1wcmljZSB7XG5cdFx0b3V0bGluZTpub25lO1xuXHR9XG5cdFxuXHQucHJvZHVjdC1xdWFudGl0eSB7XG5cdFx0QHtpbnB1dF90ZXh0fSB7XG5cdFx0XHQuYmRycyg4cHgpO1xuXHRcdH1cblx0fVxuXHRcblx0LmFtb3VudCB7XG5cdFx0b3V0bGluZTpub25lO1xuXHR9XG5cdFxuXHQuYWN0aW9ucyB7XG5cdFx0LnRhcjtcblx0XHRcblx0XHQuY291cG9uIHtcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdFx0LmZsO1xuXHRcdFx0Lm92aDtcblx0XHRcdFxuXHRcdFx0bGFiZWwge1xuXHRcdFx0XHQuZG47XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdC5pbnB1dC10ZXh0IHtcblx0XHRcdHdpZHRoOjI2MHB4O1xuXHRcdFx0bWFyZ2luOjAgM3B4IDAgMXB4O1xuXHRcdFx0dmVydGljYWwtYWxpZ246Ym90dG9tO1xuXHRcdH1cblx0fVxufVxuXG4uY3Jvc3Mtc2VsbHMge1xuXHRtYXJnaW46MzBweCAwIDUwcHg7XG59XG5cbi5jYXJ0X3RvdGFscyB7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHQub3ZoO1xuXHRcblx0PiBoMiB7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdH1cblx0XG5cdHRhYmxlIHtcblx0XHRib3JkZXItc3BhY2luZzowO1xuXHRcdGJvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZTtcblx0XHR3aWR0aDo1MCU7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0Lm92aDtcblx0XHRcblx0XHR0ciB7XG5cdFx0XHR3aWR0aDoxMDAlO1xuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XHQub3ZoO1xuXHRcdH1cblx0XHRcblx0XHR0aCwgXG5cdFx0dGQge1xuXHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XHQudGFsO1xuXHRcdFx0LmJkYiAhaW1wb3J0YW50O1xuXHRcdFx0Lm92aDtcblx0XHR9XG5cdFx0XG5cdFx0dGgge1xuXHRcdFx0d2lkdGg6NDMlO1xuXHRcdH1cblx0XHRcblx0XHR0ZCB7XG5cdFx0XHR3aWR0aDo1NyU7XG5cdFx0XHQudGFyO1xuXHRcdH1cblx0XHRcblx0XHRpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sIFxuXHRcdGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG5cdFx0XHRsZWZ0OmF1dG87XG5cdFx0XHRyaWdodDowO1xuXHRcdFx0LmZyO1xuXHRcdFxuXHRcdFx0KyBsYWJlbCB7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDowO1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OjI1cHg7XG5cdFx0XHRcdC5mcjtcblx0XHRcdFx0XG5cdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRsZWZ0OmF1dG87XG5cdFx0XHRcdFx0cmlnaHQ6MDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHRpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuXHRcdFx0KyBsYWJlbCB7XG5cdFx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHRcdGxlZnQ6YXV0bztcblx0XHRcdFx0XHRyaWdodDozcHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0aW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcblx0XHRcdCsgbGFiZWwge1xuXHRcdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0XHRsZWZ0OmF1dG87XG5cdFx0XHRcdFx0cmlnaHQ6NHB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi53b29jb21tZXJjZS1zaGlwcGluZy1jYWxjdWxhdG9yIHtcblx0cGFkZGluZzoyMHB4IDAgMDtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdC5vdmg7XG5cdFxuXHQ+IHAge1xuXHRcdG1hcmdpbjowO1xuXHRcdHBhZGRpbmc6MDtcblx0fVxufVxuXG4uc2hpcHBpbmctY2FsY3VsYXRvci1mb3JtIHtcblx0bWFyZ2luOjIwcHggLUBjb2xfbWFyIDA7XG5cdFxuXHQ+ICoge1xuXHRcdHdpZHRoOnJvdW5kKDEwMCUgLSAoQGNvbF9tYXIgKiAyKSwgMik7XG5cdFx0bWFyZ2luOjAgQGNvbF9tYXI7XG5cdFx0LmNsO1xuXHR9XG5cdFxuXHQ+IHAge1xuXHRcdHBhZGRpbmc6MCAwIDEwcHg7XG5cdH1cbn1cblxuLndjLXByb2NlZWQtdG8tY2hlY2tvdXQge1xuXHRwYWRkaW5nOjE1cHggMCAwO1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0Lm92aDtcblxuXHQud2NwcGVjLWNoZWNrb3V0LWJ1dHRvbnMge1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdG1hcmdpbjowO1xuXHRcdFxuXHRcdC53Y3BwZWMtY2hlY2tvdXQtYnV0dG9uc19fc2VwYXJhdG9yIHtcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdFx0bWFyZ2luOjAgMzBweDtcblx0XHR9XG5cdFx0XG5cdFx0LndjcHBlYy1jaGVja291dC1idXR0b25zX19idXR0b24ge1xuXHRcdFx0bWFyZ2luOjA7XG5cdFx0XHRwYWRkaW5nOjA7XG5cdFx0XHRcblx0XHRcdGltZyB7XG5cdFx0XHRcdGRpc3BsYXk6bm9uZTtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRjb250ZW50OidcXGViYmEnO1xuXHRcdFx0XHRmb250LWZhbWlseTpmb250ZWxsbztcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdGNvbnRlbnQ6J0NoZWNrIG91dCB3aXRoIFBheVBhbCc7XG5cdFx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdFx0XHRtYXJnaW4tbGVmdDoycHg7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQ2hlY2tvdXRcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5jaGVja291dF9jb3Vwb24ge1xuXHRtYXJnaW46MCAtQGNvbF9tYXIgMzBweDtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdC5vdmg7XG5cdFxuXHRwOm5vdChbY2xhc3NdKSB7XG5cdFx0d2lkdGg6cm91bmQoKDEwMCUpIC0gKEBjb2xfbWFyICogMiksIDIpO1xuXHRcdG1hcmdpbjowIEBjb2xfbWFyO1xuXHR9XG5cdFxuXHRpbnB1dCxcblx0YnV0dG9uW3R5cGU9c3VibWl0XSB7XG5cdFx0d2lkdGg6MTAwJTtcblx0XHRtYXgtd2lkdGg6MTAwJTtcblx0fVxuXHRcblx0YnV0dG9uW3R5cGU9c3VibWl0XSB7XG5cdFx0bGluZS1oZWlnaHQ6QGlucHV0X2hlaWdodCAtIDI7XG5cdH1cbn1cblxuYm9keSAuc2VsZWN0Mi1jb250YWluZXIge1xuXHQuc2VsZWN0Mi1jaG9pY2UsIFxuXHQmLnNlbGVjdDItZHJvcC1hYm92ZSAuc2VsZWN0Mi1jaG9pY2Uge1xuXHRcdHBhZGRpbmc6QGlucHV0X3BhZCBAaW5wdXRfcGFkIEBpbnB1dF9wYWQgMTVweDtcblx0fVxufVxuXG5ib2R5IHtcblx0LnNlbGVjdDItY29udGFpbmVyIHtcblx0XHQmLnNlbGVjdDItY29udGFpbmVyLS1vcGVuLFxuXHRcdCYuc2VsZWN0Mi1jb250YWluZXItLWZvY3VzIHtcblx0XHRcdC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIHtcblx0XHRcdFx0LmJkcnMoMzBweCkgIWltcG9ydGFudDtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0LnNlbGVjdDItZHJvcGRvd24tLWJlbG93IHtcblx0XHRcdFx0LmJkdDtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0LnNlbGVjdDItZHJvcGRvd24tLWFib3ZlIHtcblx0XHRcdFx0LmJkYjtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0LnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUge1xuXHRcdFx0aGVpZ2h0OjQ4cHg7XG5cdFx0XHRwYWRkaW5nOkBpbnB1dF9wYWQgNDBweCBAaW5wdXRfcGFkIDI1cHg7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOnVybCgnLi4vLi4vLi4vLi4vaW1nL3NlbGVjdC5wbmcnKTtcblx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246MTAwJSBjZW50ZXI7XG5cdFx0XHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG5cdFx0XHQuYmRycygzMHB4KTtcblx0XHRcdFxuXHRcdFx0LnNlbGVjdDItc2VsZWN0aW9uX19hcnJvdyB7XG5cdFx0XHRcdC5kbjtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0LnNlbGVjdDItc2VsZWN0aW9uX19yZW5kZXJlZCB7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OjQ4cHggLSBAaW5wdXRfcGFkICogMjtcblx0XHRcdFx0cGFkZGluZzowO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRcblx0LnNlbGVjdDItZHJvcGRvd24ge1xuXHRcdC5iZHJzKDApO1xuXHRcdFxuXHRcdC5zZWxlY3QyLXJlc3VsdHMge1xuXHRcdFx0LnNlbGVjdDItcmVzdWx0c19fb3B0aW9uIHtcblx0XHRcdFx0cGFkZGluZzo2cHggNnB4IDZweCAxOHB4O1xuXHRcdFx0XHRcblx0XHRcdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRcdFx0cGFkZGluZzo2cHggNnB4IDZweCAxOHB4O1xuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0Y29udGVudDpub25lO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbmJvZHkgLnNlbGVjdDItcmVzdWx0cyB7XG5cdGxpIHtcblx0XHRwYWRkaW5nOjVweCAwO1xuXHRcdFxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGNvbnRlbnQ6bm9uZTtcblx0XHR9XG5cdH1cbn1cblxuYm9keSAuc2VsZWN0Mi1zZWFyY2gge1xuXHRwYWRkaW5nLWJvdHRvbToxMHB4O1xuXHRcblx0aW5wdXQge1xuXHRcdHBhZGRpbmc6MCAyMHB4IDAgMTVweCAhaW1wb3J0YW50O1xuXHRcdGhlaWdodDo0MHB4ICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuLmNoZWNrb3V0IHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdC5vdmg7XG59XG5cbi53b29jb21tZXJjZS1hZGRpdGlvbmFsLWZpZWxkcyxcbi53b29jb21tZXJjZS1iaWxsaW5nLWZpZWxkcywgXG4ud29vY29tbWVyY2Utc2hpcHBpbmctZmllbGRzIHtcblx0bWFyZ2luOjAgLUBjb2xfbWFyO1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0Lm92aDtcblx0XG5cdCY6YWZ0ZXIge1xuXHRcdC5jbF9hZnRlcjtcblx0fVxuXHRcblx0PiBoMyB7XG5cdFx0bWFyZ2luLWxlZnQ6QGNvbF9tYXI7XG5cdFx0bWFyZ2luLXJpZ2h0OkBjb2xfbWFyO1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdC5vdmg7XG5cdFx0XG5cdFx0Lndvb2NvbW1lcmNlLWZvcm1fX2xhYmVsLWZvci1jaGVja2JveCB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6MDtcblx0XHR9XG5cdH1cblx0XG5cdC5zaGlwcGluZ19hZGRyZXNzIHtcblx0XHQub3ZoO1xuXHR9XG59XG5cbi53b29jb21tZXJjZS1jaGVja291dC1wYXltZW50IHtcblx0cGFkZGluZzozMHB4O1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0Lm92aDtcblx0LmJkO1xuXHRcblx0LnBheW1lbnRfbWV0aG9kcyB7XG5cdFx0bGlzdC1zdHlsZTpub25lO1xuXHRcdG1hcmdpbjowO1xuXHRcdHBhZGRpbmc6MDtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQub3ZoO1xuXHRcdFxuXHRcdGxpIHtcblx0XHRcdHBhZGRpbmc6MThweCAwIDA7XG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdC5vdmg7XG5cdFx0XHRcblx0XHRcdCY6Zmlyc3QtY2hpbGQge1xuXHRcdFx0XHRwYWRkaW5nOjA7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0Y29udGVudDpub25lO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQmLndvb2NvbW1lcmNlLW5vdGljZSB7XG5cdFx0XHRcdG1hcmdpbjowO1xuXHRcdFx0XHRwYWRkaW5nOjE1cHg7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdGxhYmVsIHtcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdFx0ZmxvYXQ6bm9uZTtcblx0XHRcdFxuXHRcdFx0aW1nIHtcblx0XHRcdFx0LmRuO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHQucGF5bWVudF9ib3gge1xuXHRcdFx0bWFyZ2luOjE3cHggMCAwO1xuXHRcdFx0cGFkZGluZzoyNHB4IDI1cHg7XG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdC5iZDtcblx0XHRcdC5jbDtcblx0XHRcdFxuXHRcdFx0JjpiZWZvcmUsXG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0Y29udGVudDonJztcblx0XHRcdFx0Ym9yZGVyLWxlZnQ6MTBweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRcdFx0Ym9yZGVyLXJpZ2h0OjEwcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdFx0XHRsZWZ0OjMwcHg7XG5cdFx0XHRcdC5iZGIoMTNweCk7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0dG9wOi0xM3B4O1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0dG9wOi0xMXB4O1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHRwIHtcblx0XHRcdFx0bWFyZ2luOjA7XG5cdFx0XHRcdHBhZGRpbmc6MDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQud29vY29tbWVyY2UtdGVybXMtYW5kLWNvbmRpdGlvbnMtd3JhcHBlciB7XG5cdFx0cGFkZGluZzozMHB4IDAgMDtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQub3ZoO1xuXHRcdFxuXHRcdD4gKiB7XG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRcdGZsb2F0Om5vbmU7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG5cdFx0fVxuXHRcdFxuXHRcdC5mb3JtLXJvdyB7XG5cdFx0XHR3aWR0aDphdXRvO1xuXHRcdFx0cGFkZGluZzowO1xuXHRcdFx0bWFyZ2luOjEwcHggMjBweCAxMHB4IDA7XG5cdFx0XHRkaXJlY3Rpb246cnRsO1xuXHRcdFx0Lm92aDtcblx0XHRcdFxuXHRcdFx0PiAqIHtcblx0XHRcdFx0ZGlyZWN0aW9uOmx0cjtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0bGFiZWwge1xuXHRcdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xuXHRcdFx0XHRwYWRkaW5nOjAgMCAwIDVweDtcblx0XHRcdFx0XG5cdFx0XHRcdHNwYW4ge1xuXHRcdFx0XHRcdGRpc3BsYXk6aW5saW5lO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdC5pbnB1dC1jaGVja2JveCB7XG5cdFx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG5cdFx0XHRcdGZsb2F0Om5vbmU7XG5cdFx0XHRcdHBvc2l0aW9uOnN0YXRpYztcblx0XHRcdFx0Lm9wKDEpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4ud29vY29tbWVyY2UtcGFzc3dvcmQtc3RyZW5ndGgge1xuXHRwYWRkaW5nOjIwcHggMCAwO1xufVxuXG4ud29vY29tbWVyY2UtdGVybXMtYW5kLWNvbmRpdGlvbnMge1xuXHR3b3JkLXdyYXA6YnJlYWstd29yZDtcblx0bWF4LXdpZHRoOjEwMCU7XG5cdG1heC1oZWlnaHQ6bm9uZSAhaW1wb3J0YW50O1xuXHRvdmVyZmxvdzp2aXNpYmxlICFpbXBvcnRhbnQ7XG5cdFxuXHQuY21zbWFzdGVyc19yb3dfaW5uZXIge1xuXHRcdHdpZHRoOjEwMCU7XG5cdH1cbn1cblxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBPcmRlclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxudWwub3JkZXJfZGV0YWlscyB7XG5cdGxpc3Qtc3R5bGU6bm9uZTtcblx0bWFyZ2luOjAgMCAzMHB4O1xuXHRwYWRkaW5nOjA7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHR3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7XG5cdC5kaXNwbGF5X2ZsZXg7XG5cdC5vdmg7XG5cdC5iZCgxcHgpO1xuXHRcblx0bGkge1xuXHRcdHdpZHRoOjEwMCU7XG5cdFx0bWFyZ2luOjA7XG5cdFx0cGFkZGluZzoxN3B4IDE1cHggMTNweDtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQub3ZoO1xuXHRcdFxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGNvbnRlbnQ6bm9uZTtcblx0XHR9XG5cdFx0XHRcdFxuXHRcdHN0cm9uZyB7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0bWFyZ2luOjE3cHggLTE1cHggLTEzcHg7XG5cdFx0XHRwYWRkaW5nOjE3cHggMTVweCAxM3B4O1xuXHRcdH1cblx0fVxufVxuXG4ud29vY29tbWVyY2UtcGFnZS53b29jb21tZXJjZS1vcmRlci1yZWNlaXZlZCAud29vY29tbWVyY2UgPiBoMiB7XG5cdHBhZGRpbmctdG9wOjMwcHg7XG59XG5cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRHluYW1pYyBDYXJ0XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uY21zbWFzdGVyc19oZWFkZXJfY2FydF9saW5rIHtcblx0LmRuO1xuXHRcblx0LmNvdW50X3dyYXAge1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdGZvbnQtc2l6ZToyMHB4O1xuXHRcdGxpbmUtaGVpZ2h0OjE4cHg7XG5cdFx0d2lkdGg6MjBweDtcblx0XHRoZWlnaHQ6MjBweDtcblx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0LnRhbDtcblx0XHRcblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRtYXJnaW46MDtcblx0XHRcdHZlcnRpY2FsLWFsaWduOmJvdHRvbTtcblx0XHR9XG5cdFx0XG5cdFx0JjphZnRlciB7XG5cdFx0XHQudmFsaWduX2FmdGVyO1xuXHRcdH1cblx0fVxuXHRcblx0LmNvdW50IHtcblx0XHRmb250LXNpemU6OXB4O1xuXHRcdGxpbmUtaGVpZ2h0OjE2cHg7XG5cdFx0Zm9udC13ZWlnaHQ6NTAwO1xuXHRcdGZvbnQtc3R5bGU6bm9ybWFsO1xuXHRcdC5iZHJzKDUwJSk7XG5cdFx0LnRhYztcblx0XHQucG9zX2FicygxNnB4LCAxNnB4LCBhdXRvLCAtOHB4LCAtOHB4LCBhdXRvKTtcblx0fVxufVxuXG4uY21zbWFzdGVyc19keW5hbWljX2NhcnRfd3JhcCB7XG5cdGhlaWdodDoxMDAlO1xuXHRtYXJnaW46MCAwIDAgMTVweDtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdC5mcjtcblx0XG5cdC5lbmFibGVfaGVhZGVyX2NlbnRlcmVkICYge1xuXHRcdGZsb2F0Om5vbmU7XG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdH1cblx0XG5cdC5oZWFkZXJfbWlkICYge1xuXHRcdG1hcmdpbi1yaWdodDoxNXB4O1xuXHR9XG5cdFxuXHQmOmFmdGVyIHtcblx0XHQudmFsaWduX2FmdGVyO1xuXHR9XG59XG5cbi5jbXNtYXN0ZXJzX2R5bmFtaWNfY2FydCB7XG5cdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHR3b3JkLXdyYXA6YnJlYWstd29yZDtcblx0XG5cdC5yZW1vdmUge1xuXHRcdCNwYWdlICYge1xuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0XHRsZWZ0OmF1dG87XG5cdFx0XHRyaWdodDowO1xuXHRcdFx0dG9wOi0xcHg7XG5cdFx0fVxuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19keW5hbWljX2NhcnRfYnV0dG9uIHtcblx0XHRmb250LXNpemU6MDtcblx0XHRsaW5lLWhlaWdodDowO1xuXHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0LmJkcnM7XG5cdFx0XG5cdFx0LmNvdW50X3dyYXAge1xuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHRmb250LXNpemU6MjBweDtcblx0XHRcdGxpbmUtaGVpZ2h0OjE4cHg7XG5cdFx0XHR3aWR0aDoyMHB4O1xuXHRcdFx0aGVpZ2h0OjIwcHg7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdC50YWw7XG5cdFx0XHRcblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0bWFyZ2luOjA7XG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOmJvdHRvbTtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdC52YWxpZ25fYWZ0ZXI7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdG1hcmdpbjowO1xuXHRcdFx0LnBvc19hYnM7XG5cdFx0fVxuXHRcdFxuXHRcdC5jb3VudCB7XG5cdFx0XHRmb250LXNpemU6OXB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6MTZweDtcblx0XHRcdGZvbnQtd2VpZ2h0OjUwMDtcblx0XHRcdGZvbnQtc3R5bGU6bm9ybWFsO1xuXHRcdFx0LmJkcnMoNTAlKTtcblx0XHRcdC50YWM7XG5cdFx0XHQucG9zX2FicygxNnB4LCAxNnB4LCBhdXRvLCAtOHB4LCAtOHB4LCBhdXRvKTtcblx0XHR9XG5cdH1cblx0XG5cdC53aWRnZXRfc2hvcHBpbmdfY2FydF9jb250ZW50IHtcblx0XHR3aWR0aDozMjVweDtcblx0XHRwYWRkaW5nOjMwcHggMDtcblx0XHRtYXJnaW46NjBweCAwIDA7XG5cdFx0dmlzaWJpbGl0eTpoaWRkZW47XG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0bGVmdDphdXRvO1xuXHRcdHJpZ2h0OjA7XG5cdFx0dG9wOjEwMCU7XG5cdFx0LmJkKDFweCwgZGFzaGVkKTtcblx0XHQuYmRycygxNXB4KTtcblx0XHR6LWluZGV4OjEwMDA7XG5cdFx0Lm9wKDApICFpbXBvcnRhbnQ7XG5cdFx0XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDonJztcblx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHR3aWR0aDoxMDAlO1xuXHRcdFx0aGVpZ2h0OjQwcHg7XG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0XHRcdGxlZnQ6MDtcblx0XHRcdHRvcDotNDBweDtcblx0XHR9XG4gXHRcdFxuXHRcdC53b29jb21tZXJjZS1taW5pLWNhcnRfX2VtcHR5LW1lc3NhZ2Uge1xuXHRcdFx0cGFkZGluZzowIDIwcHg7XG5cdFx0fVxuXHRcdFxuXHRcdC5jYXJ0X2xpc3Qge1xuXHRcdFx0bGlzdC1zdHlsZTpub25lO1xuXHRcdFx0bWF4LWhlaWdodDozOTVweDtcblx0XHRcdG1hcmdpbjowO1xuXHRcdFx0cGFkZGluZzowIDMwcHg7XG5cdFx0XHRvdmVyZmxvdy14OmhpZGRlbjtcblx0XHRcdG92ZXJmbG93LXk6YXV0bztcblx0XHRcdFxuXHRcdFx0bGkge1xuXHRcdFx0XHRtaW4taGVpZ2h0OjUwcHg7XG5cdFx0XHRcdG1hcmdpbjoyNXB4IDAgMDtcblx0XHRcdFx0cGFkZGluZzowIDMwcHggMCA2NXB4O1xuXHRcdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdFx0Lm92aDtcblx0XHRcdFx0XG5cdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRjb250ZW50Om5vbmU7XG5cdFx0XHRcdH1cblx0XHRcdFx0XG5cdFx0XHRcdCY6Zmlyc3QtY2hpbGQge1xuXHRcdFx0XHRcdG1hcmdpbjowO1xuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0XHQmLmVtcHR5IHtcblx0XHRcdFx0XHRtaW4taGVpZ2h0OjFweDtcblx0XHRcdFx0XHRwYWRkaW5nOjAgMzBweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHRhIHtcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0aW1nIHtcblx0XHRcdFx0aW1hZ2UtcmVuZGVyaW5nOmF1dG87XG5cdFx0XHRcdC5wb3NfYWJzKDUwcHgsIDUwcHgsIDAsIGF1dG8sIDAsIGF1dG8pO1xuXHRcdFx0XHQuYmRycyg2cHgpO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQucXVhbnRpdHkge1xuXHRcdFx0XHRkaXJlY3Rpb246cnRsO1xuXHRcdFx0XHRcblx0XHRcdFx0KiB7XG5cdFx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHRcdFx0ZGlyZWN0aW9uOmx0cjtcblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdFx0LmFtb3VudCB7XG5cdFx0XHRcdFx0d2hpdGUtc3BhY2U6bm93cmFwO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFxuXHRcdC50b3RhbCB7XG5cdFx0XHRwYWRkaW5nOjM1cHggMzBweCAwO1xuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XHQub3ZoO1xuXHRcdFx0XG5cdFx0XHRzdHJvbmcge1xuXHRcdFx0XHRtYXJnaW46MCA1cHggMCAwO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHQuYnV0dG9ucyB7XG5cdFx0XHRtYXJnaW46MCAtMiU7XG5cdFx0XHRwYWRkaW5nOjE1cHggMzBweCAwO1xuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XHQub3ZoO1xuXHRcdFx0XG5cdFx0XHQuYnV0dG9uIHtcblx0XHRcdFx0d2lkdGg6NDYlO1xuXHRcdFx0XHRtYXJnaW46MCAyJTtcblx0XHRcdFx0cGFkZGluZzowIDIwcHg7XG5cdFx0XHRcdC5mbDtcblx0XHRcdH1cblxuXHRcdFx0LndjcHBlYy1jYXJ0LXdpZGdldC1idXR0b24ge1xuXHRcdFx0XHRoZWlnaHQ6YXV0bztcblx0XHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdFx0dGV4dC1hbGlnbjpjZW50ZXI7XG5cdFx0XHRcdG1hcmdpbi10b3A6NXB4O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRcblx0Jjpob3ZlciAud2lkZ2V0X3Nob3BwaW5nX2NhcnRfY29udGVudCwgXG5cdC5jbXNtYXN0ZXJzX2R5bmFtaWNfY2FydF9idXR0b246aG92ZXIgKyAud2lkZ2V0X3Nob3BwaW5nX2NhcnRfY29udGVudCwgXG5cdC53aWRnZXRfc2hvcHBpbmdfY2FydF9jb250ZW50OmhvdmVyIHtcblx0XHR2aXNpYmlsaXR5OnZpc2libGU7XG5cdFx0bWFyZ2luLXRvcDo0MHB4O1xuXHRcdC5vcCgxKSAhaW1wb3J0YW50O1xuXHR9XG59XG5cblxuLmNtc21hc3RlcnNfYWRkZWRfcHJvZHVjdF9pbmZvIHtcblx0d2lkdGg6MjYwcHg7XG5cdG1hcmdpbjo0MHB4IDAgMDtcblx0cGFkZGluZzoxNXB4IDIwcHg7XG5cdHZpc2liaWxpdHk6aGlkZGVuO1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0bGVmdDphdXRvO1xuXHRyaWdodDowO1xuXHR0b3A6MTAwJTtcblx0ei1pbmRleDoxMDAxO1xuXHQub3ZoO1xuXHQub3AoMCk7XG5cdFxuXHQuY21zbWFzdGVyc19hZGRlZF9wcm9kdWN0X2luZm9faW1nIHtcblx0XHR3aWR0aDo1MHB4O1xuXHRcdGhlaWdodDo1MHB4O1xuXHRcdC5mbDtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfYWRkZWRfcHJvZHVjdF9pbmZvX3RleHQge1xuXHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0cGFkZGluZzoxNHB4IDAgMTRweCAxNXB4O1xuXHRcdC5vdmg7XG5cdH1cbn1cblxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBXaWRnZXRzXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4ud2lkZ2V0Lndvb2NvbW1lcmNlID4gZm9ybSB7XG5cdG92ZXJmbG93OnZpc2libGU7XG5cdFxuXHQ+ICoge1xuXHRcdG92ZXJmbG93OnZpc2libGU7XG5cdH1cbn1cblxuXG4vKioqKioqKioqKioqKioqKiogV2lkZ2V0IFByb2R1Y3QgU2VhcmNoICoqKioqKioqKioqKioqKioqKi9cbi53aWRnZXRfcHJvZHVjdF9zZWFyY2gge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcbn1cblxuXG4vKioqKioqKioqKioqKioqKiogV2lkZ2V0IExpc3RzICoqKioqKioqKioqKioqKioqKi9cbi53aWRnZXRfbGF5ZXJlZF9uYXYsIFxuLndpZGdldF9sYXllcmVkX25hdl9maWx0ZXJzLCBcbi53aWRnZXRfcHJvZHVjdF9jYXRlZ29yaWVzIHtcblx0dWwge1xuXHRcdG1hcmdpbjowO1xuXHRcdHBhZGRpbmc6MDtcblx0XHRcblx0XHR1bCB7XG5cdFx0XHRtYXJnaW46MCAwIC00cHg7XG5cdFx0XHRwYWRkaW5nOjRweCAwIDAgMTBweDtcblx0XHR9XG5cdFx0XG5cdFx0bGkge1xuXHRcdFx0bWFyZ2luOjA7XG5cdFx0XHRwYWRkaW5nOjRweCAwO1xuXHRcdFx0XG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdGNvbnRlbnQ6bm9uZTtcblx0XHRcdH1cblx0XHRcdFxuXHRcdFx0YSB7XG5cdFx0XHRcdG91dGxpbmU6bm9uZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG4vKioqKioqKioqKioqKioqKiogV2lkZ2V0IFByb2R1Y3QgTGlzdCAqKioqKioqKioqKioqKioqKiovXG4ud2lkZ2V0IHtcblx0PiAucHJvZHVjdF9saXN0X3dpZGdldCB7XG5cdFx0bGlzdC1zdHlsZTpub25lO1xuXHRcdG1hcmdpbjotMThweCAwIDA7XG5cdFx0cGFkZGluZzowO1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdC5vdmg7XG5cdFx0XG5cdFx0bGkge1xuXHRcdFx0bWluLWhlaWdodDo1MnB4O1xuXHRcdFx0bWFyZ2luOjE4cHggMCAwO1xuXHRcdFx0cGFkZGluZzowIDIwcHggMCA2NXB4O1xuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XHQub3ZoO1xuXHRcdFx0XG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdGNvbnRlbnQ6bm9uZTtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0YSB7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdH1cblx0XHRcblx0XHRpbWcge1xuXHRcdFx0aW1hZ2UtcmVuZGVyaW5nOmF1dG87XG5cdFx0XHQucG9zX2Ficyg1MHB4LCA1MHB4LCAwLCBhdXRvLCAycHgsIGF1dG8pO1xuXHRcdH1cblx0XHRcblx0XHQuc3Rhci1yYXRpbmcge1xuXHRcdFx0LmRuO1xuXHRcdH1cblx0XHRcblx0XHQuY21zbWFzdGVyc19zdGFyX3JhdGluZyB7XG5cdFx0XHRtYXJnaW46NXB4IDA7XG5cdFx0fVxuXHRcdFxuXHRcdGlucyB7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246bm9uZTtcblx0XHR9XG5cdH1cbn1cblxuXG4vKioqKioqKioqKioqKioqKiogV2lkZ2V0IFNob3BwaW5nIENhcnQgKioqKioqKioqKioqKioqKioqL1xuLndpZGdldF9zaG9wcGluZ19jYXJ0IHtcblx0cG9zaXRpb246cmVsYXRpdmU7XG5cdHdvcmQtd3JhcDpicmVhay13b3JkO1xuXHQub3ZoO1xuXHRcblx0LnJlbW92ZSB7XG5cdFx0I3BhZ2UgJiB7XG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0XHRcdGxlZnQ6YXV0bztcblx0XHRcdHJpZ2h0OjA7XG5cdFx0XHR0b3A6LTFweDtcblx0XHR9XG5cdH1cblx0XG5cdC53aWRnZXRfc2hvcHBpbmdfY2FydF9jb250ZW50IHtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQub3ZoO1xuXHR9XG5cdFxuXHQuY2FydF9saXN0IHtcblx0XHRsaXN0LXN0eWxlOm5vbmU7XG5cdFx0bWFyZ2luOi0xOHB4IDAgMDtcblx0XHRwYWRkaW5nOjA7XG5cdFx0Lm92aDtcblx0XHRcblx0XHRsaSB7XG5cdFx0XHRtaW4taGVpZ2h0OjUycHg7XG5cdFx0XHRtYXgtd2lkdGg6MzIwcHg7XG5cdFx0XHRtYXJnaW46MThweCAwIDA7XG5cdFx0XHRwYWRkaW5nOjAgMjBweCAwIDY1cHg7XG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdC5vdmg7XG5cdFx0XHRcblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0Y29udGVudDpub25lO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQmLmVtcHR5IHtcblx0XHRcdFx0bWluLWhlaWdodDoxcHg7XG5cdFx0XHRcdHBhZGRpbmc6MCAyMHB4O1xuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHRhIHtcblx0XHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0fVxuXHRcdFxuXHRcdGltZyB7XG5cdFx0XHRpbWFnZS1yZW5kZXJpbmc6YXV0bztcblx0XHRcdC5wb3NfYWJzKDUwcHgsIDUwcHgsIDAsIGF1dG8sIDJweCwgYXV0byk7XG5cdFx0fVxuXHRcdFxuXHRcdC5xdWFudGl0eSB7XG5cdFx0XHRkaXJlY3Rpb246cnRsO1xuXHRcdFx0XG5cdFx0XHQqIHtcblx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHRcdGRpcmVjdGlvbjpsdHI7XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdC5hbW91bnQge1xuXHRcdFx0XHR3aGl0ZS1zcGFjZTpub3dyYXA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQudG90YWwge1xuXHRcdHBhZGRpbmc6MzVweCAwIDA7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0Lm92aDtcblx0XHRcblx0XHRzdHJvbmcge1xuXHRcdFx0cGFkZGluZzowIDdweCAwIDA7XG5cdFx0fVxuXHR9XG5cdFxuXHQuYnV0dG9ucyB7XG5cdFx0bWFyZ2luOjAgLUBjb2xfbWFyO1xuXHRcdHBhZGRpbmc6MTJweCAwIDA7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0Lm92aDtcblx0XHRcblx0XHQuYnV0dG9uIHtcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xuXHRcdFx0d2lkdGg6cm91bmQoMTAwJSAvIDIgLSAoQGNvbF9tYXIgKiAyKSwgMik7XG5cdFx0XHRwYWRkaW5nOjAgMTVweDtcblx0XHRcdG1hcmdpbjowIEBjb2xfbWFyIChAY29sX21hciAqIDIpO1xuXHRcdFx0LmZsO1xuXHRcdH1cblx0fVxufVxuXG4ud2lkZ2V0X3ByaWNlX2ZpbHRlciB7XG5cdC53aWRnZXR0aXRsZSB7XG5cdFx0bWFyZ2luOjAgMCAyN3B4O1xuXHR9XG5cdFxuXHQucHJpY2Vfc2xpZGVyX3dyYXBwZXIge1xuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHRcdC5vdmg7XG5cdH1cblx0XG5cdC5wcmljZV9zbGlkZXIge1xuXHRcdGhlaWdodDoycHg7XG5cdFx0bWFyZ2luOjAgMCA1cHg7XG5cdFx0cGFkZGluZzoxcHg7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdH1cblx0XG5cdC51aS1zbGlkZXItcmFuZ2Uge1xuXHRcdGhlaWdodDoxMDAlO1xuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdHRvcDowO1xuXHR9XG5cdFxuXHQudWktc2xpZGVyLWhhbmRsZSB7XG5cdFx0ZGlzcGxheTpibG9jaztcblx0XHR3aWR0aDoxMnB4O1xuXHRcdGhlaWdodDoxMnB4O1xuXHRcdGN1cnNvcjpwb2ludGVyO1xuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xuXHRcdGxlZnQ6MDtcblx0XHRyaWdodDphdXRvO1xuXHRcdHRvcDotNXB4O1xuXHRcdC5iZHJzKDUwJSk7XG5cdFx0XG5cdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdGxlZnQ6MTAwJTtcblx0XHRcdG1hcmdpbi1sZWZ0Oi0xMnB4O1xuXHRcdFx0bWFyZ2luLXJpZ2h0OjA7XG5cdFx0fVxuXHR9XG5cdFxuXHQucHJpY2Vfc2xpZGVyX2Ftb3VudCB7XG5cdFx0cGFkZGluZzoyMHB4IDAgMDtcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHQub3ZoO1xuXHRcdFxuXHRcdC5idXR0b24ge1xuXHRcdFx0LmZyO1xuXHRcdFx0cGFkZGluZzowIDIwcHg7XG5cdFx0fVxuXHRcdFxuXHRcdC5wcmljZV9sYWJlbCB7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0cGFkZGluZzoxMHB4IDVweCAxMHB4IDA7XG5cdFx0XHQub3ZoO1xuXHRcdH1cblx0fVxufVxuXG5cbi8qKioqKioqKioqKioqKioqKiBXaWRnZXQgVGFnIENsb3VkICoqKioqKioqKioqKioqKioqKi9cbi53aWRnZXRfcHJvZHVjdF90YWdfY2xvdWQge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0Lm92aDtcblx0XG5cdGEge1xuXHRcdGxpbmUtaGVpZ2h0OjFlbTtcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRtYXJnaW46MCA0cHggMCAwO1xuXHRcdFxuXHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRtYXJnaW46MDtcblx0XHR9XG5cdH1cbn1cblxuXG4vKioqKioqKioqKioqKioqKiogV2lkZ2V0IFRhZyBDbG91ZCAqKioqKioqKioqKioqKioqKiovXG4ud2lkZ2V0X3JhdGluZ19maWx0ZXIge1xuXHRsaSB7XG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDpub25lO1xuXHRcdH1cblx0fVxufVxuXG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNob3J0Y29kZXNcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5jbXNtYXN0ZXJzX3Byb2R1Y3RzX3Nob3J0Y29kZSwgXG4uY21zbWFzdGVyc19zZWxlY3RlZF9wcm9kdWN0c19zaG9ydGNvZGUge1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0Lm92aDtcbn1cblxuXG4vKlx0T3RoZXIgU2hvcnRjb2RlcyAqL1xuXG4uY3JlYXRlLWFjY291bnQge1xuXHQuaW5wdXQtcmFkaW8gKyBsYWJlbCwgXG5cdC5pbnB1dC1jaGVja2JveCArIGxhYmVsIHtcblx0XHRwYWRkaW5nOjAgMCAwIDI1cHg7XG5cdH1cblx0XG5cdD4gcCB7XG5cdFx0bWFyZ2luLWxlZnQ6QGNvbF9tYXI7XG5cdFx0bWFyZ2luLXJpZ2h0OkBjb2xfbWFyO1xuXHR9XG59XG5cbi5sb2dpbiwgXG4ucmVnaXN0ZXIge1xuXHRtYXJnaW46MCAtQGNvbF9tYXI7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHQub3ZoO1xuXHRcblx0JjphZnRlciB7XG5cdFx0LmNsX2FmdGVyO1xuXHR9XG5cdFxuXHRsYWJlbC5pbmxpbmUge1xuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdHBhZGRpbmc6MDtcblx0XHRtYXJnaW4tbGVmdDoxMHB4O1xuXHRcdG1hcmdpbi1yaWdodDowO1xuXHRcdFxuXHRcdGlucHV0IHtcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0XHRcdG1hcmdpbi10b3A6LTJweDtcblx0XHR9XG5cdH1cblx0XG5cdD4gKiB7XG5cdFx0d2lkdGg6cm91bmQoMTAwJSAtIChAY29sX21hciAqIDIpLCAyKTtcblx0XHRtYXJnaW4tbGVmdDpAY29sX21hcjtcblx0XHRtYXJnaW4tcmlnaHQ6QGNvbF9tYXI7XG5cdFx0Lm92aDtcblx0fVxuXHRcblx0Lmxvc3RfcGFzc3dvcmQge1xuXHRcdC5jbDtcblx0fVxufVxuXG4udHJhY2tfb3JkZXIge1xuXHRtYXJnaW46MCAtQGNvbF9tYXI7XG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xuXHQub3ZoO1xuXHRcblx0JjphZnRlciB7XG5cdFx0LmNsX2FmdGVyO1xuXHR9XG5cdFxuXHQ+ICoge1xuXHRcdG1hcmdpbi1sZWZ0OkBjb2xfbWFyO1xuXHRcdG1hcmdpbi1yaWdodDpAY29sX21hcjtcblx0XHQub3ZoO1xuXHR9XG59XG5cblxuLyogTXlBY2NvdW50ICovXG4ud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24ge1xuXHRtYXJnaW46MCAwIDMwcHg7XG5cdFxuXHQ+IHVsIHtcblx0XHRtYXJnaW46MCAtMTBweDtcblx0XHRcblx0XHQ+IGxpIHtcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdFx0cGFkZGluZzowIDEwcHggMjBweDtcblx0XHRcdFxuXHRcdFx0PiBhIHtcblx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cdFx0XHRcdHBhZGRpbmc6MCAyMHB4O1xuXHRcdFx0XHRjdXJzb3I6cG9pbnRlcjtcblx0XHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0XHRcdC5iZDtcblx0XHRcdFx0LmJkcnMoMjJweCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi53b29jb21tZXJjZS1NeUFjY291bnQtY29udGVudCB7XG5cdD4gLndvb2NvbW1lcmNlLUVkaXRBY2NvdW50Rm9ybSB7XG5cdFx0bWFyZ2luOjAgLUBjb2xfbWFyO1xuXHR9XG5cdFxuXHRmaWVsZHNldCB7XG5cdFx0cGFkZGluZzoyMHB4IDAgMDtcblx0fVxuXHRcblx0Zm9ybSB7XG5cdFx0Lm92aDtcblx0fVxuXHRcblx0cDpub3QoW2NsYXNzXSkge1xuXHRcdHdpZHRoOnJvdW5kKDEwMCUgLSAoQGNvbF9tYXIgKiAyKSwgMik7XG5cdFx0bWFyZ2luOjAgQGNvbF9tYXI7XG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XG5cdFx0LmNsO1xuXHR9XG59XG5cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQ1NTMyBBbmltYXRpb25zXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5odG1sLmNzc3RyYW5zaXRpb25zIHtcblx0Lndvb2NvbW1lcmNlLXN0b3JlLW5vdGljZSBhIHtcblx0XHQudHJhbnMofidvcGFjaXR5IC4zcyBlYXNlLWluLW91dCcpO1xuXHR9XG5cdFxuXHQuY21zbWFzdGVyc19zdGFyX3JhdGluZyAuY21zbWFzdGVyc19zdGFyLFxuXHQucHJvZHVjdC1jYXRlZ29yeSAud29vY29tbWVyY2UtbG9vcC1jYXRlZ29yeV9fdGl0bGUge1xuXHRcdC50cmFucyhjb2xvciAuM3MgZWFzZS1pbi1vdXQpO1xuXHR9XG5cdFxuXHQucmVtb3ZlOmJlZm9yZSxcblx0LnJlbW92ZTphZnRlcixcblx0LmNtc21hc3RlcnNfZHluYW1pY19jYXJ0IC5jbXNtYXN0ZXJzX2R5bmFtaWNfY2FydF9idXR0b24ge1xuXHRcdC50cmFucyh+J2JhY2tncm91bmQtY29sb3IgLjNzIGVhc2UtaW4tb3V0LCBjb2xvciAuM3MgZWFzZS1pbi1vdXQnKTtcblx0fVxuXHRcblx0Lndvb2NvbW1lcmNlLU15QWNjb3VudC1uYXZpZ2F0aW9uID4gdWwgPiBsaSA+IGEge1xuXHRcdC50cmFucyh+J2JvcmRlci1jb2xvciAuM3MgZWFzZS1pbi1vdXQsIGJhY2tncm91bmQtY29sb3IgLjNzIGVhc2UtaW4tb3V0LCBjb2xvciAuM3MgZWFzZS1pbi1vdXQnKTtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcHJvZHVjdCAuY21zbWFzdGVyc19wcm9kdWN0X2FkZF93cmFwIHtcblx0XHQudHJhbnMofidvcGFjaXR5IC40cyBlYXNlLWluLW91dCwgdmlzaWJpbGl0eSAuNHMgZWFzZS1pbi1vdXQnKTtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfZHluYW1pY19jYXJ0IC53aWRnZXRfc2hvcHBpbmdfY2FydF9jb250ZW50IHtcblx0XHQudHJhbnMofidvcGFjaXR5IC4zcyBlYXNlLWluLW91dCwgbWFyZ2luIC4zcyBlYXNlLWluLW91dCwgdmlzaWJpbGl0eSAuM3MgZWFzZS1pbi1vdXQnKTtcblx0fVxuXHRcblx0LmNtc21hc3RlcnNfcHJvZHVjdCAuY21zbWFzdGVyc19wcm9kdWN0X2ltZyBpbWcsXG5cdC5zaGlwcGluZ19tZXRob2QgKyBsYWJlbDphZnRlciwgXG5cdC5pbnB1dC1yYWRpbyArIGxhYmVsOmFmdGVyLCBcblx0LmlucHV0LWNoZWNrYm94ICsgbGFiZWw6YWZ0ZXIsIFxuXHQud29vY29tbWVyY2UtZm9ybV9fbGFiZWwtZm9yLWNoZWNrYm94IC5pbnB1dC1jaGVja2JveCArIHNwYW46YWZ0ZXIge1xuXHRcdC50cmFucyhhbGwgLjNzIGVhc2UtaW4tb3V0KTtcblx0fVxufVxuXG4iLCJcclxuQGlucHV0X3BhZDogOHB4O1xyXG5AaW5wdXRfaGVpZ2h0OiA0OHB4O1xyXG5cclxuQGxpbmVfaGVpZ2h0X3BhZDogMjBweDtcclxuQGRlZmF1bHRfbGlzdF90b3BfcGFkOiAxMHB4O1xyXG5AZGVmYXVsdF9saXN0X2xlZnRfcGFkOiAyMHB4O1xyXG5AYmxvY2tzX2hvcl9wYWQ6IDIwcHg7XHJcbkBjb250X3NpZGViYXJfcGFkOiA2MHB4O1xyXG5AY29udF92ZXJ0X3BhZDogODBweDtcclxuXHJcbkBiZHJzX3dpZHRoOiAzMHB4O1xyXG5AYnV0X2JkcnNfd2lkdGg6IEBiZHJzX3dpZHRoO1xyXG5AYnV0X2JkX3dpZHRoOiAxcHg7XHJcblxyXG5AY29sX21hcjogMS4zJTtcclxuXHJcbkByZXNwX2Jsb2Nrc19wYWQ6IDY2Ljg2JTtcclxuXHJcbkBwcmVsb2FkZXJfYmxvZ19kZWZhdWx0X3BhZDogNTUuOCU7XHJcbkBwcmVsb2FkZXJfYmxvZ19tYXNvbnJ5X3BhZDogNjMuMSU7XHJcbkBwcmVsb2FkZXJfYmxvZ190aW1lbGluZV9wYWQ6IDYzLjElO1xyXG5AcHJlbG9hZGVyX29wZW5fcG9zdF9wYWQ6IDY2Ljg2JTtcclxuQHByZWxvYWRlcl9wb3J0Zm9saW9fZ3JpZF9wYWQ6IDcwLjY5JTtcclxuQHByZWxvYWRlcl9vcGVuX3Byb2plY3RfcGFkOiA1NS44JTtcclxuQHByZWxvYWRlcl9wb3N0c19zbGlkZXJfcGFkOiA2My4xJTtcclxuQHByZWxvYWRlcl9wb3N0c19zbGlkZXJfcHJvamVjdF9wYWQ6IDcwLjY5JTtcclxuQHByZWxvYWRlcl9hcmNoaXZlc19wYWQ6IDEwMCU7XHJcblxyXG5Ac2lkZWJhcl93aWR0aDogMjglO1xyXG5AY29udGVudF93aWR0aDogMTAwJSAtIEBzaWRlYmFyX3dpZHRoO1xyXG5cclxuQG1pZF9uYXZfZHJvcGRvd25fd2lkdGg6IDIwNnB4O1xyXG5AbWlkX25hdl9kcm9wZG93bl9wYWRfdG9wOiAxNXB4O1xyXG5AbWlkX25hdl9kcm9wZG93bl9wYWRfYm90OiAxNXB4O1xyXG5AbWlkX25hdl9kcm9wZG93bl92ZXJ0X21hcl9zdGFydDogMjVweDtcclxuQG1pZF9uYXZfZHJvcGRvd25fdmVydF9tYXJfZW5kOiAxNXB4O1xyXG5AbWlkX25hdl9kcm9wZG93bl9ob3JfbWFyX3N0YXJ0OiAxMHB4O1xyXG5AbWlkX25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZDogMnB4O1xyXG5cclxuQGJvdF9uYXZfZHJvcGRvd25fd2lkdGg6IDIwNnB4O1xyXG5AYm90X25hdl9kcm9wZG93bl9wYWRfdG9wOiAxNXB4O1xyXG5AYm90X25hdl9kcm9wZG93bl9wYWRfYm90OiAxNXB4O1xyXG5AYm90X25hdl9kcm9wZG93bl92ZXJ0X21hcl9zdGFydDogMjBweDtcclxuQGJvdF9uYXZfZHJvcGRvd25fdmVydF9tYXJfZW5kOiAwcHg7XHJcbkBib3RfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfc3RhcnQ6IDEwcHg7XHJcbkBib3RfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfZW5kOiAycHg7XHJcblxyXG5AdG9wX25hdl9kcm9wZG93bl93aWR0aDogMTc1cHg7XHJcbkB0b3BfbmF2X2Ryb3Bkb3duX3BhZF90b3A6IDEzcHg7XHJcbkB0b3BfbmF2X2Ryb3Bkb3duX3BhZF9ib3Q6IDEzcHg7XHJcbkB0b3BfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX3N0YXJ0OiAyMHB4O1xyXG5AdG9wX25hdl9kcm9wZG93bl92ZXJ0X21hcl9lbmQ6IDBweDtcclxuQHRvcF9uYXZfZHJvcGRvd25faG9yX21hcl9zdGFydDogMjBweDtcclxuQHRvcF9uYXZfZHJvcGRvd25faG9yX21hcl9lbmQ6IDJweDtcclxuXHJcbkBjb250X3dpZHRoX2RlZjogOTgwcHg7XHJcbkBjb250X3dpZHRoX2xhcmdlOiAxMjAwcHg7XHJcbkBjb250X3dpZHRoX2Z1bGw6IDEwMCU7XHJcbkBjb250X3dpZHRoX21pbjogMzIwcHg7XHJcblxyXG5AaW5wdXRfdGV4dDogZSgnaW5wdXQ6bm90KFt0eXBlPWJ1dHRvbl0pOm5vdChbdHlwZT1jaGVja2JveF0pOm5vdChbdHlwZT1maWxlXSk6bm90KFt0eXBlPWhpZGRlbl0pOm5vdChbdHlwZT1pbWFnZV0pOm5vdChbdHlwZT1yYWRpb10pOm5vdChbdHlwZT1yZXNldF0pOm5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9Y29sb3JdKTpub3QoW3R5cGU9cmFuZ2VdKScpO1xyXG5cclxuQG1vbml0b3JfbGFyZ2U6IH4nKG1pbi13aWR0aDogMTQ0MHB4KSc7XHJcbkBtb25pdG9yX21lZGl1bTogficobWluLXdpZHRoOiAxMDI1cHgpJztcclxuQG1vbml0b3JfdGFibGV0OiB+JyhtYXgtd2lkdGg6IDEwMjRweCknO1xyXG5AbW9uaXRvcl90YWJsZXRfOTUwOiB+JyhtYXgtd2lkdGg6IDk1MHB4KSc7XHJcbkBtb25pdG9yX3RhYmxldF9zbWFsbDogficobWF4LXdpZHRoOiA3NjhweCknO1xyXG5AbW9uaXRvcl90YWJsZXRfNjAwOiB+JyhtYXgtd2lkdGg6IDYwMHB4KSc7XHJcbkBtb25pdG9yX3Bob25lOiB+JyhtYXgtd2lkdGg6IDU0MHB4KSc7XHJcbkBtb25pdG9yX3Bob25lX3NtYWxsOiB+JyhtYXgtd2lkdGg6IDMyMHB4KSc7XHJcblxyXG5cclxuXHJcbi5mbCAoKSB7XHJcblx0ZmxvYXQ6bGVmdDtcclxufVxyXG5cclxuLmZyICgpIHtcclxuXHRmbG9hdDpyaWdodDtcclxufVxyXG5cclxuLmRuICgpIHtcclxuXHRkaXNwbGF5Om5vbmU7XHJcbn1cclxuXHJcbi50YWwgKCkge1xyXG5cdHRleHQtYWxpZ246bGVmdDtcclxufVxyXG5cclxuLnRhYyAoKSB7XHJcblx0dGV4dC1hbGlnbjpjZW50ZXI7XHJcbn1cclxuXHJcbi50YXIgKCkge1xyXG5cdHRleHQtYWxpZ246cmlnaHQ7XHJcbn1cclxuXHJcbi5jbCAoKSB7XHJcblx0Y2xlYXI6Ym90aDtcclxufVxyXG5cclxuLm92aCAoKSB7XHJcblx0b3ZlcmZsb3c6aGlkZGVuO1xyXG59XHJcblxyXG4ubTBhICgpIHtcclxuXHRtYXJnaW46MCBhdXRvO1xyXG59XHJcblxyXG4uYmQgKEB3OjFweDsgQHQ6c29saWQpIHtcclxuXHRib3JkZXItd2lkdGg6QHc7XHJcblx0Ym9yZGVyLXN0eWxlOkB0O1xyXG59XHJcblxyXG4uYmR0IChAdzoxcHg7IEB0OnNvbGlkKSB7XHJcblx0Ym9yZGVyLXRvcC13aWR0aDpAdztcclxuXHRib3JkZXItdG9wLXN0eWxlOkB0O1xyXG59XHJcblxyXG4uYmRiIChAdzoxcHg7IEB0OnNvbGlkKSB7XHJcblx0Ym9yZGVyLWJvdHRvbS13aWR0aDpAdztcclxuXHRib3JkZXItYm90dG9tLXN0eWxlOkB0O1xyXG59XHJcblxyXG4uYmRyIChAdzoxcHg7IEB0OnNvbGlkKSB7XHJcblx0Ym9yZGVyLXJpZ2h0LXdpZHRoOkB3O1xyXG5cdGJvcmRlci1yaWdodC1zdHlsZTpAdDtcclxufVxyXG5cclxuLmJkbCAoQHc6MXB4OyBAdDpzb2xpZCkge1xyXG5cdGJvcmRlci1sZWZ0LXdpZHRoOkB3O1xyXG5cdGJvcmRlci1sZWZ0LXN0eWxlOkB0O1xyXG59XHJcblxyXG4uY29sb3Jfd2hpdGVfb3BhY2l0eSAoQG9wOi41KSB7XHJcblx0Y29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCBAb3ApO1xyXG59XHJcblxyXG4uYmdfd2hpdGVfb3BhY2l0eSAoQG9wOi41KSB7XHJcblx0YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIEBvcCk7XHJcbn1cclxuXHJcbi5mdWxsd2lkdGhfaW5fYmxvY2sgKCkge1xyXG5cdHdpZHRoOjEwMCU7XHJcblx0aGVpZ2h0OjEwMCU7XHJcblx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0dG9wOjA7XHJcblx0bGVmdDowO1xyXG59XHJcblxyXG4ub3AgKEBvcDouNSkge1xyXG5cdG9wYWNpdHk6QG9wO1xyXG59XHJcblxyXG4uZGlzcGxheV9mbGV4ICgpIHtcclxuXHRkaXNwbGF5Oi13ZWJraXQtZmxleDtcclxuXHRkaXNwbGF5Oi1tb3otZmxleDtcclxuXHRkaXNwbGF5Oi1tcy1mbGV4O1xyXG5cdGRpc3BsYXk6ZmxleDtcclxufVxyXG5cclxuLmRpc3BsYXlfaW5saW5lX2ZsZXggKCkge1xyXG5cdGRpc3BsYXk6LXdlYmtpdC1pbmxpbmUtZmxleDtcclxuXHRkaXNwbGF5Oi1tb3otaW5saW5lLWZsZXg7XHJcblx0ZGlzcGxheTotbXMtaW5saW5lLWZsZXg7XHJcblx0ZGlzcGxheTppbmxpbmUtZmxleDtcclxufVxyXG5cclxuLmZsZXhfZGlyZWN0aW9uIChAZDpyb3cpIHtcclxuXHQtd2Via2l0LWZsZXgtZGlyZWN0aW9uOkBkO1xyXG5cdC1tb3otZmxleC1kaXJlY3Rpb246QGQ7XHJcblx0LW1zLWZsZXgtZGlyZWN0aW9uOkBkO1xyXG5cdGZsZXgtZGlyZWN0aW9uOkBkO1xyXG59XHJcblxyXG4uZmxleF93cmFwIChAZDpub3dyYXApIHtcclxuXHQtd2Via2l0LWZsZXgtd3JhcDpAZDtcclxuXHQtbW96LWZsZXgtd3JhcDpAZDtcclxuXHQtbXMtZmxleC13cmFwOkBkO1xyXG5cdGZsZXgtd3JhcDpAZDtcclxufVxyXG5cclxuLmp1c3RpZnlfY29udGVudCAoQGQ6ZmxleC1zdGFydCkge1xyXG5cdC13ZWJraXQtanVzdGlmeS1jb250ZW50OkBkO1xyXG5cdC1tb3otanVzdGlmeS1jb250ZW50OkBkO1xyXG5cdC1tcy1qdXN0aWZ5LWNvbnRlbnQ6QGQ7XHJcblx0anVzdGlmeS1jb250ZW50OkBkO1xyXG59XHJcblxyXG4uYWxpZ25faXRlbXMgKEBkOnN0cmV0Y2gpIHtcclxuXHQtd2Via2l0LWFsaWduLWl0ZW1zOkBkO1xyXG5cdC1tb3otYWxpZ24taXRlbXM6QGQ7XHJcblx0LW1zLWFsaWduLWl0ZW1zOkBkO1xyXG5cdGFsaWduLWl0ZW1zOkBkO1xyXG59XHJcblxyXG4uYWxpZ25fY29udGVudCAoQGQ6c3RyZXRjaCkge1xyXG5cdC13ZWJraXQtYWxpZ24tY29udGVudDpAZDtcclxuXHQtbW96LWFsaWduLWNvbnRlbnQ6QGQ7XHJcblx0LW1zLWFsaWduLWNvbnRlbnQ6QGQ7XHJcblx0YWxpZ24tY29udGVudDpAZDtcclxufVxyXG5cclxuLmNsX2FmdGVyICgpIHtcclxuXHRjb250ZW50OicuJztcclxuXHRkaXNwbGF5OmJsb2NrO1xyXG5cdGNsZWFyOmJvdGg7XHJcblx0aGVpZ2h0OjA7XHJcblx0dmlzaWJpbGl0eTpoaWRkZW47XHJcblx0b3ZlcmZsb3c6aGlkZGVuO1xyXG59XHJcblxyXG4udmFsaWduX2FmdGVyICgpIHtcclxuXHRjb250ZW50OicnO1xyXG5cdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRoZWlnaHQ6MTAwJTtcclxufVxyXG5cclxuLnBvc19hYnMgKEB3OjFlbTsgQGg6MWVtOyBAbDowOyBAcjowOyBAdDowOyBAYjowKSB7XHJcblx0d2lkdGg6QHc7XHJcblx0aGVpZ2h0OkBoO1xyXG5cdG1hcmdpbjphdXRvICFpbXBvcnRhbnQ7XHJcblx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0bGVmdDpAbDtcclxuXHRyaWdodDpAcjtcclxuXHR0b3A6QHQ7XHJcblx0Ym90dG9tOkBiO1xyXG59XHJcblxyXG4uYmRieCAoKSB7XHJcblx0LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7XHJcblx0LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7XHJcblx0Ym94LXNpemluZzpib3JkZXItYm94O1xyXG59XHJcblxyXG4uY3RieCAoKSB7XHJcblx0LXdlYmtpdC1ib3gtc2l6aW5nOmNvbnRlbnQtYm94O1xyXG5cdC1tb3otYm94LXNpemluZzpjb250ZW50LWJveDtcclxuXHRib3gtc2l6aW5nOmNvbnRlbnQtYm94O1xyXG59XHJcblxyXG4uYmRycyAoQHJhZGl1czpAYmRyc193aWR0aCkge1xyXG5cdC13ZWJraXQtYm9yZGVyLXJhZGl1czpAcmFkaXVzO1xyXG5cdGJvcmRlci1yYWRpdXM6QHJhZGl1cztcclxufVxyXG5cclxuLmJ4c2ggKEB4OjA7IEB5OjA7IEBibHVyOjVweDsgQHNwcmVkOjA7IEBhbHBoYTouMDUpIHtcclxuXHQtd2Via2l0LWJveC1zaGFkb3c6QHggQHkgQGJsdXIgQHNwcmVkIHJnYmEoMCwgMCwgMCwgQGFscGhhKTtcclxuXHRib3gtc2hhZG93OkB4IEB5IEBibHVyIEBzcHJlZCByZ2JhKDAsIDAsIDAsIEBhbHBoYSk7XHJcbn1cclxuXHJcbi5ieHNoX3doaXRlIChAeDowOyBAeTowOyBAYmx1cjo1cHg7IEBzcHJlZDowOyBAYWxwaGE6LjA1KSB7XHJcblx0LXdlYmtpdC1ib3gtc2hhZG93OkB4IEB5IEBibHVyIEBzcHJlZCByZ2JhKDI1NSwgMjU1LCAyNTUsIEBhbHBoYSk7XHJcblx0Ym94LXNoYWRvdzpAeCBAeSBAYmx1ciBAc3ByZWQgcmdiYSgyNTUsIDI1NSwgMjU1LCBAYWxwaGEpO1xyXG59XHJcblxyXG4uYnhzaGkgKEB4OjA7IEB5OjA7IEBibHVyOjVweDsgQHNwcmVkOjA7IEBhbHBoYTouMDUpIHtcclxuXHQtd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgQHggQHkgQGJsdXIgQHNwcmVkIHJnYmEoMCwgMCwgMCwgQGFscGhhKTtcclxuXHRib3gtc2hhZG93Omluc2V0IEB4IEB5IEBibHVyIEBzcHJlZCByZ2JhKDAsIDAsIDAsIEBhbHBoYSk7XHJcbn1cclxuXHJcbi5ieHNoaV93aGl0ZSAoQHg6MDsgQHk6MDsgQGJsdXI6NXB4OyBAc3ByZWQ6MDsgQGFscGhhOi4wNSkge1xyXG5cdC13ZWJraXQtYm94LXNoYWRvdzppbnNldCBAeCBAeSBAYmx1ciBAc3ByZWQgcmdiYSgyNTUsIDI1NSwgMjU1LCBAYWxwaGEpO1xyXG5cdGJveC1zaGFkb3c6aW5zZXQgQHggQHkgQGJsdXIgQHNwcmVkIHJnYmEoMjU1LCAyNTUsIDI1NSwgQGFscGhhKTtcclxufVxyXG5cclxuLmJ4c2hfbm9uZSAoKSB7XHJcblx0LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7XHJcblx0Ym94LXNoYWRvdzpub25lO1xyXG59XHJcblxyXG4udHJhbnMoQHRyYW5zOjApIHdoZW4gbm90IChAdHJhbnMgPSAwKSB7XHJcbiAgICAtd2Via2l0LXRyYW5zaXRpb246QHRyYW5zO1xyXG4gICAgLW1vei10cmFuc2l0aW9uOkB0cmFucztcclxuICAgIC1tcy10cmFuc2l0aW9uOkB0cmFucztcclxuICAgIC1vLXRyYW5zaXRpb246QHRyYW5zO1xyXG4gICAgdHJhbnNpdGlvbjpAdHJhbnM7XHJcbn1cclxuXHJcbi5hcnJvd190b3AgKEBoOjVweDsgQHc6NXB4KSB7XHJcblx0Ym9yZGVyLXRvcDowIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLWxlZnQ6QHcgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItcmlnaHQ6QHcgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItYm90dG9tLXdpZHRoOkBoO1xyXG5cdGJvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7XHJcbn1cclxuXHJcbi5hcnJvd19ib3R0b20gKEBoOjVweDsgQHc6NXB4KSB7XHJcblx0Ym9yZGVyLWJvdHRvbTowIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLWxlZnQ6QHcgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItcmlnaHQ6QHcgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItdG9wLXdpZHRoOkBoO1xyXG5cdGJvcmRlci10b3Atc3R5bGU6c29saWQ7XHJcbn1cclxuXHJcbi5hcnJvd19sZWZ0IChAaDo1cHg7IEB3OjVweCkge1xyXG5cdGJvcmRlci1sZWZ0OjAgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItdG9wOkB3IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLWJvdHRvbTpAdyBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1yaWdodC13aWR0aDpAaDtcclxuXHRib3JkZXItcmlnaHQtc3R5bGU6c29saWQ7XHJcbn1cclxuXHJcbi5hcnJvd19yaWdodCAoQGg6NXB4OyBAdzo1cHgpIHtcclxuXHRib3JkZXItcmlnaHQ6MCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci10b3A6QHcgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItYm90dG9tOkB3IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLWxlZnQtd2lkdGg6QGg7XHJcblx0Ym9yZGVyLWxlZnQtc3R5bGU6c29saWQ7XHJcbn1cclxuXHJcbi5hcnJvd190b3BfbGVmdCAoQGg6NXB4OyBAdzo1cHgpIHtcclxuXHRib3JkZXItcmlnaHQ6QHcgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItbGVmdDowIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLWJvdHRvbTowIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLXRvcC13aWR0aDpAaDtcclxuXHRib3JkZXItdG9wLXN0eWxlOnNvbGlkO1xyXG59XHJcblxyXG4uYXJyb3dfdG9wX3JpZ2h0IChAaDo1cHg7IEB3OjVweCkge1xyXG5cdGJvcmRlci1ib3R0b206QGggc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItdG9wOjAgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItbGVmdDowIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLXJpZ2h0LXdpZHRoOkB3O1xyXG5cdGJvcmRlci1yaWdodC1zdHlsZTpzb2xpZDtcclxufVxyXG5cclxuLmFycm93X2JvdHRvbV9sZWZ0IChAaDo1cHg7IEB3OjVweCkge1xyXG5cdGJvcmRlci10b3A6QGggc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItcmlnaHQ6MCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1ib3R0b206MCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1sZWZ0LXdpZHRoOkB3O1xyXG5cdGJvcmRlci1sZWZ0LXN0eWxlOnNvbGlkO1xyXG59XHJcblxyXG4uYXJyb3dfYm90dG9tX3JpZ2h0IChAaDo1cHg7IEB3OjVweCkge1xyXG5cdGJvcmRlci1sZWZ0OkB3IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLXRvcDowIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLXJpZ2h0OjAgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItYm90dG9tLXdpZHRoOkBoO1xyXG5cdGJvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7XHJcbn1cclxuXHJcbi5kZWZhdWx0X2xpc3QgKEB3OjRweDsgQGg6NHB4OyBAbTowIDEwcHggMCAwOyBAYmRyczo1MCUpIHtcclxuXHRsaXN0LXN0eWxlLXR5cGU6bm9uZTtcclxuXHRcclxuXHQ+IGxpIHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRjb250ZW50OicnO1xyXG5cdFx0XHRsaW5lLWhlaWdodDoxZW07XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHR3aWR0aDpAdztcclxuXHRcdFx0aGVpZ2h0OkBoO1xyXG5cdFx0XHRtYXJnaW46QG07XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdC5iZHJzKEBiZHJzKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5kZWZhdWx0X2Jsb2NrcXVvdGUgKCkge1xyXG5cdHBhZGRpbmc6MDtcclxuXHRtYXJnaW46MCAwIDIwcHg7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0cXVvdGVzOm5vbmU7XHJcblx0LmJkKDApO1xyXG5cdC50YWM7XHJcblx0XHJcblx0JjpiZWZvcmUsXHJcblx0JjphZnRlciB7XHJcblx0XHRjb250ZW50Om5vbmU7XHJcblx0fVxyXG5cdFxyXG5cdHA6bGFzdC1vZi10eXBlIHtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0cGFkZGluZzowO1xyXG5cdH1cclxuXHRcclxuXHRjaXRlIHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRtYXJnaW4tdG9wOjEwcHg7XHJcblx0fVxyXG59XHJcblxyXG4uZGVmYXVsdF90YWJsZSAoKSB7XHJcblx0Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO1xyXG5cdGJvcmRlci1zcGFjaW5nOjA7XHJcblx0d2lkdGg6MTAwJTtcclxuXHRtYXJnaW4tYm90dG9tOkBsaW5lX2hlaWdodF9wYWQ7XHJcblx0XHJcblx0Y2FwdGlvbiB7XHJcblx0XHR0ZXh0LWFsaWduOmNlbnRlcjtcclxuXHRcdHBhZGRpbmc6MjBweDtcclxuXHR9XHJcblx0XHJcblx0dGgsXHJcblx0dGQge1xyXG5cdFx0LmJkKDApOyAvKiBmb3IgZ3V0ZW5iZXJnICovXHJcblx0XHQuYmRiO1xyXG5cdH1cclxuXHRcclxuXHQvKiBmb3IgZ3V0ZW5iZXJnIHN0YXJ0ICovXHJcblx0Ji5pcy1zdHlsZS1zdHJpcGVzIHtcclxuXHRcdC5iZCgwKTtcclxuXHRcdFxyXG5cdFx0dHI6bnRoLWNoaWxkKG9kZCkge1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0XHR9XHJcblx0fVxyXG5cdC8qIGZvciBndXRlbmJlcmcgZW5kICovXHJcblx0XHJcblx0dGhlYWQge1xyXG5cdFx0dHIge1xyXG5cdFx0XHQmOmZpcnN0LWNoaWxkIHtcclxuXHRcdFx0XHR0aCB7XHJcblx0XHRcdFx0XHQuYmR0O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0dGgsXHJcblx0XHRcdHRkIHtcclxuXHRcdFx0XHRwYWRkaW5nOjE3cHggMjVweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQrIHRib2R5IHtcclxuXHRcdFx0dHIge1xyXG5cdFx0XHRcdCY6Zmlyc3QtY2hpbGQge1xyXG5cdFx0XHRcdFx0dGgsXHJcblx0XHRcdFx0XHR0ZCB7XHJcblx0XHRcdFx0XHRcdC5iZHQoMCk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdHRib2R5IHtcclxuXHRcdHRyIHtcclxuXHRcdFx0JjpmaXJzdC1jaGlsZCB7XHJcblx0XHRcdFx0dGgsXHJcblx0XHRcdFx0dGQge1xyXG5cdFx0XHRcdFx0LmJkdDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdHRoLFxyXG5cdFx0XHR0ZCB7XHJcblx0XHRcdFx0cGFkZGluZzoxM3B4IDI1cHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0dGZvb3Qge1xyXG5cdFx0dHIge1xyXG5cdFx0XHR0aCxcclxuXHRcdFx0dGQge1xyXG5cdFx0XHRcdHBhZGRpbmc6MTZweCAyNXB4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdHRoLFxyXG5cdHRkIHtcclxuXHRcdC5iZGI7XHJcblx0fVxyXG5cdFxyXG5cdHRyIHtcclxuXHRcdHRoLFxyXG5cdFx0dGQge1xyXG5cdFx0XHQmOmZpcnN0LWNoaWxkIHtcclxuXHRcdFx0XHQuYmRsO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRcdC5iZHI7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Y2FwdGlvbiB7XHJcblx0XHR0ZXh0LWFsaWduOmNlbnRlcjtcclxuXHRcdHBhZGRpbmc6MjBweDtcclxuXHR9XHJcbn1cclxuXHJcbi5kZWZhdWx0X2J1dHRvbiAoKSB7XHJcblx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0cGFkZGluZzowIDM1cHg7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0d2hpdGUtc3BhY2U6bm93cmFwO1xyXG5cdC50YWM7XHJcblx0LmJkKEBidXRfYmRfd2lkdGgpO1xyXG5cdC5iZHJzKEBidXRfYmRyc193aWR0aCk7XHJcbn1cclxuXHJcbi5kZWZhdWx0X3NlbGVjdCAoQHBsdWdpbjowKSB7XHJcblx0bGluZS1oZWlnaHQ6MWVtO1xyXG5cdHRleHQtaW5kZW50OjAuMDFweDtcclxuXHR0ZXh0LW92ZXJmbG93OicnO1xyXG5cdG1pbi13aWR0aDoxMDBweDtcclxuXHRtYXgtd2lkdGg6MTAwJTtcclxuXHRoZWlnaHQ6QGlucHV0X2hlaWdodDtcclxuXHRwYWRkaW5nOkBpbnB1dF9wYWQgNDBweCBAaW5wdXRfcGFkIDI1cHg7XHJcblx0YmFja2dyb3VuZC1wb3NpdGlvbjoxMDAlIGNlbnRlcjtcclxuXHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XHJcblx0LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7XHJcblx0LW1vei1hcHBlYXJhbmNlOm5vbmU7XHJcblx0LW1zLWFwcGVhcmFuY2U6bm9uZTtcclxuXHRhcHBlYXJhbmNlOm5vbmUgIWltcG9ydGFudDtcclxuXHQuYmQ7XHJcblx0LmJkcnMoQGJkcnNfd2lkdGgpO1xyXG5cdFxyXG5cdCYgd2hlbiAoQHBsdWdpbiA+IDApIHtcclxuXHRcdGJhY2tncm91bmQtaW1hZ2U6dXJsKCcuLi8uLi8uLi8uLi9pbWcvc2VsZWN0LnBuZycpO1xyXG5cdH1cclxuXHRcclxuXHQmIHdoZW4gKEBwbHVnaW4gPSAwKSB7XHJcblx0XHRiYWNrZ3JvdW5kLWltYWdlOnVybCgnLi4vLi4vLi4vaW1nL3NlbGVjdC5wbmcnKTtcclxuXHR9XHJcbn0iXSwiZmlsZSI6InBsdWdpbi1zdHlsZS5jc3MifQ== */
