/* =================================================================== */
/* ! Core Brand Palette
/* =================================================================== */
/* Pale navy tint - settings headings, icon chips */
/* =================================================================== */
/* ! Theme Colors
/* =================================================================== */
/* Primary Action Color */
/* Used for 'Coming Soon' banner and CTA buttons. */
/* Success / Secondary Theme Color */
/* Accent / Tertiary Theme Color */
/* Danger / Error Colors */
/* Specific UI Colors */
/* For Admin note border */
/* For Nurse note border */
/* =================================================================== */
/* ! Greys & Neutrals
/* =================================================================== */
/* Text */
/* Primary text on light backgrounds */
/* Subtitles and helper text */
/* Modal body text */
/* Borders & UI */
/* Form control borders */
/* btn-lost border */
/* Navigation component */
/* Backgrounds */
/* Alternate table color */
/* Disabled button background */
/* =================================================================== */
/* ! Dark Theme (Navy)
/* Used for website landing pages
/* =================================================================== */
/* Modal titles, processing text */
/* Modal backdrop */
/* Sticky header */
/* =================================================================== */
/* ! Transparent Whites
/* =================================================================== */
/* Card backgrounds */
/* Borders */
/* Body text on dark bg */
/* =================================================================== */
/* ! Transparent Blacks
/* =================================================================== */
/* =================================================================== */
/* ! Transparent Theme Colors
/* =================================================================== */
/* Cyan Tints */
/* Form focus shadow */
/* Green Tints */
/* Yellow Tints */
/* Navy Tints */
/* Lavender Tints */
/* =================================================================== */
/* ! Warning Callout
/* =================================================================== */
/* =================================================================== */
/* ! Typography
/* =================================================================== */
/* Font Family */
/* Font Weights */
/* Font Sizes */
/* Line Heights */
/* =================================================================== */
/* ! Sizing & Layout
/* =================================================================== */
/* Border Radius */
/* =================================================================== */
/* ! Shadows
/* =================================================================== */
@font-face {
    font-family: 'Gordita Heavy Italic';
    src: url('./fonts/gorditablackitalic-webfont.woff2') format('woff2'), url('./fonts/gorditablackitalic-webfont.woff') format('woff'), url('./fonts/gorditablackitalic-webfont.ttf') format('truetype');
    font-weight: 900;
    font-style: italic;
}
.font-heavy-italic {
    font-family: 'Gordita Heavy Italic';
}
@font-face {
    font-family: 'Gordita Heavy';
    src: url('./fonts/gorditablack-webfont.woff2') format('woff2'), url('./fonts/gorditablack-webfont.woff') format('woff'), url('./fonts/gorditablack-webfont.ttf') format('truetype');
    font-weight: 900;
    font-style: normal;
}
.font-heavy {
    font-family: 'Gordita Heavy';
}
@font-face {
    font-family: 'Gordita Bold Italic';
    src: url('./fonts/gorditabolditalic-webfont.woff2') format('woff2'), url('./fonts/gorditabolditalic-webfont.woff') format('woff'), url('./fonts/gorditabolditalic-webfont.ttf') format('truetype');
    font-weight: 700;
    font-style: italic;
}
.font-bold-italic, .selected-doc-wrap .selected-doc-name, .retinopathy-popup .table-bordered th, .maculopathy-popup .table-bordered th {
    font-family: 'Gordita Bold Italic';
}
@font-face {
    font-family: 'Gordita Bold';
    src: url('./fonts/gorditabold-webfont.woff2') format('woff2'), url('./fonts/gorditabold-webfont.woff') format('woff'), url('./fonts/gorditabold-webfont.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
}
.font-bold, .form-impact .radio-flex-wrap .radio-inline .marker, .table-complete th, .question-wrap span, .terms h1, .btn-next, .blue-box .header .h4, .pre-op-header h3, .pre-op-header h4, .patients-empty h4, .menu-section h4, .menu-item h4, .patient-header h3, .patient-header h4, .patient-header h5, .operation-form label, .operation-note-header h3, .operation-note-header h4, .injection-block .injection-block-title {
    font-family: 'Gordita Bold';
}
@font-face {
    font-family: 'Gordita Medium Italic';
    src: url('./fonts/gorditamediumitalic-webfont.woff2') format('woff2'), url('./fonts/gorditamediumitalic-webfont.woff') format('woff'), url('./fonts/gorditamediumitalic-webfont.ttf') format('truetype');
    font-weight: 600;
    font-style: italic;
}
.font-medium-italic {
    font-family: 'Gordita Medium Italic';
}
@font-face {
    font-family: 'Gordita Medium';
    src: url('./fonts/gorditamedium-webfont.woff2') format('woff2'), url('./fonts/gorditamedium-webfont.woff') format('woff'), url('./fonts/gorditamedium-webfont.ttf') format('truetype');
    font-weight: 600;
    font-style: normal;
}
.font-medium, .form-impact .form-group-header .radio-flex-wrap .radio-inline, .popover h3.popover-title, .popover-normal h3.popover-title, .terms h3 {
    font-family: 'Gordita Medium';
}
@font-face {
    font-family: 'Gordita Regular Italic';
    src: url('./fonts/gorditaregularitalic-webfont.woff2') format('woff2'), url('./fonts/gorditaregularitalic-webfont.woff') format('woff'), url('./fonts/gorditaregularitalic-webfont.ttf') format('truetype');
    font-weight: 500;
    font-style: italic;
}
.font-regular-italic, .text-area-wrap .count-remaining, .retinopathy-popup td, .retinopathy-popup p, .maculopathy-popup td, .maculopathy-popup p, .table-incisions th, .table-incisions td {
    font-family: 'Gordita Regular Italic';
}
@font-face {
    font-family: 'Gordita Regular';
    src: url('./fonts/gorditaregular-webfont.woff2') format('woff2'), url('./fonts/gorditaregular-webfont.woff') format('woff'), url('./fonts/gorditaregular-webfont.ttf') format('truetype');
    font-weight: 500;
    font-style: normal;
}
.font-regular, .head-no-link, .search-form .form-group .form-control, .filter-select, .form-impact label.control-label, .popover .popover-content, .popover-normal .popover-content, .table-complete td:nth-child(1), .selected-doc-wrap .selected-doc-practice, .form-exam, .form-exam select, .form-exam .form-control, .terms, .pre-op-form, .pre-op-form select, .pre-op-form .form-control, .pre-op-header .head-link, .popover-preop-wrap label, .popover-preop-wrap .form-control, .operation-form, .operation-form select, .operation-form .form-control, .operation-form .marker, .operation-note-header .head-link, .head-link {
    font-family: 'Gordita Regular';
}
@font-face {
    font-family: 'Gordita Light Italic';
    src: url('./fonts/gorditalightitalic-webfont.woff2') format('woff2'), url('./fonts/gorditalightitalic-webfont.woff') format('woff'), url('./fonts/gorditalightitalic-webfont.ttf') format('truetype');
    font-weight: 200;
    font-style: italic;
}
.font-light-italic, .optional {
    font-family: 'Gordita Light Italic';
}
@font-face {
    font-family: 'Gordita Light';
    src: url('./fonts/gorditalight-webfont.woff2') format('woff2'), url('./fonts/gorditalight-webfont.woff') format('woff'), url('./fonts/gorditalight-webfont.ttf') format('truetype');
    font-weight: 200;
    font-style: normal;
}
.font-light {
    font-family: 'Gordita Light';
}
html, body {
	height: 100%;
	font-size: 12px;
	-webkit-font-smoothing: unset !important;
	/*letter-spacing: 1px;*/
}
main {
	min-height: 100vh;
}
.bg-white {
	background: #ffffff;
}
.text-white {
	color: #ffffff;
}
.bg-navy {
	background: #0035d2;
}
.text-navy, .container-welcome-footer .footer-wrap ul a, .selected-doc-wrap .selected-doc-name, .terms h3, .blue-box .header, .pre-op-save-wrap .progression-wrap .save-progress, .table-medication, .pre-op-header h3, .pre-op-header h4, .patients-empty h4, .menu-section h4, .menu-item h4, .patient-header h3, .patient-header h4, .patient-header h5, .operation-note-save-wrap .progression-wrap .save-progress, .table-incisions, .operation-note-header h3, .operation-note-header h4, .operation-note-header h6, .injection-block .injection-block-title {
	color: #0035d2;
}
.bg-darkNavy {
	background: #2a307f;
}
.text-darkNavy {
	color: #2a307f;
}
.bg-cyan {
	background: #00bcd4;
}
.text-cyan {
	color: #00bcd4;
}
.bg-blue {
	background: #2072bb;
}
.text-blue {
	color: #2072bb;
}
.bg-purple {
	background: #9C27B0;
}
.text-purple, .optional {
	color: #9C27B0;
}
.bg-paleBlue {
	background: #f2f6fb;
}
.text-paleBlue {
	color: #f2f6fb;
}
.bg-navGrey {
	background: #e7e9e9;
}
.text-navGrey {
	color: #e7e9e9;
}
.bg-pageBackGround {
	background: #ebecea;
}
.text-pageBackGround {
	color: #ebecea;
}
.bg-textGrey {
	background: #343a40;
}
.text-textGrey, .form-impact label.control-label, .form-impact .form-group-header .radio-flex-wrap .radio-inline, .selected-doc-wrap .selected-doc-practice, .terms {
	color: #343a40;
}
.bg-logoutGrey {
	background: #404141;
}
.text-logoutGrey, .terms h1 {
	color: #404141;
}
.text-red {
	color: #a94442 !important;
}
.text-bright-red {
	color: red;
}
.outline {
	outline: 1px dotted red;
}
.unstyled {
	color: inherit;
	text-decoration: inherit;
	cursor: inherit;
}
.unstyled:active, .unstyled:focus {
    outline: none;
}
.unstyled:hover {
    text-decoration: underline !important;
    color: inherit;
}
.pointer {
	cursor: pointer !important;
}
.text-small {
	font-size: 0.8em;
}
.mb-0, .selected-doc-wrap .selected-doc-practice {
	margin-bottom: 0;
}
.th-no-border {
	/* border-width: 0px !important; */
	border-left-width: 0px !important;
	border-right-width: 0px !important;
	border-bottom-color: #2072bb !important;
	vertical-align:middle !important;
}
.th-border-top {
	border-top-color: #2072bb;
}
.toast-container {
	margin-top: 25%;
}
.flex-half-row {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: row;
	    flex-direction: row;
	-ms-flex-pack: start;
	    justify-content: flex-start;
	-ms-flex-align: baseline;
	    align-items: baseline;
	padding-left: 2em;
	padding-right: 2em;
	padding-top: 8px;
	padding-bottom: 8px;
}
.flex-half-cell {
	width: 50%;
}
.flex-three-cell {
	width: 33%;
	text-align: center;
}
.navy-thin-line {
	height: 1px;
	background-color: #ddd;
	margin-left: 1.5em;
	margin-right: 1.5em;
}
.remove-diagnosis {
	padding: 0;
	margin: 0;
	border: 1px solid #0035d2;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background-color: white;
}
.remove-diagnosis:hover {
    background-color: #0035d2;
    color: white;
}
.remove-procedure {
	padding: 0;
	margin: 0;
	border: 1px solid #ff0000;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background-color: white;
}
.remove-procedure:hover {
    background-color: #ff0000;
    color: white;
}
.arrow-right {
	border: solid #0035d2;
	border-width: 0 2px 2px 0;
	display: inline-block;
	padding: 3px;
	margin-bottom: 2px;
	margin-left: 2px;
	transform: rotate(-45deg);
	-webkit-transform: rotate(-45deg);
}
.text-grey-light {
	color: #343a40;
	font-family: 'Gordita Light';
}
.text-procedure {
	color: #ff0000;
}
.title-container {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: row;
	    flex-direction: row;
	-ms-flex-pack: justify;
	    justify-content: space-between;
	-ms-flex-align: baseline;
	    align-items: baseline;
	margin-bottom: 0.2em;
}
.filter-grey{
	filter: invert(66%) sepia(6%) saturate(173%) hue-rotate(190deg) brightness(89%) contrast(85%);
}
.time-picker {
	margin-left: 1em;
	padding-left: 1em;
    height: 3.0em;
    border-width: 1px;
    border-color: #0035d2;
    border-radius: 24px;
}
.scroll-container {
	position:absolute;
    width: 42.5em;
    height:80%;
	overflow-y: scroll;
	overflow-x: hidden;
	margin-left: 1.5em;
	margin-top: 2em;
}
.scroll-container::-webkit-scrollbar {
	width: 5px; /* Set the width of the scrollbar */
	background: transparent;
	/* position: absolute; */
 }
.scroll-container::-webkit-scrollbar-thumb {
	background-color: #0035d2; /* Set the color of the thumb */
 }
/* Caps the diagnosis list height on the patient dashboard so a long list */
/* doesn't blow out the overall page scroll. */
.diagnosis-scroll-container {
	max-height: 24em;
	overflow-y: auto;
	overflow-x: hidden;
	padding-right: 0.5em;
}
.diagnosis-scroll-container::-webkit-scrollbar {
	width: 5px;
	background: transparent;
}
.diagnosis-scroll-container::-webkit-scrollbar-thumb {
	background-color: #0035d2;
	border-radius: 3px;
}
/* The documents list scrolls in place instead of paging, so the section keeps a fixed height */
/* however many documents a patient has. The scrollbar is left visible rather than overlaid so */
/* the position in the list is always readable. */
.documents-scroll-container {
	max-height: 32em;
	overflow-y: auto;
	overflow-x: hidden;
	padding-right: 0.5em;
	scrollbar-width: thin;
	scrollbar-color: #0035d2 rgba(0, 53, 210, 0.12);
}
.documents-scroll-container::-webkit-scrollbar {
	width: 8px;
}
.documents-scroll-container::-webkit-scrollbar-track {
	background: rgba(0, 53, 210, 0.12);
	border-radius: 4px;
}
.documents-scroll-container::-webkit-scrollbar-thumb {
	background-color: #0035d2;
	border-radius: 4px;
}
.documents-scroll-more {
	padding: 0.5em 0 0.25em;
	text-align: center;
	color: #0035d2;
	font-size: 0.85em;
}
/* Whether the list is still arriving, empty, or short of one of its two halves. Kept above the */
/* scrolling area so it is readable without scrolling to find it. */
.documents-status {
	padding: 0.5em 0 0.25em;
	color: #0035d2;
	font-size: 0.85em;
}
.documents-status--error {
	color: #a94442;
}
/* Paging is replaced by the scrolling above, so ng-table's pager is not shown. */
patient-file-table .ng-table-pager {
	display: none;
}
.progress-note-container {
	border-width: 2px;
	border-style: solid;
	border-color: #0035d2;
	border-radius: 8px;
	margin-bottom: 1em;
	width: 100%;
	min-height: 5em;
	padding: 0.5em;
}
.progress-note-container-delete {
	border-width: 2px;
	border-style: solid;
	border-color: #343a40;
	border-radius: 8px;
	margin-bottom: 1em;
	width: 100%;
	min-height: 5em;
	padding: 0.5em;
}
.progress-note-container-admin {
	border-width: 2px;
	border-style: solid;
	border-color: #d87d4a;
	border-radius: 8px;
	margin-bottom: 1em;
	width: 100%;
	min-height: 5em;
	padding: 0.5em;
}
.progress-note-container-nurse {
	border-width: 2px;
	border-style: solid;
	border-color: #2e7d32;
	border-radius: 8px;
	margin-bottom: 1em;
	width: 100%;
	min-height: 5em;
	padding: 0.5em;
}
.progress-note-container-scheduled {
	border-width: 2px;
	border-style: solid;
	border-color: #00796b;
	border-radius: 8px;
	margin-bottom: 1em;
	width: 100%;
	min-height: 5em;
	padding: 0.5em;
}
.progress-note-container-injection {
	border-width: 2px;
	border-style: solid;
	border-color: #9C27B0;
	border-radius: 8px;
	margin-bottom: 1em;
	width: 100%;
	min-height: 5em;
	padding: 0.5em;
}
.progress-note-bold {
	font-family: 'Gordita Bold';
	font-size: 12px;
	color: black !important;
}
.progress-note-bold-delete {
	font-family: 'Gordita Bold';
	font-size: 12px;
	color: #343a40 !important;
}
.progress-note-link {
	text-decoration: underline;
	font-family: 'Gordita Bold';
}
.panel-title {
    font-size: 14px;
    font-family: 'Gordita Bold';
}
#scrollable-dropdown-menu .dropdown-menu {
	height: 10em;
	overflow-y: auto;
	margin-top: -12.5em;
  }
.error-message {
	color: #a94442;
	display: block;
	margin-top: 5px;
}
.dialog-content-box {
	position: relative;
	height:32rem;
	width: 100%;
}
.invoice-item-cell {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: column;
	    flex-direction: column;
	gap: 0.5rem;
}
.invoice-code-label {
	border-width: 1px;
	border-color: #0035d2;
	border-style: solid;
	padding-left: 0.5rem;
	padding-right: 0.5rem;
}
.invoice-item-row {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: row;
	    flex-direction: row;
	-ms-flex-align: baseline;
	    align-items: baseline;
	gap: 1rem;
}
.invoice-details-container {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: column;
	    flex-direction: column;
	gap: 0.5rem;
	margin-left: 60%;
	margin-right: 4%;
}
.invoice-details-section {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: column;
	    flex-direction: column;
	gap: 0.5rem;
	padding-bottom: 1rem;
	border-bottom-width: 1px;
	border-bottom-color: gray;
	border-bottom-style: solid;
}
.invoice-details-row {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: row;
	    flex-direction: row;
	gap: 1rem;
	color: #0035d2;
	-ms-flex-pack: justify;
	    justify-content: space-between;
}
.view-invoice-modal {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: column;
	    flex-direction: column;
	-ms-flex-pack: center;
	    justify-content: center;
	-ms-flex-align: center;
	    align-items: center;
}
.header-group {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: column;
	    flex-direction: column;
}
.dismiss-close-icon {
	color: #ffffff;
	font-size: 20px;
	-ms-flex-item-align: end;
	    -ms-grid-row-align: end;
	    align-self: end;
	margin-right: 11%;
}
/* A row of action icons inside a table cell. Not a flex container: this class sits on the <td>, and a flex
   table cell drops out of the table's row layout - the browser sizes it to its own content, so the cell's
   bottom border is drawn at the height of the icons and no longer lines up with the cells either side. */
.icons-row {
	white-space: nowrap;
}
.icons-row > * {
    display: inline-block;
    vertical-align: middle;
}
.icons-row > * + * {
    margin-left: 1rem;
}
.md-dialog-container {
	-ms-flex-direction: column;
	    flex-direction: column;
	gap: 0.5rem;
}
#billing-dropdown-menu .dropdown-menu {
	max-height: 20rem;
	overflow-y: auto;
  }
.progress-note-header {
	margin-left: 0px;
	margin-right: 0px;
	display: -ms-flexbox;
	display: flex;
	width: 100%;
	-ms-flex-pack: justify;
	    justify-content: space-between;
	margin-bottom: 1rem;
}
.progress-note-header-child {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-pack: start;
	    justify-content: flex-start;
	gap: 1rem;
}
.fc-toolbar h2 {
	font-size: 16px;
	padding-top: 0.5rem;
}
.nhi-container {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: row;
	    flex-direction: row;
	gap: 1rem;
}
.nhi-container-left {
	width: 50%;
}
.nhi-container-right {
	width: 50%;
}
.name-row-container {
	display: -ms-flexbox;
	display: flex;
	gap: 0.5rem;
}
.red-label {
	color: red !important;
}
.nhi-column {
	max-width: 10rem;
	text-wrap: wrap;
	word-wrap: break-word;
}
.nhi-label {
	text-wrap: wrap;
	word-wrap: break-word;
	max-width: 80%;
}
.progress-note-procedure {
		display: -ms-flexbox;
		display: flex;
		-ms-flex-direction: row;
		    flex-direction: row;
		gap: 1rem;
}
.fc-more-popover {
	max-height: 95%;
	overflow-y: auto;
}
.search-radio-label {
	color: #0035d2 !important;
	font-family: 'Gordita Medium' !important;
	font-size: 16px;
}
.patient-table-text {
	color: #0035d2 !important;
}
.red-text {
	color: red;
}
.text-area-break {
	white-space: pre-line;
	margin-top: -1.5rem;
}
.task-label-container {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: row;
      flex-direction: row;
}
.task-label-child {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  width: 100%;
}
.task-list-patient {
	width: 15%;
	/* text-align: center; */
}
.task-list-assigned {
	width: 20%;
	/* text-align: center; */
}
.task-list-description {
	width: 30%;
	/* text-align: center; */
	
}
.task-list-status {
	width: 5%;
	/* text-align: center; */
}
.task-list-delete {
	width: 3%;
	text-align: center;
}
.task-list-due {
	width: 7%;
	/* text-align: center; */
}
.task-list-label {
	width: 12%;
	/* text-align: center; */
}
.task-list-color {
	width: 2rem;
	height: 2rem;
	/* text-align: center; */
	border-radius: 0.5rem;
}
.task-done {
	text-decoration: line-through;
}
.button-footer {
	display: -ms-flexbox;
	display: flex;
	gap: 1rem;
}
.nav-li {
	height: 2.5rem;
    line-height: 2.5rem;
}
.md-badge {
	z-index: 80 !important;
 }
.sign-buttons-group {
 	display: -ms-flexbox;
 	display: flex;
 	-ms-flex-direction: row;
 	    flex-direction: row;
 	gap: 1rem;
	width: 100%;
	margin-left: 1rem;
 }
.sign-buttons-container {
 	display: -ms-flexbox;
 	display: flex;
 	-ms-flex-direction: row;
 	    flex-direction: row;
	-ms-flex-pack:justify;
	    justify-content:space-between;
 }
.header-left-align > thead > tr > th {
	text-align: left;
}
.lvl-over {
	/* applied to a drop target when a draggable object is over it */
	border: 2px dashed black !important;
}
.lvl-target {
	/* applied to all drop targets when a drag operation begins, used to indicate drop targets on a page */
	background-color: #ddd;
	opacity: .5;
}
[draggable] {
	-moz-user-select: none;
	-webkit-user-select: none;
	-ms-user-select: none;
	    user-select: none;
	/* Required to make elements draggable in old WebKit */
	-khtml-user-drag: element;
	-webkit-user-drag: element;
	cursor: move;
	border:1px solid black;
}
.peg {
	font-weight: bold;
	border-width: 0px;
	border-radius: 4px;
	width: auto;
	height:3rem;
	margin: 10px;
	padding: 0.5rem;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: row;
	    flex-direction: row;
	-ms-flex-pack: center;
	    justify-content: center;
	-ms-flex-align: center;
	    align-items: center;
	background-color: #019CD2;
	color: white;
}
.slot {
	margin-right:2px;
	margin-top:2px;
	width:25px;
	height:25px;
    display:inline-block;
    border: none;
}
.grey {
	background-color: grey;
}
pre strong {
	font-size:12pt;
}
.modal-close {
	z-index: 1;
	position: absolute;
	top: 7rem;
}
.my-drop-zone {
	border: dotted 3px lightgray;
}
.nv-file-over {
	border: dotted 3px red;
}
/* Default class applied to drop zones on over */
.another-file-over-class {
	border: dotted 3px green;
}
.location-container {
	margin-top: 0.5rem;
	border-width: 1px;
	border-color: #0035d2;
	border-radius: 4px;
	border-style: solid;
	padding: 0.5rem;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: column;
	    flex-direction: column;
	color: #0035d2;
}
.popover-container {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: row;
	    flex-direction: row;
	gap: 1rem;
	-ms-flex-align: baseline;
	    align-items: baseline;
}
div.printControls
{
	background-color:#edf0ec;
	height:100px;
	padding: 5px;
	bottom:0;
	display: -ms-flexbox;
	display: flex;
    -ms-flex-direction: row;
        flex-direction: row;
    gap: 1rem;
}
#labelImageDiv
{
	background-color: #b2b2b2;
	padding: 5px;
	margin: 0px;
}
#printDiv
{
	float:right;
	width:126px;
}
#printersDiv
{
	float:left;
}
.progress-bar-warning {
	background-color: #0035d2;
}
.clinic-letters-frame {
	width: 100%;
	max-height: 50vh;
	overflow-y: scroll;
	scrollbar-width: none;
}
.clinic-letters-container {
	border-width: 2px;
	border-style: solid;
	border-color: #0035d2;
	border-radius: 8px;
	margin-bottom: 1em;
	width: 100%;
	min-height: 5em;
	padding: 0.5em;
	cursor: pointer;
}
.clinic-letters-container:hover {
    background-color: #0035d2;
    color: white !important;
}
.clinic-letters-container:hover .clinic-letters-bold {
    color: white !important;
}
.clinic-letters-container .clinic-letters-bold {
    font-family: 'Gordita Bold';
    font-size: 12px;
    color: black !important;
    cursor: pointer;
}
.clinic-letters-content {
	width: 100%;
	display: -ms-flexbox;
	display: flex; 
	-ms-flex-direction: column; 
	    flex-direction: column;
}
.clinic-template-menu {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: row;
	    flex-direction: row;
	-ms-flex-align: end;
	    align-items: end;
}
.clinic-letter-footer {
	margin-left: -55px !important;
	margin-right: -55px !important;
	display: -ms-flexbox !important;
	display: flex !important;
	-ms-flex-direction: row-reverse !important;
	    flex-direction: row-reverse !important;
	padding-top: 1rem !important;
	padding-bottom: 1rem !important;
	margin-bottom: -3rem !important;
}
.md-chips {
	box-shadow: none !important;
}
.care-team-width {
	width: 36rem !important;
}
.note-editor .note-frame .note-editing-area .note-editable {
	color: #000000;
	font-family: 'Gordita Regular', sans-serif;
}
.note-editable>p {
	color: #000000;
}
.note-editor.note-airframe .note-status-output, .note-editor.note-frame .note-status-output {
	border-top-width: 0px !important;
}
@media print {
	@page {
        margin-left: 0.5in;
        margin-right: 0.5in;
        margin-top: 0.3in;
        margin-bottom: 0.3in;
      }
  }
.note-editor-diagnosis-table {
    width: 60%;
	margin-left: 20%;
	table-layout: fixed;
}
.note-editor-diagnosis-table th, .note-editor-diagnosis-table td {
    width: 50%;
    overflow: hidden;
}
.head-no-link {
	color: #0035d2;
	font-size: 14px;
}
.intro-customTooltip * {
  color: #4a4a4a;
  font-size: 15px
}
.intro-customTooltip .introjs-tooltip-title {
  color: #0035d2;
}
.dropdown-menu[uib-typeahead-popup] {
    max-height: 250px;
    overflow-y: auto;
    overflow-x: hidden;
    z-index: 1050;
}
/* .mui-alert {
  padding: 12px 16px;
  margin: 1rem;
  border-radius: 4px;
  font-size: 14px;
  display: flex;
  align-items: center;
  margin-bottom: 12px;
  border: 1px solid transparent;
} */
.mui-alert-info {
  background: #e8f4fd;
  color: #055160;
  border-color: #b6e0fe;
}
.mui-alert-success {
  background: #edf7ed;
  color: #1e4620;
  border-color: #c8e6c9;
}
.mui-alert-warning {
  background: #fff4e5;
  color: #663c00;
  border-color: #ffecb5;
}
.mui-alert-error {
  background: #fdecea;
  color: #611a15;
  border-color: #f5c2c7;
}
.mui-alert {
  position: relative;
  padding: 12px 40px 12px 16px;
  margin: 1rem;
  border-radius: 4px;
  font-size: 14px;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  margin-bottom: 12px;
  border: 1px solid transparent;
}
.mui-alert-close {
  position: absolute;
  right: 8px;
  top: 8px;
  background: transparent;
  border: none;
  font-size: 16px;
  cursor: pointer;
  color: inherit;
  opacity: 0.6;
}
.mui-alert-close:hover {
  opacity: 1;
}
.no-class {
	width: 100%;
	height: 100%;
}
/* Sits beside a document's name while its file is still being analysed. The app's spinner is
   configured page-sized, so this box gives the inline one somewhere its own size to centre in -
   spin.js positions itself against the nearest positioned ancestor. */
.inline-spinner {
	display: inline-block;
	position: relative;
	width: 14px;
	height: 14px;
	vertical-align: middle;
	margin-right: 6px;
}
button.btn {
	border-radius: 24px;
}
.btn-dropdown-multiselect {
	height: 34px;
	text-align: start;
	border-color: #0035d2;
	background-color: #ffffff;
	color: #0035d2;
	padding: 4px 18px;
	font-size: 12px;
	width: 100%;
	min-width: 16em;
	transition: all 0.3s ease;
}
.btn-dropdown-multiselect:hover, .btn-dropdown-multiselect:active {
    color: #ffffff;
    background-color: rgb(0, 45, 179);
    outline: 0;
}
.btn-dropdown-multiselect:focus {
    color: #0035d2;
    outline: 0;
}
.btn-dropdown-multiselect:hover:focus {
    color: #ffffff;
}
.btn-navy {
	background-color: #0035d2;
	color: #ffffff;
	padding: 4px 18px;
	font-size: 12px;
	width: 100%;
	max-width: 220px;
	transition: all 0.3s ease;
}
.btn-navy:hover, .btn-navy:active {
    color: #ffffff;
    background-color: rgb(0, 45, 179);
    outline: 0;
}
.btn-navy:focus {
    color: #ffffff;
    outline: 0;
}
.btn-cancel {
	background-color: transparent;
	color: #343a40;
	padding: 4px 18px;
	font-size: 12px;
	border: 1px solid #bdbec1;
	width: 100%;
	max-width: 220px;
	transition: all 0.3s ease;
}
.btn-cancel:hover, .btn-cancel:active {
    color: #404141;
    background-color: rgb(230, 230, 230);
    outline: 0;
}
.btn-cancel:focus {
    outline: 0;
}
.btn-cyan {
	background-color: #ffffff;
	color: #00bcd4;
	border: 1px solid #00bcd4;
	padding: 4px 18px;
	font-size: 12px;
	width: 100%;
	max-width: 220px;
	transition: background-color 0.3s ease;
}
.btn-cyan:hover, .btn-cyan:active {
    color: #00bcd4;
    background-color: rgb(235, 235, 235);
}
.btn-cyan:focus {
    color: #00bcd4;
    outline: 0;
}
.btn-cyan-solid {
	background-color: #00bcd4;
	color: #ffffff;
	border: 1px solid #00bcd4;
	padding: 4px 18px;
	font-size: 12px;
	width: 100%;
	max-width: 220px;
	transition: background-color 0.3s ease;
}
.btn-cyan-solid:hover, .btn-cyan-solid:active {
    color: #ffffff;
    background-color: rgb(0, 167, 189);
}
.btn-cyan-solid:focus {
    color: #ffffff;
    outline: 0;
}
.btn-morph-wrap {
	position: relative;
	overflow: visible;
}
.btn-morph-wrap .btn-morph {
    width: 270px;
    max-width: 270px;
    padding-left: 10px;
    padding-right: 10px;
}
.btn-morph-wrap .morph-result {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 280px;
    width: 120px;
}
#download-referral-button {
	width: 240px;
}
/* Container for the AI elements */
.ai-verification-group {
    display: -ms-inline-flexbox;
    display: inline-flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 6px;
    margin-right: 6px;
}
/* Subtle, theme-matching badge (Soft cyan/blue background, Navy text) */
.ai-badge {
    background-color: #E8F4F8; /* matches a soft version of your bg-cyan */
    color: #1A2942; /* matches your text-darkNavy */
    padding: 2px 8px;
    border-radius: 12px; /* pill shape */
    font-size: 10px;
    font-family: 'Gordita Medium', sans-serif;
    border: 1px solid #D0E4EA;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -ms-flex-align: center;
        align-items: center;
}
/* Minimalist base style for the buttons */
.ai-btn-action {
    background: transparent;
    border: 1px solid #E0E0E0;
    border-radius: 4px;
    padding: 2px 6px;
    font-size: 10px;
    cursor: pointer;
    transition: all 0.2s ease-in-out;
    color: #888; /* Soft grey by default */
}
/* Hover effect for Accept: Fills in with your Navy theme */
.ai-btn-action.accept:hover {
    background-color: #1A2942; 
    color: #ffffff;
    border-color: #1A2942;
}
/* Hover effect for Decline: Slightly darker grey to signify removal without screaming "DANGER" */
.ai-btn-action.decline:hover {
    background-color: #F0F0F0;
    color: #333333;
    border-color: #CCCCCC;
}
main {
	min-height: 100vh;
	padding: 0;
	margin: 0;
	color: #343a40;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	background-image: linear-gradient(rgba(10, 37, 64, 0.95), rgba(10, 37, 64, 0.85)), url('https://cattrax-media.s3.ap-southeast-2.amazonaws.com/images/surgeon_image_cropped2.jpg');
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}
.nav-wrap-flex {
	padding: 30px 0;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-pack: justify;
	    justify-content: space-between;
}
.nav-wrap-flex .nav-logo-wrap {
    height: 120px;
}
.nav-wrap-flex .nav-logo-wrap img {
    height: 100%;
}
.nav-wrap-flex .nav-nav-wrap {
    -ms-flex-item-align: end;
        align-self: flex-end;
}
.nav-wrap-flex .nav-nav-wrap ul {
    display: -ms-flexbox;
    display: flex;
    padding: 5px;
    margin: 0;
    list-style-type: none;
    background: #f8f9fa;
    border-radius: 25px;
    letter-spacing: 1.2px;
    color: #343a40;
}
.nav-wrap-flex .nav-nav-wrap ul li {
    border-radius: 24px;
    padding: 2px 10px;
    font-size: 12px;
}
.nav-wrap-flex .nav-nav-wrap ul li a {
    color: #00bcd4;
}
.nav-wrap-flex .nav-nav-wrap ul li a:hover {
    text-decoration: none;
}
.nav-wrap-flex .nav-nav-wrap ul li.active {
    background: #00bcd4;
}
.nav-wrap-flex .nav-nav-wrap ul li.active a {
    color: #ffffff;
}
.nav-wrap-flex .nav-user-wrap {
    -ms-flex-item-align: start;
        align-self: flex-start;
    color: #343a40;
}
.nav-wrap-flex .nav-user-wrap ul {
    letter-spacing: 1.1px;
    display: -ms-flexbox;
    display: flex;
    padding: 8px;
    margin: 0;
    list-style-type: none;
    background: #f8f9fa;
    border-radius: 24px;
    color: #343a40;
}
.nav-wrap-flex .nav-user-wrap ul li {
    border-radius: 24px;
    padding: 0px 10px;
}
.nav-wrap-flex .nav-user-wrap ul li a {
    color: #343a40;
}
.nav-wrap-flex .nav-user-wrap ul li.active {
    background: linear-gradient(90deg, #660195, #0035d2);
}
.nav-wrap-flex .nav-user-wrap ul li.active a {
    color: #ffffff;
}
.patient-header .nav-nav-wrap ul li a {
    color: #0035d2;
    font-weight: 600;
}
.patient-header .nav-nav-wrap ul li a:hover {
    color: #0000CD;
    text-decoration: underline;
}
.btn-logout {
	height: 20px;
	padding: 0px 12px;
	font-size: 12px;
	color: #343a40;
}
p.btn-logout {
	margin-bottom: 0;
	padding-left: 0;
	padding-top: 2px;
	vertical-align: center;
	color: #343a40;
}
.lock {
	height: 12px;
	position: relative;
	bottom: 2px;
	margin-left: 10px;
}
.no-pad-left {
	padding-left: 0 !important;
}
.consult-timer-box {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: row-reverse;
	    flex-direction: row-reverse;
	gap: 1rem;
	position: absolute;
	right: 1rem;
}
.timer-box {
	border-width: 1px;
	border-color: rgba(255, 255, 255, 0.2);
	border-style: solid;
	border-radius: 4px;
	padding-left: 0.5rem;
	padding-right: 0.5rem;
	padding-top: 0.25rem;
	padding-bottom: 0.25rem;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: row;
	    flex-direction: row;
	-ms-flex-align: center;
	    align-items: center;
	gap: 1rem;
	min-width: 10rem;
	background: rgba(255, 255, 255, 0.05);
}
.container-welcome {
	background: #ffffff;
	min-height: 100%;
	padding: 0;
	border-radius: 1rem;
}
.container-welcome .welcome-wrap {
    padding: 70px;
    padding-bottom: 30px;
}
.container-welcome .welcome-wrap .h1 {
    font-size: 50px;
    margin-top: 0;
}
.container-welcome .welcome-wrap .welcome-question {
    margin-bottom: 20px;
    font-size: 16px;
}
.container-welcome .welcome-wrap select.form-control {
    width: 400px;
    border-radius: 18px;/* border-top-right-radius: 18px;
			border-top-left-radius: 18px; */
}
.container-welcome-footer {
	padding: 0;
	background-color: #f8faff; /* Off-white background */
	border-top: 1px solid #e0e6ed; /* Light border for separation */
}
.container-welcome-footer .footer-wrap {
		padding: 1.5rem 5%;
	}
.container-welcome-footer .footer-wrap ul {
			font-weight: 500;
			list-style-type: none;
			padding-left: 0;
			display: -ms-flexbox;
			display: flex;
			-ms-flex-direction: row;
			    flex-direction: row;
			-ms-flex-pack: center;
			    justify-content: center;
			gap: 4rem;
			margin: 0;
		}
.container-welcome-footer .footer-wrap ul li {
				margin: 0;
			}
/* Applying the navy color to the links */
.container-welcome-footer .footer-wrap ul a {
				text-decoration: none;
				transition: text-decoration 0.2s ease;
			}
/* Adding a simple hover effect */
.container-welcome-footer .footer-wrap ul a:hover {
					text-decoration: underline;
				}
iframe {
	/*border:3px solid #ddd;*/
	box-shadow: 0 0 3px 0px rgba(0,0,0,0.3);
	margin: 0 auto;
	display: block;
}
.notification-banner {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	padding: 1em;
	text-align: center;
	font-weight: bold;
	z-index: 10000;
}
/* STANDARD: vibrant purple */
.banner-STANDARD {
	background: rgba(156, 39, 176, 0.7); /* #9C27B0 */
	color: #fff;
}
/* HIGH: vivid green accent */
.banner-HIGH {
	background: rgba(0, 200, 83, 0.7); /* #00C853 */
	color: #fff;
}
/* URGENT: deep orange accent */
.banner-URGENT {
	background: rgba(255, 109, 0, 0.7); /* #FF6D00 */
	color: #fff;
}
/* ERROR: true red */
.banner-ERROR {
	background: rgba(213, 0, 0, 0.7); /* #D50000 */
	color: #fff;
}
.close-btn {
	position: absolute;
	right: 1em;
	top: 0.5em;
	background: transparent;
	border: none;
	font-size: 1.2em;
	color: inherit;
	cursor: pointer;
}
.container-refer, .container-dashboard {
	background-color: #ffffff;
	padding: 10px;
	/*padding-bottom: 20px;*/
	margin-bottom: 20px;
	border-radius: 1rem;
}
.to-top {
	position:fixed;
	bottom: 4em;
	right: 4em;
	/* padding: 5px; */
	/* border: 1px solid #ccc; */
	/* background: red; */
	/* color: white; */
	font-weight: bold;
	cursor: pointer;
	/* display: none; */
  }
.container-dashboard {
	background-color: #ffffff;
	border-radius: 1rem;
}
.refer-nav {
	height: 100px;
	background-color: #ebecea;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-pack: distribute;
	    justify-content: space-around;
	-ms-flex-align: center;
	    align-items: center;
}
.view-wrap {
	padding: 25px;
	padding-top: 0;
}
hr.subtitle-line-break {
	border-top-color: #bccad2;
}
hr.cyan {
	border-top-color: #00bcd4;
	border-top-width: 1px;
}
.skip-wrap button {
    width: 180px;
}
.skip-wrap button:first-child {
    margin-right: 20px;
}
.refer-nav-animation {
	height: 100px;
	background-color: #ebecea;
	/*background-color: #EBECEA;*/
	/*background-color: pink;*/
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: column;
	    flex-direction: column;
	-ms-flex-pack: center;
	    justify-content: center;


}
/*align-items: center;*/
.refer-nav-animation .word-wrapper {/*background: lightblue;*/
    padding: 0 140px;
    padding: 0 100px;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: justify;
        justify-content: space-between;
    -ms-flex-align: center;
        align-items: center;
    margin-bottom: 5px;
}
.refer-nav-animation .word-wrapper p {
    margin-bottom: 0;
}
.refer-nav-animation .animation-outter-wrapper {
    margin: 0 140px;
    position: relative;
    overflow: hidden;
    height: 6px;
    background: #D2D3D5;
}
.refer-nav-animation .animation-outter-wrapper .prog {
    position: absolute;
    z-index: 2;
    width: 100%;
    height: auto;
}
.refer-nav-animation .animation-outter-wrapper .indicator {
    position: absolute;
    background: linear-gradient(90deg, #0035d2 0%, #0035d2 90%, #00bcd4 98%, #00bcd4 100%);
    height: 6px;
    width: 100%;
    left:0;
    top:0;
    transition: all 1.5s ease;
    transform: translateX(-100%);/*border-radius: 50%;*/
    border-top-right-radius: 10px 10px;
    border-bottom-right-radius: 10px 10px;
}
.refer-nav-animation .animation-outter-wrapper .indicator.search {
    transform: translateX(-95%) !important;
}
.refer-nav-animation .animation-outter-wrapper .indicator.examination {
    transform: translateX(-50%);
}
.refer-nav-animation .animation-outter-wrapper .indicator.impact, .refer-nav-animation .animation-outter-wrapper .indicator.complete {
    transform: translateX(0%);
    border-top-right-radius: 0px 0px;
    border-bottom-right-radius: 0px 0px;
}
.search-wrap {
}
.search-form {
	padding-top: 10px;
}
/* padding-bottom: 10px; */
.search-form .form-group {
    position: relative;
}
.search-form .form-group .form-control {
    font-size: 12px !important;
    border-radius: 0;
    box-shadow: none;
    border-radius: 20px;
    color: #0035d2;
    border: 1px solid #0035d2;
}
.search-form .form-group .form-control:focus {
    box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102,175,233,.6);
}
.search-form .form-group label {
    margin-right: 10px;
}
.search-form .form-group-lastName input {
    width: 250px;
}
.search-form .form-group-DOB {/* margin-bottom: 1rem; */
}
/* margin-left: 50px; */
.search-form .form-group-DOB .form-control {
    width: 80px;
}
.search-form .form-group-DOB .form-control:nth-child(3) {
    margin: 0 3px;
}
.search-form .form-group-buttons {/*position: relative;*/
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    float: right;
    margin-right: 0;
    position: relative;
    top: -10px;
}
.search-form .form-group-buttons button:first-child {
    margin-bottom: 10px;
}
.search-form .form-group-search-buttons {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
        justify-content: center;
    gap: 4rem;
}
.search-results table {
    margin-bottom: 0;
}
.search-results table tr:first-child {
    background-color: #ffffff !important;
}
.search-results table tr th {
}
.search-results-v2 table {
    margin-bottom: 0;
}
.search-results-v2 table tr:first-child {
}
.search-results-v2 table tr th {
}
.table-striped > tbody > tr:nth-of-type(even) {
	/* background-color: $paleBlue; */
	background-color: #ffffff;
}
.table-striped > tbody > tr:nth-of-type(odd) {
	background-color: #ffffff;
}
.table-blue-striped > tbody > tr:nth-of-type(even) {
	background-color: #f2f6fb;
}
.table-blue-striped > tbody > tr:nth-of-type(odd) {
	background-color: #ffffff;
}
.table-hover > tbody > tr:hover {
	background-color: #0035d2;
}
.table-hover > tbody > tr:hover td {
    color: #ffffff;
}
.table-no-border {
	border-width: 0px;
	border-top-width: 0.1em;
	border-top-color: #0035d2;
}
.table-no-border th {
    color: #0035d2;
    font-family: 'Gordita Heavy';
}
.table-no-border > tbody > tr[disabled] td {
	filter: blur(1px);
	pointer-events: none;
  }
.filter-dropdown {
	color: #0035d2;
    font-size: 12px;
}
.filter-select {
	border-radius: 20px;
	box-shadow: none;
	// color: #343a40;
	color: #0035d2;
	font-size: 12px;
	border: 1px solid #0035d2;
}
.search-label {
	color: #0035d2 !important;
}
.or-line {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: row;
	    flex-direction: row;
	-ms-flex-align: center;
	    align-items: center;
	margin-top: -1rem;
	width: 100%;
}
.or-seperator {
	width: 100%;
	margin-top: -5px;
	margin-bottom: 0px;
	border-color: #0035d2;
}
.address-icon {
	width: 2rem; 
	height: 2rem;
	margin-top: -0.5rem;
}
.score_text {
	color: #0035d2;
	font-family: 'Gordita Light Italic';
}
.flex-column-layout {
	display: -ms-flexbox !important;
	display: flex !important;
	-ms-flex-direction: column;
	    flex-direction: column;
	gap: 0.5rem;
}
.lastname-input {
	width: 250px !important;
	margin-right: 1rem;
}
.flex-row-layout {
	display: -ms-flexbox !important;
	display: flex !important;
	-ms-flex-direction: row;
	    flex-direction: row;
	gap: 0.5rem;
	-ms-flex-align: baseline;
	    align-items: baseline;
}
.hyper-link {
	color: #0035d2;
	text-decoration: underline;
	cursor: pointer;
	margin-left: 1rem;
}
.highlight-row {
	background-color: #0035d2;
	color: white;
	cursor: pointer !important;
}
.normal-row {
	background-color: white;
	color: #0035d2;
	cursor: pointer !important;
}
.modal-backdrop.am-fade {
	background: rgba(10, 37, 64, 0.65);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	opacity: 1;
	transition: opacity 0.3s ease;
}
.modal-backdrop.am-fade.ng-enter {
    opacity: 0;
}
.modal-backdrop.am-fade.ng-enter.ng-enter-active {
    opacity: 1;
}
.modal-backdrop.am-fade.ng-leave {
    opacity: 1;
}
.modal-backdrop.am-fade.ng-leave.ng-leave-active {
    opacity: 0;
}
.modal-dialog {
	border: 0;

}
.modal-dialog .modal-content {
    border: none;
    outline: none;
    border-radius: 16px;
    background-color: #ffffff;
    color: #333333;
    box-shadow: rgba(0, 0, 0, 0.4);
    overflow: hidden;
}
.modal-dialog .modal-content .dismiss {
    position: absolute;
    z-index: 10;
    top: 1rem;
    right: 1rem;
    font-size: 2.2rem;
    font-weight: 300;
    color: #888888;
    background: none;
    border: none;
    opacity: 0.7;
    cursor: pointer;
    transition: all 0.2s ease;
}
.modal-dialog .modal-content .dismiss:hover {
    opacity: 1;
    color: #333333;
    transform: rotate(90deg);
}
.modal-dialog.modal-center {
    margin: 0;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
.my-modal-header {
	padding: 1.5rem 2rem;
	background-color: #f8faff;
	border-bottom: 1px solid #e0e6ed;
}
.my-modal-body {
	padding: 2.5rem 2rem;
}
.diagnosis-modal-content {
	overflow: visible !important;
}
.my-modal-footer {
	border-top: 1px solid #e0e6ed;
	padding: 30px 30px;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-align: center;
	    align-items: center;
	-ms-flex-pack: justify;
	    justify-content: space-between;

}
.my-modal-footer .btn {
    width: 180px;
}
.my-modal-footer--right {
	-ms-flex-pack: end;
	    justify-content: flex-end;

}
.my-modal-footer--right .btn + .btn {
    margin-left: 1rem;
}
.my-modal-footer--center {
	-ms-flex-pack: center;
	    justify-content: center;

}
.my-modal-footer--center .btn {
    width: 100%;
    max-width: 220px;
}
.form-control:focus {
	border-color: #00bcd4;
	outline: 0;
	box-shadow: 0 0 0 3px rgba(0, 188, 212, 0.25);
}
.override-modal .form-control {
    border-radius: 8px;
}
.override-modal .additional-message {
    position: relative;
}
.override-modal .additional-message .message {
    padding: 10px;
}
.override-modal .additional-message .count-remaining {
    position: absolute;
    font-size: 0.75rem;
    bottom: 5px;
    right: 8px;
    color: #6c757d;
}
.override-modal .select-override, .override-modal .message {
    font-size: 1rem;
}
.table-details {
	width: 100%;
	max-width: 600px;
	border-collapse: collapse;
}
.table-details td {
    border: none !important;
    font-weight: 400;
    padding: 0.5rem;
}
.table-details td:first-child {
    width: 40%;
    text-align: right;
    color: #6c757d;
    padding-right: 1rem;
}
.table-details td:last-child {
    width: 60%;
    font-weight: 500;
    color: #333333;
}
.double-line-header {
	padding: 1rem 0;
	height: auto;
	min-height: 80px;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: column;
	    flex-direction: column;
	-ms-flex-pack: center;
	    justify-content: center;
	gap: 0.25rem;
}
.icon-wrap-success {
	height: 100px;
	text-align: center;
	margin-bottom: 1rem;

}
.icon-wrap-success img {
    height: 100%;
}
.limit-width {
	max-width: 450px;
	margin: 0 auto;
}
.limit-width-wide {
	max-width: 650px;
	margin: 0 auto;
}
.form-group-override-select {
	margin: 0 auto;
	max-width: 700px;
}
.help-modal .subtitle-line-break {
    margin: 10px 0;
}
.help-modal .q-header-flex {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: justify;
        justify-content: space-between;
    -ms-flex-align: center;
        align-items: center;
}
.help-modal .q-header-flex .h5 {
    max-width: 85%;
}
.help-modal .q-header-flex .q-icon-wrap {
    height: 35px;
    overflow: hidden;
    cursor: pointer;
}
.help-modal .q-header-flex .q-icon-wrap img {
    height: 100%;
}
.q-icon-wrap {
	transition: transform 0.3s ease;
}
.rotate {
	transform: rotate(-45deg);
}
.q-body-wrap {
	display: none;
	padding-right: 60px;
	color: #6c757d;
}
.my-modal-body-help {
	max-width: 800px;
	margin: 0 auto;
}
.table-contact {
	margin-bottom: 0;
}
.table-contact td {
    border: 0 !important;
    font-weight: 400;
    color: #6c757d;
    padding: 3px 0 !important;
}
.table-contact td:first-child {
    width: 123px;
}
.contact-name {
	margin-top: 20px;
	margin-bottom: 10px;
	font-weight: 600;
}
.morph-modal {
	color: #6c757d;

}
.morph-modal .form-control {
    border-radius: 8px;
    color: #333333;
    font-weight: 400;
    font-size: 1rem;
}
.morph-modal .form-control option {
    color: #333333;
}
.morph-modal .lens-wrap {
    margin-bottom: 5px;
}
.morph-modal .lens-wrap img {
    width: 100%;
    border-radius: 8px;
}
.morph-modal .lens-wrap-1 {
    margin-top: 20px;
}
@media (min-width: 992px) {
	.modal-lg-morph {
		width: 984px;
	}
}
.referral-radio-wrap {
	margin-top: 15px;

}
.referral-radio-wrap .radio-inline .marker {
    position: relative;
    left: -3px;
    top: 0px;
}
.referral-radio-wrap .form-group {
    margin-bottom: 10px;
}
.referral-radio-wrap input[type="radio"] {
    margin-top: 1px;
}
.referral-radio-wrap .help-block {
    position: absolute;
    top: 10px;
}
.notification-body {
	max-width: 450px;
	margin: 0 auto;
	font-weight: 400;
	color: #6c757d;

}
.notification-body ul {
    padding-left: 0;
    list-style-type: none;
}
.notification-body ul > li > ul {
    padding-left: 40px;
}
.notification-body li {
    margin-bottom: 10px;
}
.hidden {
	display: none;
}
.flex-double-rows {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: row;
	    flex-direction: row;
	-ms-flex-pack: justify;
	    justify-content: space-between;
	-ms-flex-align: center;
	    align-items: center;
	padding-top: 1em !important;
	border-top-width: 0px !important;
}
.pharmacy-option {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: column;
	    flex-direction: column;
}
.pharmacy-title {
	padding-top: 0.1em;
	font-weight: 500;
}
.pharmacy-address {
	padding-top: 0.1em;
	padding-bottom: 0.1em;
	font-size: 0.9rem;
	color: #6c757d;
}
.md-dialog-customer-container {
	border: none;
	outline: none;
	border-radius: 16px;
	background-color: #ffffff;
	color: #333333;
	box-shadow: rgba(0, 0, 0, 0.4);
	overflow: hidden;
}
.md-dialog-customer-container .dialog-toolbar {
    -ms-flex-pack: center;
        justify-content: center;/* center all items */
    position: relative;
}
.md-dialog-customer-container .dialog-title {
    -ms-flex: none;
        flex: none;/* prevent stretching */
    text-align: center;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
}
.md-dialog-customer-container .dialog-subtitle {
    -ms-flex: none;
        flex: none;
    font-size: 12pt;/* prevent stretching */
    text-align: center;
    position: absolute;
    width: 100%;
    left: 50%;
    top: 2.5rem;
    transform: translateX(-50%);
}
.md-dialog-customer-container .dialog-toolbar md-button {
    position: absolute;
    right: 0;
}
.md-dialog-customer-container .dismiss {
    position: absolute;
    z-index: 10;
    top: 1rem;
    right: 1rem;
    font-size: 2.2rem;
    font-weight: 300;
    color: #888888;
    background: none;
    border: none;
    opacity: 0.7;
    cursor: pointer;
    transition: all 0.2s ease;
}
.md-dialog-customer-container .dismiss:hover {
    opacity: 1;
    color: #333333;
    transform: rotate(90deg);
}
.md-dialog-customer-container .dialog-title {
    color: #0a2540 !important;
    font-size: 1.65rem;
    font-weight: 700;
    margin: 0;
    text-transform: none;
}
.register-edit-form .col-sm-3 {
    padding-right: 0;
    padding-left: 0;
}
.register-edit-form label.control-label {
    padding-top: 8px;
}
.register-edit-form .form-control {
    font-size:12px !important;
    border-radius: 0;
    box-shadow: none;
}
.register-edit-form .dob-group {
    display: -ms-flexbox !important;
    display: flex !important;
    -ms-flex-direction: row;
        flex-direction: row;
    -ms-flex-pack: justify;
        justify-content: space-between;
}
.register-edit-form .dob-group .form-control {
    width: 31%;
    margin: 0;
}
.register-edit-form .dob-group span.help-block {
    position: absolute;
    top: 100%;
    margin-top: 0;
}
.register-edit-form .dob-group .form-control:nth-child(2) {/*margin: 0 15px;*/
}
.register-edit-form .radio-inline {
    width: 80px;
}
/*text-align: center;*/
.register-edit-form .radio-inline input {
    position: relative;/*right: 10px;*/
}
.register-edit-form .radio-inline .marker {
    position: relative;
    left: 7px;
    top: -1px;
}
.register-edit-form .ethnicity-group {
}
.register-edit-form-v2 .col-sm-3 {
    padding-right: 0;
    padding-left: 0;
}
.register-edit-form-v2 label.control-label {
    padding-top: 8px;
}
.register-edit-form-v2 .form-control {
    font-size:12px !important;
    border-radius: 0;
    box-shadow: none;
}
.register-edit-form-v2 .dob-group {
    display: -ms-flexbox !important;
    display: flex !important;/* flex-direction: row; */
    -ms-flex-pack: justify;
        justify-content: space-between;
}
.register-edit-form-v2 .dob-group .form-control {
    width: 31%;
    margin: 0;
}
.register-edit-form-v2 .dob-group span.help-block {
    position: absolute;
    margin-top: 3em;
}
.register-edit-form-v2 .dob-group .form-control:nth-child(2) {/*margin: 0 15px;*/
}
.register-edit-form-v2 .radio-inline {
    width: 80px;
}
/*text-align: center;*/
.register-edit-form-v2 .radio-inline input {
    position: relative;/*right: 10px;*/
}
.register-edit-form-v2 .radio-inline .marker {
    position: relative;
    left: 7px;
    top: -1px;
}
.register-edit-form-v2 .ethnicity-group {
}
.animate-show-hide.ng-hide {
	opacity: 0;
}
.animate-show-hide.ng-hide-add, .animate-show-hide.ng-hide-remove {
	transition: all ease 0.3s;
}
.animate-me {
	opacity: 1;
}
.checkbox-inline {
	min-width: 25%
}
.form-group-ethnicity {
	margin-bottom: 9px;
}
.form-group-ethnicity label.checkbox-inline:first-child {
    margin-left: 10px;
}
.form-group-ethnicity label.checkbox-inline span.marker {
    position: relative;
    bottom:-2px;
}
.form-group-ethnicity .checkbox-inline-other {
    position: relative;
    left: -4px;
}
.form-group-ethnicity .col-sm-9 {
    position: relative;
}
.form-group-ethnicity span.help-block {
    position: absolute;
    top:100%;
}
/*Google Places API to bring autocomplete higher z-index than bootstrap modal*/
.pac-container {z-index: 10000 !important;}
.form-impact .form-group {
    margin-bottom: 25px;
}
.form-impact label.control-label {
    text-align: left !important;
}
.form-impact label.control-label .question-mark {
    position: relative;
    display: inline-block;
    height: 20px;
    bottom:2px;
    margin-right: 10px;
}
.form-impact label.control-label .question-mark img {
    height: 100%;
    overflow:hidden;
}
.form-impact .radio-flex-wrap {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: justify;
        justify-content: space-between;
}
.form-impact .radio-flex-wrap .radio-inline {
    width: 80px;
    text-align: center;
}
.form-impact .radio-flex-wrap .radio-inline .marker {
    position: relative;
    top:2px;
}
.form-impact .control-label-left {
    padding-right: 0;
}
.form-impact .form-group-header .radio-flex-wrap .radio-inline {
    text-align: center;
    padding-left: 0;
    padding-right: 0;
    width: 80px;
}
.life-quality .form-group.has-error {
    outline: 1px solid #a94442;
    padding-top: 16px;
    padding-bottom: 16px;
}
.life-quality .form-group.has-error .radio-flex-wrap {/*padding-bottom: 6px;*/
    margin-bottom: 10px;
    position: relative;
}
.life-quality .form-group.has-error .radio-flex-wrap .help-block {
    position: absolute;
    top: 240%;/* bottom: -45px; */
    left: 80%;/* width: 100%;
				text-align: center; */
}
.form-footer {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-pack: end;
	    justify-content: flex-end;
}
.form-footer .submit-wrap-flex {
    padding: 20px 30px 20px 50px;
    border-radius: 50px;
    background: #ffffff;/*background: linear-gradient(270deg, $purple, $navy) !important;*/
    display: -ms-flexbox;
    display: flex;
}
.form-footer .submit-wrap-flex .note-wrap {
    width: 400px;
    margin-right: 20px;
}
.form-footer .submit-wrap-flex .note-wrap p {
    margin: 0;
}
.form-footer .submit-wrap-flex .note-wrap p:first-child {
    margin-bottom: 10px;
}
.form-footer .submit-wrap-flex .button-wrap {
    width: 200px;
    -ms-flex-item-align: center;
        -ms-grid-row-align: center;
        align-self: center;
}
.form-footer .showing-warning {
    background: linear-gradient(270deg, #9C27B0, #0035d2) !important;
}
.form-login {
	width: 280px;
	padding-top: 15px;
}
.form-login .form-group {
    margin-bottom: 30px;
}
.form-login .form-group input {
    border-radius: 24px;
}
.form-login .form-group:last-child {
    margin-bottom: 15px;
}
.form-login button {
    font-size: 12px;
}
.form-login .btn-login {
    float: left;
    width: 34%;
    padding: 6px 18px;
}
.form-login .btn-lost {
    color: #343a40;
    float: right;
    width: 60%;
    transition: background-color .1s linear;
}
.form-login .btn-lost:hover, .form-login .btn-lost:active {
    color: #343a40;
    background-color: #ffffff;
}
form[name=search] span.help-block {
    text-align: center;
    position: absolute;
    width: 100%;
}
.has-success .form-control {
	border-color: #00bcd4;
}
.has-success .form-control:focus {
    border-color: #00bcd4;
    box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 4px #00bcd4;
}
.has-error .form-control {
	border-color: #a94442;
}
.has-error .form-control:focus {
    border-color: #a94442;
}
form[name=loginForm] .help-block {
    text-align: left;
    position: absolute;
    color: #ffffff;
    margin-bottom: 0;
    padding-left: 13px;
}
label {
	color: #343a40 !important;
}
form[name=setPassword] .form-control {
    border-radius: 0;
}
form[name=setPassword] .help-block {
    position: absolute;
}
form[name=formImpact] .form-group.has-error {
    outline: 1px solid #a94442;
    padding-top: 2px;
}
form[name=formImpact] .form-group.has-error .radio-flex-wrap {/*padding-bottom: 6px;*/
    margin-bottom: 10px;
    position: relative;
}
form[name=formImpact] .form-group.has-error .radio-flex-wrap .help-block {
    position: absolute;/*top: 100%;*/
    bottom: -40px;
    width: 100%;
    text-align: center;
}
form[name=exam] span.help-block {
    position: absolute;
    white-space: nowrap;
    margin-top: 0;
}
.btn-switch {
    position: relative;
    display: block;
    width: 50px;
    height: 28px;
    cursor: pointer;
    background-color: #F27878;
    border: 2px solid #F27878;
    border-radius: 40px;
}
.btn-switch .btn-switch-circle {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    height: 25px;
    width: 25px;
    background-color: #fff;
    border-radius: 40px;
}
.btn-switch--on {
    background-color: #80CDBE;
    border: 2px solid #80CDBE;
}
.btn-switch--on .btn-switch-circle--on {
    left: auto;
    right: 0;
}
.surgery-agreement-form-footer {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-pack: end;
	    justify-content: flex-end;
}
.surgery-agreement-form-footer .submit-wrap-flex {
    padding: 12px 15px 12px 25px;
    border-radius: 50px;
    background: #ffffff;/*background: linear-gradient(270deg, $purple, $navy) !important;*/
    display: -ms-flexbox;
    display: flex;
}
.surgery-agreement-form-footer .submit-wrap-flex .note-wrap {
    width: 400px;
    margin-right: 20px;
}
.surgery-agreement-form-footer .submit-wrap-flex .note-wrap p {
    margin: 0;
}
.surgery-agreement-form-footer .submit-wrap-flex .note-wrap p:first-child {
    margin-bottom: 10px;
}
.surgery-agreement-form-footer .submit-wrap-flex .button-wrap {/* width: 200px; */
    -ms-flex-item-align: center;
        -ms-grid-row-align: center;
        align-self: center;
}
.surgery-agreement-form-footer .showing-warning {
    background: linear-gradient(270deg, #9C27B0, #0035d2) !important;
}
.premium-lens-recommend-checkboxes {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: row;
	    flex-direction: row;
	-ms-flex-align: center;
	    align-items: center;
}
.recommended-option-highlight {
	background-color: #e6f2ff;
	color: #007BFF;
	font-weight: bold;
}
.recommended-label {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	background: #0d6efd;
	color: #fff;
	font-size: 1.1rem;
	font-weight: 600;
	padding: 4px 6px;
	text-align: center;
	line-height: 1.2;
	border-radius: 4px 4px 0 0;
	pointer-events: none;
	margin-bottom:0.5rem;
}
.popover {
	outline:none;
	max-width: 100%;
	padding: 0;
	padding-bottom: 10px;
}
.popover h3.popover-title {
    background: #00bcd4;
    color: #ffffff;
    font-size: 12px;
}
.popover .popover-content {
    font-size: 12px;
}
.popover-normal {
	outline:none;
	max-width: 12rem;
	padding: 0;
}
/* padding-bottom: 10px; */
.popover-normal h3.popover-title {
    background: #00bcd4;
    color: #ffffff;
    font-size: 12px;
}
.popover-normal .popover-content {
    font-size: 12px;
}
.am-popover {
	opacity: 1;
	transform: translateX(0px);
}
/*transition: all .15s ease-in;*/
.am-popover.ng-enter {
    opacity: 0;
}
/*transform: translateX(-30px);*/
.am-popover.ng-enter.ng-enter-active {
}
.am-popover.ng-leave {
    opacity: 1;
}
.am-popover.ng-leave.ng-leave-active {
    opacity: 0;
}
.popover.info-detail-popover {
	max-width: 26rem;
	width: auto;
	z-index: 1100;
}
.popover.info-detail-popover .popover-content {
	word-wrap: break-word;
	overflow-wrap: break-word;
	color: #343a40 !important;
}
.popover.info-detail-popover .popover-content label {
    color: #333333 !important;
    margin-bottom: 0;
}
.info-popover-comment {
	white-space: pre-wrap;
	word-break: break-word;
	max-width: 24rem;
}
.diagnosis-info-popover-anchor {
	pointer-events: none;
}
.wider-popover {
	max-width: 24rem;
	opacity: 1;
	transform: translateX(12rem);
}
/*transition: all .15s ease-in;*/
.wider-popover.ng-enter {
    opacity: 0;
}
/*transform: translateX(-30px);*/
.wider-popover.ng-enter.ng-enter-active {
}
.wider-popover.ng-leave {
    opacity: 1;
}
.wider-popover.ng-leave.ng-leave-active {
    opacity: 0;
}
.table-complete th, .table-complete td {
    border-top: 0 !important;
    vertical-align: middle !important;
}
.table-complete th {
    color: #0035d2;
    font-size: 16px;
}
.table-complete td:nth-child(1) {/*background: pink;*/
    color: #343a40;
    font-size: 14px;/*width: 50%;*/
}
.table-complete td:nth-child(2) {
    text-align: center;
    height: 60px;
    width: 160px;
}
.table-complete td:nth-child(2) img {
    height: 100%;
    overflow: hidden;
}
.table-complete td:nth-child(3) {/*background: pink;*/
    width: 240px;
}
.table-complete th:nth-child(2) {
    text-align: center;
    width: 200px;
}
.table-complete .indent {
    padding-left: 30px;
    font-size: 12px;
    display: inline-block;
}
.complete-flex-wrap {
	display:-ms-flexbox;
	display:flex;
	-ms-flex-pack: justify;
	    justify-content: space-between;
	-ms-flex-align: center;
	    align-items: center;
}
.question-wrap {
	height: 44px;
	width: 44px;
	border: 2px solid gold;
	display: inline-block;
	border-radius: 50%;
	position: relative;
}
.question-wrap span {
    color: gold;
    font-size: 16px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
.patient-summary-details {
	font-size: 10px;
}
.doc-flex-wrap {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: row;
	    flex-direction: row;
	-ms-flex-wrap: wrap;
	    flex-wrap: wrap;
	-ms-flex-pack: justify;
	    justify-content: space-between;
	max-height: 400px;
	margin-bottom: 15px;
    overflow-y: auto;
    border: 1px solid lightgrey;
    padding: 5px;
	border-radius: 5px;
}
.doc-flex-wrap.doc-warning {
    background-color: rgba(255, 182, 193, 0.4);
}
.doc-flex-wrap .doc-card {
    border: 1px solid #ddd;
    width: 32.5%;
    margin-bottom: 8px;
    padding: 10px;
    cursor: pointer;
    border-radius: 6px;
    background-color: #fff;
}
.doc-flex-wrap .doc-card:hover {
    box-shadow: 0px 0px 3px 0px rgba(0,0,0,0.3);
}
.doc-flex-wrap .doc-card.selected {
    background-color: #f2f6fb;
}
.doc-flex-wrap .doc-card.doc-card-ghost {
    border:none;
    height: 0;
    padding: 0;
    margin: 0;
}
.doc-flex-wrap .doc-card p {
    margin-bottom: 0;
}
.selected-doc-wrap {
	text-align: center;
	background-color: #f2f6fb;
	border: 1px solid #bccad2;
	padding: 10px;
	margin-bottom: 10px;
	border-radius: 6px;
}
.doctor-filter-group input[type=radio] {
    top: -2px;
}
.doctor-filter-group .radio-inline:first-child {
    margin-left: 15px;
}
.exam-wrap {

}
.form-exam {
	color: #343a40;
	font-size: 12px;
}
.form-exam select, .form-exam .form-control {
    border-radius: 0;
    box-shadow: none;
    color: #343a40;
    font-size: 12px;
}
.form-exam .form-group-label {
    padding-right: 20px;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: end;
        justify-content: flex-end;
    margin-bottom: 25px;
}
.form-exam .form-group-label .control-label {
    text-align: right;/*align-self: center;*/
}
.form-exam .snellen {
    display: -ms-flexbox;
    display: flex;/*justify-content: space-between;*/
    padding: 0;
    position: relative;
}
.form-exam .snellen select, .form-exam .snellen .mark-wrap {
    margin-right: 20px;/*width: calc(50% - 60px);*/
    width: 100px;
}
.form-exam .mark-wrap, .form-exam .mark-wrap-deg {
    position: relative;
}
.form-exam .mark-wrap .six-pre, .form-exam .mark-wrap-deg .six-pre {
    position: absolute;
    top:50%;
    transform:translateY(-50%);
    left:-20px;
}
.form-exam .mark-wrap .stripe-post, .form-exam .mark-wrap-deg .stripe-post {
    position: absolute;
    top:50%;
    transform:translateY(-50%);
    right:-15px;
}
.form-exam .mark-wrap .stripe-pre, .form-exam .mark-wrap-deg .stripe-pre {
    position: absolute;
    top:50%;
    transform:translateY(-50%);
    left:-12px;
}
.form-exam .mark-wrap-deg .deg {
    width: 80px;
    padding-left: 6px;
    padding-right: 6px;
}
.form-exam .mark-wrap-deg .stripe-post {
    right: -37px;
}
.check-label {
	position: relative;
}
.check-label .check-span {
    position: relative;
    top: 2px;
}
.lens {
	width: 220px;
}
.lens-label {
	margin-top: 34px;
}
.visual-label {
	margin-top: 70px;
}
.form-group-label-top {
	margin-top: 40px;
}
.col-bin {
	padding-left: 60px;
}
.terms h1 {
    margin: 30px 0;
}
.terms h3 {
    margin-bottom: 15px;
}
.terms p {
    margin-bottom: 15px;
}
.terms a {
    color: #0035d2;
}
.terms .image1 {
    float: left;
    width: 50%;
    margin-right: 10px;
}
.op-header {
	color: #ffffff;
	text-align: center;
	padding: 5px 0;
	margin-bottom: 10px;
}
.op-header h4 {
    font-size: 1em;
}
.navy-text {
	color: #0035d2 !important;
}
.navy-line {
	height: 2px;
	background-color: #0035d2;
	margin-left: 1.5em;
	margin-right: 1.5em;
	margin-top: 1em;
}
.pre-op-form {
	color: #343a40;
	font-size: 12px;
	// background-color: pink;
	padding: 0 20px;
}
.pre-op-form select, .pre-op-form .form-control {
    border-radius: 20px;
    box-shadow: none;
    // color: #343a40;
    color: #0035d2;
    font-size: 12px;
    border: 1px solid #0035d2;
}
.pre-op-form .form-group-label {
    padding-right: 20px;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: end;
        justify-content: flex-end;
    margin-bottom: 25px;
}
.pre-op-form .form-group-label .control-label {
    text-align: right;
}
.pre-op-form .flex {
    display: -ms-flexbox;
    display: flex;
    padding: 0;
    position: relative;
}
.pre-op-form .flex select, .pre-op-form .flex .input, .pre-op-form .flex .inline-number, .pre-op-form .flex .mark-wrap {
    margin-right: 20px;
    width: 100px;
}
.pre-op-form .mark-wrap, .pre-op-form .mark-wrap-deg {
    position: relative;
}
.pre-op-form .mark-wrap .six-pre, .pre-op-form .mark-wrap-deg .six-pre {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: -20px;
}
.pre-op-form .mark-wrap .stripe-post, .pre-op-form .mark-wrap-deg .stripe-post {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: -15px;
}
.pre-op-form .mark-wrap .stripe-pre, .pre-op-form .mark-wrap-deg .stripe-pre {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: -12px;
}
.pre-op-form .mark-wrap-deg .deg {
    width: 80px;
    padding-left: 6px;
    padding-right: 6px;
}
.pre-op-form .mark-wrap-deg .stripe-post {
    right: -37px;
}
.pre-op-form label {
    color: #0035d2 !important;
}
.pre-op-form .marker {
    position: relative;
    top: 2px;
}
.btn-next {
	width: 120px;
}
.check-label {
	position: relative;
}
.check-label .check-span {
    position: relative;
    top: 2px;
}
.lens {
	width: 220px;
}
.lens-label {
	margin-top: 34px;
}
.visual-label {
	margin-top: 70px;
}
.form-group-label-top {
	margin-top: 40px;
}
.col-bin {
	padding-left: 60px;
}
.pressure-wrap {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-pack: justify;
	    justify-content: space-between;
	max-width: 460px;
}
.pressure-wrap .form-group {
    width: 47%;
}
.half-width {
	max-width: 50%;
}
.quarter-width {
	max-width: 25%;
}
.blue-box {
	border: 1px solid #0035d2;
	padding: 15px;
	background-color: #f2f6fb;
	margin-bottom: 15px;
	border-radius: 8px;
}
.blue-box .header .h4 {
    margin-bottom: 5px;
    margin-top: 0;
}
.eye-heading {
	margin-bottom: 20px;
}
.pre-op-save-wrap {
	min-height: 80px;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-pack: justify;
	    justify-content: space-between;
	-ms-flex-align: center;
	    align-items: center;
	margin: 20px 0;
}
.pre-op-save-wrap .progression-wrap {
    min-width: 250px;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: end;
        justify-content: flex-end;
    -ms-flex-align: center;
        align-items: center;
}
.pre-op-save-wrap .progression-wrap .save-progress {
    cursor: pointer;
    margin-right: 20px;
}
.pre-op-save-wrap .progression-alert-wrap {
    width: calc(100% - 280px);
}
.pre-op-save-wrap .progression-alert-wrap .alert {
    margin-bottom: 0;
}
.pre-op-save-wrap .progression-alert-wrap .alert + .alert {
    margin-top: 10px;
}
.stack-vert {
	display: -ms-inline-flexbox;
	display: inline-flex;
	-ms-flex-direction: column;
	    flex-direction: column;
	position: relative;
	top: 2px;
	margin-left: 10px;
}
.stack-vert .radio-inline + .radio-inline {
    margin-left: 0;
    margin-top: 5px;
}
.flex-biometry {
	-ms-flex-align: center;
	    align-items: center;
}
.flex-biometry .control-label {
    margin-right: 15px;
    margin-bottom: 0;
}
.biometry-input {
	width: 100px;
	margin-right: 20px;
}
.axis-wrap {
	position: relative;
}
.axis-times, .axis-deg {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	transform: translateY(-50%);
}
.axis-times {
	right: calc(100% + 6px);
}
.axis-deg {
	left: 110px;
}
.section-label {
	margin-bottom: 10px;
}
.biometry .form-row {
    margin-bottom: 15px;
}
.biometry .left-column {
    width: 28px;
}
.biometry .form-group {
    margin-bottom: 0px;
}
.biometry .help-block {
    position: absolute;
    width: 300px;
    margin-top: 0;
}
.bio-internal-flex {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: row;
	    flex-direction: row;
	-ms-flex-align: center;
	    align-items: center;
}
.table-medication th, .table-medication td {
    border-color: #0035d2 !important;
    vertical-align: middle !important;
}
.table-medication td:last-child {
    text-align: right;
}
.table-medication .remove-med {
    padding: 0;
    margin: 0;
    border: 1px solid #0035d2;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background-color: white;
}
.table-medication .remove-med:hover {
    background-color: #0035d2;
    color: white;
}
.btn-add-allergy {
	height: 34px;
	width: 34px;
	margin: 0;
	padding: 0;
}
.flex-allergy {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-align: center;
	    align-items: center;
}
.flex-allergy .grow {
    -ms-flex: 1 0;
        flex: 1 0;
    margin-right: 20px;
}
.anaesthetic-wrap {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-align: center;
	    align-items: center;
}
.anaesthetic-wrap .form-group {
    width: 260px;
    margin-right: 20px;
}
.anaesthetic-wrap .help-block {
    position: absolute;
    margin-top: 0;
}
.text-area-wrap {
	position: relative;
}
.text-area-wrap .count-remaining {
    position: absolute;
    font-size: 10px;
    bottom: 0;
    right: 15px;
    color: #0035d2;
}
.diabetes-pop-up-wrap {
	width: 50%;
	position: relative;
}
.retinopathy-pop-up-OD .retinopathy-popup {
    left: calc(100% + 10px);
}
.retinopathy-pop-up-OS .retinopathy-popup {
    right: calc(100% + 10px);
}
.showRetinopathy .retinopathy-popup {
    display: block;
}
.maculopathy-pop-up-OD .maculopathy-popup {
    left: calc(100% + 10px);
}
.maculopathy-pop-up-OS .maculopathy-popup {
    right: calc(100% + 10px);
}
.showMaculopathy .maculopathy-popup {
    display: block;
}
.retinopathy-popup, .maculopathy-popup {
	border: 1px solid #0035d2;
	padding: 15px;
	font-size: 10px;
	color: #0035d2;
	background-color: white;
	width: 480px;
	position: absolute;
	z-index: 1;
	top: 0;
	display: none;
}
.retinopathy-popup .table-bordered, .maculopathy-popup .table-bordered {
    border: none !important;
    margin-bottom: 10px;
}
.retinopathy-popup .table-bordered th, .retinopathy-popup .table-bordered td, .maculopathy-popup .table-bordered th, .maculopathy-popup .table-bordered td {
    border-right: 1px solid #0035d2;
    border-left: 1px solid #0035d2;
}
.retinopathy-popup .table-bordered th:first-child, .retinopathy-popup .table-bordered td:first-child, .maculopathy-popup .table-bordered th:first-child, .maculopathy-popup .table-bordered td:first-child {
    border-left: none;
}
.retinopathy-popup .table-bordered th:last-child, .retinopathy-popup .table-bordered td:last-child, .maculopathy-popup .table-bordered th:last-child, .maculopathy-popup .table-bordered td:last-child {
    border-right: none;
}
.retinopathy-popup .table-bordered tr:last-child td, .maculopathy-popup .table-bordered tr:last-child td {
    border-bottom: none;
    padding-bottom: 0;
}
.retinopathy-popup td, .retinopathy-popup th, .maculopathy-popup td, .maculopathy-popup th {
    border-color: #0035d2 !important;
}
.retinopathy-popup p, .maculopathy-popup p {
    margin-bottom: 0;
}
.retinopathy-popup th:first-child, .retinopathy-popup td:first-child {
    width: 120px;
}
.pre-op-form .flex-lens {
    display: -ms-flexbox;
    display: flex;
}
.pre-op-form .flex-lens .form-group {
    width: 150px;
    margin-right: 20px;
}
.pre-op-form .flex-lens .form-group-axis {
    margin-right: 0;
    width: 110px;
}
.allergy-form-wrap .help-block {
    position: absolute;
}
.locsiii-wrap {
	position: relative;
	width: 50%;
}
.locsiii-img-wrap {
	position: absolute;
	width: 500px;
}
.locsiii-img-wrap img {
    width: 100%;
}
.locsiii-img-wrap-OD {
	position: absolute;
	width: 700px;
	left: calc(100% + 15px);
	top: 0;
	z-index: 1;
	display: none;
}
.locsiii-img-wrap-OD img {
    width: 100%;
}
.locsiii-img-wrap-OS {
	position: absolute;
	width: 500px;
	right: calc(100% + 15px);
	top: 0;
	z-index: 1;
	display: none;
}
.locsiii-img-wrap-OS img {
    width: 100%;
}
.showOpal, .showColour, .showCortical, .showPupil, .showSub {
	display: block !important;
}
.pre-op-header {
	// outline: 1px dotted pink;
	margin-bottom: 20px;
}
.pre-op-header .head-flex {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: justify;
        justify-content: space-between;
    -ms-flex-align: end;
        align-items: flex-end;
}
.pre-op-header .head-flex:last-child {
    margin-top: 10px;
}
.pre-op-header h3, .pre-op-header h4 {
    margin: 0;
}
.pre-op-header .head-link {
    color: #0035d2;
    cursor: pointer;
    font-size: 14px;
    text-decoration: underline;
}
.pre-op-header .head-name {
    margin-right: 20px;
}
.pre-op-header .header-left, .pre-op-header .header-right {
    // outline: 1px solid green;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: end;
        align-items: flex-end;
}
.pre-op-header .header-right {
    // margin-right: 80px;
    // outline: 1px solid blue;
}
.graphs-container {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: row;
	    flex-direction: row;
	-ms-flex-pack: justify;
	    justify-content: space-between;
	-ms-flex-align: center;
	    align-items: center;
}
.card, .patients-empty, .menu-section, .patient-header .patient-card {
    background-color: #fff;
    border: none;
    border-radius: 8px;
    box-shadow: 0 0 4px rgb(0 0 0 / 20%);
    box-sizing: border-box;
	margin: 1em;
	margin-right: 0;
}
.card:hover, .patients-empty:hover, .menu-section:hover, .patient-header .patient-card:hover {
	/* box-shadow: 0 8px 28px 0 rgba(0,0,0,0.2); */
  }
.card-container {
	padding-left: 1em;
	padding-right: 1em;
	/* padding: 2px 16px; */
}
.patients-empty {
	background-color: #f4f7fe; 
	margin: 0;
	height: 'auto';
}
.patients-empty h4 {
    padding: 2em;
}
.menu-section {
	background-color: #f4f7fe; 
	min-height: 10em;
	margin-left: 0;
	margin-top: 0;
}
.menu-section h4 {
    text-align: left;
    padding-left: 1em;
    padding-top: 1em;
    padding-bottom: 0.4em;
}
.menu-container {
}
.menu-list {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: row;
	    flex-direction: row;
	-ms-flex-pack: start;
	    justify-content: flex-start;
	-ms-flex-align: start;
	    align-items: flex-start;
	-ms-flex-wrap: wrap;
	    flex-wrap: wrap;
}
.menu-arrow {
	border-width: 11px;
	/* position: absolute; */
	display: block;
	width: 0;
	height: 0;
	border-color: transparent;
	border-style: solid;
	margin-top: -11px;
	margin-left: -11px;
	border-top-width: 0;
	border-bottom-color: #f4f7fe;
	margin-left: 48%;
	/* left: 50%; */
}
.vertical-bar {
	width: 4px;
	background-color: #0035d2;
	-ms-flex-item-align: stretch;
	    -ms-grid-row-align: stretch;
	    align-self: stretch;
	margin-left: 2em;
	margin-top: 1em;
	margin-bottom: 1em;
}
.menu-block {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: row;
	    flex-direction: row;
	-ms-flex-pack: start;
	    justify-content: flex-start;
}
.right-arrow {
	margin-top: 1em;
	width: 16px;
	height: 16px;
}
.menu-item {
	width: 11em;
}
.menu-item h4 {
    margin: 0;
    font-size: 12px;
}
.menu-item p {
    padding-left: 1em;
    padding-right: 0.2em;
    text-align: left;
    font-size: 12px;
}
.patient-header {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: row;
	    flex-direction: row;
	-ms-flex-pack: justify;
	    justify-content: space-between;
	-ms-flex-align: center;
	    align-items: center;

}
.patient-header .header-title {
    -ms-flex: 1;
        flex: 1;
    position: absolute;
    top: 10rem;
}
.patient-header .menu-container {
    -ms-flex: 12;
        flex: 12;
}
.patient-header .link-disabled {
    pointer-events: none;
    cursor: default;
    opacity: 0.6;
}
.patient-header .arrow-down {
    border: solid #0035d2;
    border-width: 0 2px 2px 0;
    display: inline-block;
    padding: 3px;
    margin-bottom: 2px;
    margin-left: 2px;
    transform: rotate(45deg);
    -webkit-transform: rotate(45deg);
}
.patient-header .arrow-right {
    border: solid #0035d2;
    border-width: 0 2px 2px 0;
    display: inline-block;
    padding: 3px;
    margin-bottom: 2px;
    margin-left: 2px;
    transform: rotate(-45deg);
    -webkit-transform: rotate(-45deg);
}
.patient-header h3, .patient-header h4 {
    margin: 0;
}
.patient-header h5 {
    margin: 0;
    font-size: 16px;
}
.patient-header .patient-card {
    padding-bottom: 1em;
}
.patient-header .patient-detail-section {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: row;
        flex-direction: row;
    -ms-flex-align: center;
        align-items: center;
    padding-top: 0.5em;
}
.patient-header .patient-detail-section h4 {
    font-size: 14px;
}
.patient-header .vertical-section {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
}
.popover-preop-wrap {
	padding: 20px;
	padding-bottom: 0;
	width: 300px;
	text-align: center;
}
.popover-preop-wrap label {
    color: #0035d2 !important;
    font-size: 12px;
    margin-bottom: 10px;
}
.popover-preop-wrap .form-control {
    border-radius: 20px;
    box-shadow: none;
    color: #0035d2;
    font-size: 12px;
    border: 1px solid #0035d2;
}
.popover-preop-wrap .form-group:last-child {
    margin-bottom: 10px;
}
.popover {
	border-color: #0035d2;
}
/* width: 20em;
	max-width: 20em; */
.popover .marker {
    position: relative;
    top: 2px;
}
.popover.bottom > .arrow {
	border-bottom-color: #0035d2;
}
.spinner-wrap {
	position: relative;
}
.vertical-buttons {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: column;
	    flex-direction: column;
}
.vertical-buttons button + button {
    margin-top: 10px;
}
.vertical-radio-groups {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: column;
	    flex-direction: column;
	margin-top: 1em;
}
.radio-button-inline {
	margin-left: 0px !important;
	margin-bottom: 1em;
}
.my-modal-footer-patient-details .btn-navy {
    width: 220px;
}
.width_35_em{
	width: 35em;
}
hr.life-quality-line-break {
	border-top-color: #3850a2;
	margin-top: 0;
	margin-bottom: 0;
}
.customer_checkbox_red input[type=checkbox]:before {
    content: "";
    display: block;
    position: absolute;
    width: 13px;
    height: 13px;
    border: solid red;
    border-radius: 2px;
    background-color: transparent;
}
.customer_checkbox_red input[type=checkbox]:checked:before {
    content: "";
    display: block;
    position: absolute;
    width: 15px;
    height: 15px;
    background-color: red;
}
.customer_checkbox_red input[type=checkbox]:checked:after {
    content: "";
    display: block;
    width: 5px;
    height: 10px;
    border: solid white;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
    position: absolute;
    top: 5px;
    left: 5px;
}
.customer_checkbox_red span {
    position: relative;
    top: -1px;
    padding-left: 0.5em;
}
.customer_checkbox_green input[type=checkbox]:before {
    content: "";
    display: block;
    position: absolute;
    width: 13px;
    height: 13px;
    border: solid green;
    border-radius: 2px;
    background-color: transparent;
}
.customer_checkbox_green input[type=checkbox]:checked:before {
    content: "";
    display: block;
    position: absolute;
    width: 15px;
    height: 15px;
    background-color: green;
}
.customer_checkbox_green input[type=checkbox]:checked:after {
    content: "";
    display: block;
    width: 5px;
    height: 10px;
    border: solid white;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
    position: absolute;
    top: 5px;
    left: 5px;
}
.customer_checkbox_green span {
    position: relative;
    top: -1px;
    padding-left: 0.5em;
}
.customer_radio_red .marker {
    margin-left: 0.5em;
    margin-right: 1em;
    font-size: 1.6em;
    color: red !important;
}
.customer_radio_red input[type="radio"]:after {
    width: 16px;
    height: 16px;
    border-radius: 16px;
    top: -2px;
    left: -1px;
    position: relative;
    background-color: #d1d3d1;
    content: '';
    display: inline-block;
    visibility: visible;
    border: 0px solid white;
}
.customer_radio_red input[type="radio"]:checked:after {
    width: 16px;
    height: 16px;
    border-radius: 16px;
    top: -2px;
    left: -1px;
    position: relative;
    background-color: red;
    content: '';
    display: inline-block;
    visibility: visible;
    border: 0px solid white;
}
.customer_radio_green .marker {
    margin-left: 0.5em;
    margin-right: 1em;
    font-size: 1.6em;
    color: green !important;
}
.customer_radio_green input[type="radio"]:after {
    width: 16px;
    height: 16px;
    border-radius: 16px;
    top: -2px;
    left: -1px;
    position: relative;
    background-color: #d1d3d1;
    content: '';
    display: inline-block;
    visibility: visible;
    border: 0px solid white;
}
.customer_radio_green input[type="radio"]:checked:after {
    width: 16px;
    height: 16px;
    border-radius: 16px;
    top: -2px;
    left: -1px;
    position: relative;
    background-color: green;
    content: '';
    display: inline-block;
    visibility: visible;
    border: 0px solid white;
}
.customer_radio_normal .marker {
    margin-left: 0.5em;
    margin-right: 1em;
    font-size: 1.6em;
}
.customer_radio_normal input[type="radio"]:after {
    width: 16px;
    height: 16px;
    border-radius: 16px;
    top: -2px;
    left: -1px;
    position: relative;
    background-color: #d1d3d1;
    content: '';
    display: inline-block;
    visibility: visible;
    border: 0px solid white;
}
.customer_radio_normal input[type="radio"]:checked:after {
    width: 16px;
    height: 16px;
    border-radius: 16px;
    top: -2px;
    left: -1px;
    position: relative;
    background-color: #0035d2;
    content: '';
    display: inline-block;
    visibility: visible;
    border: 0px solid white;
}
.pagination {
	margin-top: 2em !important;
}
.pagination>li>a, .pagination>li>span {
  border: 0px;
  padding: 3px 6px;
}
.pagination>li.active>a {
	background: transparent;
	color: #337ab7;
	font-weight: bold;
	font-size: 16px;
	margin-top: -0.2em;
  }
/* .pagination>li.active>a {
  background: purple;
  color: #fff;
} */
/* .pagination {
	display: inline-block;
	padding-left: 0;
	.li {
		background-color: red;
	}
} */
.popover_ul {
	margin-left: -2em;
}
.popover_container .popover {
    width: 40em;
    max-width: 40em;
}
.popover_label {
	margin-right: 0px !important;
	font-family: 'Gordita Bold';
}
.pink_header {
	padding-left: 2%;
	padding-right: 2%;
	-ms-flex-direction: column !important;
	    flex-direction: column !important;
	background-color: #EEE6FF;
}
.purple_header {
	padding-left: 2%;
	padding-right: 2%;
	-ms-flex-direction: column !important;
	    flex-direction: column !important;
	background-color: rgb(217,210,233);
}
.blue_header {
	padding-left: 2%;
	padding-right: 2%;
	-ms-flex-direction: column !important;
	    flex-direction: column !important;
	background-color: rgb(207,226,243);
}
.long_section{
	width: 30% !important;
	margin-left: -5%;
	margin-right:15%;
}
/* .op-header {
	color: $white;
	text-align: center;
	padding: 5px 0;
	margin-bottom: 10px;
    color: $navy !important;
	h4 {
		font-size: 1em;
	}
} */
.operation-form {
	color: #343a40;
	font-size: 12px;
	// background-color: pink;
	padding: 0 20px;
	border-top: 2px solid #0035d2;
	border-radius: 0rem;
	padding-top: 3em;
}
.operation-form select, .operation-form .form-control {
    border-radius: 20px;
    box-shadow: none;
    // color: #343a40;
    color: #0035d2;
    font-size: 12px;
    border: 1px solid #0035d2;/* Do not set appearance (e.g. radio): Chrome misaligns text in inputs, selects, and div.form-control. */
}
.operation-form .single-value-control {
    width: 40%;
    margin-left: 100px;
}
.operation-form .form-group-label {
    padding-right: 20px;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: end;
        justify-content: flex-end;
    margin-bottom: 25px;
}
.operation-form .form-group-label .control-label {
    text-align: right;
}
.operation-form .flex {
    display: -ms-flexbox;
    display: flex;
    padding: 0;
    position: relative;
}
.operation-form .flex select, .operation-form .flex .input, .operation-form .flex .inline-number, .operation-form .flex .mark-wrap {
    margin-right: 20px;
    width: 100px;
}
.operation-form .mark-wrap, .operation-form .mark-wrap-deg {
    position: relative;
}
.operation-form .mark-wrap .six-pre, .operation-form .mark-wrap-deg .six-pre {
    position: absolute;
    top: 20%;
    transform: translateY(-50%);/* left: -20px; */
    color: #0035d2 !important;
}
.operation-form .mark-wrap .stripe-post, .operation-form .mark-wrap-deg .stripe-post {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: -15px;
}
.operation-form .mark-wrap .stripe-pre, .operation-form .mark-wrap-deg .stripe-pre {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: -12px;
}
.operation-form .mark-wrap-deg .deg {
    width: 80px;
    padding-left: 6px;
    padding-right: 6px;
}
.operation-form .mark-wrap-deg .stripe-post {
    right: -37px;
}
.operation-form label {
    color: #0035d2 !important;
}
.operation-form .marker {
    position: relative;
    top: 2px;
}
.btn-next {
	width: 120px;
}
.check-label {
	position: relative;
}
.check-label .check-span {
    position: relative;
    top: 2px;
}
.lens {
	width: 220px;
}
.lens-label {
	margin-top: 34px;
}
.visual-label {
	margin-top: 70px;
}
.form-group-label-top {
	margin-top: 40px;
}
.col-bin {
	padding-left: 60px;
}
.pressure-wrap {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-pack:start;
	    justify-content:flex-start;
}
/* max-width: 460px; */
.pressure-wrap .form-group {
    width: 40%;
}
.half-width {
	max-width: 50%;
}
.quarter-width {
	max-width: 25%;
}
.blue-box {
	border: 1px solid #0035d2;
	padding: 15px;
	background-color: #f2f6fb;
	margin-bottom: 15px;
	border-radius: 8px;
}
.blue-box .header .h4 {
    margin-bottom: 5px;
    margin-top: 0;
}
.eye-heading {
	margin-bottom: 20px;
}
.operation-note-save-wrap {
	min-height: 80px;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-pack: justify;
	    justify-content: space-between;
	-ms-flex-align: center;
	    align-items: center;
	margin: 20px 0;
}
.operation-note-save-wrap .progression-wrap {
    min-width: 250px;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: end;
        justify-content: flex-end;
    -ms-flex-align: center;
        align-items: center;
}
.operation-note-save-wrap .progression-wrap .save-progress {
    cursor: pointer;
    margin-right: 20px;
}
.operation-note-save-wrap .progression-alert-wrap {
    width: calc(100% - 280px);
}
.operation-note-save-wrap .progression-alert-wrap .alert {
    margin-bottom: 0;
}
.operation-note-save-wrap .progression-alert-wrap .alert + .alert {
    margin-top: 10px;
}
.stack-vert {
	display: -ms-inline-flexbox;
	display: inline-flex;
	-ms-flex-direction: column;
	    flex-direction: column;
	position: relative;
	top: 2px;
	margin-left: 10px;
}
.stack-vert .radio-inline + .radio-inline {
    margin-left: 0;
    margin-top: 5px;
}
.flex-biometry {
	-ms-flex-align: center;
	    align-items: center;
}
.flex-biometry .control-label {
    margin-right: 15px;
    margin-bottom: 0;
}
.biometry-input {
	width: 100px;
	margin-right: 20px;
}
.axis-wrap {
	position: relative;
}
.axis-times, .axis-deg {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	transform: translateY(-50%);
}
.axis-times {
	right: calc(100% + 6px);
}
.axis-deg {
	left: 110px;
}
.section-label {
	margin-bottom: 10px;
}
.biometry .form-row {
    margin-bottom: 15px;
}
.biometry .left-column {
    width: 18px;
}
.biometry .form-group {
    margin-bottom: 0px;
}
.biometry .help-block {
    position: absolute;
    width: 300px;
    margin-top: 0;
}
.table-incisions th, .table-incisions td {
    border-color: #0035d2 !important;
    vertical-align: middle !important;
    border-top: 0 !important;
}
.table-incisions td:last-child {
    text-align: right;
}
.table-incisions .remove-med {
    padding: 0;
    margin: 0;
    border: 1px solid #0035d2;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background-color: white;
}
.table-incisions .remove-med:hover {
    background-color: #0035d2;
    color: white;
}
.btn-add-incision {
	height: 34px;
	width: 34px;
	margin-left: 0.5em;
	padding: 0;
}
.flex-allergy {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-align: center;
	    align-items: center;
}
.flex-allergy .grow {
    -ms-flex: 1 0;
        flex: 1 0;
    margin-right: 20px;
}
.anaesthetic-wrap {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-align: center;
	    align-items: center;
}
.anaesthetic-wrap .form-group {
    width: 260px;
    margin-right: 20px;
}
.anaesthetic-wrap .help-block {
    position: absolute;
    margin-top: 0;
}
.text-area-wrap {
	position: relative;
}
.text-area-wrap .count-remaining {
    position: absolute;
    font-size: 10px;
    bottom: 0;
    right: 15px;
    color: #0035d2;
}
.diabetes-pop-up-wrap {
	width: 50%;
	position: relative;
}
.retinopathy-pop-up-OD .retinopathy-popup {
    left: calc(100% + 10px);
}
.retinopathy-pop-up-OS .retinopathy-popup {
    right: calc(100% + 10px);
}
.showRetinopathy .retinopathy-popup {
    display: block;
}
.maculopathy-pop-up-OD .maculopathy-popup {
    left: calc(100% + 10px);
}
.maculopathy-pop-up-OS .maculopathy-popup {
    right: calc(100% + 10px);
}
.showMaculopathy .maculopathy-popup {
    display: block;
}
.retinopathy-popup, .maculopathy-popup {
	border: 1px solid #0035d2;
	padding: 15px;
	font-size: 10px;
	color: #0035d2;
	background-color: white;
	width: 480px;
	position: absolute;
	z-index: 1;
	top: 0;
	display: none;
}
.retinopathy-popup .table-bordered, .maculopathy-popup .table-bordered {
    border: none !important;
    margin-bottom: 10px;
}
.retinopathy-popup .table-bordered th, .retinopathy-popup .table-bordered td, .maculopathy-popup .table-bordered th, .maculopathy-popup .table-bordered td {
    border-right: 1px solid #0035d2;
    border-left: 1px solid #0035d2;
}
.retinopathy-popup .table-bordered th:first-child, .retinopathy-popup .table-bordered td:first-child, .maculopathy-popup .table-bordered th:first-child, .maculopathy-popup .table-bordered td:first-child {
    border-left: none;
}
.retinopathy-popup .table-bordered th:last-child, .retinopathy-popup .table-bordered td:last-child, .maculopathy-popup .table-bordered th:last-child, .maculopathy-popup .table-bordered td:last-child {
    border-right: none;
}
.retinopathy-popup .table-bordered tr:last-child td, .maculopathy-popup .table-bordered tr:last-child td {
    border-bottom: none;
    padding-bottom: 0;
}
.retinopathy-popup td, .retinopathy-popup th, .maculopathy-popup td, .maculopathy-popup th {
    border-color: #0035d2 !important;
}
.retinopathy-popup p, .maculopathy-popup p {
    margin-bottom: 0;
}
.retinopathy-popup th:first-child, .retinopathy-popup td:first-child {
    width: 120px;
}
.operation-form .flex-lens {
    display: -ms-flexbox;
    display: flex;
}
.operation-form .flex-lens .form-group {
    width: 150px;
    margin-right: 20px;
}
.operation-form .flex-lens .form-group-axis {
    margin-right: 0;
    width: 110px;
}
.allergy-form-wrap .help-block {
    position: absolute;
}
.locsiii-wrap {
	position: relative;
	width: 50%;
}
.locsiii-img-wrap {
	position: absolute;
	width: 500px;
}
.locsiii-img-wrap img {
    width: 100%;
}
.locsiii-img-wrap-OD {
	position: absolute;
	width: 700px;
	left: calc(100% + 15px);
	top: 0;
	z-index: 1;
	display: none;
}
.locsiii-img-wrap-OD img {
    width: 100%;
}
.locsiii-img-wrap-OS {
	position: absolute;
	width: 500px;
	right: calc(100% + 15px);
	top: 0;
	z-index: 1;
	display: none;
}
.locsiii-img-wrap-OS img {
    width: 100%;
}
.showOpal, .showColour, .showCortical, .showPupil, .showSub {
	display: block !important;
}
.operation-note-header {
	// outline: 1px dotted pink;
	margin-bottom: 20px;
}
.operation-note-header .head-flex {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: justify;
        justify-content: space-between;
    -ms-flex-align: end;
        align-items: flex-end;
}
.operation-note-header .head-flex:last-child {
    margin-top: 10px;
}
.operation-note-header h3, .operation-note-header h4 {
    margin: 0;
}
.operation-note-header h6 {
    margin: 0;
    padding-left: 1.5em;
    font-size: 16px;
}
.operation-note-header .head-link {
    color: #0035d2;
    cursor: pointer;
    font-size: 14px;
    text-decoration: underline;
}
.operation-note-header .head-name {
    margin-right: 20px;
}
.operation-note-header .header-left, .operation-note-header .header-right {
    // outline: 1px solid green;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: end;
        align-items: flex-end;
}
.operation-note-header .header-right {
    // margin-right: 80px;
    // outline: 1px solid blue;
}
.popover-preop-wrap {
	padding: 20px;
	padding-bottom: 0;
	width: 300px;
	text-align: center;
}
.popover-preop-wrap label {
    color: #0035d2 !important;
    font-size: 12px;
    margin-bottom: 10px;
}
.popover-preop-wrap .form-control {
    border-radius: 20px;
    box-shadow: none;
    color: #0035d2;
    font-size: 12px;
    border: 1px solid #0035d2;
}
.popover-preop-wrap .form-group:last-child {
    margin-bottom: 10px;
}
.popover {
	border-color: #0035d2;
}
.popover .marker {
    position: relative;
    top: 2px;
}
.popover.bottom > .arrow {
	border-bottom-color: #0035d2;
}
.spinner-wrap {
	position: relative;
}
.vertical-buttons {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: column;
	    flex-direction: column;
}
.vertical-buttons button + button {
    margin-top: 10px;
}
.my-modal-footer-patient-details .btn-navy {
    width: 220px;
}
.incisions-image {
	width: 100%;
	padding-left: 5em;
	padding-right: 5em;
	margin-top: 1em;
	margin-bottom: 2em;
}
.margin-top-2em {
	margin-top: 2em;
}
.margin-top-1em {
	margin-top: 1em;
}
.padding-top-dot-4em {
	padding-top: 0.4em;
}
.custom-slider.rzslider :focus {outline:none;}
.custom-slider.rzslider {
	margin-top: 1em;
	margin-bottom: 1em;
}
.custom-slider.rzslider .rz-bar {
	height: 8px;
	border-radius: 4px;
  }
.custom-slider.rzslider .rz-pointer {
	width: 16px;
	height: 16px;
	top: auto; /* to remove the default positioning */
	bottom: 0;
	margin-bottom: -6px;
  }
.custom-slider.rzslider .rz-pointer:after {
	display: none;
  }
.custom-slider.rzslider .rz-bubble {
	bottom: 14px;
  }
.custom-slider.rzslider .rz-limit {
	font-weight: bold;
  }
.custom-slider.rzslider .rz-tick-value {
	top:0px;
	color: transparent;
  }
.custom-slider.rzslider .rz-tick {
	width: 1px;
	height: 10px;
	margin-left: 8px;
	border-radius: 0;
	top: -1px;
  }
.transparent-color {
	  color:transparent !important;
  }
.btn-white {
	background-color: #ffffff;
	color: #0035d2;
	width: 200px;
	border-color: #0035d2;
}
.margin-middle {
	margin-left: 1em;
	margin-right: 1em;
}
.head-link {
	color: #0035d2;
	cursor: pointer;
	font-size: 14px;
	text-decoration: underline;
}
.font-size-16 {
	font-size: 16px;
}
.postoperative-header {
	width: 100%;
	text-align: center;
	margin-top: 2em;
	margin-bottom: 2em;
}
.caret {
	display: inline-block;
	width: 0;
	height: 0;
	margin-left: 2px;
	vertical-align: middle;
	border-top: 0px dashed;
	border-top: 0px solid \9;
	border-right: 0px solid transparent;
	border-left: 0px solid transparent;
  }
.font-regular, .head-no-link, .search-form .form-group .form-control, .filter-select, .form-impact label.control-label, .popover .popover-content, .popover-normal .popover-content, .table-complete td:nth-child(1), .selected-doc-wrap .selected-doc-practice, .form-exam, .form-exam select, .form-exam .form-control, .terms, .pre-op-form, .pre-op-form select, .pre-op-form .form-control, .pre-op-header .head-link, .popover-preop-wrap label, .popover-preop-wrap .form-control, .operation-form, .operation-form select, .operation-form .form-control, .operation-form .marker, .operation-note-header .head-link, .head-link {
	font-family: 'Gordita Regular' !important;
}
.font-size-8 {
	font-size: 8px !important;
}
.margin-to-right {
	margin-left: 50%;
}
.grid-column-no-padding {
	padding-left: 0px;
	padding-right: 0px;

}
.select-no-margin {
	margin-right: 0px !important;
	width: 100% !important;
}
/* =================================================================== */
/* ! Injection note injections (per-injection block + drug batch)
/* =================================================================== */
/* Each injection is edited in place in its own card, so a pre-filled one is
   visible in the fields rather than summarised underneath them. */
.injection-block .injection-block-header {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: justify;
        justify-content: space-between;
    margin-bottom: 10px;
}
.injection-block .injection-block-title {
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.injection-block .remove-med {
    padding: 0;
    margin: 0;
    border: 1px solid #0035d2;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background-color: #ffffff;
}
.injection-block .remove-med:hover {
    background-color: #0035d2;
    color: #ffffff;
}
.btn-add-injection {
	width: auto;
	max-width: none;
	padding: 6px 16px;
}
/* Batch number and expiry sit beside the medication they belong to. Everything
   else on an injection is usually pre-filled from the patient's settings, so the
   pair gets a light accent to set it apart — enough to catch the eye on the way
   past, not enough to shout. */
.batch-fields {
	display: -ms-flexbox;
	display: flex;
	gap: 10px;
	padding: 8px 10px;
	border-left: 3px solid #FFB627;
	border-radius: 8px;
	background-color: rgba(255, 182, 39, 0.1);
}
.batch-fields .batch-field {
    -ms-flex: 1 1 0px;
        flex: 1 1 0;
    min-width: 0;
}
/* <datepicker> is a custom element, so it needs a box of its own before the
	   input inside it can fill the field and the calendar can anchor to it. */
.batch-fields datepicker {
    display: block;
    position: relative;
}
.batch-fields .control-label {
    margin-bottom: 2px;
}
.batch-warning {
	display: block;
	margin-top: 4px;
	font-size: 11px;
	font-style: normal;
	color: #a94442;
}
/*!
 * ui-select
 * http://github.com/angular-ui/ui-select
 * Version: 0.18.0 - 2016-06-14T06:54:43.159Z
 * License: MIT
 */
/* Style when highlighting a search. */
.ui-select-highlight {
    font-weight: bold;
}
.ui-select-offscreen {
    clip: rect(0 0 0 0) !important;
    width: 1px !important;
    height: 1px !important;
    border: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    position: absolute !important;
    outline: 0 !important;
    left: 0px !important;
    top: 0px !important;
}
.ui-select-choices-row:hover {
    background-color: #f5f5f5;
}
.ui-select-choices-row {
    background-color: white !important;
}
.selectize-control.single .selectize-input {
    background-image: none !important;
}
/* Select2 theme */
/* Mark invalid Select2 */
.ng-dirty.ng-invalid > a.select2-choice {
    border-color: #d44950;
}
.select2-result-single {
    padding-left: 0;
}
.select2-locked > .select2-search-choice-close {
    display: none;
}
.select-locked > .ui-select-match-close {
    display: none;
}
body > .select2-container.open {
    z-index: 9999; /* The z-index Select2 applies to the select2-drop */
}
/* Handle up direction Select2 */
.ui-select-container[theme="select2"].direction-up .ui-select-match {
    border-radius: 4px; /* FIXME hardcoded value :-/ */
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}
.ui-select-container[theme="select2"].direction-up .ui-select-dropdown {
    border-radius: 4px; /* FIXME hardcoded value :-/ */
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;

    border-top-width: 1px; /* FIXME hardcoded value :-/ */
    border-top-style: solid;

    box-shadow: 0 -4px 8px rgba(0, 0, 0, 0.25);

    margin-top: -4px; /* FIXME hardcoded value :-/ */
}
.ui-select-container[theme="select2"].direction-up .ui-select-dropdown .select2-search {
    margin-top: 4px; /* FIXME hardcoded value :-/ */
}
.ui-select-container[theme="select2"].direction-up.select2-dropdown-open .ui-select-match {
    border-bottom-color: #5897fb;
}
/* Selectize theme */
/* Helper class to show styles when focus */
.selectize-input.selectize-focus {
    border-color: transparent !important;
}
.selectize-input > input:focus {
    outline: 5px auto -webkit-focus-ring-color;
    outline-offset: -2px;
    outline-color: red;
    /* outline: none !important; */
}
.selectize-control.single .selectize-input, .selectize-dropdown.single {
    border-color: transparent;
}
/* Fix input width for Selectize theme */
.selectize-control > .selectize-input > input {
    width: 100%;
}
/* Fix dropdown width for Selectize theme */
.selectize-control > .selectize-dropdown {
    width: 100%;
}
.selectize-control.single .selectize-input, .selectize-dropdown.single {
    border-color: #3850a2 !important;
    /* border: 1px solid #3850a2 !important; */
    border-radius: 20px;
    margin-bottom: -4px;
    box-shadow: none !important;
}
/* Mark invalid Selectize */
.ng-dirty.ng-invalid > div.selectize-input {
    border-color: #d44950;
}
.selectize-dropdown {
    border: 0px solid transparent !important;
    background: transparent !important;
}
/* Handle up direction Selectize */
.ui-select-container[theme="selectize"].direction-up .ui-select-dropdown {
    box-shadow: 0 -4px 8px rgba(0, 0, 0, 0.25);

    margin-top: -2px; /* FIXME hardcoded value :-/ */
}
/* Bootstrap theme */
/* Helper class to show styles when focus */
.btn-default-focus {
    color: #333;
    background-color: #ebebeb;
    border-color: #adadad;
    text-decoration: none;
    outline: 5px auto -webkit-focus-ring-color;
    outline-offset: -2px;
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.ui-select-bootstrap .ui-select-toggle {
    position: relative;
}
.ui-select-bootstrap .ui-select-toggle > .caret {
    position: absolute;
    height: 10px;
    top: 50%;
    right: 10px;
    margin-top: -2px;
}
/* Fix Bootstrap dropdown position when inside a input-group */
.input-group > .ui-select-bootstrap.dropdown {
    /* Instead of relative */
    position: static;
}
.input-group > .ui-select-bootstrap > input.ui-select-search.form-control {
    border-radius: 4px; /* FIXME hardcoded value :-/ */
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}
.input-group > .ui-select-bootstrap > input.ui-select-search.form-control.direction-up {
    border-radius: 4px !important; /* FIXME hardcoded value :-/ */
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}
.ui-select-bootstrap > .ui-select-match > .btn {
    /* Instead of center because of .btn */
    text-align: left !important;
}
.ui-select-bootstrap > .ui-select-match > .caret {
    position: absolute;
    top: 45%;
    right: 15px;
}
/* See Scrollable Menu with Bootstrap 3 http://stackoverflow.com/questions/19227496 */
.ui-select-bootstrap > .ui-select-choices, .ui-select-bootstrap > .ui-select-no-choice {
    width: 100%;
    height: auto;
    max-height: 200px;
    overflow-x: hidden;
    margin-top: -1px;
}
body > .ui-select-bootstrap.open {
    z-index: 1000; /* Standard Bootstrap dropdown z-index */
}
.ui-select-multiple.ui-select-bootstrap {
    height: auto;
    padding: 3px 3px 0 3px;
}
.ui-select-multiple.ui-select-bootstrap input.ui-select-search {
    background-color: transparent !important; /* To prevent double background when disabled */
    border: none;
    outline: none;
    height: 1.666666em;
    margin-bottom: 3px;
}
.ui-select-multiple.ui-select-bootstrap .ui-select-match .close {
    font-size: 1.6em;
    line-height: 0.75;
}
.ui-select-multiple.ui-select-bootstrap .ui-select-match-item {
    outline: 0;
    margin: 0 3px 3px 0;
}
.ui-select-multiple .ui-select-match-item {
    position: relative;
}
.ui-select-multiple .ui-select-match-item.dropping .ui-select-match-close {
    pointer-events: none;
}
.ui-select-multiple:hover .ui-select-match-item.dropping-before:before {
    content: "";
    position: absolute;
    top: 0;
    right: 100%;
    height: 100%;
    margin-right: 2px;
    border-left: 1px solid #428bca;
}
.ui-select-multiple:hover .ui-select-match-item.dropping-after:after {
    content: "";
    position: absolute;
    top: 0;
    left: 100%;
    height: 100%;
    margin-left: 2px;
    border-right: 1px solid #428bca;
}
.ui-select-bootstrap .ui-select-choices-row > a {
    display: block;
    padding: 3px 20px;
    clear: both;
    font-weight: 400;
    line-height: 1.42857143;
    color: #333;
    white-space: nowrap;
}
.ui-select-bootstrap .ui-select-choices-row > a:hover, .ui-select-bootstrap .ui-select-choices-row > a:focus {
    text-decoration: none;
    color: #262626;
    background-color: #f5f5f5;
}
.ui-select-bootstrap .ui-select-choices-row.active > a {
    color: #fff;
    text-decoration: none;
    outline: 0;
    background-color: #428bca;
}
.ui-select-bootstrap .ui-select-choices-row.disabled > a, .ui-select-bootstrap .ui-select-choices-row.active.disabled > a {
    color: #777;
    cursor: not-allowed;
    background-color: #fff;
}
/* fix hide/show angular animation */
.ui-select-match.ng-hide-add, .ui-select-search.ng-hide-add {
    display: none !important;
}
/* Mark invalid Bootstrap */
.ui-select-bootstrap.ng-dirty.ng-invalid > button.btn.ui-select-match {
    border-color: #d44950;
}
/* Handle up direction Bootstrap */
.ui-select-container[theme="bootstrap"].direction-up .ui-select-dropdown {
    box-shadow: 0 -4px 8px rgba(0, 0, 0, 0.25);
}
.selectize-control.single .selectize-input:after {
    position: absolute;
    top: 50%;
    right: 5px !important;
    display: block;
    width: 7px !important;
    height: 7px !important;
    margin-top: -5px !important;
    border-color: #0035d2 #0035d2 transparent transparent !important;
    border-style: solid !important;
    border-width: 2px 2px 0px 0px !important;
    transform: rotate(135deg);
}
.listclass {
    border-radius: 2px !important;
    border-width: 1px !important;
}
.premium-lens-price-box {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: row;
        flex-direction: row;
    margin-right: -15px;
    margin-left: -15px;
    /* border-bottom: 1px solid $navy; */
}
.h4-medium {
    font-size: 1.2em;
}
.navy-color {
    color: #0035d2 !important;
}
.flex-row {
    width: 20%;
    text-align: center;
    font-size: 1em;
}
.dollar {
    margin-left: -6em;
    position: absolute;
    padding-top: 0.8em;
}
.dollar-non-toric {
    margin-left: -6em;
    position: absolute;
    padding-top: 0.8em;
}
.padding-zero {
    padding-top: 0px;
    padding-bottom: 0px;
    margin-top: 1em;
    margin-bottom: 1em;
}
.align-left {
    text-align: left;
}
.next-container {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: row-reverse;
        flex-direction: row-reverse;
}
.slideIn {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
}
.slideIn.ng-enter, .slideIn.ng-leave {
    transition: all 1s ease;
}
.slideIn.ng-enter {
    left: 100%;
}
.slideIn.ng-enter-active {
    left: 0;
}
.slideIn.ng-leave {
    left: 0;
}
.slideIn.ng-leave-active {
    left: 100%;
}
.slideOut {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
}
.slideOut.ng-enter, .slideOut.ng-leave {
    transition: all 1s ease;
}
.slideOut.ng-enter {
    left: -100%;
}
.slideOut.ng-enter-active {
    left: 0;
}
.slideOut.ng-leave {
    left: 0;
}
.slideOut.ng-leave-active {
    left: -100%;
}
.slidedown {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
.slidedown.ng-enter, .slidedown.ng-leave {
    transition: all 1s ease;
}
.slidedown.ng-enter {
    top: -100%;
}
.slidedown.ng-enter-active {
    top: 0;
}
.slidedown.ng-leave {
    top: 0;
}
.slidedown.ng-leave-active {
    top: 100%;
}
.slideup {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 100%;
}
.slideup.ng-enter, .slideup.ng-leave {
    transition: all 1s ease;
}
.slideup.ng-enter {
    top: 100%;
}
.slideup.ng-enter-active {
    top: 0;
}
.slideup.ng-leave {
    top: 0;
}
.slideup.ng-leave-active {
    top: -100%;
}
.ai-full-content {
    height: 100%;
}
/* --- Main Layout Container --- */
.ai-agent-main {
    /* Changed from margin to padding so height: 100% works correctly */
    height: 100%;
    width: 100%;
    padding: 2rem; 
    box-sizing: border-box;
    
    /* ENABLES THE STICKY FOOTER LAYOUT */
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
}
/* --- Scrollable Content Area --- */
/* This targets the container holding the tables and forms */
.dialog-content-box, .ai-scroll {
    /* Grow to fill empty space */
    -ms-flex: 1;
        flex: 1; 
    
    /* Handle Scrolling */
    overflow-y: auto; 
    overflow-x: hidden;
    
    /* Remove fixed heights */
    height: auto; 
    width: 100%;
    
    /* Add breathing room for scrollbar */
    padding-right: 5px; 
    padding-left: 1rem;
    
    /* Fix for Firefox flex scrolling */
    min-height: 0; 
}
/* --- Footer Buttons --- */
.ai-agent-footer {
    width: 100%;
    
    /* Layout */
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: row;
        flex-direction: row;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: center;
        justify-content: center;
    gap: 1rem;
    position: relative; 
    bottom: auto;
    -ms-flex-negative: 0;
        flex-shrink: 0; 
    padding-top: 1.5rem;
    margin-top: auto; 
    background-color: inherit;
    z-index: 10;
}
/* --- Utility Classes --- */
.ai-agent-item-row {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: row;
        flex-direction: row;
    -ms-flex-align: baseline;
        align-items: baseline;
    gap: 1rem;
}
/* --- Animations --- */
.playing i {
    animation: flash 1s infinite;
    color: #e91e63;
}
@keyframes flash {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.3; }
}
/* --- Transcription styles --- */
.tr-compact-toolbar {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 8px;
    padding: 6px 10px;
    border-radius: 4px;
    min-height: 42px;
}
/* Standardized 30x30 square buttons for icons */
.tr-icon-btn {
    height: 30px;
    width: 32px;
    padding: 0;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: center;
        justify-content: center;
}
.tr-mic-selector {
    margin-bottom: 0;
    max-width: 160px;
}
.tr-mic-selector .form-control {
        height: 30px;
        padding: 4px 8px;
    }
.tr-mic-icon-addon {
    padding: 4px 8px;
    border: none;
    background: transparent;
}
.tr-timer-display {
    font-family: monospace;
    font-size: 1.2em;
    font-weight: bold;
    padding: 0 10px;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 6px;
}
.tr-toolbar-divider {
    width: 1px;
    height: 20px;
    background-color: #ccc;
    margin: 0 2px;
}
.tr-permission-error {
    margin-top: 4px;
    font-weight: bold;
}
.blink {
    animation: blinker 1.5s linear infinite;
}
@keyframes blinker {
    50% {
        opacity: 0;
    }
}
/*
 * ===================================================================
 * Themed Quill Editor Component
 * ===================================================================
 */
/* --- 1. Theme Variables --- */
:root {
    --ql-font-family: 'Gordita Regular', sans-serif;
    --ql-border-radius: 8px;
    --ql-border-color: #949599; 
    --ql-accent-color: #0035d2; 
    --ql-white-color: #ffffff;
    --ql-text-bg-color: #f2f6fb; 
    --ql-toolbar-bg-color: #ebecea; 
    --ql-text-color: #404141; 
    --ql-subtle-border-color: #bccad2; 
}
/* --- 2. Main Editor Container --- */
.ql-toolbar, .ql-container {
    font-family: var(--ql-font-family);
    border-color: var(--ql-border-color) !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
/* --- 3. Toolbar UI --- */
.ql-toolbar {
    background: var(--ql-toolbar-bg-color);
    border-top-left-radius: var(--ql-border-radius);
    border-top-right-radius: var(--ql-border-radius);
    border-bottom: 1px solid var(--ql-border-color) !important;
}
.ql-toolbar .ql-stroke {
        stroke: var(--ql-text-color);
    }
.ql-toolbar .ql-fill {
        fill: var(--ql-text-color);
    }
.ql-toolbar .ql-picker-label {
        color: var(--ql-text-color);
    }
.ql-toolbar button:hover, .ql-toolbar .ql-picker-label:hover {
            background: rgba(0, 0, 0, 0.05);
        }
.ql-toolbar button.ql-active, .ql-toolbar .ql-picker-label.ql-active {
            background: rgba(0, 53, 210, 0.1); 
        }
.ql-toolbar .ql-tooltip {
        display: none !important;
    }
/* --- 4. Editable Content Area --- */
.ql-container {
    border-bottom-left-radius: var(--ql-border-radius);
    border-bottom-right-radius: var(--ql-border-radius);
    background: var(--ql-text-bg-color);
}
.ql-editor {
    min-height: 250px;
    color: var(--ql-text-color);
    padding: 1rem 1.5rem;
}
.ql-editor.ql-blank::before {
        color: #949599;
        font-style: normal;
        left: 1.5rem;
    }
/* --- 5. Focus State --- */
.ql-container.ql-focus {
    border-color: var(--ql-accent-color) !important;
    box-shadow: 0 0 0 3px rgba(0, 53, 210, 0.25);
}
.ql-toolbar.ql-focus {
    border-color: var(--ql-accent-color) !important;
}
/* --- 6. Content Styling --- */
.ql-editor h1, .ql-editor h2, .ql-editor h3 {
    color: var(--ql-text-color);
    font-weight: 700;
    border-bottom: 1px solid var(--ql-subtle-border-color);
    padding-bottom: 0.3em;
    margin-bottom: 0.8em;
}
.ql-editor h1 {
    font-size: 2em;
}
.ql-editor h2 {
    font-size: 1.75em;
}
.ql-editor h3 {
    font-size: 1.5em;
}
.ql-editor p, .ql-editor ol, .ql-editor ul {
    font-size: 1rem;
    line-height: 1.7;
    color: var(--ql-text-color);
}
.ql-editor a {
    color: var(--ql-accent-color);
    text-decoration: none;
    font-weight: 700;
}
.ql-editor a:hover {
        text-decoration: underline;
    }
/* --- 7. Font Family Selector --- */
.ql-snow .ql-picker.ql-font {
    width: 130px;
}
/* Default option (no font value) is the theme font, Gordita Regular. */
.ql-snow .ql-picker.ql-font .ql-picker-label::before, .ql-snow .ql-picker.ql-font .ql-picker-item::before {
    content: 'Gordita Regular';
    font-family: 'Gordita Regular', sans-serif;
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="arial"]::before, .ql-snow .ql-picker.ql-font .ql-picker-item[data-value="arial"]::before {
    content: 'Arial';
    font-family: Arial, sans-serif;
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="georgia"]::before, .ql-snow .ql-picker.ql-font .ql-picker-item[data-value="georgia"]::before {
    content: 'Georgia';
    font-family: Georgia, serif;
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="times-new-roman"]::before, .ql-snow .ql-picker.ql-font .ql-picker-item[data-value="times-new-roman"]::before {
    content: 'Times New Roman';
    font-family: 'Times New Roman', Times, serif;
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="courier-new"]::before, .ql-snow .ql-picker.ql-font .ql-picker-item[data-value="courier-new"]::before {
    content: 'Courier New';
    font-family: 'Courier New', Courier, monospace;
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="verdana"]::before, .ql-snow .ql-picker.ql-font .ql-picker-item[data-value="verdana"]::before {
    content: 'Verdana';
    font-family: Verdana, Geneva, sans-serif;
}
/* Apply the chosen font to the editor content. */
.ql-font-arial {
    font-family: Arial, sans-serif;
}
.ql-font-georgia {
    font-family: Georgia, serif;
}
.ql-font-times-new-roman {
    font-family: 'Times New Roman', Times, serif;
}
.ql-font-courier-new {
    font-family: 'Courier New', Courier, monospace;
}
.ql-font-verdana {
    font-family: Verdana, Geneva, sans-serif;
}
.quill-viewer-container {
    --ql-text-bg-color: transparent;
}
.quill-viewer-container.ql-container {
        border: none !important;
    }
.quill-viewer-container.ql-container .ql-editor {
            min-height: 0;
            padding: 0;
            color: inherit;
            border: none !important;
        }
.quill-viewer-container.ql-container .ql-editor a {
                color: inherit;
                font-weight: inherit;
            }
/* =================================================================== */
/* ! Payment Settings
/* =================================================================== */
/* --- Main View Container --- */
.payment-settings-main {
    height: 100%;
    width: 100%;
    padding: 20px 30px;
    background-color: #f4f7fe;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    overflow-y: auto;
}
/* --- Typography Overrides --- */
.payment-settings-main h3, .payment-settings-main h4, .payment-settings-main h5 {
    font-family: 'Gordita Bold', sans-serif;
    margin-top: 0;
}
/* =================================================================== */
/* ! Hero Section (Digital Wallet)
/* =================================================================== */
.wallet-hero-section {
    width: 100%;
    margin-bottom: 25px;
}
.wallet-card-visual {
    background: linear-gradient(135deg, #0035d2 0%, #2a307f 100%);
    border-radius: 16px;
    padding: 25px 35px;
    color: #ffffff;
    box-shadow: 0 8px 20px rgba(0, 53, 210, 0.25);
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: justify;
        justify-content: space-between;
    -ms-flex-align: center;
        align-items: center;
    position: relative;
    overflow: hidden;
}
.wallet-card-visual::after {
    content: '';
    position: absolute;
    right: -50px;
    top: -50px;
    width: 200px;
    height: 200px;
    background: rgba(255,255,255,0.1);
    border-radius: 50%;
    pointer-events: none;
}
.wallet-card-visual .wallet-info {
    z-index: 1;
}
.wallet-card-visual .wallet-info h5 {
    color: rgba(255, 255, 255, 0.8);
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: 12px;
    margin-bottom: 10px;
}
.wallet-card-visual .wallet-info h1 {
    font-size: 42px;
    font-weight: 700;
    margin: 0;
    line-height: 1;
}
.wallet-card-visual .wallet-info h1 small {
    font-size: 16px;
    color: rgba(255, 255, 255, 0.8);
    font-weight: 400;
    margin-left: 5px;
}
.wallet-card-visual .wallet-status {
    text-align: right;
    z-index: 1;
}
.wallet-card-visual .wallet-status .status-badge {
    background: rgba(255,255,255,0.2);
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 12px;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 8px;
}
.wallet-card-visual .wallet-status .status-badge.active {
    background: #ffffff;
    color: #20c997;
}
.wallet-card-visual .wallet-status .status-badge.inactive {
    color: rgba(255,255,255,0.7);
}
/* =================================================================== */
/* ! Grid Layout
/* =================================================================== */
.settings-grid {
    display: -ms-flexbox;
    display: flex;
    gap: 20px;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
}
.grid-col-left {
    -ms-flex: 3;
        flex: 3;
    min-width: 300px;
}
.grid-col-right {
    -ms-flex: 2;
        flex: 2;
    min-width: 280px;
}
/* =================================================================== */
/* ! Card Components
/* =================================================================== */
.settings-card {
    background-color: #fff;
    border: none;
    border-radius: 12px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
    padding: 25px;
    height: 100%;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
}
.settings-card .card-header, .settings-card .card-header-flex {
    border-bottom: 1px solid #e0e6ed;
    padding-bottom: 15px;
    margin-bottom: 20px;
}
.settings-card .card-header h4, .settings-card .card-header-flex h4 {
    color: #0035d2;/* $navy */
    margin: 0;
    font-size: 16px;
    font-weight: 700;
}
.settings-card .card-header-flex {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: justify;
        justify-content: space-between;
    -ms-flex-align: center;
        align-items: center;
}
.settings-card .card-body {
    -ms-flex: 1;
        flex: 1;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
}
/* =================================================================== */
/* ! Backup Card & Footer Warnings
/* =================================================================== */
.settings-card .backup-missing-footer {
    background-color: #fff5f5;
    border-top: 1px solid #ffe5cc;
    padding: 12px 20px;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: justify;
        justify-content: space-between;
    -ms-flex-align: center;
        align-items: center;
    margin-left: -25px;
    margin-right: -25px;
    margin-bottom: -25px;
    margin-top: auto;
    border-bottom-left-radius: 12px;
    border-bottom-right-radius: 12px;
}
.settings-card .backup-missing-footer .warning-text {
    color: #856404;
    font-size: 12px;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
}
.settings-card .backup-missing-footer .warning-text i {
    margin-right: 8px;
    color: #ffab00;
    font-size: 14px;
}
.settings-card .backup-missing-footer .warning-text strong {
    margin-right: 4px;
    font-family: 'Gordita Bold', sans-serif;
}
.settings-card .backup-missing-footer .btn-outline-warning {
    border: 1px solid #ffab00;
    color: #ffab00;
    background: transparent;
    font-size: 10px;
    font-weight: 700;
    padding: 6px 12px;
    border-radius: 15px;
    white-space: nowrap;
    transition: all 0.2s ease;
    cursor: pointer;
}
.settings-card .backup-missing-footer .btn-outline-warning:hover {
    background-color: #ffab00;
    color: #ffffff;
}
/* =================================================================== */
/* ! Left Column: Auto-Reload Inputs
/* =================================================================== */
.setting-row {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: start;
        align-items: flex-start;
    padding: 15px 0;
    border-bottom: 1px dashed #e0e6ed;
}
.setting-row:last-of-type {
    border-bottom: none;
}
.setting-row .setting-icon {
    width: 40px;
    height: 40px;
    background-color: #f4f7fe;
    color: #0035d2;
    border-radius: 8px;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: center;
        justify-content: center;
    margin-right: 15px;
    font-size: 18px;
}
.setting-row .setting-content {
    -ms-flex: 1;
        flex: 1;
}
.setting-row .setting-content label {
    display: block;
    font-size: 13px;
    color: #555;
    margin-bottom: 5px;
    font-weight: 600;
}
.setting-row .setting-content .helper-text {
    font-size: 11px;
    color: #888;
    margin-top: 4px;
}
.setting-row .setting-input-wrapper {
    position: relative;
    width: 100px;
}
.setting-row .setting-input-wrapper input {
    width: 100%;
    padding: 8px 12px;
    padding-right: 20px;
    border: 1px solid #e0e6ed;
    border-radius: 8px;
    text-align: right;
    color: #0035d2;
    font-weight: bold;
    font-size: 14px;
    transition: all 0.2s;
}
.setting-row .setting-input-wrapper input:focus {
    border-color: #0035d2;
    outline: none;
    box-shadow: 0 0 0 3px rgba(0, 53, 210, 0.1);
}
.setting-row .setting-input-wrapper input:disabled {
    background-color: #f9f9f9;
    color: #aaa;
}
/* Toggle Switch */
.toggle-switch {
    position: relative;
    display: inline-block;
    width: 44px;
    height: 24px;
}
.toggle-switch input {
    opacity: 0;
    width: 0;
    height: 0;
}
.toggle-switch .slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #ccc;
    transition: .4s;
    border-radius: 24px;
}
.toggle-switch .slider:before {
    position: absolute;
    content: "";
    height: 18px;
    width: 18px;
    left: 3px;
    bottom: 3px;
    background-color: white;
    transition: .4s;
    border-radius: 50%;
}
.toggle-switch input:checked + .slider {
    background-color: #20c997;
}
.toggle-switch input:focus + .slider {
    box-shadow: 0 0 1px #20c997;
}
.toggle-switch input:checked + .slider:before {
    transform: translateX(20px);
}
.disabled-overlay {
    opacity: 0.5;
    pointer-events: none;
    transition: opacity 0.3s;
}
.save-status-indicator {
    height: 20px;
    margin-top: auto;
    text-align: right;
    font-size: 12px;
    font-style: italic;
    color: #20c997;
    transition: opacity 0.3s;
}
.save-status-indicator.error {
    color: #d9534f;
}
/* =================================================================== */
/* ! Right Column: Payment Method (Redesigned)
/* =================================================================== */
/* Center container for the right column */
.payment-card-content {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: start;
        justify-content: flex-start;
    text-align: center;
    height: 100%;
    width: 100%;
    padding: 30px 20px;
}
/* Credit Card Visual Box */
.cc-visual {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: row;
        flex-direction: row;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: start;
        justify-content: flex-start;
    gap: 20px;
    background-color: #ffffff;
    border: 1px solid #e0e6ed;
    border-radius: 12px;
    padding: 20px 25px;
    box-shadow: 0 4px 12px rgba(0, 53, 210, 0.08); 
    width: 100%;
    max-width: 380px; 
    margin-bottom: 25px;
}
.cc-visual .cc-icon {
    color: #0035d2;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: center;
        justify-content: center;
    width: 50px;
}
.cc-visual .cc-text {
    -ms-flex: 1;
        flex: 1;
    text-align: left;
}
.cc-visual .cc-text h5 {
    margin: 0;
    font-size: 18px;
    color: #333;
    font-weight: 700;
    letter-spacing: 1px;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
}
/* New class for the masked dots */
.cc-visual .cc-text .masked-dots {
    font-size: 24px;
    line-height: 10px;
    margin-right: 8px;
    position: relative;
    top: 4px;
    color: #888;
}
.cc-visual .cc-text p {
    margin: 5px 0 0 0;
    font-size: 13px;
    color: #888;
    font-weight: 500;
}
/* Stripe Input Container (Constrained width) */
.stripe-input-container {
    width: 100%;
    max-width: 380px;
    margin: 0 auto;
}
#card-element {
    border: 1px solid #0035d2;
    border-radius: 20px;
    padding: 12px 15px;
    background: white;
    margin-bottom: 0;
}
#card-errors {
    margin-top: 5px;
    min-height: 18px;
    text-align: center;
}
/* Buttons (Centered & Constrained) */
.vertical-buttons {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    -ms-flex-align: center;
        align-items: center;
    width: 100%;
}
.btn-centered {
    width: 100% !important;
    max-width: 240px;
    margin: 5px 0;
}
/* =================================================================== */
/* ! Usage History Table
/* =================================================================== */
.usage-container {
    background: white;
    border-radius: 12px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
    
    max-height: calc(170vh);
    overflow-y: auto;
    position: relative;
}
.usage-container table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 0;
}
.usage-container table th {
    background: #f4f7fe;
    color: #0035d2;
    padding: 15px;
    text-align: left;
    font-weight: bold;
    font-size: 13px;
    white-space: nowrap;
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    z-index: 10;
    box-shadow: inset 0 -1px 0 #eee;
}
.usage-container table td {
    padding: 15px;
    border-bottom: 1px solid #eee;
    color: #343a40;
    font-size: 13px;
    vertical-align: middle;
}
.usage-container table td small {
    display: block;
    color: #98a6ad;
    font-size: 11px;
    margin-top: 2px;
    font-weight: 400;
}
.usage-container table tr:last-child td {
    border-bottom: none;
}
/* Optional: Custom scrollbar for the table container */
.usage-container::-webkit-scrollbar {
    width: 6px;
}
.usage-container::-webkit-scrollbar-thumb {
    background-color: rgba(0, 53, 210, 0.1);
    border-radius: 10px;
}
.usage-container .label {
    font-size: 10px;
    padding: 3px 8px;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 600;
    display: inline-block;
    line-height: 1.5;
}
/* Custom Scrollbar for the Main Container */
.payment-settings-main::-webkit-scrollbar {
    width: 6px;
}
.payment-settings-main::-webkit-scrollbar-track {
    background: transparent; 
}
.payment-settings-main::-webkit-scrollbar-thumb {
    background-color: rgba(0, 53, 210, 0.1); /* Light Navy */
    border-radius: 20px;
}
.payment-settings-main:hover::-webkit-scrollbar-thumb {
    background-color: rgba(0, 53, 210, 0.3);
}
/* Utility */
.mt-auto { margin-top: auto; }
/* Card Switcher Header */
.card-switcher {
    background: #f4f7fe;
    padding: 4px 12px;
    border-radius: 15px;
    color: #0035d2;
    font-size: 14px;
    transition: all 0.2s;
}
.card-switcher:hover {
    background: #0035d2;
    color: white;
}
/* Backup Card Visual Variant */
.cc-visual.backup-style {
    border: 1px dashed #ffab00;
    box-shadow: 0 4px 12px rgba(255, 171, 0, 0.1);
}
.cc-visual.backup-style .cc-icon {
    color: #ffab00;
}
/* Helper Colors */
.text-warning { color: #ffab00 !important; }
.btn-warning {
    background-color: #ffab00 !important;
    color: white !important;
    border-radius: 20px;
    font-weight: bold;
}
.btn-warning:hover {
    background-color: #e69a00 !important;
}
/* Snappy Fading for Buttons */
.animate-fade.ng-enter, .animate-fade.ng-leave {
    transition: 150ms cubic-bezier(0.250, 0.460, 0.450, 0.940) all;
}
.animate-fade.ng-enter, .animate-fade.ng-leave.ng-leave-active {
    opacity: 0;
}
.animate-fade.ng-leave, .animate-fade.ng-enter.ng-enter-active {
    opacity: 1;
}
/* Ensure buttons don't jump layout when switching */
.vertical-buttons {
    min-height: 50px;
    position: relative;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
        justify-content: center;
}
.animate-fade {
    width: 100%;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    -ms-flex-align: center;
        align-items: center;
}
/* --- Universal Token Section --- */
.universal-token-section {
    margin-bottom: 25px;
}
/* Header & Title Styling */
.token-header {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 15px;
    margin-bottom: 18px;
    padding-left: 5px;
}
.token-circle-icon {
    width: 46px;
    height: 46px;
    background: linear-gradient(135deg, #0035d2 0%, #2a307f 100%);
    color: white;
    border-radius: 12px;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: center;
        justify-content: center;
    font-size: 18px;
    box-shadow: 0 4px 12px rgba(0, 53, 210, 0.15);
    -ms-flex-negative: 0;
        flex-shrink: 0; /* Prevents icon from squishing */
}
.token-title-group {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    -ms-flex-pack: center;
        justify-content: center;
}
.premium-title {
    margin: 0;
    font-size: 20px;
    font-family: 'Gordita Bold', sans-serif;
    color: #2a307f;
    letter-spacing: -0.02em;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 10px;
    line-height: 1.2;
}
.title-separator {
    width: 4px;
    height: 4px;
    background-color: #0035d2;
    border-radius: 50%;
    opacity: 0.4;
    display: inline-block;
}
.premium-subtitle {
    margin: 4px 0 0 0 !important;
    font-size: 13px;
    color: #878ba0;
    font-weight: 400;
}
.premium-title {
    margin: 0;
    font-size: 20px;
    font-family: 'Gordita Bold', sans-serif;
    color: #2a307f;
    letter-spacing: -0.02em;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 10px;
    line-height: 1.2;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
}
.token-price-badge {
    font-size: 11px;
    background-color: #e6fffa; 
    color: #20c997; 
    padding: 4px 10px;
    border-radius: 20px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    border: 1px solid rgba(32, 201, 151, 0.2);
    font-family: sans-serif;
}
/* Grid & Items Styling */
.token-value-grid {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: justify;
        justify-content: space-between;
    gap: 12px;
}
.token-item {
    -ms-flex: 1;
        flex: 1;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    background: #ffffff;
    padding: 12px 15px;
    border-radius: 12px;
    border: 1px solid #e0e6ed;
    transition: transform 0.2s ease;
}
.token-item:hover {
    transform: translateY(-2px);
    border-color: #cbd5e0;
}
.item-icon {
    width: 34px;
    height: 34px;
    border-radius: 8px;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: center;
        justify-content: center;
    margin-right: 12px;
    font-size: 15px;
    -ms-flex-negative: 0;
        flex-shrink: 0;
}
.item-icon.ai-agent { background: #e7f0ff; color: #0035d2; }
.item-icon.sms { background: #e6fffa; color: #20c997; }
.item-icon.transcription { background: #fff4e5; color: #ffab00; }
.item-details {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
}
.item-label {
    font-size: 10px;
    color: #888;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    line-height: 1.4;
}
.item-value {
    font-size: 14px;
    font-weight: 700;
    color: #333;
    line-height: 1.2;
}
.item-value small {
    font-weight: 500;
    color: #0035d2;
    font-size: 13px;
}
.btn-outline-white {
    background-color: rgba(255, 255, 255, 0.15);
    border: 1px solid rgba(255, 255, 255, 0.5);
    color: #ffffff;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 8px 12px;
    border-radius: 20px;
    transition: all 0.2s ease;
    width: 100%;
    margin-top: 5px;
}
.btn-outline-white:hover:not(:disabled) {
    background-color: #ffffff;
    color: #0035d2;
    border-color: #ffffff;
    box-shadow: 0 4px 10px rgba(0,0,0,0.15);
    cursor: pointer;
}
.btn-outline-white:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}
.btn-outline-white i {
    margin-right: 5px;
}
/* Responsive Logic */
@media (max-width: 992px) {
    .token-value-grid {
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
    }
    .token-item {
        min-width: calc(50% - 12px);
    }
}
@media (max-width: 600px) {
    .token-item {
        min-width: 100%;
    }
    .premium-title {
        font-size: 18px;
    }
}
/* =================================================================== */
/* ! AI Transcription Seats
/* Shared by the seat plan dialog and the seat assignment / usage dialog.
/* =================================================================== */
/* The component sits directly inside an md-tab, so its host element has to carry the height itself. */
transcription-seats-view {
    display: block;
    height: 100%;
}
.seat-main {
    height: 100%;
    width: 100%;
    padding: 20px 30px;
    background-color: #f4f7fe;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    overflow-y: auto;
}
.seat-main h3, .seat-main h4, .seat-main h5 {
    font-family: 'Gordita Bold', sans-serif;
    margin-top: 0;
}
/* =================================================================== */
/* ! Section switcher
/* Buying, assigning and reporting are one view over one load of the
/* subscription, so they switch here rather than through the dialog's
/* own tabs.
/* =================================================================== */
.seat-subnav {
    display: -ms-flexbox;
    display: flex;
    gap: 6px;
    background: #ffffff;
    border: 1px solid #e0e6ed;
    border-radius: 12px;
    padding: 5px;
    margin-bottom: 18px;
}
.seat-subnav button {
    position: relative;
    -ms-flex: 1;
        flex: 1;
    border: 0;
    background: transparent;
    border-radius: 8px;
    padding: 9px 12px;
    font-size: 13px;
    font-weight: 600;
    color: #6c757d;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}
.seat-subnav button i {
    margin-right: 6px;
}
.seat-subnav button:hover:not(.active) {
    background: #f8f9fa;
    color: #2a307f;
}
.seat-subnav button.active {
    background: #0035d2;
    color: #ffffff;
}
/* =================================================================== */
/* ! Callouts
/* =================================================================== */
.seat-alert {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 12px;
    padding: 12px 18px;
    border-radius: 10px;
    margin-bottom: 14px;
    font-size: 13px;
    line-height: 1.45;
    border-left: 4px solid transparent;
}
.seat-alert > i {
    font-size: 16px;
    -ms-flex-negative: 0;
        flex-shrink: 0;
}
.seat-alert > span {
    -ms-flex: 1;
        flex: 1;
}
/* The shared .btn rules stretch to 220px, which reads as a slab on a single-line callout. */
.seat-alert .btn {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    width: auto;
}
.seat-alert.tight {
    margin: 12px 0 0;
    padding: 8px 12px;
    font-size: 12px;
}
.seat-alert.info {
    background-color: #e7f0ff;
    border-left-color: #0035d2;
    color: #2a307f;
}
.seat-alert.warning {
    background-color: rgba(255, 243, 205, 0.9);
    border-left-color: rgba(255, 193, 7, 0.7);
    color: #856404;
}
.seat-alert.danger {
    background-color: rgba(217, 83, 79, 0.1);
    border-left-color: #d9534f;
    color: #a94442;
}
.seat-alert.trial {
    background-color: rgba(0, 188, 212, 0.1);
    border-left-color: #00bcd4;
    color: #00796b;
}
/* =================================================================== */
/* ! Subscription status strip
/* =================================================================== */
.seat-status-strip {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 40px;
    background: #ffffff;
    border: 1px solid #e0e6ed;
    border-radius: 12px;
    padding: 16px 24px;
    margin-bottom: 18px;
}
.seat-status-item {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    gap: 4px;
}
.seat-status-label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: #6c757d;
    font-weight: 600;
}
.seat-status-value {
    font-size: 16px;
    font-weight: 700;
    color: #2a307f;
}
.seat-pill {
    display: inline-block;
    padding: 3px 12px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.seat-pill.pill-active {
    background-color: rgba(32, 201, 151, 0.2);
    color: #12805c;
}
.seat-pill.pill-warning {
    background-color: rgba(255, 182, 39, 0.3);
    color: #856404;
}
.seat-pill.pill-danger {
    background-color: rgba(217, 83, 79, 0.15);
    color: #a94442;
}
.seat-pill.pill-muted {
    background-color: #ebecea;
    color: #6c757d;
}
/* =================================================================== */
/* ! Plan picker layout
/* =================================================================== */
.seat-plan-layout {
    display: -ms-flexbox;
    display: flex;
    gap: 22px;
    -ms-flex-align: start;
        align-items: flex-start;
}
.seat-plan-column {
    -ms-flex: 1 1 60%;
        flex: 1 1 60%;
    min-width: 0;
}
.seat-summary-column {
    -ms-flex: 0 0 320px;
        flex: 0 0 320px;
    position: -webkit-sticky;
    position: sticky;
    top: 0;
}
/* =================================================================== */
/* ! Seat tier card
/* Two tiers, side by side and equal height, so choosing between them is
/* one comparison rather than a scroll.
/* =================================================================== */
.seat-tier-grid {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: stretch;
        align-items: stretch;
    gap: 16px;
    margin-bottom: 16px;
}
.seat-tier-card {
    position: relative;
    -ms-flex: 1 1 0px;
        flex: 1 1 0;
    min-width: 0;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    background: #ffffff;
    border: 1px solid #e0e6ed;
    border-radius: 12px;
    overflow: hidden;
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
}
.seat-tier-card:hover {
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}
.seat-tier-card.recommended {
    border-color: #0035d2;
    box-shadow: 0 4px 14px rgba(0, 53, 210, 0.12);
}
.seat-tier-flag {
    position: absolute;
    top: 0;
    right: 0;
    background: #0035d2;
    color: #ffffff;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.8px;
    padding: 4px 14px;
    border-bottom-left-radius: 8px;
}
.seat-tier-header {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 14px;
    padding: 20px 24px 10px;
}
.seat-tier-header h4 {
    margin: 0;
    font-size: 17px;
    color: #2a307f;
}
.seat-tier-icon {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: center;
        justify-content: center;
    font-size: 18px;
    -ms-flex-negative: 0;
        flex-shrink: 0;
}
.seat-tier-icon.standard {
    background: #e7f0ff;
    color: #0035d2;
}
.seat-tier-icon.premium {
    background: rgba(162, 155, 254, 0.2);
    color: #9C27B0;
}
.seat-tier-price {
    padding: 0 24px;
}
.seat-tier-price .amount {
    font-size: 30px;
    font-weight: 700;
    color: #2a307f;
    letter-spacing: -0.02em;
}
.seat-tier-price .period {
    margin-left: 6px;
    font-size: 12px;
    color: #6c757d;
}
.seat-tier-included {
    margin: 4px 0 0;
    padding: 0 24px;
    font-size: 13px;
    color: #343a40;
}
/* Pushed to the bottom of the card so both steppers line up whatever the copy above does. */
.seat-tier-body {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 18px;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    margin-top: auto;
    padding: 18px 24px 20px;
}
.seat-tier-state {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    gap: 2px;
    font-size: 12px;
    color: #6c757d;
}
.seat-stepper {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 0;
    border: 1px solid #e0e6ed;
    border-radius: 8px;
    overflow: hidden;
    -ms-flex-negative: 0;
        flex-shrink: 0;
}
.seat-step-btn {
    width: 40px;
    height: 42px;
    border: 0;
    background: #f8f9fa;
    color: #0035d2;
    font-size: 13px;
    cursor: pointer;
    transition: background 0.15s ease;
}
.seat-step-btn:hover:not([disabled]) {
    background: #e7f0ff;
}
.seat-step-btn[disabled] {
    color: #bdbec1;
    cursor: not-allowed;
}
.seat-step-input {
    width: 68px;
    height: 42px;
    border: 0;
    border-left: 1px solid #e0e6ed;
    border-right: 1px solid #e0e6ed;
    text-align: center;
    font-size: 18px;
    font-weight: 700;
    color: #2a307f;
    background: #ffffff;

    /* The + and - buttons either side are the only steppers: the browser's own arrows sit inside the
       box, are far too small to aim at, and step past the minimum the practice is allowed to keep. */
    -moz-appearance: textfield;
    -webkit-appearance: textfield;
            appearance: textfield;
}
.seat-step-input::-webkit-outer-spin-button, .seat-step-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.seat-step-input:focus {
    outline: none;
    background: #e7f0ff;
}
.seat-overflow-note {
    display: -ms-flexbox;
    display: flex;
    gap: 12px;
    -ms-flex-align: start;
        align-items: flex-start;
    background: #ffffff;
    border: 1px dashed #c0cde0;
    border-radius: 10px;
    padding: 14px 18px;
    font-size: 12px;
    color: #6c757d;
    line-height: 1.5;
}
.seat-overflow-note i {
    color: #0035d2;
    font-size: 15px;
    margin-top: 2px;
}
/* =================================================================== */
/* ! Order summary
/* =================================================================== */
.seat-summary-card {
    background: #ffffff;
    border: 1px solid #e0e6ed;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}
.seat-summary-header {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: justify;
        justify-content: space-between;
    background: linear-gradient(135deg, #0035d2 0%, #2a307f 100%);
    color: #ffffff;
    padding: 14px 20px;
}
.seat-summary-header h4 {
    margin: 0;
    color: #ffffff;
    font-size: 15px;
    letter-spacing: 0.5px;
}
.seat-summary-currency {
    font-size: 11px;
    font-weight: 600;
    opacity: 0.8;
}
.seat-summary-body {
    padding: 18px 20px;
    min-height: 120px;
}
.seat-summary-loading, .seat-summary-empty {
    text-align: center;
    color: #6c757d;
    font-size: 13px;
    padding: 24px 0;
}
.seat-summary-loading i, .seat-summary-empty i {
    margin-right: 6px;
}
.summary-line {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: justify;
        justify-content: space-between;
    -ms-flex-align: baseline;
        align-items: baseline;
    padding: 8px 0;
    border-bottom: 1px solid #e0e6ed;
    font-size: 13px;
}
.summary-line.total {
    border-bottom: 0;
    border-top: 2px solid #2a307f;
    margin-top: 6px;
    padding-top: 12px;
    font-size: 16px;
    font-weight: 700;
    color: #2a307f;
}
.summary-label {
    color: #343a40;
}
.summary-label small {
    display: block;
    color: #6c757d;
    font-size: 11px;
}
.summary-amount {
    font-weight: 700;
    color: #2a307f;
    white-space: nowrap;
}
.summary-charge {
    margin-top: 14px;
    padding: 12px 14px;
    border-radius: 8px;
    background: #e7f0ff;
}
.summary-charge.downgrade {
    background: rgba(255, 243, 205, 0.9);
}
.summary-charge.downgrade .charge-row {
    color: #856404;
}
.charge-row {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: justify;
        justify-content: space-between;
    -ms-flex-align: center;
        align-items: center;
    font-size: 13px;
    font-weight: 600;
    color: #2a307f;
}
.charge-row strong {
    font-size: 16px;
}
.charge-note {
    margin: 6px 0 0;
    font-size: 11px;
    line-height: 1.45;
    color: #6c757d;
}
.summary-next {
    margin-top: 12px;
    font-size: 11px;
    color: #6c757d;
    text-align: center;
}
.seat-summary-footer {
    border-top: 1px solid #e0e6ed;
    padding: 16px 20px;
    background: #f8faff;
}
.seat-summary-footer .btn {
    margin-bottom: 8px;
}
/* The global .btn-navy is capped at 220px, which leaves the block button
       hugging the left edge of the card. Span the footer instead. */
.seat-summary-footer .btn-block {
    max-width: none;
}
.seat-validation {
    background: rgba(255, 243, 205, 0.9);
    color: #856404;
    border-radius: 8px;
    padding: 9px 12px;
    font-size: 12px;
    line-height: 1.4;
    margin-bottom: 12px;
}
.seat-validation i {
    margin-right: 5px;
}
.seat-validation-action {
    display: block;
    margin: 8px 0 0;
}
.seat-feedback {
    display: block;
    font-size: 12px;
    font-weight: 600;
    margin-bottom: 10px;
}
.seat-feedback i {
    margin-right: 5px;
}
.seat-feedback.error {
    color: #a94442;
}
.seat-feedback.success {
    color: #12805c;
}
.seat-renew-note {
    font-size: 11px;
    line-height: 1.4;
    color: #6c757d;
    text-align: center;
    margin: 2px 0 0;
}
.seat-cancel-link {
    display: block;
    text-align: center;
    font-size: 12px;
    color: #6c757d;
    cursor: pointer;
    margin-top: 4px;
}
.seat-cancel-link:hover {
    color: #a94442;
    text-decoration: underline;
}
/* =================================================================== */
/* ! Seat availability header
/* =================================================================== */
.seat-availability-row {
    display: -ms-flexbox;
    display: flex;
    gap: 16px;
    margin-bottom: 18px;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
}
.seat-availability-card {
    -ms-flex: 1 1 240px;
        flex: 1 1 240px;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 14px;
    background: #ffffff;
    border: 1px solid #e0e6ed;
    border-radius: 12px;
    padding: 14px 18px;
    border-left-width: 4px;
}
.seat-availability-card.standard {
    border-left-color: #0035d2;
}
.seat-availability-card.premium {
    border-left-color: #9C27B0;
}
.seat-availability-card.ghost {
    border-style: dashed;
    border-left-width: 1px;
    cursor: pointer;
    color: #6c757d;
    background: transparent;
}
.seat-availability-card.ghost:hover {
    border-color: #0035d2;
    color: #0035d2;
}
.availability-icon {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: #f8f9fa;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: center;
        justify-content: center;
    color: #0035d2;
    -ms-flex-negative: 0;
        flex-shrink: 0;
}
.availability-detail {
    -ms-flex: 1;
        flex: 1;
    min-width: 0;
}
.availability-label {
    display: block;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: #6c757d;
    font-weight: 600;
}
.availability-count {
    display: block;
    font-size: 17px;
    font-weight: 700;
    color: #2a307f;
}
.availability-count small {
    font-size: 11px;
    font-weight: 400;
    color: #6c757d;
}
.availability-bar {
    height: 5px;
    border-radius: 3px;
    background: #ebecea;
    margin-top: 6px;
    overflow: hidden;
}
.availability-fill {
    height: 100%;
    background: #0035d2;
    transition: width 0.25s ease;
}
.availability-remaining {
    text-align: center;
    -ms-flex-negative: 0;
        flex-shrink: 0;
    padding-left: 12px;
    border-left: 1px solid #e0e6ed;
}
.availability-remaining.none-left .remaining-number {
    color: #6c757d;
}
.remaining-number {
    display: block;
    font-size: 22px;
    font-weight: 700;
    color: #20c997;
    line-height: 1.1;
}
.remaining-label {
    display: block;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: #6c757d;
}
/* =================================================================== */
/* ! Table toolbar
/* =================================================================== */
.seat-table-toolbar {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 16px;
    margin-bottom: 12px;
}
.seat-search {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 8px;
    background: #ffffff;
    border: 1px solid #e0e6ed;
    border-radius: 20px;
    padding: 6px 14px;
    width: 320px;
    max-width: 100%;
}
.seat-search i {
    color: #6c757d;
    font-size: 12px;
}
.seat-search input {
    border: 0;
    outline: none;
    -ms-flex: 1;
        flex: 1;
    font-size: 13px;
    background: transparent;
    min-width: 0;
}
.seat-table-count {
    font-size: 12px;
    color: #6c757d;
    font-weight: 600;
}
.seat-period-selector {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 10px;
}
.seat-period-selector label {
    margin: 0;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: #6c757d;
    font-weight: 600;
}
.seat-period-selector select {
    border: 1px solid #e0e6ed;
    border-radius: 8px;
    padding: 6px 10px;
    font-size: 13px;
    background: #ffffff;
    color: #2a307f;
    min-width: 220px;
}
/* =================================================================== */
/* ! Seat tables
/* =================================================================== */
.seat-table-wrapper {
    background: #ffffff;
    border: 1px solid #e0e6ed;
    border-radius: 12px;
    overflow: hidden;
}
.seat-table {
    margin-bottom: 0;
}
.seat-table > thead > tr > th {
    background: #f8faff;
    border-bottom: 1px solid #e0e6ed;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: #6c757d;
    font-weight: 700;
    padding: 12px 16px;
}
.seat-table > tbody > tr > td {
    padding: 12px 16px;
    vertical-align: middle;
    border-top: 1px solid #e0e6ed;
    font-size: 13px;
}
.seat-table > tbody > tr {
    transition: background 0.15s ease;
}
.seat-table > tbody > tr:hover {
    background: #f2f6fb;
}
.seat-table > tbody > tr.row-saving {
    background: #e7f0ff;
}
.seat-table > tbody > tr.row-saving:hover {
    background: #e7f0ff;
}
.seat-table > tbody > tr.row-orphaned {
    background: rgba(255, 243, 205, 0.5);
}
.seat-user {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 12px;
}
.seat-avatar {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: center;
        justify-content: center;
    font-weight: 700;
    font-size: 14px;
    -ms-flex-negative: 0;
        flex-shrink: 0;
}
.seat-avatar.tier-standard {
    background: #0035d2;
    color: #ffffff;
}
.seat-avatar.tier-premium {
    background: #9C27B0;
    color: #ffffff;
}
.seat-avatar.tier-trial {
    background: #00bcd4;
    color: #ffffff;
}
.seat-avatar.tier-none {
    background: #ebecea;
    color: #6c757d;
}
.seat-user-detail {
    min-width: 0;
}
.seat-user-name {
    display: block;
    font-weight: 600;
    color: #2a307f;
}
.seat-user-email {
    display: block;
    font-size: 11px;
    color: #6c757d;
    overflow: hidden;
    text-overflow: ellipsis;
}
.seat-user-assigned {
    display: block;
    font-size: 10px;
    color: #6c757d;
    font-style: italic;
}
/* The role rides on the name line, so it is set apart by weight and a separator rather than by
   sitting in a column of its own. */
.seat-user-role {
    font-weight: 400;
    font-size: 11px;
    color: #6c757d;
}
.seat-user-role::before {
    content: "\00b7";
    margin: 0 5px;
}
/* Labels are written out in the tier map rather than shouted by the stylesheet, so no screen ever
   shows a raw enum value. */
.seat-badge {
    display: inline-block;
    padding: 2px 9px;
    border-radius: 12px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.2px;
    white-space: nowrap;
    background: #ebecea;
    color: #6c757d;
}
.seat-badge i {
    margin-right: 3px;
}
.seat-badge.standard {
    background: #e7f0ff;
    color: #0035d2;
}
.seat-badge.premium {
    background: rgba(162, 155, 254, 0.2);
    color: #9C27B0;
}
.seat-badge.wallet {
    background: #f8f9fa;
    color: #6c757d;
}
.seat-badge.trial {
    background: rgba(0, 188, 212, 0.2);
    color: #00796b;
}
.seat-badge.orphaned {
    background: rgba(255, 182, 39, 0.3);
    color: #856404;
}
/* Badges trailing a name need separating from it; the same badge in its own table cell does not. */
.seat-user-name .seat-badge {
    margin-left: 6px;
    font-size: 10px;
}
/* =================================================================== */
/* ! Per-row tier selector
/* =================================================================== */
.seat-tier-selector {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
        justify-content: center;
    border: 1px solid #e0e6ed;
    border-radius: 8px;
    overflow: hidden;
    background: #ffffff;
}
/* The spinner is overlaid rather than inserted, so an in-flight row keeps its height. */
.seat-tier-cell {
    position: relative;
}
.seat-tier-selector.saving {
    opacity: 0.45;
    cursor: progress;
}
.seat-tier-spinner {
    position: absolute;
    top: 50%;
    left: 50%;
    margin: -7px 0 0 -7px;
    font-size: 14px;
    color: #0035d2;
}
.tier-option {
    -ms-flex: 1;
        flex: 1;
    border: 0;
    border-right: 1px solid #e0e6ed;
    background: #ffffff;
    padding: 7px 6px;
    font-size: 12px;
    font-weight: 600;
    color: #6c757d;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
    white-space: nowrap;
}
.tier-option:last-child {
    border-right: 0;
}
.tier-option:hover:not([disabled]):not(.selected) {
    background: #f8f9fa;
    color: #2a307f;
}
.tier-option[disabled] {
    color: #c8cdd4;
    cursor: not-allowed;
    background: #f8f9fa;
}
.tier-option.selected {
    background: #343a40;
    color: #ffffff;
}
.tier-option.standard.selected {
    background: #0035d2;
    color: #ffffff;
}
.tier-option.premium.selected {
    background: #9C27B0;
    color: #ffffff;
}
/* The trial slot stands in for "none" on a trial holder, whose trial cannot be released. */
.tier-option.trial.selected {
    background: #00bcd4;
    color: #ffffff;
}
/* =================================================================== */
/* ! Feedback bar
/* =================================================================== */
.seat-feedback-bar {
    position: -webkit-sticky;
    position: sticky;
    bottom: 0;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 20px;
    margin-top: 14px;
    padding: 0 18px;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
    transition: max-height 0.2s ease, opacity 0.2s ease, padding 0.2s ease;
}
.seat-feedback-bar.visible {
    max-height: 90px;
    opacity: 1;
    padding: 14px 18px;
}
.seat-feedback-bar .seat-feedback {
    margin-bottom: 0;
}
/* =================================================================== */
/* ! Usage totals
/* =================================================================== */
.seat-totals-grid {
    display: -ms-flexbox;
    display: flex;
    gap: 16px;
    margin-bottom: 18px;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
}
.seat-total-card {
    -ms-flex: 1 1 200px;
        flex: 1 1 200px;
    background: #ffffff;
    border: 1px solid #e0e6ed;
    border-radius: 12px;
    padding: 16px 18px;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    gap: 3px;
}
.total-label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: #6c757d;
    font-weight: 600;
}
.total-value {
    font-size: 26px;
    font-weight: 700;
    color: #2a307f;
    line-height: 1.15;
}
.total-sub {
    font-size: 11px;
    color: #6c757d;
    line-height: 1.4;
}
.total-bar {
    height: 6px;
    border-radius: 3px;
    background: #ebecea;
    margin-top: 8px;
    overflow: hidden;
}
.total-fill {
    height: 100%;
    background: #0035d2;
    transition: width 0.25s ease;
}
.total-fill.over {
    background: #ffab00;
}
.total-link {
    font-size: 11px;
    font-weight: 600;
    color: #0035d2;
    cursor: pointer;
    margin-top: 4px;
}
.total-link:hover {
    text-decoration: underline;
    color: #0035d2;
}
/* =================================================================== */
/* ! Per-user usage bar
/* =================================================================== */
.usage-bar {
    height: 6px;
    border-radius: 3px;
    background: #ebecea;
    overflow: hidden;
    margin-bottom: 5px;
}
.usage-fill {
    height: 100%;
    background: #20c997;
    transition: width 0.25s ease;
}
.usage-fill.over {
    background: #ffab00;
}
.usage-caption {
    font-size: 11px;
    color: #343a40;
}
.seat-footnote {
    font-size: 11px;
    color: #6c757d;
    line-height: 1.5;
    margin: 14px 4px 0;
    font-style: italic;
}
/* =================================================================== */
/* ! Seat promo panel
/* Sits on the wallet tab of the payment dialog and links across to the
/* seats tab. Kept in this file rather than _payments.css so everything
/* describing seats stays in one place.
/* =================================================================== */
.seat-promo {
    position: relative;
    background: #ffffff;
    border: 1px solid #e0e6ed;
    /* The 4px edge is how the rest of this file marks a callout, and it gives the panel a brand
       anchor without the filled navy banner that crowded the wallet card above it. */
    border-left: 4px solid #0035d2;
    border-radius: 16px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
    overflow: hidden;
    margin-bottom: 25px;
}
/* =================================================================== */
/* ! Seat promo opening ping
/* The panel is easy to scroll past, so two things happen when the dialog
/* first shows it: it lifts off the page once, and a band of cyan light
/* sweeps across it. The white body is never recoloured - the band only
/* passes over it - and both animations end on the resting look, so the
/* class can be dropped at any point without the panel appearing to
/* change.
/* =================================================================== */
/* One rise and settle. Kept to a few pixels: this is a panel in a dialog, not a card being picked up. */
@keyframes seat-promo-lift {
    0% {
        transform: translateY(0) scale(1);
    }

    30% {
        transform: translateY(-5px) scale(1.008);
    }

    100% {
        transform: translateY(0) scale(1);
    }
}
/* Travels the panel's own width plus its overhang, so the band enters and leaves off the edges. */
@keyframes seat-promo-sweep {
    from {
        transform: translateX(-130%) skewX(-12deg);
    }

    to {
        transform: translateX(320%) skewX(-12deg);
    }
}
/* Held for the first moments of the dialog only - the controller drops the class as these finish. */
.seat-promo-highlight {
    animation: seat-promo-lift 1.7s ease-out 1 both;
}
/* The band of light. Clipped by the panel's own overflow, and over the hero content rather than
       under it, so it passes across the copy as well as the tinted strip. Cyan carries against both
       the white body and the pale hero; a white sheen would be invisible on either. */
.seat-promo-highlight::after {
    content: '';
    position: absolute;
    top: -10%;
    bottom: -10%;
    left: 0;
    width: 45%;
    z-index: 3;
    pointer-events: none;
    background: linear-gradient(100deg,
            rgba(0, 188, 212, 0) 0%,
            rgba(0, 188, 212, 0.26) 50%,
            rgba(0, 188, 212, 0) 100%);
    transform: translateX(-130%) skewX(-12deg);
    animation: seat-promo-sweep 1.25s ease-in-out 2 both;
}
@media (prefers-reduced-motion: reduce) {
    .seat-promo-highlight {
        animation: none;
    }
    /* Hidden outright: with the animation off, a static band would just sit over the panel. */
    .seat-promo-highlight::after {
        display: none;
    }
}
/* Tinted well short of the wallet card's saturation, but far enough up from white that the panel
   still reads as an advertisement rather than another settings card. */
.seat-promo-hero {
    position: relative;
    overflow: hidden;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 24px;
    padding: 24px 28px 22px;
    background: linear-gradient(120deg, rgb(204, 217, 255) 0%, rgb(194, 248, 255) 100%);
    border-bottom: 1px solid #e0e6ed;
    color: #2a307f;
}
.seat-promo-hero::after {
    content: '';
    position: absolute;
    right: -60px;
    top: -80px;
    width: 230px;
    height: 230px;
    background: rgba(255, 255, 255, 0.4);
    border-radius: 50%;
    pointer-events: none;
}
.seat-promo-watermark {
    position: absolute;
    right: 22px;
    bottom: -34px;
    font-size: 118px;
    line-height: 1;
    color: rgba(255, 255, 255, 0.5);
    pointer-events: none;
}
.seat-promo-intro {
    position: relative;
    z-index: 1;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 18px;
    -ms-flex: 1;
        flex: 1;
    min-width: 0;
}
/* The one saturated element left in the hero, matching the wallet page's own icon chips. */
.seat-promo-icon {
    width: 52px;
    height: 52px;
    border-radius: 12px;
    background: linear-gradient(135deg, #0035d2 0%, #2a307f 100%);
    color: #ffffff;
    box-shadow: 0 4px 12px rgba(0, 53, 210, 0.15);
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: center;
        justify-content: center;
    font-size: 22px;
    -ms-flex-negative: 0;
        flex-shrink: 0;
}
.seat-promo-copy {
    min-width: 0;
}
.seat-promo-copy h3 {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 10px;
    margin: 0 0 6px;
    font-size: 20px;
    letter-spacing: -0.02em;
    line-height: 1.2;
    color: #2a307f;
}
.seat-promo-copy p {
    margin: 0;
    max-width: 620px;
    font-size: 13px;
    line-height: 1.5;
    color: #343a40;
}
.seat-promo-copy strong {
    color: #2a307f;
}
.seat-promo-flag {
    background: #ffab00;
    color: #0a2540;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    padding: 3px 9px;
    border-radius: 10px;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
.seat-promo-flag.live {
    background: #20c997;
    color: #ffffff;
}
.seat-promo-flag.alert {
    background: #d9534f;
    color: #ffffff;
}
.seat-promo-cta {
    position: relative;
    z-index: 1;
    -ms-flex: 0 0 210px;
        flex: 0 0 210px;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    gap: 8px;
}
.seat-promo-cta .btn {
    width: 100%;
    max-width: none;
    margin: 0;
}
.seat-promo-btn-primary, .seat-promo-btn-secondary {
    border-radius: 20px;
    padding: 9px 14px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    transition: all 0.2s ease;
}
.seat-promo-btn-primary i, .seat-promo-btn-secondary i {
    margin-right: 6px;
}
.seat-promo-btn-primary {
    background: #0035d2;
    color: #ffffff;
    border: 0;
    box-shadow: 0 4px 12px rgba(0, 53, 210, 0.2);
}
.seat-promo-btn-primary:hover, .seat-promo-btn-primary:active, .seat-promo-btn-primary:focus {
    background: #2a307f;
    color: #ffffff;
    outline: 0;
}
.seat-promo-btn-secondary {
    background: #ffffff;
    color: #0035d2;
    border: 1px solid #c0cde0;
}
.seat-promo-btn-secondary:hover, .seat-promo-btn-secondary:active, .seat-promo-btn-secondary:focus {
    background: #ffffff;
    color: #0035d2;
    border-color: #0035d2;
    outline: 0;
}
.seat-promo-link {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: center;
        justify-content: center;
    gap: 6px;
    margin-top: 2px;
    font-size: 11px;
    font-weight: 600;
    color: #0035d2;
    cursor: pointer;
}
.seat-promo-link:hover, .seat-promo-link:focus {
    color: #2a307f;
    text-decoration: underline;
}
/* --- The two tiers, priced. Side by side, as they are on the seats tab itself. --- */
.seat-promo-plans {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: stretch;
        align-items: stretch;
    gap: 12px;
    padding: 16px 28px 18px;
}
.seat-promo-plan {
    -ms-flex: 1 1 0px;
        flex: 1 1 0;
    min-width: 0;
    padding: 12px 16px;
    background: #f8f9fa;
    border: 1px solid #e0e6ed;
    border-radius: 12px;
    cursor: pointer;
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
}
.seat-promo-plan.recommended {
    background: #e7f0ff;
    border-color: #0035d2;
}
.seat-promo-plan:hover {
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    border-color: #0035d2;
}
.promo-plan-name {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 8px;
    font-size: 13px;
    font-weight: 700;
    color: #2a307f;
}
.promo-plan-name i {
    color: #0035d2;
    font-size: 12px;
}
.promo-plan-price {
    margin-top: 3px;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.2;
    color: #2a307f;
}
.promo-plan-price small {
    margin-left: 5px;
    font-size: 11px;
    font-weight: 500;
    color: #6c757d;
}
.seat-promo-plans-status {
    -ms-flex: 1;
        flex: 1;
    padding: 12px 16px;
    border: 1px dashed #e0e6ed;
    border-radius: 12px;
    font-size: 12px;
    color: #6c757d;
}
.seat-promo-plans-status i {
    margin-right: 6px;
}
/* --- Footers: the things that block or waste a seat purchase --- */
.seat-promo-note {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 10px;
    padding: 11px 28px;
    border-top: 1px solid #e0e6ed;
    font-size: 12px;
    line-height: 1.45;
}
.seat-promo-note > i {
    font-size: 14px;
    -ms-flex-negative: 0;
        flex-shrink: 0;
}
.seat-promo-note > span {
    -ms-flex: 1;
        flex: 1;
}
/* The shared .btn rules stretch to 220px, which reads as a slab in a one-line footer. */
.seat-promo-note .btn {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    width: auto;
}
.seat-promo-note.info {
    background: #e7f0ff;
    color: #2a307f;
}
.seat-promo-note.info > i {
    color: #0035d2;
}
.seat-promo-note.warning {
    background: rgba(255, 243, 205, 0.9);
    color: #856404;
}
.seat-promo-note.warning > i {
    color: #ffab00;
}
.seat-promo-note.danger {
    background: rgba(217, 83, 79, 0.1);
    color: #a94442;
}
.seat-promo-note.danger > i {
    color: #d9534f;
}
/* =================================================================== */
/* ! Narrow screens
/* =================================================================== */
@media (max-width: 1100px) {
    .seat-plan-layout {
        -ms-flex-direction: column;
            flex-direction: column;
    }

    .seat-summary-column {
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
        width: 100%;
        position: static;
    }
}
@media (max-width: 820px) {
    .seat-promo-hero {
        -ms-flex-direction: column;
            flex-direction: column;
        -ms-flex-align: stretch;
            align-items: stretch;
    }

    .seat-promo-cta {
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
    }

    /* Below this there is not room to compare the tiers side by side, on either screen. */
    .seat-tier-grid, .seat-promo-plans {
        -ms-flex-direction: column;
            flex-direction: column;
    }

    /* A Font Awesome element, whose own .fa rule is loaded after this file and carries the same
       specificity, so the parent has to be named to hide it. */
    .seat-promo-hero .seat-promo-watermark {
        display: none;
    }
}
/* =================================================================== */
/* ! Settings Modal
/* Shares the visual language of _payments.css - pale blue canvas, white
/* rounded cards, navy accents - and reuses .settings-card, .setting-row,
/* .toggle-switch, .save-status-indicator and .disabled-overlay from it.
/* Everything else is scoped to .settings-shell so the generic names here
/* cannot leak into the rest of the app.
/* =================================================================== */
/* The scope band wipes open when a section is shown. Clip-path only affects paint,
   so the box occupies its space immediately and nothing shifts around it. */
@keyframes settings-scope-band-open {
	from {
		-webkit-clip-path: inset(0 100% 0 0);
		        clip-path: inset(0 100% 0 0);
	}

	to {
		-webkit-clip-path: inset(0 0 0 0);
		        clip-path: inset(0 0 0 0);
	}
}
.settings-dialog md-dialog-content {
    border-top: 0;
    padding: 0;
    overflow: hidden;
}
.settings-shell {
	display: -ms-flexbox;
	display: flex;
	-ms-flex: 1;
	    flex: 1;
	min-height: 0;
	width: 100%;
	background-color: #f4f7fe;

	/* =================================================================== */
}
/* ! Left Rail Navigation
	/* =================================================================== */
.settings-shell .settings-nav {
    -ms-flex: 0 0 272px;
        flex: 0 0 272px;
    width: 272px;
    background-color: #ffffff;
    border-right: 1px solid #e0e6ed;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    overflow-y: auto;
}
.settings-shell .settings-nav::-webkit-scrollbar {
    width: 6px;
}
.settings-shell .settings-nav::-webkit-scrollbar-thumb {
    background-color: rgba(0, 53, 210, 0.1);
    border-radius: 20px;
}
/* =================================================================== */
.settings-shell .settings-identity {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 12px;
    padding: 20px 18px 18px;
    border-bottom: 1px solid #eef1f7;
}
.settings-shell .settings-avatar {
    width: 42px;
    height: 42px;
    -ms-flex-negative: 0;
        flex-shrink: 0;
    border-radius: 50%;
    background: linear-gradient(135deg, #0035d2 0%, #2a307f 100%);
    color: #ffffff;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: center;
        justify-content: center;
    font-family: 'Gordita Bold', sans-serif;
    font-size: 14px;
    letter-spacing: 0.5px;
    box-shadow: 0 4px 12px rgba(0, 53, 210, 0.2);
}
.settings-shell .settings-identity-text {
    min-width: 0;
}
.settings-shell .settings-identity-text .identity-name {
    font-family: 'Gordita Bold', sans-serif;
    font-size: 13px;
    color: #0a2540;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.settings-shell .settings-identity-text .identity-role {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #a3aac0;
    font-weight: 700;
    margin-top: 2px;
}
.settings-shell .settings-nav-group {
    padding: 16px 10px 4px;
}
/* Practice names are buttons that fold their settings away; "Your account"
		   uses the same look but is not interactive. */
.settings-shell .settings-nav-group .settings-nav-group-title {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 7px;
    width: 100%;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #a3aac0;
    font-weight: 700;
    text-align: left;
    background: none;
    border: none;
    border-radius: 8px;
    padding: 5px 12px 7px;
    cursor: pointer;
    transition: color 0.15s ease, background-color 0.15s ease;
}
.settings-shell .settings-nav-group .settings-nav-group-title.static {
    cursor: default;
    padding-top: 0;
}
.settings-shell .settings-nav-group .settings-nav-group-title:not(.static):hover {
    color: #0035d2;
    background-color: #e7f0ff;
}
.settings-shell .settings-nav-group .settings-nav-group-title:not(.static):hover .nav-group-chevron {
    color: #0035d2;
}
.settings-shell .settings-nav-group .settings-nav-group-title .nav-group-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.settings-shell .settings-nav-group .settings-nav-group-title .nav-group-chevron {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    font-size: 9px;
    color: #c3c9da;
    transition: transform 0.2s ease, color 0.15s ease;
}
.settings-shell .settings-nav-group .settings-nav-group-title.collapsed .nav-group-chevron {
    transform: rotate(-90deg);
}
/* Collapse animation. max-height cannot transition to auto, so it runs to a
		   ceiling comfortably above the tallest group (5 items ~ 200px); the easing is
		   what is seen, not the exact value. Opacity and a small lift do the rest. */
.settings-shell .settings-nav-group .nav-group-items {
    overflow: hidden;
    max-height: 320px;
    opacity: 1;
    transition: max-height 0.24s cubic-bezier(0.4, 0, 0.2, 1),
				opacity 0.18s ease,
				transform 0.24s cubic-bezier(0.4, 0, 0.2, 1);
}
.settings-shell .settings-nav-group .nav-group-items.ng-enter, .settings-shell .settings-nav-group .nav-group-items.ng-leave.ng-leave-active {
    max-height: 0;
    opacity: 0;
    transform: translateY(-4px);
}
.settings-shell .settings-nav-group .nav-group-items.ng-enter.ng-enter-active, .settings-shell .settings-nav-group .nav-group-items.ng-leave {
    max-height: 320px;
    opacity: 1;
    transform: translateY(0);
}
.settings-shell .settings-nav-group .nav-group-tag {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    margin-left: auto;
    background-color: #f8f9fa;
    color: #a3aac0;
    font-size: 8px;
    letter-spacing: 0.03em;
    padding: 2px 7px;
    border-radius: 20px;
}
/* Filled pill marks the one practice that is open - only ever one. */
.settings-shell .settings-nav-group .nav-group-tag.open {
    background-color: #0035d2;
    color: #ffffff;
}
.settings-shell .settings-nav-item {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 11px;
    padding: 9px 12px;
    margin-bottom: 2px;
    border-radius: 10px;
    cursor: pointer;
    color: #4a5568;
    font-size: 13px;
    font-weight: 600;
    transition: all 0.15s ease;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
}
.settings-shell .settings-nav-item i {
    width: 15px;
    -ms-flex-negative: 0;
        flex-shrink: 0;
    text-align: center;
    font-size: 13px;
    color: #a3aac0;
    transition: color 0.15s ease;
}
.settings-shell .settings-nav-item:hover {
    background-color: #f4f7fe;
    color: #0035d2;
}
.settings-shell .settings-nav-item:hover i {
    color: #0035d2;
}
.settings-shell .settings-nav-item.active {
    background-color: #0035d2;
    color: #ffffff;
    box-shadow: 0 4px 12px rgba(0, 53, 210, 0.2);
}
.settings-shell .settings-nav-item.active i {
    color: #ffffff;
}
.settings-shell .settings-nav-footer {
    margin-top: auto;
    padding: 14px 18px;
    border-top: 1px solid #eef1f7;
}
.settings-shell .settings-nav-footer .footer-label {
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #a3aac0;
    font-weight: 700;
}
.settings-shell .settings-nav-footer .footer-value {
    font-size: 12px;
    color: #0035d2;
    font-weight: 700;
    margin-top: 3px;
    line-height: 1.3;
}
/* ! Right Content Pane
	/* =================================================================== */
.settings-shell .settings-pane {
    -ms-flex: 1;
        flex: 1;
    min-width: 0;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    background-color: #f4f7fe;
    overflow: hidden;
}
/* Each section is a component element - make it own the pane's height */
.settings-shell .settings-pane > * {
    -ms-flex: 1;
        flex: 1;
    min-height: 0;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
}
/* =================================================================== */
.settings-shell .settings-pane-body {
    -ms-flex: 1;
        flex: 1;
    overflow-y: auto;
    padding: 24px 28px 28px;
}
.settings-shell .settings-pane-body h3, .settings-shell .settings-pane-body h4, .settings-shell .settings-pane-body h5 {
    font-family: 'Gordita Bold', sans-serif;
    margin-top: 0;
}
.settings-shell .settings-pane-body::-webkit-scrollbar {
    width: 6px;
}
.settings-shell .settings-pane-body::-webkit-scrollbar-track {
    background: transparent;
}
.settings-shell .settings-pane-body::-webkit-scrollbar-thumb {
    background-color: rgba(0, 53, 210, 0.1);
    border-radius: 20px;
}
.settings-shell .settings-pane-body:hover::-webkit-scrollbar-thumb {
    background-color: rgba(0, 53, 210, 0.3);
}
/* _payments.css stretches cards to fill their column; here they hug their content */
.settings-shell .settings-card {
    height: auto;
}
/* Column flex so the badge, heading and description each get their own line
	   while still hugging their content - the heading and badge are pills, not bars. */
.settings-shell .settings-pane-header {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    -ms-flex-align: start;
        align-items: flex-start;
    margin-bottom: 20px;
}
/* A band of the brand's own pale navy rather than plain text, so the section
		   you are in reads at a glance against the pale blue canvas. Same tint as the
		   icon chips throughout the pane, so nothing new is introduced. */
.settings-shell .settings-pane-header h3 {
    font-size: 20px;
    color: #0035d2;
    background-color: #e7f0ff;
    letter-spacing: -0.02em;
    margin: 0 0 10px;
    padding: 7px 15px;
    border-radius: 10px;
}
.settings-shell .settings-pane-header p {
    font-size: 13px;
    color: #878ba0;
    margin: 0;
    max-width: 72ch;
    line-height: 1.5;
}
/* Who a setting affects is the single most important thing on these screens -
	   changing something practice-wide touches every clinician there. A solid band
	   across a third of the pane - wide enough not to be skimmed past as a caption,
	   narrow enough not to shout over the settings themselves. */
.settings-shell .scope-badge {
    -ms-flex-item-align: start;
        align-self: flex-start;
    width: 33%;
    min-width: 300px;
    max-width: 100%;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 10px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    line-height: 1.35;
    padding: 11px 16px;
    border-radius: 8px;
    margin-bottom: 14px;
    color: #ffffff;/* Each section is created fresh by ng-if, so this replays every time you
		   move between settings - re-announcing the scope rather than letting it
		   sit there unread. */
    animation: settings-scope-band-open 420ms cubic-bezier(0.22, 1, 0.36, 1) both;
}
.settings-shell .scope-badge i {
    font-size: 15px;
    opacity: 0.9;
}
/* Yours alone - the brand blue. */
.settings-shell .scope-badge.personal {
    background-color: #0035d2;
}
/* Affects other people, so it carries a caution tone rather than a second
		   shade of blue. Deep amber keeps white text at ~6.4:1; a bright $yellow-cta
		   fill would drop it to 3.4:1 and fail AA. */
.settings-shell .scope-badge.practice {
    background-color: #856404;
}
/* Sticky action bar at the bottom of a pane. The confirmation sits immediately
	   left of the button rather than across the bar, so it lands where the eye
	   already is after clicking. */
.settings-shell .settings-action-bar {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: end;
        justify-content: flex-end;
    gap: 12px;
    padding: 12px 28px;
    background-color: #ffffff;
    border-top: 1px solid #e0e6ed;
}
.settings-shell .settings-action-bar .action-hint {
    margin-right: auto;
    font-size: 11px;
    color: #878ba0;
    font-style: italic;
}
.settings-shell .settings-action-bar .btn {
    max-width: 200px;
    margin: 0;
}
/* An option that changes what Save does, so it lives with Save rather than
		   up in a card header where it read as unrelated. */
.settings-shell .settings-action-bar .chip-select.apply-all {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    font-size: 11.5px;
    padding: 6px 13px;
}
/* Success green, not the navy used everywhere else, so a save reads as a distinct
	   event rather than more of the same page. */
.settings-shell .save-flash {
    display: -ms-inline-flexbox;
    display: inline-flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 7px;
    -ms-flex-negative: 0;
        flex-shrink: 0;
    padding: 7px 14px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 700;
    background-color: rgba(32, 201, 151, 0.1);
    color: rgb(23, 150, 112);
    border: 1px solid rgba(32, 201, 151, 0.3);
}
.settings-shell .save-flash i {
    font-size: 13px;
}
.settings-shell .save-flash.saving {
    background-color: #f8f9fa;
    color: #878ba0;
    border-color: #e0e6ed;
}
.settings-shell .save-flash.error {
    background-color: #fdecea;
    color: #d9534f;
    border-color: rgba(217, 83, 79, 0.3);
}
/* Pops in, so it is noticed even when the wording is unchanged. */
.settings-shell .save-flash.ng-enter {
    opacity: 0;
    transform: scale(0.85);
}
.settings-shell .save-flash.ng-enter-active {
    opacity: 1;
    transform: scale(1);
    transition: opacity 0.18s ease, transform 0.22s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.settings-shell .save-flash.ng-leave {
    opacity: 1;
}
.settings-shell .save-flash.ng-leave-active {
    opacity: 0;
    transition: opacity 0.15s ease;
}
/* ! Layout helpers
	/* =================================================================== */
.settings-shell .settings-stack {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    gap: 20px;
}
/* =================================================================== */
.settings-shell .settings-columns {
    display: -ms-flexbox;
    display: flex;
    gap: 20px;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -ms-flex-align: stretch;
        align-items: stretch;
}
.settings-shell .settings-columns > * {
    -ms-flex: 1;
        flex: 1;
    min-width: 300px;
}
/* ! Read-only detail rows
	/* =================================================================== */
.settings-shell .detail-row {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 16px;
    padding: 13px 0;
    border-bottom: 1px dashed #e0e6ed;
    min-height: 52px;
}
.settings-shell .detail-row:last-of-type {
    border-bottom: none;
    padding-bottom: 0;
}
.settings-shell .detail-row .detail-label {
    -ms-flex: 0 0 150px;
        flex: 0 0 150px;
    width: 150px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #a3aac0;
    margin: 0;
}
.settings-shell .detail-row .detail-value {
    -ms-flex: 1;
        flex: 1;
    min-width: 0;
    font-size: 14px;
    color: #333333;
    font-weight: 600;
    word-break: break-word;
}
.settings-shell .detail-row .detail-value.muted {
    color: #a3aac0;
    font-weight: 400;
    font-style: italic;
}
.settings-shell .detail-row .detail-action {
    -ms-flex-negative: 0;
        flex-shrink: 0;
}
/* Only the row that opens a card sits flush with the card header */
.settings-shell .card-body > .detail-row:first-child {
    padding-top: 0;
}
/* Small inline "edit" affordance */
.settings-shell .link-action {
    background: none;
    border: none;
    padding: 0;
    color: #0035d2;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    transition: opacity 0.15s ease;
}
.settings-shell .link-action i {
    margin-right: 4px;
}
.settings-shell .link-action:hover {
    opacity: 0.7;
    text-decoration: underline;
}
/* =================================================================== */
.settings-shell .inline-edit {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 8px;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
}
/* ! Chips (features, referral types)
	/* =================================================================== */
.settings-shell .chip-list {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 8px;
}
/* =================================================================== */
.settings-shell .chip {
    display: -ms-inline-flexbox;
    display: inline-flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 600;
    padding: 5px 11px;
    border-radius: 20px;
    background-color: #f4f7fe;
    color: #0035d2;
    border: 1px solid rgba(0, 53, 210, 0.12);
    line-height: 1.4;
    white-space: nowrap;
}
.settings-shell .chip i {
    font-size: 10px;
    opacity: 0.7;
}
.settings-shell .chip.chip-muted {
    background-color: #f8f9fa;
    color: #a3aac0;
    border-color: #e0e6ed;
    font-style: italic;
}
/* Selectable chip - wraps a checkbox */
.settings-shell .chip-select {
    display: -ms-inline-flexbox;
    display: inline-flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 8px;
    font-size: 12px;
    font-weight: 600;
    padding: 7px 14px;
    border-radius: 20px;
    background-color: #ffffff;
    color: #4a5568;
    border: 1px solid #e0e6ed;
    cursor: pointer;
    margin: 0;
    transition: all 0.15s ease;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
}
.settings-shell .chip-select input[type="checkbox"] {
    margin: 0;
    cursor: pointer;
}
.settings-shell .chip-select:hover {
    border-color: #cbd5e0;
}
.settings-shell .chip-select.selected {
    background-color: #e7f0ff;
    border-color: rgba(0, 53, 210, 0.35);
    color: #0035d2;
}
.settings-shell .chip-select.disabled {
    opacity: 0.45;
    cursor: not-allowed;
}
/* ! Editable row list (appointment types, task labels)
	/* =================================================================== */
.settings-shell .row-list-head {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 12px;
    padding: 0 14px 8px;
}
.settings-shell .row-list-head span {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #a3aac0;
    font-weight: 700;
}
/* The inputs carry their own borders, so the rows themselves stay unboxed */
.settings-shell .row-item {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 12px;
    padding: 5px 14px;
    margin-bottom: 4px;
}
/* Separated by a rule rather than a box of its own */
.settings-shell .row-item.row-item-new {
    margin-bottom: 0;
    margin-top: 10px;
    padding-top: 15px;
    border-top: 1px dashed rgba(0, 53, 210, 0.25);
}
/* Column widths shared by the head and the rows */
.settings-shell .col-name {
    -ms-flex: 1 1 200px;
        flex: 1 1 200px;
    min-width: 150px;
}
/* =================================================================== */
.settings-shell .col-colour {
    -ms-flex: 0 0 130px;
        flex: 0 0 130px;
    width: 130px;
}
.settings-shell .col-duration {
    -ms-flex: 0 0 110px;
        flex: 0 0 110px;
    width: 110px;
}
.settings-shell .col-type {
    -ms-flex: 0 0 190px;
        flex: 0 0 190px;
    width: 190px;
}
.settings-shell .col-add {
    -ms-flex: 0 0 40px;
        flex: 0 0 40px;
    width: 40px;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: end;
        justify-content: flex-end;
}
.settings-shell .col-add-wide {
    -ms-flex: 0 0 auto;
        flex: 0 0 auto;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: end;
        justify-content: flex-end;
}
/* The old round "+" was missed - the add step now announces itself and its
	   button says what it does. The form clears after each add, so a run of
	   entries can be typed one after another without leaving the screen. */
.settings-shell .add-row {
    margin-top: 18px;
    padding-top: 14px;
    border-top: 1px dashed rgba(0, 53, 210, 0.25);
}
.settings-shell .add-row .add-row-title {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: #a3aac0;
    font-weight: 700;
    padding: 0 14px 8px;
}
.settings-shell .add-row .row-item.row-item-new {
    margin: 0;
    padding-top: 0;
    border-top: none;
}
.settings-shell .add-row .add-row-actions {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: end;
        justify-content: flex-end;
    padding: 12px 14px 0;
}
.settings-shell .btn-add {
    width: auto;
    max-width: none;
    margin: 0;
    padding: 8px 18px;
}
.settings-shell .btn-add i {
    margin-right: 6px;
}
/* angularjs-color-picker renders a bootstrap input group - keep the joint tidy */
.settings-shell .col-colour .color-picker-wrapper, .settings-shell .col-colour .color-picker-input-wrapper {
    width: 100%;
}
.settings-shell .col-colour .input-group .input-group-addon:first-child {
    border-radius: 8px 0 0 8px;
    border-color: #e0e6ed;
}
.settings-shell .col-colour .input-group .color-picker-input {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}
.settings-shell .label-swatch {
    display: inline-block;
    width: 30px;
    height: 30px;
    -ms-flex-negative: 0;
        flex-shrink: 0;
    border-radius: 8px;
    border: 1px solid #e0e6ed;
    background-color: #ffffff;
}
.settings-shell .btn-add-round {
    width: 34px;
    height: 34px;
    min-width: 34px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background-color: #0035d2;
    color: #ffffff;
    font-size: 14px;
    line-height: 1;
    cursor: pointer;
    transition: all 0.2s ease;
}
.settings-shell .btn-add-round:hover:not(:disabled) {
    background-color: #2a307f;
    transform: scale(1.06);
}
.settings-shell .btn-add-round:disabled {
    background-color: #d3d9e6;
    cursor: not-allowed;
}
/* ! Form controls
	/* =================================================================== */
.settings-shell .control-label, .settings-shell label.field-label {
    display: block;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #a3aac0;
    margin-bottom: 6px;
}
/* =================================================================== */
.settings-shell .form-control, .settings-shell select.form-control {
    height: auto;
    border: 1px solid #e0e6ed;
    border-radius: 8px;
    box-shadow: none;
    padding: 8px 12px;
    font-size: 13px;
    color: #333333;
    background-color: #ffffff;
    transition: all 0.2s ease;
}
.settings-shell .form-control:focus, .settings-shell select.form-control:focus {
    border-color: #0035d2;
    outline: none;
    box-shadow: 0 0 0 3px rgba(0, 53, 210, 0.1);
}
.settings-shell .form-control[readonly], .settings-shell .form-control:disabled, .settings-shell select.form-control[readonly], .settings-shell select.form-control:disabled {
    background-color: #f8f9fa;
    color: #8a90a3;
}
.settings-shell textarea.form-control {
    min-height: 120px;
    resize: vertical;
}
.settings-shell .error-message {
    display: block;
    color: #d9534f;
    font-size: 11px;
    margin-top: 4px;
}
.settings-shell .field-help {
    font-size: 11px;
    color: #a3aac0;
    margin-top: 5px;
    line-height: 1.45;
}
.settings-shell .field-grid {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 16px;
}
.settings-shell .field-grid .field {
    -ms-flex: 1 1 200px;
        flex: 1 1 200px;
    min-width: 160px;
}
.settings-shell .field-grid .field-sm {
    -ms-flex: 0 0 140px;
        flex: 0 0 140px;
    width: 140px;
}
/* A number set inside its own sentence, rather than stranded at the far right */
.settings-shell .inline-sentence {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 7px;
    margin-top: 7px;
    font-size: 13px;
    color: #555;
}
.settings-shell .inline-sentence input[type="number"] {
    width: 62px;
    padding: 5px 8px;
    border: 1px solid #e0e6ed;
    border-radius: 8px;
    text-align: center;
    color: #0035d2;
    font-weight: 700;
    font-size: 13px;
    transition: all 0.2s ease;
}
.settings-shell .inline-sentence input[type="number"]:focus {
    border-color: #0035d2;
    outline: none;
    box-shadow: 0 0 0 3px rgba(0, 53, 210, 0.1);
}
/* ! Notices & empty states
	/* =================================================================== */
.settings-shell .settings-notice {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: start;
        align-items: flex-start;
    gap: 12px;
    padding: 14px 18px;
    border-radius: 10px;
    font-size: 12.5px;
    line-height: 1.5;
    margin-bottom: 20px;
}
.settings-shell .settings-notice i {
    font-size: 15px;
    margin-top: 1px;
    -ms-flex-negative: 0;
        flex-shrink: 0;
}
.settings-shell .settings-notice.info {
    background-color: #e7f0ff;
    color: #2a307f;
    border: 1px solid rgba(0, 53, 210, 0.15);
}
.settings-shell .settings-notice.info i {
    color: #0035d2;
}
.settings-shell .settings-notice.warning {
    background-color: #fff8e6;
    color: #856404;
    border: 1px solid rgba(255, 171, 0, 0.3);
}
.settings-shell .settings-notice.warning i {
    color: #ffab00;
}
/* =================================================================== */
.settings-shell .settings-empty {
    background-color: #ffffff;
    border-radius: 12px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
    padding: 54px 32px;
    text-align: center;
}
.settings-shell .settings-empty i {
    font-size: 34px;
    color: #d3d9e6;
    margin-bottom: 14px;
}
.settings-shell .settings-empty h4 {
    font-size: 16px;
    color: #2a307f;
    margin: 0 0 8px;
}
.settings-shell .settings-empty p {
    font-size: 13px;
    color: #878ba0;
    margin: 0 auto;
    max-width: 52ch;
    line-height: 1.55;
}
/* ! Expandable blocks (reminder message composers)
	/* =================================================================== */
.settings-shell .expander {
    border: 1px solid #e0e6ed;
    border-radius: 10px;
    background-color: #ffffff;
    margin-bottom: 14px;
    overflow: hidden;
}
/* =================================================================== */
.settings-shell .expander-head {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 12px;
    padding: 14px 18px;
    cursor: pointer;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    transition: background-color 0.15s ease;
}
.settings-shell .expander-head:hover {
    background-color: #fbfcff;
}
.settings-shell .expander-head .expander-icon {
    width: 34px;
    height: 34px;
    -ms-flex-negative: 0;
        flex-shrink: 0;
    border-radius: 8px;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: center;
        justify-content: center;
    font-size: 14px;
    background-color: #e7f0ff;
    color: #0035d2;
}
.settings-shell .expander-head .expander-title {
    -ms-flex: 1;
        flex: 1;
    min-width: 0;
}
.settings-shell .expander-head .expander-title strong {
    display: block;
    font-family: 'Gordita Bold', sans-serif;
    font-size: 13px;
    color: #333333;
}
.settings-shell .expander-head .expander-title small {
    display: block;
    font-size: 11px;
    color: #a3aac0;
    margin-top: 2px;
}
.settings-shell .expander-head .expander-chevron {
    color: #a3aac0;
    font-size: 12px;
}
.settings-shell .expander-body {
    padding: 4px 18px 18px;
    border-top: 1px solid #eef1f7;
}
.settings-shell .expander.is-open .expander-head {
    background-color: #fbfcff;
}
/* Merge-field tokens */
.settings-shell .merge-field-groups {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 8px 28px;
    margin: 10px 0 14px;
}
.settings-shell .merge-field-group {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    gap: 6px;
}
.settings-shell .merge-field-group .merge-fields {
    margin: 0;
}
.settings-shell .merge-field-group-label {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #a3aac0;
}
.settings-shell .merge-fields {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 8px;
    margin: 10px 0 14px;
}
.settings-shell .merge-field {
    background-color: #f4f7fe;
    border: 1px solid rgba(0, 53, 210, 0.25);
    border-radius: 20px;
    color: #0035d2;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
    padding: 5px 12px;
    cursor: pointer;
    text-align: center;
    transition: all 0.15s ease;
}
/* The shared [draggable] rule paints a black border and a move cursor over anything
		   draggable - the chips keep their own pill styling and a grab cursor instead. */
.settings-shell .merge-field[draggable] {
    border-color: rgba(0, 53, 210, 0.25);
    cursor: grab;
}
.settings-shell .merge-field:hover {
    background-color: #0035d2;
    color: #ffffff;
    border-color: #0035d2;
}
.settings-shell .merge-field:active {
    cursor: grabbing;
}
.settings-shell .merge-field .merge-field-name {
    display: block;
}
/* What the field turns into. Regular weight and tabular figures so it reads as a value
		   rather than as more label. */
.settings-shell .merge-field .merge-field-example {
    display: block;
    margin-top: 1px;
    font-size: 9px;
    font-weight: 400;
    letter-spacing: 0;
    font-variant-numeric: tabular-nums;
    opacity: 0.7;
}
.settings-shell .merge-field-note {
    max-width: 340px;
    font-size: 10px;
    line-height: 1.45;
    color: #a3aac0;
}
/* Drop targets. The shared lvl styles grey the whole editor out mid-drag and dash a black
	   border around whichever node the pointer is over; outline the composer instead so the
	   wording stays readable while a field is being dragged into it. */
.settings-shell .text-area-wrap.lvl-target {
    background-color: transparent;
    opacity: 1;
    outline: 2px dashed rgba(0, 53, 210, 0.3);
    outline-offset: 3px;
}
.settings-shell .text-area-wrap.lvl-over, .settings-shell .text-area-wrap .lvl-over {
    border: 0 !important;
}
.settings-shell .text-area-wrap.lvl-over {
    outline: 2px dashed #0035d2;
}
/* Attachments */
.settings-shell .attachment-row {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 12px;
    padding: 10px 14px;
    border: 1px solid #e0e6ed;
    border-radius: 8px;
    margin-bottom: 8px;
    background-color: #ffffff;
}
.settings-shell .attachment-row .attachment-icon {
    color: #0035d2;
    font-size: 15px;
}
.settings-shell .attachment-row .attachment-name {
    -ms-flex: 1;
        flex: 1;
    min-width: 0;
    font-size: 12.5px;
    font-weight: 600;
    color: #333333;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.settings-shell .attachment-row .attachment-size {
    font-size: 11px;
    color: #a3aac0;
    -ms-flex-negative: 0;
        flex-shrink: 0;
}
.settings-shell .attachment-row .attachment-actions {
    display: -ms-flexbox;
    display: flex;
    gap: 10px;
    -ms-flex-negative: 0;
        flex-shrink: 0;
}
.settings-shell .attachment-row .attachment-actions img {
    width: 15px;
    height: 15px;
    cursor: pointer;
    opacity: 0.65;
    transition: opacity 0.15s ease;
}
.settings-shell .attachment-row .attachment-actions img:hover {
    opacity: 1;
}
.settings-shell .file-drop {
    display: block;
    border: 1px dashed rgba(0, 53, 210, 0.3);
    border-radius: 8px;
    padding: 14px;
    background-color: #fbfcff;
    font-size: 12px;
    color: #878ba0;
}
.settings-shell .file-drop input[type="file"] {
    font-size: 12px;
}
/* Character counter */
.settings-shell .sms-counter {
    text-align: right;
    font-size: 11px;
    color: #a3aac0;
    margin-top: 6px;
}
.settings-shell .sms-counter strong {
    color: #0035d2;
}
.settings-shell .sms-counter.over strong {
    color: #d9534f;
}
/* ! Usage chart card
	/* =================================================================== */
.settings-shell .chart-card .chart-toolbar {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: end;
        align-items: flex-end;
    gap: 16px;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    margin-bottom: 12px;
}
.settings-shell .chart-card nvd3 {
    display: block;
    width: 100%;
}
/* =================================================================== */
/* ! Responsive
/* =================================================================== */
@media (max-width: 900px) {
	.settings-shell {
		-ms-flex-direction: column;
		    flex-direction: column;
	}
	.settings-shell .settings-nav {
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
        width: 100%;
        border-right: none;
        border-bottom: 1px solid #e0e6ed;
        -ms-flex-direction: row;
            flex-direction: row;
        -ms-flex-align: center;
            align-items: center;
        overflow-x: auto;
        overflow-y: hidden;
    }
	.settings-shell .settings-identity, .settings-shell .settings-nav-footer {
        display: none;
    }
	.settings-shell .settings-nav-group {
        display: -ms-flexbox;
        display: flex;
        -ms-flex-align: center;
            align-items: center;
        gap: 6px;
        padding: 10px;
        -ms-flex-negative: 0;
            flex-shrink: 0;
    }
	.settings-shell .settings-nav-group .settings-nav-group-title {
        padding: 0 6px 0 0;
        white-space: nowrap;
    }
	.settings-shell .settings-nav-item {
        margin-bottom: 0;
        white-space: nowrap;
    }
	.settings-shell .settings-pane-body {
        padding: 18px 16px;
    }
	.settings-shell .settings-action-bar {
        padding: 12px 16px;
    }
	.settings-shell .detail-row {
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        gap: 6px;
    }
	.settings-shell .detail-row .detail-label {
        -ms-flex-preferred-size: 100%;
            flex-basis: 100%;
        width: 100%;
    }
	.settings-shell .row-item {
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
    }
	.settings-shell .col-type, .settings-shell .col-colour, .settings-shell .col-duration {
        -ms-flex: 1 1 140px;
            flex: 1 1 140px;
        width: auto;
    }
}
/* Anyone who has asked for less motion gets the band without the wipe. */
@media (prefers-reduced-motion: reduce) {
	.settings-shell .scope-badge, .settings-shell .nav-group-items {
		animation: none;
		transition: none;
	}
}
/* =================================================================== */
/* ! Feature tips (tip of the day)
/* Same card language as _payments.css / _settings.css so the tip reads
/* as part of the product rather than an advert.
/* =================================================================== */
.tip-card {
	background-color: #ffffff;
	border: 1px solid #e0e6ed;
	border-left: 3px solid #0035d2;
	border-radius: 12px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
	padding: 16px 18px;
	max-width: 460px;
	margin-top: 8px;

}
.tip-card .tip-head {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 8px;
    margin-bottom: 12px;
}
.tip-card .tip-eyebrow {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: #0035d2;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 6px;
    white-space: nowrap;
}
.tip-card .tip-eyebrow i {
    font-size: 12px;
}
.tip-card .tip-pager {
    display: -ms-inline-flexbox;
    display: inline-flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 4px;
    margin-left: auto;
}
.tip-card .tip-arrow, .tip-card .tip-close {
    background: none;
    border: none;
    padding: 2px 5px;
    color: #a3aac0;
    font-size: 11px;
    cursor: pointer;
    border-radius: 8px;
    transition: all 0.15s ease;
}
.tip-card .tip-arrow:hover, .tip-card .tip-close:hover {
    color: #0035d2;
    background-color: #f4f7fe;
}
.tip-card .tip-close {
    font-size: 13px;
    margin-left: 2px;
}
.tip-card .tip-body {
    display: -ms-flexbox;
    display: flex;
    gap: 13px;
    -ms-flex-align: start;
        align-items: flex-start;
}
.tip-card .tip-icon {
    width: 38px;
    height: 38px;
    -ms-flex-negative: 0;
        flex-shrink: 0;
    border-radius: 10px;
    background-color: #e7f0ff;
    color: #0035d2;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: center;
        justify-content: center;
    font-size: 16px;
}
.tip-card .tip-text {
    min-width: 0;
}
.tip-card .tip-text h5 {
    font-family: 'Gordita Bold', sans-serif;
    font-size: 14px;
    color: #0a2540;
    margin: 0 0 5px;
    line-height: 1.3;
}
.tip-card .tip-text p {
    font-size: 12.5px;
    color: #878ba0;
    line-height: 1.5;
    margin: 0;
}
.tip-card .tip-actions {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 14px;
    margin-top: 14px;
    padding-left: 51px;
}
.tip-card .tip-actions .btn {
    width: auto;
    max-width: none;
    margin: 0;
}
@media (max-width: 900px) {
	.tip-card {
		max-width: 100%;
	}
	.tip-card .tip-actions {
        padding-left: 0;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
    }
}
/* =================================================================== */
/* ! ECLIPSE In-Patient Claim (tyroMedipassWidget)
/* -------------------------------------------------------------------
/* A forwards-only three step flow - verify, check eligibility, lodge -
/* inside the claim modal. Reads top to bottom, each step ending in one
/* action bar. Leaving the flow is the claim modal's own Back link.
/* =================================================================== */
.eclipse-flow {
    padding: 1.5rem 1.75rem 1.75rem;
}
.eclipse-flow__title {
    margin: 0;
}
.eclipse-flow__lead {
    color: #6c757d;
    font-size: 13px;
    line-height: 1.6;
    max-width: 60rem;
    margin: 0 0 1.25rem;
}
/* Separates the sections of a long form the way the clinical notes do - the
   left-packed rows alone do not make the breaks obvious. $grey-border-light
   rather than the notes' #ddd, to match the action bar's top border below. */
.eclipse-divider {
    border: none;
    border-top: 2px solid #e0e6ed;
    margin: 2.5em 0 1.5em;
}
/* =================================================================== */
/* ! Stepper
/* =================================================================== */
.eclipse-stepper {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 0.75rem;
    margin: 1.25rem 0 1.5rem;
    padding: 0;
    list-style: none;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
}
.eclipse-stepper__step {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 0.6rem;
    min-width: 0;
    -ms-flex: 0 1 auto;
        flex: 0 1 auto;
}
/* Drawn by the step it leads into, so it can never dangle off the last one. */
.eclipse-stepper__step + .eclipse-stepper__step {
    -ms-flex: 1 1 auto;
        flex: 1 1 auto;
}
.eclipse-stepper__step + .eclipse-stepper__step::before {
    content: "";
    -ms-flex: 1 1 1.5rem;
        flex: 1 1 1.5rem;
    min-width: 1.5rem;
    height: 2px;
    border-radius: 1px;
    background-color: #e0e6ed;
}
.eclipse-stepper__marker {
    -ms-flex: 0 0 auto;
        flex: 0 0 auto;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    border: 2px solid #e0e6ed;
    background-color: #ffffff;
    color: #6c757d;
    font-size: 12px;
    line-height: 1;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: center;
        justify-content: center;
    transition: all 0.25s ease;
}
.eclipse-stepper__label {
    font-size: 13px;
    color: #6c757d;
    white-space: nowrap;
    transition: color 0.25s ease;
}
.eclipse-stepper__step--active .eclipse-stepper__marker {
    border-color: #0035d2;
    background-color: #0035d2;
    color: #ffffff;
}
.eclipse-stepper__step--active .eclipse-stepper__label {
    color: #0035d2;
}
.eclipse-stepper__step--done .eclipse-stepper__marker {
    border-color: #20c997;
    background-color: #20c997;
    color: #ffffff;
}
.eclipse-stepper__step--done .eclipse-stepper__label {
    color: #343a40;
}
/* =================================================================== */
/* ! Form rows and fields
/* -------------------------------------------------------------------
/* Not grid rows. In a dialog 80% of the window wide, the 12 column grid
/* deals every field an equal share, so an 8 character provider number
/* gets the same 700px box as a free text description. Here each field is
/* as wide as the value it holds and the row packs left, leaving the
/* slack as whitespace at the end rather than inside every field.
/* =================================================================== */
.eclipse-formrow {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -ms-flex-align: start;
        align-items: flex-start;
    column-gap: 1.5rem;
}
/* Sized by their contents, never stretched. .form-group's own bottom
       margin spaces the wrapped lines. */
.eclipse-formrow > .form-group {
    -ms-flex: 0 0 auto;
        flex: 0 0 auto;
    max-width: 100%;
}
/* Or a sentence of help under a narrow field sets the whole group's width. */
.eclipse-formrow .help-block {
    max-width: 20rem;
}
/* Aligns an unlabelled control - the remove button - with the inputs, not
   their labels. */
.eclipse-formrow__spacer-label {
    display: block;
    visibility: hidden;
}
/* A label that wraps puts its field a line lower than the ones beside it, so
   the row's inputs no longer sit on one line. The labels here are short and the
   columns are wide, so holding them to one line costs nothing and keeps the
   inputs level. */
.eclipse-formrow .control-label, .eclipse-fieldgrid .control-label {
    white-space: nowrap;
}
/* =================================================================== */
/* ! Field hints
/* -------------------------------------------------------------------
/* What used to be a line of help under the field. Held in a tooltip on
/* the label instead: most of these hints only apply to some claims, and
/* under the field each one appearing and disappearing moved everything
/* below it as the form was filled in. On the label they change nothing
/* but the label.
/*
/* Errors are not hints and stay where they are - a message saying the
/* claim will be rejected has to be read, not found by hovering.
/* =================================================================== */
/* The icon is a child rather than this element itself: md-tooltip renders inside
   the element it hangs off, and the glyphicon font would come out as glyphs. */
.eclipse-hint {
    display: inline-block;
    margin-left: 0.3rem;
    color: #6c757d;
    cursor: help;
}
.eclipse-hint .glyphicon {
    font-size: 11px;/* .glyphicon nudges itself down a pixel to sit in a line of text; beside a
           label it reads as sitting low. */
    top: 0;
}
.eclipse-hint:hover {
    color: #0035d2;
}
/* Angular Material's own tooltip is a nowrap chip: a sentence comes out as one
   line four times the width of the field it explains. Dressed like the SNOMED
   concept tooltip instead - a small light card that wraps - and held to a width
   a sentence reads well at.

   Specificity over the theme's own .md-tooltip rule, which is injected into the
   head at bootstrap and so wins a tie against this file. */
body .md-tooltip.eclipse-tooltip {
    max-width: 16rem;
    height: auto;
    padding: 8px 12px;
    white-space: normal;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.5;
    color: #343a40;
    background-color: #ffffff;
    border: 1px solid #e0e6ed;
    border-radius: 4px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
/* The card is opaque, where the chip it replaces is read through. */
body .md-tooltip.eclipse-tooltip.md-show {
    opacity: 1;
}
.eclipse-field {
    max-width: 100%;
}
/* 3-6 digits: MBS item numbers, and the shorter whole numbers beside them. */
.eclipse-field--number {
    width: 9rem;
}
/* Exactly 8 characters: Medicare provider numbers and facility IDs. */
.eclipse-field--code {
    width: 11rem;
}
.eclipse-field--money {
    width: 10rem;
}
/* Date inputs carry picker furniture, so they need more than ten characters. */
.eclipse-field--date {
    width: 13rem;
}
/* Up to 20 characters, where the placeholder is longer than the value. */
.eclipse-field--ref {
    width: 18rem;
}
/* Free text: the claim item description. */
.eclipse-field--text {
    width: 26rem;
}
/* STUB code plus a few words. ECLIPSE caps it at 50 characters, but sized to
   what is normally typed rather than to the maximum. */
.eclipse-field--stub {
    width: 13rem;
}
/* The claim item picker, which shows "42702 - Cataract extraction ...". */
.eclipse-field--item {
    width: 24rem;
}
/* Sized by the longest option and its arrow, not by the code held. */
.eclipse-field--choice-sm {
    width: 11rem;
}
.eclipse-field--choice {
    width: 15rem;
}
.eclipse-field--choice-wide {
    width: 19rem;
}
/* The presenting illness picker, whose options run "322 - Bone Marrow transfusion
   or transplant (autologous and allogeneic incl harvesting, cryopreservation)".
   Medicare writes the descriptions, so their length is not ours to trim: sized to
   its longest option like the policy picker below, with .eclipse-field's
   max-width keeping it inside the form. */
.eclipse-field--illness {
    width: auto;
    min-width: 30rem;
}
/* The health fund policy picker, whose options run "Bupa - #88812345 - Overseas
   Visitor Health Cover (OVHC) - LAPSED". Every part of that earns its place -
   two policies at the same fund are told apart by the cover type, and the status
   is a reason not to claim on one - so the option has to be readable in full.
   How wide that is depends on the patient's policies rather than on anything
   this file knows, so the field is sized to its longest option instead of to a
   number picked here; the floor keeps a short-named policy from collapsing to a
   stub, and .eclipse-field's max-width stops a long one overrunning the form. */
.eclipse-field--policy {
    width: auto;
    min-width: 30rem;
}
/* The episode indicators, read across rather than down. Bootstrap's own
   adjacent-checkbox spacing fights the gap and unevens the wrapped rows.

   Sits inside a .eclipse-formrow alongside the episode's fields, so the gap is
   the tighter of the two: 1.75rem between labelled fields reads as separation,
   between five checkboxes on one line it reads as drift. */
.eclipse-checkrow {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 0.4rem 1rem;
    /* Aligns the first row of boxes with the inputs beside them rather than
       floating them against the labels. */
    padding-top: 0.35rem;
}
.eclipse-checkrow .checkbox-inline + .checkbox-inline {
    margin-left: 0;
}
/* =================================================================== */
/* ! Field grid
/* -------------------------------------------------------------------
/* For the denser parts of the form, where most fields carry a sentence
/* of help wider than the field it explains. Packed left the way
/* .eclipse-formrow packs, each group is as wide as its own sentence, so
/* no two lines start their fields at the same offset and the gaps
/* between them all differ. One column grid instead: the columns are the
/* same on every row of a section, so fields line up down the form as
/* well as across it, with each field's help text under it.
/* =================================================================== */
.eclipse-fieldgrid {
    display: -ms-grid;
    display: grid;
    /* A set column rather than a share of the row: stretching four fields across
       a dialog 80% of the window wide puts a hand's width between a drop-down and
       the one that qualifies it. The slack goes to the end of the row instead. */
    -ms-grid-columns: (16rem)[auto-fill];
        grid-template-columns: repeat(auto-fill, 16rem);
    column-gap: 2rem;
    -ms-flex-align: start;
        align-items: start;
}
/* The column is the width here, so a field kept at its own would only
       leave a ragged edge inside its cell. */
.eclipse-fieldgrid .eclipse-field {
    width: 100%;
}
.eclipse-fieldgrid > .form-group {
    min-width: 0;/* Slack at the end of the column, so a label longer than its field -
           "Servicing Provider ID (optional)" - has somewhere to go instead of
           running at the column beside it. */
    padding-right: 0.75rem;
}
/* A select sizes itself from its options unless it is told not to, which
       leaves a drop-down of short codes narrower than the text input beside it.
       Both fill the column. Stated against the element as well as the class,
       to beat the .eclipse-field--choice widths whatever the source order. */
.eclipse-fieldgrid select.form-control {
    width: 100%;/* .form-control's height, which a select otherwise takes from its font. */
    height: 34px;
}
/* A line of its own: checkboxes that read across, and the declarations
   whose label is a sentence. */
.eclipse-fieldgrid__wide {
    grid-column: 1 / -1;
}
/* Two columns, for the two pickers whose options are a sentence someone else
   wrote - the patient's referrals, and Medicare's presenting illness codes.
   Every other field is one column, so the drop-downs and the text inputs on a
   row are the same width. */
.eclipse-fieldgrid__span2 {
    -ms-grid-column: span 2;
        grid-column: span 2;
}
/* =================================================================== */
/* ! Panels
/* -------------------------------------------------------------------
/* One card per thing being read: the assessment, the item benefits,
/* what is about to be lodged.
/* =================================================================== */
.eclipse-panel {
    background-color: #ffffff;
    border: 1px solid #e0e6ed;
    border-radius: 12px;
    padding: 1.25rem 1.5rem;
    margin-bottom: 1.25rem;
}
.eclipse-panel--quiet {
    background-color: #f8f9fa;
}
.eclipse-panel__header {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: baseline;
        align-items: baseline;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 0.6rem;
    margin-bottom: 0.85rem;
}
.eclipse-panel__title {
    margin: 0;
    font-size: 15px;
}
.eclipse-panel__note {
    color: #6c757d;
    font-size: 13px;
    line-height: 1.6;
    margin: 0;
}
/* The transaction reference, which practices read out and quote back. */
.eclipse-ref {
    display: inline-block;
    font-family: "Source Code Pro", "SFMono-Regular", Consolas, monospace;
    font-size: 12px;
    letter-spacing: 0.02em;
    background-color: #f2f6fb;
    border: 1px solid #e0e6ed;
    border-radius: 6px;
    padding: 2px 8px;
    color: #343a40;
}
/* =================================================================== */
/* ! Money summary tiles
/* -------------------------------------------------------------------
/* The four numbers the practice acts on, pulled out of the per-item
/* table so the gap is not buried in a row of currency.
/* =================================================================== */
.eclipse-summary {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: (minmax(8.5rem, 1fr))[auto-fit];
        grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr));
    gap: 0.75rem;
    margin-bottom: 1.25rem;
}
.eclipse-summary__tile {
    background-color: #f2f6fb;
    border: 1px solid #e0e6ed;
    border-radius: 10px;
    padding: 0.7rem 0.9rem;
}
.eclipse-summary__label {
    display: block;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #6c757d;
    margin-bottom: 0.3rem;
}
.eclipse-summary__value {
    display: block;
    font-size: 18px;
    line-height: 1.2;
    color: #343a40;
}
.eclipse-summary__tile--gap {
    background-color: rgba(255, 182, 39, 0.1);
    border-color: rgba(255, 182, 39, 0.3);
}
.eclipse-summary__tile--gap .eclipse-summary__value {
    color: #a94442;
}
.eclipse-summary__tile--clear {
    background-color: rgba(32, 201, 151, 0.08);
    border-color: rgba(32, 201, 151, 0.3);
}
.eclipse-summary__tile--clear .eclipse-summary__value {
    color: #20c997;
}
/* =================================================================== */
/* ! Callouts - confirm, lodged, failed
/* =================================================================== */
.eclipse-callout {
    border: 1px solid #e0e6ed;
    border-left-width: 4px;
    border-radius: 10px;
    padding: 1rem 1.25rem;
    margin-bottom: 1.25rem;
}
.eclipse-callout p {
    margin: 0 0 0.5rem;
    font-size: 13px;
    line-height: 1.6;
}
.eclipse-callout p:last-child {
    margin-bottom: 0;
}
.eclipse-callout__title {
    font-size: 14px;
    margin: 0 0 0.5rem;
}
/* Itemised detail under a callout - which items were repriced, and from what to what. Sized to the callout's
   own paragraphs rather than the global list styles, which are set for body copy. */
.eclipse-callout__list {
    margin: 0;
    padding-left: 1.25rem;
    font-size: 13px;
    line-height: 1.6;
}
.eclipse-callout__list li {
    margin-bottom: 0.25rem;
}
.eclipse-callout__list li:last-child {
    margin-bottom: 0;
}
/* An action offered by a callout itself rather than by the step's action bar - the one case being the patient
   payment a lodged claim leaves to collect, which belongs beside the sentence that says so. */
.eclipse-callout__action {
    margin-top: 0.85rem;
}
.eclipse-callout--success {
    background-color: rgba(32, 201, 151, 0.08);
    border-color: #20c997;
}
.eclipse-callout--danger {
    background-color: rgba(217, 83, 79, 0.08);
    border-color: #d9534f;
    color: #a94442;
}
.eclipse-callout--waiting {
    background-color: rgba(255, 182, 39, 0.1);
    border-color: #FFB627;
    color: #856404;
}
/* =================================================================== */
/* ! Action bars
/* -------------------------------------------------------------------
/* Every step ends in one. The global .btn-navy / .btn-cancel are full
/* width slabs capped at 220px, which read as a form field when two sit
/* side by side, so in here they size to their label instead.
/* =================================================================== */
.eclipse-actions {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: end;
        justify-content: flex-end;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid #e0e6ed;
}
.eclipse-actions .btn {
    width: auto;
    max-width: none;
    min-width: 8rem;
    padding: 7px 22px;
    font-size: 13px;
}
/* Pushes the secondary action away from the primary, so the button that sends
   a claim to Medicare is never the one under a stray click. Once the primary is
   gone the pair collapses back to one right-aligned button. */
.eclipse-actions__spacer {
    margin-right: auto;
}
.eclipse-actions__spacer:only-child {
    margin-right: 0;
}
.eclipse-actions--inline {
    margin-top: 1rem;
    padding-top: 0;
    border-top: 0;
}
/* =================================================================== */
/* ! Tables inside the flow
/* =================================================================== */
.eclipse-table {
    margin-bottom: 0;
    font-size: 13px;
}
.eclipse-table > thead > tr > th {
    border-bottom-width: 1px;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6c757d;
    white-space: nowrap;
}
.eclipse-table > tbody > tr > td {
    vertical-align: middle;
}
/* The totals row reads as a summary of the rows above it, not another item. */
.eclipse-table > tbody > tr.eclipse-table__total > td {
    border-top: 2px solid #e0e6ed;
    background-color: #f2f6fb;
}
/* Label / value pairs - the assessment detail rows. */
.eclipse-table--facts > tbody > tr > td:first-child {
    width: 34%;
    color: #343a40;
}
.eclipse-table--facts > tbody > tr:first-child > td {
    border-top: 0;
}
.eclipse-numeric {
    text-align: right;
    font-variant-numeric: tabular-nums;
}
/* The scrolling PDF viewer (<pdf-scroll-viewer>) used by the document preview and processing
   report modals. The page column scrolls inside the modal body rather than growing it, so the
   toolbar and the modal's own buttons stay put while a document is read. */
.pdf-scroll-viewer {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: column;
	    flex-direction: column;
	max-width: 100%;
}
.pdf-scroll-viewer-toolbar {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-align: center;
	    align-items: center;
	gap: 0.5rem;
	padding-bottom: 0.75rem;
}
.pdf-scroll-viewer-toolbar .btn {
    width: 5em;
}
.pdf-scroll-viewer-toolbar .control-label {
    padding-left: 0.5rem;
    margin-bottom: 0;
}
.pdf-scroll-viewer-scroll {
	/* Pages are positioned against this box, and offsetTop is read off them to work out what is in
	   view - so it has to be the offset parent, not just the thing that scrolls. */
	position: relative;
	overflow: auto;
	max-height: 60vh;
	background-color: #f8faff;
	border: 1px solid #e0e6ed;
}
/* Inside a viewer modal the document takes the whole window bar the modal's own chrome. A document is
   read a page at a time, and a short panel is a page read a third at a time. The subtracted heights
   are that chrome: the dialog's top margin, the title bar, this body's padding and the toolbar - and,
   on the report, the row its Download and Close buttons sit in. */
.pdf-viewer-modal-body {
	padding: 1rem 1.25rem;
}
.pdf-viewer-modal-body .pdf-scroll-viewer-scroll {
    height: calc(100vh - 190px);
    max-height: none;
}
.pdf-viewer-modal-body.has-footer .pdf-scroll-viewer-scroll {
    height: calc(100vh - 265px);
}
.pdf-scroll-viewer-pages {
	padding: 0.75rem 0;
}
/* Centred by auto margins on a box shrink-wrapped to the page, not by flex. At real size on a narrow
   window a page is wider than the panel, and it has to overflow to the right where the horizontal
   scrollbar can reach it - flex centring would push its left edge out of reach instead. */
.pdf-scroll-viewer-page {
	display: table;
	margin: 0 auto 0.75rem;
	background-color: #ffffff;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.18);
}
.pdf-scroll-viewer-page:last-child {
    margin-bottom: 0;
}
.pdf-scroll-viewer-page canvas {
    display: block;
}
.pdf-scroll-viewer-message {
	padding: 3rem 0;
	text-align: center;
}
.modern-login-page {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: column;
	    flex-direction: column;
	min-height: 100vh;
	width: 100%;
	font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	font-size: 16px;
	color: #ffffff;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	--page-bg-image: url('https://cattrax-media.s3.ap-southeast-2.amazonaws.com/images/surgeon_image_cropped2.jpg');
	--page-bg-position: center;
	background-image: linear-gradient(rgba(10, 37, 64, 0.95), rgba(10, 37, 64, 0.85)), var(--page-bg-image);
	background-position: var(--page-bg-position);
	background-repeat: no-repeat;
	background-size: cover;
}
.modern-login-page main.hero-section {
    background: none;
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: 1.2fr 1fr;
        grid-template-columns: 1.2fr 1fr;
    -ms-flex-align: center;
        align-items: center;
    gap: 4rem;
    padding: 5rem 5%;
    -ms-flex-positive: 1;
        flex-grow: 1;
    max-width: 1400px;
    margin: 0 auto;
}
@media (max-width: 992px) {
    .modern-login-page main.hero-section {
        -ms-grid-columns: 1fr;
            grid-template-columns: 1fr;
        text-align: center;
        padding: 3rem 5%;
        gap: 2.5rem;
    }
}
.hero-content {
	padding-right: 2rem;
	color: #ffffff;
}
@media (max-width: 992px) {
    .hero-content {
        padding-right: 0;
        margin-bottom: 0;
        text-align: center;/* This centers the content on mobile */
    }
}
.main-logo {
	max-width: 280px;
	margin-bottom: 2.5rem;
	filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.3));
}
@media (max-width: 992px) {
    .main-logo {
        margin-left: auto;
        margin-right: auto;
    }
}
.hero-title {
	font-size: 3.2rem;
	font-weight: 700;
	line-height: 1.15;
	margin-bottom: 1.25rem;
	color: #ffffff;
	letter-spacing: -0.03em;
}
@media (max-width: 992px) {
    .hero-title {
        font-size: 2.5rem;
    }
}
@media (max-width: 576px) {
    .hero-title {
        font-size: 2rem;
    }
}
.hero-subtitle {
	font-size: 1.15rem;
	font-weight: 300;
	margin-bottom: 3rem;
	color: rgba(255, 255, 255, 0.85);
	line-height: 1.6;
}
@media (max-width: 992px) {
    .hero-subtitle {
        font-size: 1rem;
    }
}
.benefits-list {
	list-style: none;
	padding: 0;
	margin: 0;

}
@media (max-width: 992px) {
    .benefits-list {/* This allows the <ul> to be centered by its parent's text-align:center */
        display: inline-block;
    }
}
.benefits-list li {
    font-size: 1.05rem;
    font-weight: 400;
    margin-bottom: 1.2rem;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: start;
        align-items: flex-start;
    color: #ffffff;
    text-align: left;/* Fixes list item text alignment */
}
.benefits-list .checkmark {
    color: #00bcd4;
    font-size: 1.4rem;
    margin-right: 1rem;
    -ms-flex-negative: 0;
        flex-shrink: 0;
}
.privacy-link {
	margin-top: 2rem;
	font-size: 0.9rem;
	text-align: center;
	color: rgba(255, 255, 255, 0.75);
}
.privacy-link a {
    color: #00bcd4;
    font-weight: 500;
    text-decoration: none;
    transition: color 0.3s ease;
}
.privacy-link a:hover {
    text-decoration: underline;
    color: #008c9e;
}
.proof-section {
	background-color: rgba(255, 255, 255, 0.05);
	padding: 3.5rem 5%;
	text-align: center;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	color: #ffffff;
	font-size: 0.95rem;
}
.proof-title {
	font-size: 2.2rem;
	font-weight: 700;
	margin-bottom: 3rem;
	color: #ffffff;
}
@media (max-width: 992px) {
    .proof-title {
        font-size: 1.8rem;
    }
}
.testimonials-horizontal {
	display: -ms-grid;
	display: grid;
	-ms-grid-columns: (minmax(300px, 1fr))[auto-fit];
	    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 2.5rem;
	max-width: 1200px;
	margin: 0 auto;
}
@media (max-width: 992px) {
    .testimonials-horizontal {
        -ms-grid-columns: 1fr;
            grid-template-columns: 1fr;
    }
}
.testimonial-card-horizontal {
	background: rgba(255, 255, 255, 0.1);
	padding: 2.5rem;
	border-radius: 12px;
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: column;
	    flex-direction: column;
	-ms-flex-align: center;
	    align-items: center;
	text-align: center;
	border: 1px solid rgba(255, 255, 255, 0.15);

}
.testimonial-card-horizontal .quote {
    font-size: 1.05rem;
    line-height: 1.7;
    margin-bottom: 1.5rem;
    color: rgba(255, 255, 255, 0.9);
    font-style: italic;
}
.testimonial-card-horizontal cite {
    font-size: 1rem;
    font-weight: 500;
    color: #00bcd4;
    display: block;
    margin-top: auto;
}
.testimonial-avatar {
	width: 90px;
	height: 90px;
	border-radius: 50%;
	-o-object-fit: cover;
	   object-fit: cover;
	margin-bottom: 1.5rem;
	border: 3px solid #00bcd4;
	box-shadow: 0 0 0 5px rgba(0, 188, 212, 0.2);
}
.page-footer {
	display: -ms-grid;
	display: grid;
	-ms-grid-columns: 1fr auto 1fr;
	    grid-template-columns: 1fr auto 1fr;
	-ms-flex-align: center;
	    align-items: center;
	padding: 1.5rem 5%;
	width: 100%;
	box-sizing: border-box;
}
@media (max-width: 992px) {
    .page-footer {
        display: -ms-flexbox;
        display: flex;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
        gap: 1.5rem;
        padding: 2rem 5%;
    }
}
.page-footer .copyright {
    -ms-grid-column: 2;
        grid-column: 2;
    text-align: center;
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.95rem;
}
.page-footer .pentest-badge {
    -ms-grid-column: 2;
        grid-column: 2;
    justify-self: end;
}
.page-footer .pentest-badge img {
    max-width: 300px;
    height: auto;
}
.value-prop-section {
	padding: 6.5rem 5%;
}
@media (max-width: 992px) {
    .value-prop-section {
        padding: 3rem 5%;
    }
}
.value-prop-container {
	display: -ms-grid;
	display: grid;
	-ms-grid-columns: (1fr)[3];
	    grid-template-columns: repeat(3, 1fr);
	gap: 2.5rem;
	max-width: 1200px;
	margin: 0 auto;
	text-align: center;
}
@media (max-width: 992px) {
    .value-prop-container {
        -ms-grid-columns: 1fr;
            grid-template-columns: 1fr;
        gap: 2rem;
    }
}
.value-prop-card {
	background: rgba(255, 255, 255, 0.05);
	padding: 2.5rem 2rem;
	border-radius: 16px;
	border: 1px solid rgba(255, 255, 255, 0.15);
	transition: all 0.3s ease;
	-webkit-backdrop-filter: blur(5px);
	        backdrop-filter: blur(5px);
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: column;
	    flex-direction: column;
}
.value-prop-card:hover {
    transform: translateY(-10px);
    background: rgba(255, 255, 255, 0.1);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
    border-color: rgba(0, 188, 212, 0.5);
}
.value-prop-card:hover .title-referral {
    color: #00bcd4;
}
.value-prop-card:hover .icon-management, .value-prop-card:hover .title-management {
    border-color: rgba(32, 201, 151, 0.5);
    color: #20c997;
}
.value-prop-card:hover .icon-management {
    background: rgba(32, 201, 151, 0.2);
}
.value-prop-card:hover .icon-tech, .value-prop-card:hover .title-tech {
    border-color: rgba(255, 182, 39, 0.5);
    color: #FFB627;
}
.value-prop-card:hover .icon-tech {
    background: rgba(255, 182, 39, 0.2);
}
.value-prop-card:hover .value-prop-icon-wrapper {
    transform: scale(1.1) rotate(5deg);
}
.value-prop-icon-wrapper {
	width: 80px;
	height: 80px;
	margin: 0 auto 1.5rem auto;
	border-radius: 50%;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-align: center;
	    align-items: center;
	-ms-flex-pack: center;
	    justify-content: center;
	transition: all 0.3s ease;
}
.value-prop-icon {
	font-size: 2.5rem;
	line-height: 1;
}
.icon-referral {
	background: rgba(0, 188, 212, 0.1);

}
.icon-referral .value-prop-icon {
    color: #00bcd4;
}
.title-referral, .icon-referral .value-prop-icon {
	color: #00bcd4;
}
.icon-management {
	background: rgba(32, 201, 151, 0.1);

}
.icon-management .value-prop-icon {
    color: #20c997;
}
.title-management, .icon-management .value-prop-icon {
	color: #20c997;
}
.icon-tech {
	background: rgba(255, 182, 39, 0.1);

}
.icon-tech .value-prop-icon {
    color: #FFB627;
}
.title-tech, .icon-tech .value-prop-icon {
	color: #FFB627;
}
.value-prop-title {
	font-size: 1.3rem;
	font-weight: 600;
	margin: 0 0 1rem 0;
	transition: color 0.3s ease;
}
.value-prop-text {
	font-size: 1rem;
	color: rgba(255, 255, 255, 0.85);
	line-height: 1.7;
	margin: 0;
	-ms-flex-positive: 1;
	    flex-grow: 1;
}
.btn-see-more {
	display: inline-block;
	-ms-flex-item-align: center;
	    -ms-grid-row-align: center;
	    align-self: center;
	margin-top: auto;
	padding: 0.75rem 1.5rem;
	border: 2px solid rgba(255, 255, 255, 0.6);
	border-radius: 50px;
	background-color: transparent;
	color: #ffffff;
	font-weight: 500;
	text-transform: uppercase;
	font-size: 0.8rem;
	letter-spacing: 0.05em;
	text-decoration: none;
	text-align: center;
	transition: all 0.3s ease;
	cursor: pointer;

}
.btn-see-more:hover {
    background-color: rgba(255, 255, 255, 0.1);
    border-color: #00bcd4;
    transform: translateY(-2px);
}
.features-overview {
	padding-top: 2rem;
	padding-bottom: 4rem;

}
.features-overview .features-grid {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: (minmax(320px, 1fr))[auto-fit];
        grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 2rem;
}
.feature-category-section {
	max-width: 1400px;
	margin: 0 auto 4rem auto;
	padding: 0 1rem;
}
.category-header {
	text-align: center;
	margin-bottom: 3rem;

}
.category-header h2 {
    font-size: 2.5rem;
    font-weight: 700;
    margin: 0 0 0.75rem 0;
}
.category-header p {
    font-size: 1.15rem;
    max-width: 750px;
    margin: 0 auto;
    color: rgba(255, 255, 255, 0.85);
    line-height: 1.6;
}
.category-header.optometry h2 {
    color: #00bcd4;
}
.category-header.ophthalmology h2 {
    color: #20c997;
}
.category-header.management h2 {
    color: #FFB627;
}
.category-header.hospitals h2 {
    color: #a29bfe;
}
.category-icon {
	display: inline-block;
	font-size: 2.5rem;
	width: 80px;
	height: 80px;
	line-height: 80px;
	border-radius: 50%;
	margin-bottom: 1.5rem;
	padding-top: 2rem;
	background: rgba(255, 255, 255, 0.1);
	transition: all 0.3s ease;
}
.category-icon.optometry {
    color: #00bcd4;
    border: 2px solid rgba(0, 188, 212, 0.3);
}
.category-icon.ophthalmology {
    color: #20c997;
    border: 2px solid rgba(32, 201, 151, 0.3);
}
.category-icon.management {
    color: #FFB627;
    border: 2px solid rgba(255, 182, 39, 0.3);
}
.category-icon.hospitals {
    color: #a29bfe;
    border: 2px solid rgba(162, 155, 254, 0.3);
}
.features-grid {
	display: -ms-grid;
	display: grid;
	-ms-grid-columns: (1fr)[3];
	    grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
}
@media (max-width: 992px) {
    .features-grid {
        -ms-grid-columns: 1fr;
            grid-template-columns: 1fr;
    }
}
.feature-card {
	text-align: center;
	padding: 2.5rem 2rem;
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(255, 255, 255, 0.15);
	border-radius: 12px;
	transition: transform 0.3s ease, background-color 0.3s ease;

}
.feature-card:hover {
    transform: translateY(-8px);
    background: rgba(255, 255, 255, 0.1);
}
.feature-icon {
	font-size: 2.8rem;
	margin-bottom: 1.5rem;
	color: #00bcd4;
}
.feature-title {
	font-size: 1.3rem;
	font-weight: 600;
	margin: 0 0 0.75rem 0;
	color: #ffffff;
}
.feature-description {
	font-size: 1rem;
	color: rgba(255, 255, 255, 0.85);
	line-height: 1.7;
	margin: 0;
}
.final-cta-section {
	text-align: center;
	padding: 4rem 5%;
	background-color: rgba(0, 0, 0, 0.2);

}
.final-cta-section .btn-nav-demo {
    font-size: 1.2rem;
    padding: 1rem 2.5rem;
}
.features-disclaimer {
	text-align: center;
	padding: 2rem 5% 1rem 5%;
	max-width: 800px;
	margin: 0 auto;
	font-size: 0.9rem;
	color: rgba(255, 255, 255, 0.6);
	line-height: 1.6;
}
@media (max-width: 992px) {
    .section-title {
        font-size: 2rem;
    }
}
.full-screen-loader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #ffffff;
    z-index: 99999;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    -ms-flex-pack: center;
        justify-content: center;
    -ms-flex-align: center;
        align-items: center;
}
.modern-login-page .login-card {
    background: #ffffff;
    color: #333333;
    padding: 3rem;
    border-radius: 12px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
    width: 100%;
    max-width: 450px;
    position: relative;
}
@media (max-width: 992px) {
    .modern-login-page .login-card {
        padding: 2.5rem;
    }
}
@media (max-width: 576px) {
    .modern-login-page .login-card {
        padding: 2rem 1.5rem;
    }
}
.modern-login-page .processing-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(4px);
    border-radius: 12px;
    -webkit-backdrop-filter: blur(4px);
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: center;
        justify-content: center;
    z-index: 10;
    color: #0a2540;
    gap: 1rem;
    font-weight: 500;
    font-size: 1rem;
}
.modern-login-page .spinner {
    width: 40px;
    height: 40px;
    border: 4px solid rgba(10, 37, 64, 0.2);
    border-top-color: #00bcd4;
    border-radius: 50%;
    animation: spinner-rotation 0.8s linear infinite;
}
.modern-login-page .login-panel .btn:focus-visible, .modern-login-page .login-panel a:focus-visible {
    outline: 2px solid #00bcd4;
    outline-offset: 2px;
    box-shadow: none;
}
@media (max-width: 992px) {
    .modern-login-page .login-panel {
        padding: 2rem;
    }
}
.modern-login-page .text-danger {
    color: #d9534f;
    font-weight: 500;
}
.modern-login-page .text-success {
    color: #5cb85c;
    font-weight: 500;
}
.modern-login-page .text-center {
    text-align: center;
}
.modern-login-page .login-panel-text {
    font-size: 1rem;
    color: #6c757d;
    text-align: center;
    line-height: 1.6;
    margin: 0 auto 1.5rem auto;
    max-width: 90%;
}
.modern-login-page .verify-input-container {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
        justify-content: center;
    gap: 0.75rem;
    margin: 2rem auto;
}
.modern-login-page .verify-input-container input {
    width: 45px;
    height: 55px;
    font-size: 1.8rem;
    text-align: center;
    padding: 0.5rem;
    font-weight: 600;
    color: #0a2540;
}
.modern-login-page .form-actions-centered {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    -ms-flex-pack: center;
        justify-content: center;
    margin-top: 1.8rem;
    gap: 1rem;
}
.modern-login-page .form-group {
    margin-bottom: 1.5rem;
}
.modern-login-page .form-group label {
    display: block;
    font-size: 0.95rem;
    font-weight: 500;
    margin-bottom: 0.6rem;
    color: #333333;
}
.modern-login-page .form-control {
    width: 100%;
    padding: 1rem 1.2rem;
    font-size: 1rem;
    border: 1px solid #e0e6ed;
    border-radius: 8px;
    box-sizing: border-box;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
    color: #333333;
    background-color: #ffffff;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
.modern-login-page .form-control:focus {
    outline: none;
    border-color: #00bcd4;
    box-shadow: 0 0 0 3px rgba(0, 188, 212, 0.25);
}
.modern-login-page .form-actions {
    display: -ms-flexbox;
    display: flex;
    gap: 1rem;
    margin-top: 1.8rem;
}
.modern-login-page .btn {
    width: 100%;
    max-width: none;
    padding: 1rem 1.5rem;
    font-size: 1rem;
    font-weight: 700;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.3s ease;
    letter-spacing: 0.02em;
}
@media (max-width: 576px) {
    .modern-login-page .btn {
        padding: 0.8rem 1rem;
        font-size: 0.95rem;
    }
}
.modern-login-page .btn-login {
    background-color: #00bcd4;
    color: #ffffff;
    box-shadow: 0 4px 15px rgba(0, 188, 212, 0.3);
}
.modern-login-page .btn-login:hover {
    background-color: #008c9e;
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(0, 188, 212, 0.4);
}
.modern-login-page .btn-lost {
    background-color: transparent;
    color: #0a2540;
    font-weight: 600;
    border: 1px solid #c0cde0;
    box-shadow: none;
    opacity: 0.9;
}
.modern-login-page .btn-lost:hover {
    background-color: rgba(10, 37, 64, 0.05);
    border-color: #0a2540;
    color: #0a2540;
    transform: translateY(-2px);
    opacity: 1;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}
.modern-login-page .dev-warning {
    background-color: rgba(255, 243, 205, 0.9);
    border: 1px solid rgba(255, 193, 7, 0.7);
    border-radius: 8px;
    padding: 1rem;
    margin-bottom: 1.5rem;
    color: #856404;
    font-size: 0.9rem;
    text-align: center;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
@media (max-width: 576px) {
    .modern-login-page .login-title {
        font-size: 1.6rem;
    }
}
@keyframes spinner-rotation {
	to {
		transform: rotate(360deg);
	}
}
.about-page {
    /* Override the variable for this specific page */
    --page-bg-image: url('https://cattrax-media.s3.ap-southeast-2.amazonaws.com/images/surgeon_image_cropped2.jpg');
    --page-bg-position: center;
}
.modern-login-page .about-section {
    padding: 4rem 5%;
}
.modern-login-page .about-container {
    max-width: 900px;
    margin: 0 auto;
    color: rgba(255, 255, 255, 0.9);
}
.modern-login-page .about-container p {
    font-size: 1.15rem;
    line-height: 1.8;
    margin-bottom: 2rem;
    font-weight: 300;
}
.modern-login-page .about-container .section-title {
    text-align: left;
    font-size: 2.2rem;
    margin-bottom: 2rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
    color: #ffffff;
}
.modern-login-page .about-container .subsection-title {
    font-size: 1.8rem;
    font-weight: 600;
    color: #ffffff;
    margin-top: 4rem;
    margin-bottom: 1.5rem;
}
.modern-login-page .about-container ul {
    list-style: none;
    padding: 0;
    margin-top: 1.5rem;
}
.modern-login-page .about-container li {
    position: relative;
    margin-bottom: 1.25rem;
    font-size: 1.15rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.85);
    padding-left: 2.5rem;
}
.modern-login-page .about-container li i {
    position: absolute;
    left: 0;
    top: 4px;
    color: #00bcd4;
    font-size: 1.1rem;
}
.modern-login-page .about-container li strong {
    color: #ffffff;
    font-weight: 600;
}
.modern-login-page .impact-section {
    background: rgba(0, 0, 0, 0.3);
    -webkit-backdrop-filter: blur(5px);
            backdrop-filter: blur(5px);
    padding: 4rem 5%;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.modern-login-page .impact-container {
    max-width: 1200px;
    margin: 0 auto;
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: (0.5fr)[3];
        grid-template-columns: repeat(3, 0.5fr);
    gap: 0rem;
    text-align: center;
}
.modern-login-page .impact-card {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    -ms-flex-pack: center;
        justify-content: center;
    transition: transform 0.3s ease;
}
.modern-login-page .impact-card:hover {
    transform: translateY(-5px);
}
.modern-login-page .impact-number {
    font-size: 3.5rem;
    font-weight: 700;
    color: #00bcd4;
    line-height: 1.2;
    margin-bottom: 0.5rem;
    text-shadow: 0 0 20px rgba(0, 188, 212, 0.2);
}
.modern-login-page .impact-label {
    color: rgba(255, 255, 255, 0.8);
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: 0.9rem;
    font-weight: 700;
}
.modern-login-page .client-logos-section {
    padding: 3rem 0;
    background: #ffffff;
}
.modern-login-page .client-logos-marquee {
    position: relative;
    overflow: hidden;
    width: 100%;
    mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent);
    -webkit-mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent);
}
.modern-login-page .client-logos-track {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 4rem;
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
    animation: client-logos-scroll 40s linear infinite;
    will-change: transform;
}
.modern-login-page .client-logos-track:hover {
    animation-play-state: paused;
}
.modern-login-page .client-logo {
    display: -ms-inline-flexbox;
    display: inline-flex;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: center;
        justify-content: center;
    height: 70px;
    min-width: 150px;
    opacity: 0.6;
    transition: all 0.3s ease;
}
.modern-login-page .client-logo:hover {
    opacity: 1;
    transform: scale(1.05);
}
.modern-login-page .client-logo img {
    max-height: 60px;
    max-width: 180px;
    -o-object-fit: contain;
       object-fit: contain;
}
@keyframes client-logos-scroll {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(-50%);
    }
}
@media (max-width: 768px) {
    .modern-login-page .about-section, .modern-login-page .impact-section {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
    .modern-login-page .impact-container {
        -ms-grid-columns: 1fr 1fr;
            grid-template-columns: 1fr 1fr;
        gap: 2rem;
    }
    .modern-login-page .impact-number {
        font-size: 2.5rem;
    }
    .modern-login-page .client-logos-track {
        gap: 2rem;
    }
}
.pricing-page {
	--page-bg-image: url('https://cattrax-media.s3.ap-southeast-2.amazonaws.com/images/surgeon_image_cropped2.jpg');
	--page-bg-position: center 110%;
}
.modern-login-page .pricing-section {
    padding: 3rem 5%;
}
.modern-login-page .pricing-grid {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: (1fr)[5];
        grid-template-columns: repeat(5, 1fr);
    gap: 2rem;
    max-width: 1600px;
    margin: 0 auto;
    -ms-flex-align: stretch;
        align-items: stretch;
}
@media (min-width: 1201px) {
    .modern-login-page .pricing-grid {
        display: -ms-flexbox;
        display: flex;
        -ms-flex-pack: justify;
            justify-content: space-between;
        gap: 0;
    }
    .modern-login-page .pricing-grid .pricing-card {
        width: calc((100% - 14rem) / 5);
        margin-right: 2.5rem;
    }
    .modern-login-page .pricing-grid .pricing-card:last-child {
        margin-right: 0;
    }
    .modern-login-page .pricing-grid .pricing-card:nth-child(2) {
        position: relative;
        margin-right: 4.8rem;
    }
    .modern-login-page .pricing-grid .pricing-card:nth-child(2)::after {
        content: '';
        position: absolute;
        top: 15%;
        bottom: 15%;
        right: -2.7rem;
        width: 2px;
        background-color: rgba(255, 255, 255, 0.2);
        border-radius: 1px;
        transition: transform 0.3s ease;
    }
    .modern-login-page .pricing-grid .pricing-card:nth-child(2):hover::after {
        transform: translateY(10px);
    }
    .modern-login-page .pricing-grid .pricing-card:nth-child(3) {
        margin-right: 0;
    }
    .modern-login-page .pricing-grid .pricing-card:nth-child(4) {
        position: relative;
        margin-left: 2.8rem;
        margin-right: 5.4rem;
    }
    .modern-login-page .pricing-grid .pricing-card:nth-child(4)::after {
        content: '';
        position: absolute;
        top: 15%;
        bottom: 15%;
        right: -2.5rem;
        width: 2px;
        background-color: rgba(255, 255, 255, 0.2);
        border-radius: 1px;
    }
}
@media (max-width: 1400px) {
    .modern-login-page .pricing-grid {
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        -ms-flex-pack: center;
            justify-content: center;
    }
    .modern-login-page .pricing-grid .pricing-card {
        width: 45%;
        margin: 1rem;
    }
    .modern-login-page .pricing-grid .pricing-card:nth-child(2), .modern-login-page .pricing-grid .pricing-card:nth-child(3), .modern-login-page .pricing-grid .pricing-card:nth-child(4) {
        margin-right: 1rem;
        margin-left: 1rem;
    }
    .modern-login-page .pricing-grid .pricing-card:nth-child(2)::after, .modern-login-page .pricing-grid .pricing-card:nth-child(3)::after, .modern-login-page .pricing-grid .pricing-card:nth-child(4)::after {
        display: none;
    }
}
@media (max-width: 768px) {
    .modern-login-page .pricing-grid {
        display: -ms-grid;
        display: grid;
        -ms-grid-columns: 1fr;
            grid-template-columns: 1fr;
    }
    .modern-login-page .pricing-grid .pricing-card {
        width: 100%;
        margin: 0;
    }
}
.modern-login-page .pricing-card {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    background: rgba(255, 255, 255, 0.05);
    padding: 2.5rem 2rem;
    border-radius: 16px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    transition: all 0.3s ease;
    -webkit-backdrop-filter: blur(5px);
            backdrop-filter: blur(5px);
    text-align: left;
    position: relative;
}
.modern-login-page .pricing-card:hover {
    transform: translateY(-10px);
    background: rgba(255, 255, 255, 0.1);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
    border-color: rgba(0, 188, 212, 0.5);
}
.modern-login-page .pricing-card.popular {
    border-color: #00bcd4;
    border-width: 2px;
    transform: scale(1.05);
    box-shadow: 0 10px 40px rgba(0, 188, 212, 0.2);
}
.modern-login-page .pricing-card.popular::before {
    content: 'Most Popular';
    position: absolute;
    top: 18px;
    right: -35px;
    background-color: #00bcd4;
    color: #ffffff;
    padding: 0.5rem 3rem;
    font-size: 0.85rem;
    font-weight: 700;
    text-align: center;
    transform: rotate(45deg);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
}
@media (max-width: 1200px) {
    .modern-login-page .pricing-card.popular {
        transform: scale(1);
    }
}
.modern-login-page .pricing-card.recommended {
    border-color: #00bcd4;
    border-width: 2px;
    box-shadow: 0 10px 40px rgba(0, 188, 212, 0.2);
}
.modern-login-page .pricing-card .btn {
    margin-top: auto;
}
.modern-login-page .pricing-roi {
    text-align: center;
    font-size: 0.95rem;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.9);
    background: rgba(0, 188, 212, 0.1);
    padding: 0.8rem 1rem;
    border-radius: 8px;
    margin-bottom: 2.5rem;
}
.modern-login-page .pricing-title {
    font-size: 1.5rem;
    font-weight: 600;
    color: #ffffff;
    margin: 0 0 1rem 0;
}
.modern-login-page .pricing-price {
    font-size: 2.8rem;
    font-weight: 700;
    color: #00bcd4;
    margin-bottom: 0.75rem;
}
.modern-login-page .pricing-price .price-period {
    font-size: 1rem;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.7);
}
.modern-login-page .pricing-description {
    font-size: 1rem;
    color: rgba(255, 255, 255, 0.85);
    line-height: 1.6;
    margin-bottom: 2rem;
}
.modern-login-page .features-list {
    list-style: none;
    padding: 0;
    margin: 0 0 2rem 0;
    -ms-flex-positive: 1;
        flex-grow: 1;
}
.modern-login-page .features-list li {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 0.75rem;
    margin-bottom: 1rem;
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.9);
}
.modern-login-page .features-list li.disabled {
    color: rgba(255, 255, 255, 0.5);
    text-decoration: line-through;
}
.modern-login-page .features-list .fa-check-circle {
    color: #20c997;
    font-size: 1.2rem;
}
.modern-login-page .features-list .fa-times-circle {
    color: rgba(255, 255, 255, 0.4);
    font-size: 1.2rem;
}
.modern-login-page .btn-secondary {
    background-color: transparent;
    color: #ffffff;
    border: 1px solid #00bcd4;
}
.modern-login-page .btn-secondary:hover {
    background-color: #00bcd4;
    color: #ffffff;
}
/* Add-ons: extras bought on top of a plan rather than instead of one, so they sit below the
	   plan grid in a narrower three-across row of their own. */
.modern-login-page .addon-section {
    padding: 1rem 5% 4rem 5%;
    max-width: 1600px;
    margin: 0 auto;
}
@media (max-width: 576px) {
    .modern-login-page .addon-section {
        padding: 1rem 5% 3rem 5%;
    }
}
.modern-login-page .addon-divider {
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    margin-bottom: 3rem;
}
.modern-login-page .addon-header {
    text-align: center;
    margin-bottom: 3rem;
}
.modern-login-page .addon-header h2 {
    font-size: 2.5rem;
    font-weight: 700;
    color: #ffffff;
    margin: 0 0 1rem 0;
}
.modern-login-page .addon-header p {
    font-size: 1rem;
    color: rgba(255, 255, 255, 0.85);
    line-height: 1.6;
    max-width: 800px;
    margin: 0 auto;
}
/* Narrower than the section it sits in: three cards stretched across the full 1600px would each
	   end up wider than a plan card above them. At 1200 they land close to one. */
.modern-login-page .addon-group {
    max-width: 1200px;
    margin: 0 auto 4rem auto;
}
.modern-login-page .addon-group:last-child {
    margin-bottom: 0;
}
/* One group per add-on. There is only transcription today, but the spacing is set up so a
	   second group can be dropped in below without touching anything else. */
.modern-login-page .addon-group-header {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: start;
        align-items: flex-start;
    gap: 1.25rem;
    margin-bottom: 2rem;
}
.modern-login-page .addon-group-header .addon-group-icon {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: center;
        justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 12px;
    background: rgba(0, 188, 212, 0.1);
    border: 1px solid rgba(0, 188, 212, 0.3);
    color: #00bcd4;
    font-size: 1.5rem;
}
.modern-login-page .addon-group-header h3 {
    font-size: 1.3rem;
    font-weight: 600;
    color: #ffffff;
    margin: 0 0 0.5rem 0;
}
.modern-login-page .addon-group-header p {
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.85);
    line-height: 1.6;
    max-width: 900px;
    margin: 0;
}
@media (max-width: 576px) {
    .modern-login-page .addon-group-header {
        -ms-flex-direction: column;
            flex-direction: column;
        gap: 1rem;
    }
}
.modern-login-page .addon-grid {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: (minmax(0, 1fr))[3];
        grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2rem;
    -ms-flex-align: stretch;
        align-items: stretch;
}
/* Two across before one: three cards at tablet width leave no room for the feature lists. */
@media (max-width: 1200px) {
    .modern-login-page .addon-grid {
        -ms-grid-columns: (minmax(0, 1fr))[2];
            grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.5rem;
    }
}
@media (max-width: 768px) {
    .modern-login-page .addon-grid {
        -ms-grid-columns: 1fr;
            grid-template-columns: 1fr;
    }
}
.modern-login-page .addon-card {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    background: rgba(255, 255, 255, 0.05);
    padding: 2rem;
    border-radius: 16px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    transition: all 0.3s ease;
    -webkit-backdrop-filter: blur(5px);
            backdrop-filter: blur(5px);
    text-align: left;
    position: relative;
}
.modern-login-page .addon-card:hover {
    transform: translateY(-10px);
    background: rgba(255, 255, 255, 0.1);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
    border-color: rgba(0, 188, 212, 0.5);
}
.modern-login-page .addon-card.recommended {
    border-color: #00bcd4;
    border-width: 2px;
    box-shadow: 0 10px 40px rgba(0, 188, 212, 0.2);
}
/* Dialled back from the plan cards above: an add-on must not out-shout the plan it
		   attaches to. */
.modern-login-page .addon-card .pricing-title {
    font-size: 1.35rem;
    margin-bottom: 0.75rem;
}
.modern-login-page .addon-card .pricing-price {
    font-size: 2.4rem;
}
.modern-login-page .addon-card .pricing-description {
    margin-bottom: 1.5rem;
}
.modern-login-page .addon-card .features-list {
    margin-bottom: 1.5rem;
}
.modern-login-page .addon-card .btn {
    margin-top: auto;
    width: 100%;
}
/* The trial is not a paid tier, so it is marked out rather than left to read as a third
	   price point. */
.modern-login-page .addon-card.trial {
    border-color: rgba(32, 201, 151, 0.4);
    background: rgba(32, 201, 151, 0.08);
}
.modern-login-page .addon-card.trial:hover {
    border-color: rgba(32, 201, 151, 0.7);
}
.modern-login-page .addon-card.trial .pricing-price {
    color: #20c997;
}
/* Sits above the trial card's own button, which holds the bottom slot so all three cards
	   line up along the bottom. */
.modern-login-page .addon-cta-note {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: start;
        align-items: flex-start;
    gap: 0.6rem;
    margin-top: auto;
    margin-bottom: 1.5rem;
    padding: 0.9rem 1rem;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.15);
    font-size: 0.85rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.85);
}
.modern-login-page .addon-cta-note i {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    margin-top: 0.2rem;
    color: #20c997;
}
.modern-login-page .addon-badge {
    position: absolute;
    top: -0.75rem;
    right: 1.5rem;
    background-color: #00bcd4;
    color: #ffffff;
    padding: 0.3rem 1rem;
    border-radius: 8px;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
}
.modern-login-page .addon-badge.free {
    background-color: #20c997;
}
.features-page {
	--page-bg-image: url('https://images.unsplash.com/photo-1522071820081-009f0129c71c?q=80&w=2070&auto=format&fit=crop');
	--page-bg-position: center 80%;
}
.modern-login-page .features-grid {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: (1fr)[3];
        grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
}
@media (max-width: 992px) {
    .modern-login-page .features-grid {
        -ms-grid-columns: 1fr;
            grid-template-columns: 1fr;
    }
}
.modern-login-page .features-overview .features-grid {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: (minmax(320px, 1fr))[auto-fit];
        grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 2rem;
}
.modern-login-page .feature-card {
    position: relative;
    overflow: hidden;
    text-align: center;
    padding: 2.5rem 2rem;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 12px;
    transition: transform 0.3s ease, background-color 0.3s ease;
}
.modern-login-page .feature-card:hover {
    transform: translateY(-8px);
    background: rgba(255, 255, 255, 0.1);
}
.modern-login-page .feature-icon {
    font-size: 2.8rem;
    margin-bottom: 1.5rem;
    color: #00bcd4;
}
.modern-login-page .feature-title {
    font-size: 1.3rem;
    font-weight: 600;
    margin: 0 0 0.75rem 0;
    color: #ffffff;
}
.modern-login-page .feature-description {
    font-size: 1rem;
    color: rgba(255, 255, 255, 0.85);
    line-height: 1.7;
    margin: 0;
}
.modern-login-page .final-cta-section {
    text-align: center;
    padding: 4rem 5%;
    background-color: rgba(0, 0, 0, 0.2);
}
.modern-login-page .features-disclaimer {
    text-align: center;
    padding: 2rem 5% 1rem 5%;
    max-width: 800px;
    margin: 0 auto;
    font-size: 0.9rem;
    color: rgba(255, 255, 255, 0.6);
    line-height: 1.6;
}
@media (max-width: 992px) {
    .modern-login-page .section-title {
        font-size: 2rem;
    }
}
.coming-soon-banner {
	position: absolute;
	top: 18px;
	right: -35px;
	background-color: #ffab00;
	color: #000;
	padding: 6px 35px;
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	transform: rotate(45deg);
	box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
	letter-spacing: 0.5px;
	z-index: 10;
}
.modern-login-page .demo-hero {
    padding: 4rem 5% 3rem 5%;
    text-align: center;
}
.modern-login-page .demo-hero .hero-title {
    margin-bottom: 1.5rem;
}
.modern-login-page .demo-hero .hero-subtitle {
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 0;
}
@media (max-width: 576px) {
    .modern-login-page .demo-hero {
        padding: 3rem 5% 2rem 5%;
    }
}
.modern-login-page .demo-section {
    padding: 3rem 5%;
}
@media (max-width: 576px) {
    .modern-login-page .demo-section {
        padding: 2.5rem 5%;
    }
}
.modern-login-page .demo-container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 1rem;
}
.modern-login-page .video-wrapper {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
    border-radius: 16px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
    background-color: #000;
}
.modern-login-page .video-wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
.modern-login-page .section-title {
    font-size: 2.5rem;
    font-weight: 700;
    text-align: center;
    margin-bottom: 1rem;
    color: #ffffff;
}
.modern-login-page .section-subtitle {
    font-size: 1.15rem;
    font-weight: 300;
    text-align: center;
    max-width: 750px;
    margin: 0 auto 3.5rem auto;
    color: rgba(255, 255, 255, 0.85);
    line-height: 1.6;
}
.modern-login-page .form-container {
    max-width: 650px;
    margin: 0 auto;
    background-color: #ffffff;
    color: #333333;
    padding: 3rem;
    border-radius: 12px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
}
@media (max-width: 576px) {
    .modern-login-page .form-container {
        padding: 2rem 1.5rem;
    }
}
.modern-login-page .btn-primary {
    background-color: #00bcd4;
    color: #ffffff;
    box-shadow: 0 4px 15px rgba(0, 188, 212, 0.3);
}
.modern-login-page .btn-primary:hover {
    background-color: #008c9e;
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(0, 188, 212, 0.4);
}
.modern-login-page .btn-primary:disabled {
    background-color: #a0a0a0;
    cursor: not-allowed;
    box-shadow: none;
    transform: none;
}
.modern-login-page .success-message {
    max-width: 650px;
    margin: 0 auto;
    padding: 2.5rem;
    text-align: center;
    background: rgba(32, 201, 151, 0.1);
    border: 1px solid rgba(32, 201, 151, 0.7);
    color: #ffffff;
    border-radius: 12px;
}
.modern-login-page .success-message h4 {
    font-size: 1.8rem;
    font-weight: 700;
    color: #20c997;
    margin: 0 0 1rem 0;
}
.modern-login-page .success-message p {
    font-size: 1.1rem;
    margin: 0;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.9);
}
.modern-modal-backdrop {
	background: rgba(10, 37, 64, 0.65);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
}
.modern-modal-window {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1050;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-align: center;
	    align-items: center;
	-ms-flex-pack: center;
	    justify-content: center;
	pointer-events: none;

}
.modern-modal-window .modal-content {
    margin: 0;
    background-color: #ffffff;
    color: #333333;
    border-radius: 16px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.4);
    border: none;
    overflow: hidden;
    max-width: 500px;
    width: 90%;
    pointer-events: auto;
    transform: translateY(-20px);
    opacity: 0;
    animation: modalFadeIn 0.3s ease-out forwards;
}
@media (max-width: 576px) {
    .modern-modal-window .modal-content {
        width: 95%;
        margin: 1rem;
    }
}
@keyframes modalFadeIn {
	from {
		opacity: 0;
		transform: translateY(-30px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}
.modal-header {
	padding: 1.5rem 2rem;
	border-bottom: 1px solid #e0e6ed;
	position: relative;
	background-color: #f8faff;
}
@media (max-width: 576px) {
    .modal-header {
        padding: 1.2rem 1.5rem;
    }
}
.modal-title {
	font-size: 1.65rem;
	font-weight: 700;
	color: #0a2540;
	margin: 0;
	padding-right: 2rem;
	text-align: center;
}
@media (max-width: 576px) {
    .modal-title {
        font-size: 1.4rem;
    }
}
.close-btn {
	position: absolute;
	top: 1rem;
	right: 1rem;
	font-size: 2.2rem;
	font-weight: 300;
	color: #888888;
	background: none;
	border: none;
	opacity: 0.7;
	cursor: pointer;
	transition: opacity 0.2s ease, color 0.2s ease, transform 0.2s ease;

}
// Added transform 
	.close-btn:hover {
    opacity: 1;
    color: #333333;
    transform: rotate(90deg);
}
@media (max-width: 576px) {
    .close-btn {
        top: 0.8rem;
        right: 0.8rem;
        font-size: 2rem;
    }
}
.modal-body {
	padding: 2.5rem 2rem;

}
.modal-body .form-group {
    margin-bottom: 1.5rem;
}
.modal-body .form-control:focus {
    border-color: #00bcd4;
    box-shadow: 0 0 0 3px rgba(0, 188, 212, 0.25);
}
.modal-body .btn-primary {
    width: 100%;
    padding: 1.1rem;
    font-size: 1.1rem;
    font-weight: 700;
    border-radius: 10px;
    margin-top: 0.5rem;
}
@media (max-width: 576px) {
    .modal-body {
        padding: 1.8rem 1.5rem;
    }
    .modal-body .btn-primary {
        padding: 1rem;
        font-size: 1rem;
    }
}
.modal-subtitle {
	font-size: 1.05rem;
	font-weight: 300;
	text-align: center;
	margin-bottom: 2rem;
	color: #6c757d;
	line-height: 1.6;
}
@media (max-width: 576px) {
    .modal-subtitle {
        font-size: 0.95rem;
    }
}
.modal-success {
	background: rgba(32, 201, 151, 0.08);
	border: 1px solid rgba(32, 201, 151, 0.4);
	border-radius: 10px;
	padding: 1.5rem;
	text-align: center;
	margin-top: 1.5rem;
	color: #333333;
}
.modal-success h4 {
    font-size: 1.6rem;
    font-weight: 700;
    color: #20c997;
    margin: 0 0 0.8rem 0;
}
@media (max-width: 576px) {
    .modal-success h4 {
        font-size: 1.4rem;
    }
}
.modal-success p {
    font-size: 1rem;
    line-height: 1.6;
    color: #555555;
}
.modal-success .fa-check-circle {
    margin-right: 0.75rem;
    color: #20c997;
    font-size: 1.8rem;
    vertical-align: middle;
}
/* Sits above the submit button rather than replacing the form, because the details are still
   filled in and retrying is usually all that is needed. */
.modal-error {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-align: start;
	    align-items: flex-start;
	gap: 0.75rem;
	background: rgba(169, 68, 66, 0.08);
	border: 1px solid rgba(169, 68, 66, 0.4);
	border-radius: 10px;
	padding: 1rem 1.25rem;
	margin-bottom: 1.25rem;
	font-size: 0.9rem;
	line-height: 1.6;
	color: #a94442;
}
.modal-error i {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    margin-top: 0.15rem;
    font-size: 1rem;
}
/* =================================================================== */
/* ! Seat modals (pricing page add-ons)
/*
/* The two modals opened from the AI transcription add-on cards: buying seats, and handing them
/* out. Both share the chrome (.modal-header, .modal-body, .modal-title, .close-btn) with the
/* book-a-demo modal in _website_book_demo.css, and the assign modal reuses the table, avatar and
/* tier selector styling from _transcription-seats.css. Only what is specific to these two lives
/* here.
/* =================================================================== */
/* Both are wider than the shared 500px demo modal: the purchase step carries two tier cards, a
   stepper each and a priced summary, and the assign modal carries a table of the whole practice.
   Capped at the viewport with the body scrolling inside, because both run off a laptop screen. */
.seat-purchase-window .modal-content, .seat-assign-window .modal-content {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    max-height: 90vh;
}
.seat-purchase-window .modal-content {
    max-width: 720px;
}
.seat-assign-window .modal-content {
    max-width: 900px;
}
.seat-purchase-modal {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-direction: column;
	    flex-direction: column;
	min-height: 0;
	position: relative;
}
.seat-purchase-modal .modal-header {
    -ms-flex-negative: 0;
        flex-shrink: 0;
}
/* min-height overrides the min-content floor a flex item gets by default, without which the
	   body refuses to shrink and scrolls the whole page instead of itself. */
.seat-purchase-modal .modal-body {
    min-height: 0;
    overflow-y: auto;
}
/* Every step in here is a server round trip - signing in, pricing, charging a card - so the
	   whole modal is blocked rather than each control disabled one at a time. */
.seat-purchase-modal .seat-purchase-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: center;
        justify-content: center;
    gap: 1rem;
    z-index: 10;
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    color: #0a2540;
    font-weight: 500;
}
.seat-purchase-modal .spinner {
    width: 40px;
    height: 40px;
    border: 4px solid rgba(10, 37, 64, 0.2);
    border-top-color: #00bcd4;
    border-radius: 50%;
    animation: spinner-rotation 0.8s linear infinite;
}
.seat-purchase-modal .seat-purchase-dev-warning {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    gap: 0.25rem;
    padding: 0.75rem 1rem;
    margin-bottom: 1.5rem;
    border-radius: 10px;
    background: rgba(255, 182, 39, 0.1);
    border: 1px solid rgba(255, 182, 39, 0.5);
    font-size: 0.9rem;
    color: #856404;
}
.seat-purchase-modal .seat-purchase-dev-warning strong {
    letter-spacing: 0.05em;
}
.seat-purchase-modal .seat-purchase-footnote {
    margin: 1.5rem 0 0 0;
    text-align: center;
    font-size: 0.9rem;
    color: #6c757d;
}
.seat-purchase-modal .seat-purchase-footnote a {
    color: #0097a7;
    cursor: pointer;
    font-weight: 600;
}
/* Two-factor code boxes
	/* -------------------------------------------------------------- */
.seat-purchase-modal .seat-code-inputs {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
        justify-content: center;
    gap: 0.6rem;
    margin: 1.5rem 0 0.5rem 0;
}
.seat-purchase-modal .seat-code-inputs .form-control {
    width: 48px;
    height: 56px;
    padding: 0;
    text-align: center;
    font-size: 1.6rem;
    font-weight: 700;
    color: #0a2540;
}
@media (max-width: 576px) {
    .seat-purchase-modal .seat-code-inputs {
        gap: 0.35rem;
    }
    .seat-purchase-modal .seat-code-inputs .form-control {
        width: 40px;
        height: 48px;
        font-size: 1.3rem;
    }
}
/* Practice picker
	/* -------------------------------------------------------------- */
.seat-purchase-modal .seat-practice-list {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    gap: 0.75rem;
}
/* -------------------------------------------------------------- */
.seat-purchase-modal .seat-practice-option {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: justify;
        justify-content: space-between;
    gap: 1rem;
    width: 100%;
    padding: 1rem 1.25rem;
    text-align: left;
    background: #f8faff;
    border: 1px solid #e0e6ed;
    border-radius: 10px;
    color: #333333;
    cursor: pointer;
    transition: border-color 0.2s ease, background 0.2s ease;
}
.seat-purchase-modal .seat-practice-option:hover:not([disabled]) {
    border-color: #00bcd4;
    background: rgba(0, 188, 212, 0.05);
}
/* The one already loaded, so switching away and back is not a guess. */
.seat-purchase-modal .seat-practice-option.current {
    border-color: #00bcd4;
    background: rgba(0, 188, 212, 0.05);
}
.seat-purchase-modal .seat-practice-option .seat-practice-name {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    font-weight: 600;
}
.seat-purchase-modal .seat-practice-option .seat-practice-current {
    font-size: 0.75rem;
    font-weight: 400;
    color: #0097a7;
}
.seat-purchase-modal .seat-practice-option i {
    color: #00bcd4;
}
/* Names the practice being worked on, and carries the way to swap to another. Sits at the top
	   of both modals: a group setting up several needs to see which one it is on before it reads
	   anything below. */
.seat-purchase-modal .seat-practice-bar {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: justify;
        justify-content: space-between;
    gap: 1rem;
    padding: 0.75rem 1rem;
    margin-bottom: 1.25rem;
    border-radius: 10px;
    background: rgba(10, 37, 64, 0.05);
    border: 1px solid #e0e6ed;
}
.seat-purchase-modal .seat-practice-bar .btn {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    margin: 0;
    padding: 0.4rem 0.9rem;
    font-size: 0.75rem;
    width: auto;
}
@media (max-width: 576px) {
    .seat-purchase-modal .seat-practice-bar {
        -ms-flex-direction: column;
            flex-direction: column;
        -ms-flex-align: start;
            align-items: flex-start;
        gap: 0.6rem;
    }
}
/* -------------------------------------------------------------- */
.seat-purchase-modal .seat-practice-bar-label {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 0.6rem;
    min-width: 0;
    font-size: 0.9rem;
    color: #6c757d;
}
.seat-purchase-modal .seat-practice-bar-label strong {
    color: #0a2540;
}
.seat-purchase-modal .seat-practice-bar-label i {
    color: #0035d2;
}
/* Buying
	/* -------------------------------------------------------------- */
.seat-purchase-modal .seat-purchase-loading {
    padding: 2.5rem 0;
    text-align: center;
    color: #6c757d;
}
.seat-purchase-modal .seat-purchase-loading i {
    margin-right: 0.5rem;
    color: #00bcd4;
}
/* -------------------------------------------------------------- */
.seat-purchase-modal .seat-purchase-tiers {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: (minmax(0, 1fr))[2];
        grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1.5rem;
}
@media (max-width: 576px) {
    .seat-purchase-modal .seat-purchase-tiers {
        -ms-grid-columns: 1fr;
            grid-template-columns: 1fr;
    }
}
/* The tier whose button was clicked on the pricing page, so the visitor can see that the
	   modal opened on the seat they actually asked for. */
.seat-purchase-modal .seat-purchase-tier {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    gap: 0.6rem;
    padding: 1.25rem;
    border: 1px solid #e0e6ed;
    border-radius: 10px;
    background: #ffffff;
}
.seat-purchase-modal .seat-purchase-tier.selected {
    border-color: #00bcd4;
    box-shadow: 0 0 0 3px rgba(0, 188, 212, 0.1);
}
.seat-purchase-modal .seat-purchase-tier-head {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: baseline;
        align-items: baseline;
    -ms-flex-pack: justify;
        justify-content: space-between;
    gap: 0.5rem;
}
.seat-purchase-modal .seat-purchase-tier-head h4 {
    margin: 0;
    font-size: 1.1rem;
    font-weight: 700;
    color: #0a2540;
}
.seat-purchase-modal .seat-purchase-tier-price {
    font-size: 1.15rem;
    font-weight: 700;
    color: #0035d2;
    white-space: nowrap;
}
.seat-purchase-modal .seat-purchase-tier-price small {
    display: block;
    font-size: 0.7rem;
    font-weight: 400;
    color: #6c757d;
    text-align: right;
}
.seat-purchase-modal .seat-purchase-tier-included {
    margin: 0;
    font-size: 0.9rem;
    color: #555555;
}
.seat-purchase-modal .seat-purchase-tier-state {
    font-size: 0.8rem;
    color: #6c757d;
}
/* Priced summary. Every figure in here comes back from the server.
	/* -------------------------------------------------------------- */
.seat-purchase-modal .seat-purchase-summary {
    padding: 1.25rem;
    margin-bottom: 1.25rem;
    border-radius: 10px;
    background: #f8faff;
    border: 1px solid #e0e6ed;
}
/* -------------------------------------------------------------- */
.seat-purchase-modal .seat-purchase-summary-loading, .seat-purchase-modal .seat-purchase-summary-empty {
    text-align: center;
    font-size: 0.9rem;
    color: #6c757d;
}
.seat-purchase-modal .seat-purchase-summary-loading i, .seat-purchase-modal .seat-purchase-summary-empty i {
    margin-right: 0.4rem;
    color: #00bcd4;
}
.seat-purchase-modal .seat-purchase-line {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: start;
        align-items: flex-start;
    -ms-flex-pack: justify;
        justify-content: space-between;
    gap: 1rem;
    padding: 0.4rem 0;
    font-size: 0.9rem;
    color: #555555;
}
.seat-purchase-modal .seat-purchase-line small {
    display: block;
    font-size: 0.75rem;
    color: #6c757d;
}
.seat-purchase-modal .seat-purchase-line strong {
    white-space: nowrap;
    color: #0a2540;
}
.seat-purchase-modal .seat-purchase-line.total {
    margin-top: 0.4rem;
    padding-top: 0.75rem;
    border-top: 1px solid #e0e6ed;
    font-size: 1rem;
    font-weight: 600;
    color: #0a2540;
}
.seat-purchase-modal .seat-purchase-line.due {
    margin-top: 0.5rem;
    padding: 0.75rem;
    border-radius: 8px;
    background: rgba(0, 188, 212, 0.1);
}
.seat-purchase-modal .seat-purchase-line.due strong {
    color: #0097a7;
}
.seat-purchase-modal .seat-purchase-next {
    margin: 0.75rem 0 0 0;
    font-size: 0.8rem;
    color: #6c757d;
}
.seat-purchase-modal .seat-purchase-cards {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    gap: 0.6rem;
    margin-bottom: 1.25rem;
}
.seat-purchase-modal .seat-purchase-card {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 0.9rem;
    padding: 0.8rem 1rem;
    border: 1px solid #e0e6ed;
    border-radius: 10px;
    background: #ffffff;
    font-size: 0.9rem;
    color: #6c757d;
}
.seat-purchase-modal .seat-purchase-card > i {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    font-size: 1.1rem;
    color: #0035d2;
}
.seat-purchase-modal .seat-purchase-card .btn {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    margin: 0;
    padding: 0.4rem 0.9rem;
    font-size: 0.75rem;
    width: auto;
}
@media (max-width: 576px) {
    .seat-purchase-modal .seat-purchase-card {
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
    }
}
/* The label and the card itself stack, and take whatever width is left once the icon and the
	   change button have had theirs. */
.seat-purchase-modal .seat-purchase-card-detail {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    -ms-flex: 1 1 auto;
        flex: 1 1 auto;
    min-width: 0;
}
.seat-purchase-modal .seat-purchase-card-detail strong {
    color: #0a2540;
}
.seat-purchase-modal .seat-purchase-note {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 0.75rem;
    padding: 0.9rem 1.1rem;
    margin-bottom: 1.25rem;
    border-radius: 10px;
    font-size: 0.9rem;
    line-height: 1.6;
}
.seat-purchase-modal .seat-purchase-note i {
    -ms-flex-negative: 0;
        flex-shrink: 0;
}
.seat-purchase-modal .seat-purchase-note .btn {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    margin: 0;
    padding: 0.4rem 0.9rem;
    font-size: 0.75rem;
    width: auto;
}
.seat-purchase-modal .seat-purchase-note.info {
    background: rgba(10, 37, 64, 0.05);
    border: 1px solid #e0e6ed;
    color: #555555;
}
.seat-purchase-modal .seat-purchase-note.info i {
    color: #0035d2;
}
.seat-purchase-modal .seat-purchase-note.warning {
    background: rgba(255, 182, 39, 0.1);
    border: 1px solid rgba(255, 182, 39, 0.5);
    color: #856404;
}
.seat-purchase-modal .seat-purchase-note.success {
    background: rgba(32, 201, 151, 0.08);
    border: 1px solid rgba(32, 201, 151, 0.4);
    color: #333333;
}
.seat-purchase-modal .seat-purchase-note.success i {
    color: #20c997;
}
.seat-purchase-modal .seat-purchase-validation {
    margin-bottom: 1rem;
    font-size: 0.9rem;
    color: #a94442;
}
.seat-purchase-modal .seat-purchase-validation i {
    margin-right: 0.4rem;
}
.seat-purchase-modal .seat-purchase-stripe {
    padding: 1rem;
    margin-bottom: 1.25rem;
    border: 1px solid #e0e6ed;
    border-radius: 10px;
    background: #ffffff;
}
/* .modal-body in _website_book_demo.css sizes the primary CTA, but its colour is declared
	   inside .modern-login-page - and a modal appended to the body sits outside that. Restated
	   here so the CTA matches the pricing page it was clicked from. */
.seat-purchase-modal .btn-primary {
    background-color: #00bcd4;
    color: #ffffff;
    border: none;
    box-shadow: 0 4px 15px rgba(0, 188, 212, 0.3);
}
.seat-purchase-modal .btn-primary:hover:not([disabled]) {
    background-color: #008c9e;
    box-shadow: 0 6px 20px rgba(0, 188, 212, 0.4);
}
.seat-purchase-modal .btn-primary[disabled] {
    background-color: #a0a0a0;
    box-shadow: none;
    cursor: not-allowed;
}
/* Buttons
	/* -------------------------------------------------------------- */
.seat-purchase-modal .btn-outline-cyan {
    background: transparent;
    border: 1px solid #00bcd4;
    color: #0097a7;
    font-weight: 600;
}
.seat-purchase-modal .btn-outline-cyan:hover {
    background: #00bcd4;
    color: #ffffff;
}
/* -------------------------------------------------------------- */
.seat-purchase-modal .btn-plain {
    display: block;
    width: 100%;
    margin-top: 0.75rem;
    padding: 0.9rem;
    background: transparent;
    border: 1px solid #c0cde0;
    border-radius: 10px;
    color: #6c757d;
    font-weight: 600;
}
.seat-purchase-modal .btn-plain:hover {
    border-color: #6c757d;
    color: #333333;
}
/* =================================================================== */
/* ! Assign seats modal
/* =================================================================== */
/* The count sits hard right of the search box. The app's copy of this toolbar uses Angular
	   Material's flex attribute for the gap, which has no place in a plain Bootstrap modal. */
.seat-assign-modal .seat-table-toolbar {
    -ms-flex-pack: justify;
        justify-content: space-between;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
}
/* The table is the tall part, so it scrolls inside itself rather than pushing the actions
	   below the fold on a practice with a long staff list. */
.seat-assign-modal .seat-table-wrapper {
    max-height: 42vh;
    overflow-y: auto;
}
.seat-assign-modal .seat-assign-actions {
    margin-top: 1.5rem;
}
.seat-assign-modal .seat-assign-actions .btn-plain {
    margin-top: 0.75rem;
}
@media (max-width: 576px) {
    .seat-assign-modal .seat-search {
        width: 100%;
    }
}
.modern-login-page .page-header {
    background-color: rgba(36, 62, 87, 0.9);
    padding: 0.75rem 5%;
    padding-top: 0.5rem;
    margin-top: 0rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.15);
    -webkit-backdrop-filter: blur(8px);
            backdrop-filter: blur(8px);
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    z-index: 1000;
    width: 100%;
    box-sizing: border-box;
}
.modern-login-page .header-container {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: justify;
        justify-content: space-between;
    -ms-flex-align: center;
        align-items: center;
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
}
.modern-login-page .nav-logo {
    height: 50px;
    width: auto;
    filter: drop-shadow(0 1px 4px rgba(0, 0, 0, 0.3));
    vertical-align: middle;
}
.modern-login-page .main-nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    gap: 1rem;
}
.modern-login-page .nav-link {
    background-color: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    color: #ffffff;
    font-size: 1rem;
    font-weight: 500;
    text-decoration: none;
    padding: 0.6rem 1.2rem;
    border-radius: 8px;
    transition: all 0.2s ease-in-out;
    cursor: pointer;
}
.modern-login-page .nav-link:hover {
    background-color: rgba(255, 255, 255, 0.2);
    border-color: rgba(255, 255, 255, 0.5);
    transform: translateY(-2px);
}
.modern-login-page .btn-nav-demo {
    background-color: #ffab00;
    color: #0a2540;
    padding: 0.8rem 1.8rem;
    font-size: 1.15rem;
    font-weight: 700;
    border-radius: 10px;
    border: none;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    text-decoration: none;
    display: inline-block;
    max-width: 25rem;
}
.modern-login-page .btn-nav-demo:hover {
    background-color: #FFB627;
    transform: translateY(-2px);
    box-shadow: 0 3px 20px #FFB627;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl92YXJpYWJsZXMuY3NzIiwiX2ZvbnRzLmNzcyIsIl91dGlsLmNzcyIsIl9idXR0b25zLmNzcyIsIl9uYXYuY3NzIiwiX3dlbGNvbWUuY3NzIiwiX3JlZmVyLmNzcyIsIl9zZWFyY2guY3NzIiwiX21vZGFsLmNzcyIsIl9mb3Jtcy5jc3MiLCJfcG9wb3Zlci5jc3MiLCJfY29tcGxldGUtcmVmZXJyYWwuY3NzIiwiX2V4YW0uY3NzIiwiX3Rlcm1zLmNzcyIsIl9wcmUtb3AuY3NzIiwiX29wZXJhdGlvbi1ub3RlLmNzcyIsIl91aS1zZWxlY3QuY3NzIiwiX3ByZW1pdW0tbGVucy5jc3MiLCJfYW5pbWF0aW9uLmNzcyIsIl9haS1hZ2VudC5jc3MiLCJfcmljaHRleHQuY3NzIiwiX3BheW1lbnRzLmNzcyIsIl90cmFuc2NyaXB0aW9uLXNlYXRzLmNzcyIsIl9zZXR0aW5ncy5jc3MiLCJfdGlwcy5jc3MiLCJfZWNsaXBzZS1jbGFpbS5jc3MiLCJfcGRmLXZpZXdlci5jc3MiLCJfd2Vic2l0ZV9sYW5kaW5nX3BhZ2UuY3NzIiwiX3dlYnNpdGVfbG9naW5fcGFuZWwuY3NzIiwiX3dlYnNpdGVfYWJvdXRfdXMuY3NzIiwiX3dlYnNpdGVfcHJpY2luZy5jc3MiLCJfd2Vic2l0ZV9mZWF0dXJlcy5jc3MiLCJfd2Vic2l0ZV9ib29rX2RlbW8uY3NzIiwiX3dlYnNpdGVfc2VhdF9wdXJjaGFzZS5jc3MiLCJfd2Vic2l0ZV9uYXZfYmFyLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx5RUFBeUU7QUFDekU7eUVBQ3lFO0FBTXBELG9EQUFvRDtBQUd6RSx5RUFBeUU7QUFDekU7eUVBQ3lFO0FBQ3pFLDBCQUEwQjtBQU1KLG9EQUFvRDtBQUMxRSxxQ0FBcUM7QUFHckMsbUNBQW1DO0FBRW5DLDJCQUEyQjtBQUczQix3QkFBd0I7QUFDTiwyQkFBMkI7QUFDckIsMkJBQTJCO0FBSW5ELHlFQUF5RTtBQUN6RTt5RUFDeUU7QUFDekUsVUFBVTtBQUNXLHVDQUF1QztB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MkJBQTJCO0lBQzNCLHlCQUFpQjtJQUFqQixpQkFBaUI7SUFDakIsT0FBTztJQUNQLGNBQWM7SUFDZCxZQUFZO0lBQ1osdUJBQXVCO0NBQ3ZCO0FBRUQ7SUFDQyxxQkFBYztJQUFkLGNBQWM7SUFDZCx1QkFBK0I7UUFBL0IsK0JBQStCO0lBQy9CLHVCQUFvQjtRQUFwQixvQkFBb0I7SUFDcEIsWUFBWTtJQUNaLGtCQUFrQjtJQUNsQixlQUFlO0NBQ2Y7QUFFRDtJQUNDLGFBQWE7SUFDYixZQUFZO0lBQ1osa0RBQTRDO0lBQzVDLHVCQUF1QjtDQUN2QjtBQUVEO0lBQ0MsaUJBQWlCO0lBQ2pCLFVBQVU7SUFDVixXQUFXO0lBQ1gscUJBQWM7SUFBZCxjQUFjO0lBQ2QsdUJBQW9CO1FBQXBCLG9CQUFvQjtJQUNwQixVQUFVO0NBQ1Y7QUFFRDtJQUNDLDJDQUErQjtJQUMvQiwyQ0FBK0I7SUFDL0IsMkJBQTJCO0lBQzNCLG1DQUFtQztJQUNuQyxlQUFjO0lBQ2QsZ0JBQTJCO0lBQzNCLGlCQUFpQztJQUNqQyxzQkFBc0I7SUFDdEIsdUJBQXVCO0lBQ3ZCLG1CQUFpQztJQUNqQyxpQ0FBaUM7SUFDakMsZ0JBQWdCO0NBT2hCO0FBTEE7SUFDQywyQ0FBK0I7SUFDL0IsdUNBQTJCO0lBQzNCLDRCQUE0QjtDQUM1QjtBQUdGO0lBQ0MsMEJBQThCO0lBQzlCLGVBQXVCO0lBQ3ZCLHVCQUF1QjtJQUN2QixtQkFBbUI7SUFDbkIsaUJBQStCO0lBQy9CLG9CQUFpQztJQUNqQyxhQUFhO0lBQ2IsZ0JBQWdCO0lBQ2hCLDBCQUEwQjtJQUMxQiwwQ0FBb0M7SUFDcEMsc0JBQXNCO0lBQ3RCLHNCQUFzQjtJQUN0QixpQkFBaUI7Q0FPakI7QUFMQTtJQUNDLDBCQUEwQjtJQUMxQiw0QkFBNEI7SUFDNUIsK0JBQStCO0NBQy9CIiwiZmlsZSI6InN0eWxlLTE3ODgxNDY0NTU1MzYuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogISBDb3JlIEJyYW5kIFBhbGV0dGVcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuJHdoaXRlOiAjZmZmZmZmO1xuJGJsYWNrOiAjMDAwO1xuJG5hdnk6ICMwMDM1ZDI7XG4kZGFya05hdnk6ICMyYTMwN2Y7XG4kbmF2eS1wYWxlOiAjZTdmMGZmOyAvKiBQYWxlIG5hdnkgdGludCAtIHNldHRpbmdzIGhlYWRpbmdzLCBpY29uIGNoaXBzICovXG4kcHVycGxlOiAjOGI1NmEzO1xuJGJsdWU6ICMyMDcyYmI7XG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiAhIFRoZW1lIENvbG9yc1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogUHJpbWFyeSBBY3Rpb24gQ29sb3IgKi9cbiRjeWFuOiAjMDBiY2Q0O1xuJGN5YW4tZGFyazogIzAwOTdhNztcbiRjeWFuLWRhcmtlcjogIzAwOGM5ZTtcbiRjeWFuLWRhcmtlc3Q6ICMwMGE1Yjg7XG4kY3lhbi1saWdodDogIzIzZTJmODtcbiR5ZWxsb3ctY3RhOiAjZmZhYjAwOyAvKiBVc2VkIGZvciAnQ29taW5nIFNvb24nIGJhbm5lciBhbmQgQ1RBIGJ1dHRvbnMuICovXG4vKiBTdWNjZXNzIC8gU2Vjb25kYXJ5IFRoZW1lIENvbG9yICovXG4kZ3JlZW46ICMyMGM5OTc7XG4kZ3JlZW4tc3VjY2Vzcy1hbHQ6ICM1Y2I4NWM7XG4vKiBBY2NlbnQgLyBUZXJ0aWFyeSBUaGVtZSBDb2xvciAqL1xuJHllbGxvdzogI0ZGQjYyNztcbi8qIERhbmdlciAvIEVycm9yIENvbG9ycyAqL1xuJGRhbmdlcjogI2E5NDQ0MjtcbiRyZWQtZGFuZ2VyLWFsdDogI2Q5NTM0Zjtcbi8qIFNwZWNpZmljIFVJIENvbG9ycyAqL1xuJG9yYW5nZTogI2Q4N2Q0YTsgLyogRm9yIEFkbWluIG5vdGUgYm9yZGVyICovXG4kZm9yZXN0LWdyZWVuOiAjMmU3ZDMyOyAvKiBGb3IgTnVyc2Ugbm90ZSBib3JkZXIgKi9cbiR0ZWFsOiAjMDA3OTZiO1xuJGxhdmVuZGVyOiAjYTI5YmZlO1xuJHB1cnBsZTogIzlDMjdCMDtcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qICEgR3JleXMgJiBOZXV0cmFsc1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogVGV4dCAqL1xuJHRleHQtZGFyazogIzMzMzMzMzsgLyogUHJpbWFyeSB0ZXh0IG9uIGxpZ2h0IGJhY2tncm91bmRzICovXG4kdGV4dEdyZXk6ICMzNDNhNDA7XG4kdGV4dC1tdXRlZDogIzZjNzU3ZDsgLyogU3VidGl0bGVzIGFuZCBoZWxwZXIgdGV4dCAqL1xuJHRleHQtbGlnaHQ6ICM1NTU1NTU7IC8qIE1vZGFsIGJvZHkgdGV4dCAqL1xuJHRleHQtY2xvc2UtYnRuOiAjODg4ODg4O1xuJGxvZ291dEdyZXk6ICM0MDQxNDE7XG4vKiBCb3JkZXJzICYgVUkgKi9cbiRsaW5lQnJlYWs6ICNiY2NhZDI7XG4kY2FuY2VsQm9yZGVyOiAjYmRiZWMxO1xuJGdyZXktYm9yZGVyLWxpZ2h0OiAjZTBlNmVkOyAvKiBGb3JtIGNvbnRyb2wgYm9yZGVycyAqL1xuJGdyZXktYm9yZGVyLW1lZGl1bTogI2MwY2RlMDsgLyogYnRuLWxvc3QgYm9yZGVyICovXG4kbmF2R3JleTogI2U3ZTllOTsgLyogTmF2aWdhdGlvbiBjb21wb25lbnQgKi9cbi8qIEJhY2tncm91bmRzICovXG4kcGFnZUJhY2tHcm91bmQ6ICNlYmVjZWE7XG4kZGFzaGJvYXJkQmFja2dyb3VuZDogI2YwZjJmNTtcbiRwYWxlQmx1ZTogI2YyZjZmYjsgLyogQWx0ZXJuYXRlIHRhYmxlIGNvbG9yICovXG4kbGlnaHRHcmV5OiAjZjhmOWZhO1xuJGdyZXktbW9kYWwtaGVhZGVyOiAjZjhmYWZmO1xuJGdyZXktZGlzYWJsZWQ6ICNhMGEwYTA7IC8qIERpc2FibGVkIGJ1dHRvbiBiYWNrZ3JvdW5kICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiAhIERhcmsgVGhlbWUgKE5hdnkpXG4vKiBVc2VkIGZvciB3ZWJzaXRlIGxhbmRpbmcgcGFnZXNcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbiRuYXZ5LWRhcmstdGV4dDogIzBhMjU0MDsgLyogTW9kYWwgdGl0bGVzLCBwcm9jZXNzaW5nIHRleHQgKi9cbiRuYXZ5LWJnLWdyYWRpZW50LWRhcms6IHJnYmEoMTAsIDM3LCA2NCwgMC45NSk7XG4kbmF2eS1iZy1ncmFkaWVudC1saWdodDogcmdiYSgxMCwgMzcsIDY0LCAwLjg1KTtcbiRuYXZ5LWJhY2tkcm9wOiByZ2JhKDEwLCAzNywgNjQsIDAuNjUpOyAvKiBNb2RhbCBiYWNrZHJvcCAqL1xuJG5hdnktaGVhZGVyLWJnOiByZ2JhKDM2LCA2MiwgODcsIDAuOSk7IC8qIFN0aWNreSBoZWFkZXIgKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qICEgVHJhbnNwYXJlbnQgV2hpdGVzXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4kd2hpdGUtdHAtMDU6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7IC8qIENhcmQgYmFja2dyb3VuZHMgKi9cbiR3aGl0ZS10cC0xMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuJHdoaXRlLXRwLTE1OiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xuJHdoaXRlLXRwLTIwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7IC8qIEJvcmRlcnMgKi9cbiR3aGl0ZS10cC00MDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xuJHdoaXRlLXRwLTUwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4kd2hpdGUtdHAtNjA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcbiR3aGl0ZS10cC03MDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xuJHdoaXRlLXRwLTc1OiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzUpO1xuJHdoaXRlLXRwLTgwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG4kd2hpdGUtdHAtODU6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSk7IC8qIEJvZHkgdGV4dCBvbiBkYXJrIGJnICovXG4kd2hpdGUtdHAtOTA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbiR3aGl0ZS10cC05NTogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTtcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qICEgVHJhbnNwYXJlbnQgQmxhY2tzXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4kYmxhY2stdHAtMTA6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiRibGFjay10cC0xNTogcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiRibGFjay10cC0yMDogcmdiYSgwLCAwLCAwLCAwLjIpO1xuJGJsYWNrLXRwLTMwOiByZ2JhKDAsIDAsIDAsIDAuMyk7XG4kYmxhY2stdHAtNDA6IHJnYmEoMCwgMCwgMCwgMC40KTtcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qICEgVHJhbnNwYXJlbnQgVGhlbWUgQ29sb3JzXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBDeWFuIFRpbnRzICovXG4kY3lhbi10cC0wNTogcmdiYSgwLCAxODgsIDIxMiwgMC4wNSk7XG4kY3lhbi10cC0xMDogcmdiYSgwLCAxODgsIDIxMiwgMC4xKTtcbiRjeWFuLXRwLTIwOiByZ2JhKDAsIDE4OCwgMjEyLCAwLjIpO1xuJGN5YW4tdHAtMjU6IHJnYmEoMCwgMTg4LCAyMTIsIDAuMjUpOyAvKiBGb3JtIGZvY3VzIHNoYWRvdyAqL1xuJGN5YW4tdHAtMzA6IHJnYmEoMCwgMTg4LCAyMTIsIDAuMyk7XG4kY3lhbi10cC00MDogcmdiYSgwLCAxODgsIDIxMiwgMC40KTtcbiRjeWFuLXRwLTUwOiByZ2JhKDAsIDE4OCwgMjEyLCAwLjUpO1xuLyogR3JlZW4gVGludHMgKi9cbiRncmVlbi10cC0wODogcmdiYSgzMiwgMjAxLCAxNTEsIDAuMDgpO1xuJGdyZWVuLXRwLTEwOiByZ2JhKDMyLCAyMDEsIDE1MSwgMC4xKTtcbiRncmVlbi10cC0yMDogcmdiYSgzMiwgMjAxLCAxNTEsIDAuMik7XG4kZ3JlZW4tdHAtMzA6IHJnYmEoMzIsIDIwMSwgMTUxLCAwLjMpO1xuJGdyZWVuLXRwLTQwOiByZ2JhKDMyLCAyMDEsIDE1MSwgMC40KTtcbiRncmVlbi10cC01MDogcmdiYSgzMiwgMjAxLCAxNTEsIDAuNSk7XG4kZ3JlZW4tdHAtNzA6IHJnYmEoMzIsIDIwMSwgMTUxLCAwLjcpO1xuLyogWWVsbG93IFRpbnRzICovXG4keWVsbG93LXRwLTEwOiByZ2JhKDI1NSwgMTgyLCAzOSwgMC4xKTtcbiR5ZWxsb3ctdHAtMjA6IHJnYmEoMjU1LCAxODIsIDM5LCAwLjIpO1xuJHllbGxvdy10cC0zMDogcmdiYSgyNTUsIDE4MiwgMzksIDAuMyk7XG4keWVsbG93LXRwLTUwOiByZ2JhKDI1NSwgMTgyLCAzOSwgMC41KTtcbi8qIE5hdnkgVGludHMgKi9cbiRuYXZ5LXRwLTA1OiByZ2JhKDEwLCAzNywgNjQsIDAuMDUpO1xuJG5hdnktdHAtMTA6IHJnYmEoMTAsIDM3LCA2NCwgMC4xKTtcbiRuYXZ5LXRwLTIwOiByZ2JhKDEwLCAzNywgNjQsIDAuMik7XG4vKiBMYXZlbmRlciBUaW50cyAqL1xuJGxhdmVuZGVyLXRwLTA1OiByZ2JhKDE2MiwgMTU1LCAyNTQsIDAuMDUpO1xuJGxhdmVuZGVyLXRwLTEwOiByZ2JhKDE2MiwgMTU1LCAyNTQsIDAuMSk7XG4kbGF2ZW5kZXItdHAtMjA6IHJnYmEoMTYyLCAxNTUsIDI1NCwgMC4yKTtcbiRsYXZlbmRlci10cC0zMDogcmdiYSgxNjIsIDE1NSwgMjU0LCAwLjMpO1xuJGxhdmVuZGVyLXRwLTQwOiByZ2JhKDE2MiwgMTU1LCAyNTQsIDAuNCk7XG4kbGF2ZW5kZXItdHAtNTA6IHJnYmEoMTYyLCAxNTUsIDI1NCwgMC41KTtcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qICEgV2FybmluZyBDYWxsb3V0XG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4kd2FybmluZy10ZXh0OiAjODU2NDA0O1xuJHdhcm5pbmctYmc6IHJnYmEoMjU1LCAyNDMsIDIwNSwgMC45KTtcbiR3YXJuaW5nLWJvcmRlcjogcmdiYSgyNTUsIDE5MywgNywgMC43KTtcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qICEgVHlwb2dyYXBoeVxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogRm9udCBGYW1pbHkgKi9cbiRmb250LWZhbWlseS1zYW5zLXNlcmlmOiBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XG4vKiBGb250IFdlaWdodHMgKi9cbiRmb250LXdlaWdodC1saWdodDogMzAwO1xuJGZvbnQtd2VpZ2h0LW5vcm1hbDogNDAwO1xuJGZvbnQtd2VpZ2h0LW1lZGl1bTogNTAwO1xuJGZvbnQtd2VpZ2h0LXNlbWlib2xkOiA2MDA7XG4kZm9udC13ZWlnaHQtYm9sZDogNzAwO1xuLyogRm9udCBTaXplcyAqL1xuJGZvbnQtc2l6ZS1zbTogMC45cmVtO1xuJGZvbnQtc2l6ZS1iYXNlOiAxcmVtO1xuJGZvbnQtc2l6ZS1sZzogMS4zcmVtO1xuJGZvbnQtc2l6ZS14bDogMS44cmVtO1xuJGZvbnQtc2l6ZS14eGw6IDIuNXJlbTtcbiRmb250LXNpemUteHh4bDogMy4ycmVtO1xuLyogTGluZSBIZWlnaHRzICovXG4kbGluZS1oZWlnaHQtYmFzZTogMS42O1xuJGxpbmUtaGVpZ2h0LWhlYWRpbmc6IDEuMjtcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qICEgU2l6aW5nICYgTGF5b3V0XG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4kc2VjdGlvbi1wYWRkaW5nLXg6IDUlO1xuLyogQm9yZGVyIFJhZGl1cyAqL1xuJGJvcmRlci1yYWRpdXMtc206IDhweDtcbiRib3JkZXItcmFkaXVzLW1kOiAxMHB4O1xuJGJvcmRlci1yYWRpdXMtbGc6IDEycHg7XG4kYm9yZGVyLXJhZGl1cy14bDogMTZweDtcbiRib3JkZXItcmFkaXVzLWNpcmNsZTogNTAlO1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogISBTaGFkb3dzXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4kc2hhZG93LXNtOiAwIDRweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiRzaGFkb3ctbWQ6IDAgNnB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiRzaGFkb3ctbGc6IDAgMTBweCAzMHB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiRzaGFkb3ctY3lhbi1zbTogMCA0cHggMTVweCByZ2JhKDAsIDE4OCwgMjEyLCAwLjMpO1xuJHNoYWRvdy1jeWFuLW1kOiAwIDZweCAyMHB4IHJnYmEoMCwgMTg4LCAyMTIsIDAuNCk7XG4iLCJAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ0dvcmRpdGEgSGVhdnkgSXRhbGljJztcbiAgICBzcmM6IHVybCgnLi9mb250cy9nb3JkaXRhYmxhY2tpdGFsaWMtd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCcuL2ZvbnRzL2dvcmRpdGFibGFja2l0YWxpYy13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCcuL2ZvbnRzL2dvcmRpdGFibGFja2l0YWxpYy13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbiAgICBmb250LXdlaWdodDogOTAwO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLmZvbnQtaGVhdnktaXRhbGljIHtcbiAgICBmb250LWZhbWlseTogJ0dvcmRpdGEgSGVhdnkgSXRhbGljJztcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdHb3JkaXRhIEhlYXZ5JztcbiAgICBzcmM6IHVybCgnLi9mb250cy9nb3JkaXRhYmxhY2std2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCcuL2ZvbnRzL2dvcmRpdGFibGFjay13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCcuL2ZvbnRzL2dvcmRpdGFibGFjay13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbiAgICBmb250LXdlaWdodDogOTAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuLmZvbnQtaGVhdnkge1xuICAgIGZvbnQtZmFtaWx5OiAnR29yZGl0YSBIZWF2eSc7XG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnR29yZGl0YSBCb2xkIEl0YWxpYyc7XG4gICAgc3JjOiB1cmwoJy4vZm9udHMvZ29yZGl0YWJvbGRpdGFsaWMtd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCcuL2ZvbnRzL2dvcmRpdGFib2xkaXRhbGljLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJy4vZm9udHMvZ29yZGl0YWJvbGRpdGFsaWMtd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi5mb250LWJvbGQtaXRhbGljIHtcbiAgICBmb250LWZhbWlseTogJ0dvcmRpdGEgQm9sZCBJdGFsaWMnO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ0dvcmRpdGEgQm9sZCc7XG4gICAgc3JjOiB1cmwoJy4vZm9udHMvZ29yZGl0YWJvbGQtd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCcuL2ZvbnRzL2dvcmRpdGFib2xkLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJy4vZm9udHMvZ29yZGl0YWJvbGQtd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbi5mb250LWJvbGQge1xuICAgIGZvbnQtZmFtaWx5OiAnR29yZGl0YSBCb2xkJztcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdHb3JkaXRhIE1lZGl1bSBJdGFsaWMnO1xuICAgIHNyYzogdXJsKCcuL2ZvbnRzL2dvcmRpdGFtZWRpdW1pdGFsaWMtd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCcuL2ZvbnRzL2dvcmRpdGFtZWRpdW1pdGFsaWMtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnLi9mb250cy9nb3JkaXRhbWVkaXVtaXRhbGljLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4uZm9udC1tZWRpdW0taXRhbGljIHtcbiAgICBmb250LWZhbWlseTogJ0dvcmRpdGEgTWVkaXVtIEl0YWxpYyc7XG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnR29yZGl0YSBNZWRpdW0nO1xuICAgIHNyYzogdXJsKCcuL2ZvbnRzL2dvcmRpdGFtZWRpdW0td2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwgdXJsKCcuL2ZvbnRzL2dvcmRpdGFtZWRpdW0td2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnLi9mb250cy9nb3JkaXRhbWVkaXVtLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4uZm9udC1tZWRpdW0ge1xuICAgIGZvbnQtZmFtaWx5OiAnR29yZGl0YSBNZWRpdW0nO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJ0dvcmRpdGEgUmVndWxhciBJdGFsaWMnO1xuICAgIHNyYzogdXJsKCcuL2ZvbnRzL2dvcmRpdGFyZWd1bGFyaXRhbGljLXdlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnLi9mb250cy9nb3JkaXRhcmVndWxhcml0YWxpYy13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCcuL2ZvbnRzL2dvcmRpdGFyZWd1bGFyaXRhbGljLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4uZm9udC1yZWd1bGFyLWl0YWxpYyB7XG4gICAgZm9udC1mYW1pbHk6ICdHb3JkaXRhIFJlZ3VsYXIgSXRhbGljJztcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdHb3JkaXRhIFJlZ3VsYXInO1xuICAgIHNyYzogdXJsKCcuL2ZvbnRzL2dvcmRpdGFyZWd1bGFyLXdlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnLi9mb250cy9nb3JkaXRhcmVndWxhci13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCcuL2ZvbnRzL2dvcmRpdGFyZWd1bGFyLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4uZm9udC1yZWd1bGFyIHtcbiAgICBmb250LWZhbWlseTogJ0dvcmRpdGEgUmVndWxhcic7XG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnR29yZGl0YSBMaWdodCBJdGFsaWMnO1xuICAgIHNyYzogdXJsKCcuL2ZvbnRzL2dvcmRpdGFsaWdodGl0YWxpYy13ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJy4vZm9udHMvZ29yZGl0YWxpZ2h0aXRhbGljLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJy4vZm9udHMvZ29yZGl0YWxpZ2h0aXRhbGljLXdlYmZvbnQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpO1xuICAgIGZvbnQtd2VpZ2h0OiAyMDA7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4uZm9udC1saWdodC1pdGFsaWMge1xuICAgIGZvbnQtZmFtaWx5OiAnR29yZGl0YSBMaWdodCBJdGFsaWMnO1xufVxuXG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnR29yZGl0YSBMaWdodCc7XG4gICAgc3JjOiB1cmwoJy4vZm9udHMvZ29yZGl0YWxpZ2h0LXdlYmZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIHVybCgnLi9mb250cy9nb3JkaXRhbGlnaHQtd2ViZm9udC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnLi9mb250cy9nb3JkaXRhbGlnaHQtd2ViZm9udC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG4gICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbi5mb250LWxpZ2h0IHtcbiAgICBmb250LWZhbWlseTogJ0dvcmRpdGEgTGlnaHQnO1xufVxuIiwiaHRtbCxcbmJvZHkge1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0LXdlYmtpdC1mb250LXNtb290aGluZzogdW5zZXQgIWltcG9ydGFudDtcblx0LypsZXR0ZXItc3BhY2luZzogMXB4OyovXG59XG5cbm1haW4ge1xuXHRtaW4taGVpZ2h0OiAxMDB2aDtcbn1cblxuLmJnLXdoaXRlIHtcblx0YmFja2dyb3VuZDogJHdoaXRlO1xufVxuLnRleHQtd2hpdGUge1xuXHRjb2xvcjogJHdoaXRlO1xufVxuXG4uYmctbmF2eSB7XG5cdGJhY2tncm91bmQ6ICRuYXZ5O1xufVxuLnRleHQtbmF2eSB7XG5cdGNvbG9yOiAkbmF2eTtcbn1cblxuLmJnLWRhcmtOYXZ5IHtcblx0YmFja2dyb3VuZDogJGRhcmtOYXZ5O1xufVxuLnRleHQtZGFya05hdnkge1xuXHRjb2xvcjogJGRhcmtOYXZ5O1xufVxuXG4uYmctY3lhbiB7XG5cdGJhY2tncm91bmQ6ICRjeWFuO1xufVxuLnRleHQtY3lhbiB7XG5cdGNvbG9yOiAkY3lhbjtcbn1cblxuLmJnLWJsdWUge1xuXHRiYWNrZ3JvdW5kOiAkYmx1ZTtcbn1cbi50ZXh0LWJsdWUge1xuXHRjb2xvcjogJGJsdWU7XG59XG5cbi5iZy1wdXJwbGUge1xuXHRiYWNrZ3JvdW5kOiAkcHVycGxlO1xufVxuLnRleHQtcHVycGxlIHtcblx0Y29sb3I6ICRwdXJwbGU7XG59XG5cbi5iZy1wYWxlQmx1ZSB7XG5cdGJhY2tncm91bmQ6ICRwYWxlQmx1ZTtcbn1cbi50ZXh0LXBhbGVCbHVlIHtcblx0Y29sb3I6ICRwYWxlQmx1ZTtcbn1cblxuLmJnLW5hdkdyZXkge1xuXHRiYWNrZ3JvdW5kOiAkbmF2R3JleTtcbn1cbi50ZXh0LW5hdkdyZXkge1xuXHRjb2xvcjogJG5hdkdyZXk7XG59XG5cbi5iZy1wYWdlQmFja0dyb3VuZCB7XG5cdGJhY2tncm91bmQ6ICRwYWdlQmFja0dyb3VuZDtcbn1cbi50ZXh0LXBhZ2VCYWNrR3JvdW5kIHtcblx0Y29sb3I6ICRwYWdlQmFja0dyb3VuZDtcbn1cblxuLmJnLXRleHRHcmV5IHtcblx0YmFja2dyb3VuZDogJHRleHRHcmV5O1xufVxuLnRleHQtdGV4dEdyZXkge1xuXHRjb2xvcjogJHRleHRHcmV5O1xufVxuXG4uYmctbG9nb3V0R3JleSB7XG5cdGJhY2tncm91bmQ6ICRsb2dvdXRHcmV5O1xufVxuLnRleHQtbG9nb3V0R3JleSB7XG5cdGNvbG9yOiAkbG9nb3V0R3JleTtcbn1cblxuLnRleHQtcmVkIHtcblx0Y29sb3I6ICNhOTQ0NDIgIWltcG9ydGFudDtcbn1cbi50ZXh0LWJyaWdodC1yZWQge1xuXHRjb2xvcjogcmVkO1xufVxuXG4ub3V0bGluZSB7XG5cdG91dGxpbmU6IDFweCBkb3R0ZWQgcmVkO1xufVxuXG4udW5zdHlsZWQge1xuXHRjb2xvcjogaW5oZXJpdDtcblx0dGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuXHRjdXJzb3I6IGluaGVyaXQ7XG5cdCY6YWN0aXZlLFxuXHQmOmZvY3VzIHtcblx0XHRvdXRsaW5lOiBub25lO1xuXHR9XG5cdCY6aG92ZXIge1xuXHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XG5cdFx0Y29sb3I6IGluaGVyaXQ7XG5cdH1cbn1cblxuLnBvaW50ZXIge1xuXHRjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbn1cblxuLnRleHQtc21hbGwge1xuXHRmb250LXNpemU6IDAuOGVtO1xufVxuXG4ubWItMCB7XG5cdG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi50aC1uby1ib3JkZXIge1xuXHQvKiBib3JkZXItd2lkdGg6IDBweCAhaW1wb3J0YW50OyAqL1xuXHRib3JkZXItbGVmdC13aWR0aDogMHB4ICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1yaWdodC13aWR0aDogMHB4ICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1ib3R0b20tY29sb3I6ICRibHVlICFpbXBvcnRhbnQ7XG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZSAhaW1wb3J0YW50O1xufVxuLnRoLWJvcmRlci10b3Age1xuXHRib3JkZXItdG9wLWNvbG9yOiAkYmx1ZTtcbn1cblxuLnRvYXN0LWNvbnRhaW5lciB7XG5cdG1hcmdpbi10b3A6IDI1JTtcbn1cblxuLmZsZXgtaGFsZi1yb3cge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cdGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcblx0cGFkZGluZy1sZWZ0OiAyZW07XG5cdHBhZGRpbmctcmlnaHQ6IDJlbTtcblx0cGFkZGluZy10b3A6IDhweDtcblx0cGFkZGluZy1ib3R0b206IDhweDtcbn1cblxuLmZsZXgtaGFsZi1jZWxsIHtcblx0d2lkdGg6IDUwJTtcbn1cblxuLmZsZXgtdGhyZWUtY2VsbCB7XG5cdHdpZHRoOiAzMyU7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm5hdnktdGhpbi1saW5lIHtcblx0aGVpZ2h0OiAxcHg7XG5cdGJhY2tncm91bmQtY29sb3I6ICNkZGQ7XG5cdG1hcmdpbi1sZWZ0OiAxLjVlbTtcblx0bWFyZ2luLXJpZ2h0OiAxLjVlbTtcbn1cblxuLnJlbW92ZS1kaWFnbm9zaXMge1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IDA7XG5cdGJvcmRlcjogMXB4IHNvbGlkICRuYXZ5O1xuXHR3aWR0aDogMjRweDtcblx0aGVpZ2h0OiAyNHB4O1xuXHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuXG5cdCY6aG92ZXIge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRuYXZ5O1xuXHRcdGNvbG9yOiB3aGl0ZTtcblx0fVxufVxuXG4ucmVtb3ZlLXByb2NlZHVyZSB7XG5cdHBhZGRpbmc6IDA7XG5cdG1hcmdpbjogMDtcblx0Ym9yZGVyOiAxcHggc29saWQgI2ZmMDAwMDtcblx0d2lkdGg6IDI0cHg7XG5cdGhlaWdodDogMjRweDtcblx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblxuXHQmOmhvdmVyIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmYwMDAwO1xuXHRcdGNvbG9yOiB3aGl0ZTtcblx0fVxufVxuXG4uYXJyb3ctcmlnaHQge1xuXHRib3JkZXI6IHNvbGlkICRuYXZ5O1xuXHRib3JkZXItd2lkdGg6IDAgMnB4IDJweCAwO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHBhZGRpbmc6IDNweDtcblx0bWFyZ2luLWJvdHRvbTogMnB4O1xuXHRtYXJnaW4tbGVmdDogMnB4O1xuXHR0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuXHQtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG59XG5cbi50ZXh0LWdyZXktbGlnaHQge1xuXHRjb2xvcjogJHRleHRHcmV5O1xuXHRmb250LWZhbWlseTogJ0dvcmRpdGEgTGlnaHQnO1xufVxuXG4udGV4dC1wcm9jZWR1cmUge1xuXHRjb2xvcjogI2ZmMDAwMDtcbn1cblxuLnRpdGxlLWNvbnRhaW5lciB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0YWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuXHRtYXJnaW4tYm90dG9tOiAwLjJlbTtcbn1cblxuLmZpbHRlci1ncmV5e1xuXHRmaWx0ZXI6IGludmVydCg2NiUpIHNlcGlhKDYlKSBzYXR1cmF0ZSgxNzMlKSBodWUtcm90YXRlKDE5MGRlZykgYnJpZ2h0bmVzcyg4OSUpIGNvbnRyYXN0KDg1JSk7XG59XG5cbi50aW1lLXBpY2tlciB7XG5cdG1hcmdpbi1sZWZ0OiAxZW07XG5cdHBhZGRpbmctbGVmdDogMWVtO1xuICAgIGhlaWdodDogMy4wZW07XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLWNvbG9yOiAkbmF2eTtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xufVxuXG4uc2Nyb2xsLWNvbnRhaW5lciB7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuICAgIHdpZHRoOiA0Mi41ZW07XG4gICAgaGVpZ2h0OjgwJTtcblx0b3ZlcmZsb3cteTogc2Nyb2xsO1xuXHRvdmVyZmxvdy14OiBoaWRkZW47XG5cdG1hcmdpbi1sZWZ0OiAxLjVlbTtcblx0bWFyZ2luLXRvcDogMmVtO1xufVxuXG4uc2Nyb2xsLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuXHR3aWR0aDogNXB4OyAvKiBTZXQgdGhlIHdpZHRoIG9mIHRoZSBzY3JvbGxiYXIgKi9cblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdC8qIHBvc2l0aW9uOiBhYnNvbHV0ZTsgKi9cbiB9XG5cbiAuc2Nyb2xsLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2eTsgLyogU2V0IHRoZSBjb2xvciBvZiB0aGUgdGh1bWIgKi9cbiB9XG5cbi8qIENhcHMgdGhlIGRpYWdub3NpcyBsaXN0IGhlaWdodCBvbiB0aGUgcGF0aWVudCBkYXNoYm9hcmQgc28gYSBsb25nIGxpc3QgKi9cbi8qIGRvZXNuJ3QgYmxvdyBvdXQgdGhlIG92ZXJhbGwgcGFnZSBzY3JvbGwuICovXG4uZGlhZ25vc2lzLXNjcm9sbC1jb250YWluZXIge1xuXHRtYXgtaGVpZ2h0OiAyNGVtO1xuXHRvdmVyZmxvdy15OiBhdXRvO1xuXHRvdmVyZmxvdy14OiBoaWRkZW47XG5cdHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xufVxuXG4uZGlhZ25vc2lzLXNjcm9sbC1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcblx0d2lkdGg6IDVweDtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi5kaWFnbm9zaXMtc2Nyb2xsLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2eTtcblx0Ym9yZGVyLXJhZGl1czogM3B4O1xufVxuXG4vKiBUaGUgZG9jdW1lbnRzIGxpc3Qgc2Nyb2xscyBpbiBwbGFjZSBpbnN0ZWFkIG9mIHBhZ2luZywgc28gdGhlIHNlY3Rpb24ga2VlcHMgYSBmaXhlZCBoZWlnaHQgKi9cbi8qIGhvd2V2ZXIgbWFueSBkb2N1bWVudHMgYSBwYXRpZW50IGhhcy4gVGhlIHNjcm9sbGJhciBpcyBsZWZ0IHZpc2libGUgcmF0aGVyIHRoYW4gb3ZlcmxhaWQgc28gKi9cbi8qIHRoZSBwb3NpdGlvbiBpbiB0aGUgbGlzdCBpcyBhbHdheXMgcmVhZGFibGUuICovXG4uZG9jdW1lbnRzLXNjcm9sbC1jb250YWluZXIge1xuXHRtYXgtaGVpZ2h0OiAzMmVtO1xuXHRvdmVyZmxvdy15OiBhdXRvO1xuXHRvdmVyZmxvdy14OiBoaWRkZW47XG5cdHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xuXHRzY3JvbGxiYXItd2lkdGg6IHRoaW47XG5cdHNjcm9sbGJhci1jb2xvcjogJG5hdnkgcmdiYSgwLCA1MywgMjEwLCAwLjEyKTtcbn1cblxuLmRvY3VtZW50cy1zY3JvbGwtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhciB7XG5cdHdpZHRoOiA4cHg7XG59XG5cbi5kb2N1bWVudHMtc2Nyb2xsLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuXHRiYWNrZ3JvdW5kOiByZ2JhKDAsIDUzLCAyMTAsIDAuMTIpO1xuXHRib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbi5kb2N1bWVudHMtc2Nyb2xsLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2eTtcblx0Ym9yZGVyLXJhZGl1czogNHB4O1xufVxuXG4uZG9jdW1lbnRzLXNjcm9sbC1tb3JlIHtcblx0cGFkZGluZzogMC41ZW0gMCAwLjI1ZW07XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0Y29sb3I6ICRuYXZ5O1xuXHRmb250LXNpemU6IDAuODVlbTtcbn1cblxuLyogV2hldGhlciB0aGUgbGlzdCBpcyBzdGlsbCBhcnJpdmluZywgZW1wdHksIG9yIHNob3J0IG9mIG9uZSBvZiBpdHMgdHdvIGhhbHZlcy4gS2VwdCBhYm92ZSB0aGUgKi9cbi8qIHNjcm9sbGluZyBhcmVhIHNvIGl0IGlzIHJlYWRhYmxlIHdpdGhvdXQgc2Nyb2xsaW5nIHRvIGZpbmQgaXQuICovXG4uZG9jdW1lbnRzLXN0YXR1cyB7XG5cdHBhZGRpbmc6IDAuNWVtIDAgMC4yNWVtO1xuXHRjb2xvcjogJG5hdnk7XG5cdGZvbnQtc2l6ZTogMC44NWVtO1xufVxuXG4uZG9jdW1lbnRzLXN0YXR1cy0tZXJyb3Ige1xuXHRjb2xvcjogJGRhbmdlcjtcbn1cblxuLyogUGFnaW5nIGlzIHJlcGxhY2VkIGJ5IHRoZSBzY3JvbGxpbmcgYWJvdmUsIHNvIG5nLXRhYmxlJ3MgcGFnZXIgaXMgbm90IHNob3duLiAqL1xucGF0aWVudC1maWxlLXRhYmxlIC5uZy10YWJsZS1wYWdlciB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5wcm9ncmVzcy1ub3RlLWNvbnRhaW5lciB7XG5cdGJvcmRlci13aWR0aDogMnB4O1xuXHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRib3JkZXItY29sb3I6ICRuYXZ5O1xuXHRib3JkZXItcmFkaXVzOiA4cHg7XG5cdG1hcmdpbi1ib3R0b206IDFlbTtcblx0d2lkdGg6IDEwMCU7XG5cdG1pbi1oZWlnaHQ6IDVlbTtcblx0cGFkZGluZzogMC41ZW07XG59XG5cbi5wcm9ncmVzcy1ub3RlLWNvbnRhaW5lci1kZWxldGUge1xuXHRib3JkZXItd2lkdGg6IDJweDtcblx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0Ym9yZGVyLWNvbG9yOiAkdGV4dEdyZXk7XG5cdGJvcmRlci1yYWRpdXM6IDhweDtcblx0bWFyZ2luLWJvdHRvbTogMWVtO1xuXHR3aWR0aDogMTAwJTtcblx0bWluLWhlaWdodDogNWVtO1xuXHRwYWRkaW5nOiAwLjVlbTtcbn1cblxuLnByb2dyZXNzLW5vdGUtY29udGFpbmVyLWFkbWluIHtcblx0Ym9yZGVyLXdpZHRoOiAycHg7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci1jb2xvcjogJG9yYW5nZTtcblx0Ym9yZGVyLXJhZGl1czogOHB4O1xuXHRtYXJnaW4tYm90dG9tOiAxZW07XG5cdHdpZHRoOiAxMDAlO1xuXHRtaW4taGVpZ2h0OiA1ZW07XG5cdHBhZGRpbmc6IDAuNWVtO1xufVxuXG4ucHJvZ3Jlc3Mtbm90ZS1jb250YWluZXItbnVyc2Uge1xuXHRib3JkZXItd2lkdGg6IDJweDtcblx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0Ym9yZGVyLWNvbG9yOiAkZm9yZXN0LWdyZWVuO1xuXHRib3JkZXItcmFkaXVzOiA4cHg7XG5cdG1hcmdpbi1ib3R0b206IDFlbTtcblx0d2lkdGg6IDEwMCU7XG5cdG1pbi1oZWlnaHQ6IDVlbTtcblx0cGFkZGluZzogMC41ZW07XG59XG5cbi5wcm9ncmVzcy1ub3RlLWNvbnRhaW5lci1zY2hlZHVsZWQge1xuXHRib3JkZXItd2lkdGg6IDJweDtcblx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0Ym9yZGVyLWNvbG9yOiAkdGVhbDtcblx0Ym9yZGVyLXJhZGl1czogOHB4O1xuXHRtYXJnaW4tYm90dG9tOiAxZW07XG5cdHdpZHRoOiAxMDAlO1xuXHRtaW4taGVpZ2h0OiA1ZW07XG5cdHBhZGRpbmc6IDAuNWVtO1xufVxuXG4ucHJvZ3Jlc3Mtbm90ZS1jb250YWluZXItaW5qZWN0aW9uIHtcblx0Ym9yZGVyLXdpZHRoOiAycHg7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci1jb2xvcjogJHB1cnBsZTtcblx0Ym9yZGVyLXJhZGl1czogOHB4O1xuXHRtYXJnaW4tYm90dG9tOiAxZW07XG5cdHdpZHRoOiAxMDAlO1xuXHRtaW4taGVpZ2h0OiA1ZW07XG5cdHBhZGRpbmc6IDAuNWVtO1xufVxuXG4ucHJvZ3Jlc3Mtbm90ZS1ib2xkIHtcblx0Zm9udC1mYW1pbHk6ICdHb3JkaXRhIEJvbGQnO1xuXHRmb250LXNpemU6IDEycHg7XG5cdGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xufVxuXG4ucHJvZ3Jlc3Mtbm90ZS1ib2xkLWRlbGV0ZSB7XG5cdGZvbnQtZmFtaWx5OiAnR29yZGl0YSBCb2xkJztcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRjb2xvcjogJHRleHRHcmV5ICFpbXBvcnRhbnQ7XG59XG5cbi5wcm9ncmVzcy1ub3RlLWxpbmsge1xuXHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0Zm9udC1mYW1pbHk6ICdHb3JkaXRhIEJvbGQnO1xufVxuXG4ucGFuZWwtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LWZhbWlseTogJ0dvcmRpdGEgQm9sZCc7XG59XG5cbiNzY3JvbGxhYmxlLWRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLW1lbnUge1xuXHRoZWlnaHQ6IDEwZW07XG5cdG92ZXJmbG93LXk6IGF1dG87XG5cdG1hcmdpbi10b3A6IC0xMi41ZW07XG4gIH1cblxuLmVycm9yLW1lc3NhZ2Uge1xuXHRjb2xvcjogI2E5NDQ0Mjtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG1hcmdpbi10b3A6IDVweDtcbn1cblxuLmRpYWxvZy1jb250ZW50LWJveCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0aGVpZ2h0OjMycmVtO1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLmludm9pY2UtaXRlbS1jZWxsIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0Z2FwOiAwLjVyZW07XG59XG5cbi5pbnZvaWNlLWNvZGUtbGFiZWwge1xuXHRib3JkZXItd2lkdGg6IDFweDtcblx0Ym9yZGVyLWNvbG9yOiAkbmF2eTtcblx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0cGFkZGluZy1sZWZ0OiAwLjVyZW07XG5cdHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbn1cblxuLmludm9pY2UtaXRlbS1yb3cge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRhbGlnbi1pdGVtczogYmFzZWxpbmU7XG5cdGdhcDogMXJlbTtcbn1cblxuLmludm9pY2UtZGV0YWlscy1jb250YWluZXIge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRnYXA6IDAuNXJlbTtcblx0bWFyZ2luLWxlZnQ6IDYwJTtcblx0bWFyZ2luLXJpZ2h0OiA0JTtcbn1cblxuLmludm9pY2UtZGV0YWlscy1zZWN0aW9uIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0Z2FwOiAwLjVyZW07XG5cdHBhZGRpbmctYm90dG9tOiAxcmVtO1xuXHRib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XG5cdGJvcmRlci1ib3R0b20tY29sb3I6IGdyYXk7XG5cdGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xufVxuXG4uaW52b2ljZS1kZXRhaWxzLXJvdyB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGdhcDogMXJlbTtcblx0Y29sb3I6ICRuYXZ5O1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbi52aWV3LWludm9pY2UtbW9kYWwge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmhlYWRlci1ncm91cCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5kaXNtaXNzLWNsb3NlLWljb24ge1xuXHRjb2xvcjogJHdoaXRlO1xuXHRmb250LXNpemU6IDIwcHg7XG5cdGFsaWduLXNlbGY6IGVuZDtcblx0bWFyZ2luLXJpZ2h0OiAxMSU7XG59XG5cbi8qIEEgcm93IG9mIGFjdGlvbiBpY29ucyBpbnNpZGUgYSB0YWJsZSBjZWxsLiBOb3QgYSBmbGV4IGNvbnRhaW5lcjogdGhpcyBjbGFzcyBzaXRzIG9uIHRoZSA8dGQ+LCBhbmQgYSBmbGV4XG4gICB0YWJsZSBjZWxsIGRyb3BzIG91dCBvZiB0aGUgdGFibGUncyByb3cgbGF5b3V0IC0gdGhlIGJyb3dzZXIgc2l6ZXMgaXQgdG8gaXRzIG93biBjb250ZW50LCBzbyB0aGUgY2VsbCdzXG4gICBib3R0b20gYm9yZGVyIGlzIGRyYXduIGF0IHRoZSBoZWlnaHQgb2YgdGhlIGljb25zIGFuZCBubyBsb25nZXIgbGluZXMgdXAgd2l0aCB0aGUgY2VsbHMgZWl0aGVyIHNpZGUuICovXG4uaWNvbnMtcm93IHtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuXHQ+ICoge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHR9XG5cblx0PiAqICsgKiB7XG5cdFx0bWFyZ2luLWxlZnQ6IDFyZW07XG5cdH1cbn1cblxuLm1kLWRpYWxvZy1jb250YWluZXIge1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRnYXA6IDAuNXJlbTtcbn1cblxuI2JpbGxpbmctZHJvcGRvd24tbWVudSAuZHJvcGRvd24tbWVudSB7XG5cdG1heC1oZWlnaHQ6IDIwcmVtO1xuXHRvdmVyZmxvdy15OiBhdXRvO1xuICB9XG5cbi5wcm9ncmVzcy1ub3RlLWhlYWRlciB7XG5cdG1hcmdpbi1sZWZ0OiAwcHg7XG5cdG1hcmdpbi1yaWdodDogMHB4O1xuXHRkaXNwbGF5OiBmbGV4O1xuXHR3aWR0aDogMTAwJTtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4ucHJvZ3Jlc3Mtbm90ZS1oZWFkZXItY2hpbGQge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cdGdhcDogMXJlbTtcbn1cblxuXG4uZmMtdG9vbGJhciBoMiB7XG5cdGZvbnQtc2l6ZTogMTZweDtcblx0cGFkZGluZy10b3A6IDAuNXJlbTtcbn1cblxuLm5oaS1jb250YWluZXIge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRnYXA6IDFyZW07XG59XG5cbi5uaGktY29udGFpbmVyLWxlZnQge1xuXHR3aWR0aDogNTAlO1xufVxuXG4ubmhpLWNvbnRhaW5lci1yaWdodCB7XG5cdHdpZHRoOiA1MCU7XG59XG5cbi5uYW1lLXJvdy1jb250YWluZXIge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRnYXA6IDAuNXJlbTtcbn1cblxuLnJlZC1sYWJlbCB7XG5cdGNvbG9yOiByZWQgIWltcG9ydGFudDtcbn1cblxuLm5oaS1jb2x1bW4ge1xuXHRtYXgtd2lkdGg6IDEwcmVtO1xuXHR0ZXh0LXdyYXA6IHdyYXA7XG5cdHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cblxuLm5oaS1sYWJlbCB7XG5cdHRleHQtd3JhcDogd3JhcDtcblx0d29yZC13cmFwOiBicmVhay13b3JkO1xuXHRtYXgtd2lkdGg6IDgwJTtcbn1cblxuLnByb2dyZXNzLW5vdGUtcHJvY2VkdXJlIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0Z2FwOiAxcmVtO1xufVxuXG4uZmMtbW9yZS1wb3BvdmVyIHtcblx0bWF4LWhlaWdodDogOTUlO1xuXHRvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4uc2VhcmNoLXJhZGlvLWxhYmVsIHtcblx0Y29sb3I6ICRuYXZ5ICFpbXBvcnRhbnQ7XG5cdGZvbnQtZmFtaWx5OiAnR29yZGl0YSBNZWRpdW0nICFpbXBvcnRhbnQ7XG5cdGZvbnQtc2l6ZTogMTZweDtcbn1cblxuLnBhdGllbnQtdGFibGUtdGV4dCB7XG5cdGNvbG9yOiAkbmF2eSAhaW1wb3J0YW50O1xufVxuXG4ucmVkLXRleHQge1xuXHRjb2xvcjogcmVkO1xufVxuXG4udGV4dC1hcmVhLWJyZWFrIHtcblx0d2hpdGUtc3BhY2U6IHByZS1saW5lO1xuXHRtYXJnaW4tdG9wOiAtMS41cmVtO1xufVxuXG4udGFzay1sYWJlbC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xufVxuXG4udGFzay1sYWJlbC1jaGlsZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4udGFzay1saXN0LXBhdGllbnQge1xuXHR3aWR0aDogMTUlO1xuXHQvKiB0ZXh0LWFsaWduOiBjZW50ZXI7ICovXG59XG5cbi50YXNrLWxpc3QtYXNzaWduZWQge1xuXHR3aWR0aDogMjAlO1xuXHQvKiB0ZXh0LWFsaWduOiBjZW50ZXI7ICovXG59XG5cbi50YXNrLWxpc3QtZGVzY3JpcHRpb24ge1xuXHR3aWR0aDogMzAlO1xuXHQvKiB0ZXh0LWFsaWduOiBjZW50ZXI7ICovXG5cdFxufVxuXG4udGFzay1saXN0LXN0YXR1cyB7XG5cdHdpZHRoOiA1JTtcblx0LyogdGV4dC1hbGlnbjogY2VudGVyOyAqL1xufVxuXG4udGFzay1saXN0LWRlbGV0ZSB7XG5cdHdpZHRoOiAzJTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4udGFzay1saXN0LWR1ZSB7XG5cdHdpZHRoOiA3JTtcblx0LyogdGV4dC1hbGlnbjogY2VudGVyOyAqL1xufVxuXG4udGFzay1saXN0LWxhYmVsIHtcblx0d2lkdGg6IDEyJTtcblx0LyogdGV4dC1hbGlnbjogY2VudGVyOyAqL1xufVxuXG4udGFzay1saXN0LWNvbG9yIHtcblx0d2lkdGg6IDJyZW07XG5cdGhlaWdodDogMnJlbTtcblx0LyogdGV4dC1hbGlnbjogY2VudGVyOyAqL1xuXHRib3JkZXItcmFkaXVzOiAwLjVyZW07XG59XG5cbi50YXNrLWRvbmUge1xuXHR0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbn1cblxuLmJ1dHRvbi1mb290ZXIge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRnYXA6IDFyZW07XG59XG5cbi5uYXYtbGkge1xuXHRoZWlnaHQ6IDIuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMi41cmVtO1xufVxuXG4ubWQtYmFkZ2Uge1xuXHR6LWluZGV4OiA4MCAhaW1wb3J0YW50O1xuIH1cblxuIC5zaWduLWJ1dHRvbnMtZ3JvdXAge1xuIFx0ZGlzcGxheTogZmxleDtcbiBcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gXHRnYXA6IDFyZW07XG5cdHdpZHRoOiAxMDAlO1xuXHRtYXJnaW4tbGVmdDogMXJlbTtcbiB9XG5cbiAuc2lnbi1idXR0b25zLWNvbnRhaW5lciB7XG4gXHRkaXNwbGF5OiBmbGV4O1xuIFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47XG4gfVxuXG4gLmhlYWRlci1sZWZ0LWFsaWduID4gdGhlYWQgPiB0ciA+IHRoIHtcblx0dGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmx2bC1vdmVyIHtcblx0LyogYXBwbGllZCB0byBhIGRyb3AgdGFyZ2V0IHdoZW4gYSBkcmFnZ2FibGUgb2JqZWN0IGlzIG92ZXIgaXQgKi9cblx0Ym9yZGVyOiAycHggZGFzaGVkIGJsYWNrICFpbXBvcnRhbnQ7XG59XG5cbi5sdmwtdGFyZ2V0IHtcblx0LyogYXBwbGllZCB0byBhbGwgZHJvcCB0YXJnZXRzIHdoZW4gYSBkcmFnIG9wZXJhdGlvbiBiZWdpbnMsIHVzZWQgdG8gaW5kaWNhdGUgZHJvcCB0YXJnZXRzIG9uIGEgcGFnZSAqL1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xuXHRvcGFjaXR5OiAuNTtcbn1cblxuW2RyYWdnYWJsZV0ge1xuXHQtbW96LXVzZXItc2VsZWN0OiBub25lO1xuXHQta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdHVzZXItc2VsZWN0OiBub25lO1xuXHQvKiBSZXF1aXJlZCB0byBtYWtlIGVsZW1lbnRzIGRyYWdnYWJsZSBpbiBvbGQgV2ViS2l0ICovXG5cdC1raHRtbC11c2VyLWRyYWc6IGVsZW1lbnQ7XG5cdC13ZWJraXQtdXNlci1kcmFnOiBlbGVtZW50O1xuXHRjdXJzb3I6IG1vdmU7XG5cdGJvcmRlcjoxcHggc29saWQgYmxhY2s7XG59XG5cbi5wZWcge1xuXHRmb250LXdlaWdodDogYm9sZDtcblx0Ym9yZGVyLXdpZHRoOiAwcHg7XG5cdGJvcmRlci1yYWRpdXM6IDRweDtcblx0d2lkdGg6IGF1dG87XG5cdGhlaWdodDozcmVtO1xuXHRtYXJnaW46IDEwcHg7XG5cdHBhZGRpbmc6IDAuNXJlbTtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGJhY2tncm91bmQtY29sb3I6ICMwMTlDRDI7XG5cdGNvbG9yOiB3aGl0ZTtcbn1cblxuLnNsb3Qge1xuXHRtYXJnaW4tcmlnaHQ6MnB4O1xuXHRtYXJnaW4tdG9wOjJweDtcblx0d2lkdGg6MjVweDtcblx0aGVpZ2h0OjI1cHg7XG4gICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gICAgYm9yZGVyOiBub25lO1xufVxuXG4uZ3JleSB7XG5cdGJhY2tncm91bmQtY29sb3I6IGdyZXk7XG59XG5cbnByZSBzdHJvbmcge1xuXHRmb250LXNpemU6MTJwdDtcbn1cblxuLm1vZGFsLWNsb3NlIHtcblx0ei1pbmRleDogMTtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDdyZW07XG59XG5cbi5teS1kcm9wLXpvbmUge1xuXHRib3JkZXI6IGRvdHRlZCAzcHggbGlnaHRncmF5O1xufVxuXG4ubnYtZmlsZS1vdmVyIHtcblx0Ym9yZGVyOiBkb3R0ZWQgM3B4IHJlZDtcbn1cblxuLyogRGVmYXVsdCBjbGFzcyBhcHBsaWVkIHRvIGRyb3Agem9uZXMgb24gb3ZlciAqL1xuLmFub3RoZXItZmlsZS1vdmVyLWNsYXNzIHtcblx0Ym9yZGVyOiBkb3R0ZWQgM3B4IGdyZWVuO1xufVxuXG4ubG9jYXRpb24tY29udGFpbmVyIHtcblx0bWFyZ2luLXRvcDogMC41cmVtO1xuXHRib3JkZXItd2lkdGg6IDFweDtcblx0Ym9yZGVyLWNvbG9yOiAkbmF2eTtcblx0Ym9yZGVyLXJhZGl1czogNHB4O1xuXHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRwYWRkaW5nOiAwLjVyZW07XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdGNvbG9yOiAkbmF2eTtcbn1cblxuLnBvcG92ZXItY29udGFpbmVyIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0Z2FwOiAxcmVtO1xuXHRhbGlnbi1pdGVtczogYmFzZWxpbmU7XG59XG5cbmRpdi5wcmludENvbnRyb2xzXG57XG5cdGJhY2tncm91bmQtY29sb3I6I2VkZjBlYztcblx0aGVpZ2h0OjEwMHB4O1xuXHRwYWRkaW5nOiA1cHg7XG5cdGJvdHRvbTowO1xuXHRkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZ2FwOiAxcmVtO1xufVxuXG4jbGFiZWxJbWFnZURpdlxue1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjYjJiMmIyO1xuXHRwYWRkaW5nOiA1cHg7XG5cdG1hcmdpbjogMHB4O1xufVxuXG4jcHJpbnREaXZcbntcblx0ZmxvYXQ6cmlnaHQ7XG5cdHdpZHRoOjEyNnB4O1xufVxuXG5cbiNwcmludGVyc0Rpdlxue1xuXHRmbG9hdDpsZWZ0O1xufVxuXG4ucHJvZ3Jlc3MtYmFyLXdhcm5pbmcge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2eTtcbn1cblxuLmNsaW5pYy1sZXR0ZXJzLWZyYW1lIHtcblx0d2lkdGg6IDEwMCU7XG5cdG1heC1oZWlnaHQ6IDUwdmg7XG5cdG92ZXJmbG93LXk6IHNjcm9sbDtcblx0c2Nyb2xsYmFyLXdpZHRoOiBub25lO1xufVxuXG4uY2xpbmljLWxldHRlcnMtY29udGFpbmVyIHtcblx0Ym9yZGVyLXdpZHRoOiAycHg7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci1jb2xvcjogJG5hdnk7XG5cdGJvcmRlci1yYWRpdXM6IDhweDtcblx0bWFyZ2luLWJvdHRvbTogMWVtO1xuXHR3aWR0aDogMTAwJTtcblx0bWluLWhlaWdodDogNWVtO1xuXHRwYWRkaW5nOiAwLjVlbTtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdCY6aG92ZXIge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRuYXZ5O1xuXHRcdGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuXG5cdFx0LmNsaW5pYy1sZXR0ZXJzLWJvbGQge1xuXHRcdFx0Y29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG5cblx0LmNsaW5pYy1sZXR0ZXJzLWJvbGQge1xuXHRcdGZvbnQtZmFtaWx5OiAnR29yZGl0YSBCb2xkJztcblx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0Y29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHR9XG59XG5cbi5jbGluaWMtbGV0dGVycy1jb250ZW50IHtcblx0d2lkdGg6IDEwMCU7XG5cdGRpc3BsYXk6IGZsZXg7IFxuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uY2xpbmljLXRlbXBsYXRlLW1lbnUge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRhbGlnbi1pdGVtczogZW5kO1xufVxuXG4uY2xpbmljLWxldHRlci1mb290ZXIge1xuXHRtYXJnaW4tbGVmdDogLTU1cHggIWltcG9ydGFudDtcblx0bWFyZ2luLXJpZ2h0OiAtNTVweCAhaW1wb3J0YW50O1xuXHRkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZSAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLXRvcDogMXJlbSAhaW1wb3J0YW50O1xuXHRwYWRkaW5nLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50O1xuXHRtYXJnaW4tYm90dG9tOiAtM3JlbSAhaW1wb3J0YW50O1xufVxuXG4ubWQtY2hpcHMge1xuXHRib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5jYXJlLXRlYW0td2lkdGgge1xuXHR3aWR0aDogMzZyZW0gIWltcG9ydGFudDtcbn1cblxuLm5vdGUtZWRpdG9yIC5ub3RlLWZyYW1lIC5ub3RlLWVkaXRpbmctYXJlYSAubm90ZS1lZGl0YWJsZSB7XG5cdGNvbG9yOiAjMDAwMDAwO1xuXHRmb250LWZhbWlseTogJ0dvcmRpdGEgUmVndWxhcicsIHNhbnMtc2VyaWY7XG59XG5cbi5ub3RlLWVkaXRhYmxlPnAge1xuXHRjb2xvcjogIzAwMDAwMDtcbn1cblxuLm5vdGUtZWRpdG9yLm5vdGUtYWlyZnJhbWUgLm5vdGUtc3RhdHVzLW91dHB1dCxcbi5ub3RlLWVkaXRvci5ub3RlLWZyYW1lIC5ub3RlLXN0YXR1cy1vdXRwdXQge1xuXHRib3JkZXItdG9wLXdpZHRoOiAwcHggIWltcG9ydGFudDtcbn1cblxuICBAbWVkaWEgcHJpbnQge1xuXHRAcGFnZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVpbjtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVpbjtcbiAgICAgICAgbWFyZ2luLXRvcDogMC4zaW47XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuM2luO1xuICAgICAgfVxuICB9IFxuXG4ubm90ZS1lZGl0b3ItZGlhZ25vc2lzLXRhYmxlIHtcbiAgICB3aWR0aDogNjAlO1xuXHRtYXJnaW4tbGVmdDogMjAlO1xuXHR0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuXG5cdHRoLFxuXHR0ZCB7XG5cdFx0d2lkdGg6IDUwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblx0fVxufSAgXG5cblxuLmhlYWQtbm8tbGluayB7XG5cdGNvbG9yOiAkbmF2eTtcblx0Zm9udC1zaXplOiAxNHB4O1xuXHRAZXh0ZW5kIC5mb250LXJlZ3VsYXI7XG59XG5cbi5pbnRyby1jdXN0b21Ub29sdGlwICoge1xuICBjb2xvcjogIzRhNGE0YTtcbiAgZm9udC1zaXplOiAxNXB4XG59XG4gXG4uaW50cm8tY3VzdG9tVG9vbHRpcCAuaW50cm9qcy10b29sdGlwLXRpdGxlIHtcbiAgY29sb3I6ICRuYXZ5O1xufVxuXG4uZHJvcGRvd24tbWVudVt1aWItdHlwZWFoZWFkLXBvcHVwXSB7XG4gICAgbWF4LWhlaWdodDogMjUwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgei1pbmRleDogMTA1MDtcbn1cblxuLyogLm11aS1hbGVydCB7XG4gIHBhZGRpbmc6IDEycHggMTZweDtcbiAgbWFyZ2luOiAxcmVtO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG59ICovXG5cbi5tdWktYWxlcnQtaW5mbyB7XG4gIGJhY2tncm91bmQ6ICNlOGY0ZmQ7XG4gIGNvbG9yOiAjMDU1MTYwO1xuICBib3JkZXItY29sb3I6ICNiNmUwZmU7XG59XG5cbi5tdWktYWxlcnQtc3VjY2VzcyB7XG4gIGJhY2tncm91bmQ6ICNlZGY3ZWQ7XG4gIGNvbG9yOiAjMWU0NjIwO1xuICBib3JkZXItY29sb3I6ICNjOGU2Yzk7XG59XG5cbi5tdWktYWxlcnQtd2FybmluZyB7XG4gIGJhY2tncm91bmQ6ICNmZmY0ZTU7XG4gIGNvbG9yOiAjNjYzYzAwO1xuICBib3JkZXItY29sb3I6ICNmZmVjYjU7XG59XG5cbi5tdWktYWxlcnQtZXJyb3Ige1xuICBiYWNrZ3JvdW5kOiAjZmRlY2VhO1xuICBjb2xvcjogIzYxMWExNTtcbiAgYm9yZGVyLWNvbG9yOiAjZjVjMmM3O1xufVxuXG4ubXVpLWFsZXJ0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAxMnB4IDQwcHggMTJweCAxNnB4O1xuICBtYXJnaW46IDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLm11aS1hbGVydC1jbG9zZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDhweDtcbiAgdG9wOiA4cHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgb3BhY2l0eTogMC42O1xufVxuXG4ubXVpLWFsZXJ0LWNsb3NlOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLm5vLWNsYXNzIHtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcbn1cblxuLyogU2l0cyBiZXNpZGUgYSBkb2N1bWVudCdzIG5hbWUgd2hpbGUgaXRzIGZpbGUgaXMgc3RpbGwgYmVpbmcgYW5hbHlzZWQuIFRoZSBhcHAncyBzcGlubmVyIGlzXG4gICBjb25maWd1cmVkIHBhZ2Utc2l6ZWQsIHNvIHRoaXMgYm94IGdpdmVzIHRoZSBpbmxpbmUgb25lIHNvbWV3aGVyZSBpdHMgb3duIHNpemUgdG8gY2VudHJlIGluIC1cbiAgIHNwaW4uanMgcG9zaXRpb25zIGl0c2VsZiBhZ2FpbnN0IHRoZSBuZWFyZXN0IHBvc2l0aW9uZWQgYW5jZXN0b3IuICovXG4uaW5saW5lLXNwaW5uZXIge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0d2lkdGg6IDE0cHg7XG5cdGhlaWdodDogMTRweDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0bWFyZ2luLXJpZ2h0OiA2cHg7XG59XG5cblxuIiwiYnV0dG9uLmJ0biB7XG5cdGJvcmRlci1yYWRpdXM6IDI0cHg7XG59XG5cbi5idG4tZHJvcGRvd24tbXVsdGlzZWxlY3Qge1xuXHRoZWlnaHQ6IDM0cHg7XG5cdHRleHQtYWxpZ246IHN0YXJ0O1xuXHRib3JkZXItY29sb3I6ICRuYXZ5O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG5cdGNvbG9yOiAkbmF2eTtcblx0cGFkZGluZzogNHB4IDE4cHg7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0d2lkdGg6IDEwMCU7XG5cdG1pbi13aWR0aDogMTZlbTtcblx0dHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcblxuXHQmOmhvdmVyLFxuXHQmOmFjdGl2ZSB7XG5cdFx0Y29sb3I6ICR3aGl0ZTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcigkbmF2eSBsKDM1JSkpO1xuXHRcdG91dGxpbmU6IDA7XG5cdH1cblx0Jjpmb2N1cyB7XG5cdFx0Y29sb3I6ICRuYXZ5O1xuXHRcdG91dGxpbmU6IDA7XG5cdH1cblx0Jjpob3Zlcjpmb2N1cyB7XG5cdFx0Y29sb3I6ICR3aGl0ZTtcblx0fVxufVxuXG4uYnRuLW5hdnkge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2eTtcblx0Y29sb3I6ICR3aGl0ZTtcblx0cGFkZGluZzogNHB4IDE4cHg7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0d2lkdGg6IDEwMCU7XG5cdG1heC13aWR0aDogMjIwcHg7XG5cdHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG5cblx0Jjpob3Zlcixcblx0JjphY3RpdmUge1xuXHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogY29sb3IoJG5hdnkgbCgzNSUpKTtcblx0XHRvdXRsaW5lOiAwO1xuXHR9XG5cdCY6Zm9jdXMge1xuXHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0b3V0bGluZTogMDtcblx0fVxufVxuXG4uYnRuLWNhbmNlbCB7XG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRjb2xvcjogJHRleHRHcmV5O1xuXHRwYWRkaW5nOiA0cHggMThweDtcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRib3JkZXI6IDFweCBzb2xpZCAkY2FuY2VsQm9yZGVyO1xuXHR3aWR0aDogMTAwJTtcblx0bWF4LXdpZHRoOiAyMjBweDtcblx0dHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcblxuXHQmOmhvdmVyLFxuXHQmOmFjdGl2ZSB7XG5cdFx0Y29sb3I6ICRsb2dvdXRHcmV5O1xuXHRcdGJhY2tncm91bmQtY29sb3I6IGNvbG9yKCR3aGl0ZSBsKDkwJSkpO1xuXHRcdG91dGxpbmU6IDA7XG5cdH1cblx0Jjpmb2N1cyB7XG5cdFx0b3V0bGluZTogMDtcblx0fVxufVxuXG4uYnRuLWN5YW4ge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG5cdGNvbG9yOiAkY3lhbjtcblx0Ym9yZGVyOiAxcHggc29saWQgJGN5YW47XG5cdHBhZGRpbmc6IDRweCAxOHB4O1xuXHRmb250LXNpemU6IDEycHg7XG5cdHdpZHRoOiAxMDAlO1xuXHRtYXgtd2lkdGg6IDIyMHB4O1xuXHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZTtcblxuXHQmOmhvdmVyLFxuXHQmOmFjdGl2ZSB7XG5cdFx0Y29sb3I6ICRjeWFuO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IGNvbG9yKCR3aGl0ZSBsKC04JSkpO1xuXHR9XG5cdCY6Zm9jdXMge1xuXHRcdGNvbG9yOiAkY3lhbjtcblx0XHRvdXRsaW5lOiAwO1xuXHR9XG59XG5cbi5idG4tY3lhbi1zb2xpZCB7XG5cdGJhY2tncm91bmQtY29sb3I6ICRjeWFuO1xuXHRjb2xvcjogJHdoaXRlO1xuXHRib3JkZXI6IDFweCBzb2xpZCAkY3lhbjtcblx0cGFkZGluZzogNHB4IDE4cHg7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0d2lkdGg6IDEwMCU7XG5cdG1heC13aWR0aDogMjIwcHg7XG5cdHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlO1xuXG5cdCY6aG92ZXIsXG5cdCY6YWN0aXZlIHtcblx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IGNvbG9yKCRjeWFuIGwoLTUlKSk7XG5cdH1cblx0Jjpmb2N1cyB7XG5cdFx0Y29sb3I6ICR3aGl0ZTtcblx0XHRvdXRsaW5lOiAwO1xuXHR9XG59XG5cbi5idG4tbW9ycGgtd3JhcCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0b3ZlcmZsb3c6IHZpc2libGU7XG5cblx0LmJ0bi1tb3JwaCB7XG5cdFx0d2lkdGg6IDI3MHB4O1xuXHRcdG1heC13aWR0aDogMjcwcHg7XG5cdFx0cGFkZGluZy1sZWZ0OiAxMHB4O1xuXHRcdHBhZGRpbmctcmlnaHQ6IDEwcHg7XG5cdH1cblxuXHQubW9ycGgtcmVzdWx0IHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiA1MCU7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHRcdGxlZnQ6IDI4MHB4O1xuXHRcdHdpZHRoOiAxMjBweDtcblx0fVxufVxuXG4jZG93bmxvYWQtcmVmZXJyYWwtYnV0dG9uIHtcblx0d2lkdGg6IDI0MHB4O1xufVxuXG4vKiBDb250YWluZXIgZm9yIHRoZSBBSSBlbGVtZW50cyAqL1xuLmFpLXZlcmlmaWNhdGlvbi1ncm91cCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbn1cblxuLyogU3VidGxlLCB0aGVtZS1tYXRjaGluZyBiYWRnZSAoU29mdCBjeWFuL2JsdWUgYmFja2dyb3VuZCwgTmF2eSB0ZXh0KSAqL1xuLmFpLWJhZGdlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRThGNEY4OyAvKiBtYXRjaGVzIGEgc29mdCB2ZXJzaW9uIG9mIHlvdXIgYmctY3lhbiAqL1xuICAgIGNvbG9yOiAjMUEyOTQyOyAvKiBtYXRjaGVzIHlvdXIgdGV4dC1kYXJrTmF2eSAqL1xuICAgIHBhZGRpbmc6IDJweCA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDsgLyogcGlsbCBzaGFwZSAqL1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBmb250LWZhbWlseTogJ0dvcmRpdGEgTWVkaXVtJywgc2Fucy1zZXJpZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjRDBFNEVBO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi8qIE1pbmltYWxpc3QgYmFzZSBzdHlsZSBmb3IgdGhlIGJ1dHRvbnMgKi9cbi5haS1idG4tYWN0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjRTBFMEUwO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBwYWRkaW5nOiAycHggNnB4O1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgY29sb3I6ICM4ODg7IC8qIFNvZnQgZ3JleSBieSBkZWZhdWx0ICovXG59XG5cbi8qIEhvdmVyIGVmZmVjdCBmb3IgQWNjZXB0OiBGaWxscyBpbiB3aXRoIHlvdXIgTmF2eSB0aGVtZSAqL1xuLmFpLWJ0bi1hY3Rpb24uYWNjZXB0OmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUEyOTQyOyBcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBib3JkZXItY29sb3I6ICMxQTI5NDI7XG59XG5cbi8qIEhvdmVyIGVmZmVjdCBmb3IgRGVjbGluZTogU2xpZ2h0bHkgZGFya2VyIGdyZXkgdG8gc2lnbmlmeSByZW1vdmFsIHdpdGhvdXQgc2NyZWFtaW5nIFwiREFOR0VSXCIgKi9cbi5haS1idG4tYWN0aW9uLmRlY2xpbmU6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGMEYwRjA7XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgYm9yZGVyLWNvbG9yOiAjQ0NDQ0NDO1xufVxuIiwibWFpbiB7XG5cdG1pbi1oZWlnaHQ6IDEwMHZoO1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IDA7XG5cdGNvbG9yOiAkdGV4dEdyZXk7XG5cdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXHRiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJG5hdnktYmctZ3JhZGllbnQtZGFyaywgJG5hdnktYmctZ3JhZGllbnQtbGlnaHQpLCB1cmwoJ2h0dHBzOi8vY2F0dHJheC1tZWRpYS5zMy5hcC1zb3V0aGVhc3QtMi5hbWF6b25hd3MuY29tL2ltYWdlcy9zdXJnZW9uX2ltYWdlX2Nyb3BwZWQyLmpwZycpO1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG59XG5cbi5uYXYtd3JhcC1mbGV4IHtcblx0cGFkZGluZzogMzBweCAwO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cblx0Lm5hdi1sb2dvLXdyYXAge1xuXHRcdGhlaWdodDogMTIwcHg7XG5cblx0XHRpbWcge1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdH1cblxuXHR9XG5cblx0Lm5hdi1uYXYtd3JhcCB7XG5cdFx0YWxpZ24tc2VsZjogZmxleC1lbmQ7XG5cblx0XHR1bCB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0cGFkZGluZzogNXB4O1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0bGlzdC1zdHlsZS10eXBlOiBub25lO1xuXHRcdFx0YmFja2dyb3VuZDogJGxpZ2h0R3JleTtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDI1cHg7XG5cdFx0XHRsZXR0ZXItc3BhY2luZzogMS4ycHg7XG5cdFx0XHRjb2xvcjogJHRleHRHcmV5O1xuXG5cdFx0XHRsaSB7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDI0cHg7XG5cdFx0XHRcdHBhZGRpbmc6IDJweCAxMHB4O1xuXHRcdFx0XHRmb250LXNpemU6IDEycHg7XG5cblx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0Y29sb3I6ICRjeWFuO1xuXG5cdFx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmLmFjdGl2ZSB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogJGN5YW47XG5cblx0XHRcdFx0XHRhIHtcblx0XHRcdFx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQubmF2LXVzZXItd3JhcCB7XG5cdFx0YWxpZ24tc2VsZjogZmxleC1zdGFydDtcblx0XHRjb2xvcjogJHRleHRHcmV5O1xuXG5cdFx0dWwge1xuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IDEuMXB4O1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdHBhZGRpbmc6IDhweDtcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblx0XHRcdGJhY2tncm91bmQ6ICRsaWdodEdyZXk7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAyNHB4O1xuXHRcdFx0Y29sb3I6ICR0ZXh0R3JleTtcblxuXHRcdFx0bGkge1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiAyNHB4O1xuXHRcdFx0XHRwYWRkaW5nOiAwcHggMTBweDtcblxuXHRcdFx0XHRhIHtcblx0XHRcdFx0XHRjb2xvcjogJHRleHRHcmV5O1xuXG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmLmFjdGl2ZSB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjNjYwMTk1LCAkbmF2eSk7XG5cblx0XHRcdFx0XHRhIHtcblx0XHRcdFx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLnBhdGllbnQtaGVhZGVyIHtcblx0Lm5hdi1uYXYtd3JhcCB1bCBsaSBhIHtcblx0XHRjb2xvcjogJG5hdnk7XG5cdFx0Zm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1zZW1pYm9sZDtcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0Y29sb3I6ICMwMDAwQ0Q7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0XHR9XG5cblx0fVxufVxuXG4uYnRuLWxvZ291dCB7XG5cdGhlaWdodDogMjBweDtcblx0cGFkZGluZzogMHB4IDEycHg7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0Y29sb3I6ICR0ZXh0R3JleTtcbn1cblxucC5idG4tbG9nb3V0IHtcblx0bWFyZ2luLWJvdHRvbTogMDtcblx0cGFkZGluZy1sZWZ0OiAwO1xuXHRwYWRkaW5nLXRvcDogMnB4O1xuXHR2ZXJ0aWNhbC1hbGlnbjogY2VudGVyO1xuXHRjb2xvcjogJHRleHRHcmV5O1xufVxuXG4ubG9jayB7XG5cdGhlaWdodDogMTJweDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRib3R0b206IDJweDtcblx0bWFyZ2luLWxlZnQ6IDEwcHg7XG59XG5cbi5uby1wYWQtbGVmdCB7XG5cdHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xufVxuXG4uY29uc3VsdC10aW1lci1ib3gge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG5cdGdhcDogJGZvbnQtc2l6ZS1iYXNlO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHJpZ2h0OiAkZm9udC1zaXplLWJhc2U7XG59XG5cbi50aW1lci1ib3gge1xuXHRib3JkZXItd2lkdGg6IDFweDtcblx0Ym9yZGVyLWNvbG9yOiAkd2hpdGUtdHAtMjA7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGJvcmRlci1yYWRpdXM6IDRweDtcblx0cGFkZGluZy1sZWZ0OiAwLjVyZW07XG5cdHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcblx0cGFkZGluZy10b3A6IDAuMjVyZW07XG5cdHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRnYXA6ICRmb250LXNpemUtYmFzZTtcblx0bWluLXdpZHRoOiAxMHJlbTtcblx0YmFja2dyb3VuZDogJHdoaXRlLXRwLTA1O1xufSIsIi5jb250YWluZXItd2VsY29tZSB7XG5cdGJhY2tncm91bmQ6ICR3aGl0ZTtcblx0bWluLWhlaWdodDogMTAwJTtcblx0cGFkZGluZzogMDtcblx0Ym9yZGVyLXJhZGl1czogMXJlbTtcblxuXHQud2VsY29tZS13cmFwIHtcblx0XHRwYWRkaW5nOiA3MHB4O1xuXHRcdHBhZGRpbmctYm90dG9tOiAzMHB4O1xuXHRcdC5oMSB7XG5cdFx0XHRmb250LXNpemU6IDUwcHg7XG5cdFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdH1cblx0XHQud2VsY29tZS1xdWVzdGlvbiB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHRcdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdH1cblx0XHRzZWxlY3QuZm9ybS1jb250cm9sIHtcblx0XHRcdHdpZHRoOiA0MDBweDtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDE4cHg7XG5cdFx0XHQvKiBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMThweDtcblx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDE4cHg7ICovXG5cdFx0fVxuXHR9XG59XG5cbi5jb250YWluZXItd2VsY29tZS1mb290ZXIge1xuXHRwYWRkaW5nOiAwO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmYWZmOyAvKiBPZmYtd2hpdGUgYmFja2dyb3VuZCAqL1xuXHRib3JkZXItdG9wOiAxcHggc29saWQgI2UwZTZlZDsgLyogTGlnaHQgYm9yZGVyIGZvciBzZXBhcmF0aW9uICovXG59XG5cblx0LmNvbnRhaW5lci13ZWxjb21lLWZvb3RlciAuZm9vdGVyLXdyYXAge1xuXHRcdHBhZGRpbmc6IDEuNXJlbSA1JTtcblx0fVxuXG5cdFx0LmNvbnRhaW5lci13ZWxjb21lLWZvb3RlciAuZm9vdGVyLXdyYXAgdWwge1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblx0XHRcdHBhZGRpbmctbGVmdDogMDtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0XHRnYXA6IDRyZW07XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0fVxuXG5cdFx0XHQuY29udGFpbmVyLXdlbGNvbWUtZm9vdGVyIC5mb290ZXItd3JhcCB1bCBsaSB7XG5cdFx0XHRcdG1hcmdpbjogMDtcblx0XHRcdH1cblxuXHRcdFx0LyogQXBwbHlpbmcgdGhlIG5hdnkgY29sb3IgdG8gdGhlIGxpbmtzICovXG5cdFx0XHQuY29udGFpbmVyLXdlbGNvbWUtZm9vdGVyIC5mb290ZXItd3JhcCB1bCBhIHtcblx0XHRcdFx0QGV4dGVuZCAudGV4dC1uYXZ5O1xuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRcdHRyYW5zaXRpb246IHRleHQtZGVjb3JhdGlvbiAwLjJzIGVhc2U7XG5cdFx0XHR9XG5cblx0XHRcdFx0LyogQWRkaW5nIGEgc2ltcGxlIGhvdmVyIGVmZmVjdCAqL1xuXHRcdFx0XHQuY29udGFpbmVyLXdlbGNvbWUtZm9vdGVyIC5mb290ZXItd3JhcCB1bCBhOmhvdmVyIHtcblx0XHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0XHRcdFx0fVxuXG5pZnJhbWUge1xuXHQvKmJvcmRlcjozcHggc29saWQgI2RkZDsqL1xuXHRib3gtc2hhZG93OiAwIDAgM3B4IDBweCByZ2JhKDAsMCwwLDAuMyk7XG5cdG1hcmdpbjogMCBhdXRvO1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuLm5vdGlmaWNhdGlvbi1iYW5uZXIge1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0cmlnaHQ6IDA7XG5cdHBhZGRpbmc6IDFlbTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRmb250LXdlaWdodDogYm9sZDtcblx0ei1pbmRleDogMTAwMDA7XG59XG5cbi8qIFNUQU5EQVJEOiB2aWJyYW50IHB1cnBsZSAqL1xuLmJhbm5lci1TVEFOREFSRCB7XG5cdGJhY2tncm91bmQ6IHJnYmEoMTU2LCAzOSwgMTc2LCAwLjcpOyAvKiAjOUMyN0IwICovXG5cdGNvbG9yOiAjZmZmO1xufVxuXG4vKiBISUdIOiB2aXZpZCBncmVlbiBhY2NlbnQgKi9cbi5iYW5uZXItSElHSCB7XG5cdGJhY2tncm91bmQ6IHJnYmEoMCwgMjAwLCA4MywgMC43KTsgLyogIzAwQzg1MyAqL1xuXHRjb2xvcjogI2ZmZjtcbn1cblxuLyogVVJHRU5UOiBkZWVwIG9yYW5nZSBhY2NlbnQgKi9cbi5iYW5uZXItVVJHRU5UIHtcblx0YmFja2dyb3VuZDogcmdiYSgyNTUsIDEwOSwgMCwgMC43KTsgLyogI0ZGNkQwMCAqL1xuXHRjb2xvcjogI2ZmZjtcbn1cblxuLyogRVJST1I6IHRydWUgcmVkICovXG4uYmFubmVyLUVSUk9SIHtcblx0YmFja2dyb3VuZDogcmdiYSgyMTMsIDAsIDAsIDAuNyk7IC8qICNENTAwMDAgKi9cblx0Y29sb3I6ICNmZmY7XG59XG5cbi5jbG9zZS1idG4ge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHJpZ2h0OiAxZW07XG5cdHRvcDogMC41ZW07XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRib3JkZXI6IG5vbmU7XG5cdGZvbnQtc2l6ZTogMS4yZW07XG5cdGNvbG9yOiBpbmhlcml0O1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG4iLCIuY29udGFpbmVyLXJlZmVyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuXHRwYWRkaW5nOiAxMHB4O1xuXHQvKnBhZGRpbmctYm90dG9tOiAyMHB4OyovXG5cdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdGJvcmRlci1yYWRpdXM6IDFyZW07XG59XG5cbi50by10b3Age1xuXHRwb3NpdGlvbjpmaXhlZDtcblx0Ym90dG9tOiA0ZW07XG5cdHJpZ2h0OiA0ZW07XG5cdC8qIHBhZGRpbmc6IDVweDsgKi9cblx0LyogYm9yZGVyOiAxcHggc29saWQgI2NjYzsgKi9cblx0LyogYmFja2dyb3VuZDogcmVkOyAqL1xuXHQvKiBjb2xvcjogd2hpdGU7ICovXG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdC8qIGRpc3BsYXk6IG5vbmU7ICovXG4gIH1cblxuLmNvbnRhaW5lci1kYXNoYm9hcmQge1xuXHRAZXh0ZW5kIC5jb250YWluZXItcmVmZXI7XG5cdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcblx0Ym9yZGVyLXJhZGl1czogMXJlbTtcbn1cblxuLnJlZmVyLW5hdiB7XG5cdGhlaWdodDogMTAwcHg7XG5cdGJhY2tncm91bmQtY29sb3I6ICRwYWdlQmFja0dyb3VuZDtcblx0ZGlzcGxheTogZmxleDtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi52aWV3LXdyYXAge1xuXHRwYWRkaW5nOiAyNXB4O1xuXHRwYWRkaW5nLXRvcDogMDtcbn1cblxuaHIuc3VidGl0bGUtbGluZS1icmVhayB7XG5cdGJvcmRlci10b3AtY29sb3I6ICRsaW5lQnJlYWs7XG59XG5cbmhyLmN5YW4ge1xuXHRib3JkZXItdG9wLWNvbG9yOiAkY3lhbjtcblx0Ym9yZGVyLXRvcC13aWR0aDogMXB4O1xufVxuXG4uc2tpcC13cmFwIHtcblx0YnV0dG9uIHtcblx0XHR3aWR0aDogMTgwcHg7XG5cdH1cblx0YnV0dG9uOmZpcnN0LWNoaWxkIHtcblx0XHRtYXJnaW4tcmlnaHQ6IDIwcHg7XG5cdH1cbn1cblxuXG4ucmVmZXItbmF2LWFuaW1hdGlvbiB7XG5cdGhlaWdodDogMTAwcHg7XG5cdGJhY2tncm91bmQtY29sb3I6ICRwYWdlQmFja0dyb3VuZDtcblx0LypiYWNrZ3JvdW5kLWNvbG9yOiAjRUJFQ0VBOyovXG5cdC8qYmFja2dyb3VuZC1jb2xvcjogcGluazsqL1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0LyphbGlnbi1pdGVtczogY2VudGVyOyovXG5cblx0LndvcmQtd3JhcHBlciB7XG5cdFx0LypiYWNrZ3JvdW5kOiBsaWdodGJsdWU7Ki9cblx0XHRwYWRkaW5nOiAwIDE0MHB4O1xuXHRcdHBhZGRpbmc6IDAgMTAwcHg7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXHRcdHAge21hcmdpbi1ib3R0b206IDA7fVxuXHRcdG1hcmdpbi1ib3R0b206IDVweDtcblx0fVxuXG5cdC5hbmltYXRpb24tb3V0dGVyLXdyYXBwZXIge1xuXHRcdG1hcmdpbjogMCAxNDBweDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRoZWlnaHQ6IDZweDtcblx0XHRiYWNrZ3JvdW5kOiAjRDJEM0Q1O1xuXG5cblx0XHQucHJvZyB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR6LWluZGV4OiAyO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0fVxuXG5cdFx0LmluZGljYXRvciB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICRuYXZ5IDAlLCAkbmF2eSA5MCUsICRjeWFuIDk4JSwgJGN5YW4gMTAwJSk7XG5cdFx0XHRoZWlnaHQ6IDZweDsgXG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGxlZnQ6MDtcblx0XHRcdHRvcDowO1xuXHRcdFx0dHJhbnNpdGlvbjogYWxsIDEuNXMgZWFzZTtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG5cdFx0XHQvKmJvcmRlci1yYWRpdXM6IDUwJTsqL1xuXHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDEwcHggMTBweDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxMHB4IDEwcHg7XG5cdFx0fVxuXG5cdFx0LmluZGljYXRvci5zZWFyY2gge3RyYW5zZm9ybTogdHJhbnNsYXRlWCgtOTUlKSAhaW1wb3J0YW50OyB9XG5cdFx0LmluZGljYXRvci5leGFtaW5hdGlvbiB7dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO31cblx0XHQuaW5kaWNhdG9yLmltcGFjdCxcblx0XHQuaW5kaWNhdG9yLmNvbXBsZXRlIHtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG5cdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMHB4IDBweDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwcHggMHB4O1x0XG5cdFx0fVxuXHR9XG5cblxufSIsIi5zZWFyY2gtd3JhcCB7XG59XG5cbi5zZWFyY2gtZm9ybSB7XG5cdHBhZGRpbmctdG9wOiAxMHB4O1xuXHQvKiBwYWRkaW5nLWJvdHRvbTogMTBweDsgKi9cblx0LmZvcm0tZ3JvdXAge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdC5mb3JtLWNvbnRyb2wge1xuXHRcdFx0Zm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDIwcHg7XG5cdFx0XHRAZXh0ZW5kIC5mb250LXJlZ3VsYXI7XG5cdFx0XHRjb2xvcjogJG5hdnk7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCAkbmF2eTtcblx0XHRcdCY6Zm9jdXMge1xuXHRcdFx0XHRib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1KSwgMCAwIDhweCByZ2JhKDEwMiwxNzUsMjMzLC42KTtcblx0XHRcdH1cblx0XHR9XG5cdFx0bGFiZWwge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAxMHB4O1xuXHRcdH1cblx0fVxuXG5cdC5mb3JtLWdyb3VwLWxhc3ROYW1lIHtcblx0XHRpbnB1dCB7XG5cdFx0XHR3aWR0aDogMjUwcHg7XG5cdFx0fVxuXHR9XG5cblx0LmZvcm0tZ3JvdXAtRE9CIHtcblx0XHQvKiBtYXJnaW4tbGVmdDogNTBweDsgKi9cblx0XHQuZm9ybS1jb250cm9sIHtcblx0XHRcdHdpZHRoOiA4MHB4O1xuXG5cdFx0XHQmOm50aC1jaGlsZCgzKSB7XG5cdFx0XHRcdG1hcmdpbjogMCAzcHg7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC8qIG1hcmdpbi1ib3R0b206IDFyZW07ICovXG5cdH1cblx0LmZvcm0tZ3JvdXAtYnV0dG9ucyB7XG5cdFx0Lypwb3NpdGlvbjogcmVsYXRpdmU7Ki9cblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0dG9wOiAtMTBweDtcblx0XHRidXR0b246Zmlyc3QtY2hpbGQge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcblx0XHR9XG5cdH1cblx0LmZvcm0tZ3JvdXAtc2VhcmNoLWJ1dHRvbnMge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0Z2FwOiA0cmVtO1xuXHR9XG59XG5cbi5zZWFyY2gtcmVzdWx0cyB7XG5cdHRhYmxlIHtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdHRyIHtcblx0XHRcdCY6Zmlyc3QtY2hpbGQge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGUgIWltcG9ydGFudDtcblx0XHRcdH1cblxuXHRcdFx0dGgge1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4uc2VhcmNoLXJlc3VsdHMtdjIge1xuXHR0YWJsZSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHR0ciB7XG5cdFx0XHQmOmZpcnN0LWNoaWxkIHtcblx0XHRcdH1cblxuXHRcdFx0dGgge1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4udGFibGUtc3RyaXBlZCA+IHRib2R5ID4gdHI6bnRoLW9mLXR5cGUoZXZlbikge1xuXHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFsZUJsdWU7ICovXG5cdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbn1cblxuLnRhYmxlLXN0cmlwZWQgPiB0Ym9keSA+IHRyOm50aC1vZi10eXBlKG9kZCkge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG59XG5cbi50YWJsZS1ibHVlLXN0cmlwZWQgPiB0Ym9keSA+IHRyOm50aC1vZi10eXBlKGV2ZW4pIHtcblx0YmFja2dyb3VuZC1jb2xvcjogJHBhbGVCbHVlO1xufVxuXG4udGFibGUtYmx1ZS1zdHJpcGVkID4gdGJvZHkgPiB0cjpudGgtb2YtdHlwZShvZGQpIHtcblx0YmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xufVxuXG4udGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyOmhvdmVyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogJG5hdnk7XG5cblx0dGQge1xuXHRcdGNvbG9yOiAkd2hpdGU7XG5cdH1cbn1cblxuLnRhYmxlLW5vLWJvcmRlciB7XG5cdGJvcmRlci13aWR0aDogMHB4O1xuXHRib3JkZXItdG9wLXdpZHRoOiAwLjFlbTtcblx0Ym9yZGVyLXRvcC1jb2xvcjogJG5hdnk7XG5cdHRoIHtcblx0XHRjb2xvcjogJG5hdnk7XG5cdFx0Zm9udC1mYW1pbHk6ICdHb3JkaXRhIEhlYXZ5Jztcblx0fVxufVxuXG4udGFibGUtbm8tYm9yZGVyID4gdGJvZHkgPiB0cltkaXNhYmxlZF0gdGQge1xuXHRmaWx0ZXI6IGJsdXIoMXB4KTtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuLmZpbHRlci1kcm9wZG93biB7XG5cdGNvbG9yOiAkbmF2eTtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi5maWx0ZXItc2VsZWN0IHtcblx0Ym9yZGVyLXJhZGl1czogMjBweDtcblx0Ym94LXNoYWRvdzogbm9uZTtcblx0QGV4dGVuZCAuZm9udC1yZWd1bGFyO1xuXHQvLyBjb2xvcjogJHRleHRHcmV5O1xuXHRjb2xvcjogJG5hdnk7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0Ym9yZGVyOiAxcHggc29saWQgJG5hdnk7XG59XG5cbi5zZWFyY2gtbGFiZWwge1xuXHRjb2xvcjogJG5hdnkgIWltcG9ydGFudDtcbn1cblxuLm9yLWxpbmUge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRtYXJnaW4tdG9wOiAtMXJlbTtcblx0d2lkdGg6IDEwMCU7XG59XG5cbi5vci1zZXBlcmF0b3Ige1xuXHR3aWR0aDogMTAwJTtcblx0bWFyZ2luLXRvcDogLTVweDtcblx0bWFyZ2luLWJvdHRvbTogMHB4O1xuXHRib3JkZXItY29sb3I6ICRuYXZ5O1xufVxuXG4uYWRkcmVzcy1pY29uIHtcblx0d2lkdGg6IDJyZW07IFxuXHRoZWlnaHQ6IDJyZW07XG5cdG1hcmdpbi10b3A6IC0wLjVyZW07XG59XG5cbi5zY29yZV90ZXh0IHtcblx0Y29sb3I6ICRuYXZ5O1xuXHRmb250LWZhbWlseTogJ0dvcmRpdGEgTGlnaHQgSXRhbGljJztcbn1cblxuLmZsZXgtY29sdW1uLWxheW91dCB7XG5cdGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0Z2FwOiAwLjVyZW07XG59XG5cbi5sYXN0bmFtZS1pbnB1dCB7XG5cdHdpZHRoOiAyNTBweCAhaW1wb3J0YW50O1xuXHRtYXJnaW4tcmlnaHQ6IDFyZW07XG59XG5cbi5mbGV4LXJvdy1sYXlvdXQge1xuXHRkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGdhcDogMC41cmVtO1xuXHRhbGlnbi1pdGVtczogYmFzZWxpbmU7XG59XG5cbi5oeXBlci1saW5rIHtcblx0Y29sb3I6ICRuYXZ5O1xuXHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRtYXJnaW4tbGVmdDogMXJlbTtcbn1cblxuLmhpZ2hsaWdodC1yb3cge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2eTtcblx0Y29sb3I6IHdoaXRlO1xuXHRjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbn1cblxuLm5vcm1hbC1yb3cge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblx0Y29sb3I6ICRuYXZ5O1xuXHRjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbn0iLCIubW9kYWwtYmFja2Ryb3AuYW0tZmFkZSB7XG5cdGJhY2tncm91bmQ6ICRuYXZ5LWJhY2tkcm9wO1xuXHRiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG5cdC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuXHRvcGFjaXR5OiAxO1xuXHR0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTtcblxuXHQmLm5nLWVudGVyIHtcblx0XHRvcGFjaXR5OiAwO1xuXG5cdFx0Ji5uZy1lbnRlci1hY3RpdmUge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHR9XG5cblx0fVxuXG5cdCYubmctbGVhdmUge1xuXHRcdG9wYWNpdHk6IDE7XG5cblx0XHQmLm5nLWxlYXZlLWFjdGl2ZSB7XG5cdFx0XHRvcGFjaXR5OiAwO1xuXHRcdH1cblxuXHR9XG59XG5cbi5tb2RhbC1kaWFsb2cge1xuXHRib3JkZXI6IDA7XG5cblx0Lm1vZGFsLWNvbnRlbnQge1xuXHRcdGJvcmRlcjogbm9uZTtcblx0XHRvdXRsaW5lOiBub25lO1xuXHRcdGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLXhsO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcblx0XHRjb2xvcjogJHRleHQtZGFyaztcblx0XHRib3gtc2hhZG93OiAkYmxhY2stdHAtNDA7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHQuZGlzbWlzcyB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR6LWluZGV4OiAxMDtcblx0XHRcdHRvcDogJGZvbnQtc2l6ZS1iYXNlO1xuXHRcdFx0cmlnaHQ6ICRmb250LXNpemUtYmFzZTtcblx0XHRcdGZvbnQtc2l6ZTogMi4ycmVtO1xuXHRcdFx0Zm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1saWdodDtcblx0XHRcdGNvbG9yOiAkdGV4dC1jbG9zZS1idG47XG5cdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0b3BhY2l0eTogMC43O1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0dHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHRcdGNvbG9yOiAkdGV4dC1kYXJrO1xuXHRcdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG5cdFx0XHR9XG5cblx0XHR9XG5cdH1cblxuXHQmLm1vZGFsLWNlbnRlciB7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDUwJTtcblx0XHRsZWZ0OiA1MCU7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG5cdH1cblxufVxuXG4ubXktbW9kYWwtaGVhZGVyIHtcblx0cGFkZGluZzogMS41cmVtIDJyZW07XG5cdGJhY2tncm91bmQtY29sb3I6ICRncmV5LW1vZGFsLWhlYWRlcjtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRncmV5LWJvcmRlci1saWdodDtcbn1cblxuLm15LW1vZGFsLWJvZHkge1xuXHRwYWRkaW5nOiAyLjVyZW0gMnJlbTtcbn1cblxuLmRpYWdub3Npcy1tb2RhbC1jb250ZW50IHtcblx0b3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbn1cblxuLm15LW1vZGFsLWZvb3RlciB7XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCAkZ3JleS1ib3JkZXItbGlnaHQ7XG5cdHBhZGRpbmc6IDMwcHggMzBweDtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG5cdC5idG4ge1xuXHRcdHdpZHRoOiAxODBweDtcblx0fVxuXG59XG5cbi5teS1tb2RhbC1mb290ZXItLXJpZ2h0IHtcblx0anVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuXHQuYnRuICsgLmJ0biB7XG5cdFx0bWFyZ2luLWxlZnQ6ICRmb250LXNpemUtYmFzZTtcblx0fVxuXG59XG5cbi5teS1tb2RhbC1mb290ZXItLWNlbnRlciB7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG5cdC5idG4ge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdG1heC13aWR0aDogMjIwcHg7XG5cdH1cblxufVxuXG4uZm9ybS1jb250cm9sOmZvY3VzIHtcblx0Ym9yZGVyLWNvbG9yOiAkY3lhbjtcblx0b3V0bGluZTogMDtcblx0Ym94LXNoYWRvdzogMCAwIDAgM3B4ICRjeWFuLXRwLTI1O1xufVxuXG4ub3ZlcnJpZGUtbW9kYWwge1xuXHQuZm9ybS1jb250cm9sIHtcblx0XHRib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1zbTtcblx0fVxuXG5cdC5hZGRpdGlvbmFsLW1lc3NhZ2Uge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdC5tZXNzYWdlIHtcblx0XHRcdHBhZGRpbmc6IDEwcHg7XG5cdFx0fVxuXG5cdFx0LmNvdW50LXJlbWFpbmluZyB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRmb250LXNpemU6IDAuNzVyZW07XG5cdFx0XHRib3R0b206IDVweDtcblx0XHRcdHJpZ2h0OiA4cHg7XG5cdFx0XHRjb2xvcjogJHRleHQtbXV0ZWQ7XG5cdFx0fVxuXG5cdH1cblxuXHQuc2VsZWN0LW92ZXJyaWRlLFxuXHQubWVzc2FnZSB7XG5cdFx0Zm9udC1zaXplOiAkZm9udC1zaXplLWJhc2U7XG5cdH1cblxufVxuXG4udGFibGUtZGV0YWlscyB7XG5cdHdpZHRoOiAxMDAlO1xuXHRtYXgtd2lkdGg6IDYwMHB4O1xuXHRib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuXG5cdHRkIHtcblx0XHRib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcblx0XHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbDtcblx0XHRwYWRkaW5nOiAwLjVyZW07XG5cblx0XHQmOmZpcnN0LWNoaWxkIHtcblx0XHRcdHdpZHRoOiA0MCU7XG5cdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHRcdGNvbG9yOiAkdGV4dC1tdXRlZDtcblx0XHRcdHBhZGRpbmctcmlnaHQ6ICRmb250LXNpemUtYmFzZTtcblx0XHR9XG5cblx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0d2lkdGg6IDYwJTtcblx0XHRcdGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbWVkaXVtO1xuXHRcdFx0Y29sb3I6ICR0ZXh0LWRhcms7XG5cdFx0fVxuXG5cdH1cbn1cblxuLmRvdWJsZS1saW5lLWhlYWRlciB7XG5cdHBhZGRpbmc6ICRmb250LXNpemUtYmFzZSAwO1xuXHRoZWlnaHQ6IGF1dG87XG5cdG1pbi1oZWlnaHQ6IDgwcHg7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRnYXA6IDAuMjVyZW07XG59XG5cbi5pY29uLXdyYXAtc3VjY2VzcyB7XG5cdGhlaWdodDogMTAwcHg7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0bWFyZ2luLWJvdHRvbTogJGZvbnQtc2l6ZS1iYXNlO1xuXG5cdGltZyB7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHR9XG5cbn1cblxuLmxpbWl0LXdpZHRoIHtcblx0bWF4LXdpZHRoOiA0NTBweDtcblx0bWFyZ2luOiAwIGF1dG87XG59XG5cbi5saW1pdC13aWR0aC13aWRlIHtcblx0bWF4LXdpZHRoOiA2NTBweDtcblx0bWFyZ2luOiAwIGF1dG87XG59XG5cbi5mb3JtLWdyb3VwLW92ZXJyaWRlLXNlbGVjdCB7XG5cdG1hcmdpbjogMCBhdXRvO1xuXHRtYXgtd2lkdGg6IDcwMHB4O1xufVxuXG4uaGVscC1tb2RhbCB7XG5cdC5zdWJ0aXRsZS1saW5lLWJyZWFrIHtcblx0XHRtYXJnaW46IDEwcHggMDtcblx0fVxuXG5cdC5xLWhlYWRlci1mbGV4IHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXG5cdFx0Lmg1IHtcblx0XHRcdG1heC13aWR0aDogODUlO1xuXHRcdH1cblxuXHRcdC5xLWljb24td3JhcCB7XG5cdFx0XHRoZWlnaHQ6IDM1cHg7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0XHRpbWcge1xuXHRcdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHR9XG5cblx0XHR9XG5cdH1cbn1cblxuLnEtaWNvbi13cmFwIHtcblx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZTtcbn1cblxuLnJvdGF0ZSB7XG5cdHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG59XG5cbi5xLWJvZHktd3JhcCB7XG5cdGRpc3BsYXk6IG5vbmU7XG5cdHBhZGRpbmctcmlnaHQ6IDYwcHg7XG5cdGNvbG9yOiAkdGV4dC1tdXRlZDtcbn1cblxuLm15LW1vZGFsLWJvZHktaGVscCB7XG5cdG1heC13aWR0aDogODAwcHg7XG5cdG1hcmdpbjogMCBhdXRvO1xufVxuXG4udGFibGUtY29udGFjdCB7XG5cdG1hcmdpbi1ib3R0b206IDA7XG5cblx0dGQge1xuXHRcdGJvcmRlcjogMCAhaW1wb3J0YW50O1xuXHRcdGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsO1xuXHRcdGNvbG9yOiAkdGV4dC1tdXRlZDtcblx0XHRwYWRkaW5nOiAzcHggMCAhaW1wb3J0YW50O1xuXG5cdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHR3aWR0aDogMTIzcHg7XG5cdFx0fVxuXG5cdH1cbn1cblxuLmNvbnRhY3QtbmFtZSB7XG5cdG1hcmdpbi10b3A6IDIwcHg7XG5cdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtc2VtaWJvbGQ7XG59XG5cbi5tb3JwaC1tb2RhbCB7XG5cdGNvbG9yOiAkdGV4dC1tdXRlZDtcblxuXHQuZm9ybS1jb250cm9sIHtcblx0XHRib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1zbTtcblx0XHRjb2xvcjogJHRleHQtZGFyaztcblx0XHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbDtcblx0XHRmb250LXNpemU6ICRmb250LXNpemUtYmFzZTtcblxuXHRcdG9wdGlvbiB7XG5cdFx0XHRjb2xvcjogJHRleHQtZGFyaztcblx0XHR9XG5cblx0fVxuXG5cdC5sZW5zLXdyYXAge1xuXHRcdG1hcmdpbi1ib3R0b206IDVweDtcblxuXHRcdGltZyB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLXNtO1xuXHRcdH1cblxuXHR9XG5cblx0LmxlbnMtd3JhcC0xIHtcblx0XHRtYXJnaW4tdG9wOiAyMHB4O1xuXHR9XG5cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG5cdC5tb2RhbC1sZy1tb3JwaCB7XG5cdFx0d2lkdGg6IDk4NHB4O1xuXHR9XG59XG5cbi5yZWZlcnJhbC1yYWRpby13cmFwIHtcblx0bWFyZ2luLXRvcDogMTVweDtcblxuXHQucmFkaW8taW5saW5lIC5tYXJrZXIge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRsZWZ0OiAtM3B4O1xuXHRcdHRvcDogMHB4O1xuXHR9XG5cblx0LmZvcm0tZ3JvdXAge1xuXHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdH1cblxuXHRpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuXHRcdG1hcmdpbi10b3A6IDFweDtcblx0fVxuXG5cdC5oZWxwLWJsb2NrIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAxMHB4O1xuXHR9XG5cbn1cblxuLm5vdGlmaWNhdGlvbi1ib2R5IHtcblx0bWF4LXdpZHRoOiA0NTBweDtcblx0bWFyZ2luOiAwIGF1dG87XG5cdGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsO1xuXHRjb2xvcjogJHRleHQtbXV0ZWQ7XG5cblx0dWwge1xuXHRcdHBhZGRpbmctbGVmdDogMDtcblx0XHRsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5cblx0XHQ+IGxpID4gdWwge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiA0MHB4O1xuXHRcdH1cblxuXHR9XG5cblx0bGkge1xuXHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdH1cblxufVxuXG4uaGlkZGVuIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLmZsZXgtZG91YmxlLXJvd3Mge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdHBhZGRpbmctdG9wOiAxZW0gIWltcG9ydGFudDtcblx0Ym9yZGVyLXRvcC13aWR0aDogMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5waGFybWFjeS1vcHRpb24ge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4ucGhhcm1hY3ktdGl0bGUge1xuXHRwYWRkaW5nLXRvcDogMC4xZW07XG5cdGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbWVkaXVtO1xufVxuXG4ucGhhcm1hY3ktYWRkcmVzcyB7XG5cdHBhZGRpbmctdG9wOiAwLjFlbTtcblx0cGFkZGluZy1ib3R0b206IDAuMWVtO1xuXHRmb250LXNpemU6ICRmb250LXNpemUtc207XG5cdGNvbG9yOiAkdGV4dC1tdXRlZDtcbn1cblxuLm1kLWRpYWxvZy1jdXN0b21lci1jb250YWluZXIge1xuXHRib3JkZXI6IG5vbmU7XG5cdG91dGxpbmU6IG5vbmU7XG5cdGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLXhsO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG5cdGNvbG9yOiAkdGV4dC1kYXJrO1xuXHRib3gtc2hhZG93OiAkYmxhY2stdHAtNDA7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cblx0LmRpYWxvZy10b29sYmFyIHtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHQvKiBjZW50ZXIgYWxsIGl0ZW1zICovXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR9XG5cblx0LmRpYWxvZy10aXRsZSB7XG5cdFx0ZmxleDogbm9uZTtcblx0XHQvKiBwcmV2ZW50IHN0cmV0Y2hpbmcgKi9cblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGxlZnQ6IDUwJTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cdH1cblxuXHQuZGlhbG9nLXN1YnRpdGxlIHtcblx0XHRmbGV4OiBub25lO1xuXHRcdGZvbnQtc2l6ZTogMTJwdDtcblx0XHQvKiBwcmV2ZW50IHN0cmV0Y2hpbmcgKi9cblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGxlZnQ6IDUwJTtcblx0XHR0b3A6IDIuNXJlbTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cdH1cblxuXHQuZGlhbG9nLXRvb2xiYXIgbWQtYnV0dG9uIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0cmlnaHQ6IDA7XG5cdH1cblxuXG5cdC5kaXNtaXNzIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0ei1pbmRleDogMTA7XG5cdFx0dG9wOiAkZm9udC1zaXplLWJhc2U7XG5cdFx0cmlnaHQ6ICRmb250LXNpemUtYmFzZTtcblx0XHRmb250LXNpemU6IDIuMnJlbTtcblx0XHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWxpZ2h0O1xuXHRcdGNvbG9yOiAkdGV4dC1jbG9zZS1idG47XG5cdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0b3BhY2l0eTogMC43O1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0Y29sb3I6ICR0ZXh0LWRhcms7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG5cdFx0fVxuXG5cdH1cbn1cblxuLm1kLWRpYWxvZy1jdXN0b21lci1jb250YWluZXIgLmRpYWxvZy10aXRsZSB7XG4gICAgY29sb3I6ICMwYTI1NDAgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDEuNjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59IiwiLnJlZ2lzdGVyLWVkaXQtZm9ybSB7XG5cdC5jb2wtc20tMyB7XG5cdFx0cGFkZGluZy1yaWdodDogMDtcblx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdH1cblx0bGFiZWwuY29udHJvbC1sYWJlbCB7XG5cdFx0cGFkZGluZy10b3A6IDhweDtcblx0fVxuXHQuZm9ybS1jb250cm9sIHtcblx0XHRmb250LXNpemU6MTJweCAhaW1wb3J0YW50O1xuXHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0fVxuXHQuZG9iLWdyb3VwIHtcblx0XHRkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cblx0XHQuZm9ybS1jb250cm9sIHtcblx0XHRcdHdpZHRoOiAzMSU7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0fVxuXHRcdHNwYW4uaGVscC1ibG9jayB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDEwMCU7XG5cdFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdH1cblxuXG5cdFx0LmZvcm0tY29udHJvbDpudGgtY2hpbGQoMikge1xuXHRcdFx0LyptYXJnaW46IDAgMTVweDsqL1xuXHRcdH1cblx0fVxuXHQucmFkaW8taW5saW5lIHtcblx0XHR3aWR0aDogODBweDtcblx0XHQvKnRleHQtYWxpZ246IGNlbnRlcjsqL1xuXHRcdGlucHV0IHtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdC8qcmlnaHQ6IDEwcHg7Ki9cblx0XHR9XG5cdFx0Lm1hcmtlciB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRsZWZ0OiA3cHg7XG5cdFx0XHR0b3A6IC0xcHg7XG5cdFx0fVxuXHR9XG5cdC5ldGhuaWNpdHktZ3JvdXAge1xuXG5cdH1cbn1cblxuLnJlZ2lzdGVyLWVkaXQtZm9ybS12MiB7XG5cdC5jb2wtc20tMyB7XG5cdFx0cGFkZGluZy1yaWdodDogMDtcblx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdH1cblx0bGFiZWwuY29udHJvbC1sYWJlbCB7XG5cdFx0cGFkZGluZy10b3A6IDhweDtcblx0fVxuXHQuZm9ybS1jb250cm9sIHtcblx0XHRmb250LXNpemU6MTJweCAhaW1wb3J0YW50O1xuXHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0fVxuXHQuZG9iLWdyb3VwIHtcblx0XHRkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG5cdFx0LyogZmxleC1kaXJlY3Rpb246IHJvdzsgKi9cblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cblx0XHQuZm9ybS1jb250cm9sIHtcblx0XHRcdHdpZHRoOiAzMSU7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0fVxuXHRcdHNwYW4uaGVscC1ibG9jayB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRtYXJnaW4tdG9wOiAzZW07XG5cdFx0fVxuXHRcdC5mb3JtLWNvbnRyb2w6bnRoLWNoaWxkKDIpIHtcblx0XHRcdC8qbWFyZ2luOiAwIDE1cHg7Ki9cblx0XHR9XG5cdH1cblx0LnJhZGlvLWlubGluZSB7XG5cdFx0d2lkdGg6IDgwcHg7XG5cdFx0Lyp0ZXh0LWFsaWduOiBjZW50ZXI7Ki9cblx0XHRpbnB1dCB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHQvKnJpZ2h0OiAxMHB4OyovXG5cdFx0fVxuXHRcdC5tYXJrZXIge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0bGVmdDogN3B4O1xuXHRcdFx0dG9wOiAtMXB4O1xuXHRcdH1cblx0fVxuXHQuZXRobmljaXR5LWdyb3VwIHtcblxuXHR9XG59XG5cbi5hbmltYXRlLXNob3ctaGlkZS5uZy1oaWRlIHtcblx0b3BhY2l0eTogMDtcbn1cblxuLmFuaW1hdGUtc2hvdy1oaWRlLm5nLWhpZGUtYWRkLFxuLmFuaW1hdGUtc2hvdy1oaWRlLm5nLWhpZGUtcmVtb3ZlIHtcblx0dHJhbnNpdGlvbjogYWxsIGVhc2UgMC4zcztcbn1cblxuLmFuaW1hdGUtbWUge1xuXHRvcGFjaXR5OiAxO1xufVxuXG4uY2hlY2tib3gtaW5saW5lIHtcblx0bWluLXdpZHRoOiAyNSVcbn1cblxuLmZvcm0tZ3JvdXAtZXRobmljaXR5IHtcblx0bWFyZ2luLWJvdHRvbTogOXB4O1xuXG5cdGxhYmVsLmNoZWNrYm94LWlubGluZTpmaXJzdC1jaGlsZCB7XG5cdFx0bWFyZ2luLWxlZnQ6IDEwcHg7XG5cdH1cblx0bGFiZWwuY2hlY2tib3gtaW5saW5lIHtcblx0XHRzcGFuLm1hcmtlciB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRib3R0b206LTJweDtcblx0XHR9XG5cdH1cblxuXHQuY2hlY2tib3gtaW5saW5lLW90aGVyIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0bGVmdDogLTRweDtcblx0fVxuXG5cdC5jb2wtc20tOSB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR9XG5cblx0c3Bhbi5oZWxwLWJsb2NrIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOjEwMCU7XG5cdH1cbn1cblxuLypHb29nbGUgUGxhY2VzIEFQSSB0byBicmluZyBhdXRvY29tcGxldGUgaGlnaGVyIHotaW5kZXggdGhhbiBib290c3RyYXAgbW9kYWwqL1xuLnBhYy1jb250YWluZXIge3otaW5kZXg6IDEwMDAwICFpbXBvcnRhbnQ7fVxuXG4uZm9ybS1pbXBhY3Qge1xuXHQuZm9ybS1ncm91cCB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMjVweDtcblx0fVxuXG5cdGxhYmVsLmNvbnRyb2wtbGFiZWwge1xuXHRcdHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcblx0XHRAZXh0ZW5kIC5mb250LXJlZ3VsYXI7XG5cdFx0QGV4dGVuZCAudGV4dC10ZXh0R3JleTtcblxuXHRcdC5xdWVzdGlvbi1tYXJrIHtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdGhlaWdodDogMjBweDtcblx0XHRcdGJvdHRvbToycHg7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XG5cdFx0XHRpbWcge1xuXHRcdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHRcdG92ZXJmbG93OmhpZGRlbjtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0LnJhZGlvLWZsZXgtd3JhcCB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cblx0XHQucmFkaW8taW5saW5lIHtcblx0XHRcdHdpZHRoOiA4MHB4O1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0XHQubWFya2VyIHtcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHR0b3A6MnB4O1xuXHRcdFx0XHRAZXh0ZW5kIC5mb250LWJvbGQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQuY29udHJvbC1sYWJlbC1sZWZ0IHtwYWRkaW5nLXJpZ2h0OiAwO31cblxuXHQuZm9ybS1ncm91cC1oZWFkZXIge1xuXHRcdC5yYWRpby1mbGV4LXdyYXAge1xuXG5cdFx0XHQucmFkaW8taW5saW5lIHtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6IDA7XG5cdFx0XHRcdHdpZHRoOiA4MHB4O1xuXHRcdFx0XHRAZXh0ZW5kIC50ZXh0LXRleHRHcmV5O1xuXHRcdFx0XHRAZXh0ZW5kIC5mb250LW1lZGl1bTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0XG59XG4ubGlmZS1xdWFsaXR5IHtcblx0LmZvcm0tZ3JvdXAuaGFzLWVycm9yIHtcblx0XHRvdXRsaW5lOiAxcHggc29saWQgJGRhbmdlcjtcblx0XHRwYWRkaW5nLXRvcDogMTZweDtcblx0XHRwYWRkaW5nLWJvdHRvbTogMTZweDtcblx0XHQucmFkaW8tZmxleC13cmFwIHtcblx0XHRcdC8qcGFkZGluZy1ib3R0b206IDZweDsqL1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdFx0LmhlbHAtYmxvY2sge1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRvcDogMjQwJTtcblx0XHRcdFx0LyogYm90dG9tOiAtNDVweDsgKi9cblx0XHRcdFx0bGVmdDogODAlO1xuXHRcdFx0XHQvKiB3aWR0aDogMTAwJTtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyOyAqL1xuXHRcdFx0fVxuXG5cdFx0fVxuXHR9XG59XG4uZm9ybS1mb290ZXIge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXHQuc3VibWl0LXdyYXAtZmxleCB7XG5cdFx0cGFkZGluZzogMjBweCAzMHB4IDIwcHggNTBweDtcblx0XHRib3JkZXItcmFkaXVzOiA1MHB4O1xuXHRcdGJhY2tncm91bmQ6ICR3aGl0ZTtcblx0XHQvKmJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgyNzBkZWcsICRwdXJwbGUsICRuYXZ5KSAhaW1wb3J0YW50OyovXG5cdFx0ZGlzcGxheTogZmxleDtcblxuXHRcdC5ub3RlLXdyYXAge1xuXHRcdFx0d2lkdGg6IDQwMHB4O1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAyMHB4O1xuXHRcdFx0cCB7XG5cdFx0XHRcdG1hcmdpbjogMDtcblx0XHRcdFx0JjpmaXJzdC1jaGlsZCB7bWFyZ2luLWJvdHRvbTogMTBweDt9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC5idXR0b24td3JhcCB7XG5cdFx0XHR3aWR0aDogMjAwcHg7XG5cdFx0XHRhbGlnbi1zZWxmOiBjZW50ZXI7XG5cdFx0fVxuXHR9XG5cblx0LnNob3dpbmctd2FybmluZyB7XG5cdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDI3MGRlZywgJHB1cnBsZSwgJG5hdnkpICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuLmZvcm0tbG9naW4ge1xuXHR3aWR0aDogMjgwcHg7XG5cdHBhZGRpbmctdG9wOiAxNXB4O1xuXHRcblx0LmZvcm0tZ3JvdXAge1xuXHRcdG1hcmdpbi1ib3R0b206IDMwcHg7XG5cblx0XHRpbnB1dCB7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAyNHB4O1xuXHRcdH1cblx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMTVweDtcblx0XHR9XG5cdH1cblx0YnV0dG9uIHtmb250LXNpemU6IDEycHg7fVxuXG5cdC5idG4tbG9naW4ge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdHdpZHRoOiAzNCU7XG5cdFx0cGFkZGluZzogNnB4IDE4cHg7XG5cdH1cblx0LmJ0bi1sb3N0IHtcblx0XHRjb2xvcjogJHRleHRHcmV5O1xuXHRcdGZsb2F0OiByaWdodDtcblx0XHR3aWR0aDogNjAlO1xuXHRcdHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjFzIGxpbmVhcjtcblxuXHRcdCY6aG92ZXIsXG5cdFx0JjphY3RpdmUge1xuXHRcdFx0Y29sb3I6ICR0ZXh0R3JleTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcblx0XHR9XG5cdH1cbn1cblxuXG5mb3JtW25hbWU9c2VhcmNoXSB7XG5cdHNwYW4uaGVscC1ibG9jayB7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxufVxuXG4uaGFzLXN1Y2Nlc3MgLmZvcm0tY29udHJvbCB7XG5cdGJvcmRlci1jb2xvcjogJGN5YW47XG5cdCY6Zm9jdXMge1xuXHRcdGJvcmRlci1jb2xvcjogJGN5YW47XG5cdFx0Ym94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSksIDAgMCA0cHggJGN5YW47XG5cdH1cbn1cblxuLmhhcy1lcnJvciAuZm9ybS1jb250cm9sIHtcblx0Ym9yZGVyLWNvbG9yOiAkZGFuZ2VyO1xuXHQmOmZvY3VzIHtcblx0XHRib3JkZXItY29sb3I6ICRkYW5nZXI7XG5cdH1cbn1cblxuZm9ybVtuYW1lPWxvZ2luRm9ybV0ge1xuXHQuaGVscC1ibG9jayB7XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Y29sb3I6ICR3aGl0ZTtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdHBhZGRpbmctbGVmdDogMTNweDtcblx0fVxufVxuXG5sYWJlbCB7XG5cdGNvbG9yOiAkdGV4dEdyZXkgIWltcG9ydGFudDtcbn1cblxuZm9ybVtuYW1lPXNldFBhc3N3b3JkXSB7XG5cdC5mb3JtLWNvbnRyb2wge1xuXHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdH1cblx0LmhlbHAtYmxvY2sge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0fVxufVxuXG5mb3JtW25hbWU9Zm9ybUltcGFjdF0ge1xuXHQuZm9ybS1ncm91cC5oYXMtZXJyb3Ige1xuXHRcdG91dGxpbmU6IDFweCBzb2xpZCAkZGFuZ2VyO1xuXHRcdHBhZGRpbmctdG9wOiAycHg7XG5cdFx0LnJhZGlvLWZsZXgtd3JhcCB7XG5cdFx0XHQvKnBhZGRpbmctYm90dG9tOiA2cHg7Ki9cblx0XHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHRcdC5oZWxwLWJsb2NrIHtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHQvKnRvcDogMTAwJTsqL1xuXHRcdFx0XHRib3R0b206IC00MHB4O1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0fVxuXG5cdFx0fVxuXHR9XG59XG5cbmZvcm1bbmFtZT1leGFtXSB7XG5cdHNwYW4uaGVscC1ibG9jayB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0fVxufVxuXG4uYnRuLXN3aXRjaCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiA1MHB4O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0YyNzg3ODtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjRjI3ODc4O1xuICAgIGJvcmRlci1yYWRpdXM6IDQwcHg7XG4gICAgXG4gICAgLmJ0bi1zd2l0Y2gtY2lyY2xlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDI1cHg7XG4gICAgICAgIHdpZHRoOiAyNXB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0MHB4O1xuICAgIH1cbn1cblxuLmJ0bi1zd2l0Y2gtLW9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODBDREJFO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICM4MENEQkU7XG4gICAgXG4gICAgLmJ0bi1zd2l0Y2gtY2lyY2xlLS1vbiB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgIH1cbn1cblxuLnN1cmdlcnktYWdyZWVtZW50LWZvcm0tZm9vdGVyIHtcblx0ZGlzcGxheTogZmxleDtcblx0anVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblx0LnN1Ym1pdC13cmFwLWZsZXgge1xuXHRcdHBhZGRpbmc6IDEycHggMTVweCAxMnB4IDI1cHg7XG5cdFx0Ym9yZGVyLXJhZGl1czogNTBweDtcblx0XHRiYWNrZ3JvdW5kOiAkd2hpdGU7XG5cdFx0LypiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMjcwZGVnLCAkcHVycGxlLCAkbmF2eSkgIWltcG9ydGFudDsqL1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cblx0XHQubm90ZS13cmFwIHtcblx0XHRcdHdpZHRoOiA0MDBweDtcblx0XHRcdG1hcmdpbi1yaWdodDogMjBweDtcblx0XHRcdHAge1xuXHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRcdCY6Zmlyc3QtY2hpbGQge21hcmdpbi1ib3R0b206IDEwcHg7fVxuXHRcdFx0fVxuXHRcdH1cblx0XHQuYnV0dG9uLXdyYXAge1xuXHRcdFx0Lyogd2lkdGg6IDIwMHB4OyAqL1xuXHRcdFx0YWxpZ24tc2VsZjogY2VudGVyO1xuXHRcdH1cblx0fVxuXG5cdC5zaG93aW5nLXdhcm5pbmcge1xuXHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgyNzBkZWcsICRwdXJwbGUsICRuYXZ5KSAhaW1wb3J0YW50O1xuXHR9XG59XG5cbi5wcmVtaXVtLWxlbnMtcmVjb21tZW5kLWNoZWNrYm94ZXMge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ucmVjb21tZW5kZWQtb3B0aW9uLWhpZ2hsaWdodCB7XG5cdGJhY2tncm91bmQtY29sb3I6ICNlNmYyZmY7XG5cdGNvbG9yOiAjMDA3QkZGO1xuXHRmb250LXdlaWdodDogYm9sZDtcbn1cblxuLnJlY29tbWVuZGVkLWxhYmVsIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdHJpZ2h0OiAwO1xuXHRiYWNrZ3JvdW5kOiAjMGQ2ZWZkO1xuXHRjb2xvcjogI2ZmZjtcblx0Zm9udC1zaXplOiAxLjFyZW07XG5cdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdHBhZGRpbmc6IDRweCA2cHg7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0bGluZS1oZWlnaHQ6IDEuMjtcblx0Ym9yZGVyLXJhZGl1czogNHB4IDRweCAwIDA7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRtYXJnaW4tYm90dG9tOjAuNXJlbTtcbn0iLCIucG9wb3ZlciB7XG5cdG91dGxpbmU6bm9uZTtcblx0bWF4LXdpZHRoOiAxMDAlO1xuXHRwYWRkaW5nOiAwO1xuXHRwYWRkaW5nLWJvdHRvbTogMTBweDtcblx0aDMucG9wb3Zlci10aXRsZSB7XG5cdFx0YmFja2dyb3VuZDogJGN5YW47XG5cdFx0Y29sb3I6ICR3aGl0ZTtcblx0XHRAZXh0ZW5kIC5mb250LW1lZGl1bTtcblx0XHRmb250LXNpemU6IDEycHg7XG5cdH1cblx0LnBvcG92ZXItY29udGVudCB7XG5cdFx0QGV4dGVuZCAuZm9udC1yZWd1bGFyO1xuXHRcdGZvbnQtc2l6ZTogMTJweDtcblx0fVxufVxuXG4ucG9wb3Zlci1ub3JtYWwge1xuXHRvdXRsaW5lOm5vbmU7XG5cdG1heC13aWR0aDogMTJyZW07XG5cdHBhZGRpbmc6IDA7XG5cdC8qIHBhZGRpbmctYm90dG9tOiAxMHB4OyAqL1xuXHRoMy5wb3BvdmVyLXRpdGxlIHtcblx0XHRiYWNrZ3JvdW5kOiAkY3lhbjtcblx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdEBleHRlbmQgLmZvbnQtbWVkaXVtO1xuXHRcdGZvbnQtc2l6ZTogMTJweDtcblx0fVxuXHQucG9wb3Zlci1jb250ZW50IHtcblx0XHRAZXh0ZW5kIC5mb250LXJlZ3VsYXI7XG5cdFx0Zm9udC1zaXplOiAxMnB4O1xuXHR9XG59XG5cbi5hbS1wb3BvdmVyIHtcblx0b3BhY2l0eTogMTtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7XG5cdC8qdHJhbnNpdGlvbjogYWxsIC4xNXMgZWFzZS1pbjsqL1xuXHQmLm5nLWVudGVyIHtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdC8qdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zMHB4KTsqL1xuXHRcdFxuXHRcdCYubmctZW50ZXItYWN0aXZlIHtcblxuXHRcdH1cblx0fVxuXHQmLm5nLWxlYXZlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdCYubmctbGVhdmUtYWN0aXZlIHtcblx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0fVxuXHR9XG59XG5cbi5wb3BvdmVyLmluZm8tZGV0YWlsLXBvcG92ZXIge1xuXHRtYXgtd2lkdGg6IDI2cmVtO1xuXHR3aWR0aDogYXV0bztcblx0ei1pbmRleDogMTEwMDtcbn1cblxuLnBvcG92ZXIuaW5mby1kZXRhaWwtcG9wb3ZlciAucG9wb3Zlci1jb250ZW50IHtcblx0d29yZC13cmFwOiBicmVhay13b3JkO1xuXHRvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuXHRjb2xvcjogJHRleHRHcmV5ICFpbXBvcnRhbnQ7XG5cblx0bGFiZWwge1xuXHRcdGNvbG9yOiAkdGV4dC1kYXJrICFpbXBvcnRhbnQ7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxufVxuXG4uaW5mby1wb3BvdmVyLWNvbW1lbnQge1xuXHR3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG5cdHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG5cdG1heC13aWR0aDogMjRyZW07XG59XG5cbi5kaWFnbm9zaXMtaW5mby1wb3BvdmVyLWFuY2hvciB7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ud2lkZXItcG9wb3ZlciB7XG5cdG1heC13aWR0aDogMjRyZW07XG5cdG9wYWNpdHk6IDE7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMnJlbSk7XG5cdC8qdHJhbnNpdGlvbjogYWxsIC4xNXMgZWFzZS1pbjsqL1xuXHQmLm5nLWVudGVyIHtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdC8qdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zMHB4KTsqL1xuXHRcdFxuXHRcdCYubmctZW50ZXItYWN0aXZlIHtcblxuXHRcdH1cblx0fVxuXHQmLm5nLWxlYXZlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdCYubmctbGVhdmUtYWN0aXZlIHtcblx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0fVxuXHR9XG59XG4iLCIudGFibGUtY29tcGxldGUge1xuXHR0aCxcblx0dGQge1xuXHRcdGJvcmRlci10b3A6IDAgIWltcG9ydGFudDtcblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XG5cdH1cblxuXHR0aCB7XG5cdFx0Y29sb3I6ICRuYXZ5O1xuXHRcdEBleHRlbmQgLmZvbnQtYm9sZDtcblx0XHRmb250LXNpemU6IDE2cHg7XG5cdH1cblxuXHR0ZDpudGgtY2hpbGQoMSkge1xuXHRcdC8qYmFja2dyb3VuZDogcGluazsqL1xuXHRcdEBleHRlbmQgLmZvbnQtcmVndWxhcjtcblx0XHRjb2xvcjogJHRleHRHcmV5O1xuXHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHQvKndpZHRoOiA1MCU7Ki9cblx0fVxuXG5cdHRkOm50aC1jaGlsZCgyKSB7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdGhlaWdodDogNjBweDtcblx0XHR3aWR0aDogMTYwcHg7XG5cdFx0aW1nIHtcblx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0fVxuXHR9XG5cdHRkOm50aC1jaGlsZCgzKSB7XG5cdFx0LypiYWNrZ3JvdW5kOiBwaW5rOyovXG5cdFx0d2lkdGg6IDI0MHB4O1xuXHR9XG5cdHRoOm50aC1jaGlsZCgyKSB7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdHdpZHRoOiAyMDBweDtcblx0fVxuXG5cdC5pbmRlbnQge1xuXHRcdHBhZGRpbmctbGVmdDogMzBweDtcblx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR9XG59XG5cbi5jb21wbGV0ZS1mbGV4LXdyYXAge1xuXHRkaXNwbGF5OmZsZXg7XG5cdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnF1ZXN0aW9uLXdyYXAge1xuXHRoZWlnaHQ6IDQ0cHg7XG5cdHdpZHRoOiA0NHB4O1xuXHRib3JkZXI6IDJweCBzb2xpZCBnb2xkO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdHNwYW4ge1xuXHRcdEBleHRlbmQgLmZvbnQtYm9sZDtcblx0XHRjb2xvcjogZ29sZDtcblx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogNTAlO1xuXHRcdGxlZnQ6IDUwJTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcblx0fVxufVxuXG4ucGF0aWVudC1zdW1tYXJ5LWRldGFpbHMge1xuXHRmb250LXNpemU6IDEwcHg7XG59XG5cbi5kb2MtZmxleC13cmFwIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiB3cmFwO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdG1heC1oZWlnaHQ6IDQwMHB4O1xuXHRtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRncmV5O1xuICAgIHBhZGRpbmc6IDVweDtcblx0Ym9yZGVyLXJhZGl1czogNXB4O1xuXHRcblx0Ji5kb2Mtd2FybmluZyB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDE4MiwgMTkzLCAwLjQpO1xuXHR9XG5cblx0LmRvYy1jYXJkIHtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuXHRcdHdpZHRoOiAzMi41JTtcblx0XHRtYXJnaW4tYm90dG9tOiA4cHg7XG5cdFx0cGFkZGluZzogMTBweDtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0Ym9yZGVyLXJhZGl1czogNnB4O1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdFx0XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRib3gtc2hhZG93OiAwcHggMHB4IDNweCAwcHggcmdiYSgwLDAsMCwwLjMpO1xuXHRcdH1cblxuXHRcdCYuc2VsZWN0ZWQge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJHBhbGVCbHVlO1xuXHRcdH1cblxuXHRcdCYuZG9jLWNhcmQtZ2hvc3Qge1xuXHRcdFx0Ym9yZGVyOm5vbmU7XG5cdFx0XHRoZWlnaHQ6IDA7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdH1cblxuXHRcdHAge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHR9XG5cdH1cbn1cblxuLnNlbGVjdGVkLWRvYy13cmFwIHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkcGFsZUJsdWU7XG5cdGJvcmRlcjogMXB4IHNvbGlkICRsaW5lQnJlYWs7XG5cdHBhZGRpbmc6IDEwcHg7XG5cdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdGJvcmRlci1yYWRpdXM6IDZweDtcblxuXHQuc2VsZWN0ZWQtZG9jLW5hbWUge1xuXHRcdEBleHRlbmQgLmZvbnQtYm9sZC1pdGFsaWM7XG5cdFx0QGV4dGVuZCAudGV4dC1uYXZ5O1xuXHR9XG5cdC5zZWxlY3RlZC1kb2MtcHJhY3RpY2Uge1xuXHRcdEBleHRlbmQgLm1iLTA7XG5cdFx0QGV4dGVuZCAudGV4dC10ZXh0R3JleTtcblx0XHRAZXh0ZW5kIC5mb250LXJlZ3VsYXI7XG5cdH1cbn1cblxuLmRvY3Rvci1maWx0ZXItZ3JvdXAge1xuXHRpbnB1dFt0eXBlPXJhZGlvXSB7XG5cdFx0dG9wOiAtMnB4O1xuXG5cdH1cblx0XG5cdC5yYWRpby1pbmxpbmUge1xuXHRcdCY6Zmlyc3QtY2hpbGQge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDE1cHg7XG5cdFx0fVxuXHR9XG59IiwiLmV4YW0td3JhcCB7XG5cbn1cblxuLmZvcm0tZXhhbSB7XG5cdEBleHRlbmQgLmZvbnQtcmVndWxhcjtcblx0Y29sb3I6ICR0ZXh0R3JleTtcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRcblx0c2VsZWN0LFxuXHQuZm9ybS1jb250cm9sIHtcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0QGV4dGVuZCAuZm9udC1yZWd1bGFyO1xuXHRcdGNvbG9yOiAkdGV4dEdyZXk7XG5cdFx0Zm9udC1zaXplOiAxMnB4O1xuXHR9XG5cdFxuXHQuZm9ybS1ncm91cC1sYWJlbCB7XG5cdFx0cGFkZGluZy1yaWdodDogMjBweDtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cdFx0bWFyZ2luLWJvdHRvbTogMjVweDtcblxuXHRcdC5jb250cm9sLWxhYmVsIHtcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdFx0LyphbGlnbi1zZWxmOiBjZW50ZXI7Ki9cblx0XHR9XG5cdH1cblxuXHQuc25lbGxlbiB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHQvKmp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsqL1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0c2VsZWN0LFxuXHRcdC5tYXJrLXdyYXAge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAyMHB4O1xuXHRcdFx0Lyp3aWR0aDogY2FsYyg1MCUgLSA2MHB4KTsqL1xuXHRcdFx0d2lkdGg6IDEwMHB4O1xuXHRcdH1cblx0fVxuXHRcblx0Lm1hcmstd3JhcCxcblx0Lm1hcmstd3JhcC1kZWcge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdC5zaXgtcHJlIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDo1MCU7XG5cdFx0XHR0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTtcblx0XHRcdGxlZnQ6LTIwcHg7XG5cdFx0fVxuXG5cdFx0LnN0cmlwZS1wb3N0IHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDo1MCU7XG5cdFx0XHR0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTtcblx0XHRcdHJpZ2h0Oi0xNXB4O1xuXHRcdH1cblxuXHRcdC5zdHJpcGUtcHJlIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDo1MCU7XG5cdFx0XHR0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTtcblx0XHRcdGxlZnQ6LTEycHg7XG5cdFx0fVxuXHR9XG5cblxuXHQubWFyay13cmFwLWRlZyB7XG5cdFxuXHRcdC5kZWcge1xuXHRcdFx0d2lkdGg6IDgwcHg7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDZweDtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDZweDtcblx0XHR9XG5cdFx0XG5cdFx0LnN0cmlwZS1wb3N0IHtcblx0XHRcdHJpZ2h0OiAtMzdweDtcblx0XHR9XG5cblx0fVxufVxuXG4uY2hlY2stbGFiZWwge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0LmNoZWNrLXNwYW4ge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR0b3A6IDJweDtcblx0fVxufVxuXG4ubGVucyB7XG5cdHdpZHRoOiAyMjBweDtcbn1cblxuLmxlbnMtbGFiZWwge1xuXHRtYXJnaW4tdG9wOiAzNHB4O1xufVxuXG4udmlzdWFsLWxhYmVsIHtcblx0bWFyZ2luLXRvcDogNzBweDtcbn1cblxuLmZvcm0tZ3JvdXAtbGFiZWwtdG9wIHtcblx0bWFyZ2luLXRvcDogNDBweDtcbn1cblxuLmNvbC1iaW4ge1xuXHRwYWRkaW5nLWxlZnQ6IDYwcHg7XG59IiwiLnRlcm1zIHtcblx0QGV4dGVuZCAuZm9udC1yZWd1bGFyO1xuXHRAZXh0ZW5kIC50ZXh0LXRleHRHcmV5O1xuXHRcblx0aDEge1xuXHRcdG1hcmdpbjogMzBweCAwO1xuXHRcdEBleHRlbmQgLmZvbnQtYm9sZDtcblx0XHRAZXh0ZW5kIC50ZXh0LWxvZ291dEdyZXk7XG5cdH1cblxuXHRoMyB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMTVweDtcblx0XHRAZXh0ZW5kIC5mb250LW1lZGl1bTtcblx0XHRAZXh0ZW5kIC50ZXh0LW5hdnk7XG5cdH1cblx0XG5cdHAge1xuXHRcdG1hcmdpbi1ib3R0b206IDE1cHg7XG5cdH1cblxuXHRhIHtcblx0XHRjb2xvcjogJG5hdnk7XG5cdH1cblxuXHQuaW1hZ2UxIHtcblx0XHRmbG9hdDogbGVmdDtcblx0XHR3aWR0aDogNTAlO1xuXHRcdG1hcmdpbi1yaWdodDogMTBweDtcblx0fVxufSIsIi5vcC1oZWFkZXIge1xuXHRjb2xvcjogJHdoaXRlO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHBhZGRpbmc6IDVweCAwO1xuXHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXG5cdGg0IHtcblx0XHRmb250LXNpemU6IDFlbTtcblx0fVxufVxuXG4ubmF2eS10ZXh0IHtcblx0Y29sb3I6ICRuYXZ5ICFpbXBvcnRhbnQ7XG59XG5cbi5uYXZ5LWxpbmUge1xuXHRoZWlnaHQ6IDJweDtcblx0YmFja2dyb3VuZC1jb2xvcjogJG5hdnk7XG5cdG1hcmdpbi1sZWZ0OiAxLjVlbTtcblx0bWFyZ2luLXJpZ2h0OiAxLjVlbTtcblx0bWFyZ2luLXRvcDogMWVtO1xufVxuXG4ucHJlLW9wLWZvcm0ge1xuXHRAZXh0ZW5kIC5mb250LXJlZ3VsYXI7XG5cdGNvbG9yOiAkdGV4dEdyZXk7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0Ly8gYmFja2dyb3VuZC1jb2xvcjogcGluaztcblx0cGFkZGluZzogMCAyMHB4O1xuXG5cdHNlbGVjdCxcblx0LmZvcm0tY29udHJvbCB7XG5cdFx0Ym9yZGVyLXJhZGl1czogMjBweDtcblx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdEBleHRlbmQgLmZvbnQtcmVndWxhcjtcblx0XHQvLyBjb2xvcjogJHRleHRHcmV5O1xuXHRcdGNvbG9yOiAkbmF2eTtcblx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJG5hdnk7XG5cdH1cblxuXHQuZm9ybS1ncm91cC1sYWJlbCB7XG5cdFx0cGFkZGluZy1yaWdodDogMjBweDtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cdFx0bWFyZ2luLWJvdHRvbTogMjVweDtcblxuXHRcdC5jb250cm9sLWxhYmVsIHtcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdH1cblx0fVxuXG5cdC5mbGV4IHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0c2VsZWN0LFxuXHRcdC5pbnB1dCxcblx0XHQuaW5saW5lLW51bWJlcixcblx0XHQubWFyay13cmFwIHtcblx0XHRcdG1hcmdpbi1yaWdodDogMjBweDtcblx0XHRcdHdpZHRoOiAxMDBweDtcblx0XHR9XG5cdH1cblxuXHQubWFyay13cmFwLFxuXHQubWFyay13cmFwLWRlZyB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0LnNpeC1wcmUge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cdFx0XHRsZWZ0OiAtMjBweDtcblx0XHR9XG5cblx0XHQuc3RyaXBlLXBvc3Qge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cdFx0XHRyaWdodDogLTE1cHg7XG5cdFx0fVxuXG5cdFx0LnN0cmlwZS1wcmUge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cdFx0XHRsZWZ0OiAtMTJweDtcblx0XHR9XG5cdH1cblxuXHQubWFyay13cmFwLWRlZyB7XG5cdFx0LmRlZyB7XG5cdFx0XHR3aWR0aDogODBweDtcblx0XHRcdHBhZGRpbmctbGVmdDogNnB4O1xuXHRcdFx0cGFkZGluZy1yaWdodDogNnB4O1xuXHRcdH1cblxuXHRcdC5zdHJpcGUtcG9zdCB7XG5cdFx0XHRyaWdodDogLTM3cHg7XG5cdFx0fVxuXHR9XG5cblx0bGFiZWwge1xuXHRcdGNvbG9yOiAkbmF2eSAhaW1wb3J0YW50O1xuXHR9XG5cblx0Lm1hcmtlciB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHRvcDogMnB4O1xuXHR9XG59XG5cbi5idG4tbmV4dCB7XG5cdHdpZHRoOiAxMjBweDtcblx0QGV4dGVuZCAuZm9udC1ib2xkO1xufVxuXG4uY2hlY2stbGFiZWwge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0LmNoZWNrLXNwYW4ge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR0b3A6IDJweDtcblx0fVxufVxuXG4ubGVucyB7XG5cdHdpZHRoOiAyMjBweDtcbn1cblxuLmxlbnMtbGFiZWwge1xuXHRtYXJnaW4tdG9wOiAzNHB4O1xufVxuXG4udmlzdWFsLWxhYmVsIHtcblx0bWFyZ2luLXRvcDogNzBweDtcbn1cblxuLmZvcm0tZ3JvdXAtbGFiZWwtdG9wIHtcblx0bWFyZ2luLXRvcDogNDBweDtcbn1cblxuLmNvbC1iaW4ge1xuXHRwYWRkaW5nLWxlZnQ6IDYwcHg7XG59XG5cbi5wcmVzc3VyZS13cmFwIHtcblx0ZGlzcGxheTogZmxleDtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRtYXgtd2lkdGg6IDQ2MHB4O1xuXG5cdC5mb3JtLWdyb3VwIHtcblx0XHR3aWR0aDogNDclO1xuXHR9XG59XG5cbi5oYWxmLXdpZHRoIHtcblx0bWF4LXdpZHRoOiA1MCU7XG59XG5cbi5xdWFydGVyLXdpZHRoIHtcblx0bWF4LXdpZHRoOiAyNSU7XG59XG5cbi5ibHVlLWJveCB7XG5cdGJvcmRlcjogMXB4IHNvbGlkICRuYXZ5O1xuXHRwYWRkaW5nOiAxNXB4O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkcGFsZUJsdWU7XG5cdG1hcmdpbi1ib3R0b206IDE1cHg7XG5cdGJvcmRlci1yYWRpdXM6IDhweDtcblx0LmhlYWRlciB7XG5cdFx0QGV4dGVuZCAudGV4dC1uYXZ5O1xuXG5cdFx0Lmg0IHtcblx0XHRcdEBleHRlbmQgLmZvbnQtYm9sZDtcblx0XHRcdG1hcmdpbi1ib3R0b206IDVweDtcblx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0fVxuXHR9XG59XG5cbi5leWUtaGVhZGluZyB7XG5cdG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi5wcmUtb3Atc2F2ZS13cmFwIHtcblx0bWluLWhlaWdodDogODBweDtcblx0ZGlzcGxheTogZmxleDtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRtYXJnaW46IDIwcHggMDtcblxuXHQucHJvZ3Jlc3Npb24td3JhcCB7XG5cdFx0bWluLXdpZHRoOiAyNTBweDtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXHRcdC5zYXZlLXByb2dyZXNzIHtcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdG1hcmdpbi1yaWdodDogMjBweDtcblx0XHRcdEBleHRlbmQgLnRleHQtbmF2eTtcblx0XHR9XG5cdH1cblxuXHQucHJvZ3Jlc3Npb24tYWxlcnQtd3JhcCB7XG5cdFx0d2lkdGg6IGNhbGMoMTAwJSAtIDI4MHB4KTtcblxuXHRcdC5hbGVydCB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXG5cdFx0XHQmICsgLmFsZXJ0IHtcblx0XHRcdFx0bWFyZ2luLXRvcDogMTBweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLnN0YWNrLXZlcnQge1xuXHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR0b3A6IDJweDtcblx0bWFyZ2luLWxlZnQ6IDEwcHg7XG5cblx0LnJhZGlvLWlubGluZSArIC5yYWRpby1pbmxpbmUge1xuXHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdG1hcmdpbi10b3A6IDVweDtcblx0fVxufVxuXG4ub3B0aW9uYWwge1xuXHRAZXh0ZW5kIC50ZXh0LXB1cnBsZTtcblx0QGV4dGVuZCAuZm9udC1saWdodC1pdGFsaWM7XG59XG5cbi5mbGV4LWJpb21ldHJ5IHtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXHQuY29udHJvbC1sYWJlbCB7XG5cdFx0bWFyZ2luLXJpZ2h0OiAxNXB4O1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cbn1cblxuLmJpb21ldHJ5LWlucHV0IHtcblx0d2lkdGg6IDEwMHB4O1xuXHRtYXJnaW4tcmlnaHQ6IDIwcHg7XG59XG5cbi5heGlzLXdyYXAge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5heGlzLXRpbWVzLFxuLmF4aXMtZGVnIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDUwJTtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbi5heGlzLXRpbWVzIHtcblx0cmlnaHQ6IGNhbGMoMTAwJSArIDZweCk7XG59XG5cbi5heGlzLWRlZyB7XG5cdGxlZnQ6IDExMHB4O1xufVxuXG4uc2VjdGlvbi1sYWJlbCB7XG5cdG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5iaW9tZXRyeSB7XG5cdC5mb3JtLXJvdyB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMTVweDtcblx0fVxuXHQubGVmdC1jb2x1bW4ge1xuXHRcdHdpZHRoOiAyOHB4O1xuXHR9XG5cdC5mb3JtLWdyb3VwIHtcblx0XHRtYXJnaW4tYm90dG9tOiAwcHg7XG5cdH1cblx0LmhlbHAtYmxvY2sge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR3aWR0aDogMzAwcHg7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0fVxufVxuXG4uYmlvLWludGVybmFsLWZsZXgge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4udGFibGUtbWVkaWNhdGlvbiB7XG5cdEBleHRlbmQgLnRleHQtbmF2eTtcblx0dGgsXG5cdHRkIHtcblx0XHRib3JkZXItY29sb3I6ICRuYXZ5ICFpbXBvcnRhbnQ7XG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xuXHR9XG5cdHRkOmxhc3QtY2hpbGQge1xuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHR9XG5cblx0LnJlbW92ZS1tZWQge1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRuYXZ5O1xuXHRcdHdpZHRoOiAyNHB4O1xuXHRcdGhlaWdodDogMjRweDtcblx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRuYXZ5O1xuXHRcdFx0Y29sb3I6IHdoaXRlO1xuXHRcdH1cblx0fVxufVxuXG4uYnRuLWFkZC1hbGxlcmd5IHtcblx0aGVpZ2h0OiAzNHB4O1xuXHR3aWR0aDogMzRweDtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1xufVxuXG4uZmxleC1hbGxlcmd5IHtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXHQuZ3JvdyB7XG5cdFx0ZmxleDogMSAwO1xuXHRcdG1hcmdpbi1yaWdodDogMjBweDtcblx0fVxufVxuXG4uYW5hZXN0aGV0aWMtd3JhcCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cblx0LmZvcm0tZ3JvdXAge1xuXHRcdHdpZHRoOiAyNjBweDtcblx0XHRtYXJnaW4tcmlnaHQ6IDIwcHg7XG5cdH1cblxuXHQuaGVscC1ibG9jayB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdH1cbn1cblxuLnRleHQtYXJlYS13cmFwIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdC5jb3VudC1yZW1haW5pbmcge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRmb250LXNpemU6IDEwcHg7XG5cdFx0Ym90dG9tOiAwO1xuXHRcdHJpZ2h0OiAxNXB4O1xuXHRcdGNvbG9yOiAkbmF2eTtcblx0XHRAZXh0ZW5kIC5mb250LXJlZ3VsYXItaXRhbGljO1xuXHR9XG59XG5cbi5kaWFiZXRlcy1wb3AtdXAtd3JhcCB7XG5cdHdpZHRoOiA1MCU7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnJldGlub3BhdGh5LXBvcC11cC1PRCB7XG5cdC5yZXRpbm9wYXRoeS1wb3B1cCB7XG5cdFx0bGVmdDogY2FsYygxMDAlICsgMTBweCk7XG5cdH1cbn1cblxuLnJldGlub3BhdGh5LXBvcC11cC1PUyB7XG5cdC5yZXRpbm9wYXRoeS1wb3B1cCB7XG5cdFx0cmlnaHQ6IGNhbGMoMTAwJSArIDEwcHgpO1xuXHR9XG59XG5cbi5zaG93UmV0aW5vcGF0aHkge1xuXHQucmV0aW5vcGF0aHktcG9wdXAge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG59XG5cbi5tYWN1bG9wYXRoeS1wb3AtdXAtT0Qge1xuXHQubWFjdWxvcGF0aHktcG9wdXAge1xuXHRcdGxlZnQ6IGNhbGMoMTAwJSArIDEwcHgpO1xuXHR9XG59XG5cbi5tYWN1bG9wYXRoeS1wb3AtdXAtT1Mge1xuXHQubWFjdWxvcGF0aHktcG9wdXAge1xuXHRcdHJpZ2h0OiBjYWxjKDEwMCUgKyAxMHB4KTtcblx0fVxufVxuXG4uc2hvd01hY3Vsb3BhdGh5IHtcblx0Lm1hY3Vsb3BhdGh5LXBvcHVwIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxufVxuXG4ucmV0aW5vcGF0aHktcG9wdXAsXG4ubWFjdWxvcGF0aHktcG9wdXAge1xuXHRib3JkZXI6IDFweCBzb2xpZCAkbmF2eTtcblx0cGFkZGluZzogMTVweDtcblx0Zm9udC1zaXplOiAxMHB4O1xuXHRjb2xvcjogJG5hdnk7XG5cdGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuXHR3aWR0aDogNDgwcHg7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0ei1pbmRleDogMTtcblx0dG9wOiAwO1xuXHRkaXNwbGF5OiBub25lO1xuXG5cdC50YWJsZS1ib3JkZXJlZCB7XG5cdFx0Ym9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG5cdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcblxuXHRcdHRoIHtcblx0XHRcdEBleHRlbmQgLmZvbnQtYm9sZC1pdGFsaWM7XG5cdFx0fVxuXG5cdFx0dGgsXG5cdFx0dGQge1xuXHRcdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgJG5hdnk7XG5cdFx0XHRib3JkZXItbGVmdDogMXB4IHNvbGlkICRuYXZ5O1xuXG5cdFx0XHQmOmZpcnN0LWNoaWxkIHtcblx0XHRcdFx0Ym9yZGVyLWxlZnQ6IG5vbmU7XG5cdFx0XHR9XG5cblx0XHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRcdGJvcmRlci1yaWdodDogbm9uZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHR0cjpsYXN0LWNoaWxkIHtcblx0XHRcdHRkIHtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcblx0XHRcdFx0cGFkZGluZy1ib3R0b206IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0dGQsXG5cdHAge1xuXHRcdEBleHRlbmQgLmZvbnQtcmVndWxhci1pdGFsaWM7XG5cdH1cblxuXHR0ZCxcblx0dGgge1xuXHRcdGJvcmRlci1jb2xvcjogJG5hdnkgIWltcG9ydGFudDtcblx0fVxuXG5cdHAge1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cbn1cblxuLnJldGlub3BhdGh5LXBvcHVwIHtcblx0dGg6Zmlyc3QtY2hpbGQsXG5cdHRkOmZpcnN0LWNoaWxkIHtcblx0XHR3aWR0aDogMTIwcHg7XG5cdH1cbn1cblxuLnByZS1vcC1mb3JtIHtcblx0LmZsZXgtbGVucyB7XG5cdFx0ZGlzcGxheTogZmxleDtcblxuXHRcdC5mb3JtLWdyb3VwIHtcblx0XHRcdHdpZHRoOiAxNTBweDtcblx0XHRcdG1hcmdpbi1yaWdodDogMjBweDtcblx0XHR9XG5cblx0XHQuZm9ybS1ncm91cC1heGlzIHtcblx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHRcdHdpZHRoOiAxMTBweDtcblx0XHR9XG5cdH1cbn1cblxuLmFsbGVyZ3ktZm9ybS13cmFwIHtcblx0LmhlbHAtYmxvY2sge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0fVxufVxuXG4ubG9jc2lpaS13cmFwIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aWR0aDogNTAlO1xufVxuXG4ubG9jc2lpaS1pbWctd3JhcCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0d2lkdGg6IDUwMHB4O1xuXHRpbWcge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG59XG5cbi5sb2NzaWlpLWltZy13cmFwLU9EIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR3aWR0aDogNzAwcHg7XG5cdGxlZnQ6IGNhbGMoMTAwJSArIDE1cHgpO1xuXHR0b3A6IDA7XG5cdHotaW5kZXg6IDE7XG5cdGRpc3BsYXk6IG5vbmU7XG5cblx0aW1nIHtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxufVxuXG4ubG9jc2lpaS1pbWctd3JhcC1PUyB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0d2lkdGg6IDUwMHB4O1xuXHRyaWdodDogY2FsYygxMDAlICsgMTVweCk7XG5cdHRvcDogMDtcblx0ei1pbmRleDogMTtcblx0ZGlzcGxheTogbm9uZTtcblxuXHRpbWcge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG59XG5cbi5zaG93T3BhbCxcbi5zaG93Q29sb3VyLFxuLnNob3dDb3J0aWNhbCxcbi5zaG93UHVwaWwsXG4uc2hvd1N1YiB7XG5cdGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG59XG5cbi5wcmUtb3AtaGVhZGVyIHtcblx0Ly8gb3V0bGluZTogMXB4IGRvdHRlZCBwaW5rO1xuXHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXG5cdC5oZWFkLWZsZXgge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcblxuXHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRtYXJnaW4tdG9wOiAxMHB4O1xuXHRcdH1cblx0fVxuXG5cdGgzLFxuXHRoNCB7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdEBleHRlbmQgLmZvbnQtYm9sZDtcblx0XHRAZXh0ZW5kIC50ZXh0LW5hdnk7XG5cdH1cblxuXHQuaGVhZC1saW5rIHtcblx0XHRjb2xvcjogJG5hdnk7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0XHRAZXh0ZW5kIC5mb250LXJlZ3VsYXI7XG5cdH1cblxuXHQuaGVhZC1uYW1lIHtcblx0XHRtYXJnaW4tcmlnaHQ6IDIwcHg7XG5cdH1cblxuXHQuaGVhZGVyLWxlZnQsXG5cdC5oZWFkZXItcmlnaHQge1xuXHRcdC8vIG91dGxpbmU6IDFweCBzb2xpZCBncmVlbjtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcblx0fVxuXG5cdC5oZWFkZXItcmlnaHQge1xuXHRcdC8vIG1hcmdpbi1yaWdodDogODBweDtcblx0XHQvLyBvdXRsaW5lOiAxcHggc29saWQgYmx1ZTtcblx0fVxufVxuXG4uZ3JhcGhzLWNvbnRhaW5lciB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcbn0gXG5cbi5jYXJkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm94LXNoYWRvdzogMCAwIDRweCByZ2IoMCAwIDAgLyAyMCUpO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdG1hcmdpbjogMWVtO1xuXHRtYXJnaW4tcmlnaHQ6IDA7XG59XG4gIFxuLmNhcmQ6aG92ZXIge1xuXHQvKiBib3gtc2hhZG93OiAwIDhweCAyOHB4IDAgcmdiYSgwLDAsMCwwLjIpOyAqL1xuICB9XG4gIFxuLmNhcmQtY29udGFpbmVyIHtcblx0cGFkZGluZy1sZWZ0OiAxZW07XG5cdHBhZGRpbmctcmlnaHQ6IDFlbTtcblx0LyogcGFkZGluZzogMnB4IDE2cHg7ICovXG59XG5cbi5wYXRpZW50cy1lbXB0eSB7XG5cdEBleHRlbmQgLmNhcmQ7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmNGY3ZmU7IFxuXHRtYXJnaW46IDA7XG5cdGhlaWdodDogJ2F1dG8nO1xuXHRoNCB7XG5cdFx0QGV4dGVuZCAuZm9udC1ib2xkO1xuXHRcdEBleHRlbmQgLnRleHQtbmF2eTtcblx0XHRwYWRkaW5nOiAyZW07XG5cdH1cbn1cblxuLm1lbnUtc2VjdGlvbiB7XG5cdEBleHRlbmQgLmNhcmQ7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmNGY3ZmU7IFxuXHRtaW4taGVpZ2h0OiAxMGVtO1xuXHRtYXJnaW4tbGVmdDogMDtcblx0bWFyZ2luLXRvcDogMDtcblx0aDQge1xuXHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0QGV4dGVuZCAuZm9udC1ib2xkO1xuXHRcdEBleHRlbmQgLnRleHQtbmF2eTtcblx0XHRwYWRkaW5nLWxlZnQ6IDFlbTtcblx0XHRwYWRkaW5nLXRvcDogMWVtO1xuXHRcdHBhZGRpbmctYm90dG9tOiAwLjRlbTtcblx0fVxufVxuXG4ubWVudS1jb250YWluZXIge1xufVxuXG4ubWVudS1saXN0IHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblx0ZmxleC13cmFwOiB3cmFwO1xufVxuXG4ubWVudS1hcnJvdyB7XG5cdGJvcmRlci13aWR0aDogMTFweDtcblx0LyogcG9zaXRpb246IGFic29sdXRlOyAqL1xuXHRkaXNwbGF5OiBibG9jaztcblx0d2lkdGg6IDA7XG5cdGhlaWdodDogMDtcblx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0bWFyZ2luLXRvcDogLTExcHg7XG5cdG1hcmdpbi1sZWZ0OiAtMTFweDtcblx0Ym9yZGVyLXRvcC13aWR0aDogMDtcblx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogI2Y0ZjdmZTtcblx0bWFyZ2luLWxlZnQ6IDQ4JTtcblx0LyogbGVmdDogNTAlOyAqL1xufVxuXG4udmVydGljYWwtYmFyIHtcblx0d2lkdGg6IDRweDtcblx0YmFja2dyb3VuZC1jb2xvcjogJG5hdnk7XG5cdGFsaWduLXNlbGY6IHN0cmV0Y2g7XG5cdG1hcmdpbi1sZWZ0OiAyZW07XG5cdG1hcmdpbi10b3A6IDFlbTtcblx0bWFyZ2luLWJvdHRvbTogMWVtO1xufVxuXG4ubWVudS1ibG9jayB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cblxuLnJpZ2h0LWFycm93IHtcblx0bWFyZ2luLXRvcDogMWVtO1xuXHR3aWR0aDogMTZweDtcblx0aGVpZ2h0OiAxNnB4O1xufVxuXG4ubWVudS1pdGVtIHtcblx0d2lkdGg6IDExZW07XG5cdGg0IHtcblx0XHRtYXJnaW46IDA7XG5cdFx0QGV4dGVuZCAuZm9udC1ib2xkO1xuXHRcdEBleHRlbmQgLnRleHQtbmF2eTtcblx0XHRmb250LXNpemU6IDEycHg7XG5cdH1cblx0cCB7XG5cdCAgcGFkZGluZy1sZWZ0OiAxZW07XG5cdCAgcGFkZGluZy1yaWdodDogMC4yZW07XG5cdCAgdGV4dC1hbGlnbjogbGVmdDtcblx0ICBmb250LXNpemU6IDEycHg7XG5cdH1cbn1cblxuLnBhdGllbnQtaGVhZGVyIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXG5cdC5oZWFkZXItdGl0bGUge1xuXHRcdGZsZXg6IDE7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogMTByZW07XG5cdH1cblxuXHQubWVudS1jb250YWluZXIge1xuXHRcdGZsZXg6IDEyO1xuXHR9XG5cblx0LmxpbmstZGlzYWJsZWQge1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdGN1cnNvcjogZGVmYXVsdDtcblx0XHRvcGFjaXR5OiAwLjY7XG5cdH1cblxuXHQuYXJyb3ctZG93biB7XG5cdFx0Ym9yZGVyOiBzb2xpZCAkbmF2eTtcblx0XHRib3JkZXItd2lkdGg6IDAgMnB4IDJweCAwO1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRwYWRkaW5nOiAzcHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogMnB4O1xuXHRcdG1hcmdpbi1sZWZ0OiAycHg7XG5cdFx0dHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcblx0fVxuXG5cdC5hcnJvdy1yaWdodCB7XG5cdFx0Ym9yZGVyOiBzb2xpZCAkbmF2eTtcblx0XHRib3JkZXItd2lkdGg6IDAgMnB4IDJweCAwO1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRwYWRkaW5nOiAzcHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogMnB4O1xuXHRcdG1hcmdpbi1sZWZ0OiAycHg7XG5cdFx0dHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuXHR9XG5cblx0aDMsXG5cdGg0IHtcblx0XHRtYXJnaW46IDA7XG5cdFx0QGV4dGVuZCAuZm9udC1ib2xkO1xuXHRcdEBleHRlbmQgLnRleHQtbmF2eTtcblx0fVxuXG5cdGg1IHtcblx0XHRtYXJnaW46IDA7XG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdEBleHRlbmQgLmZvbnQtYm9sZDtcblx0XHRAZXh0ZW5kIC50ZXh0LW5hdnk7XG5cdH1cblxuXHQucGF0aWVudC1jYXJkIHtcblx0XHRAZXh0ZW5kIC5jYXJkO1xuXHRcdHBhZGRpbmctYm90dG9tOiAxZW07XG5cdH1cblxuXHQucGF0aWVudC1kZXRhaWwtc2VjdGlvbiB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0cGFkZGluZy10b3A6IDAuNWVtO1xuXHRcdGg0IHtcblx0XHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHR9XG5cdH1cblxuXHQudmVydGljYWwtc2VjdGlvbiB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHR9XG5cbn1cblxuXG4ucG9wb3Zlci1wcmVvcC13cmFwIHtcblx0cGFkZGluZzogMjBweDtcblx0cGFkZGluZy1ib3R0b206IDA7XG5cdHdpZHRoOiAzMDBweDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdGxhYmVsIHtcblx0XHRjb2xvcjogJG5hdnkgIWltcG9ydGFudDtcblx0XHRAZXh0ZW5kIC5mb250LXJlZ3VsYXI7XG5cdFx0Zm9udC1zaXplOiAxMnB4O1xuXHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdH1cblxuXHQuZm9ybS1jb250cm9sIHtcblx0XHRib3JkZXItcmFkaXVzOiAyMHB4O1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0QGV4dGVuZCAuZm9udC1yZWd1bGFyO1xuXHRcdGNvbG9yOiAkbmF2eTtcblx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJG5hdnk7XG5cdH1cblxuXHQuZm9ybS1ncm91cDpsYXN0LWNoaWxkIHtcblx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHR9XG59XG5cbi5wb3BvdmVyIHtcblx0Ym9yZGVyLWNvbG9yOiAkbmF2eTtcbiAgICAvKiB3aWR0aDogMjBlbTtcblx0bWF4LXdpZHRoOiAyMGVtOyAqL1xuXHQubWFya2VyIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0dG9wOiAycHg7XG5cdH1cbn1cblxuLnBvcG92ZXIuYm90dG9tID4gLmFycm93IHtcblx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogJG5hdnk7XG59XG5cbi5zcGlubmVyLXdyYXAge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi52ZXJ0aWNhbC1idXR0b25zIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuXHRidXR0b24gKyBidXR0b24ge1xuXHRcdG1hcmdpbi10b3A6IDEwcHg7XG5cdH1cbn1cblxuLnZlcnRpY2FsLXJhZGlvLWdyb3VwcyB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdG1hcmdpbi10b3A6IDFlbTtcbn1cblxuLnJhZGlvLWJ1dHRvbi1pbmxpbmUge1xuXHRtYXJnaW4tbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1ib3R0b206IDFlbTtcbn1cblxuLm15LW1vZGFsLWZvb3Rlci1wYXRpZW50LWRldGFpbHMge1xuXHQuYnRuLW5hdnkge1xuXHRcdHdpZHRoOiAyMjBweDtcblx0fVxufVxuXG4ud2lkdGhfMzVfZW17XG5cdHdpZHRoOiAzNWVtO1xufVxuXG5oci5saWZlLXF1YWxpdHktbGluZS1icmVhayB7XG5cdGJvcmRlci10b3AtY29sb3I6ICMzODUwYTI7XG5cdG1hcmdpbi10b3A6IDA7XG5cdG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5jdXN0b21lcl9jaGVja2JveF9yZWQge1xuICAgaW5wdXRbdHlwZT1jaGVja2JveF06YmVmb3JlIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR3aWR0aDogMTNweDtcblx0XHRoZWlnaHQ6IDEzcHg7XG5cdFx0Ym9yZGVyOiBzb2xpZCByZWQ7XG5cdFx0Ym9yZGVyLXJhZGl1czogMnB4O1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHdpZHRoOiAxNXB4O1xuXHRcdGhlaWdodDogMTVweDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XG59XG4gICBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmFmdGVyIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHdpZHRoOiA1cHg7XG5cdFx0aGVpZ2h0OiAxMHB4O1xuXHRcdGJvcmRlcjogc29saWQgd2hpdGU7XG5cdFx0Ym9yZGVyLXdpZHRoOiAwIDJweCAycHggMDtcblx0XHQtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcblx0XHQtbXMtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuXHRcdHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiA1cHg7XG5cdFx0bGVmdDogNXB4O1xufVxuIHNwYW4ge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMXB4O1xuXHRwYWRkaW5nLWxlZnQ6IDAuNWVtO1xuIH1cbn1cblxuLmN1c3RvbWVyX2NoZWNrYm94X2dyZWVuIHtcblx0aW5wdXRbdHlwZT1jaGVja2JveF06YmVmb3JlIHtcblx0XHQgY29udGVudDogXCJcIjtcblx0XHQgZGlzcGxheTogYmxvY2s7XG5cdFx0IHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHQgd2lkdGg6IDEzcHg7XG5cdFx0IGhlaWdodDogMTNweDtcblx0XHQgYm9yZGVyOiBzb2xpZCBncmVlbjtcblx0XHQgYm9yZGVyLXJhZGl1czogMnB4O1xuXHRcdCBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiB9XG4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDpiZWZvcmUge1xuXHRcdCBjb250ZW50OiBcIlwiO1xuXHRcdCBkaXNwbGF5OiBibG9jaztcblx0XHQgcG9zaXRpb246IGFic29sdXRlO1xuXHRcdCB3aWR0aDogMTVweDtcblx0XHQgaGVpZ2h0OiAxNXB4O1xuXHRcdCBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjtcbiB9XG5cdGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6YWZ0ZXIge1xuXHRcdCBjb250ZW50OiBcIlwiO1xuXHRcdCBkaXNwbGF5OiBibG9jaztcblx0XHQgd2lkdGg6IDVweDtcblx0XHQgaGVpZ2h0OiAxMHB4O1xuXHRcdCBib3JkZXI6IHNvbGlkIHdoaXRlO1xuXHRcdCBib3JkZXItd2lkdGg6IDAgMnB4IDJweCAwO1xuXHRcdCAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcblx0XHQgLW1zLXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcblx0XHQgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuXHRcdCBwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0IHRvcDogNXB4O1xuXHRcdCBsZWZ0OiA1cHg7XG4gfVxuICBzcGFuIHtcblx0IHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0IHRvcDogLTFweDtcblx0IHBhZGRpbmctbGVmdDogMC41ZW07XG4gIH1cbiB9XG5cblxuLmN1c3RvbWVyX3JhZGlvX3JlZCB7XG5cdC5tYXJrZXIge1xuXHRcdG1hcmdpbi1sZWZ0OiAwLjVlbTtcblx0XHRtYXJnaW4tcmlnaHQ6IDFlbTtcblx0XHRmb250LXNpemU6IDEuNmVtO1xuXHRcdGNvbG9yOiByZWQgIWltcG9ydGFudDtcblx0fVxuXHRpbnB1dFt0eXBlPVwicmFkaW9cIl06YWZ0ZXIge1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgICAgICB0b3A6IC0ycHg7XG4gICAgICAgIGxlZnQ6IC0xcHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2QxZDNkMTtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgYm9yZGVyOiAwcHggc29saWQgd2hpdGU7XG4gICAgfTtcblxuICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXTpjaGVja2VkOmFmdGVyIHtcbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICAgICAgdG9wOiAtMnB4O1xuICAgICAgICBsZWZ0OiAtMXB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgYm9yZGVyOiAwcHggc29saWQgd2hpdGU7XG4gICAgfTtcbn1cblxuLmN1c3RvbWVyX3JhZGlvX2dyZWVuIHtcblx0Lm1hcmtlciB7XG5cdFx0bWFyZ2luLWxlZnQ6IDAuNWVtO1xuXHRcdG1hcmdpbi1yaWdodDogMWVtO1xuXHRcdGZvbnQtc2l6ZTogMS42ZW07XG5cdFx0Y29sb3I6IGdyZWVuICFpbXBvcnRhbnQ7XG5cdH1cblx0aW5wdXRbdHlwZT1cInJhZGlvXCJdOmFmdGVyIHtcbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICAgICAgdG9wOiAtMnB4O1xuICAgICAgICBsZWZ0OiAtMXB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkMWQzZDE7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgIGJvcmRlcjogMHB4IHNvbGlkIHdoaXRlO1xuICAgIH07XG5cbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl06Y2hlY2tlZDphZnRlciB7XG4gICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgICAgIHRvcDogLTJweDtcbiAgICAgICAgbGVmdDogLTFweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgYm9yZGVyOiAwcHggc29saWQgd2hpdGU7XG4gICAgfTtcbn1cblxuLmN1c3RvbWVyX3JhZGlvX25vcm1hbCB7XG5cdC5tYXJrZXIge1xuXHRcdG1hcmdpbi1sZWZ0OiAwLjVlbTtcblx0XHRtYXJnaW4tcmlnaHQ6IDFlbTtcblx0XHRmb250LXNpemU6IDEuNmVtO1xuXHR9XG5cdGlucHV0W3R5cGU9XCJyYWRpb1wiXTphZnRlciB7XG4gICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgICAgIHRvcDogLTJweDtcbiAgICAgICAgbGVmdDogLTFweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDFkM2QxO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICBib3JkZXI6IDBweCBzb2xpZCB3aGl0ZTtcbiAgICB9O1xuXG4gICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQ6YWZ0ZXIge1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgICAgICB0b3A6IC0ycHg7XG4gICAgICAgIGxlZnQ6IC0xcHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5hdnk7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgIGJvcmRlcjogMHB4IHNvbGlkIHdoaXRlO1xuICAgIH07XG59XG5cbi5wYWdpbmF0aW9uIHtcblx0bWFyZ2luLXRvcDogMmVtICFpbXBvcnRhbnQ7XG59XG5cbi5wYWdpbmF0aW9uPmxpPmEsXG4ucGFnaW5hdGlvbj5saT5zcGFuIHtcbiAgYm9yZGVyOiAwcHg7XG4gIHBhZGRpbmc6IDNweCA2cHg7XG59XG5cbi5wYWdpbmF0aW9uPmxpLmFjdGl2ZT5hIHtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdGNvbG9yOiAjMzM3YWI3O1xuXHRmb250LXdlaWdodDogYm9sZDtcblx0Zm9udC1zaXplOiAxNnB4O1xuXHRtYXJnaW4tdG9wOiAtMC4yZW07XG4gIH1cbi8qIC5wYWdpbmF0aW9uPmxpLmFjdGl2ZT5hIHtcbiAgYmFja2dyb3VuZDogcHVycGxlO1xuICBjb2xvcjogI2ZmZjtcbn0gKi9cblxuLyogLnBhZ2luYXRpb24ge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHBhZGRpbmctbGVmdDogMDtcblx0LmxpIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XG5cdH1cbn0gKi9cblxuLnBvcG92ZXJfdWwge1xuXHRtYXJnaW4tbGVmdDogLTJlbTtcbn1cblxuLnBvcG92ZXJfY29udGFpbmVyIHtcblx0LnBvcG92ZXIge1xuXHRcdHdpZHRoOiA0MGVtO1xuXHRcdG1heC13aWR0aDogNDBlbTtcblx0fVxufVxuXG4ucG9wb3Zlcl9sYWJlbCB7XG5cdG1hcmdpbi1yaWdodDogMHB4ICFpbXBvcnRhbnQ7XG5cdGZvbnQtZmFtaWx5OiAnR29yZGl0YSBCb2xkJztcbn1cblxuLnBpbmtfaGVhZGVyIHtcblx0cGFkZGluZy1sZWZ0OiAyJTtcblx0cGFkZGluZy1yaWdodDogMiU7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcblx0YmFja2dyb3VuZC1jb2xvcjogI0VFRTZGRjtcbn1cblxuLnB1cnBsZV9oZWFkZXIge1xuXHRwYWRkaW5nLWxlZnQ6IDIlO1xuXHRwYWRkaW5nLXJpZ2h0OiAyJTtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjE3LDIxMCwyMzMpO1xufVxuXG4uYmx1ZV9oZWFkZXIge1xuXHRwYWRkaW5nLWxlZnQ6IDIlO1xuXHRwYWRkaW5nLXJpZ2h0OiAyJTtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjA3LDIyNiwyNDMpO1xufVxuXG4ubG9uZ19zZWN0aW9ue1xuXHR3aWR0aDogMzAlICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1sZWZ0OiAtNSU7XG5cdG1hcmdpbi1yaWdodDoxNSU7XG59XG4iLCIvKiAub3AtaGVhZGVyIHtcblx0Y29sb3I6ICR3aGl0ZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRwYWRkaW5nOiA1cHggMDtcblx0bWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBjb2xvcjogJG5hdnkgIWltcG9ydGFudDtcblx0aDQge1xuXHRcdGZvbnQtc2l6ZTogMWVtO1xuXHR9XG59ICovXG5cbi5vcGVyYXRpb24tZm9ybSB7XG5cdEBleHRlbmQgLmZvbnQtcmVndWxhcjtcblx0Y29sb3I6ICR0ZXh0R3JleTtcblx0Zm9udC1zaXplOiAxMnB4O1xuXHQvLyBiYWNrZ3JvdW5kLWNvbG9yOiBwaW5rO1xuXHRwYWRkaW5nOiAwIDIwcHg7XG5cdGJvcmRlci10b3A6IDJweCBzb2xpZCAkbmF2eTtcblx0Ym9yZGVyLXJhZGl1czogMHJlbTtcblx0cGFkZGluZy10b3A6IDNlbTtcblx0c2VsZWN0LCAuZm9ybS1jb250cm9sIHtcblx0XHRib3JkZXItcmFkaXVzOiAyMHB4O1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0QGV4dGVuZCAuZm9udC1yZWd1bGFyO1xuXHRcdC8vIGNvbG9yOiAkdGV4dEdyZXk7XG5cdFx0Y29sb3I6ICRuYXZ5O1xuXHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAkbmF2eTtcblx0XHQvKiBEbyBub3Qgc2V0IGFwcGVhcmFuY2UgKGUuZy4gcmFkaW8pOiBDaHJvbWUgbWlzYWxpZ25zIHRleHQgaW4gaW5wdXRzLCBzZWxlY3RzLCBhbmQgZGl2LmZvcm0tY29udHJvbC4gKi9cblx0fVxuICAgIFxuICAgIC5zaW5nbGUtdmFsdWUtY29udHJvbCB7XG4gICAgICAgIHdpZHRoOiA0MCU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMDBweDtcbiAgICB9XG5cblx0LmZvcm0tZ3JvdXAtbGFiZWwge1xuXHRcdHBhZGRpbmctcmlnaHQ6IDIwcHg7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXHRcdG1hcmdpbi1ib3R0b206IDI1cHg7XG5cblx0XHQuY29udHJvbC1sYWJlbCB7XG5cdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHR9XG5cdH1cblxuXHQuZmxleCB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdHNlbGVjdCxcblx0XHQuaW5wdXQsXG5cdFx0LmlubGluZS1udW1iZXIsXG5cdFx0Lm1hcmstd3JhcCB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDIwcHg7XG5cdFx0XHR3aWR0aDogMTAwcHg7XG5cdFx0fVxuXHR9XG5cblx0Lm1hcmstd3JhcCxcblx0Lm1hcmstd3JhcC1kZWcge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdC5zaXgtcHJlIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogMjAlO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgLyogbGVmdDogLTIwcHg7ICovXG4gICAgICAgICAgICBjb2xvcjogJG5hdnkgIWltcG9ydGFudDtcblx0XHR9XG5cblx0XHQuc3RyaXBlLXBvc3Qge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cdFx0XHRyaWdodDogLTE1cHg7XG5cdFx0fVxuXG5cdFx0LnN0cmlwZS1wcmUge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cdFx0XHRsZWZ0OiAtMTJweDtcblx0XHR9XG5cdH1cblxuXHQubWFyay13cmFwLWRlZyB7XG5cdFx0LmRlZyB7XG5cdFx0XHR3aWR0aDogODBweDtcblx0XHRcdHBhZGRpbmctbGVmdDogNnB4O1xuXHRcdFx0cGFkZGluZy1yaWdodDogNnB4O1xuXHRcdH1cblx0XHRcblx0XHQuc3RyaXBlLXBvc3Qge1xuXHRcdFx0cmlnaHQ6IC0zN3B4O1xuXHRcdH1cblx0fVxuXG5cdGxhYmVsIHtcblx0XHRjb2xvcjogJG5hdnkgIWltcG9ydGFudDtcblx0XHRAZXh0ZW5kIC5mb250LWJvbGQ7XG5cdH1cblxuXHQubWFya2VyIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0dG9wOiAycHg7XG5cdFx0QGV4dGVuZCAuZm9udC1yZWd1bGFyO1xuXHR9XG59XG5cbi5idG4tbmV4dCB7XG5cdHdpZHRoOiAxMjBweDtcblx0QGV4dGVuZCAuZm9udC1ib2xkO1xufVxuXG4uY2hlY2stbGFiZWwge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0LmNoZWNrLXNwYW4ge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR0b3A6IDJweDtcblx0fVxufVxuXG4ubGVucyB7XG5cdHdpZHRoOiAyMjBweDtcbn1cblxuLmxlbnMtbGFiZWwge1xuXHRtYXJnaW4tdG9wOiAzNHB4O1xufVxuXG4udmlzdWFsLWxhYmVsIHtcblx0bWFyZ2luLXRvcDogNzBweDtcbn1cblxuLmZvcm0tZ3JvdXAtbGFiZWwtdG9wIHtcblx0bWFyZ2luLXRvcDogNDBweDtcbn1cblxuLmNvbC1iaW4ge1xuXHRwYWRkaW5nLWxlZnQ6IDYwcHg7XG59XG5cbi5wcmVzc3VyZS13cmFwIHtcblx0ZGlzcGxheTogZmxleDtcblx0anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7XG5cdC8qIG1heC13aWR0aDogNDYwcHg7ICovXG5cblx0LmZvcm0tZ3JvdXAge1xuXHRcdHdpZHRoOiA0MCU7XG5cdH1cbn1cblxuLmhhbGYtd2lkdGgge1xuXHRtYXgtd2lkdGg6IDUwJTtcbn1cblxuLnF1YXJ0ZXItd2lkdGgge1xuXHRtYXgtd2lkdGg6IDI1JTtcbn1cblxuLmJsdWUtYm94IHtcblx0Ym9yZGVyOiAxcHggc29saWQgJG5hdnk7XG5cdHBhZGRpbmc6IDE1cHg7XG5cdGJhY2tncm91bmQtY29sb3I6ICRwYWxlQmx1ZTtcblx0bWFyZ2luLWJvdHRvbTogMTVweDtcblx0Ym9yZGVyLXJhZGl1czogOHB4O1xuXHQuaGVhZGVyIHtcblx0XHRAZXh0ZW5kIC50ZXh0LW5hdnk7XG5cblx0XHQuaDQge1xuXHRcdFx0QGV4dGVuZCAuZm9udC1ib2xkO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogNXB4O1xuXHRcdFx0bWFyZ2luLXRvcDogMDtcblx0XHR9XG5cdH1cbn1cblxuLmV5ZS1oZWFkaW5nIHtcblx0bWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLm9wZXJhdGlvbi1ub3RlLXNhdmUtd3JhcCB7XG5cdG1pbi1oZWlnaHQ6IDgwcHg7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0bWFyZ2luOiAyMHB4IDA7XG5cblx0LnByb2dyZXNzaW9uLXdyYXAge1xuXHRcdG1pbi13aWR0aDogMjUwcHg7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cblx0XHQuc2F2ZS1wcm9ncmVzcyB7XG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDIwcHg7XG5cdFx0XHRAZXh0ZW5kIC50ZXh0LW5hdnk7XG5cdFx0fVxuXHR9XG5cblx0LnByb2dyZXNzaW9uLWFsZXJ0LXdyYXAge1xuXHRcdHdpZHRoOiBjYWxjKDEwMCUgLSAyODBweCk7XG5cblx0XHQuYWxlcnQge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblxuXHRcdFx0JiArIC5hbGVydCB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDEwcHg7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5zdGFjay12ZXJ0IHtcblx0ZGlzcGxheTogaW5saW5lLWZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dG9wOiAycHg7XG5cdG1hcmdpbi1sZWZ0OiAxMHB4O1xuXG5cdC5yYWRpby1pbmxpbmUgKyAucmFkaW8taW5saW5lIHtcblx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRtYXJnaW4tdG9wOiA1cHg7XG5cdH1cbn1cblxuLm9wdGlvbmFsIHtcblx0QGV4dGVuZCAudGV4dC1wdXJwbGU7XG5cdEBleHRlbmQgLmZvbnQtbGlnaHQtaXRhbGljO1xufVxuXG4uZmxleC1iaW9tZXRyeSB7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cblx0LmNvbnRyb2wtbGFiZWwge1xuXHRcdG1hcmdpbi1yaWdodDogMTVweDtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHR9XG59XG5cbi5iaW9tZXRyeS1pbnB1dCB7XG5cdHdpZHRoOiAxMDBweDtcblx0bWFyZ2luLXJpZ2h0OiAyMHB4O1xufVxuXG4uYXhpcy13cmFwIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uYXhpcy10aW1lcyxcbi5heGlzLWRlZyB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiA1MCU7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4uYXhpcy10aW1lcyB7XG5cdHJpZ2h0OiBjYWxjKDEwMCUgKyA2cHgpO1xufVxuXG4uYXhpcy1kZWcge1xuXHRsZWZ0OiAxMTBweDtcbn1cblxuLnNlY3Rpb24tbGFiZWwge1xuXHRtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4uYmlvbWV0cnkge1xuXHQuZm9ybS1yb3cge1xuXHRcdG1hcmdpbi1ib3R0b206IDE1cHg7XG5cdH1cblx0LmxlZnQtY29sdW1uIHtcblx0XHR3aWR0aDogMThweDtcblx0fVxuXHQuZm9ybS1ncm91cCB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMHB4O1xuXHR9XG5cdC5oZWxwLWJsb2NrIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0d2lkdGg6IDMwMHB4O1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdH1cbn1cblxuLnRhYmxlLWluY2lzaW9ucyB7XG5cdEBleHRlbmQgLnRleHQtbmF2eTtcblx0dGgsXG5cdHRkIHtcblx0XHRib3JkZXItY29sb3I6ICRuYXZ5ICFpbXBvcnRhbnQ7XG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xuXHRcdGJvcmRlci10b3A6IDAgIWltcG9ydGFudDtcblx0XHRAZXh0ZW5kIC5mb250LXJlZ3VsYXItaXRhbGljO1xuXHR9XG5cdHRkOmxhc3QtY2hpbGQge1xuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHR9XG5cblx0LnJlbW92ZS1tZWQge1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRuYXZ5O1xuXHRcdHdpZHRoOiAyNHB4O1xuXHRcdGhlaWdodDogMjRweDtcblx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRuYXZ5O1xuXHRcdFx0Y29sb3I6IHdoaXRlO1xuXHRcdH1cblx0fVxufVxuXG4uYnRuLWFkZC1pbmNpc2lvbiB7XG5cdGhlaWdodDogMzRweDtcblx0d2lkdGg6IDM0cHg7XG5cdG1hcmdpbi1sZWZ0OiAwLjVlbTtcblx0cGFkZGluZzogMDtcbn1cblxuLmZsZXgtYWxsZXJneSB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cblx0Lmdyb3cge1xuXHRcdGZsZXg6IDEgMDtcblx0XHRtYXJnaW4tcmlnaHQ6IDIwcHg7XG5cdH1cbn1cblxuLmFuYWVzdGhldGljLXdyYXAge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXG5cdC5mb3JtLWdyb3VwIHtcblx0XHR3aWR0aDogMjYwcHg7XG5cdFx0bWFyZ2luLXJpZ2h0OiAyMHB4O1xuXHR9XG5cblx0LmhlbHAtYmxvY2sge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRtYXJnaW4tdG9wOiAwO1xuXHR9XG59XG5cbi50ZXh0LWFyZWEtd3JhcCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHQuY291bnQtcmVtYWluaW5nIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Zm9udC1zaXplOiAxMHB4O1xuXHRcdGJvdHRvbTogMDtcblx0XHRyaWdodDogMTVweDtcblx0XHRjb2xvcjogJG5hdnk7XG5cdFx0QGV4dGVuZCAuZm9udC1yZWd1bGFyLWl0YWxpYztcblx0fVxufVxuXG4uZGlhYmV0ZXMtcG9wLXVwLXdyYXAge1xuXHR3aWR0aDogNTAlO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5yZXRpbm9wYXRoeS1wb3AtdXAtT0Qge1xuXHQucmV0aW5vcGF0aHktcG9wdXAge1xuXHRcdGxlZnQ6IGNhbGMoMTAwJSArIDEwcHgpO1xuXHR9XG59XG5cbi5yZXRpbm9wYXRoeS1wb3AtdXAtT1Mge1xuXHQucmV0aW5vcGF0aHktcG9wdXAge1xuXHRcdHJpZ2h0OiBjYWxjKDEwMCUgKyAxMHB4KTtcblx0fVxufVxuXG4uc2hvd1JldGlub3BhdGh5IHtcblx0LnJldGlub3BhdGh5LXBvcHVwIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxufVxuXG4ubWFjdWxvcGF0aHktcG9wLXVwLU9EIHtcblx0Lm1hY3Vsb3BhdGh5LXBvcHVwIHtcblx0XHRsZWZ0OiBjYWxjKDEwMCUgKyAxMHB4KTtcblx0fVxufVxuXG4ubWFjdWxvcGF0aHktcG9wLXVwLU9TIHtcblx0Lm1hY3Vsb3BhdGh5LXBvcHVwIHtcblx0XHRyaWdodDogY2FsYygxMDAlICsgMTBweCk7XG5cdH1cbn1cblxuLnNob3dNYWN1bG9wYXRoeSB7XG5cdC5tYWN1bG9wYXRoeS1wb3B1cCB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cbn1cblxuLnJldGlub3BhdGh5LXBvcHVwLFxuLm1hY3Vsb3BhdGh5LXBvcHVwIHtcblx0Ym9yZGVyOiAxcHggc29saWQgJG5hdnk7XG5cdHBhZGRpbmc6IDE1cHg7XG5cdGZvbnQtc2l6ZTogMTBweDtcblx0Y29sb3I6ICRuYXZ5O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblx0d2lkdGg6IDQ4MHB4O1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHotaW5kZXg6IDE7XG5cdHRvcDogMDtcblx0ZGlzcGxheTogbm9uZTtcblxuXHQudGFibGUtYm9yZGVyZWQge1xuXHRcdGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuXHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cblx0XHR0aCB7XG5cdFx0XHRAZXh0ZW5kIC5mb250LWJvbGQtaXRhbGljO1xuXHRcdH1cblxuXHRcdHRoLFxuXHRcdHRkIHtcblx0XHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRuYXZ5O1xuXHRcdFx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkbmF2eTtcblxuXHRcdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRcdGJvcmRlci1sZWZ0OiBub25lO1xuXHRcdFx0fVxuXG5cdFx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0XHRib3JkZXItcmlnaHQ6IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0dHI6bGFzdC1jaGlsZCB7XG5cdFx0XHR0ZCB7XG5cdFx0XHRcdGJvcmRlci1ib3R0b206IG5vbmU7XG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHRkLFxuXHRwIHtcblx0XHRAZXh0ZW5kIC5mb250LXJlZ3VsYXItaXRhbGljO1xuXHR9XG5cblx0dGQsXG5cdHRoIHtcblx0XHRib3JkZXItY29sb3I6ICRuYXZ5ICFpbXBvcnRhbnQ7XG5cdH1cblxuXHRwIHtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHR9XG59XG5cbi5yZXRpbm9wYXRoeS1wb3B1cCB7XG5cdHRoOmZpcnN0LWNoaWxkLFxuXHR0ZDpmaXJzdC1jaGlsZCB7XG5cdFx0d2lkdGg6IDEyMHB4O1xuXHR9XG59XG5cbi5vcGVyYXRpb24tZm9ybSB7XG5cdC5mbGV4LWxlbnMge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cblx0XHQuZm9ybS1ncm91cCB7XG5cdFx0XHR3aWR0aDogMTUwcHg7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDIwcHg7XG5cdFx0fVxuXG5cdFx0LmZvcm0tZ3JvdXAtYXhpcyB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0XHR3aWR0aDogMTEwcHg7XG5cdFx0fVxuXHR9XG59XG5cbi5hbGxlcmd5LWZvcm0td3JhcCB7XG5cdC5oZWxwLWJsb2NrIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdH1cbn1cblxuLmxvY3NpaWktd3JhcCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0d2lkdGg6IDUwJTtcbn1cblxuLmxvY3NpaWktaW1nLXdyYXAge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHdpZHRoOiA1MDBweDtcblx0aW1nIHtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxufVxuXG4ubG9jc2lpaS1pbWctd3JhcC1PRCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0d2lkdGg6IDcwMHB4O1xuXHRsZWZ0OiBjYWxjKDEwMCUgKyAxNXB4KTtcblx0dG9wOiAwO1xuXHR6LWluZGV4OiAxO1xuXHRkaXNwbGF5OiBub25lO1xuXG5cdGltZyB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cbn1cblxuLmxvY3NpaWktaW1nLXdyYXAtT1Mge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHdpZHRoOiA1MDBweDtcblx0cmlnaHQ6IGNhbGMoMTAwJSArIDE1cHgpO1xuXHR0b3A6IDA7XG5cdHotaW5kZXg6IDE7XG5cdGRpc3BsYXk6IG5vbmU7XG5cblx0aW1nIHtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxufVxuXG4uc2hvd09wYWwsXG4uc2hvd0NvbG91cixcbi5zaG93Q29ydGljYWwsXG4uc2hvd1B1cGlsLFxuLnNob3dTdWIge1xuXHRkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xufVxuXG4ub3BlcmF0aW9uLW5vdGUtaGVhZGVyIHtcblx0Ly8gb3V0bGluZTogMXB4IGRvdHRlZCBwaW5rO1xuXHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXG5cdC5oZWFkLWZsZXgge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcblxuXHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRtYXJnaW4tdG9wOiAxMHB4O1xuXHRcdH1cblx0fVxuXG5cdGgzLFxuXHRoNCB7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdEBleHRlbmQgLmZvbnQtYm9sZDtcblx0XHRAZXh0ZW5kIC50ZXh0LW5hdnk7XG5cdH1cblxuXHRoNiB7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdHBhZGRpbmctbGVmdDogMS41ZW07XG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdEBleHRlbmQgLnRleHQtbmF2eTtcblx0fVxuXG5cdC5oZWFkLWxpbmsge1xuXHRcdGNvbG9yOiAkbmF2eTtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdEBleHRlbmQgLmZvbnQtcmVndWxhcjtcblx0fVxuXG5cdC5oZWFkLW5hbWUge1xuXHRcdG1hcmdpbi1yaWdodDogMjBweDtcblx0fVxuXG5cdC5oZWFkZXItbGVmdCxcblx0LmhlYWRlci1yaWdodCB7XG5cdFx0Ly8gb3V0bGluZTogMXB4IHNvbGlkIGdyZWVuO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuXHR9XG5cblx0LmhlYWRlci1yaWdodCB7XG5cdFx0Ly8gbWFyZ2luLXJpZ2h0OiA4MHB4O1xuXHRcdC8vIG91dGxpbmU6IDFweCBzb2xpZCBibHVlO1xuXHR9XG59XG5cbi5wb3BvdmVyLXByZW9wLXdyYXAge1xuXHRwYWRkaW5nOiAyMHB4O1xuXHRwYWRkaW5nLWJvdHRvbTogMDtcblx0d2lkdGg6IDMwMHB4O1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0bGFiZWwge1xuXHRcdGNvbG9yOiAkbmF2eSAhaW1wb3J0YW50O1xuXHRcdEBleHRlbmQgLmZvbnQtcmVndWxhcjtcblx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcblx0fVxuXG5cdC5mb3JtLWNvbnRyb2wge1xuXHRcdGJvcmRlci1yYWRpdXM6IDIwcHg7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRAZXh0ZW5kIC5mb250LXJlZ3VsYXI7XG5cdFx0Y29sb3I6ICRuYXZ5O1xuXHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAkbmF2eTtcblx0fVxuXG5cdC5mb3JtLWdyb3VwOmxhc3QtY2hpbGQge1xuXHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdH1cbn1cblxuLnBvcG92ZXIge1xuXHRib3JkZXItY29sb3I6ICRuYXZ5O1xuXG5cdC5tYXJrZXIge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR0b3A6IDJweDtcblx0fVxufVxuXG4ucG9wb3Zlci5ib3R0b20gPiAuYXJyb3cge1xuXHRib3JkZXItYm90dG9tLWNvbG9yOiAkbmF2eTtcbn1cblxuLnNwaW5uZXItd3JhcCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnZlcnRpY2FsLWJ1dHRvbnMge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG5cdGJ1dHRvbiArIGJ1dHRvbiB7XG5cdFx0bWFyZ2luLXRvcDogMTBweDtcblx0fVxufVxuXG4ubXktbW9kYWwtZm9vdGVyLXBhdGllbnQtZGV0YWlscyB7XG5cdC5idG4tbmF2eSB7XG5cdFx0d2lkdGg6IDIyMHB4O1xuXHR9XG59XG5cbi5pbmNpc2lvbnMtaW1hZ2Uge1xuXHR3aWR0aDogMTAwJTtcblx0cGFkZGluZy1sZWZ0OiA1ZW07XG5cdHBhZGRpbmctcmlnaHQ6IDVlbTtcblx0bWFyZ2luLXRvcDogMWVtO1xuXHRtYXJnaW4tYm90dG9tOiAyZW07XG59XG5cbi5tYXJnaW4tdG9wLTJlbSB7XG5cdG1hcmdpbi10b3A6IDJlbTtcbn1cblxuLm1hcmdpbi10b3AtMWVtIHtcblx0bWFyZ2luLXRvcDogMWVtO1xufVxuXG4ucGFkZGluZy10b3AtZG90LTRlbSB7XG5cdHBhZGRpbmctdG9wOiAwLjRlbTtcbn1cblxuLmN1c3RvbS1zbGlkZXIucnpzbGlkZXIgOmZvY3VzIHtvdXRsaW5lOm5vbmU7fVxuXG4uY3VzdG9tLXNsaWRlci5yenNsaWRlciB7XG5cdG1hcmdpbi10b3A6IDFlbTtcblx0bWFyZ2luLWJvdHRvbTogMWVtO1xufVxuXG4uY3VzdG9tLXNsaWRlci5yenNsaWRlciAucnotYmFyIHtcblx0aGVpZ2h0OiA4cHg7XG5cdGJvcmRlci1yYWRpdXM6IDRweDtcbiAgfVxuXG4gIC5jdXN0b20tc2xpZGVyLnJ6c2xpZGVyIC5yei1wb2ludGVyIHtcblx0d2lkdGg6IDE2cHg7XG5cdGhlaWdodDogMTZweDtcblx0dG9wOiBhdXRvOyAvKiB0byByZW1vdmUgdGhlIGRlZmF1bHQgcG9zaXRpb25pbmcgKi9cblx0Ym90dG9tOiAwO1xuXHRtYXJnaW4tYm90dG9tOiAtNnB4O1xuICB9XG4gIFxuICAuY3VzdG9tLXNsaWRlci5yenNsaWRlciAucnotcG9pbnRlcjphZnRlciB7XG5cdGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgXG4gIC5jdXN0b20tc2xpZGVyLnJ6c2xpZGVyIC5yei1idWJibGUge1xuXHRib3R0b206IDE0cHg7XG4gIH1cbiAgXG4gIC5jdXN0b20tc2xpZGVyLnJ6c2xpZGVyIC5yei1saW1pdCB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG5cbiAgLmN1c3RvbS1zbGlkZXIucnpzbGlkZXIgLnJ6LXRpY2stdmFsdWUge1xuXHR0b3A6MHB4O1xuXHRjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbiAgXG4gIC5jdXN0b20tc2xpZGVyLnJ6c2xpZGVyIC5yei10aWNrIHtcblx0d2lkdGg6IDFweDtcblx0aGVpZ2h0OiAxMHB4O1xuXHRtYXJnaW4tbGVmdDogOHB4O1xuXHRib3JkZXItcmFkaXVzOiAwO1xuXHR0b3A6IC0xcHg7XG4gIH1cblxuICAudHJhbnNwYXJlbnQtY29sb3Ige1xuXHQgIGNvbG9yOnRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuYnRuLXdoaXRlIHtcblx0YmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuXHRjb2xvcjogJG5hdnk7XG5cdHdpZHRoOiAyMDBweDtcblx0Ym9yZGVyLWNvbG9yOiAkbmF2eTtcbn1cblxuLm1hcmdpbi1taWRkbGUge1xuXHRtYXJnaW4tbGVmdDogMWVtO1xuXHRtYXJnaW4tcmlnaHQ6IDFlbTtcbn1cblxuLmhlYWQtbGluayB7XG5cdGNvbG9yOiAkbmF2eTtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRmb250LXNpemU6IDE0cHg7XG5cdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRAZXh0ZW5kIC5mb250LXJlZ3VsYXI7XG59XG5cbi5mb250LXNpemUtMTYge1xuXHRmb250LXNpemU6IDE2cHg7XG59XG5cbi5wb3N0b3BlcmF0aXZlLWhlYWRlciB7XG5cdHdpZHRoOiAxMDAlO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdG1hcmdpbi10b3A6IDJlbTtcblx0bWFyZ2luLWJvdHRvbTogMmVtO1xufVxuXG4uY2FyZXQge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHdpZHRoOiAwO1xuXHRoZWlnaHQ6IDA7XG5cdG1hcmdpbi1sZWZ0OiAycHg7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdGJvcmRlci10b3A6IDBweCBkYXNoZWQ7XG5cdGJvcmRlci10b3A6IDBweCBzb2xpZCBcXDk7XG5cdGJvcmRlci1yaWdodDogMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRib3JkZXItbGVmdDogMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB9XG5cbi5mb250LXJlZ3VsYXIge1xuXHRmb250LWZhbWlseTogJ0dvcmRpdGEgUmVndWxhcicgIWltcG9ydGFudDtcbn1cblxuLmZvbnQtc2l6ZS04IHtcblx0Zm9udC1zaXplOiA4cHggIWltcG9ydGFudDtcbn1cbi5tYXJnaW4tdG8tcmlnaHQge1xuXHRtYXJnaW4tbGVmdDogNTAlO1xufVxuXG4uZ3JpZC1jb2x1bW4tbm8tcGFkZGluZyB7XG5cdHBhZGRpbmctbGVmdDogMHB4O1xuXHRwYWRkaW5nLXJpZ2h0OiAwcHg7XG5cbn1cbi5zZWxlY3Qtbm8tbWFyZ2luIHtcblx0bWFyZ2luLXJpZ2h0OiAwcHggIWltcG9ydGFudDtcblx0d2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogISBJbmplY3Rpb24gbm90ZSBpbmplY3Rpb25zIChwZXItaW5qZWN0aW9uIGJsb2NrICsgZHJ1ZyBiYXRjaClcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogRWFjaCBpbmplY3Rpb24gaXMgZWRpdGVkIGluIHBsYWNlIGluIGl0cyBvd24gY2FyZCwgc28gYSBwcmUtZmlsbGVkIG9uZSBpc1xuICAgdmlzaWJsZSBpbiB0aGUgZmllbGRzIHJhdGhlciB0aGFuIHN1bW1hcmlzZWQgdW5kZXJuZWF0aCB0aGVtLiAqL1xuLmluamVjdGlvbi1ibG9jayB7XG5cdC5pbmplY3Rpb24tYmxvY2staGVhZGVyIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdH1cblxuXHQuaW5qZWN0aW9uLWJsb2NrLXRpdGxlIHtcblx0XHRAZXh0ZW5kIC5mb250LWJvbGQ7XG5cdFx0QGV4dGVuZCAudGV4dC1uYXZ5O1xuXHRcdGZvbnQtc2l6ZTogMTNweDtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG5cdH1cblxuXHQucmVtb3ZlLW1lZCB7XG5cdFx0cGFkZGluZzogMDtcblx0XHRtYXJnaW46IDA7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJG5hdnk7XG5cdFx0d2lkdGg6IDI0cHg7XG5cdFx0aGVpZ2h0OiAyNHB4O1xuXHRcdGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWNpcmNsZTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRuYXZ5O1xuXHRcdFx0Y29sb3I6ICR3aGl0ZTtcblx0XHR9XG5cdH1cbn1cblxuLmJ0bi1hZGQtaW5qZWN0aW9uIHtcblx0d2lkdGg6IGF1dG87XG5cdG1heC13aWR0aDogbm9uZTtcblx0cGFkZGluZzogNnB4IDE2cHg7XG59XG5cbi8qIEJhdGNoIG51bWJlciBhbmQgZXhwaXJ5IHNpdCBiZXNpZGUgdGhlIG1lZGljYXRpb24gdGhleSBiZWxvbmcgdG8uIEV2ZXJ5dGhpbmdcbiAgIGVsc2Ugb24gYW4gaW5qZWN0aW9uIGlzIHVzdWFsbHkgcHJlLWZpbGxlZCBmcm9tIHRoZSBwYXRpZW50J3Mgc2V0dGluZ3MsIHNvIHRoZVxuICAgcGFpciBnZXRzIGEgbGlnaHQgYWNjZW50IHRvIHNldCBpdCBhcGFydCDigJQgZW5vdWdoIHRvIGNhdGNoIHRoZSBleWUgb24gdGhlIHdheVxuICAgcGFzdCwgbm90IGVub3VnaCB0byBzaG91dC4gKi9cbi5iYXRjaC1maWVsZHMge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRnYXA6IDEwcHg7XG5cdHBhZGRpbmc6IDhweCAxMHB4O1xuXHRib3JkZXItbGVmdDogM3B4IHNvbGlkICR5ZWxsb3c7XG5cdGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLXNtO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkeWVsbG93LXRwLTEwO1xuXG5cdC5iYXRjaC1maWVsZCB7XG5cdFx0ZmxleDogMSAxIDA7XG5cdFx0bWluLXdpZHRoOiAwO1xuXHR9XG5cblx0LyogPGRhdGVwaWNrZXI+IGlzIGEgY3VzdG9tIGVsZW1lbnQsIHNvIGl0IG5lZWRzIGEgYm94IG9mIGl0cyBvd24gYmVmb3JlIHRoZVxuXHQgICBpbnB1dCBpbnNpZGUgaXQgY2FuIGZpbGwgdGhlIGZpZWxkIGFuZCB0aGUgY2FsZW5kYXIgY2FuIGFuY2hvciB0byBpdC4gKi9cblx0ZGF0ZXBpY2tlciB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR9XG5cblx0LmNvbnRyb2wtbGFiZWwge1xuXHRcdG1hcmdpbi1ib3R0b206IDJweDtcblx0fVxufVxuXG4uYmF0Y2gtd2FybmluZyB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXJnaW4tdG9wOiA0cHg7XG5cdGZvbnQtc2l6ZTogMTFweDtcblx0Zm9udC1zdHlsZTogbm9ybWFsO1xuXHRjb2xvcjogJGRhbmdlcjtcbn1cbiIsIi8qIVxuICogdWktc2VsZWN0XG4gKiBodHRwOi8vZ2l0aHViLmNvbS9hbmd1bGFyLXVpL3VpLXNlbGVjdFxuICogVmVyc2lvbjogMC4xOC4wIC0gMjAxNi0wNi0xNFQwNjo1NDo0My4xNTlaXG4gKiBMaWNlbnNlOiBNSVRcbiAqL1xuXG4vKiBTdHlsZSB3aGVuIGhpZ2hsaWdodGluZyBhIHNlYXJjaC4gKi9cbi51aS1zZWxlY3QtaGlnaGxpZ2h0IHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLnVpLXNlbGVjdC1vZmZzY3JlZW4ge1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCkgIWltcG9ydGFudDtcbiAgICB3aWR0aDogMXB4ICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxcHggIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDAgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICAgIG91dGxpbmU6IDAgIWltcG9ydGFudDtcbiAgICBsZWZ0OiAwcHggIWltcG9ydGFudDtcbiAgICB0b3A6IDBweCAhaW1wb3J0YW50O1xufVxuXG4udWktc2VsZWN0LWNob2ljZXMtcm93OmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xufVxuXG4udWktc2VsZWN0LWNob2ljZXMtcm93IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xufVxuXG4uc2VsZWN0aXplLWNvbnRyb2wuc2luZ2xlIC5zZWxlY3RpemUtaW5wdXQge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qIFNlbGVjdDIgdGhlbWUgKi9cblxuLyogTWFyayBpbnZhbGlkIFNlbGVjdDIgKi9cbi5uZy1kaXJ0eS5uZy1pbnZhbGlkID4gYS5zZWxlY3QyLWNob2ljZSB7XG4gICAgYm9yZGVyLWNvbG9yOiAjZDQ0OTUwO1xufVxuXG4uc2VsZWN0Mi1yZXN1bHQtc2luZ2xlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5cbi5zZWxlY3QyLWxvY2tlZCA+IC5zZWxlY3QyLXNlYXJjaC1jaG9pY2UtY2xvc2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5zZWxlY3QtbG9ja2VkID4gLnVpLXNlbGVjdC1tYXRjaC1jbG9zZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuYm9keSA+IC5zZWxlY3QyLWNvbnRhaW5lci5vcGVuIHtcbiAgICB6LWluZGV4OiA5OTk5OyAvKiBUaGUgei1pbmRleCBTZWxlY3QyIGFwcGxpZXMgdG8gdGhlIHNlbGVjdDItZHJvcCAqL1xufVxuXG4vKiBIYW5kbGUgdXAgZGlyZWN0aW9uIFNlbGVjdDIgKi9cbi51aS1zZWxlY3QtY29udGFpbmVyW3RoZW1lPVwic2VsZWN0MlwiXS5kaXJlY3Rpb24tdXAgLnVpLXNlbGVjdC1tYXRjaCB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4OyAvKiBGSVhNRSBoYXJkY29kZWQgdmFsdWUgOi0vICovXG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbn1cbi51aS1zZWxlY3QtY29udGFpbmVyW3RoZW1lPVwic2VsZWN0MlwiXS5kaXJlY3Rpb24tdXAgLnVpLXNlbGVjdC1kcm9wZG93biB7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4OyAvKiBGSVhNRSBoYXJkY29kZWQgdmFsdWUgOi0vICovXG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblxuICAgIGJvcmRlci10b3Atd2lkdGg6IDFweDsgLyogRklYTUUgaGFyZGNvZGVkIHZhbHVlIDotLyAqL1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuXG4gICAgYm94LXNoYWRvdzogMCAtNHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuXG4gICAgbWFyZ2luLXRvcDogLTRweDsgLyogRklYTUUgaGFyZGNvZGVkIHZhbHVlIDotLyAqL1xufVxuLnVpLXNlbGVjdC1jb250YWluZXJbdGhlbWU9XCJzZWxlY3QyXCJdLmRpcmVjdGlvbi11cCAudWktc2VsZWN0LWRyb3Bkb3duIC5zZWxlY3QyLXNlYXJjaCB7XG4gICAgbWFyZ2luLXRvcDogNHB4OyAvKiBGSVhNRSBoYXJkY29kZWQgdmFsdWUgOi0vICovXG59XG4udWktc2VsZWN0LWNvbnRhaW5lclt0aGVtZT1cInNlbGVjdDJcIl0uZGlyZWN0aW9uLXVwLnNlbGVjdDItZHJvcGRvd24tb3BlbiAudWktc2VsZWN0LW1hdGNoIHtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiAjNTg5N2ZiO1xufVxuLyogU2VsZWN0aXplIHRoZW1lICovXG5cbi8qIEhlbHBlciBjbGFzcyB0byBzaG93IHN0eWxlcyB3aGVuIGZvY3VzICovXG4uc2VsZWN0aXplLWlucHV0LnNlbGVjdGl6ZS1mb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4uc2VsZWN0aXplLWlucHV0ID4gaW5wdXQ6Zm9jdXMge1xuICAgIG91dGxpbmU6IDVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtcbiAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgICBvdXRsaW5lLWNvbG9yOiByZWQ7XG4gICAgLyogb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OyAqL1xufVxuXG4uc2VsZWN0aXplLWNvbnRyb2wuc2luZ2xlIC5zZWxlY3RpemUtaW5wdXQsXG4uc2VsZWN0aXplLWRyb3Bkb3duLnNpbmdsZSB7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyogRml4IGlucHV0IHdpZHRoIGZvciBTZWxlY3RpemUgdGhlbWUgKi9cbi5zZWxlY3RpemUtY29udHJvbCA+IC5zZWxlY3RpemUtaW5wdXQgPiBpbnB1dCB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi8qIEZpeCBkcm9wZG93biB3aWR0aCBmb3IgU2VsZWN0aXplIHRoZW1lICovXG4uc2VsZWN0aXplLWNvbnRyb2wgPiAuc2VsZWN0aXplLWRyb3Bkb3duIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLnNlbGVjdGl6ZS1jb250cm9sLnNpbmdsZSAuc2VsZWN0aXplLWlucHV0LFxuwqAuc2VsZWN0aXplLWRyb3Bkb3duLnNpbmdsZcKgIHtcbiAgICBib3JkZXItY29sb3I6ICMzODUwYTIgIWltcG9ydGFudDtcbiAgICAvKiBib3JkZXI6IDFweCBzb2xpZCAjMzg1MGEyICFpbXBvcnRhbnQ7ICovXG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAtNHB4O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyogTWFyayBpbnZhbGlkIFNlbGVjdGl6ZSAqL1xuLm5nLWRpcnR5Lm5nLWludmFsaWQgPiBkaXYuc2VsZWN0aXplLWlucHV0IHtcbiAgICBib3JkZXItY29sb3I6ICNkNDQ5NTA7XG59XG5cbi5zZWxlY3RpemUtZHJvcGRvd24ge1xuICAgIGJvcmRlcjogMHB4IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cblxuLyogSGFuZGxlIHVwIGRpcmVjdGlvbiBTZWxlY3RpemUgKi9cbi51aS1zZWxlY3QtY29udGFpbmVyW3RoZW1lPVwic2VsZWN0aXplXCJdLmRpcmVjdGlvbi11cCAudWktc2VsZWN0LWRyb3Bkb3duIHtcbiAgICBib3gtc2hhZG93OiAwIC00cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG5cbiAgICBtYXJnaW4tdG9wOiAtMnB4OyAvKiBGSVhNRSBoYXJkY29kZWQgdmFsdWUgOi0vICovXG59XG5cbi8qIEJvb3RzdHJhcCB0aGVtZSAqL1xuXG4vKiBIZWxwZXIgY2xhc3MgdG8gc2hvdyBzdHlsZXMgd2hlbiBmb2N1cyAqL1xuLmJ0bi1kZWZhdWx0LWZvY3VzIHtcbiAgICBjb2xvcjogIzMzMztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJlYmViO1xuICAgIGJvcmRlci1jb2xvcjogI2FkYWRhZDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgb3V0bGluZTogNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KSwgMCAwIDhweCByZ2JhKDEwMiwgMTc1LCAyMzMsIDAuNik7XG59XG5cbi51aS1zZWxlY3QtYm9vdHN0cmFwIC51aS1zZWxlY3QtdG9nZ2xlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi51aS1zZWxlY3QtYm9vdHN0cmFwIC51aS1zZWxlY3QtdG9nZ2xlID4gLmNhcmV0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaGVpZ2h0OiAxMHB4O1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiAxMHB4O1xuICAgIG1hcmdpbi10b3A6IC0ycHg7XG59XG5cbi8qIEZpeCBCb290c3RyYXAgZHJvcGRvd24gcG9zaXRpb24gd2hlbiBpbnNpZGUgYSBpbnB1dC1ncm91cCAqL1xuLmlucHV0LWdyb3VwID4gLnVpLXNlbGVjdC1ib290c3RyYXAuZHJvcGRvd24ge1xuICAgIC8qIEluc3RlYWQgb2YgcmVsYXRpdmUgKi9cbiAgICBwb3NpdGlvbjogc3RhdGljO1xufVxuXG4uaW5wdXQtZ3JvdXAgPiAudWktc2VsZWN0LWJvb3RzdHJhcCA+IGlucHV0LnVpLXNlbGVjdC1zZWFyY2guZm9ybS1jb250cm9sIHtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7IC8qIEZJWE1FIGhhcmRjb2RlZCB2YWx1ZSA6LS8gKi9cbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbn1cbi5pbnB1dC1ncm91cCA+IC51aS1zZWxlY3QtYm9vdHN0cmFwID4gaW5wdXQudWktc2VsZWN0LXNlYXJjaC5mb3JtLWNvbnRyb2wuZGlyZWN0aW9uLXVwIHtcbiAgICBib3JkZXItcmFkaXVzOiA0cHggIWltcG9ydGFudDsgLyogRklYTUUgaGFyZGNvZGVkIHZhbHVlIDotLyAqL1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDAgIWltcG9ydGFudDtcbn1cblxuLnVpLXNlbGVjdC1ib290c3RyYXAgPiAudWktc2VsZWN0LW1hdGNoID4gLmJ0biB7XG4gICAgLyogSW5zdGVhZCBvZiBjZW50ZXIgYmVjYXVzZSBvZiAuYnRuICovXG4gICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xufVxuXG4udWktc2VsZWN0LWJvb3RzdHJhcCA+IC51aS1zZWxlY3QtbWF0Y2ggPiAuY2FyZXQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDQ1JTtcbiAgICByaWdodDogMTVweDtcbn1cblxuLyogU2VlIFNjcm9sbGFibGUgTWVudSB3aXRoIEJvb3RzdHJhcCAzIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTkyMjc0OTYgKi9cbi51aS1zZWxlY3QtYm9vdHN0cmFwID4gLnVpLXNlbGVjdC1jaG9pY2VzLFxuLnVpLXNlbGVjdC1ib290c3RyYXAgPiAudWktc2VsZWN0LW5vLWNob2ljZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1heC1oZWlnaHQ6IDIwMHB4O1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBtYXJnaW4tdG9wOiAtMXB4O1xufVxuXG5ib2R5ID4gLnVpLXNlbGVjdC1ib290c3RyYXAub3BlbiB7XG4gICAgei1pbmRleDogMTAwMDsgLyogU3RhbmRhcmQgQm9vdHN0cmFwIGRyb3Bkb3duIHotaW5kZXggKi9cbn1cblxuLnVpLXNlbGVjdC1tdWx0aXBsZS51aS1zZWxlY3QtYm9vdHN0cmFwIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogM3B4IDNweCAwIDNweDtcbn1cblxuLnVpLXNlbGVjdC1tdWx0aXBsZS51aS1zZWxlY3QtYm9vdHN0cmFwIGlucHV0LnVpLXNlbGVjdC1zZWFyY2gge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7IC8qIFRvIHByZXZlbnQgZG91YmxlIGJhY2tncm91bmQgd2hlbiBkaXNhYmxlZCAqL1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGhlaWdodDogMS42NjY2NjZlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG59XG5cbi51aS1zZWxlY3QtbXVsdGlwbGUudWktc2VsZWN0LWJvb3RzdHJhcCAudWktc2VsZWN0LW1hdGNoIC5jbG9zZSB7XG4gICAgZm9udC1zaXplOiAxLjZlbTtcbiAgICBsaW5lLWhlaWdodDogMC43NTtcbn1cblxuLnVpLXNlbGVjdC1tdWx0aXBsZS51aS1zZWxlY3QtYm9vdHN0cmFwIC51aS1zZWxlY3QtbWF0Y2gtaXRlbSB7XG4gICAgb3V0bGluZTogMDtcbiAgICBtYXJnaW46IDAgM3B4IDNweCAwO1xufVxuXG4udWktc2VsZWN0LW11bHRpcGxlIC51aS1zZWxlY3QtbWF0Y2gtaXRlbSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4udWktc2VsZWN0LW11bHRpcGxlIC51aS1zZWxlY3QtbWF0Y2gtaXRlbS5kcm9wcGluZyAudWktc2VsZWN0LW1hdGNoLWNsb3NlIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnVpLXNlbGVjdC1tdWx0aXBsZTpob3ZlciAudWktc2VsZWN0LW1hdGNoLWl0ZW0uZHJvcHBpbmctYmVmb3JlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICM0MjhiY2E7XG59XG5cbi51aS1zZWxlY3QtbXVsdGlwbGU6aG92ZXIgLnVpLXNlbGVjdC1tYXRjaC1pdGVtLmRyb3BwaW5nLWFmdGVyOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjNDI4YmNhO1xufVxuXG4udWktc2VsZWN0LWJvb3RzdHJhcCAudWktc2VsZWN0LWNob2ljZXMtcm93ID4gYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogM3B4IDIwcHg7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsaW5lLWhlaWdodDogMS40Mjg1NzE0MztcbiAgICBjb2xvcjogIzMzMztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4udWktc2VsZWN0LWJvb3RzdHJhcCAudWktc2VsZWN0LWNob2ljZXMtcm93ID4gYTpob3Zlcixcbi51aS1zZWxlY3QtYm9vdHN0cmFwIC51aS1zZWxlY3QtY2hvaWNlcy1yb3cgPiBhOmZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICMyNjI2MjY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbn1cblxuLnVpLXNlbGVjdC1ib290c3RyYXAgLnVpLXNlbGVjdC1jaG9pY2VzLXJvdy5hY3RpdmUgPiBhIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgb3V0bGluZTogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDI4YmNhO1xufVxuXG4udWktc2VsZWN0LWJvb3RzdHJhcCAudWktc2VsZWN0LWNob2ljZXMtcm93LmRpc2FibGVkID4gYSxcbi51aS1zZWxlY3QtYm9vdHN0cmFwIC51aS1zZWxlY3QtY2hvaWNlcy1yb3cuYWN0aXZlLmRpc2FibGVkID4gYSB7XG4gICAgY29sb3I6ICM3Nzc7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuXG4vKiBmaXggaGlkZS9zaG93IGFuZ3VsYXIgYW5pbWF0aW9uICovXG4udWktc2VsZWN0LW1hdGNoLm5nLWhpZGUtYWRkLFxuLnVpLXNlbGVjdC1zZWFyY2gubmctaGlkZS1hZGQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyogTWFyayBpbnZhbGlkIEJvb3RzdHJhcCAqL1xuLnVpLXNlbGVjdC1ib290c3RyYXAubmctZGlydHkubmctaW52YWxpZCA+IGJ1dHRvbi5idG4udWktc2VsZWN0LW1hdGNoIHtcbiAgICBib3JkZXItY29sb3I6ICNkNDQ5NTA7XG59XG5cbi8qIEhhbmRsZSB1cCBkaXJlY3Rpb24gQm9vdHN0cmFwICovXG4udWktc2VsZWN0LWNvbnRhaW5lclt0aGVtZT1cImJvb3RzdHJhcFwiXS5kaXJlY3Rpb24tdXAgLnVpLXNlbGVjdC1kcm9wZG93biB7XG4gICAgYm94LXNoYWRvdzogMCAtNHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xufVxuXG4uc2VsZWN0aXplLWNvbnRyb2wuc2luZ2xlIC5zZWxlY3RpemUtaW5wdXQ6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogNXB4ICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDdweCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogN3B4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXRvcDogLTVweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogJG5hdnkgJG5hdnkgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXdpZHRoOiAycHggMnB4IDBweCAwcHggIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpO1xufVxuXG4ubGlzdGNsYXNzIHtcbiAgICBib3JkZXItcmFkaXVzOiAycHggIWltcG9ydGFudDtcbiAgICBib3JkZXItd2lkdGg6IDFweCAhaW1wb3J0YW50O1xufSIsIi5wcmVtaXVtLWxlbnMtcHJpY2UtYm94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcbiAgICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gICAgLyogYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRuYXZ5OyAqL1xufVxuXG4uaDQtbWVkaXVtIHtcbiAgICBmb250LXNpemU6IDEuMmVtO1xufVxuXG4ubmF2eS1jb2xvciB7XG4gICAgY29sb3I6ICRuYXZ5ICFpbXBvcnRhbnQ7XG59XG4uZmxleC1yb3cge1xuICAgIHdpZHRoOiAyMCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMWVtO1xufVxuLmRvbGxhciB7XG4gICAgbWFyZ2luLWxlZnQ6IC02ZW07XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHBhZGRpbmctdG9wOiAwLjhlbTtcbn1cblxuLmRvbGxhci1ub24tdG9yaWMge1xuICAgIG1hcmdpbi1sZWZ0OiAtNmVtO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBwYWRkaW5nLXRvcDogMC44ZW07XG59XG5cbi5wYWRkaW5nLXplcm8ge1xuICAgIHBhZGRpbmctdG9wOiAwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgICBtYXJnaW4tdG9wOiAxZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xufVxuXG4uYWxpZ24tbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLm5leHQtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbn0iLCIuc2xpZGVJbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbn1cbi5zbGlkZUluLm5nLWVudGVyLFxuLnNsaWRlSW4ubmctbGVhdmUge1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDFzIGVhc2U7XG4gICAgdHJhbnNpdGlvbjogYWxsIDFzIGVhc2U7XG59XG4uc2xpZGVJbi5uZy1lbnRlciB7XG4gICAgbGVmdDogMTAwJTtcbn1cbi5zbGlkZUluLm5nLWVudGVyLWFjdGl2ZSB7XG4gICAgbGVmdDogMDtcbn1cbi5zbGlkZUluLm5nLWxlYXZlIHtcbiAgICBsZWZ0OiAwO1xufVxuLnNsaWRlSW4ubmctbGVhdmUtYWN0aXZlIHtcbiAgICBsZWZ0OiAxMDAlO1xufVxuXG4uc2xpZGVPdXQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4uc2xpZGVPdXQubmctZW50ZXIsXG4uc2xpZGVPdXQubmctbGVhdmUge1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDFzIGVhc2U7XG4gICAgdHJhbnNpdGlvbjogYWxsIDFzIGVhc2U7XG59XG4uc2xpZGVPdXQubmctZW50ZXIge1xuICAgIGxlZnQ6IC0xMDAlO1xufVxuLnNsaWRlT3V0Lm5nLWVudGVyLWFjdGl2ZSB7XG4gICAgbGVmdDogMDtcbn1cbi5zbGlkZU91dC5uZy1sZWF2ZSB7XG4gICAgbGVmdDogMDtcbn1cbi5zbGlkZU91dC5uZy1sZWF2ZS1hY3RpdmUge1xuICAgIGxlZnQ6IC0xMDAlO1xufVxuXG4uc2xpZGVkb3duIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuLnNsaWRlZG93bi5uZy1lbnRlcixcbi5zbGlkZWRvd24ubmctbGVhdmUge1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDFzIGVhc2U7XG4gICAgdHJhbnNpdGlvbjogYWxsIDFzIGVhc2U7XG59XG4uc2xpZGVkb3duLm5nLWVudGVyIHtcbiAgICB0b3A6IC0xMDAlO1xufVxuLnNsaWRlZG93bi5uZy1lbnRlci1hY3RpdmUge1xuICAgIHRvcDogMDtcbn1cbi5zbGlkZWRvd24ubmctbGVhdmUge1xuICAgIHRvcDogMDtcbn1cbi5zbGlkZWRvd24ubmctbGVhdmUtYWN0aXZlIHtcbiAgICB0b3A6IDEwMCU7XG59XG5cbi5zbGlkZXVwIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuLnNsaWRldXAubmctZW50ZXIsXG4uc2xpZGV1cC5uZy1sZWF2ZSB7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMXMgZWFzZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMXMgZWFzZTtcbn1cbi5zbGlkZXVwLm5nLWVudGVyIHtcbiAgICB0b3A6IDEwMCU7XG59XG4uc2xpZGV1cC5uZy1lbnRlci1hY3RpdmUge1xuICAgIHRvcDogMDtcbn1cbi5zbGlkZXVwLm5nLWxlYXZlIHtcbiAgICB0b3A6IDA7XG59XG4uc2xpZGV1cC5uZy1sZWF2ZS1hY3RpdmUge1xuICAgIHRvcDogLTEwMCU7XG59IiwiXG5cbi5haS1mdWxsLWNvbnRlbnQge1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLyogLS0tIE1haW4gTGF5b3V0IENvbnRhaW5lciAtLS0gKi9cbi5haS1hZ2VudC1tYWluIHtcbiAgICAvKiBDaGFuZ2VkIGZyb20gbWFyZ2luIHRvIHBhZGRpbmcgc28gaGVpZ2h0OiAxMDAlIHdvcmtzIGNvcnJlY3RseSAqL1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAycmVtOyBcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIFxuICAgIC8qIEVOQUJMRVMgVEhFIFNUSUNLWSBGT09URVIgTEFZT1VUICovXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4vKiAtLS0gU2Nyb2xsYWJsZSBDb250ZW50IEFyZWEgLS0tICovXG4vKiBUaGlzIHRhcmdldHMgdGhlIGNvbnRhaW5lciBob2xkaW5nIHRoZSB0YWJsZXMgYW5kIGZvcm1zICovXG4uZGlhbG9nLWNvbnRlbnQtYm94LCAuYWktc2Nyb2xsIHtcbiAgICAvKiBHcm93IHRvIGZpbGwgZW1wdHkgc3BhY2UgKi9cbiAgICBmbGV4OiAxOyBcbiAgICBcbiAgICAvKiBIYW5kbGUgU2Nyb2xsaW5nICovXG4gICAgb3ZlcmZsb3cteTogYXV0bzsgXG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIFxuICAgIC8qIFJlbW92ZSBmaXhlZCBoZWlnaHRzICovXG4gICAgaGVpZ2h0OiBhdXRvOyBcbiAgICB3aWR0aDogMTAwJTtcbiAgICBcbiAgICAvKiBBZGQgYnJlYXRoaW5nIHJvb20gZm9yIHNjcm9sbGJhciAqL1xuICAgIHBhZGRpbmctcmlnaHQ6IDVweDsgXG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgIFxuICAgIC8qIEZpeCBmb3IgRmlyZWZveCBmbGV4IHNjcm9sbGluZyAqL1xuICAgIG1pbi1oZWlnaHQ6IDA7IFxufVxuXG4vKiAtLS0gRm9vdGVyIEJ1dHRvbnMgLS0tICovXG4uYWktYWdlbnQtZm9vdGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBcbiAgICAvKiBMYXlvdXQgKi9cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDFyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyBcbiAgICBib3R0b206IGF1dG87XG4gICAgZmxleC1zaHJpbms6IDA7IFxuICAgIHBhZGRpbmctdG9wOiAxLjVyZW07XG4gICAgbWFyZ2luLXRvcDogYXV0bzsgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgICB6LWluZGV4OiAxMDtcbn1cblxuLyogLS0tIFV0aWxpdHkgQ2xhc3NlcyAtLS0gKi9cbi5haS1hZ2VudC1pdGVtLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICBnYXA6IDFyZW07XG59XG5cbi8qIC0tLSBBbmltYXRpb25zIC0tLSAqL1xuLnBsYXlpbmcgaSB7XG4gICAgYW5pbWF0aW9uOiBmbGFzaCAxcyBpbmZpbml0ZTtcbiAgICBjb2xvcjogI2U5MWU2Mztcbn1cblxuQGtleWZyYW1lcyBmbGFzaCB7XG4gICAgMCUsIDEwMCUgeyBvcGFjaXR5OiAxOyB9XG4gICAgNTAlIHsgb3BhY2l0eTogMC4zOyB9XG59XG5cbi8qIC0tLSBUcmFuc2NyaXB0aW9uIHN0eWxlcyAtLS0gKi9cbi50ci1jb21wYWN0LXRvb2xiYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiA2cHggMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgbWluLWhlaWdodDogNDJweDtcbn1cblxuLyogU3RhbmRhcmRpemVkIDMweDMwIHNxdWFyZSBidXR0b25zIGZvciBpY29ucyAqL1xuLnRyLWljb24tYnRuIHtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgd2lkdGg6IDMycHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi50ci1taWMtc2VsZWN0b3Ige1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWF4LXdpZHRoOiAxNjBweDtcbn1cblxuICAgIC50ci1taWMtc2VsZWN0b3IgLmZvcm0tY29udHJvbCB7XG4gICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgcGFkZGluZzogNHB4IDhweDtcbiAgICB9XG5cbi50ci1taWMtaWNvbi1hZGRvbiB7XG4gICAgcGFkZGluZzogNHB4IDhweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi50ci10aW1lci1kaXNwbGF5IHtcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xuICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbn1cblxuLnRyLXRvb2xiYXItZGl2aWRlciB7XG4gICAgd2lkdGg6IDFweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgICBtYXJnaW46IDAgMnB4O1xufVxuXG4udHItcGVybWlzc2lvbi1lcnJvciB7XG4gICAgbWFyZ2luLXRvcDogNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uYmxpbmsge1xuICAgIGFuaW1hdGlvbjogYmxpbmtlciAxLjVzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyBibGlua2VyIHtcbiAgICA1MCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbn1cblxuIiwiLypcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIFRoZW1lZCBRdWlsbCBFZGl0b3IgQ29tcG9uZW50XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKi9cblxuLyogLS0tIDEuIFRoZW1lIFZhcmlhYmxlcyAtLS0gKi9cbjpyb290IHtcbiAgICAtLXFsLWZvbnQtZmFtaWx5OiAnR29yZGl0YSBSZWd1bGFyJywgc2Fucy1zZXJpZjtcbiAgICAtLXFsLWJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAtLXFsLWJvcmRlci1jb2xvcjogIzk0OTU5OTsgXG4gICAgLS1xbC1hY2NlbnQtY29sb3I6ICMwMDM1ZDI7IFxuICAgIC0tcWwtd2hpdGUtY29sb3I6ICNmZmZmZmY7XG4gICAgLS1xbC10ZXh0LWJnLWNvbG9yOiAjZjJmNmZiOyBcbiAgICAtLXFsLXRvb2xiYXItYmctY29sb3I6ICNlYmVjZWE7IFxuICAgIC0tcWwtdGV4dC1jb2xvcjogIzQwNDE0MTsgXG4gICAgLS1xbC1zdWJ0bGUtYm9yZGVyLWNvbG9yOiAjYmNjYWQyOyBcbn1cblxuLyogLS0tIDIuIE1haW4gRWRpdG9yIENvbnRhaW5lciAtLS0gKi9cbi5xbC10b29sYmFyLFxuLnFsLWNvbnRhaW5lciB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLXFsLWZvbnQtZmFtaWx5KTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXFsLWJvcmRlci1jb2xvcikgIWltcG9ydGFudDtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycyBlYXNlLCBib3gtc2hhZG93IDAuMnMgZWFzZTtcbn1cblxuLyogLS0tIDMuIFRvb2xiYXIgVUkgLS0tICovXG4ucWwtdG9vbGJhciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcWwtdG9vbGJhci1iZy1jb2xvcik7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFyKC0tcWwtYm9yZGVyLXJhZGl1cyk7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigtLXFsLWJvcmRlci1yYWRpdXMpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1xbC1ib3JkZXItY29sb3IpICFpbXBvcnRhbnQ7XG59XG5cbiAgICAucWwtdG9vbGJhciAucWwtc3Ryb2tlIHtcbiAgICAgICAgc3Ryb2tlOiB2YXIoLS1xbC10ZXh0LWNvbG9yKTtcbiAgICB9XG5cbiAgICAucWwtdG9vbGJhciAucWwtZmlsbCB7XG4gICAgICAgIGZpbGw6IHZhcigtLXFsLXRleHQtY29sb3IpO1xuICAgIH1cblxuICAgIC5xbC10b29sYmFyIC5xbC1waWNrZXItbGFiZWwge1xuICAgICAgICBjb2xvcjogdmFyKC0tcWwtdGV4dC1jb2xvcik7XG4gICAgfVxuXG4gICAgICAgIC5xbC10b29sYmFyIGJ1dHRvbjpob3ZlcixcbiAgICAgICAgLnFsLXRvb2xiYXIgLnFsLXBpY2tlci1sYWJlbDpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnFsLXRvb2xiYXIgYnV0dG9uLnFsLWFjdGl2ZSxcbiAgICAgICAgLnFsLXRvb2xiYXIgLnFsLXBpY2tlci1sYWJlbC5xbC1hY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCA1MywgMjEwLCAwLjEpOyBcbiAgICAgICAgfVxuXG4gICAgLnFsLXRvb2xiYXIgLnFsLXRvb2x0aXAge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG5cbi8qIC0tLSA0LiBFZGl0YWJsZSBDb250ZW50IEFyZWEgLS0tICovXG4ucWwtY29udGFpbmVyIHtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YXIoLS1xbC1ib3JkZXItcmFkaXVzKTtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFyKC0tcWwtYm9yZGVyLXJhZGl1cyk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcWwtdGV4dC1iZy1jb2xvcik7XG59XG5cbi5xbC1lZGl0b3Ige1xuICAgIG1pbi1oZWlnaHQ6IDI1MHB4O1xuICAgIGNvbG9yOiB2YXIoLS1xbC10ZXh0LWNvbG9yKTtcbiAgICBwYWRkaW5nOiAxcmVtIDEuNXJlbTtcbn1cblxuICAgIC5xbC1lZGl0b3IucWwtYmxhbms6OmJlZm9yZSB7XG4gICAgICAgIGNvbG9yOiAjOTQ5NTk5O1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIGxlZnQ6IDEuNXJlbTtcbiAgICB9XG5cblxuLyogLS0tIDUuIEZvY3VzIFN0YXRlIC0tLSAqL1xuLnFsLWNvbnRhaW5lci5xbC1mb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1xbC1hY2NlbnQtY29sb3IpICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoMCwgNTMsIDIxMCwgMC4yNSk7XG59XG5cbi5xbC10b29sYmFyLnFsLWZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXFsLWFjY2VudC1jb2xvcikgIWltcG9ydGFudDtcbn1cblxuXG4vKiAtLS0gNi4gQ29udGVudCBTdHlsaW5nIC0tLSAqL1xuLnFsLWVkaXRvciBoMSwgLnFsLWVkaXRvciBoMiwgLnFsLWVkaXRvciBoMyB7XG4gICAgY29sb3I6IHZhcigtLXFsLXRleHQtY29sb3IpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXFsLXN1YnRsZS1ib3JkZXItY29sb3IpO1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjNlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjhlbTtcbn1cblxuLnFsLWVkaXRvciBoMSB7XG4gICAgZm9udC1zaXplOiAyZW07XG59XG5cbi5xbC1lZGl0b3IgaDIge1xuICAgIGZvbnQtc2l6ZTogMS43NWVtO1xufVxuXG4ucWwtZWRpdG9yIGgzIHtcbiAgICBmb250LXNpemU6IDEuNWVtO1xufVxuXG4ucWwtZWRpdG9yIHAsIC5xbC1lZGl0b3Igb2wsIC5xbC1lZGl0b3IgdWwge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS43O1xuICAgIGNvbG9yOiB2YXIoLS1xbC10ZXh0LWNvbG9yKTtcbn1cblxuLnFsLWVkaXRvciBhIHtcbiAgICBjb2xvcjogdmFyKC0tcWwtYWNjZW50LWNvbG9yKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuICAgIC5xbC1lZGl0b3IgYTpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cblxuLyogLS0tIDcuIEZvbnQgRmFtaWx5IFNlbGVjdG9yIC0tLSAqL1xuLnFsLXNub3cgLnFsLXBpY2tlci5xbC1mb250IHtcbiAgICB3aWR0aDogMTMwcHg7XG59XG5cbi8qIERlZmF1bHQgb3B0aW9uIChubyBmb250IHZhbHVlKSBpcyB0aGUgdGhlbWUgZm9udCwgR29yZGl0YSBSZWd1bGFyLiAqL1xuLnFsLXNub3cgLnFsLXBpY2tlci5xbC1mb250IC5xbC1waWNrZXItbGFiZWw6OmJlZm9yZSxcbi5xbC1zbm93IC5xbC1waWNrZXIucWwtZm9udCAucWwtcGlja2VyLWl0ZW06OmJlZm9yZSB7XG4gICAgY29udGVudDogJ0dvcmRpdGEgUmVndWxhcic7XG4gICAgZm9udC1mYW1pbHk6ICdHb3JkaXRhIFJlZ3VsYXInLCBzYW5zLXNlcmlmO1xufVxuXG4ucWwtc25vdyAucWwtcGlja2VyLnFsLWZvbnQgLnFsLXBpY2tlci1sYWJlbFtkYXRhLXZhbHVlPVwiYXJpYWxcIl06OmJlZm9yZSxcbi5xbC1zbm93IC5xbC1waWNrZXIucWwtZm9udCAucWwtcGlja2VyLWl0ZW1bZGF0YS12YWx1ZT1cImFyaWFsXCJdOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICdBcmlhbCc7XG4gICAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1xufVxuXG4ucWwtc25vdyAucWwtcGlja2VyLnFsLWZvbnQgLnFsLXBpY2tlci1sYWJlbFtkYXRhLXZhbHVlPVwiZ2VvcmdpYVwiXTo6YmVmb3JlLFxuLnFsLXNub3cgLnFsLXBpY2tlci5xbC1mb250IC5xbC1waWNrZXItaXRlbVtkYXRhLXZhbHVlPVwiZ2VvcmdpYVwiXTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnR2VvcmdpYSc7XG4gICAgZm9udC1mYW1pbHk6IEdlb3JnaWEsIHNlcmlmO1xufVxuXG4ucWwtc25vdyAucWwtcGlja2VyLnFsLWZvbnQgLnFsLXBpY2tlci1sYWJlbFtkYXRhLXZhbHVlPVwidGltZXMtbmV3LXJvbWFuXCJdOjpiZWZvcmUsXG4ucWwtc25vdyAucWwtcGlja2VyLnFsLWZvbnQgLnFsLXBpY2tlci1pdGVtW2RhdGEtdmFsdWU9XCJ0aW1lcy1uZXctcm9tYW5cIl06OmJlZm9yZSB7XG4gICAgY29udGVudDogJ1RpbWVzIE5ldyBSb21hbic7XG4gICAgZm9udC1mYW1pbHk6ICdUaW1lcyBOZXcgUm9tYW4nLCBUaW1lcywgc2VyaWY7XG59XG5cbi5xbC1zbm93IC5xbC1waWNrZXIucWwtZm9udCAucWwtcGlja2VyLWxhYmVsW2RhdGEtdmFsdWU9XCJjb3VyaWVyLW5ld1wiXTo6YmVmb3JlLFxuLnFsLXNub3cgLnFsLXBpY2tlci5xbC1mb250IC5xbC1waWNrZXItaXRlbVtkYXRhLXZhbHVlPVwiY291cmllci1uZXdcIl06OmJlZm9yZSB7XG4gICAgY29udGVudDogJ0NvdXJpZXIgTmV3JztcbiAgICBmb250LWZhbWlseTogJ0NvdXJpZXIgTmV3JywgQ291cmllciwgbW9ub3NwYWNlO1xufVxuXG4ucWwtc25vdyAucWwtcGlja2VyLnFsLWZvbnQgLnFsLXBpY2tlci1sYWJlbFtkYXRhLXZhbHVlPVwidmVyZGFuYVwiXTo6YmVmb3JlLFxuLnFsLXNub3cgLnFsLXBpY2tlci5xbC1mb250IC5xbC1waWNrZXItaXRlbVtkYXRhLXZhbHVlPVwidmVyZGFuYVwiXTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnVmVyZGFuYSc7XG4gICAgZm9udC1mYW1pbHk6IFZlcmRhbmEsIEdlbmV2YSwgc2Fucy1zZXJpZjtcbn1cblxuLyogQXBwbHkgdGhlIGNob3NlbiBmb250IHRvIHRoZSBlZGl0b3IgY29udGVudC4gKi9cbi5xbC1mb250LWFyaWFsIHtcbiAgICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7XG59XG5cbi5xbC1mb250LWdlb3JnaWEge1xuICAgIGZvbnQtZmFtaWx5OiBHZW9yZ2lhLCBzZXJpZjtcbn1cblxuLnFsLWZvbnQtdGltZXMtbmV3LXJvbWFuIHtcbiAgICBmb250LWZhbWlseTogJ1RpbWVzIE5ldyBSb21hbicsIFRpbWVzLCBzZXJpZjtcbn1cblxuLnFsLWZvbnQtY291cmllci1uZXcge1xuICAgIGZvbnQtZmFtaWx5OiAnQ291cmllciBOZXcnLCBDb3VyaWVyLCBtb25vc3BhY2U7XG59XG5cbi5xbC1mb250LXZlcmRhbmEge1xuICAgIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBHZW5ldmEsIHNhbnMtc2VyaWY7XG59XG5cbi5xdWlsbC12aWV3ZXItY29udGFpbmVyIHtcbiAgICAtLXFsLXRleHQtYmctY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4gICAgLnF1aWxsLXZpZXdlci1jb250YWluZXIucWwtY29udGFpbmVyIHtcbiAgICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgICAgIC5xdWlsbC12aWV3ZXItY29udGFpbmVyLnFsLWNvbnRhaW5lciAucWwtZWRpdG9yIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgICAgICAucXVpbGwtdmlld2VyLWNvbnRhaW5lci5xbC1jb250YWluZXIgLnFsLWVkaXRvciBhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgIH0iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiAhIFBheW1lbnQgU2V0dGluZ3Ncbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogLS0tIE1haW4gVmlldyBDb250YWluZXIgLS0tICovXG4ucGF5bWVudC1zZXR0aW5ncy1tYWluIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMjBweCAzMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNGY3ZmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICAvKiAtLS0gVHlwb2dyYXBoeSBPdmVycmlkZXMgLS0tICovXG4gICAgaDMsIGg0LCBoNSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnR29yZGl0YSBCb2xkJywgc2Fucy1zZXJpZjtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qICEgSGVybyBTZWN0aW9uIChEaWdpdGFsIFdhbGxldClcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi53YWxsZXQtaGVyby1zZWN0aW9uIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xufVxuXG4ud2FsbGV0LWNhcmQtdmlzdWFsIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMDAzNWQyIDAlLCAjMmEzMDdmIDEwMCUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgcGFkZGluZzogMjVweCAzNXB4O1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGJveC1zaGFkb3c6IDAgOHB4IDIwcHggcmdiYSgwLCA1MywgMjEwLCAwLjI1KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogLTUwcHg7XG4gICAgICAgIHRvcDogLTUwcHg7XG4gICAgICAgIHdpZHRoOiAyMDBweDtcbiAgICAgICAgaGVpZ2h0OiAyMDBweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjEpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgIC53YWxsZXQtaW5mbyB7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIGg1IHtcbiAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgIH1cbiAgICAgICAgaDEge1xuICAgICAgICAgICAgZm9udC1zaXplOiA0MnB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBzbWFsbCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLndhbGxldC1zdGF0dXMge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgXG4gICAgICAgIC5zdGF0dXMtYmFkZ2Uge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjIpO1xuICAgICAgICAgICAgcGFkZGluZzogNnB4IDEycHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjMjBjOTk3O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICAmLmluYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiAhIEdyaWQgTGF5b3V0XG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uc2V0dGluZ3MtZ3JpZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDIwcHg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4uZ3JpZC1jb2wtbGVmdCB7XG4gICAgZmxleDogMztcbiAgICBtaW4td2lkdGg6IDMwMHB4O1xufVxuXG4uZ3JpZC1jb2wtcmlnaHQge1xuICAgIGZsZXg6IDI7XG4gICAgbWluLXdpZHRoOiAyODBweDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogISBDYXJkIENvbXBvbmVudHNcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5zZXR0aW5ncy1jYXJkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgICBwYWRkaW5nOiAyNXB4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAuY2FyZC1oZWFkZXIsXG4gICAgLmNhcmQtaGVhZGVyLWZsZXgge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UwZTZlZDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDE1cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgIFxuICAgICAgICBoNCB7XG4gICAgICAgICAgICBjb2xvcjogIzAwMzVkMjsgLyogJG5hdnkgKi9cbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2FyZC1oZWFkZXItZmxleCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuY2FyZC1ib2R5IHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qICEgQmFja3VwIENhcmQgJiBGb290ZXIgV2FybmluZ3Ncbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnNldHRpbmdzLWNhcmQge1xuICAgIC5iYWNrdXAtbWlzc2luZy1mb290ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmNWY1O1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2ZmZTVjYztcbiAgICAgICAgcGFkZGluZzogMTJweCAyMHB4O1xuICAgICAgICBcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0yNXB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0yNXB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAtMjVweDtcbiAgICAgICAgbWFyZ2luLXRvcDogYXV0bzsgXG4gICAgICAgIFxuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAxMnB4O1xuICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMTJweDtcblxuICAgICAgICAud2FybmluZy10ZXh0IHtcbiAgICAgICAgICAgIGNvbG9yOiAjODU2NDA0O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZhYjAwO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJ0dvcmRpdGEgQm9sZCcsIHNhbnMtc2VyaWY7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYnRuLW91dGxpbmUtd2FybmluZyB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZhYjAwO1xuICAgICAgICAgICAgY29sb3I6ICNmZmFiMDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICBwYWRkaW5nOiA2cHggMTJweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYWIwMDtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogISBMZWZ0IENvbHVtbjogQXV0by1SZWxvYWQgSW5wdXRzXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uc2V0dGluZy1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgcGFkZGluZzogMTVweCAwO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgI2UwZTZlZDtcblxuICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICB9XG5cbiAgICAuc2V0dGluZy1pY29uIHtcbiAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjdmZTtcbiAgICAgICAgY29sb3I6ICMwMDM1ZDI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTVweDtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgIH1cblxuICAgIC5zZXR0aW5nLWNvbnRlbnQge1xuICAgICAgICBmbGV4OiAxO1xuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgY29sb3I6ICM1NTU7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmhlbHBlci10ZXh0IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgICAgIGNvbG9yOiAjODg4O1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNldHRpbmctaW5wdXQtd3JhcHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgICBcbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTBlNmVkO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICBjb2xvcjogIzAwMzVkMjtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG5cbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogIzAwMzVkMjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDAsIDUzLCAyMTAsIDAuMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgICY6ZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNhYWE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIFRvZ2dsZSBTd2l0Y2ggKi9cbi50b2dnbGUtc3dpdGNoIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiA0NHB4O1xuICAgIGhlaWdodDogMjRweDtcblxuICAgIGlucHV0IHsgXG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLnNsaWRlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0b3A6IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwOyBib3R0b206IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gICAgICAgIHRyYW5zaXRpb246IC40cztcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICAgICAgICBsZWZ0OiAzcHg7XG4gICAgICAgICAgICBib3R0b206IDNweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogLjRzO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXQ6Y2hlY2tlZCArIC5zbGlkZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjBjOTk3O1xuICAgIH1cblxuICAgIGlucHV0OmZvY3VzICsgLnNsaWRlciB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAxcHggIzIwYzk5NztcbiAgICB9XG5cbiAgICBpbnB1dDpjaGVja2VkICsgLnNsaWRlcjpiZWZvcmUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7XG4gICAgfVxufVxuXG4uZGlzYWJsZWQtb3ZlcmxheSB7XG4gICAgb3BhY2l0eTogMC41O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbn1cblxuLnNhdmUtc3RhdHVzLWluZGljYXRvciB7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBjb2xvcjogIzIwYzk5NztcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XG4gICAgXG4gICAgJi5lcnJvciB7IGNvbG9yOiAjZDk1MzRmOyB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qICEgUmlnaHQgQ29sdW1uOiBQYXltZW50IE1ldGhvZCAoUmVkZXNpZ25lZClcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogQ2VudGVyIGNvbnRhaW5lciBmb3IgdGhlIHJpZ2h0IGNvbHVtbiAqL1xuLnBheW1lbnQtY2FyZC1jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAzMHB4IDIwcHg7XG59XG5cbi8qIENyZWRpdCBDYXJkIFZpc3VhbCBCb3ggKi9cbi5jYy12aXN1YWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBnYXA6IDIwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTBlNmVkO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgcGFkZGluZzogMjBweCAyNXB4O1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCA1MywgMjEwLCAwLjA4KTsgXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAzODBweDsgXG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgICBcbiAgICAuY2MtaWNvbiB7XG4gICAgICAgIGNvbG9yOiAjMDAzNWQyO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDUwcHg7XG4gICAgfVxuXG4gICAgLmNjLXRleHQge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBcbiAgICAgICAgaDUgeyBcbiAgICAgICAgICAgIG1hcmdpbjogMDsgXG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgICBjb2xvcjogIzMzMzsgXG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwOyBcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLyogTmV3IGNsYXNzIGZvciB0aGUgbWFza2VkIGRvdHMgKi9cbiAgICAgICAgLm1hc2tlZC1kb3RzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB0b3A6IDRweDtcbiAgICAgICAgICAgIGNvbG9yOiAjODg4O1xuICAgICAgICB9XG5cbiAgICAgICAgcCB7IFxuICAgICAgICAgICAgbWFyZ2luOiA1cHggMCAwIDA7IFxuICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4OyBcbiAgICAgICAgICAgIGNvbG9yOiAjODg4OyBcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIFN0cmlwZSBJbnB1dCBDb250YWluZXIgKENvbnN0cmFpbmVkIHdpZHRoKSAqL1xuLnN0cmlwZS1pbnB1dC1jb250YWluZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMzgwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG5cbiNjYXJkLWVsZW1lbnQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMDM1ZDI7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBwYWRkaW5nOiAxMnB4IDE1cHg7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuI2NhcmQtZXJyb3JzIHtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgbWluLWhlaWdodDogMThweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8qIEJ1dHRvbnMgKENlbnRlcmVkICYgQ29uc3RyYWluZWQpICovXG4udmVydGljYWwtYnV0dG9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5idG4tY2VudGVyZWQge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiAyNDBweDtcbiAgICBtYXJnaW46IDVweCAwO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiAhIFVzYWdlIEhpc3RvcnkgVGFibGVcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi51c2FnZS1jb250YWluZXIge1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYm94LXNoYWRvdzogMCAycHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICAgIFxuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTcwdmgpO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgdGFibGUge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgXG4gICAgICAgIHRoIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmNGY3ZmU7XG4gICAgICAgICAgICBjb2xvcjogIzAwMzVkMjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCAjZWVlOyBcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgcGFkZGluZzogMTVweDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xuICAgICAgICAgICAgY29sb3I6ICMzNDNhNDA7XG4gICAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGQgc21hbGwge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogIzk4YTZhZDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIH1cblxuICAgICAgICB0cjpsYXN0LWNoaWxkIHRkIHsgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuICAgIH1cblxuICAgIC8qIE9wdGlvbmFsOiBDdXN0b20gc2Nyb2xsYmFyIGZvciB0aGUgdGFibGUgY29udGFpbmVyICovXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICB3aWR0aDogNnB4O1xuICAgIH1cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgNTMsIDIxMCwgMC4xKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICB9XG59XG4udXNhZ2UtY29udGFpbmVyIC5sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIHBhZGRpbmc6IDNweCA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi8qIEN1c3RvbSBTY3JvbGxiYXIgZm9yIHRoZSBNYWluIENvbnRhaW5lciAqL1xuLnBheW1lbnQtc2V0dGluZ3MtbWFpbjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIHdpZHRoOiA2cHg7XG59XG5cbi5wYXltZW50LXNldHRpbmdzLW1haW46Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgXG59XG5cbi5wYXltZW50LXNldHRpbmdzLW1haW46Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDUzLCAyMTAsIDAuMSk7IC8qIExpZ2h0IE5hdnkgKi9cbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xufVxuXG4ucGF5bWVudC1zZXR0aW5ncy1tYWluOmhvdmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCA1MywgMjEwLCAwLjMpO1xufVxuXG4vKiBVdGlsaXR5ICovXG4ubXQtYXV0byB7IG1hcmdpbi10b3A6IGF1dG87IH1cblxuLyogQ2FyZCBTd2l0Y2hlciBIZWFkZXIgKi9cbi5jYXJkLXN3aXRjaGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjRmN2ZlO1xuICAgIHBhZGRpbmc6IDRweCAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7XG4gICAgY29sb3I6ICMwMDM1ZDI7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICAgIFxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMDAzNWQyO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxufVxuXG4vKiBCYWNrdXAgQ2FyZCBWaXN1YWwgVmFyaWFudCAqL1xuLmNjLXZpc3VhbC5iYWNrdXAtc3R5bGUge1xuICAgIGJvcmRlcjogMXB4IGRhc2hlZCAjZmZhYjAwO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgyNTUsIDE3MSwgMCwgMC4xKTtcbiAgICBcbiAgICAuY2MtaWNvbiB7XG4gICAgICAgIGNvbG9yOiAjZmZhYjAwO1xuICAgIH1cbn1cblxuLyogSGVscGVyIENvbG9ycyAqL1xuLnRleHQtd2FybmluZyB7IGNvbG9yOiAjZmZhYjAwICFpbXBvcnRhbnQ7IH1cbi5idG4td2FybmluZyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYWIwMCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgJjpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6ICNlNjlhMDAgIWltcG9ydGFudDsgfVxufVxuXG4vKiBTbmFwcHkgRmFkaW5nIGZvciBCdXR0b25zICovXG4uYW5pbWF0ZS1mYWRlLm5nLWVudGVyLCBcbi5hbmltYXRlLWZhZGUubmctbGVhdmUge1xuICAgIHRyYW5zaXRpb246IDE1MG1zIGN1YmljLWJlemllcigwLjI1MCwgMC40NjAsIDAuNDUwLCAwLjk0MCkgYWxsO1xufVxuXG4uYW5pbWF0ZS1mYWRlLm5nLWVudGVyLFxuLmFuaW1hdGUtZmFkZS5uZy1sZWF2ZS5uZy1sZWF2ZS1hY3RpdmUge1xuICAgIG9wYWNpdHk6IDA7XG59XG5cbi5hbmltYXRlLWZhZGUubmctbGVhdmUsXG4uYW5pbWF0ZS1mYWRlLm5nLWVudGVyLm5nLWVudGVyLWFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLyogRW5zdXJlIGJ1dHRvbnMgZG9uJ3QganVtcCBsYXlvdXQgd2hlbiBzd2l0Y2hpbmcgKi9cbi52ZXJ0aWNhbC1idXR0b25zIHtcbiAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uYW5pbWF0ZS1mYWRlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLyogLS0tIFVuaXZlcnNhbCBUb2tlbiBTZWN0aW9uIC0tLSAqL1xuLnVuaXZlcnNhbC10b2tlbi1zZWN0aW9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xufVxuXG4vKiBIZWFkZXIgJiBUaXRsZSBTdHlsaW5nICovXG4udG9rZW4taGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE4cHg7XG4gICAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5cbi50b2tlbi1jaXJjbGUtaWNvbiB7XG4gICAgd2lkdGg6IDQ2cHg7XG4gICAgaGVpZ2h0OiA0NnB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMwMDM1ZDIgMCUsICMyYTMwN2YgMTAwJSk7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwgNTMsIDIxMCwgMC4xNSk7XG4gICAgZmxleC1zaHJpbms6IDA7IC8qIFByZXZlbnRzIGljb24gZnJvbSBzcXVpc2hpbmcgKi9cbn1cblxuLnRva2VuLXRpdGxlLWdyb3VwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5wcmVtaXVtLXRpdGxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGZvbnQtZmFtaWx5OiAnR29yZGl0YSBCb2xkJywgc2Fucy1zZXJpZjtcbiAgICBjb2xvcjogIzJhMzA3ZjtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG5cbi50aXRsZS1zZXBhcmF0b3Ige1xuICAgIHdpZHRoOiA0cHg7XG4gICAgaGVpZ2h0OiA0cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMzVkMjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb3BhY2l0eTogMC40O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLnByZW1pdW0tc3VidGl0bGUge1xuICAgIG1hcmdpbjogNHB4IDAgMCAwICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiAjODc4YmEwO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5wcmVtaXVtLXRpdGxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGZvbnQtZmFtaWx5OiAnR29yZGl0YSBCb2xkJywgc2Fucy1zZXJpZjtcbiAgICBjb2xvcjogIzJhMzA3ZjtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4udG9rZW4tcHJpY2UtYmFkZ2Uge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZmZmZhOyBcbiAgICBjb2xvcjogIzIwYzk5NzsgXG4gICAgcGFkZGluZzogNHB4IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzIsIDIwMSwgMTUxLCAwLjIpO1xuICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xufVxuXG4vKiBHcmlkICYgSXRlbXMgU3R5bGluZyAqL1xuLnRva2VuLXZhbHVlLWdyaWQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTJweDtcbn1cblxuLnRva2VuLWl0ZW0ge1xuICAgIGZsZXg6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgcGFkZGluZzogMTJweCAxNXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UwZTZlZDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xufVxuXG4udG9rZW4taXRlbTpob3ZlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICAgIGJvcmRlci1jb2xvcjogI2NiZDVlMDtcbn1cblxuLml0ZW0taWNvbiB7XG4gICAgd2lkdGg6IDM0cHg7XG4gICAgaGVpZ2h0OiAzNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLml0ZW0taWNvbi5haS1hZ2VudCB7IGJhY2tncm91bmQ6ICNlN2YwZmY7IGNvbG9yOiAjMDAzNWQyOyB9XG4uaXRlbS1pY29uLnNtcyB7IGJhY2tncm91bmQ6ICNlNmZmZmE7IGNvbG9yOiAjMjBjOTk3OyB9XG4uaXRlbS1pY29uLnRyYW5zY3JpcHRpb24geyBiYWNrZ3JvdW5kOiAjZmZmNGU1OyBjb2xvcjogI2ZmYWIwMDsgfVxuXG4uaXRlbS1kZXRhaWxzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5pdGVtLWxhYmVsIHtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgY29sb3I6ICM4ODg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xufVxuXG4uaXRlbS12YWx1ZSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cblxuLml0ZW0tdmFsdWUgc21hbGwge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6ICMwMDM1ZDI7XG4gICAgZm9udC1zaXplOiAxM3B4O1xufVxuXG4uYnRuLW91dGxpbmUtd2hpdGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xuICAgIHBhZGRpbmc6IDhweCAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG59XG5cbi5idG4tb3V0bGluZS13aGl0ZTpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBjb2xvcjogIzAwMzVkMjtcbiAgICBib3JkZXItY29sb3I6ICNmZmZmZmY7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTBweCByZ2JhKDAsMCwwLDAuMTUpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmJ0bi1vdXRsaW5lLXdoaXRlOmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjU7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLmJ0bi1vdXRsaW5lLXdoaXRlIGkge1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xufVxuXG4vKiBSZXNwb25zaXZlIExvZ2ljICovXG5AbWVkaWEgKG1heC13aWR0aDogOTkycHgpIHtcbiAgICAudG9rZW4tdmFsdWUtZ3JpZCB7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICB9XG4gICAgLnRva2VuLWl0ZW0ge1xuICAgICAgICBtaW4td2lkdGg6IGNhbGMoNTAlIC0gMTJweCk7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICAudG9rZW4taXRlbSB7XG4gICAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICB9XG4gICAgLnByZW1pdW0tdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgfVxufSIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qICEgQUkgVHJhbnNjcmlwdGlvbiBTZWF0c1xuLyogU2hhcmVkIGJ5IHRoZSBzZWF0IHBsYW4gZGlhbG9nIGFuZCB0aGUgc2VhdCBhc3NpZ25tZW50IC8gdXNhZ2UgZGlhbG9nLlxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKiBUaGUgY29tcG9uZW50IHNpdHMgZGlyZWN0bHkgaW5zaWRlIGFuIG1kLXRhYiwgc28gaXRzIGhvc3QgZWxlbWVudCBoYXMgdG8gY2FycnkgdGhlIGhlaWdodCBpdHNlbGYuICovXG50cmFuc2NyaXB0aW9uLXNlYXRzLXZpZXcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLnNlYXQtbWFpbiB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDIwcHggMzBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmN2ZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgaDMsIGg0LCBoNSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnR29yZGl0YSBCb2xkJywgc2Fucy1zZXJpZjtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qICEgU2VjdGlvbiBzd2l0Y2hlclxuLyogQnV5aW5nLCBhc3NpZ25pbmcgYW5kIHJlcG9ydGluZyBhcmUgb25lIHZpZXcgb3ZlciBvbmUgbG9hZCBvZiB0aGVcbi8qIHN1YnNjcmlwdGlvbiwgc28gdGhleSBzd2l0Y2ggaGVyZSByYXRoZXIgdGhhbiB0aHJvdWdoIHRoZSBkaWFsb2cnc1xuLyogb3duIHRhYnMuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uc2VhdC1zdWJuYXYge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiA2cHg7XG4gICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRncmV5LWJvcmRlci1saWdodDtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1sZztcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDtcblxuICAgIGJ1dHRvbiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtc207XG4gICAgICAgIHBhZGRpbmc6IDlweCAxMnB4O1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiAkdGV4dC1tdXRlZDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIGNvbG9yIDAuMTVzIGVhc2U7XG5cbiAgICAgICAgaSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXI6bm90KC5hY3RpdmUpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRsaWdodEdyZXk7XG4gICAgICAgICAgICBjb2xvcjogJGRhcmtOYXZ5O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJG5hdnk7XG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiAhIENhbGxvdXRzXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uc2VhdC1hbGVydCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICBwYWRkaW5nOiAxMnB4IDE4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbWQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMTRweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDU7XG4gICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuICAgID4gaSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgfVxuXG4gICAgPiBzcGFuIHtcbiAgICAgICAgZmxleDogMTtcbiAgICB9XG5cbiAgICAvKiBUaGUgc2hhcmVkIC5idG4gcnVsZXMgc3RyZXRjaCB0byAyMjBweCwgd2hpY2ggcmVhZHMgYXMgYSBzbGFiIG9uIGEgc2luZ2xlLWxpbmUgY2FsbG91dC4gKi9cbiAgICAuYnRuIHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cblxuICAgICYudGlnaHQge1xuICAgICAgICBtYXJnaW46IDEycHggMCAwO1xuICAgICAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgIH1cblxuICAgICYuaW5mbyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRuYXZ5LXBhbGU7XG4gICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkbmF2eTtcbiAgICAgICAgY29sb3I6ICRkYXJrTmF2eTtcbiAgICB9XG5cbiAgICAmLndhcm5pbmcge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2FybmluZy1iZztcbiAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICR3YXJuaW5nLWJvcmRlcjtcbiAgICAgICAgY29sb3I6ICR3YXJuaW5nLXRleHQ7XG4gICAgfVxuXG4gICAgJi5kYW5nZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIxNywgODMsIDc5LCAwLjEpO1xuICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJHJlZC1kYW5nZXItYWx0O1xuICAgICAgICBjb2xvcjogJGRhbmdlcjtcbiAgICB9XG5cbiAgICAmLnRyaWFsIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGN5YW4tdHAtMTA7XG4gICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkY3lhbjtcbiAgICAgICAgY29sb3I6ICR0ZWFsO1xuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogISBTdWJzY3JpcHRpb24gc3RhdHVzIHN0cmlwXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uc2VhdC1zdGF0dXMtc3RyaXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogNDBweDtcbiAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGdyZXktYm9yZGVyLWxpZ2h0O1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWxnO1xuICAgIHBhZGRpbmc6IDE2cHggMjRweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4O1xufVxuXG4uc2VhdC1zdGF0dXMtaXRlbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNHB4O1xufVxuXG4uc2VhdC1zdGF0dXMtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjZweDtcbiAgICBjb2xvcjogJHRleHQtbXV0ZWQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLnNlYXQtc3RhdHVzLXZhbHVlIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogJGRhcmtOYXZ5O1xufVxuXG4uc2VhdC1waWxsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogM3B4IDEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDtcblxuICAgICYucGlsbC1hY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW4tdHAtMjA7XG4gICAgICAgIGNvbG9yOiAjMTI4MDVjO1xuICAgIH1cblxuICAgICYucGlsbC13YXJuaW5nIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHllbGxvdy10cC0zMDtcbiAgICAgICAgY29sb3I6ICR3YXJuaW5nLXRleHQ7XG4gICAgfVxuXG4gICAgJi5waWxsLWRhbmdlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjE3LCA4MywgNzksIDAuMTUpO1xuICAgICAgICBjb2xvcjogJGRhbmdlcjtcbiAgICB9XG5cbiAgICAmLnBpbGwtbXV0ZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFnZUJhY2tHcm91bmQ7XG4gICAgICAgIGNvbG9yOiAkdGV4dC1tdXRlZDtcbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qICEgUGxhbiBwaWNrZXIgbGF5b3V0XG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uc2VhdC1wbGFuLWxheW91dCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDIycHg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG5cbi5zZWF0LXBsYW4tY29sdW1uIHtcbiAgICBmbGV4OiAxIDEgNjAlO1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuLnNlYXQtc3VtbWFyeS1jb2x1bW4ge1xuICAgIGZsZXg6IDAgMCAzMjBweDtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHRvcDogMDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogISBTZWF0IHRpZXIgY2FyZFxuLyogVHdvIHRpZXJzLCBzaWRlIGJ5IHNpZGUgYW5kIGVxdWFsIGhlaWdodCwgc28gY2hvb3NpbmcgYmV0d2VlbiB0aGVtIGlzXG4vKiBvbmUgY29tcGFyaXNvbiByYXRoZXIgdGhhbiBhIHNjcm9sbC5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5zZWF0LXRpZXItZ3JpZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBnYXA6IDE2cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbn1cblxuLnNlYXQtdGllci1jYXJkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleDogMSAxIDA7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGdyZXktYm9yZGVyLWxpZ2h0O1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWxnO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjJzIGVhc2UsIGJvcmRlci1jb2xvciAwLjJzIGVhc2U7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdy1zbTtcbiAgICB9XG5cbiAgICAmLnJlY29tbWVuZGVkIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkbmF2eTtcbiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMTRweCByZ2JhKDAsIDUzLCAyMTAsIDAuMTIpO1xuICAgIH1cbn1cblxuLnNlYXQtdGllci1mbGFnIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJhY2tncm91bmQ6ICRuYXZ5O1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuOHB4O1xuICAgIHBhZGRpbmc6IDRweCAxNHB4O1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRib3JkZXItcmFkaXVzLXNtO1xufVxuXG4uc2VhdC10aWVyLWhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTRweDtcbiAgICBwYWRkaW5nOiAyMHB4IDI0cHggMTBweDtcblxuICAgIGg0IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBmb250LXNpemU6IDE3cHg7XG4gICAgICAgIGNvbG9yOiAkZGFya05hdnk7XG4gICAgfVxufVxuXG4uc2VhdC10aWVyLWljb24ge1xuICAgIHdpZHRoOiA0NnB4O1xuICAgIGhlaWdodDogNDZweDtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1jaXJjbGU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmbGV4LXNocmluazogMDtcblxuICAgICYuc3RhbmRhcmQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkbmF2eS1wYWxlO1xuICAgICAgICBjb2xvcjogJG5hdnk7XG4gICAgfVxuXG4gICAgJi5wcmVtaXVtIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGxhdmVuZGVyLXRwLTIwO1xuICAgICAgICBjb2xvcjogJHB1cnBsZTtcbiAgICB9XG59XG5cbi5zZWF0LXRpZXItcHJpY2Uge1xuICAgIHBhZGRpbmc6IDAgMjRweDtcblxuICAgIC5hbW91bnQge1xuICAgICAgICBmb250LXNpemU6IDMwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGNvbG9yOiAkZGFya05hdnk7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgIH1cblxuICAgIC5wZXJpb2Qge1xuICAgICAgICBtYXJnaW4tbGVmdDogNnB4O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGNvbG9yOiAkdGV4dC1tdXRlZDtcbiAgICB9XG59XG5cbi5zZWF0LXRpZXItaW5jbHVkZWQge1xuICAgIG1hcmdpbjogNHB4IDAgMDtcbiAgICBwYWRkaW5nOiAwIDI0cHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiAkdGV4dEdyZXk7XG59XG5cbi8qIFB1c2hlZCB0byB0aGUgYm90dG9tIG9mIHRoZSBjYXJkIHNvIGJvdGggc3RlcHBlcnMgbGluZSB1cCB3aGF0ZXZlciB0aGUgY29weSBhYm92ZSBkb2VzLiAqL1xuLnNlYXQtdGllci1ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxOHB4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgIHBhZGRpbmc6IDE4cHggMjRweCAyMHB4O1xufVxuXG4uc2VhdC10aWVyLXN0YXRlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAycHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiAkdGV4dC1tdXRlZDtcbn1cblxuLnNlYXQtc3RlcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkZ3JleS1ib3JkZXItbGlnaHQ7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtc207XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLnNlYXQtc3RlcC1idG4ge1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDJweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogJGxpZ2h0R3JleTtcbiAgICBjb2xvcjogJG5hdnk7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7XG5cbiAgICAmOmhvdmVyOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRuYXZ5LXBhbGU7XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgICBjb2xvcjogJGNhbmNlbEJvcmRlcjtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG59XG5cbi5zZWF0LXN0ZXAtaW5wdXQge1xuICAgIHdpZHRoOiA2OHB4O1xuICAgIGhlaWdodDogNDJweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkZ3JleS1ib3JkZXItbGlnaHQ7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGdyZXktYm9yZGVyLWxpZ2h0O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogJGRhcmtOYXZ5O1xuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcblxuICAgIC8qIFRoZSArIGFuZCAtIGJ1dHRvbnMgZWl0aGVyIHNpZGUgYXJlIHRoZSBvbmx5IHN0ZXBwZXJzOiB0aGUgYnJvd3NlcidzIG93biBhcnJvd3Mgc2l0IGluc2lkZSB0aGVcbiAgICAgICBib3gsIGFyZSBmYXIgdG9vIHNtYWxsIHRvIGFpbSBhdCwgYW5kIHN0ZXAgcGFzdCB0aGUgbWluaW11bSB0aGUgcHJhY3RpY2UgaXMgYWxsb3dlZCB0byBrZWVwLiAqL1xuICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAgIGFwcGVhcmFuY2U6IHRleHRmaWVsZDtcblxuICAgICY6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkbmF2eS1wYWxlO1xuICAgIH1cbn1cblxuLnNlYXQtb3ZlcmZsb3ctbm90ZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDEycHg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgIGJvcmRlcjogMXB4IGRhc2hlZCAkZ3JleS1ib3JkZXItbWVkaXVtO1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLW1kO1xuICAgIHBhZGRpbmc6IDE0cHggMThweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICR0ZXh0LW11dGVkO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG5cbiAgICBpIHtcbiAgICAgICAgY29sb3I6ICRuYXZ5O1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qICEgT3JkZXIgc3VtbWFyeVxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnNlYXQtc3VtbWFyeS1jYXJkIHtcbiAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGdyZXktYm9yZGVyLWxpZ2h0O1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWxnO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm94LXNoYWRvdzogJHNoYWRvdy1zbTtcbn1cblxuLnNlYXQtc3VtbWFyeS1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgJG5hdnkgMCUsICRkYXJrTmF2eSAxMDAlKTtcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIHBhZGRpbmc6IDE0cHggMjBweDtcblxuICAgIGg0IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgICB9XG59XG5cbi5zZWF0LXN1bW1hcnktY3VycmVuY3kge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIG9wYWNpdHk6IDAuODtcbn1cblxuLnNlYXQtc3VtbWFyeS1ib2R5IHtcbiAgICBwYWRkaW5nOiAxOHB4IDIwcHg7XG4gICAgbWluLWhlaWdodDogMTIwcHg7XG59XG5cbi5zZWF0LXN1bW1hcnktbG9hZGluZyxcbi5zZWF0LXN1bW1hcnktZW1wdHkge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogJHRleHQtbXV0ZWQ7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIHBhZGRpbmc6IDI0cHggMDtcblxuICAgIGkge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgICB9XG59XG5cbi5zdW1tYXJ5LWxpbmUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICBwYWRkaW5nOiA4cHggMDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdyZXktYm9yZGVyLWxpZ2h0O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcblxuICAgICYudG90YWwge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICBib3JkZXItdG9wOiAycHggc29saWQgJGRhcmtOYXZ5O1xuICAgICAgICBtYXJnaW4tdG9wOiA2cHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGNvbG9yOiAkZGFya05hdnk7XG4gICAgfVxufVxuXG4uc3VtbWFyeS1sYWJlbCB7XG4gICAgY29sb3I6ICR0ZXh0R3JleTtcblxuICAgIHNtYWxsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbG9yOiAkdGV4dC1tdXRlZDtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgIH1cbn1cblxuLnN1bW1hcnktYW1vdW50IHtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAkZGFya05hdnk7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnN1bW1hcnktY2hhcmdlIHtcbiAgICBtYXJnaW4tdG9wOiAxNHB4O1xuICAgIHBhZGRpbmc6IDEycHggMTRweDtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1zbTtcbiAgICBiYWNrZ3JvdW5kOiAkbmF2eS1wYWxlO1xuXG4gICAgJi5kb3duZ3JhZGUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkd2FybmluZy1iZztcblxuICAgICAgICAuY2hhcmdlLXJvdyB7XG4gICAgICAgICAgICBjb2xvcjogJHdhcm5pbmctdGV4dDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNoYXJnZS1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICRkYXJrTmF2eTtcblxuICAgIHN0cm9uZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICB9XG59XG5cbi5jaGFyZ2Utbm90ZSB7XG4gICAgbWFyZ2luOiA2cHggMCAwO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBsaW5lLWhlaWdodDogMS40NTtcbiAgICBjb2xvcjogJHRleHQtbXV0ZWQ7XG59XG5cbi5zdW1tYXJ5LW5leHQge1xuICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGNvbG9yOiAkdGV4dC1tdXRlZDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5zZWF0LXN1bW1hcnktZm9vdGVyIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGdyZXktYm9yZGVyLWxpZ2h0O1xuICAgIHBhZGRpbmc6IDE2cHggMjBweDtcbiAgICBiYWNrZ3JvdW5kOiAkZ3JleS1tb2RhbC1oZWFkZXI7XG5cbiAgICAuYnRuIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIH1cblxuICAgIC8qIFRoZSBnbG9iYWwgLmJ0bi1uYXZ5IGlzIGNhcHBlZCBhdCAyMjBweCwgd2hpY2ggbGVhdmVzIHRoZSBibG9jayBidXR0b25cbiAgICAgICBodWdnaW5nIHRoZSBsZWZ0IGVkZ2Ugb2YgdGhlIGNhcmQuIFNwYW4gdGhlIGZvb3RlciBpbnN0ZWFkLiAqL1xuICAgIC5idG4tYmxvY2sge1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxufVxuXG4uc2VhdC12YWxpZGF0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiAkd2FybmluZy1iZztcbiAgICBjb2xvcjogJHdhcm5pbmctdGV4dDtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1zbTtcbiAgICBwYWRkaW5nOiA5cHggMTJweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuXG4gICAgaSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIH1cbn1cblxuLnNlYXQtdmFsaWRhdGlvbi1hY3Rpb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogOHB4IDAgMDtcbn1cblxuLnNlYXQtZmVlZGJhY2sge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG5cbiAgICBpIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgfVxuXG4gICAgJi5lcnJvciB7XG4gICAgICAgIGNvbG9yOiAkZGFuZ2VyO1xuICAgIH1cblxuICAgICYuc3VjY2VzcyB7XG4gICAgICAgIGNvbG9yOiAjMTI4MDVjO1xuICAgIH1cbn1cblxuLnNlYXQtcmVuZXctbm90ZSB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgY29sb3I6ICR0ZXh0LW11dGVkO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW46IDJweCAwIDA7XG59XG5cbi5zZWF0LWNhbmNlbC1saW5rIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiAkdGV4dC1tdXRlZDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbWFyZ2luLXRvcDogNHB4O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAkZGFuZ2VyO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qICEgU2VhdCBhdmFpbGFiaWxpdHkgaGVhZGVyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uc2VhdC1hdmFpbGFiaWxpdHktcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogMTZweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLnNlYXQtYXZhaWxhYmlsaXR5LWNhcmQge1xuICAgIGZsZXg6IDEgMSAyNDBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxNHB4O1xuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkZ3JleS1ib3JkZXItbGlnaHQ7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbGc7XG4gICAgcGFkZGluZzogMTRweCAxOHB4O1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA0cHg7XG5cbiAgICAmLnN0YW5kYXJkIHtcbiAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICRuYXZ5O1xuICAgIH1cblxuICAgICYucHJlbWl1bSB7XG4gICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkcHVycGxlO1xuICAgIH1cblxuICAgICYuZ2hvc3Qge1xuICAgICAgICBib3JkZXItc3R5bGU6IGRhc2hlZDtcbiAgICAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBjb2xvcjogJHRleHQtbXV0ZWQ7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkbmF2eTtcbiAgICAgICAgICAgIGNvbG9yOiAkbmF2eTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmF2YWlsYWJpbGl0eS1pY29uIHtcbiAgICB3aWR0aDogMzhweDtcbiAgICBoZWlnaHQ6IDM4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtY2lyY2xlO1xuICAgIGJhY2tncm91bmQ6ICRsaWdodEdyZXk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGNvbG9yOiAkbmF2eTtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLmF2YWlsYWJpbGl0eS1kZXRhaWwge1xuICAgIGZsZXg6IDE7XG4gICAgbWluLXdpZHRoOiAwO1xufVxuXG4uYXZhaWxhYmlsaXR5LWxhYmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC42cHg7XG4gICAgY29sb3I6ICR0ZXh0LW11dGVkO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5hdmFpbGFiaWxpdHktY291bnQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAkZGFya05hdnk7XG5cbiAgICBzbWFsbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgY29sb3I6ICR0ZXh0LW11dGVkO1xuICAgIH1cbn1cblxuLmF2YWlsYWJpbGl0eS1iYXIge1xuICAgIGhlaWdodDogNXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBiYWNrZ3JvdW5kOiAkcGFnZUJhY2tHcm91bmQ7XG4gICAgbWFyZ2luLXRvcDogNnB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5hdmFpbGFiaWxpdHktZmlsbCB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICRuYXZ5O1xuICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMjVzIGVhc2U7XG59XG5cbi5hdmFpbGFiaWxpdHktcmVtYWluaW5nIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGdyZXktYm9yZGVyLWxpZ2h0O1xuXG4gICAgJi5ub25lLWxlZnQgLnJlbWFpbmluZy1udW1iZXIge1xuICAgICAgICBjb2xvcjogJHRleHQtbXV0ZWQ7XG4gICAgfVxufVxuXG4ucmVtYWluaW5nLW51bWJlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAyMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICRncmVlbjtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xufVxuXG4ucmVtYWluaW5nLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC42cHg7XG4gICAgY29sb3I6ICR0ZXh0LW11dGVkO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiAhIFRhYmxlIHRvb2xiYXJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5zZWF0LXRhYmxlLXRvb2xiYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDE2cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbn1cblxuLnNlYXQtc2VhcmNoIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRncmV5LWJvcmRlci1saWdodDtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIHBhZGRpbmc6IDZweCAxNHB4O1xuICAgIHdpZHRoOiAzMjBweDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICBpIHtcbiAgICAgICAgY29sb3I6ICR0ZXh0LW11dGVkO1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgfVxuXG4gICAgaW5wdXQge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICB9XG59XG5cbi5zZWF0LXRhYmxlLWNvdW50IHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICR0ZXh0LW11dGVkO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5zZWF0LXBlcmlvZC1zZWxlY3RvciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcblxuICAgIGxhYmVsIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjZweDtcbiAgICAgICAgY29sb3I6ICR0ZXh0LW11dGVkO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgIH1cblxuICAgIHNlbGVjdCB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRncmV5LWJvcmRlci1saWdodDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtc207XG4gICAgICAgIHBhZGRpbmc6IDZweCAxMHB4O1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICAgICAgY29sb3I6ICRkYXJrTmF2eTtcbiAgICAgICAgbWluLXdpZHRoOiAyMjBweDtcbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qICEgU2VhdCB0YWJsZXNcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5zZWF0LXRhYmxlLXdyYXBwZXIge1xuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkZ3JleS1ib3JkZXItbGlnaHQ7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbGc7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnNlYXQtdGFibGUge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICA+IHRoZWFkID4gdHIgPiB0aCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRncmV5LW1vZGFsLWhlYWRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRncmV5LWJvcmRlci1saWdodDtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC42cHg7XG4gICAgICAgIGNvbG9yOiAkdGV4dC1tdXRlZDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgIH1cblxuICAgID4gdGJvZHkgPiB0ciA+IHRkIHtcbiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGdyZXktYm9yZGVyLWxpZ2h0O1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgfVxuXG4gICAgPiB0Ym9keSA+IHRyIHtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHBhbGVCbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5yb3ctc2F2aW5nIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRuYXZ5LXBhbGU7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRuYXZ5LXBhbGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLnJvdy1vcnBoYW5lZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjQzLCAyMDUsIDAuNSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zZWF0LXVzZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG59XG5cbi5zZWF0LWF2YXRhciB7XG4gICAgd2lkdGg6IDM0cHg7XG4gICAgaGVpZ2h0OiAzNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWNpcmNsZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZmxleC1zaHJpbms6IDA7XG5cbiAgICAmLnRpZXItc3RhbmRhcmQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkbmF2eTtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG5cbiAgICAmLnRpZXItcHJlbWl1bSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGU7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgfVxuXG4gICAgJi50aWVyLXRyaWFsIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGN5YW47XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgfVxuXG4gICAgJi50aWVyLW5vbmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcGFnZUJhY2tHcm91bmQ7XG4gICAgICAgIGNvbG9yOiAkdGV4dC1tdXRlZDtcbiAgICB9XG59XG5cbi5zZWF0LXVzZXItZGV0YWlsIHtcbiAgICBtaW4td2lkdGg6IDA7XG59XG5cbi5zZWF0LXVzZXItbmFtZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJGRhcmtOYXZ5O1xufVxuXG4uc2VhdC11c2VyLWVtYWlsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgY29sb3I6ICR0ZXh0LW11dGVkO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi5zZWF0LXVzZXItYXNzaWduZWQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBjb2xvcjogJHRleHQtbXV0ZWQ7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKiBUaGUgcm9sZSByaWRlcyBvbiB0aGUgbmFtZSBsaW5lLCBzbyBpdCBpcyBzZXQgYXBhcnQgYnkgd2VpZ2h0IGFuZCBhIHNlcGFyYXRvciByYXRoZXIgdGhhbiBieVxuICAgc2l0dGluZyBpbiBhIGNvbHVtbiBvZiBpdHMgb3duLiAqL1xuLnNlYXQtdXNlci1yb2xlIHtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBjb2xvcjogJHRleHQtbXV0ZWQ7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlxcMDBiN1wiO1xuICAgICAgICBtYXJnaW46IDAgNXB4O1xuICAgIH1cbn1cblxuLyogTGFiZWxzIGFyZSB3cml0dGVuIG91dCBpbiB0aGUgdGllciBtYXAgcmF0aGVyIHRoYW4gc2hvdXRlZCBieSB0aGUgc3R5bGVzaGVldCwgc28gbm8gc2NyZWVuIGV2ZXJcbiAgIHNob3dzIGEgcmF3IGVudW0gdmFsdWUuICovXG4uc2VhdC1iYWRnZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmc6IDJweCA5cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4ycHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBiYWNrZ3JvdW5kOiAkcGFnZUJhY2tHcm91bmQ7XG4gICAgY29sb3I6ICR0ZXh0LW11dGVkO1xuXG4gICAgaSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogM3B4O1xuICAgIH1cblxuICAgICYuc3RhbmRhcmQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkbmF2eS1wYWxlO1xuICAgICAgICBjb2xvcjogJG5hdnk7XG4gICAgfVxuXG4gICAgJi5wcmVtaXVtIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGxhdmVuZGVyLXRwLTIwO1xuICAgICAgICBjb2xvcjogJHB1cnBsZTtcbiAgICB9XG5cbiAgICAmLndhbGxldCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRsaWdodEdyZXk7XG4gICAgICAgIGNvbG9yOiAkdGV4dC1tdXRlZDtcbiAgICB9XG5cbiAgICAmLnRyaWFsIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGN5YW4tdHAtMjA7XG4gICAgICAgIGNvbG9yOiAkdGVhbDtcbiAgICB9XG5cbiAgICAmLm9ycGhhbmVkIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHllbGxvdy10cC0zMDtcbiAgICAgICAgY29sb3I6ICR3YXJuaW5nLXRleHQ7XG4gICAgfVxufVxuXG4vKiBCYWRnZXMgdHJhaWxpbmcgYSBuYW1lIG5lZWQgc2VwYXJhdGluZyBmcm9tIGl0OyB0aGUgc2FtZSBiYWRnZSBpbiBpdHMgb3duIHRhYmxlIGNlbGwgZG9lcyBub3QuICovXG4uc2VhdC11c2VyLW5hbWUgLnNlYXQtYmFkZ2Uge1xuICAgIG1hcmdpbi1sZWZ0OiA2cHg7XG4gICAgZm9udC1zaXplOiAxMHB4O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiAhIFBlci1yb3cgdGllciBzZWxlY3RvclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnNlYXQtdGllci1zZWxlY3RvciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkZ3JleS1ib3JkZXItbGlnaHQ7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtc207XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG59XG5cbi8qIFRoZSBzcGlubmVyIGlzIG92ZXJsYWlkIHJhdGhlciB0aGFuIGluc2VydGVkLCBzbyBhbiBpbi1mbGlnaHQgcm93IGtlZXBzIGl0cyBoZWlnaHQuICovXG4uc2VhdC10aWVyLWNlbGwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnNlYXQtdGllci1zZWxlY3Rvci5zYXZpbmcge1xuICAgIG9wYWNpdHk6IDAuNDU7XG4gICAgY3Vyc29yOiBwcm9ncmVzcztcbn1cblxuLnNlYXQtdGllci1zcGlubmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbjogLTdweCAwIDAgLTdweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY29sb3I6ICRuYXZ5O1xufVxuXG4udGllci1vcHRpb24ge1xuICAgIGZsZXg6IDE7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRncmV5LWJvcmRlci1saWdodDtcbiAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgcGFkZGluZzogN3B4IDZweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJHRleHQtbXV0ZWQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZSwgY29sb3IgMC4xNXMgZWFzZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgIH1cblxuICAgICY6aG92ZXI6bm90KFtkaXNhYmxlZF0pOm5vdCguc2VsZWN0ZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGxpZ2h0R3JleTtcbiAgICAgICAgY29sb3I6ICRkYXJrTmF2eTtcbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgIGNvbG9yOiAjYzhjZGQ0O1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkbGlnaHRHcmV5O1xuICAgIH1cblxuICAgICYuc2VsZWN0ZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkdGV4dEdyZXk7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgfVxuXG4gICAgJi5zdGFuZGFyZC5zZWxlY3RlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRuYXZ5O1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cblxuICAgICYucHJlbWl1bS5zZWxlY3RlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGU7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgfVxuXG4gICAgLyogVGhlIHRyaWFsIHNsb3Qgc3RhbmRzIGluIGZvciBcIm5vbmVcIiBvbiBhIHRyaWFsIGhvbGRlciwgd2hvc2UgdHJpYWwgY2Fubm90IGJlIHJlbGVhc2VkLiAqL1xuICAgICYudHJpYWwuc2VsZWN0ZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY3lhbjtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qICEgRmVlZGJhY2sgYmFyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uc2VhdC1mZWVkYmFjay1iYXIge1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgYm90dG9tOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDIwcHg7XG4gICAgbWFyZ2luLXRvcDogMTRweDtcbiAgICBwYWRkaW5nOiAwIDE4cHg7XG4gICAgbWF4LWhlaWdodDogMDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWxnO1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3ctbWQ7XG4gICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjJzIGVhc2UsIG9wYWNpdHkgMC4ycyBlYXNlLCBwYWRkaW5nIDAuMnMgZWFzZTtcblxuICAgICYudmlzaWJsZSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwcHg7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHBhZGRpbmc6IDE0cHggMThweDtcbiAgICB9XG5cbiAgICAuc2VhdC1mZWVkYmFjayB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiAhIFVzYWdlIHRvdGFsc1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnNlYXQtdG90YWxzLWdyaWQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAxNnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE4cHg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4uc2VhdC10b3RhbC1jYXJkIHtcbiAgICBmbGV4OiAxIDEgMjAwcHg7XG4gICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRncmV5LWJvcmRlci1saWdodDtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1sZztcbiAgICBwYWRkaW5nOiAxNnB4IDE4cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogM3B4O1xufVxuXG4udG90YWwtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjZweDtcbiAgICBjb2xvcjogJHRleHQtbXV0ZWQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLnRvdGFsLXZhbHVlIHtcbiAgICBmb250LXNpemU6IDI2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogJGRhcmtOYXZ5O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE1O1xufVxuXG4udG90YWwtc3ViIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgY29sb3I6ICR0ZXh0LW11dGVkO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG5cbi50b3RhbC1iYXIge1xuICAgIGhlaWdodDogNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBiYWNrZ3JvdW5kOiAkcGFnZUJhY2tHcm91bmQ7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi50b3RhbC1maWxsIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogJG5hdnk7XG4gICAgdHJhbnNpdGlvbjogd2lkdGggMC4yNXMgZWFzZTtcblxuICAgICYub3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR5ZWxsb3ctY3RhO1xuICAgIH1cbn1cblxuLnRvdGFsLWxpbmsge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkbmF2eTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbWFyZ2luLXRvcDogNHB4O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICBjb2xvcjogJG5hdnk7XG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiAhIFBlci11c2VyIHVzYWdlIGJhclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnVzYWdlLWJhciB7XG4gICAgaGVpZ2h0OiA2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJhY2tncm91bmQ6ICRwYWdlQmFja0dyb3VuZDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbn1cblxuLnVzYWdlLWZpbGwge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAkZ3JlZW47XG4gICAgdHJhbnNpdGlvbjogd2lkdGggMC4yNXMgZWFzZTtcblxuICAgICYub3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR5ZWxsb3ctY3RhO1xuICAgIH1cbn1cblxuLnVzYWdlLWNhcHRpb24ge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBjb2xvcjogJHRleHRHcmV5O1xufVxuXG4uc2VhdC1mb290bm90ZSB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGNvbG9yOiAkdGV4dC1tdXRlZDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIG1hcmdpbjogMTRweCA0cHggMDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qICEgU2VhdCBwcm9tbyBwYW5lbFxuLyogU2l0cyBvbiB0aGUgd2FsbGV0IHRhYiBvZiB0aGUgcGF5bWVudCBkaWFsb2cgYW5kIGxpbmtzIGFjcm9zcyB0byB0aGVcbi8qIHNlYXRzIHRhYi4gS2VwdCBpbiB0aGlzIGZpbGUgcmF0aGVyIHRoYW4gX3BheW1lbnRzLmNzcyBzbyBldmVyeXRoaW5nXG4vKiBkZXNjcmliaW5nIHNlYXRzIHN0YXlzIGluIG9uZSBwbGFjZS5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5zZWF0LXByb21vIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZDogJHdoaXRlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRncmV5LWJvcmRlci1saWdodDtcbiAgICAvKiBUaGUgNHB4IGVkZ2UgaXMgaG93IHRoZSByZXN0IG9mIHRoaXMgZmlsZSBtYXJrcyBhIGNhbGxvdXQsIGFuZCBpdCBnaXZlcyB0aGUgcGFuZWwgYSBicmFuZFxuICAgICAgIGFuY2hvciB3aXRob3V0IHRoZSBmaWxsZWQgbmF2eSBiYW5uZXIgdGhhdCBjcm93ZGVkIHRoZSB3YWxsZXQgY2FyZCBhYm92ZSBpdC4gKi9cbiAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkICRuYXZ5O1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLXhsO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qICEgU2VhdCBwcm9tbyBvcGVuaW5nIHBpbmdcbi8qIFRoZSBwYW5lbCBpcyBlYXN5IHRvIHNjcm9sbCBwYXN0LCBzbyB0d28gdGhpbmdzIGhhcHBlbiB3aGVuIHRoZSBkaWFsb2dcbi8qIGZpcnN0IHNob3dzIGl0OiBpdCBsaWZ0cyBvZmYgdGhlIHBhZ2Ugb25jZSwgYW5kIGEgYmFuZCBvZiBjeWFuIGxpZ2h0XG4vKiBzd2VlcHMgYWNyb3NzIGl0LiBUaGUgd2hpdGUgYm9keSBpcyBuZXZlciByZWNvbG91cmVkIC0gdGhlIGJhbmQgb25seVxuLyogcGFzc2VzIG92ZXIgaXQgLSBhbmQgYm90aCBhbmltYXRpb25zIGVuZCBvbiB0aGUgcmVzdGluZyBsb29rLCBzbyB0aGVcbi8qIGNsYXNzIGNhbiBiZSBkcm9wcGVkIGF0IGFueSBwb2ludCB3aXRob3V0IHRoZSBwYW5lbCBhcHBlYXJpbmcgdG9cbi8qIGNoYW5nZS5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogT25lIHJpc2UgYW5kIHNldHRsZS4gS2VwdCB0byBhIGZldyBwaXhlbHM6IHRoaXMgaXMgYSBwYW5lbCBpbiBhIGRpYWxvZywgbm90IGEgY2FyZCBiZWluZyBwaWNrZWQgdXAuICovXG5Aa2V5ZnJhbWVzIHNlYXQtcHJvbW8tbGlmdCB7XG4gICAgMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7XG4gICAgfVxuXG4gICAgMzAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpIHNjYWxlKDEuMDA4KTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpO1xuICAgIH1cbn1cblxuLyogVHJhdmVscyB0aGUgcGFuZWwncyBvd24gd2lkdGggcGx1cyBpdHMgb3ZlcmhhbmcsIHNvIHRoZSBiYW5kIGVudGVycyBhbmQgbGVhdmVzIG9mZiB0aGUgZWRnZXMuICovXG5Aa2V5ZnJhbWVzIHNlYXQtcHJvbW8tc3dlZXAge1xuICAgIGZyb20ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEzMCUpIHNrZXdYKC0xMmRlZyk7XG4gICAgfVxuXG4gICAgdG8ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzIwJSkgc2tld1goLTEyZGVnKTtcbiAgICB9XG59XG5cbi8qIEhlbGQgZm9yIHRoZSBmaXJzdCBtb21lbnRzIG9mIHRoZSBkaWFsb2cgb25seSAtIHRoZSBjb250cm9sbGVyIGRyb3BzIHRoZSBjbGFzcyBhcyB0aGVzZSBmaW5pc2guICovXG4uc2VhdC1wcm9tby1oaWdobGlnaHQge1xuICAgIGFuaW1hdGlvbjogc2VhdC1wcm9tby1saWZ0IDEuN3MgZWFzZS1vdXQgMSBib3RoO1xuXG4gICAgLyogVGhlIGJhbmQgb2YgbGlnaHQuIENsaXBwZWQgYnkgdGhlIHBhbmVsJ3Mgb3duIG92ZXJmbG93LCBhbmQgb3ZlciB0aGUgaGVybyBjb250ZW50IHJhdGhlciB0aGFuXG4gICAgICAgdW5kZXIgaXQsIHNvIGl0IHBhc3NlcyBhY3Jvc3MgdGhlIGNvcHkgYXMgd2VsbCBhcyB0aGUgdGludGVkIHN0cmlwLiBDeWFuIGNhcnJpZXMgYWdhaW5zdCBib3RoXG4gICAgICAgdGhlIHdoaXRlIGJvZHkgYW5kIHRoZSBwYWxlIGhlcm87IGEgd2hpdGUgc2hlZW4gd291bGQgYmUgaW52aXNpYmxlIG9uIGVpdGhlci4gKi9cbiAgICAmOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLTEwJTtcbiAgICAgICAgYm90dG9tOiAtMTAlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogNDUlO1xuICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEwMGRlZyxcbiAgICAgICAgICAgIGNvbG9yKCRjeWFuIGEoMCUpKSAwJSxcbiAgICAgICAgICAgIGNvbG9yKCRjeWFuIGEoMjYlKSkgNTAlLFxuICAgICAgICAgICAgY29sb3IoJGN5YW4gYSgwJSkpIDEwMCUpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEzMCUpIHNrZXdYKC0xMmRlZyk7XG4gICAgICAgIGFuaW1hdGlvbjogc2VhdC1wcm9tby1zd2VlcCAxLjI1cyBlYXNlLWluLW91dCAyIGJvdGg7XG4gICAgfVxufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5zZWF0LXByb21vLWhpZ2hsaWdodCB7XG4gICAgICAgIGFuaW1hdGlvbjogbm9uZTtcblxuICAgICAgICAvKiBIaWRkZW4gb3V0cmlnaHQ6IHdpdGggdGhlIGFuaW1hdGlvbiBvZmYsIGEgc3RhdGljIGJhbmQgd291bGQganVzdCBzaXQgb3ZlciB0aGUgcGFuZWwuICovXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIFRpbnRlZCB3ZWxsIHNob3J0IG9mIHRoZSB3YWxsZXQgY2FyZCdzIHNhdHVyYXRpb24sIGJ1dCBmYXIgZW5vdWdoIHVwIGZyb20gd2hpdGUgdGhhdCB0aGUgcGFuZWxcbiAgIHN0aWxsIHJlYWRzIGFzIGFuIGFkdmVydGlzZW1lbnQgcmF0aGVyIHRoYW4gYW5vdGhlciBzZXR0aW5ncyBjYXJkLiAqL1xuLnNlYXQtcHJvbW8taGVybyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMjRweDtcbiAgICBwYWRkaW5nOiAyNHB4IDI4cHggMjJweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTIwZGVnLCBjb2xvcigkbmF2eSBsKDkwJSkpIDAlLCBjb2xvcigkY3lhbiBsKDg4JSkpIDEwMCUpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ3JleS1ib3JkZXItbGlnaHQ7XG4gICAgY29sb3I6ICRkYXJrTmF2eTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IC02MHB4O1xuICAgICAgICB0b3A6IC04MHB4O1xuICAgICAgICB3aWR0aDogMjMwcHg7XG4gICAgICAgIGhlaWdodDogMjMwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZS10cC00MDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtY2lyY2xlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG59XG5cbi5zZWF0LXByb21vLXdhdGVybWFyayB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAyMnB4O1xuICAgIGJvdHRvbTogLTM0cHg7XG4gICAgZm9udC1zaXplOiAxMThweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogJHdoaXRlLXRwLTUwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uc2VhdC1wcm9tby1pbnRybyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMThweDtcbiAgICBmbGV4OiAxO1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuLyogVGhlIG9uZSBzYXR1cmF0ZWQgZWxlbWVudCBsZWZ0IGluIHRoZSBoZXJvLCBtYXRjaGluZyB0aGUgd2FsbGV0IHBhZ2UncyBvd24gaWNvbiBjaGlwcy4gKi9cbi5zZWF0LXByb21vLWljb24ge1xuICAgIHdpZHRoOiA1MnB4O1xuICAgIGhlaWdodDogNTJweDtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1sZztcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAkbmF2eSAwJSwgJGRhcmtOYXZ5IDEwMCUpO1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDUzLCAyMTAsIDAuMTUpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDIycHg7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5zZWF0LXByb21vLWNvcHkge1xuICAgIG1pbi13aWR0aDogMDtcblxuICAgIGgzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBnYXA6IDEwcHg7XG4gICAgICAgIG1hcmdpbjogMCAwIDZweDtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgICAgY29sb3I6ICRkYXJrTmF2eTtcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBtYXgtd2lkdGg6IDYyMHB4O1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICAgIGNvbG9yOiAkdGV4dEdyZXk7XG4gICAgfVxuXG4gICAgc3Ryb25nIHtcbiAgICAgICAgY29sb3I6ICRkYXJrTmF2eTtcbiAgICB9XG59XG5cbi5zZWF0LXByb21vLWZsYWcge1xuICAgIGJhY2tncm91bmQ6ICR5ZWxsb3ctY3RhO1xuICAgIGNvbG9yOiAkbmF2eS1kYXJrLXRleHQ7XG4gICAgZm9udC1zaXplOiA5cHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC44cHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBwYWRkaW5nOiAzcHggOXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zYW5zLXNlcmlmO1xuXG4gICAgJi5saXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGdyZWVuO1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cblxuICAgICYuYWxlcnQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcmVkLWRhbmdlci1hbHQ7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgfVxufVxuXG4uc2VhdC1wcm9tby1jdGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIGZsZXg6IDAgMCAyMTBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA4cHg7XG5cbiAgICAuYnRuIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cblxuLnNlYXQtcHJvbW8tYnRuLXByaW1hcnksXG4uc2VhdC1wcm9tby1idG4tc2Vjb25kYXJ5IHtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIHBhZGRpbmc6IDlweCAxNHB4O1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG5cbiAgICBpIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gICAgfVxufVxuXG4uc2VhdC1wcm9tby1idG4tcHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZDogJG5hdnk7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBib3JkZXI6IDA7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDUzLCAyMTAsIDAuMik7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkZGFya05hdnk7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIG91dGxpbmU6IDA7XG4gICAgfVxufVxuXG4uc2VhdC1wcm9tby1idG4tc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgY29sb3I6ICRuYXZ5O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRncmV5LWJvcmRlci1tZWRpdW07XG5cbiAgICAmOmhvdmVyLFxuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICAgIGNvbG9yOiAkbmF2eTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkbmF2eTtcbiAgICAgICAgb3V0bGluZTogMDtcbiAgICB9XG59XG5cbi5zZWF0LXByb21vLWxpbmsge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICRuYXZ5O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkZGFya05hdnk7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbn1cblxuLyogLS0tIFRoZSB0d28gdGllcnMsIHByaWNlZC4gU2lkZSBieSBzaWRlLCBhcyB0aGV5IGFyZSBvbiB0aGUgc2VhdHMgdGFiIGl0c2VsZi4gLS0tICovXG4uc2VhdC1wcm9tby1wbGFucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBnYXA6IDEycHg7XG4gICAgcGFkZGluZzogMTZweCAyOHB4IDE4cHg7XG59XG5cbi5zZWF0LXByb21vLXBsYW4ge1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gICAgYmFja2dyb3VuZDogJGxpZ2h0R3JleTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkZ3JleS1ib3JkZXItbGlnaHQ7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbGc7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4ycyBlYXNlLCBib3JkZXItY29sb3IgMC4ycyBlYXNlO1xuXG4gICAgJi5yZWNvbW1lbmRlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRuYXZ5LXBhbGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJG5hdnk7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3ctc207XG4gICAgICAgIGJvcmRlci1jb2xvcjogJG5hdnk7XG4gICAgfVxufVxuXG4ucHJvbW8tcGxhbi1uYW1lIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogOHB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAkZGFya05hdnk7XG5cbiAgICBpIHtcbiAgICAgICAgY29sb3I6ICRuYXZ5O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgfVxufVxuXG4ucHJvbW8tcGxhbi1wcmljZSB7XG4gICAgbWFyZ2luLXRvcDogM3B4O1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgY29sb3I6ICRkYXJrTmF2eTtcblxuICAgIHNtYWxsIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBjb2xvcjogJHRleHQtbXV0ZWQ7XG4gICAgfVxufVxuXG4uc2VhdC1wcm9tby1wbGFucy1zdGF0dXMge1xuICAgIGZsZXg6IDE7XG4gICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgIGJvcmRlcjogMXB4IGRhc2hlZCAkZ3JleS1ib3JkZXItbGlnaHQ7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbGc7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiAkdGV4dC1tdXRlZDtcblxuICAgIGkge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgICB9XG59XG5cbi8qIC0tLSBGb290ZXJzOiB0aGUgdGhpbmdzIHRoYXQgYmxvY2sgb3Igd2FzdGUgYSBzZWF0IHB1cmNoYXNlIC0tLSAqL1xuLnNlYXQtcHJvbW8tbm90ZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBwYWRkaW5nOiAxMXB4IDI4cHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRncmV5LWJvcmRlci1saWdodDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDU7XG5cbiAgICA+IGkge1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIH1cblxuICAgID4gc3BhbiB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgfVxuXG4gICAgLyogVGhlIHNoYXJlZCAuYnRuIHJ1bGVzIHN0cmV0Y2ggdG8gMjIwcHgsIHdoaWNoIHJlYWRzIGFzIGEgc2xhYiBpbiBhIG9uZS1saW5lIGZvb3Rlci4gKi9cbiAgICAuYnRuIHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cblxuICAgICYuaW5mbyB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRuYXZ5LXBhbGU7XG4gICAgICAgIGNvbG9yOiAkZGFya05hdnk7XG5cbiAgICAgICAgPiBpIHtcbiAgICAgICAgICAgIGNvbG9yOiAkbmF2eTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYud2FybmluZyB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR3YXJuaW5nLWJnO1xuICAgICAgICBjb2xvcjogJHdhcm5pbmctdGV4dDtcblxuICAgICAgICA+IGkge1xuICAgICAgICAgICAgY29sb3I6ICR5ZWxsb3ctY3RhO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5kYW5nZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIxNywgODMsIDc5LCAwLjEpO1xuICAgICAgICBjb2xvcjogJGRhbmdlcjtcblxuICAgICAgICA+IGkge1xuICAgICAgICAgICAgY29sb3I6ICRyZWQtZGFuZ2VyLWFsdDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogISBOYXJyb3cgc2NyZWVuc1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDExMDBweCkge1xuICAgIC5zZWF0LXBsYW4tbGF5b3V0IHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICAuc2VhdC1zdW1tYXJ5LWNvbHVtbiB7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA4MjBweCkge1xuICAgIC5zZWF0LXByb21vLWhlcm8ge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICB9XG5cbiAgICAuc2VhdC1wcm9tby1jdGEge1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICB9XG5cbiAgICAvKiBCZWxvdyB0aGlzIHRoZXJlIGlzIG5vdCByb29tIHRvIGNvbXBhcmUgdGhlIHRpZXJzIHNpZGUgYnkgc2lkZSwgb24gZWl0aGVyIHNjcmVlbi4gKi9cbiAgICAuc2VhdC10aWVyLWdyaWQsXG4gICAgLnNlYXQtcHJvbW8tcGxhbnMge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgIC8qIEEgRm9udCBBd2Vzb21lIGVsZW1lbnQsIHdob3NlIG93biAuZmEgcnVsZSBpcyBsb2FkZWQgYWZ0ZXIgdGhpcyBmaWxlIGFuZCBjYXJyaWVzIHRoZSBzYW1lXG4gICAgICAgc3BlY2lmaWNpdHksIHNvIHRoZSBwYXJlbnQgaGFzIHRvIGJlIG5hbWVkIHRvIGhpZGUgaXQuICovXG4gICAgLnNlYXQtcHJvbW8taGVybyAuc2VhdC1wcm9tby13YXRlcm1hcmsge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qICEgU2V0dGluZ3MgTW9kYWxcbi8qIFNoYXJlcyB0aGUgdmlzdWFsIGxhbmd1YWdlIG9mIF9wYXltZW50cy5jc3MgLSBwYWxlIGJsdWUgY2FudmFzLCB3aGl0ZVxuLyogcm91bmRlZCBjYXJkcywgbmF2eSBhY2NlbnRzIC0gYW5kIHJldXNlcyAuc2V0dGluZ3MtY2FyZCwgLnNldHRpbmctcm93LFxuLyogLnRvZ2dsZS1zd2l0Y2gsIC5zYXZlLXN0YXR1cy1pbmRpY2F0b3IgYW5kIC5kaXNhYmxlZC1vdmVybGF5IGZyb20gaXQuXG4vKiBFdmVyeXRoaW5nIGVsc2UgaXMgc2NvcGVkIHRvIC5zZXR0aW5ncy1zaGVsbCBzbyB0aGUgZ2VuZXJpYyBuYW1lcyBoZXJlXG4vKiBjYW5ub3QgbGVhayBpbnRvIHRoZSByZXN0IG9mIHRoZSBhcHAuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIFRoZSBzY29wZSBiYW5kIHdpcGVzIG9wZW4gd2hlbiBhIHNlY3Rpb24gaXMgc2hvd24uIENsaXAtcGF0aCBvbmx5IGFmZmVjdHMgcGFpbnQsXG4gICBzbyB0aGUgYm94IG9jY3VwaWVzIGl0cyBzcGFjZSBpbW1lZGlhdGVseSBhbmQgbm90aGluZyBzaGlmdHMgYXJvdW5kIGl0LiAqL1xuQGtleWZyYW1lcyBzZXR0aW5ncy1zY29wZS1iYW5kLW9wZW4ge1xuXHRmcm9tIHtcblx0XHRjbGlwLXBhdGg6IGluc2V0KDAgMTAwJSAwIDApO1xuXHR9XG5cblx0dG8ge1xuXHRcdGNsaXAtcGF0aDogaW5zZXQoMCAwIDAgMCk7XG5cdH1cbn1cblxuLnNldHRpbmdzLWRpYWxvZyB7XG5cdG1kLWRpYWxvZy1jb250ZW50IHtcblx0XHRib3JkZXItdG9wOiAwO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0fVxufVxuXG4uc2V0dGluZ3Mtc2hlbGwge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4OiAxO1xuXHRtaW4taGVpZ2h0OiAwO1xuXHR3aWR0aDogMTAwJTtcblx0YmFja2dyb3VuZC1jb2xvcjogI2Y0ZjdmZTtcblxuXHQvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cdC8qICEgTGVmdCBSYWlsIE5hdmlnYXRpb25cblx0LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXHQuc2V0dGluZ3MtbmF2IHtcblx0XHRmbGV4OiAwIDAgMjcycHg7XG5cdFx0d2lkdGg6IDI3MnB4O1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcblx0XHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkZ3JleS1ib3JkZXItbGlnaHQ7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdG92ZXJmbG93LXk6IGF1dG87XG5cblx0XHQmOjotd2Via2l0LXNjcm9sbGJhciB7XG5cdFx0XHR3aWR0aDogNnB4O1xuXHRcdH1cblxuXHRcdCY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgNTMsIDIxMCwgMC4xKTtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDIwcHg7XG5cdFx0fVxuXHR9XG5cblx0LnNldHRpbmdzLWlkZW50aXR5IHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0Z2FwOiAxMnB4O1xuXHRcdHBhZGRpbmc6IDIwcHggMThweCAxOHB4O1xuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVmMWY3O1xuXHR9XG5cblx0LnNldHRpbmdzLWF2YXRhciB7XG5cdFx0d2lkdGg6IDQycHg7XG5cdFx0aGVpZ2h0OiA0MnB4O1xuXHRcdGZsZXgtc2hyaW5rOiAwO1xuXHRcdGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWNpcmNsZTtcblx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAkbmF2eSAwJSwgJGRhcmtOYXZ5IDEwMCUpO1xuXHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdGZvbnQtZmFtaWx5OiAnR29yZGl0YSBCb2xkJywgc2Fucy1zZXJpZjtcblx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0bGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xuXHRcdGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCA1MywgMjEwLCAwLjIpO1xuXHR9XG5cblx0LnNldHRpbmdzLWlkZW50aXR5LXRleHQge1xuXHRcdG1pbi13aWR0aDogMDtcblxuXHRcdC5pZGVudGl0eS1uYW1lIHtcblx0XHRcdGZvbnQtZmFtaWx5OiAnR29yZGl0YSBCb2xkJywgc2Fucy1zZXJpZjtcblx0XHRcdGZvbnQtc2l6ZTogMTNweDtcblx0XHRcdGNvbG9yOiAkbmF2eS1kYXJrLXRleHQ7XG5cdFx0XHRsaW5lLWhlaWdodDogMS4zO1xuXHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHR9XG5cblx0XHQuaWRlbnRpdHktcm9sZSB7XG5cdFx0XHRmb250LXNpemU6IDEwcHg7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IDAuMDZlbTtcblx0XHRcdGNvbG9yOiAjYTNhYWMwO1xuXHRcdFx0Zm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuXHRcdFx0bWFyZ2luLXRvcDogMnB4O1xuXHRcdH1cblx0fVxuXG5cdC5zZXR0aW5ncy1uYXYtZ3JvdXAge1xuXHRcdHBhZGRpbmc6IDE2cHggMTBweCA0cHg7XG5cblx0XHQvKiBQcmFjdGljZSBuYW1lcyBhcmUgYnV0dG9ucyB0aGF0IGZvbGQgdGhlaXIgc2V0dGluZ3MgYXdheTsgXCJZb3VyIGFjY291bnRcIlxuXHRcdCAgIHVzZXMgdGhlIHNhbWUgbG9vayBidXQgaXMgbm90IGludGVyYWN0aXZlLiAqL1xuXHRcdC5zZXR0aW5ncy1uYXYtZ3JvdXAtdGl0bGUge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRnYXA6IDdweDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0Zm9udC1zaXplOiAxMHB4O1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG5cdFx0XHRjb2xvcjogI2EzYWFjMDtcblx0XHRcdGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtc207XG5cdFx0XHRwYWRkaW5nOiA1cHggMTJweCA3cHg7XG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHR0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7XG5cblx0XHRcdCYuc3RhdGljIHtcblx0XHRcdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRcdFx0XHRwYWRkaW5nLXRvcDogMDtcblx0XHRcdH1cblxuXHRcdFx0Jjpub3QoLnN0YXRpYyk6aG92ZXIge1xuXHRcdFx0XHRjb2xvcjogJG5hdnk7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRuYXZ5LXBhbGU7XG5cblx0XHRcdFx0Lm5hdi1ncm91cC1jaGV2cm9uIHtcblx0XHRcdFx0XHRjb2xvcjogJG5hdnk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Lm5hdi1ncm91cC1uYW1lIHtcblx0XHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0XHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0XHR9XG5cblx0XHRcdC5uYXYtZ3JvdXAtY2hldnJvbiB7XG5cdFx0XHRcdGZsZXgtc2hyaW5rOiAwO1xuXHRcdFx0XHRmb250LXNpemU6IDlweDtcblx0XHRcdFx0Y29sb3I6ICNjM2M5ZGE7XG5cdFx0XHRcdHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2UsIGNvbG9yIDAuMTVzIGVhc2U7XG5cdFx0XHR9XG5cblx0XHRcdCYuY29sbGFwc2VkIC5uYXYtZ3JvdXAtY2hldnJvbiB7XG5cdFx0XHRcdHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LyogQ29sbGFwc2UgYW5pbWF0aW9uLiBtYXgtaGVpZ2h0IGNhbm5vdCB0cmFuc2l0aW9uIHRvIGF1dG8sIHNvIGl0IHJ1bnMgdG8gYVxuXHRcdCAgIGNlaWxpbmcgY29tZm9ydGFibHkgYWJvdmUgdGhlIHRhbGxlc3QgZ3JvdXAgKDUgaXRlbXMgfiAyMDBweCk7IHRoZSBlYXNpbmcgaXNcblx0XHQgICB3aGF0IGlzIHNlZW4sIG5vdCB0aGUgZXhhY3QgdmFsdWUuIE9wYWNpdHkgYW5kIGEgc21hbGwgbGlmdCBkbyB0aGUgcmVzdC4gKi9cblx0XHQubmF2LWdyb3VwLWl0ZW1zIHtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHRtYXgtaGVpZ2h0OiAzMjBweDtcblx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHR0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMjRzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksXG5cdFx0XHRcdG9wYWNpdHkgMC4xOHMgZWFzZSxcblx0XHRcdFx0dHJhbnNmb3JtIDAuMjRzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG5cdFx0fVxuXG5cdFx0Lm5hdi1ncm91cC1pdGVtcy5uZy1lbnRlcixcblx0XHQubmF2LWdyb3VwLWl0ZW1zLm5nLWxlYXZlLm5nLWxlYXZlLWFjdGl2ZSB7XG5cdFx0XHRtYXgtaGVpZ2h0OiAwO1xuXHRcdFx0b3BhY2l0eTogMDtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTtcblx0XHR9XG5cblx0XHQubmF2LWdyb3VwLWl0ZW1zLm5nLWVudGVyLm5nLWVudGVyLWFjdGl2ZSxcblx0XHQubmF2LWdyb3VwLWl0ZW1zLm5nLWxlYXZlIHtcblx0XHRcdG1heC1oZWlnaHQ6IDMyMHB4O1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcblx0XHR9XG5cblx0XHQubmF2LWdyb3VwLXRhZyB7XG5cdFx0XHRmbGV4LXNocmluazogMDtcblx0XHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0R3JleTtcblx0XHRcdGNvbG9yOiAjYTNhYWMwO1xuXHRcdFx0Zm9udC1zaXplOiA4cHg7XG5cdFx0XHRsZXR0ZXItc3BhY2luZzogMC4wM2VtO1xuXHRcdFx0cGFkZGluZzogMnB4IDdweDtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDIwcHg7XG5cblx0XHRcdC8qIEZpbGxlZCBwaWxsIG1hcmtzIHRoZSBvbmUgcHJhY3RpY2UgdGhhdCBpcyBvcGVuIC0gb25seSBldmVyIG9uZS4gKi9cblx0XHRcdCYub3BlbiB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRuYXZ5O1xuXHRcdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5zZXR0aW5ncy1uYXYtaXRlbSB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGdhcDogMTFweDtcblx0XHRwYWRkaW5nOiA5cHggMTJweDtcblx0XHRtYXJnaW4tYm90dG9tOiAycHg7XG5cdFx0Ym9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbWQ7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdGNvbG9yOiAjNGE1NTY4O1xuXHRcdGZvbnQtc2l6ZTogMTNweDtcblx0XHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXNlbWlib2xkO1xuXHRcdHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuXHRcdHVzZXItc2VsZWN0OiBub25lO1xuXG5cdFx0aSB7XG5cdFx0XHR3aWR0aDogMTVweDtcblx0XHRcdGZsZXgtc2hyaW5rOiAwO1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdFx0Y29sb3I6ICNhM2FhYzA7XG5cdFx0XHR0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlO1xuXHRcdH1cblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2Y0ZjdmZTtcblx0XHRcdGNvbG9yOiAkbmF2eTtcblxuXHRcdFx0aSB7XG5cdFx0XHRcdGNvbG9yOiAkbmF2eTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLmFjdGl2ZSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2eTtcblx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0XHRib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwgNTMsIDIxMCwgMC4yKTtcblxuXHRcdFx0aSB7XG5cdFx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LnNldHRpbmdzLW5hdi1mb290ZXIge1xuXHRcdG1hcmdpbi10b3A6IGF1dG87XG5cdFx0cGFkZGluZzogMTRweCAxOHB4O1xuXHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWVmMWY3O1xuXG5cdFx0LmZvb3Rlci1sYWJlbCB7XG5cdFx0XHRmb250LXNpemU6IDlweDtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuXHRcdFx0Y29sb3I6ICNhM2FhYzA7XG5cdFx0XHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XG5cdFx0fVxuXG5cdFx0LmZvb3Rlci12YWx1ZSB7XG5cdFx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0XHRjb2xvcjogJG5hdnk7XG5cdFx0XHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XG5cdFx0XHRtYXJnaW4tdG9wOiAzcHg7XG5cdFx0XHRsaW5lLWhlaWdodDogMS4zO1xuXHRcdH1cblx0fVxuXG5cdC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblx0LyogISBSaWdodCBDb250ZW50IFBhbmVcblx0LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXHQuc2V0dGluZ3MtcGFuZSB7XG5cdFx0ZmxleDogMTtcblx0XHRtaW4td2lkdGg6IDA7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmNGY3ZmU7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblxuXHRcdC8qIEVhY2ggc2VjdGlvbiBpcyBhIGNvbXBvbmVudCBlbGVtZW50IC0gbWFrZSBpdCBvd24gdGhlIHBhbmUncyBoZWlnaHQgKi9cblx0XHQ+ICoge1xuXHRcdFx0ZmxleDogMTtcblx0XHRcdG1pbi1oZWlnaHQ6IDA7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHR9XG5cdH1cblxuXHQuc2V0dGluZ3MtcGFuZS1ib2R5IHtcblx0XHRmbGV4OiAxO1xuXHRcdG92ZXJmbG93LXk6IGF1dG87XG5cdFx0cGFkZGluZzogMjRweCAyOHB4IDI4cHg7XG5cblx0XHRoMyxcblx0XHRoNCxcblx0XHRoNSB7XG5cdFx0XHRmb250LWZhbWlseTogJ0dvcmRpdGEgQm9sZCcsIHNhbnMtc2VyaWY7XG5cdFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdH1cblxuXHRcdCY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcblx0XHRcdHdpZHRoOiA2cHg7XG5cdFx0fVxuXG5cdFx0Jjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuXHRcdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0fVxuXG5cdFx0Jjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCA1MywgMjEwLCAwLjEpO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMjBweDtcblx0XHR9XG5cblx0XHQmOmhvdmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDUzLCAyMTAsIDAuMyk7XG5cdFx0fVxuXHR9XG5cblx0LyogX3BheW1lbnRzLmNzcyBzdHJldGNoZXMgY2FyZHMgdG8gZmlsbCB0aGVpciBjb2x1bW47IGhlcmUgdGhleSBodWcgdGhlaXIgY29udGVudCAqL1xuXHQuc2V0dGluZ3MtY2FyZCB7XG5cdFx0aGVpZ2h0OiBhdXRvO1xuXHR9XG5cblx0LyogQ29sdW1uIGZsZXggc28gdGhlIGJhZGdlLCBoZWFkaW5nIGFuZCBkZXNjcmlwdGlvbiBlYWNoIGdldCB0aGVpciBvd24gbGluZVxuXHQgICB3aGlsZSBzdGlsbCBodWdnaW5nIHRoZWlyIGNvbnRlbnQgLSB0aGUgaGVhZGluZyBhbmQgYmFkZ2UgYXJlIHBpbGxzLCBub3QgYmFycy4gKi9cblx0LnNldHRpbmdzLXBhbmUtaGVhZGVyIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblxuXHRcdC8qIEEgYmFuZCBvZiB0aGUgYnJhbmQncyBvd24gcGFsZSBuYXZ5IHJhdGhlciB0aGFuIHBsYWluIHRleHQsIHNvIHRoZSBzZWN0aW9uXG5cdFx0ICAgeW91IGFyZSBpbiByZWFkcyBhdCBhIGdsYW5jZSBhZ2FpbnN0IHRoZSBwYWxlIGJsdWUgY2FudmFzLiBTYW1lIHRpbnQgYXMgdGhlXG5cdFx0ICAgaWNvbiBjaGlwcyB0aHJvdWdob3V0IHRoZSBwYW5lLCBzbyBub3RoaW5nIG5ldyBpcyBpbnRyb2R1Y2VkLiAqL1xuXHRcdGgzIHtcblx0XHRcdGZvbnQtc2l6ZTogMjBweDtcblx0XHRcdGNvbG9yOiAkbmF2eTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRuYXZ5LXBhbGU7XG5cdFx0XHRsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcblx0XHRcdG1hcmdpbjogMCAwIDEwcHg7XG5cdFx0XHRwYWRkaW5nOiA3cHggMTVweDtcblx0XHRcdGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLW1kO1xuXHRcdH1cblxuXHRcdHAge1xuXHRcdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdFx0Y29sb3I6ICM4NzhiYTA7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRtYXgtd2lkdGg6IDcyY2g7XG5cdFx0XHRsaW5lLWhlaWdodDogMS41O1xuXHRcdH1cblx0fVxuXG5cdC8qIFdobyBhIHNldHRpbmcgYWZmZWN0cyBpcyB0aGUgc2luZ2xlIG1vc3QgaW1wb3J0YW50IHRoaW5nIG9uIHRoZXNlIHNjcmVlbnMgLVxuXHQgICBjaGFuZ2luZyBzb21ldGhpbmcgcHJhY3RpY2Utd2lkZSB0b3VjaGVzIGV2ZXJ5IGNsaW5pY2lhbiB0aGVyZS4gQSBzb2xpZCBiYW5kXG5cdCAgIGFjcm9zcyBhIHRoaXJkIG9mIHRoZSBwYW5lIC0gd2lkZSBlbm91Z2ggbm90IHRvIGJlIHNraW1tZWQgcGFzdCBhcyBhIGNhcHRpb24sXG5cdCAgIG5hcnJvdyBlbm91Z2ggbm90IHRvIHNob3V0IG92ZXIgdGhlIHNldHRpbmdzIHRoZW1zZWx2ZXMuICovXG5cdC5zY29wZS1iYWRnZSB7XG5cdFx0YWxpZ24tc2VsZjogZmxleC1zdGFydDtcblx0XHR3aWR0aDogMzMlO1xuXHRcdG1pbi13aWR0aDogMzAwcHg7XG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRnYXA6IDEwcHg7XG5cdFx0Zm9udC1zaXplOiAxMnB4O1xuXHRcdGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdGxldHRlci1zcGFjaW5nOiAwLjA2ZW07XG5cdFx0bGluZS1oZWlnaHQ6IDEuMzU7XG5cdFx0cGFkZGluZzogMTFweCAxNnB4O1xuXHRcdGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLXNtO1xuXHRcdG1hcmdpbi1ib3R0b206IDE0cHg7XG5cdFx0Y29sb3I6ICR3aGl0ZTtcblxuXHRcdC8qIEVhY2ggc2VjdGlvbiBpcyBjcmVhdGVkIGZyZXNoIGJ5IG5nLWlmLCBzbyB0aGlzIHJlcGxheXMgZXZlcnkgdGltZSB5b3Vcblx0XHQgICBtb3ZlIGJldHdlZW4gc2V0dGluZ3MgLSByZS1hbm5vdW5jaW5nIHRoZSBzY29wZSByYXRoZXIgdGhhbiBsZXR0aW5nIGl0XG5cdFx0ICAgc2l0IHRoZXJlIHVucmVhZC4gKi9cblx0XHRhbmltYXRpb246IHNldHRpbmdzLXNjb3BlLWJhbmQtb3BlbiA0MjBtcyBjdWJpYy1iZXppZXIoMC4yMiwgMSwgMC4zNiwgMSkgYm90aDtcblxuXHRcdGkge1xuXHRcdFx0Zm9udC1zaXplOiAxNXB4O1xuXHRcdFx0b3BhY2l0eTogMC45O1xuXHRcdH1cblxuXHRcdC8qIFlvdXJzIGFsb25lIC0gdGhlIGJyYW5kIGJsdWUuICovXG5cdFx0Ji5wZXJzb25hbCB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2eTtcblx0XHR9XG5cblx0XHQvKiBBZmZlY3RzIG90aGVyIHBlb3BsZSwgc28gaXQgY2FycmllcyBhIGNhdXRpb24gdG9uZSByYXRoZXIgdGhhbiBhIHNlY29uZFxuXHRcdCAgIHNoYWRlIG9mIGJsdWUuIERlZXAgYW1iZXIga2VlcHMgd2hpdGUgdGV4dCBhdCB+Ni40OjE7IGEgYnJpZ2h0ICR5ZWxsb3ctY3RhXG5cdFx0ICAgZmlsbCB3b3VsZCBkcm9wIGl0IHRvIDMuNDoxIGFuZCBmYWlsIEFBLiAqL1xuXHRcdCYucHJhY3RpY2Uge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJHdhcm5pbmctdGV4dDtcblx0XHR9XG5cdH1cblxuXHQvKiBTdGlja3kgYWN0aW9uIGJhciBhdCB0aGUgYm90dG9tIG9mIGEgcGFuZS4gVGhlIGNvbmZpcm1hdGlvbiBzaXRzIGltbWVkaWF0ZWx5XG5cdCAgIGxlZnQgb2YgdGhlIGJ1dHRvbiByYXRoZXIgdGhhbiBhY3Jvc3MgdGhlIGJhciwgc28gaXQgbGFuZHMgd2hlcmUgdGhlIGV5ZVxuXHQgICBhbHJlYWR5IGlzIGFmdGVyIGNsaWNraW5nLiAqL1xuXHQuc2V0dGluZ3MtYWN0aW9uLWJhciB7XG5cdFx0ZmxleC1zaHJpbms6IDA7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cdFx0Z2FwOiAxMnB4O1xuXHRcdHBhZGRpbmc6IDEycHggMjhweDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICRncmV5LWJvcmRlci1saWdodDtcblxuXHRcdC5hY3Rpb24taGludCB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdFx0XHRmb250LXNpemU6IDExcHg7XG5cdFx0XHRjb2xvcjogIzg3OGJhMDtcblx0XHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0XHR9XG5cblx0XHQuYnRuIHtcblx0XHRcdG1heC13aWR0aDogMjAwcHg7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0fVxuXG5cdFx0LyogQW4gb3B0aW9uIHRoYXQgY2hhbmdlcyB3aGF0IFNhdmUgZG9lcywgc28gaXQgbGl2ZXMgd2l0aCBTYXZlIHJhdGhlciB0aGFuXG5cdFx0ICAgdXAgaW4gYSBjYXJkIGhlYWRlciB3aGVyZSBpdCByZWFkIGFzIHVucmVsYXRlZC4gKi9cblx0XHQuY2hpcC1zZWxlY3QuYXBwbHktYWxsIHtcblx0XHRcdGZsZXgtc2hyaW5rOiAwO1xuXHRcdFx0Zm9udC1zaXplOiAxMS41cHg7XG5cdFx0XHRwYWRkaW5nOiA2cHggMTNweDtcblx0XHR9XG5cdH1cblxuXHQvKiBTdWNjZXNzIGdyZWVuLCBub3QgdGhlIG5hdnkgdXNlZCBldmVyeXdoZXJlIGVsc2UsIHNvIGEgc2F2ZSByZWFkcyBhcyBhIGRpc3RpbmN0XG5cdCAgIGV2ZW50IHJhdGhlciB0aGFuIG1vcmUgb2YgdGhlIHNhbWUgcGFnZS4gKi9cblx0LnNhdmUtZmxhc2gge1xuXHRcdGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0Z2FwOiA3cHg7XG5cdFx0ZmxleC1zaHJpbms6IDA7XG5cdFx0cGFkZGluZzogN3B4IDE0cHg7XG5cdFx0Ym9yZGVyLXJhZGl1czogMjBweDtcblx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0Zm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRncmVlbi10cC0xMDtcblx0XHRjb2xvcjogY29sb3IoJGdyZWVuIGwoLTEyJSkpO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRncmVlbi10cC0zMDtcblxuXHRcdGkge1xuXHRcdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdH1cblxuXHRcdCYuc2F2aW5nIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRsaWdodEdyZXk7XG5cdFx0XHRjb2xvcjogIzg3OGJhMDtcblx0XHRcdGJvcmRlci1jb2xvcjogJGdyZXktYm9yZGVyLWxpZ2h0O1xuXHRcdH1cblxuXHRcdCYuZXJyb3Ige1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZkZWNlYTtcblx0XHRcdGNvbG9yOiAkcmVkLWRhbmdlci1hbHQ7XG5cdFx0XHRib3JkZXItY29sb3I6IHJnYmEoMjE3LCA4MywgNzksIDAuMyk7XG5cdFx0fVxuXG5cdFx0LyogUG9wcyBpbiwgc28gaXQgaXMgbm90aWNlZCBldmVuIHdoZW4gdGhlIHdvcmRpbmcgaXMgdW5jaGFuZ2VkLiAqL1xuXHRcdCYubmctZW50ZXIge1xuXHRcdFx0b3BhY2l0eTogMDtcblx0XHRcdHRyYW5zZm9ybTogc2NhbGUoMC44NSk7XG5cdFx0fVxuXG5cdFx0Ji5uZy1lbnRlci1hY3RpdmUge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdHRyYW5zZm9ybTogc2NhbGUoMSk7XG5cdFx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMThzIGVhc2UsIHRyYW5zZm9ybSAwLjIycyBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSk7XG5cdFx0fVxuXG5cdFx0Ji5uZy1sZWF2ZSB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cblxuXHRcdCYubmctbGVhdmUtYWN0aXZlIHtcblx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7XG5cdFx0fVxuXHR9XG5cblx0LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXHQvKiAhIExheW91dCBoZWxwZXJzXG5cdC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblx0LnNldHRpbmdzLXN0YWNrIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0Z2FwOiAyMHB4O1xuXHR9XG5cblx0LnNldHRpbmdzLWNvbHVtbnMge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0Z2FwOiAyMHB4O1xuXHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRhbGlnbi1pdGVtczogc3RyZXRjaDtcblxuXHRcdD4gKiB7XG5cdFx0XHRmbGV4OiAxO1xuXHRcdFx0bWluLXdpZHRoOiAzMDBweDtcblx0XHR9XG5cdH1cblxuXHQvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cdC8qICEgUmVhZC1vbmx5IGRldGFpbCByb3dzXG5cdC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblx0LmRldGFpbC1yb3cge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRnYXA6IDE2cHg7XG5cdFx0cGFkZGluZzogMTNweCAwO1xuXHRcdGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgJGdyZXktYm9yZGVyLWxpZ2h0O1xuXHRcdG1pbi1oZWlnaHQ6IDUycHg7XG5cblx0XHQmOmxhc3Qtb2YtdHlwZSB7XG5cdFx0XHRib3JkZXItYm90dG9tOiBub25lO1xuXHRcdFx0cGFkZGluZy1ib3R0b206IDA7XG5cdFx0fVxuXG5cdFx0LmRldGFpbC1sYWJlbCB7XG5cdFx0XHRmbGV4OiAwIDAgMTUwcHg7XG5cdFx0XHR3aWR0aDogMTUwcHg7XG5cdFx0XHRmb250LXNpemU6IDExcHg7XG5cdFx0XHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcblx0XHRcdGNvbG9yOiAjYTNhYWMwO1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdH1cblxuXHRcdC5kZXRhaWwtdmFsdWUge1xuXHRcdFx0ZmxleDogMTtcblx0XHRcdG1pbi13aWR0aDogMDtcblx0XHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHRcdGNvbG9yOiAkdGV4dC1kYXJrO1xuXHRcdFx0Zm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1zZW1pYm9sZDtcblx0XHRcdHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG5cblx0XHRcdCYubXV0ZWQge1xuXHRcdFx0XHRjb2xvcjogI2EzYWFjMDtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWw7XG5cdFx0XHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuZGV0YWlsLWFjdGlvbiB7XG5cdFx0XHRmbGV4LXNocmluazogMDtcblx0XHR9XG5cdH1cblxuXHQvKiBPbmx5IHRoZSByb3cgdGhhdCBvcGVucyBhIGNhcmQgc2l0cyBmbHVzaCB3aXRoIHRoZSBjYXJkIGhlYWRlciAqL1xuXHQuY2FyZC1ib2R5ID4gLmRldGFpbC1yb3c6Zmlyc3QtY2hpbGQge1xuXHRcdHBhZGRpbmctdG9wOiAwO1xuXHR9XG5cblx0LyogU21hbGwgaW5saW5lIFwiZWRpdFwiIGFmZm9yZGFuY2UgKi9cblx0LmxpbmstYWN0aW9uIHtcblx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdGJvcmRlcjogbm9uZTtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdGNvbG9yOiAkbmF2eTtcblx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0Zm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7XG5cblx0XHRpIHtcblx0XHRcdG1hcmdpbi1yaWdodDogNHB4O1xuXHRcdH1cblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0b3BhY2l0eTogMC43O1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0fVxuXHR9XG5cblx0LmlubGluZS1lZGl0IHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0Z2FwOiA4cHg7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHR9XG5cblx0LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXHQvKiAhIENoaXBzIChmZWF0dXJlcywgcmVmZXJyYWwgdHlwZXMpXG5cdC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblx0LmNoaXAtbGlzdCB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0Z2FwOiA4cHg7XG5cdH1cblxuXHQuY2hpcCB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRnYXA6IDZweDtcblx0XHRmb250LXNpemU6IDExcHg7XG5cdFx0Zm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1zZW1pYm9sZDtcblx0XHRwYWRkaW5nOiA1cHggMTFweDtcblx0XHRib3JkZXItcmFkaXVzOiAyMHB4O1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmNGY3ZmU7XG5cdFx0Y29sb3I6ICRuYXZ5O1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgNTMsIDIxMCwgMC4xMik7XG5cdFx0bGluZS1oZWlnaHQ6IDEuNDtcblx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG5cdFx0aSB7XG5cdFx0XHRmb250LXNpemU6IDEwcHg7XG5cdFx0XHRvcGFjaXR5OiAwLjc7XG5cdFx0fVxuXG5cdFx0Ji5jaGlwLW11dGVkIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRsaWdodEdyZXk7XG5cdFx0XHRjb2xvcjogI2EzYWFjMDtcblx0XHRcdGJvcmRlci1jb2xvcjogJGdyZXktYm9yZGVyLWxpZ2h0O1xuXHRcdFx0Zm9udC1zdHlsZTogaXRhbGljO1xuXHRcdH1cblx0fVxuXG5cdC8qIFNlbGVjdGFibGUgY2hpcCAtIHdyYXBzIGEgY2hlY2tib3ggKi9cblx0LmNoaXAtc2VsZWN0IHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGdhcDogOHB4O1xuXHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXNlbWlib2xkO1xuXHRcdHBhZGRpbmc6IDdweCAxNHB4O1xuXHRcdGJvcmRlci1yYWRpdXM6IDIwcHg7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuXHRcdGNvbG9yOiAjNGE1NTY4O1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRncmV5LWJvcmRlci1saWdodDtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuXHRcdHVzZXItc2VsZWN0OiBub25lO1xuXG5cdFx0aW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR9XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJvcmRlci1jb2xvcjogI2NiZDVlMDtcblx0XHR9XG5cblx0XHQmLnNlbGVjdGVkIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRuYXZ5LXBhbGU7XG5cdFx0XHRib3JkZXItY29sb3I6IHJnYmEoMCwgNTMsIDIxMCwgMC4zNSk7XG5cdFx0XHRjb2xvcjogJG5hdnk7XG5cdFx0fVxuXG5cdFx0Ji5kaXNhYmxlZCB7XG5cdFx0XHRvcGFjaXR5OiAwLjQ1O1xuXHRcdFx0Y3Vyc29yOiBub3QtYWxsb3dlZDtcblx0XHR9XG5cdH1cblxuXHQvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cdC8qICEgRWRpdGFibGUgcm93IGxpc3QgKGFwcG9pbnRtZW50IHR5cGVzLCB0YXNrIGxhYmVscylcblx0LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXHQucm93LWxpc3QtaGVhZCB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGdhcDogMTJweDtcblx0XHRwYWRkaW5nOiAwIDE0cHggOHB4O1xuXG5cdFx0c3BhbiB7XG5cdFx0XHRmb250LXNpemU6IDEwcHg7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IDAuMDZlbTtcblx0XHRcdGNvbG9yOiAjYTNhYWMwO1xuXHRcdFx0Zm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuXHRcdH1cblx0fVxuXG5cdC8qIFRoZSBpbnB1dHMgY2FycnkgdGhlaXIgb3duIGJvcmRlcnMsIHNvIHRoZSByb3dzIHRoZW1zZWx2ZXMgc3RheSB1bmJveGVkICovXG5cdC5yb3ctaXRlbSB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGdhcDogMTJweDtcblx0XHRwYWRkaW5nOiA1cHggMTRweDtcblx0XHRtYXJnaW4tYm90dG9tOiA0cHg7XG5cblx0XHQvKiBTZXBhcmF0ZWQgYnkgYSBydWxlIHJhdGhlciB0aGFuIGEgYm94IG9mIGl0cyBvd24gKi9cblx0XHQmLnJvdy1pdGVtLW5ldyB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0bWFyZ2luLXRvcDogMTBweDtcblx0XHRcdHBhZGRpbmctdG9wOiAxNXB4O1xuXHRcdFx0Ym9yZGVyLXRvcDogMXB4IGRhc2hlZCByZ2JhKDAsIDUzLCAyMTAsIDAuMjUpO1xuXHRcdH1cblx0fVxuXG5cdC8qIENvbHVtbiB3aWR0aHMgc2hhcmVkIGJ5IHRoZSBoZWFkIGFuZCB0aGUgcm93cyAqL1xuXHQuY29sLW5hbWUge1xuXHRcdGZsZXg6IDEgMSAyMDBweDtcblx0XHRtaW4td2lkdGg6IDE1MHB4O1xuXHR9XG5cblx0LmNvbC1jb2xvdXIge1xuXHRcdGZsZXg6IDAgMCAxMzBweDtcblx0XHR3aWR0aDogMTMwcHg7XG5cdH1cblxuXHQuY29sLWR1cmF0aW9uIHtcblx0XHRmbGV4OiAwIDAgMTEwcHg7XG5cdFx0d2lkdGg6IDExMHB4O1xuXHR9XG5cblx0LmNvbC10eXBlIHtcblx0XHRmbGV4OiAwIDAgMTkwcHg7XG5cdFx0d2lkdGg6IDE5MHB4O1xuXHR9XG5cblx0LmNvbC1hZGQge1xuXHRcdGZsZXg6IDAgMCA0MHB4O1xuXHRcdHdpZHRoOiA0MHB4O1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblx0fVxuXG5cdC5jb2wtYWRkLXdpZGUge1xuXHRcdGZsZXg6IDAgMCBhdXRvO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblx0fVxuXG5cdC8qIFRoZSBvbGQgcm91bmQgXCIrXCIgd2FzIG1pc3NlZCAtIHRoZSBhZGQgc3RlcCBub3cgYW5ub3VuY2VzIGl0c2VsZiBhbmQgaXRzXG5cdCAgIGJ1dHRvbiBzYXlzIHdoYXQgaXQgZG9lcy4gVGhlIGZvcm0gY2xlYXJzIGFmdGVyIGVhY2ggYWRkLCBzbyBhIHJ1biBvZlxuXHQgICBlbnRyaWVzIGNhbiBiZSB0eXBlZCBvbmUgYWZ0ZXIgYW5vdGhlciB3aXRob3V0IGxlYXZpbmcgdGhlIHNjcmVlbi4gKi9cblx0LmFkZC1yb3cge1xuXHRcdG1hcmdpbi10b3A6IDE4cHg7XG5cdFx0cGFkZGluZy10b3A6IDE0cHg7XG5cdFx0Ym9yZGVyLXRvcDogMXB4IGRhc2hlZCByZ2JhKDAsIDUzLCAyMTAsIDAuMjUpO1xuXG5cdFx0LmFkZC1yb3ctdGl0bGUge1xuXHRcdFx0Zm9udC1zaXplOiAxMHB4O1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdGxldHRlci1zcGFjaW5nOiAwLjA3ZW07XG5cdFx0XHRjb2xvcjogI2EzYWFjMDtcblx0XHRcdGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcblx0XHRcdHBhZGRpbmc6IDAgMTRweCA4cHg7XG5cdFx0fVxuXG5cdFx0LnJvdy1pdGVtLnJvdy1pdGVtLW5ldyB7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRwYWRkaW5nLXRvcDogMDtcblx0XHRcdGJvcmRlci10b3A6IG5vbmU7XG5cdFx0fVxuXG5cdFx0LmFkZC1yb3ctYWN0aW9ucyB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblx0XHRcdHBhZGRpbmc6IDEycHggMTRweCAwO1xuXHRcdH1cblx0fVxuXG5cdC5idG4tYWRkIHtcblx0XHR3aWR0aDogYXV0bztcblx0XHRtYXgtd2lkdGg6IG5vbmU7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdHBhZGRpbmc6IDhweCAxOHB4O1xuXG5cdFx0aSB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDZweDtcblx0XHR9XG5cdH1cblxuXHQvKiBhbmd1bGFyanMtY29sb3ItcGlja2VyIHJlbmRlcnMgYSBib290c3RyYXAgaW5wdXQgZ3JvdXAgLSBrZWVwIHRoZSBqb2ludCB0aWR5ICovXG5cdC5jb2wtY29sb3VyIHtcblx0XHQuY29sb3ItcGlja2VyLXdyYXBwZXIsXG5cdFx0LmNvbG9yLXBpY2tlci1pbnB1dC13cmFwcGVyIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdH1cblxuXHRcdC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYWRkb246Zmlyc3QtY2hpbGQge1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtc20gMCAwICRib3JkZXItcmFkaXVzLXNtO1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiAkZ3JleS1ib3JkZXItbGlnaHQ7XG5cdFx0fVxuXG5cdFx0LmlucHV0LWdyb3VwIC5jb2xvci1waWNrZXItaW5wdXQge1xuXHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0fVxuXHR9XG5cblx0LmxhYmVsLXN3YXRjaCB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHdpZHRoOiAzMHB4O1xuXHRcdGhlaWdodDogMzBweDtcblx0XHRmbGV4LXNocmluazogMDtcblx0XHRib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1zbTtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAkZ3JleS1ib3JkZXItbGlnaHQ7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuXHR9XG5cblx0LmJ0bi1hZGQtcm91bmQge1xuXHRcdHdpZHRoOiAzNHB4O1xuXHRcdGhlaWdodDogMzRweDtcblx0XHRtaW4td2lkdGg6IDM0cHg7XG5cdFx0cGFkZGluZzogMDtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0Ym9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtY2lyY2xlO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRuYXZ5O1xuXHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuXG5cdFx0Jjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkZGFya05hdnk7XG5cdFx0XHR0cmFuc2Zvcm06IHNjYWxlKDEuMDYpO1xuXHRcdH1cblxuXHRcdCY6ZGlzYWJsZWQge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2QzZDllNjtcblx0XHRcdGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cdFx0fVxuXHR9XG5cblx0LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXHQvKiAhIEZvcm0gY29udHJvbHNcblx0LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXHQuY29udHJvbC1sYWJlbCxcblx0bGFiZWwuZmllbGQtbGFiZWwge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGZvbnQtc2l6ZTogMTFweDtcblx0XHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuXHRcdGNvbG9yOiAjYTNhYWMwO1xuXHRcdG1hcmdpbi1ib3R0b206IDZweDtcblx0fVxuXG5cdC5mb3JtLWNvbnRyb2wsXG5cdHNlbGVjdC5mb3JtLWNvbnRyb2wge1xuXHRcdGhlaWdodDogYXV0bztcblx0XHRib3JkZXI6IDFweCBzb2xpZCAkZ3JleS1ib3JkZXItbGlnaHQ7XG5cdFx0Ym9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtc207XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRwYWRkaW5nOiA4cHggMTJweDtcblx0XHRmb250LXNpemU6IDEzcHg7XG5cdFx0Y29sb3I6ICR0ZXh0LWRhcms7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuXHRcdHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG5cblx0XHQmOmZvY3VzIHtcblx0XHRcdGJvcmRlci1jb2xvcjogJG5hdnk7XG5cdFx0XHRvdXRsaW5lOiBub25lO1xuXHRcdFx0Ym94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoMCwgNTMsIDIxMCwgMC4xKTtcblx0XHR9XG5cblx0XHQmW3JlYWRvbmx5XSxcblx0XHQmOmRpc2FibGVkIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRsaWdodEdyZXk7XG5cdFx0XHRjb2xvcjogIzhhOTBhMztcblx0XHR9XG5cdH1cblxuXHR0ZXh0YXJlYS5mb3JtLWNvbnRyb2wge1xuXHRcdG1pbi1oZWlnaHQ6IDEyMHB4O1xuXHRcdHJlc2l6ZTogdmVydGljYWw7XG5cdH1cblxuXHQuZXJyb3ItbWVzc2FnZSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0Y29sb3I6ICRyZWQtZGFuZ2VyLWFsdDtcblx0XHRmb250LXNpemU6IDExcHg7XG5cdFx0bWFyZ2luLXRvcDogNHB4O1xuXHR9XG5cblx0LmZpZWxkLWhlbHAge1xuXHRcdGZvbnQtc2l6ZTogMTFweDtcblx0XHRjb2xvcjogI2EzYWFjMDtcblx0XHRtYXJnaW4tdG9wOiA1cHg7XG5cdFx0bGluZS1oZWlnaHQ6IDEuNDU7XG5cdH1cblxuXHQuZmllbGQtZ3JpZCB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0Z2FwOiAxNnB4O1xuXG5cdFx0LmZpZWxkIHtcblx0XHRcdGZsZXg6IDEgMSAyMDBweDtcblx0XHRcdG1pbi13aWR0aDogMTYwcHg7XG5cdFx0fVxuXG5cdFx0LmZpZWxkLXNtIHtcblx0XHRcdGZsZXg6IDAgMCAxNDBweDtcblx0XHRcdHdpZHRoOiAxNDBweDtcblx0XHR9XG5cdH1cblxuXHQvKiBBIG51bWJlciBzZXQgaW5zaWRlIGl0cyBvd24gc2VudGVuY2UsIHJhdGhlciB0aGFuIHN0cmFuZGVkIGF0IHRoZSBmYXIgcmlnaHQgKi9cblx0LmlubGluZS1zZW50ZW5jZSB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRnYXA6IDdweDtcblx0XHRtYXJnaW4tdG9wOiA3cHg7XG5cdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdGNvbG9yOiAjNTU1O1xuXG5cdFx0aW5wdXRbdHlwZT1cIm51bWJlclwiXSB7XG5cdFx0XHR3aWR0aDogNjJweDtcblx0XHRcdHBhZGRpbmc6IDVweCA4cHg7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCAkZ3JleS1ib3JkZXItbGlnaHQ7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1zbTtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdGNvbG9yOiAkbmF2eTtcblx0XHRcdGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcblx0XHRcdGZvbnQtc2l6ZTogMTNweDtcblx0XHRcdHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG5cblx0XHRcdCY6Zm9jdXMge1xuXHRcdFx0XHRib3JkZXItY29sb3I6ICRuYXZ5O1xuXHRcdFx0XHRvdXRsaW5lOiBub25lO1xuXHRcdFx0XHRib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSgwLCA1MywgMjEwLCAwLjEpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblx0LyogISBOb3RpY2VzICYgZW1wdHkgc3RhdGVzXG5cdC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblx0LnNldHRpbmdzLW5vdGljZSB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblx0XHRnYXA6IDEycHg7XG5cdFx0cGFkZGluZzogMTRweCAxOHB4O1xuXHRcdGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLW1kO1xuXHRcdGZvbnQtc2l6ZTogMTIuNXB4O1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjU7XG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblxuXHRcdGkge1xuXHRcdFx0Zm9udC1zaXplOiAxNXB4O1xuXHRcdFx0bWFyZ2luLXRvcDogMXB4O1xuXHRcdFx0ZmxleC1zaHJpbms6IDA7XG5cdFx0fVxuXG5cdFx0Ji5pbmZvIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRuYXZ5LXBhbGU7XG5cdFx0XHRjb2xvcjogJGRhcmtOYXZ5O1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgcmdiYSgwLCA1MywgMjEwLCAwLjE1KTtcblxuXHRcdFx0aSB7XG5cdFx0XHRcdGNvbG9yOiAkbmF2eTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLndhcm5pbmcge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjhlNjtcblx0XHRcdGNvbG9yOiAkd2FybmluZy10ZXh0O1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDE3MSwgMCwgMC4zKTtcblxuXHRcdFx0aSB7XG5cdFx0XHRcdGNvbG9yOiAkeWVsbG93LWN0YTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuc2V0dGluZ3MtZW1wdHkge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcblx0XHRib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1sZztcblx0XHRib3gtc2hhZG93OiAwIDJweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG5cdFx0cGFkZGluZzogNTRweCAzMnB4O1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdGkge1xuXHRcdFx0Zm9udC1zaXplOiAzNHB4O1xuXHRcdFx0Y29sb3I6ICNkM2Q5ZTY7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAxNHB4O1xuXHRcdH1cblxuXHRcdGg0IHtcblx0XHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRcdGNvbG9yOiAkZGFya05hdnk7XG5cdFx0XHRtYXJnaW46IDAgMCA4cHg7XG5cdFx0fVxuXG5cdFx0cCB7XG5cdFx0XHRmb250LXNpemU6IDEzcHg7XG5cdFx0XHRjb2xvcjogIzg3OGJhMDtcblx0XHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdFx0bWF4LXdpZHRoOiA1MmNoO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDEuNTU7XG5cdFx0fVxuXHR9XG5cblx0LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXHQvKiAhIEV4cGFuZGFibGUgYmxvY2tzIChyZW1pbmRlciBtZXNzYWdlIGNvbXBvc2Vycylcblx0LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXHQuZXhwYW5kZXIge1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRncmV5LWJvcmRlci1saWdodDtcblx0XHRib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1tZDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG5cdFx0bWFyZ2luLWJvdHRvbTogMTRweDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHR9XG5cblx0LmV4cGFuZGVyLWhlYWQge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRnYXA6IDEycHg7XG5cdFx0cGFkZGluZzogMTRweCAxOHB4O1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR1c2VyLXNlbGVjdDogbm9uZTtcblx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmYmZjZmY7XG5cdFx0fVxuXG5cdFx0LmV4cGFuZGVyLWljb24ge1xuXHRcdFx0d2lkdGg6IDM0cHg7XG5cdFx0XHRoZWlnaHQ6IDM0cHg7XG5cdFx0XHRmbGV4LXNocmluazogMDtcblx0XHRcdGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLXNtO1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRuYXZ5LXBhbGU7XG5cdFx0XHRjb2xvcjogJG5hdnk7XG5cdFx0fVxuXG5cdFx0LmV4cGFuZGVyLXRpdGxlIHtcblx0XHRcdGZsZXg6IDE7XG5cdFx0XHRtaW4td2lkdGg6IDA7XG5cblx0XHRcdHN0cm9uZyB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRmb250LWZhbWlseTogJ0dvcmRpdGEgQm9sZCcsIHNhbnMtc2VyaWY7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTNweDtcblx0XHRcdFx0Y29sb3I6ICR0ZXh0LWRhcms7XG5cdFx0XHR9XG5cblx0XHRcdHNtYWxsIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTFweDtcblx0XHRcdFx0Y29sb3I6ICNhM2FhYzA7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDJweDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuZXhwYW5kZXItY2hldnJvbiB7XG5cdFx0XHRjb2xvcjogI2EzYWFjMDtcblx0XHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHR9XG5cdH1cblxuXHQuZXhwYW5kZXItYm9keSB7XG5cdFx0cGFkZGluZzogNHB4IDE4cHggMThweDtcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgI2VlZjFmNztcblx0fVxuXG5cdC5leHBhbmRlci5pcy1vcGVuIC5leHBhbmRlci1oZWFkIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmJmY2ZmO1xuXHR9XG5cblx0LyogTWVyZ2UtZmllbGQgdG9rZW5zICovXG5cdC5tZXJnZS1maWVsZC1ncm91cHMge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdGdhcDogOHB4IDI4cHg7XG5cdFx0bWFyZ2luOiAxMHB4IDAgMTRweDtcblx0fVxuXG5cdC5tZXJnZS1maWVsZC1ncm91cCB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdGdhcDogNnB4O1xuXG5cdFx0Lm1lcmdlLWZpZWxkcyB7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0fVxuXHR9XG5cblx0Lm1lcmdlLWZpZWxkLWdyb3VwLWxhYmVsIHtcblx0XHRmb250LXNpemU6IDEwcHg7XG5cdFx0Zm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuXHRcdGxldHRlci1zcGFjaW5nOiAwLjA2ZW07XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRjb2xvcjogI2EzYWFjMDtcblx0fVxuXG5cdC5tZXJnZS1maWVsZHMge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdGdhcDogOHB4O1xuXHRcdG1hcmdpbjogMTBweCAwIDE0cHg7XG5cdH1cblxuXHQubWVyZ2UtZmllbGQge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmNGY3ZmU7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgcmdiYSgwLCA1MywgMjEwLCAwLjI1KTtcblx0XHRib3JkZXItcmFkaXVzOiAyMHB4O1xuXHRcdGNvbG9yOiAkbmF2eTtcblx0XHRmb250LXNpemU6IDEwcHg7XG5cdFx0Zm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuXHRcdGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG5cdFx0cGFkZGluZzogNXB4IDEycHg7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHR0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcblxuXHRcdC8qIFRoZSBzaGFyZWQgW2RyYWdnYWJsZV0gcnVsZSBwYWludHMgYSBibGFjayBib3JkZXIgYW5kIGEgbW92ZSBjdXJzb3Igb3ZlciBhbnl0aGluZ1xuXHRcdCAgIGRyYWdnYWJsZSAtIHRoZSBjaGlwcyBrZWVwIHRoZWlyIG93biBwaWxsIHN0eWxpbmcgYW5kIGEgZ3JhYiBjdXJzb3IgaW5zdGVhZC4gKi9cblx0XHQmW2RyYWdnYWJsZV0ge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiByZ2JhKDAsIDUzLCAyMTAsIDAuMjUpO1xuXHRcdFx0Y3Vyc29yOiBncmFiO1xuXHRcdH1cblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJG5hdnk7XG5cdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiAkbmF2eTtcblx0XHR9XG5cblx0XHQmOmFjdGl2ZSB7XG5cdFx0XHRjdXJzb3I6IGdyYWJiaW5nO1xuXHRcdH1cblxuXHRcdC5tZXJnZS1maWVsZC1uYW1lIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblxuXHRcdC8qIFdoYXQgdGhlIGZpZWxkIHR1cm5zIGludG8uIFJlZ3VsYXIgd2VpZ2h0IGFuZCB0YWJ1bGFyIGZpZ3VyZXMgc28gaXQgcmVhZHMgYXMgYSB2YWx1ZVxuXHRcdCAgIHJhdGhlciB0aGFuIGFzIG1vcmUgbGFiZWwuICovXG5cdFx0Lm1lcmdlLWZpZWxkLWV4YW1wbGUge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRtYXJnaW4tdG9wOiAxcHg7XG5cdFx0XHRmb250LXNpemU6IDlweDtcblx0XHRcdGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsO1xuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IDA7XG5cdFx0XHRmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuXHRcdFx0b3BhY2l0eTogMC43O1xuXHRcdH1cblx0fVxuXG5cdC5tZXJnZS1maWVsZC1ub3RlIHtcblx0XHRtYXgtd2lkdGg6IDM0MHB4O1xuXHRcdGZvbnQtc2l6ZTogMTBweDtcblx0XHRsaW5lLWhlaWdodDogMS40NTtcblx0XHRjb2xvcjogI2EzYWFjMDtcblx0fVxuXG5cdC8qIERyb3AgdGFyZ2V0cy4gVGhlIHNoYXJlZCBsdmwgc3R5bGVzIGdyZXkgdGhlIHdob2xlIGVkaXRvciBvdXQgbWlkLWRyYWcgYW5kIGRhc2ggYSBibGFja1xuXHQgICBib3JkZXIgYXJvdW5kIHdoaWNoZXZlciBub2RlIHRoZSBwb2ludGVyIGlzIG92ZXI7IG91dGxpbmUgdGhlIGNvbXBvc2VyIGluc3RlYWQgc28gdGhlXG5cdCAgIHdvcmRpbmcgc3RheXMgcmVhZGFibGUgd2hpbGUgYSBmaWVsZCBpcyBiZWluZyBkcmFnZ2VkIGludG8gaXQuICovXG5cdC50ZXh0LWFyZWEtd3JhcC5sdmwtdGFyZ2V0IHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdG91dGxpbmU6IDJweCBkYXNoZWQgcmdiYSgwLCA1MywgMjEwLCAwLjMpO1xuXHRcdG91dGxpbmUtb2Zmc2V0OiAzcHg7XG5cdH1cblxuXHQudGV4dC1hcmVhLXdyYXAubHZsLW92ZXIsXG5cdC50ZXh0LWFyZWEtd3JhcCAubHZsLW92ZXIge1xuXHRcdGJvcmRlcjogMCAhaW1wb3J0YW50O1xuXHR9XG5cblx0LnRleHQtYXJlYS13cmFwLmx2bC1vdmVyIHtcblx0XHRvdXRsaW5lOiAycHggZGFzaGVkICRuYXZ5O1xuXHR9XG5cblx0LyogQXR0YWNobWVudHMgKi9cblx0LmF0dGFjaG1lbnQtcm93IHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0Z2FwOiAxMnB4O1xuXHRcdHBhZGRpbmc6IDEwcHggMTRweDtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAkZ3JleS1ib3JkZXItbGlnaHQ7XG5cdFx0Ym9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtc207XG5cdFx0bWFyZ2luLWJvdHRvbTogOHB4O1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcblxuXHRcdC5hdHRhY2htZW50LWljb24ge1xuXHRcdFx0Y29sb3I6ICRuYXZ5O1xuXHRcdFx0Zm9udC1zaXplOiAxNXB4O1xuXHRcdH1cblxuXHRcdC5hdHRhY2htZW50LW5hbWUge1xuXHRcdFx0ZmxleDogMTtcblx0XHRcdG1pbi13aWR0aDogMDtcblx0XHRcdGZvbnQtc2l6ZTogMTIuNXB4O1xuXHRcdFx0Zm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1zZW1pYm9sZDtcblx0XHRcdGNvbG9yOiAkdGV4dC1kYXJrO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHR9XG5cblx0XHQuYXR0YWNobWVudC1zaXplIHtcblx0XHRcdGZvbnQtc2l6ZTogMTFweDtcblx0XHRcdGNvbG9yOiAjYTNhYWMwO1xuXHRcdFx0ZmxleC1zaHJpbms6IDA7XG5cdFx0fVxuXG5cdFx0LmF0dGFjaG1lbnQtYWN0aW9ucyB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0Z2FwOiAxMHB4O1xuXHRcdFx0ZmxleC1zaHJpbms6IDA7XG5cblx0XHRcdGltZyB7XG5cdFx0XHRcdHdpZHRoOiAxNXB4O1xuXHRcdFx0XHRoZWlnaHQ6IDE1cHg7XG5cdFx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdFx0b3BhY2l0eTogMC42NTtcblx0XHRcdFx0dHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBlYXNlO1xuXG5cdFx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuZmlsZS1kcm9wIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRib3JkZXI6IDFweCBkYXNoZWQgcmdiYSgwLCA1MywgMjEwLCAwLjMpO1xuXHRcdGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLXNtO1xuXHRcdHBhZGRpbmc6IDE0cHg7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZiZmNmZjtcblx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0Y29sb3I6ICM4NzhiYTA7XG5cblx0XHRpbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG5cdFx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0fVxuXHR9XG5cblx0LyogQ2hhcmFjdGVyIGNvdW50ZXIgKi9cblx0LnNtcy1jb3VudGVyIHtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHRmb250LXNpemU6IDExcHg7XG5cdFx0Y29sb3I6ICNhM2FhYzA7XG5cdFx0bWFyZ2luLXRvcDogNnB4O1xuXG5cdFx0c3Ryb25nIHtcblx0XHRcdGNvbG9yOiAkbmF2eTtcblx0XHR9XG5cblx0XHQmLm92ZXIgc3Ryb25nIHtcblx0XHRcdGNvbG9yOiAkcmVkLWRhbmdlci1hbHQ7XG5cdFx0fVxuXHR9XG5cblx0LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXHQvKiAhIFVzYWdlIGNoYXJ0IGNhcmRcblx0LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXHQuY2hhcnQtY2FyZCB7XG5cdFx0LmNoYXJ0LXRvb2xiYXIge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcblx0XHRcdGdhcDogMTZweDtcblx0XHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRcdG1hcmdpbi1ib3R0b206IDEycHg7XG5cdFx0fVxuXG5cdFx0bnZkMyB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdH1cblx0fVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiAhIFJlc3BvbnNpdmVcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCkge1xuXHQuc2V0dGluZ3Mtc2hlbGwge1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cblx0XHQuc2V0dGluZ3MtbmF2IHtcblx0XHRcdGZsZXg6IDAgMCBhdXRvO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRib3JkZXItcmlnaHQ6IG5vbmU7XG5cdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdyZXktYm9yZGVyLWxpZ2h0O1xuXHRcdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRvdmVyZmxvdy14OiBhdXRvO1xuXHRcdFx0b3ZlcmZsb3cteTogaGlkZGVuO1xuXHRcdH1cblxuXHRcdC5zZXR0aW5ncy1pZGVudGl0eSxcblx0XHQuc2V0dGluZ3MtbmF2LWZvb3RlciB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblxuXHRcdC5zZXR0aW5ncy1uYXYtZ3JvdXAge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRnYXA6IDZweDtcblx0XHRcdHBhZGRpbmc6IDEwcHg7XG5cdFx0XHRmbGV4LXNocmluazogMDtcblxuXHRcdFx0LnNldHRpbmdzLW5hdi1ncm91cC10aXRsZSB7XG5cdFx0XHRcdHBhZGRpbmc6IDAgNnB4IDAgMDtcblx0XHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuc2V0dGluZ3MtbmF2LWl0ZW0ge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0fVxuXG5cdFx0LnNldHRpbmdzLXBhbmUtYm9keSB7XG5cdFx0XHRwYWRkaW5nOiAxOHB4IDE2cHg7XG5cdFx0fVxuXG5cdFx0LnNldHRpbmdzLWFjdGlvbi1iYXIge1xuXHRcdFx0cGFkZGluZzogMTJweCAxNnB4O1xuXHRcdH1cblxuXHRcdC5kZXRhaWwtcm93IHtcblx0XHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRcdGdhcDogNnB4O1xuXG5cdFx0XHQuZGV0YWlsLWxhYmVsIHtcblx0XHRcdFx0ZmxleC1iYXNpczogMTAwJTtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LnJvdy1pdGVtIHtcblx0XHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHR9XG5cblx0XHQuY29sLXR5cGUsXG5cdFx0LmNvbC1jb2xvdXIsXG5cdFx0LmNvbC1kdXJhdGlvbiB7XG5cdFx0XHRmbGV4OiAxIDEgMTQwcHg7XG5cdFx0XHR3aWR0aDogYXV0bztcblx0XHR9XG5cdH1cbn1cblxuLyogQW55b25lIHdobyBoYXMgYXNrZWQgZm9yIGxlc3MgbW90aW9uIGdldHMgdGhlIGJhbmQgd2l0aG91dCB0aGUgd2lwZS4gKi9cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cdC5zZXR0aW5ncy1zaGVsbCAuc2NvcGUtYmFkZ2UsXG5cdC5zZXR0aW5ncy1zaGVsbCAubmF2LWdyb3VwLWl0ZW1zIHtcblx0XHRhbmltYXRpb246IG5vbmU7XG5cdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0fVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogISBGZWF0dXJlIHRpcHMgKHRpcCBvZiB0aGUgZGF5KVxuLyogU2FtZSBjYXJkIGxhbmd1YWdlIGFzIF9wYXltZW50cy5jc3MgLyBfc2V0dGluZ3MuY3NzIHNvIHRoZSB0aXAgcmVhZHNcbi8qIGFzIHBhcnQgb2YgdGhlIHByb2R1Y3QgcmF0aGVyIHRoYW4gYW4gYWR2ZXJ0LlxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udGlwLWNhcmQge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG5cdGJvcmRlcjogMXB4IHNvbGlkICRncmV5LWJvcmRlci1saWdodDtcblx0Ym9yZGVyLWxlZnQ6IDNweCBzb2xpZCAkbmF2eTtcblx0Ym9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbGc7XG5cdGJveC1zaGFkb3c6IDAgMnB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcblx0cGFkZGluZzogMTZweCAxOHB4O1xuXHRtYXgtd2lkdGg6IDQ2MHB4O1xuXHRtYXJnaW4tdG9wOiA4cHg7XG5cblx0LnRpcC1oZWFkIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0Z2FwOiA4cHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogMTJweDtcblx0fVxuXG5cdC50aXAtZXllYnJvdyB7XG5cdFx0Zm9udC1zaXplOiAxMHB4O1xuXHRcdGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdGxldHRlci1zcGFjaW5nOiAwLjA3ZW07XG5cdFx0Y29sb3I6ICRuYXZ5O1xuXHRcdGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0Z2FwOiA2cHg7XG5cdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuXHRcdGkge1xuXHRcdFx0Zm9udC1zaXplOiAxMnB4O1xuXHRcdH1cblx0fVxuXG5cdC50aXAtcGFnZXIge1xuXHRcdGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0Z2FwOiA0cHg7XG5cdFx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdH1cblxuXHQudGlwLWFycm93LFxuXHQudGlwLWNsb3NlIHtcblx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdGJvcmRlcjogbm9uZTtcblx0XHRwYWRkaW5nOiAycHggNXB4O1xuXHRcdGNvbG9yOiAjYTNhYWMwO1xuXHRcdGZvbnQtc2l6ZTogMTFweDtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0Ym9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtc207XG5cdFx0dHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGNvbG9yOiAkbmF2eTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmNGY3ZmU7XG5cdFx0fVxuXHR9XG5cblx0LnRpcC1jbG9zZSB7XG5cdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdG1hcmdpbi1sZWZ0OiAycHg7XG5cdH1cblxuXHQudGlwLWJvZHkge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0Z2FwOiAxM3B4O1xuXHRcdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXHR9XG5cblx0LnRpcC1pY29uIHtcblx0XHR3aWR0aDogMzhweDtcblx0XHRoZWlnaHQ6IDM4cHg7XG5cdFx0ZmxleC1zaHJpbms6IDA7XG5cdFx0Ym9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbWQ7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2U3ZjBmZjtcblx0XHRjb2xvcjogJG5hdnk7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdGZvbnQtc2l6ZTogMTZweDtcblx0fVxuXG5cdC50aXAtdGV4dCB7XG5cdFx0bWluLXdpZHRoOiAwO1xuXG5cdFx0aDUge1xuXHRcdFx0Zm9udC1mYW1pbHk6ICdHb3JkaXRhIEJvbGQnLCBzYW5zLXNlcmlmO1xuXHRcdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdFx0Y29sb3I6ICRuYXZ5LWRhcmstdGV4dDtcblx0XHRcdG1hcmdpbjogMCAwIDVweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxLjM7XG5cdFx0fVxuXG5cdFx0cCB7XG5cdFx0XHRmb250LXNpemU6IDEyLjVweDtcblx0XHRcdGNvbG9yOiAjODc4YmEwO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDEuNTtcblx0XHRcdG1hcmdpbjogMDtcblx0XHR9XG5cdH1cblxuXHQudGlwLWFjdGlvbnMge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRnYXA6IDE0cHg7XG5cdFx0bWFyZ2luLXRvcDogMTRweDtcblx0XHRwYWRkaW5nLWxlZnQ6IDUxcHg7XG5cblx0XHQuYnRuIHtcblx0XHRcdHdpZHRoOiBhdXRvO1xuXHRcdFx0bWF4LXdpZHRoOiBub25lO1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdH1cblx0fVxuXG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCkge1xuXHQudGlwLWNhcmQge1xuXHRcdG1heC13aWR0aDogMTAwJTtcblxuXHRcdC50aXAtYWN0aW9ucyB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdFx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0fVxuXHR9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiAhIEVDTElQU0UgSW4tUGF0aWVudCBDbGFpbSAodHlyb01lZGlwYXNzV2lkZ2V0KVxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLyogQSBmb3J3YXJkcy1vbmx5IHRocmVlIHN0ZXAgZmxvdyAtIHZlcmlmeSwgY2hlY2sgZWxpZ2liaWxpdHksIGxvZGdlIC1cbi8qIGluc2lkZSB0aGUgY2xhaW0gbW9kYWwuIFJlYWRzIHRvcCB0byBib3R0b20sIGVhY2ggc3RlcCBlbmRpbmcgaW4gb25lXG4vKiBhY3Rpb24gYmFyLiBMZWF2aW5nIHRoZSBmbG93IGlzIHRoZSBjbGFpbSBtb2RhbCdzIG93biBCYWNrIGxpbmsuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5lY2xpcHNlLWZsb3cge1xuICAgIHBhZGRpbmc6IDEuNXJlbSAxLjc1cmVtIDEuNzVyZW07XG59XG5cbi5lY2xpcHNlLWZsb3dfX3RpdGxlIHtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5lY2xpcHNlLWZsb3dfX2xlYWQge1xuICAgIGNvbG9yOiAkdGV4dC1tdXRlZDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBtYXgtd2lkdGg6IDYwcmVtO1xuICAgIG1hcmdpbjogMCAwIDEuMjVyZW07XG59XG5cbi8qIFNlcGFyYXRlcyB0aGUgc2VjdGlvbnMgb2YgYSBsb25nIGZvcm0gdGhlIHdheSB0aGUgY2xpbmljYWwgbm90ZXMgZG8gLSB0aGVcbiAgIGxlZnQtcGFja2VkIHJvd3MgYWxvbmUgZG8gbm90IG1ha2UgdGhlIGJyZWFrcyBvYnZpb3VzLiAkZ3JleS1ib3JkZXItbGlnaHRcbiAgIHJhdGhlciB0aGFuIHRoZSBub3RlcycgI2RkZCwgdG8gbWF0Y2ggdGhlIGFjdGlvbiBiYXIncyB0b3AgYm9yZGVyIGJlbG93LiAqL1xuLmVjbGlwc2UtZGl2aWRlciB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAkZ3JleS1ib3JkZXItbGlnaHQ7XG4gICAgbWFyZ2luOiAyLjVlbSAwIDEuNWVtO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiAhIFN0ZXBwZXJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmVjbGlwc2Utc3RlcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMC43NXJlbTtcbiAgICBtYXJnaW46IDEuMjVyZW0gMCAxLjVyZW07XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLmVjbGlwc2Utc3RlcHBlcl9fc3RlcCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMC42cmVtO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBmbGV4OiAwIDEgYXV0bztcbn1cblxuLyogRHJhd24gYnkgdGhlIHN0ZXAgaXQgbGVhZHMgaW50bywgc28gaXQgY2FuIG5ldmVyIGRhbmdsZSBvZmYgdGhlIGxhc3Qgb25lLiAqL1xuLmVjbGlwc2Utc3RlcHBlcl9fc3RlcCArIC5lY2xpcHNlLXN0ZXBwZXJfX3N0ZXAge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZmxleDogMSAxIDEuNXJlbTtcbiAgICAgICAgbWluLXdpZHRoOiAxLjVyZW07XG4gICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRncmV5LWJvcmRlci1saWdodDtcbiAgICB9XG59XG5cbi5lY2xpcHNlLXN0ZXBwZXJfX21hcmtlciB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDI2cHg7XG4gICAgaGVpZ2h0OiAyNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkZ3JleS1ib3JkZXItbGlnaHQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgIGNvbG9yOiAkdGV4dC1tdXRlZDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlO1xufVxuXG4uZWNsaXBzZS1zdGVwcGVyX19sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiAkdGV4dC1tdXRlZDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMjVzIGVhc2U7XG59XG5cbi5lY2xpcHNlLXN0ZXBwZXJfX3N0ZXAtLWFjdGl2ZSB7XG4gICAgLmVjbGlwc2Utc3RlcHBlcl9fbWFya2VyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkbmF2eTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5hdnk7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgfVxuICAgIC5lY2xpcHNlLXN0ZXBwZXJfX2xhYmVsIHtcbiAgICAgICAgY29sb3I6ICRuYXZ5O1xuICAgIH1cbn1cblxuLmVjbGlwc2Utc3RlcHBlcl9fc3RlcC0tZG9uZSB7XG4gICAgLmVjbGlwc2Utc3RlcHBlcl9fbWFya2VyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkZ3JlZW47XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRncmVlbjtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG4gICAgLmVjbGlwc2Utc3RlcHBlcl9fbGFiZWwge1xuICAgICAgICBjb2xvcjogJHRleHRHcmV5O1xuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogISBGb3JtIHJvd3MgYW5kIGZpZWxkc1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLyogTm90IGdyaWQgcm93cy4gSW4gYSBkaWFsb2cgODAlIG9mIHRoZSB3aW5kb3cgd2lkZSwgdGhlIDEyIGNvbHVtbiBncmlkXG4vKiBkZWFscyBldmVyeSBmaWVsZCBhbiBlcXVhbCBzaGFyZSwgc28gYW4gOCBjaGFyYWN0ZXIgcHJvdmlkZXIgbnVtYmVyXG4vKiBnZXRzIHRoZSBzYW1lIDcwMHB4IGJveCBhcyBhIGZyZWUgdGV4dCBkZXNjcmlwdGlvbi4gSGVyZSBlYWNoIGZpZWxkIGlzXG4vKiBhcyB3aWRlIGFzIHRoZSB2YWx1ZSBpdCBob2xkcyBhbmQgdGhlIHJvdyBwYWNrcyBsZWZ0LCBsZWF2aW5nIHRoZVxuLyogc2xhY2sgYXMgd2hpdGVzcGFjZSBhdCB0aGUgZW5kIHJhdGhlciB0aGFuIGluc2lkZSBldmVyeSBmaWVsZC5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmVjbGlwc2UtZm9ybXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgY29sdW1uLWdhcDogMS41cmVtO1xuXG4gICAgLyogU2l6ZWQgYnkgdGhlaXIgY29udGVudHMsIG5ldmVyIHN0cmV0Y2hlZC4gLmZvcm0tZ3JvdXAncyBvd24gYm90dG9tXG4gICAgICAgbWFyZ2luIHNwYWNlcyB0aGUgd3JhcHBlZCBsaW5lcy4gKi9cbiAgICA+IC5mb3JtLWdyb3VwIHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAvKiBPciBhIHNlbnRlbmNlIG9mIGhlbHAgdW5kZXIgYSBuYXJyb3cgZmllbGQgc2V0cyB0aGUgd2hvbGUgZ3JvdXAncyB3aWR0aC4gKi9cbiAgICAuaGVscC1ibG9jayB7XG4gICAgICAgIG1heC13aWR0aDogMjByZW07XG4gICAgfVxufVxuXG4vKiBBbGlnbnMgYW4gdW5sYWJlbGxlZCBjb250cm9sIC0gdGhlIHJlbW92ZSBidXR0b24gLSB3aXRoIHRoZSBpbnB1dHMsIG5vdFxuICAgdGhlaXIgbGFiZWxzLiAqL1xuLmVjbGlwc2UtZm9ybXJvd19fc3BhY2VyLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi8qIEEgbGFiZWwgdGhhdCB3cmFwcyBwdXRzIGl0cyBmaWVsZCBhIGxpbmUgbG93ZXIgdGhhbiB0aGUgb25lcyBiZXNpZGUgaXQsIHNvXG4gICB0aGUgcm93J3MgaW5wdXRzIG5vIGxvbmdlciBzaXQgb24gb25lIGxpbmUuIFRoZSBsYWJlbHMgaGVyZSBhcmUgc2hvcnQgYW5kIHRoZVxuICAgY29sdW1ucyBhcmUgd2lkZSwgc28gaG9sZGluZyB0aGVtIHRvIG9uZSBsaW5lIGNvc3RzIG5vdGhpbmcgYW5kIGtlZXBzIHRoZVxuICAgaW5wdXRzIGxldmVsLiAqL1xuLmVjbGlwc2UtZm9ybXJvdyAuY29udHJvbC1sYWJlbCxcbi5lY2xpcHNlLWZpZWxkZ3JpZCAuY29udHJvbC1sYWJlbCB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogISBGaWVsZCBoaW50c1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLyogV2hhdCB1c2VkIHRvIGJlIGEgbGluZSBvZiBoZWxwIHVuZGVyIHRoZSBmaWVsZC4gSGVsZCBpbiBhIHRvb2x0aXAgb25cbi8qIHRoZSBsYWJlbCBpbnN0ZWFkOiBtb3N0IG9mIHRoZXNlIGhpbnRzIG9ubHkgYXBwbHkgdG8gc29tZSBjbGFpbXMsIGFuZFxuLyogdW5kZXIgdGhlIGZpZWxkIGVhY2ggb25lIGFwcGVhcmluZyBhbmQgZGlzYXBwZWFyaW5nIG1vdmVkIGV2ZXJ5dGhpbmdcbi8qIGJlbG93IGl0IGFzIHRoZSBmb3JtIHdhcyBmaWxsZWQgaW4uIE9uIHRoZSBsYWJlbCB0aGV5IGNoYW5nZSBub3RoaW5nXG4vKiBidXQgdGhlIGxhYmVsLlxuLypcbi8qIEVycm9ycyBhcmUgbm90IGhpbnRzIGFuZCBzdGF5IHdoZXJlIHRoZXkgYXJlIC0gYSBtZXNzYWdlIHNheWluZyB0aGVcbi8qIGNsYWltIHdpbGwgYmUgcmVqZWN0ZWQgaGFzIHRvIGJlIHJlYWQsIG5vdCBmb3VuZCBieSBob3ZlcmluZy5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogVGhlIGljb24gaXMgYSBjaGlsZCByYXRoZXIgdGhhbiB0aGlzIGVsZW1lbnQgaXRzZWxmOiBtZC10b29sdGlwIHJlbmRlcnMgaW5zaWRlXG4gICB0aGUgZWxlbWVudCBpdCBoYW5ncyBvZmYsIGFuZCB0aGUgZ2x5cGhpY29uIGZvbnQgd291bGQgY29tZSBvdXQgYXMgZ2x5cGhzLiAqL1xuLmVjbGlwc2UtaGludCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjNyZW07XG4gICAgY29sb3I6ICR0ZXh0LW11dGVkO1xuICAgIGN1cnNvcjogaGVscDtcblxuICAgIC5nbHlwaGljb24ge1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIC8qIC5nbHlwaGljb24gbnVkZ2VzIGl0c2VsZiBkb3duIGEgcGl4ZWwgdG8gc2l0IGluIGEgbGluZSBvZiB0ZXh0OyBiZXNpZGUgYVxuICAgICAgICAgICBsYWJlbCBpdCByZWFkcyBhcyBzaXR0aW5nIGxvdy4gKi9cbiAgICAgICAgdG9wOiAwO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJG5hdnk7XG4gICAgfVxufVxuXG4vKiBBbmd1bGFyIE1hdGVyaWFsJ3Mgb3duIHRvb2x0aXAgaXMgYSBub3dyYXAgY2hpcDogYSBzZW50ZW5jZSBjb21lcyBvdXQgYXMgb25lXG4gICBsaW5lIGZvdXIgdGltZXMgdGhlIHdpZHRoIG9mIHRoZSBmaWVsZCBpdCBleHBsYWlucy4gRHJlc3NlZCBsaWtlIHRoZSBTTk9NRURcbiAgIGNvbmNlcHQgdG9vbHRpcCBpbnN0ZWFkIC0gYSBzbWFsbCBsaWdodCBjYXJkIHRoYXQgd3JhcHMgLSBhbmQgaGVsZCB0byBhIHdpZHRoXG4gICBhIHNlbnRlbmNlIHJlYWRzIHdlbGwgYXQuXG5cbiAgIFNwZWNpZmljaXR5IG92ZXIgdGhlIHRoZW1lJ3Mgb3duIC5tZC10b29sdGlwIHJ1bGUsIHdoaWNoIGlzIGluamVjdGVkIGludG8gdGhlXG4gICBoZWFkIGF0IGJvb3RzdHJhcCBhbmQgc28gd2lucyBhIHRpZSBhZ2FpbnN0IHRoaXMgZmlsZS4gKi9cbmJvZHkgLm1kLXRvb2x0aXAuZWNsaXBzZS10b29sdGlwIHtcbiAgICBtYXgtd2lkdGg6IDE2cmVtO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgY29sb3I6ICR0ZXh0R3JleTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGdyZXktYm9yZGVyLWxpZ2h0O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBib3gtc2hhZG93OiAwIDRweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG4vKiBUaGUgY2FyZCBpcyBvcGFxdWUsIHdoZXJlIHRoZSBjaGlwIGl0IHJlcGxhY2VzIGlzIHJlYWQgdGhyb3VnaC4gKi9cbmJvZHkgLm1kLXRvb2x0aXAuZWNsaXBzZS10b29sdGlwLm1kLXNob3cge1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5lY2xpcHNlLWZpZWxkIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi8qIDMtNiBkaWdpdHM6IE1CUyBpdGVtIG51bWJlcnMsIGFuZCB0aGUgc2hvcnRlciB3aG9sZSBudW1iZXJzIGJlc2lkZSB0aGVtLiAqL1xuLmVjbGlwc2UtZmllbGQtLW51bWJlciB7XG4gICAgd2lkdGg6IDlyZW07XG59XG5cbi8qIEV4YWN0bHkgOCBjaGFyYWN0ZXJzOiBNZWRpY2FyZSBwcm92aWRlciBudW1iZXJzIGFuZCBmYWNpbGl0eSBJRHMuICovXG4uZWNsaXBzZS1maWVsZC0tY29kZSB7XG4gICAgd2lkdGg6IDExcmVtO1xufVxuXG4uZWNsaXBzZS1maWVsZC0tbW9uZXkge1xuICAgIHdpZHRoOiAxMHJlbTtcbn1cblxuLyogRGF0ZSBpbnB1dHMgY2FycnkgcGlja2VyIGZ1cm5pdHVyZSwgc28gdGhleSBuZWVkIG1vcmUgdGhhbiB0ZW4gY2hhcmFjdGVycy4gKi9cbi5lY2xpcHNlLWZpZWxkLS1kYXRlIHtcbiAgICB3aWR0aDogMTNyZW07XG59XG5cbi8qIFVwIHRvIDIwIGNoYXJhY3RlcnMsIHdoZXJlIHRoZSBwbGFjZWhvbGRlciBpcyBsb25nZXIgdGhhbiB0aGUgdmFsdWUuICovXG4uZWNsaXBzZS1maWVsZC0tcmVmIHtcbiAgICB3aWR0aDogMThyZW07XG59XG5cbi8qIEZyZWUgdGV4dDogdGhlIGNsYWltIGl0ZW0gZGVzY3JpcHRpb24uICovXG4uZWNsaXBzZS1maWVsZC0tdGV4dCB7XG4gICAgd2lkdGg6IDI2cmVtO1xufVxuXG4vKiBTVFVCIGNvZGUgcGx1cyBhIGZldyB3b3Jkcy4gRUNMSVBTRSBjYXBzIGl0IGF0IDUwIGNoYXJhY3RlcnMsIGJ1dCBzaXplZCB0b1xuICAgd2hhdCBpcyBub3JtYWxseSB0eXBlZCByYXRoZXIgdGhhbiB0byB0aGUgbWF4aW11bS4gKi9cbi5lY2xpcHNlLWZpZWxkLS1zdHViIHtcbiAgICB3aWR0aDogMTNyZW07XG59XG5cbi8qIFRoZSBjbGFpbSBpdGVtIHBpY2tlciwgd2hpY2ggc2hvd3MgXCI0MjcwMiAtIENhdGFyYWN0IGV4dHJhY3Rpb24gLi4uXCIuICovXG4uZWNsaXBzZS1maWVsZC0taXRlbSB7XG4gICAgd2lkdGg6IDI0cmVtO1xufVxuXG4vKiBTaXplZCBieSB0aGUgbG9uZ2VzdCBvcHRpb24gYW5kIGl0cyBhcnJvdywgbm90IGJ5IHRoZSBjb2RlIGhlbGQuICovXG4uZWNsaXBzZS1maWVsZC0tY2hvaWNlLXNtIHtcbiAgICB3aWR0aDogMTFyZW07XG59XG5cbi5lY2xpcHNlLWZpZWxkLS1jaG9pY2Uge1xuICAgIHdpZHRoOiAxNXJlbTtcbn1cblxuLmVjbGlwc2UtZmllbGQtLWNob2ljZS13aWRlIHtcbiAgICB3aWR0aDogMTlyZW07XG59XG5cbi8qIFRoZSBwcmVzZW50aW5nIGlsbG5lc3MgcGlja2VyLCB3aG9zZSBvcHRpb25zIHJ1biBcIjMyMiAtIEJvbmUgTWFycm93IHRyYW5zZnVzaW9uXG4gICBvciB0cmFuc3BsYW50IChhdXRvbG9nb3VzIGFuZCBhbGxvZ2VuZWljIGluY2wgaGFydmVzdGluZywgY3J5b3ByZXNlcnZhdGlvbilcIi5cbiAgIE1lZGljYXJlIHdyaXRlcyB0aGUgZGVzY3JpcHRpb25zLCBzbyB0aGVpciBsZW5ndGggaXMgbm90IG91cnMgdG8gdHJpbTogc2l6ZWQgdG9cbiAgIGl0cyBsb25nZXN0IG9wdGlvbiBsaWtlIHRoZSBwb2xpY3kgcGlja2VyIGJlbG93LCB3aXRoIC5lY2xpcHNlLWZpZWxkJ3NcbiAgIG1heC13aWR0aCBrZWVwaW5nIGl0IGluc2lkZSB0aGUgZm9ybS4gKi9cbi5lY2xpcHNlLWZpZWxkLS1pbGxuZXNzIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtaW4td2lkdGg6IDMwcmVtO1xufVxuXG4vKiBUaGUgaGVhbHRoIGZ1bmQgcG9saWN5IHBpY2tlciwgd2hvc2Ugb3B0aW9ucyBydW4gXCJCdXBhIC0gIzg4ODEyMzQ1IC0gT3ZlcnNlYXNcbiAgIFZpc2l0b3IgSGVhbHRoIENvdmVyIChPVkhDKSAtIExBUFNFRFwiLiBFdmVyeSBwYXJ0IG9mIHRoYXQgZWFybnMgaXRzIHBsYWNlIC1cbiAgIHR3byBwb2xpY2llcyBhdCB0aGUgc2FtZSBmdW5kIGFyZSB0b2xkIGFwYXJ0IGJ5IHRoZSBjb3ZlciB0eXBlLCBhbmQgdGhlIHN0YXR1c1xuICAgaXMgYSByZWFzb24gbm90IHRvIGNsYWltIG9uIG9uZSAtIHNvIHRoZSBvcHRpb24gaGFzIHRvIGJlIHJlYWRhYmxlIGluIGZ1bGwuXG4gICBIb3cgd2lkZSB0aGF0IGlzIGRlcGVuZHMgb24gdGhlIHBhdGllbnQncyBwb2xpY2llcyByYXRoZXIgdGhhbiBvbiBhbnl0aGluZ1xuICAgdGhpcyBmaWxlIGtub3dzLCBzbyB0aGUgZmllbGQgaXMgc2l6ZWQgdG8gaXRzIGxvbmdlc3Qgb3B0aW9uIGluc3RlYWQgb2YgdG8gYVxuICAgbnVtYmVyIHBpY2tlZCBoZXJlOyB0aGUgZmxvb3Iga2VlcHMgYSBzaG9ydC1uYW1lZCBwb2xpY3kgZnJvbSBjb2xsYXBzaW5nIHRvIGFcbiAgIHN0dWIsIGFuZCAuZWNsaXBzZS1maWVsZCdzIG1heC13aWR0aCBzdG9wcyBhIGxvbmcgb25lIG92ZXJydW5uaW5nIHRoZSBmb3JtLiAqL1xuLmVjbGlwc2UtZmllbGQtLXBvbGljeSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWluLXdpZHRoOiAzMHJlbTtcbn1cblxuLyogVGhlIGVwaXNvZGUgaW5kaWNhdG9ycywgcmVhZCBhY3Jvc3MgcmF0aGVyIHRoYW4gZG93bi4gQm9vdHN0cmFwJ3Mgb3duXG4gICBhZGphY2VudC1jaGVja2JveCBzcGFjaW5nIGZpZ2h0cyB0aGUgZ2FwIGFuZCB1bmV2ZW5zIHRoZSB3cmFwcGVkIHJvd3MuXG5cbiAgIFNpdHMgaW5zaWRlIGEgLmVjbGlwc2UtZm9ybXJvdyBhbG9uZ3NpZGUgdGhlIGVwaXNvZGUncyBmaWVsZHMsIHNvIHRoZSBnYXAgaXNcbiAgIHRoZSB0aWdodGVyIG9mIHRoZSB0d286IDEuNzVyZW0gYmV0d2VlbiBsYWJlbGxlZCBmaWVsZHMgcmVhZHMgYXMgc2VwYXJhdGlvbixcbiAgIGJldHdlZW4gZml2ZSBjaGVja2JveGVzIG9uIG9uZSBsaW5lIGl0IHJlYWRzIGFzIGRyaWZ0LiAqL1xuLmVjbGlwc2UtY2hlY2tyb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogMC40cmVtIDFyZW07XG4gICAgLyogQWxpZ25zIHRoZSBmaXJzdCByb3cgb2YgYm94ZXMgd2l0aCB0aGUgaW5wdXRzIGJlc2lkZSB0aGVtIHJhdGhlciB0aGFuXG4gICAgICAgZmxvYXRpbmcgdGhlbSBhZ2FpbnN0IHRoZSBsYWJlbHMuICovXG4gICAgcGFkZGluZy10b3A6IDAuMzVyZW07XG5cbiAgICAuY2hlY2tib3gtaW5saW5lICsgLmNoZWNrYm94LWlubGluZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogISBGaWVsZCBncmlkXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vKiBGb3IgdGhlIGRlbnNlciBwYXJ0cyBvZiB0aGUgZm9ybSwgd2hlcmUgbW9zdCBmaWVsZHMgY2FycnkgYSBzZW50ZW5jZVxuLyogb2YgaGVscCB3aWRlciB0aGFuIHRoZSBmaWVsZCBpdCBleHBsYWlucy4gUGFja2VkIGxlZnQgdGhlIHdheVxuLyogLmVjbGlwc2UtZm9ybXJvdyBwYWNrcywgZWFjaCBncm91cCBpcyBhcyB3aWRlIGFzIGl0cyBvd24gc2VudGVuY2UsIHNvXG4vKiBubyB0d28gbGluZXMgc3RhcnQgdGhlaXIgZmllbGRzIGF0IHRoZSBzYW1lIG9mZnNldCBhbmQgdGhlIGdhcHNcbi8qIGJldHdlZW4gdGhlbSBhbGwgZGlmZmVyLiBPbmUgY29sdW1uIGdyaWQgaW5zdGVhZDogdGhlIGNvbHVtbnMgYXJlIHRoZVxuLyogc2FtZSBvbiBldmVyeSByb3cgb2YgYSBzZWN0aW9uLCBzbyBmaWVsZHMgbGluZSB1cCBkb3duIHRoZSBmb3JtIGFzXG4vKiB3ZWxsIGFzIGFjcm9zcyBpdCwgd2l0aCBlYWNoIGZpZWxkJ3MgaGVscCB0ZXh0IHVuZGVyIGl0LlxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uZWNsaXBzZS1maWVsZGdyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgLyogQSBzZXQgY29sdW1uIHJhdGhlciB0aGFuIGEgc2hhcmUgb2YgdGhlIHJvdzogc3RyZXRjaGluZyBmb3VyIGZpZWxkcyBhY3Jvc3NcbiAgICAgICBhIGRpYWxvZyA4MCUgb2YgdGhlIHdpbmRvdyB3aWRlIHB1dHMgYSBoYW5kJ3Mgd2lkdGggYmV0d2VlbiBhIGRyb3AtZG93biBhbmRcbiAgICAgICB0aGUgb25lIHRoYXQgcXVhbGlmaWVzIGl0LiBUaGUgc2xhY2sgZ29lcyB0byB0aGUgZW5kIG9mIHRoZSByb3cgaW5zdGVhZC4gKi9cbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIDE2cmVtKTtcbiAgICBjb2x1bW4tZ2FwOiAycmVtO1xuICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcblxuICAgIC8qIFRoZSBjb2x1bW4gaXMgdGhlIHdpZHRoIGhlcmUsIHNvIGEgZmllbGQga2VwdCBhdCBpdHMgb3duIHdvdWxkIG9ubHlcbiAgICAgICBsZWF2ZSBhIHJhZ2dlZCBlZGdlIGluc2lkZSBpdHMgY2VsbC4gKi9cbiAgICAuZWNsaXBzZS1maWVsZCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgID4gLmZvcm0tZ3JvdXAge1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIC8qIFNsYWNrIGF0IHRoZSBlbmQgb2YgdGhlIGNvbHVtbiwgc28gYSBsYWJlbCBsb25nZXIgdGhhbiBpdHMgZmllbGQgLVxuICAgICAgICAgICBcIlNlcnZpY2luZyBQcm92aWRlciBJRCAob3B0aW9uYWwpXCIgLSBoYXMgc29tZXdoZXJlIHRvIGdvIGluc3RlYWQgb2ZcbiAgICAgICAgICAgcnVubmluZyBhdCB0aGUgY29sdW1uIGJlc2lkZSBpdC4gKi9cbiAgICAgICAgcGFkZGluZy1yaWdodDogMC43NXJlbTtcbiAgICB9XG5cbiAgICAvKiBBIHNlbGVjdCBzaXplcyBpdHNlbGYgZnJvbSBpdHMgb3B0aW9ucyB1bmxlc3MgaXQgaXMgdG9sZCBub3QgdG8sIHdoaWNoXG4gICAgICAgbGVhdmVzIGEgZHJvcC1kb3duIG9mIHNob3J0IGNvZGVzIG5hcnJvd2VyIHRoYW4gdGhlIHRleHQgaW5wdXQgYmVzaWRlIGl0LlxuICAgICAgIEJvdGggZmlsbCB0aGUgY29sdW1uLiBTdGF0ZWQgYWdhaW5zdCB0aGUgZWxlbWVudCBhcyB3ZWxsIGFzIHRoZSBjbGFzcyxcbiAgICAgICB0byBiZWF0IHRoZSAuZWNsaXBzZS1maWVsZC0tY2hvaWNlIHdpZHRocyB3aGF0ZXZlciB0aGUgc291cmNlIG9yZGVyLiAqL1xuICAgIHNlbGVjdC5mb3JtLWNvbnRyb2wge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgLyogLmZvcm0tY29udHJvbCdzIGhlaWdodCwgd2hpY2ggYSBzZWxlY3Qgb3RoZXJ3aXNlIHRha2VzIGZyb20gaXRzIGZvbnQuICovXG4gICAgICAgIGhlaWdodDogMzRweDtcbiAgICB9XG59XG5cbi8qIEEgbGluZSBvZiBpdHMgb3duOiBjaGVja2JveGVzIHRoYXQgcmVhZCBhY3Jvc3MsIGFuZCB0aGUgZGVjbGFyYXRpb25zXG4gICB3aG9zZSBsYWJlbCBpcyBhIHNlbnRlbmNlLiAqL1xuLmVjbGlwc2UtZmllbGRncmlkX193aWRlIHtcbiAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xufVxuXG4vKiBUd28gY29sdW1ucywgZm9yIHRoZSB0d28gcGlja2VycyB3aG9zZSBvcHRpb25zIGFyZSBhIHNlbnRlbmNlIHNvbWVvbmUgZWxzZVxuICAgd3JvdGUgLSB0aGUgcGF0aWVudCdzIHJlZmVycmFscywgYW5kIE1lZGljYXJlJ3MgcHJlc2VudGluZyBpbGxuZXNzIGNvZGVzLlxuICAgRXZlcnkgb3RoZXIgZmllbGQgaXMgb25lIGNvbHVtbiwgc28gdGhlIGRyb3AtZG93bnMgYW5kIHRoZSB0ZXh0IGlucHV0cyBvbiBhXG4gICByb3cgYXJlIHRoZSBzYW1lIHdpZHRoLiAqL1xuLmVjbGlwc2UtZmllbGRncmlkX19zcGFuMiB7XG4gICAgZ3JpZC1jb2x1bW46IHNwYW4gMjtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogISBQYW5lbHNcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8qIE9uZSBjYXJkIHBlciB0aGluZyBiZWluZyByZWFkOiB0aGUgYXNzZXNzbWVudCwgdGhlIGl0ZW0gYmVuZWZpdHMsXG4vKiB3aGF0IGlzIGFib3V0IHRvIGJlIGxvZGdlZC5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmVjbGlwc2UtcGFuZWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkZ3JleS1ib3JkZXItbGlnaHQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBwYWRkaW5nOiAxLjI1cmVtIDEuNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xufVxuXG4uZWNsaXBzZS1wYW5lbC0tcXVpZXQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRsaWdodEdyZXk7XG59XG5cbi5lY2xpcHNlLXBhbmVsX19oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDAuNnJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjg1cmVtO1xufVxuXG4uZWNsaXBzZS1wYW5lbF9fdGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDE1cHg7XG59XG5cbi5lY2xpcHNlLXBhbmVsX19ub3RlIHtcbiAgICBjb2xvcjogJHRleHQtbXV0ZWQ7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4vKiBUaGUgdHJhbnNhY3Rpb24gcmVmZXJlbmNlLCB3aGljaCBwcmFjdGljZXMgcmVhZCBvdXQgYW5kIHF1b3RlIGJhY2suICovXG4uZWNsaXBzZS1yZWYge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LWZhbWlseTogXCJTb3VyY2UgQ29kZSBQcm9cIiwgXCJTRk1vbm8tUmVndWxhclwiLCBDb25zb2xhcywgbW9ub3NwYWNlO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwYWxlQmx1ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkZ3JleS1ib3JkZXItbGlnaHQ7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIHBhZGRpbmc6IDJweCA4cHg7XG4gICAgY29sb3I6ICR0ZXh0R3JleTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogISBNb25leSBzdW1tYXJ5IHRpbGVzXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vKiBUaGUgZm91ciBudW1iZXJzIHRoZSBwcmFjdGljZSBhY3RzIG9uLCBwdWxsZWQgb3V0IG9mIHRoZSBwZXItaXRlbVxuLyogdGFibGUgc28gdGhlIGdhcCBpcyBub3QgYnVyaWVkIGluIGEgcm93IG9mIGN1cnJlbmN5LlxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uZWNsaXBzZS1zdW1tYXJ5IHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoOC41cmVtLCAxZnIpKTtcbiAgICBnYXA6IDAuNzVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTtcbn1cblxuLmVjbGlwc2Utc3VtbWFyeV9fdGlsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHBhbGVCbHVlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRncmV5LWJvcmRlci1saWdodDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIHBhZGRpbmc6IDAuN3JlbSAwLjlyZW07XG59XG5cbi5lY2xpcHNlLXN1bW1hcnlfX2xhYmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNmVtO1xuICAgIGNvbG9yOiAkdGV4dC1tdXRlZDtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjNyZW07XG59XG5cbi5lY2xpcHNlLXN1bW1hcnlfX3ZhbHVlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBjb2xvcjogJHRleHRHcmV5O1xufVxuXG4uZWNsaXBzZS1zdW1tYXJ5X190aWxlLS1nYXAge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR5ZWxsb3ctdHAtMTA7XG4gICAgYm9yZGVyLWNvbG9yOiAkeWVsbG93LXRwLTMwO1xuXG4gICAgLmVjbGlwc2Utc3VtbWFyeV9fdmFsdWUge1xuICAgICAgICBjb2xvcjogJGRhbmdlcjtcbiAgICB9XG59XG5cbi5lY2xpcHNlLXN1bW1hcnlfX3RpbGUtLWNsZWFyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW4tdHAtMDg7XG4gICAgYm9yZGVyLWNvbG9yOiAkZ3JlZW4tdHAtMzA7XG5cbiAgICAuZWNsaXBzZS1zdW1tYXJ5X192YWx1ZSB7XG4gICAgICAgIGNvbG9yOiAkZ3JlZW47XG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiAhIENhbGxvdXRzIC0gY29uZmlybSwgbG9kZ2VkLCBmYWlsZWRcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmVjbGlwc2UtY2FsbG91dCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGdyZXktYm9yZGVyLWxpZ2h0O1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBwYWRkaW5nOiAxcmVtIDEuMjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTtcblxuICAgIHAge1xuICAgICAgICBtYXJnaW46IDAgMCAwLjVyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmVjbGlwc2UtY2FsbG91dF9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBtYXJnaW46IDAgMCAwLjVyZW07XG59XG5cbi8qIEl0ZW1pc2VkIGRldGFpbCB1bmRlciBhIGNhbGxvdXQgLSB3aGljaCBpdGVtcyB3ZXJlIHJlcHJpY2VkLCBhbmQgZnJvbSB3aGF0IHRvIHdoYXQuIFNpemVkIHRvIHRoZSBjYWxsb3V0J3NcbiAgIG93biBwYXJhZ3JhcGhzIHJhdGhlciB0aGFuIHRoZSBnbG9iYWwgbGlzdCBzdHlsZXMsIHdoaWNoIGFyZSBzZXQgZm9yIGJvZHkgY29weS4gKi9cbi5lY2xpcHNlLWNhbGxvdXRfX2xpc3Qge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuMjVyZW07XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG5cbiAgICBsaSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLyogQW4gYWN0aW9uIG9mZmVyZWQgYnkgYSBjYWxsb3V0IGl0c2VsZiByYXRoZXIgdGhhbiBieSB0aGUgc3RlcCdzIGFjdGlvbiBiYXIgLSB0aGUgb25lIGNhc2UgYmVpbmcgdGhlIHBhdGllbnRcbiAgIHBheW1lbnQgYSBsb2RnZWQgY2xhaW0gbGVhdmVzIHRvIGNvbGxlY3QsIHdoaWNoIGJlbG9uZ3MgYmVzaWRlIHRoZSBzZW50ZW5jZSB0aGF0IHNheXMgc28uICovXG4uZWNsaXBzZS1jYWxsb3V0X19hY3Rpb24ge1xuICAgIG1hcmdpbi10b3A6IDAuODVyZW07XG59XG5cblxuLmVjbGlwc2UtY2FsbG91dC0tc3VjY2VzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGdyZWVuLXRwLTA4O1xuICAgIGJvcmRlci1jb2xvcjogJGdyZWVuO1xufVxuXG4uZWNsaXBzZS1jYWxsb3V0LS1kYW5nZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjE3LCA4MywgNzksIDAuMDgpO1xuICAgIGJvcmRlci1jb2xvcjogJHJlZC1kYW5nZXItYWx0O1xuICAgIGNvbG9yOiAkZGFuZ2VyO1xufVxuXG4uZWNsaXBzZS1jYWxsb3V0LS13YWl0aW5nIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeWVsbG93LXRwLTEwO1xuICAgIGJvcmRlci1jb2xvcjogJHllbGxvdztcbiAgICBjb2xvcjogJHdhcm5pbmctdGV4dDtcbn1cblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiAhIEFjdGlvbiBiYXJzXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vKiBFdmVyeSBzdGVwIGVuZHMgaW4gb25lLiBUaGUgZ2xvYmFsIC5idG4tbmF2eSAvIC5idG4tY2FuY2VsIGFyZSBmdWxsXG4vKiB3aWR0aCBzbGFicyBjYXBwZWQgYXQgMjIwcHgsIHdoaWNoIHJlYWQgYXMgYSBmb3JtIGZpZWxkIHdoZW4gdHdvIHNpdFxuLyogc2lkZSBieSBzaWRlLCBzbyBpbiBoZXJlIHRoZXkgc2l6ZSB0byB0aGVpciBsYWJlbCBpbnN0ZWFkLlxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uZWNsaXBzZS1hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiAwLjc1cmVtO1xuICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgICBwYWRkaW5nLXRvcDogMS4yNXJlbTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGdyZXktYm9yZGVyLWxpZ2h0O1xuXG4gICAgLmJ0biB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgIG1pbi13aWR0aDogOHJlbTtcbiAgICAgICAgcGFkZGluZzogN3B4IDIycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICB9XG59XG5cbi8qIFB1c2hlcyB0aGUgc2Vjb25kYXJ5IGFjdGlvbiBhd2F5IGZyb20gdGhlIHByaW1hcnksIHNvIHRoZSBidXR0b24gdGhhdCBzZW5kc1xuICAgYSBjbGFpbSB0byBNZWRpY2FyZSBpcyBuZXZlciB0aGUgb25lIHVuZGVyIGEgc3RyYXkgY2xpY2suIE9uY2UgdGhlIHByaW1hcnkgaXNcbiAgIGdvbmUgdGhlIHBhaXIgY29sbGFwc2VzIGJhY2sgdG8gb25lIHJpZ2h0LWFsaWduZWQgYnV0dG9uLiAqL1xuLmVjbGlwc2UtYWN0aW9uc19fc3BhY2VyIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG5cbiAgICAmOm9ubHktY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxufVxuXG4uZWNsaXBzZS1hY3Rpb25zLS1pbmxpbmUge1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgYm9yZGVyLXRvcDogMDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogISBUYWJsZXMgaW5zaWRlIHRoZSBmbG93XG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5lY2xpcHNlLXRhYmxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcblxuICAgID4gdGhlYWQgPiB0ciA+IHRoIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gICAgICAgIGNvbG9yOiAkdGV4dC1tdXRlZDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICA+IHRib2R5ID4gdHIgPiB0ZCB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgLyogVGhlIHRvdGFscyByb3cgcmVhZHMgYXMgYSBzdW1tYXJ5IG9mIHRoZSByb3dzIGFib3ZlIGl0LCBub3QgYW5vdGhlciBpdGVtLiAqL1xuICAgID4gdGJvZHkgPiB0ci5lY2xpcHNlLXRhYmxlX190b3RhbCA+IHRkIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICRncmV5LWJvcmRlci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBhbGVCbHVlO1xuICAgIH1cbn1cblxuLyogTGFiZWwgLyB2YWx1ZSBwYWlycyAtIHRoZSBhc3Nlc3NtZW50IGRldGFpbCByb3dzLiAqL1xuLmVjbGlwc2UtdGFibGUtLWZhY3RzIHtcbiAgICA+IHRib2R5ID4gdHIgPiB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICAgIHdpZHRoOiAzNCU7XG4gICAgICAgIGNvbG9yOiAkdGV4dEdyZXk7XG4gICAgfVxuICAgID4gdGJvZHkgPiB0cjpmaXJzdC1jaGlsZCA+IHRkIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICB9XG59XG5cbi5lY2xpcHNlLW51bWVyaWMge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG59XG4iLCIvKiBUaGUgc2Nyb2xsaW5nIFBERiB2aWV3ZXIgKDxwZGYtc2Nyb2xsLXZpZXdlcj4pIHVzZWQgYnkgdGhlIGRvY3VtZW50IHByZXZpZXcgYW5kIHByb2Nlc3NpbmdcbiAgIHJlcG9ydCBtb2RhbHMuIFRoZSBwYWdlIGNvbHVtbiBzY3JvbGxzIGluc2lkZSB0aGUgbW9kYWwgYm9keSByYXRoZXIgdGhhbiBncm93aW5nIGl0LCBzbyB0aGVcbiAgIHRvb2xiYXIgYW5kIHRoZSBtb2RhbCdzIG93biBidXR0b25zIHN0YXkgcHV0IHdoaWxlIGEgZG9jdW1lbnQgaXMgcmVhZC4gKi9cblxuLnBkZi1zY3JvbGwtdmlld2VyIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0bWF4LXdpZHRoOiAxMDAlO1xufVxuXG4ucGRmLXNjcm9sbC12aWV3ZXItdG9vbGJhciB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGdhcDogMC41cmVtO1xuXHRwYWRkaW5nLWJvdHRvbTogMC43NXJlbTtcblxuXHQuYnRuIHtcblx0XHR3aWR0aDogNWVtO1xuXHR9XG5cblx0LmNvbnRyb2wtbGFiZWwge1xuXHRcdHBhZGRpbmctbGVmdDogMC41cmVtO1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cbn1cblxuLnBkZi1zY3JvbGwtdmlld2VyLXNjcm9sbCB7XG5cdC8qIFBhZ2VzIGFyZSBwb3NpdGlvbmVkIGFnYWluc3QgdGhpcyBib3gsIGFuZCBvZmZzZXRUb3AgaXMgcmVhZCBvZmYgdGhlbSB0byB3b3JrIG91dCB3aGF0IGlzIGluXG5cdCAgIHZpZXcgLSBzbyBpdCBoYXMgdG8gYmUgdGhlIG9mZnNldCBwYXJlbnQsIG5vdCBqdXN0IHRoZSB0aGluZyB0aGF0IHNjcm9sbHMuICovXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0b3ZlcmZsb3c6IGF1dG87XG5cdG1heC1oZWlnaHQ6IDYwdmg7XG5cdGJhY2tncm91bmQtY29sb3I6ICRncmV5LW1vZGFsLWhlYWRlcjtcblx0Ym9yZGVyOiAxcHggc29saWQgJGdyZXktYm9yZGVyLWxpZ2h0O1xufVxuXG4vKiBJbnNpZGUgYSB2aWV3ZXIgbW9kYWwgdGhlIGRvY3VtZW50IHRha2VzIHRoZSB3aG9sZSB3aW5kb3cgYmFyIHRoZSBtb2RhbCdzIG93biBjaHJvbWUuIEEgZG9jdW1lbnQgaXNcbiAgIHJlYWQgYSBwYWdlIGF0IGEgdGltZSwgYW5kIGEgc2hvcnQgcGFuZWwgaXMgYSBwYWdlIHJlYWQgYSB0aGlyZCBhdCBhIHRpbWUuIFRoZSBzdWJ0cmFjdGVkIGhlaWdodHNcbiAgIGFyZSB0aGF0IGNocm9tZTogdGhlIGRpYWxvZydzIHRvcCBtYXJnaW4sIHRoZSB0aXRsZSBiYXIsIHRoaXMgYm9keSdzIHBhZGRpbmcgYW5kIHRoZSB0b29sYmFyIC0gYW5kLFxuICAgb24gdGhlIHJlcG9ydCwgdGhlIHJvdyBpdHMgRG93bmxvYWQgYW5kIENsb3NlIGJ1dHRvbnMgc2l0IGluLiAqL1xuLnBkZi12aWV3ZXItbW9kYWwtYm9keSB7XG5cdHBhZGRpbmc6IDFyZW0gMS4yNXJlbTtcblxuXHQucGRmLXNjcm9sbC12aWV3ZXItc2Nyb2xsIHtcblx0XHRoZWlnaHQ6IGNhbGMoMTAwdmggLSAxOTBweCk7XG5cdFx0bWF4LWhlaWdodDogbm9uZTtcblx0fVxuXG5cdCYuaGFzLWZvb3RlciAucGRmLXNjcm9sbC12aWV3ZXItc2Nyb2xsIHtcblx0XHRoZWlnaHQ6IGNhbGMoMTAwdmggLSAyNjVweCk7XG5cdH1cbn1cblxuLnBkZi1zY3JvbGwtdmlld2VyLXBhZ2VzIHtcblx0cGFkZGluZzogMC43NXJlbSAwO1xufVxuXG4vKiBDZW50cmVkIGJ5IGF1dG8gbWFyZ2lucyBvbiBhIGJveCBzaHJpbmstd3JhcHBlZCB0byB0aGUgcGFnZSwgbm90IGJ5IGZsZXguIEF0IHJlYWwgc2l6ZSBvbiBhIG5hcnJvd1xuICAgd2luZG93IGEgcGFnZSBpcyB3aWRlciB0aGFuIHRoZSBwYW5lbCwgYW5kIGl0IGhhcyB0byBvdmVyZmxvdyB0byB0aGUgcmlnaHQgd2hlcmUgdGhlIGhvcml6b250YWxcbiAgIHNjcm9sbGJhciBjYW4gcmVhY2ggaXQgLSBmbGV4IGNlbnRyaW5nIHdvdWxkIHB1c2ggaXRzIGxlZnQgZWRnZSBvdXQgb2YgcmVhY2ggaW5zdGVhZC4gKi9cbi5wZGYtc2Nyb2xsLXZpZXdlci1wYWdlIHtcblx0ZGlzcGxheTogdGFibGU7XG5cdG1hcmdpbjogMCBhdXRvIDAuNzVyZW07XG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG5cdGJveC1zaGFkb3c6IDAgMXB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTgpO1xuXG5cdCY6bGFzdC1jaGlsZCB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxuXG5cdGNhbnZhcyB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cbn1cblxuLnBkZi1zY3JvbGwtdmlld2VyLW1lc3NhZ2Uge1xuXHRwYWRkaW5nOiAzcmVtIDA7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbiIsIi5tb2Rlcm4tbG9naW4tcGFnZSB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdG1pbi1oZWlnaHQ6IDEwMHZoO1xuXHR3aWR0aDogMTAwJTtcblx0Zm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zYW5zLXNlcmlmO1xuXHRmb250LXNpemU6IDE2cHg7XG5cdGNvbG9yOiAkd2hpdGU7XG5cdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXHQtLXBhZ2UtYmctaW1hZ2U6IHVybCgnaHR0cHM6Ly9jYXR0cmF4LW1lZGlhLnMzLmFwLXNvdXRoZWFzdC0yLmFtYXpvbmF3cy5jb20vaW1hZ2VzL3N1cmdlb25faW1hZ2VfY3JvcHBlZDIuanBnJyk7XG5cdC0tcGFnZS1iZy1wb3NpdGlvbjogY2VudGVyO1xuXHRiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJG5hdnktYmctZ3JhZGllbnQtZGFyaywgJG5hdnktYmctZ3JhZGllbnQtbGlnaHQpLCB2YXIoLS1wYWdlLWJnLWltYWdlKTtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogdmFyKC0tcGFnZS1iZy1wb3NpdGlvbik7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cblx0bWFpbi5oZXJvLXNlY3Rpb24ge1xuXHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0ZGlzcGxheTogZ3JpZDtcblx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEuMmZyIDFmcjtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGdhcDogNHJlbTtcblx0XHRwYWRkaW5nOiA1cmVtICRzZWN0aW9uLXBhZGRpbmcteDtcblx0XHRmbGV4LWdyb3c6IDE7XG5cdFx0bWF4LXdpZHRoOiAxNDAwcHg7XG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cblx0XHRAbWVkaWEgKG1heC13aWR0aDogOTkycHgpIHtcblx0XHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0cGFkZGluZzogM3JlbSAkc2VjdGlvbi1wYWRkaW5nLXg7XG5cdFx0XHRnYXA6IDIuNXJlbTtcblx0XHR9XG5cdH1cbn1cblxuLmhlcm8tY29udGVudCB7XG5cdHBhZGRpbmctcmlnaHQ6IDJyZW07XG5cdGNvbG9yOiAkd2hpdGU7XG5cblx0QG1lZGlhIChtYXgtd2lkdGg6IDk5MnB4KSB7XG5cdFx0cGFkZGluZy1yaWdodDogMDtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjsgLyogVGhpcyBjZW50ZXJzIHRoZSBjb250ZW50IG9uIG1vYmlsZSAqL1xuXHR9XG59XG5cbi5tYWluLWxvZ28ge1xuXHRtYXgtd2lkdGg6IDI4MHB4O1xuXHRtYXJnaW4tYm90dG9tOiAyLjVyZW07XG5cdGZpbHRlcjogZHJvcC1zaGFkb3coMCAycHggOHB4ICRibGFjay10cC0zMCk7XG5cblx0QG1lZGlhIChtYXgtd2lkdGg6IDk5MnB4KSB7XG5cdFx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdFx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xuXHR9XG59XG5cbi5oZXJvLXRpdGxlIHtcblx0Zm9udC1zaXplOiAkZm9udC1zaXplLXh4eGw7XG5cdGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcblx0bGluZS1oZWlnaHQ6IDEuMTU7XG5cdG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG5cdGNvbG9yOiAkd2hpdGU7XG5cdGxldHRlci1zcGFjaW5nOiAtMC4wM2VtO1xuXG5cdEBtZWRpYSAobWF4LXdpZHRoOiA5OTJweCkge1xuXHRcdGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS14eGw7XG5cdH1cblxuXHRAbWVkaWEgKG1heC13aWR0aDogNTc2cHgpIHtcblx0XHRmb250LXNpemU6IDJyZW07XG5cdH1cbn1cblxuLmhlcm8tc3VidGl0bGUge1xuXHRmb250LXNpemU6IDEuMTVyZW07XG5cdGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbGlnaHQ7XG5cdG1hcmdpbi1ib3R0b206IDNyZW07XG5cdGNvbG9yOiAkd2hpdGUtdHAtODU7XG5cdGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYmFzZTtcblxuXHRAbWVkaWEgKG1heC13aWR0aDogOTkycHgpIHtcblx0XHRmb250LXNpemU6ICRmb250LXNpemUtYmFzZTtcblx0fVxufVxuXG4uYmVuZWZpdHMtbGlzdCB7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdHBhZGRpbmc6IDA7XG5cdG1hcmdpbjogMDtcblxuXHRAbWVkaWEgKG1heC13aWR0aDogOTkycHgpIHtcblx0XHQvKiBUaGlzIGFsbG93cyB0aGUgPHVsPiB0byBiZSBjZW50ZXJlZCBieSBpdHMgcGFyZW50J3MgdGV4dC1hbGlnbjpjZW50ZXIgKi9cblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdH1cblxuXHRsaSB7XG5cdFx0Zm9udC1zaXplOiAxLjA1cmVtO1xuXHRcdGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsO1xuXHRcdG1hcmdpbi1ib3R0b206IDEuMnJlbTtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0dGV4dC1hbGlnbjogbGVmdDsgLyogRml4ZXMgbGlzdCBpdGVtIHRleHQgYWxpZ25tZW50ICovXG5cdH1cblxuXHQuY2hlY2ttYXJrIHtcblx0XHRjb2xvcjogJGN5YW47XG5cdFx0Zm9udC1zaXplOiAxLjRyZW07XG5cdFx0bWFyZ2luLXJpZ2h0OiAxcmVtO1xuXHRcdGZsZXgtc2hyaW5rOiAwO1xuXHR9XG5cbn1cblxuLnByaXZhY3ktbGluayB7XG5cdG1hcmdpbi10b3A6IDJyZW07XG5cdGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRjb2xvcjogJHdoaXRlLXRwLTc1O1xuXG5cdGEge1xuXHRcdGNvbG9yOiAkY3lhbjtcblx0XHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW1lZGl1bTtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0dHJhbnNpdGlvbjogY29sb3IgMC4zcyBlYXNlO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0XHRcdGNvbG9yOiAkY3lhbi1kYXJrZXI7XG5cdFx0fVxuXG5cdH1cbn1cblxuLnByb29mLXNlY3Rpb24ge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGUtdHAtMDU7XG5cdHBhZGRpbmc6IDMuNXJlbSAkc2VjdGlvbi1wYWRkaW5nLXg7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICR3aGl0ZS10cC0xMDtcblx0Y29sb3I6ICR3aGl0ZTtcblx0Zm9udC1zaXplOiAwLjk1cmVtO1xufVxuXG4ucHJvb2YtdGl0bGUge1xuXHRmb250LXNpemU6IDIuMnJlbTtcblx0Zm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuXHRtYXJnaW4tYm90dG9tOiAzcmVtO1xuXHRjb2xvcjogJHdoaXRlO1xuXG5cdEBtZWRpYSAobWF4LXdpZHRoOiA5OTJweCkge1xuXHRcdGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS14bDtcblx0fVxufVxuXG4udGVzdGltb25pYWxzLWhvcml6b250YWwge1xuXHRkaXNwbGF5OiBncmlkO1xuXHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDMwMHB4LCAxZnIpKTtcblx0Z2FwOiAyLjVyZW07XG5cdG1heC13aWR0aDogMTIwMHB4O1xuXHRtYXJnaW46IDAgYXV0bztcblxuXHRAbWVkaWEgKG1heC13aWR0aDogOTkycHgpIHtcblx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcblx0fVxufVxuXG4udGVzdGltb25pYWwtY2FyZC1ob3Jpem9udGFsIHtcblx0YmFja2dyb3VuZDogJHdoaXRlLXRwLTEwO1xuXHRwYWRkaW5nOiAyLjVyZW07XG5cdGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWxnO1xuXHRib3gtc2hhZG93OiAwIDRweCAxNXB4ICRibGFjay10cC0yMDtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRib3JkZXI6IDFweCBzb2xpZCAkd2hpdGUtdHAtMTU7XG5cblx0LnF1b3RlIHtcblx0XHRmb250LXNpemU6IDEuMDVyZW07XG5cdFx0bGluZS1oZWlnaHQ6IDEuNztcblx0XHRtYXJnaW4tYm90dG9tOiAxLjVyZW07XG5cdFx0Y29sb3I6ICR3aGl0ZS10cC05MDtcblx0XHRmb250LXN0eWxlOiBpdGFsaWM7XG5cdH1cblxuXHRjaXRlIHtcblx0XHRmb250LXNpemU6ICRmb250LXNpemUtYmFzZTtcblx0XHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW1lZGl1bTtcblx0XHRjb2xvcjogJGN5YW47XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0bWFyZ2luLXRvcDogYXV0bztcblx0fVxuXG59XG5cbi50ZXN0aW1vbmlhbC1hdmF0YXIge1xuXHR3aWR0aDogOTBweDtcblx0aGVpZ2h0OiA5MHB4O1xuXHRib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1jaXJjbGU7XG5cdG9iamVjdC1maXQ6IGNvdmVyO1xuXHRtYXJnaW4tYm90dG9tOiAxLjVyZW07XG5cdGJvcmRlcjogM3B4IHNvbGlkICRjeWFuO1xuXHRib3gtc2hhZG93OiAwIDAgMCA1cHggJGN5YW4tdHAtMjA7XG59XG5cbi5wYWdlLWZvb3RlciB7XG5cdGRpc3BsYXk6IGdyaWQ7XG5cdGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGF1dG8gMWZyO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRwYWRkaW5nOiAxLjVyZW0gJHNlY3Rpb24tcGFkZGluZy14O1xuXHR3aWR0aDogMTAwJTtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblxuXHRAbWVkaWEgKG1heC13aWR0aDogOTkycHgpIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcblx0XHRnYXA6IDEuNXJlbTtcblx0XHRwYWRkaW5nOiAycmVtICRzZWN0aW9uLXBhZGRpbmcteDtcblx0fVxuXG5cdC5jb3B5cmlnaHQge1xuXHRcdGdyaWQtY29sdW1uOiAyO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRjb2xvcjogJHdoaXRlLXRwLTcwO1xuXHRcdGZvbnQtc2l6ZTogMC45NXJlbTtcblx0fVxuXG5cdC5wZW50ZXN0LWJhZGdlIHtcblx0XHRncmlkLWNvbHVtbjogMjtcblx0XHRqdXN0aWZ5LXNlbGY6IGVuZDtcblxuXHRcdGltZyB7XG5cdFx0XHRtYXgtd2lkdGg6IDMwMHB4O1xuXHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdH1cblxuXHR9XG59XG5cbi52YWx1ZS1wcm9wLXNlY3Rpb24ge1xuXHRwYWRkaW5nOiA2LjVyZW0gJHNlY3Rpb24tcGFkZGluZy14O1xuXG5cdEBtZWRpYSAobWF4LXdpZHRoOiA5OTJweCkge1xuXHRcdHBhZGRpbmc6IDNyZW0gJHNlY3Rpb24tcGFkZGluZy14O1xuXHR9XG59XG5cbi52YWx1ZS1wcm9wLWNvbnRhaW5lciB7XG5cdGRpc3BsYXk6IGdyaWQ7XG5cdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG5cdGdhcDogMi41cmVtO1xuXHRtYXgtd2lkdGg6IDEyMDBweDtcblx0bWFyZ2luOiAwIGF1dG87XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRAbWVkaWEgKG1heC13aWR0aDogOTkycHgpIHtcblx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcblx0XHRnYXA6IDJyZW07XG5cdH1cbn1cblxuLnZhbHVlLXByb3AtY2FyZCB7XG5cdGJhY2tncm91bmQ6ICR3aGl0ZS10cC0wNTtcblx0cGFkZGluZzogMi41cmVtIDJyZW07XG5cdGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLXhsO1xuXHRib3JkZXI6IDFweCBzb2xpZCAkd2hpdGUtdHAtMTU7XG5cdHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG5cdGJhY2tkcm9wLWZpbHRlcjogYmx1cig1cHgpO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG5cdCY6aG92ZXIge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7XG5cdFx0YmFja2dyb3VuZDogJHdoaXRlLXRwLTEwO1xuXHRcdGJveC1zaGFkb3c6ICRzaGFkb3ctbGc7XG5cdFx0Ym9yZGVyLWNvbG9yOiAkY3lhbi10cC01MDtcblxuXHRcdC50aXRsZS1yZWZlcnJhbCB7XG5cdFx0XHRjb2xvcjogJGN5YW47XG5cdFx0fVxuXG5cdFx0Lmljb24tbWFuYWdlbWVudCxcblx0XHQudGl0bGUtbWFuYWdlbWVudCB7XG5cdFx0XHRib3JkZXItY29sb3I6ICRncmVlbi10cC01MDtcblx0XHRcdGNvbG9yOiAkZ3JlZW47XG5cdFx0fVxuXG5cdFx0Lmljb24tbWFuYWdlbWVudCB7XG5cdFx0XHRiYWNrZ3JvdW5kOiAkZ3JlZW4tdHAtMjA7XG5cdFx0fVxuXG5cdFx0Lmljb24tdGVjaCxcblx0XHQudGl0bGUtdGVjaCB7XG5cdFx0XHRib3JkZXItY29sb3I6ICR5ZWxsb3ctdHAtNTA7XG5cdFx0XHRjb2xvcjogJHllbGxvdztcblx0XHR9XG5cblx0XHQuaWNvbi10ZWNoIHtcblx0XHRcdGJhY2tncm91bmQ6ICR5ZWxsb3ctdHAtMjA7XG5cdFx0fVxuXG5cdFx0LnZhbHVlLXByb3AtaWNvbi13cmFwcGVyIHtcblx0XHRcdHRyYW5zZm9ybTogc2NhbGUoMS4xKSByb3RhdGUoNWRlZyk7XG5cdFx0fVxuXG5cdH1cbn1cblxuLnZhbHVlLXByb3AtaWNvbi13cmFwcGVyIHtcblx0d2lkdGg6IDgwcHg7XG5cdGhlaWdodDogODBweDtcblx0bWFyZ2luOiAwIGF1dG8gMS41cmVtIGF1dG87XG5cdGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWNpcmNsZTtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG5cbi52YWx1ZS1wcm9wLWljb24ge1xuXHRmb250LXNpemU6ICRmb250LXNpemUteHhsO1xuXHRsaW5lLWhlaWdodDogMTtcbn1cblxuLmljb24tcmVmZXJyYWwge1xuXHRiYWNrZ3JvdW5kOiAkY3lhbi10cC0xMDtcblxuXHQudmFsdWUtcHJvcC1pY29uIHtcblx0XHRjb2xvcjogJGN5YW47XG5cdH1cblxufVxuXG4udGl0bGUtcmVmZXJyYWwsXG4uaWNvbi1yZWZlcnJhbCAudmFsdWUtcHJvcC1pY29uIHtcblx0Y29sb3I6ICRjeWFuO1xufVxuXG4uaWNvbi1tYW5hZ2VtZW50IHtcblx0YmFja2dyb3VuZDogJGdyZWVuLXRwLTEwO1xuXG5cdC52YWx1ZS1wcm9wLWljb24ge1xuXHRcdGNvbG9yOiAkZ3JlZW47XG5cdH1cblxufVxuXG4udGl0bGUtbWFuYWdlbWVudCxcbi5pY29uLW1hbmFnZW1lbnQgLnZhbHVlLXByb3AtaWNvbiB7XG5cdGNvbG9yOiAkZ3JlZW47XG59XG5cbi5pY29uLXRlY2gge1xuXHRiYWNrZ3JvdW5kOiAkeWVsbG93LXRwLTEwO1xuXG5cdC52YWx1ZS1wcm9wLWljb24ge1xuXHRcdGNvbG9yOiAkeWVsbG93O1xuXHR9XG5cbn1cblxuLnRpdGxlLXRlY2gsXG4uaWNvbi10ZWNoIC52YWx1ZS1wcm9wLWljb24ge1xuXHRjb2xvcjogJHllbGxvdztcbn1cblxuLnZhbHVlLXByb3AtdGl0bGUge1xuXHRmb250LXNpemU6ICRmb250LXNpemUtbGc7XG5cdGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtc2VtaWJvbGQ7XG5cdG1hcmdpbjogMCAwIDFyZW0gMDtcblx0dHJhbnNpdGlvbjogY29sb3IgMC4zcyBlYXNlO1xufVxuXG4udmFsdWUtcHJvcC10ZXh0IHtcblx0Zm9udC1zaXplOiAkZm9udC1zaXplLWJhc2U7XG5cdGNvbG9yOiAkd2hpdGUtdHAtODU7XG5cdGxpbmUtaGVpZ2h0OiAxLjc7XG5cdG1hcmdpbjogMDtcblx0ZmxleC1ncm93OiAxO1xufVxuXG4uYnRuLXNlZS1tb3JlIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRhbGlnbi1zZWxmOiBjZW50ZXI7XG5cdG1hcmdpbi10b3A6IGF1dG87XG5cdHBhZGRpbmc6IDAuNzVyZW0gMS41cmVtO1xuXHRib3JkZXI6IDJweCBzb2xpZCAkd2hpdGUtdHAtNjA7XG5cdGJvcmRlci1yYWRpdXM6IDUwcHg7XG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRjb2xvcjogJHdoaXRlO1xuXHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW1lZGl1bTtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0Zm9udC1zaXplOiAwLjhyZW07XG5cdGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0Jjpob3ZlciB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHdoaXRlLXRwLTEwO1xuXHRcdGJvcmRlci1jb2xvcjogJGN5YW47XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuXHR9XG5cbn1cblxuLmZlYXR1cmVzLW92ZXJ2aWV3IHtcblx0cGFkZGluZy10b3A6IDJyZW07XG5cdHBhZGRpbmctYm90dG9tOiA0cmVtO1xuXG5cdC5mZWF0dXJlcy1ncmlkIHtcblx0XHRkaXNwbGF5OiBncmlkO1xuXHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMzIwcHgsIDFmcikpO1xuXHRcdGdhcDogMnJlbTtcblx0fVxuXG59XG5cbi5mZWF0dXJlLWNhdGVnb3J5LXNlY3Rpb24ge1xuXHRtYXgtd2lkdGg6IDE0MDBweDtcblx0bWFyZ2luOiAwIGF1dG8gNHJlbSBhdXRvO1xuXHRwYWRkaW5nOiAwIDFyZW07XG59XG5cbi5jYXRlZ29yeS1oZWFkZXIge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdG1hcmdpbi1ib3R0b206IDNyZW07XG5cblx0aDIge1xuXHRcdGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS14eGw7XG5cdFx0Zm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuXHRcdG1hcmdpbjogMCAwIDAuNzVyZW0gMDtcblx0fVxuXG5cdHAge1xuXHRcdGZvbnQtc2l6ZTogMS4xNXJlbTtcblx0XHRtYXgtd2lkdGg6IDc1MHB4O1xuXHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdGNvbG9yOiAkd2hpdGUtdHAtODU7XG5cdFx0bGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1iYXNlO1xuXHR9XG5cblx0Ji5vcHRvbWV0cnkgaDIge1xuICAgICAgICBjb2xvcjogJGN5YW47XG4gICAgfVxuXG4gICAgJi5vcGh0aGFsbW9sb2d5IGgyIHtcbiAgICAgICAgY29sb3I6ICRncmVlbjtcbiAgICB9XG5cbiAgICAmLm1hbmFnZW1lbnQgaDIge1xuICAgICAgICBjb2xvcjogJHllbGxvdztcbiAgICB9XG5cbiAgICAmLmhvc3BpdGFscyBoMiB7XG4gICAgICAgIGNvbG9yOiAkbGF2ZW5kZXI7XG4gICAgfVxuXG59XG5cbi5jYXRlZ29yeS1pY29uIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRmb250LXNpemU6ICRmb250LXNpemUteHhsO1xuXHR3aWR0aDogODBweDtcblx0aGVpZ2h0OiA4MHB4O1xuXHRsaW5lLWhlaWdodDogODBweDtcblx0Ym9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtY2lyY2xlO1xuXHRtYXJnaW4tYm90dG9tOiAxLjVyZW07XG5cdHBhZGRpbmctdG9wOiAycmVtO1xuXHRiYWNrZ3JvdW5kOiAkd2hpdGUtdHAtMTA7XG5cdHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG5cblx0Ji5vcHRvbWV0cnkge1xuXHRcdGNvbG9yOiAkY3lhbjtcblx0XHRib3JkZXI6IDJweCBzb2xpZCAkY3lhbi10cC0zMDtcblx0fVxuXG5cdCYub3BodGhhbG1vbG9neSB7XG5cdFx0Y29sb3I6ICRncmVlbjtcblx0XHRib3JkZXI6IDJweCBzb2xpZCAkZ3JlZW4tdHAtMzA7XG5cdH1cblxuXHQmLm1hbmFnZW1lbnQge1xuXHRcdGNvbG9yOiAkeWVsbG93O1xuXHRcdGJvcmRlcjogMnB4IHNvbGlkICR5ZWxsb3ctdHAtMzA7XG5cdH1cblxuXHQmLmhvc3BpdGFscyB7XG5cdFx0Y29sb3I6ICRsYXZlbmRlcjtcblx0XHRib3JkZXI6IDJweCBzb2xpZCAkbGF2ZW5kZXItdHAtMzA7XG5cdH1cbn1cblxuLmZlYXR1cmVzLWdyaWQge1xuXHRkaXNwbGF5OiBncmlkO1xuXHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuXHRnYXA6IDJyZW07XG5cblx0QG1lZGlhIChtYXgtd2lkdGg6IDk5MnB4KSB7XG5cdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG5cdH1cbn1cblxuLmZlYXR1cmUtY2FyZCB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0cGFkZGluZzogMi41cmVtIDJyZW07XG5cdGJhY2tncm91bmQ6ICR3aGl0ZS10cC0wNTtcblx0Ym9yZGVyOiAxcHggc29saWQgJHdoaXRlLXRwLTE1O1xuXHRib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1sZztcblx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2U7XG5cblx0Jjpob3ZlciB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpO1xuXHRcdGJhY2tncm91bmQ6ICR3aGl0ZS10cC0xMDtcblx0fVxuXG59XG5cbi5mZWF0dXJlLWljb24ge1xuXHRmb250LXNpemU6IDIuOHJlbTtcblx0bWFyZ2luLWJvdHRvbTogMS41cmVtO1xuXHRjb2xvcjogJGN5YW47XG59XG5cbi5mZWF0dXJlLXRpdGxlIHtcblx0Zm9udC1zaXplOiAkZm9udC1zaXplLWxnO1xuXHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXNlbWlib2xkO1xuXHRtYXJnaW46IDAgMCAwLjc1cmVtIDA7XG5cdGNvbG9yOiAkd2hpdGU7XG59XG5cbi5mZWF0dXJlLWRlc2NyaXB0aW9uIHtcblx0Zm9udC1zaXplOiAkZm9udC1zaXplLWJhc2U7XG5cdGNvbG9yOiAkd2hpdGUtdHAtODU7XG5cdGxpbmUtaGVpZ2h0OiAxLjc7XG5cdG1hcmdpbjogMDtcbn1cblxuLmZpbmFsLWN0YS1zZWN0aW9uIHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRwYWRkaW5nOiA0cmVtICRzZWN0aW9uLXBhZGRpbmcteDtcblx0YmFja2dyb3VuZC1jb2xvcjogJGJsYWNrLXRwLTIwO1xuXG5cdC5idG4tbmF2LWRlbW8ge1xuXHRcdGZvbnQtc2l6ZTogMS4ycmVtO1xuXHRcdHBhZGRpbmc6IDFyZW0gMi41cmVtO1xuXHR9XG5cbn1cblxuLmZlYXR1cmVzLWRpc2NsYWltZXIge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHBhZGRpbmc6IDJyZW0gJHNlY3Rpb24tcGFkZGluZy14IDFyZW0gJHNlY3Rpb24tcGFkZGluZy14O1xuXHRtYXgtd2lkdGg6IDgwMHB4O1xuXHRtYXJnaW46IDAgYXV0bztcblx0Zm9udC1zaXplOiAkZm9udC1zaXplLXNtO1xuXHRjb2xvcjogJHdoaXRlLXRwLTYwO1xuXHRsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJhc2U7XG59XG5cbi5zZWN0aW9uLXRpdGxlIHtcblx0QG1lZGlhIChtYXgtd2lkdGg6IDk5MnB4KSB7XG5cdFx0Zm9udC1zaXplOiAycmVtO1xuXHR9XG59XG5cbi5mdWxsLXNjcmVlbi1sb2FkZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICB6LWluZGV4OiA5OTk5OTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn0iLCIubW9kZXJuLWxvZ2luLXBhZ2Uge1xuXHQubG9naW4tY2FyZCB7XG5cdFx0YmFja2dyb3VuZDogJHdoaXRlO1xuXHRcdGNvbG9yOiAkdGV4dC1kYXJrO1xuXHRcdHBhZGRpbmc6IDNyZW07XG5cdFx0Ym9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbGc7XG5cdFx0Ym94LXNoYWRvdzogJHNoYWRvdy1tZDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRtYXgtd2lkdGg6IDQ1MHB4O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdEBtZWRpYSAobWF4LXdpZHRoOiA5OTJweCkge1xuXHRcdFx0cGFkZGluZzogMi41cmVtO1xuXHRcdH1cblxuXHRcdEBtZWRpYSAobWF4LXdpZHRoOiA1NzZweCkge1xuXHRcdFx0cGFkZGluZzogMnJlbSAxLjVyZW07XG5cdFx0fVxuXHR9XG5cblx0LnByb2Nlc3Npbmctb3ZlcmxheSB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRiYWNrZ3JvdW5kOiAkd2hpdGUtdHAtOTA7XG5cdFx0YmFja2Ryb3AtZmlsdGVyOiBibHVyKDRweCk7XG5cdFx0Ym9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbGc7XG5cdFx0LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoNHB4KTtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHR6LWluZGV4OiAxMDtcblx0XHRjb2xvcjogJG5hdnktZGFyay10ZXh0O1xuXHRcdGdhcDogMXJlbTtcblx0XHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW1lZGl1bTtcblx0XHRmb250LXNpemU6ICRmb250LXNpemUtYmFzZTtcblx0fVxuXG5cdC5zcGlubmVyIHtcblx0XHR3aWR0aDogNDBweDtcblx0XHRoZWlnaHQ6IDQwcHg7XG5cdFx0Ym9yZGVyOiA0cHggc29saWQgJG5hdnktdHAtMjA7XG5cdFx0Ym9yZGVyLXRvcC1jb2xvcjogJGN5YW47XG5cdFx0Ym9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtY2lyY2xlO1xuXHRcdGFuaW1hdGlvbjogc3Bpbm5lci1yb3RhdGlvbiAwLjhzIGxpbmVhciBpbmZpbml0ZTtcblx0fVxuXG5cdC5sb2dpbi1wYW5lbCB7XG5cdFx0LmJ0bjpmb2N1cy12aXNpYmxlLCBhOmZvY3VzLXZpc2libGUge1xuXHRcdFx0b3V0bGluZTogMnB4IHNvbGlkICRjeWFuO1xuXHRcdFx0b3V0bGluZS1vZmZzZXQ6IDJweDtcblx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0fVxuXG5cdFx0QG1lZGlhIChtYXgtd2lkdGg6IDk5MnB4KSB7XG5cdFx0XHRwYWRkaW5nOiAycmVtO1xuXHRcdH1cblxuXHR9XG5cblx0LnRleHQtZGFuZ2VyIHtcblx0XHRjb2xvcjogJHJlZC1kYW5nZXItYWx0O1xuXHRcdGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbWVkaXVtO1xuXHR9XG5cblx0LnRleHQtc3VjY2VzcyB7XG5cdFx0Y29sb3I6ICRncmVlbi1zdWNjZXNzLWFsdDtcblx0XHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW1lZGl1bTtcblx0fVxuXG5cdC50ZXh0LWNlbnRlciB7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR9XG5cblx0LmxvZ2luLXBhbmVsLXRleHQge1xuXHRcdGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1iYXNlO1xuXHRcdGNvbG9yOiAkdGV4dC1tdXRlZDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0bGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1iYXNlO1xuXHRcdG1hcmdpbjogMCBhdXRvIDEuNXJlbSBhdXRvO1xuXHRcdG1heC13aWR0aDogOTAlO1xuXHR9XG5cblx0LnZlcmlmeS1pbnB1dC1jb250YWluZXIge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0Z2FwOiAwLjc1cmVtO1xuXHRcdG1hcmdpbjogMnJlbSBhdXRvO1xuXG5cdFx0aW5wdXQge1xuXHRcdFx0d2lkdGg6IDQ1cHg7XG5cdFx0XHRoZWlnaHQ6IDU1cHg7XG5cdFx0XHRmb250LXNpemU6ICRmb250LXNpemUteGw7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRwYWRkaW5nOiAwLjVyZW07XG5cdFx0XHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXNlbWlib2xkO1xuXHRcdFx0Y29sb3I6ICRuYXZ5LWRhcmstdGV4dDtcblx0XHR9XG5cblx0fVxuXG5cdC5mb3JtLWFjdGlvbnMtY2VudGVyZWQge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRtYXJnaW4tdG9wOiAxLjhyZW07XG5cdFx0Z2FwOiAxcmVtO1xuXHR9XG5cblx0LmZvcm0tZ3JvdXAge1xuXHRcdG1hcmdpbi1ib3R0b206IDEuNXJlbTtcblxuXHRcdGxhYmVsIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0Zm9udC1zaXplOiAwLjk1cmVtO1xuXHRcdFx0Zm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1tZWRpdW07XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwLjZyZW07XG5cdFx0XHRjb2xvcjogJHRleHQtZGFyaztcblx0XHR9XG5cblx0fVxuXG5cdC5mb3JtLWNvbnRyb2wge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdHBhZGRpbmc6IDFyZW0gMS4ycmVtO1xuXHRcdGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1iYXNlO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRncmV5LWJvcmRlci1saWdodDtcblx0XHRib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1zbTtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjNzIGVhc2UsIGJveC1zaGFkb3cgMC4zcyBlYXNlO1xuXHRcdGNvbG9yOiAkdGV4dC1kYXJrO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcblx0XHRmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWY7XG5cblx0XHQmOmZvY3VzIHtcblx0XHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0XHRib3JkZXItY29sb3I6ICRjeWFuO1xuXHRcdFx0Ym94LXNoYWRvdzogMCAwIDAgM3B4ICRjeWFuLXRwLTI1O1xuXHRcdH1cblxuXHR9XG5cblx0LmZvcm0tYWN0aW9ucyB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRnYXA6IDFyZW07XG5cdFx0bWFyZ2luLXRvcDogMS44cmVtO1xuXHR9XG5cblx0LmJ0biB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0bWF4LXdpZHRoOiBub25lO1xuXHRcdHBhZGRpbmc6IDFyZW0gMS41cmVtO1xuXHRcdGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1iYXNlO1xuXHRcdGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0Ym9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtc207XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG5cdFx0bGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcblxuXHRcdEBtZWRpYSAobWF4LXdpZHRoOiA1NzZweCkge1xuXHRcdFx0cGFkZGluZzogMC44cmVtIDFyZW07XG5cdFx0XHRmb250LXNpemU6IDAuOTVyZW07XG5cdFx0fVxuXHR9XG5cblx0LmJ0bi1sb2dpbiB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGN5YW47XG5cdFx0Y29sb3I6ICR3aGl0ZTtcblx0XHRib3gtc2hhZG93OiAkc2hhZG93LWN5YW4tc207XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRjeWFuLWRhcmtlcjtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTtcblx0XHRcdGJveC1zaGFkb3c6ICRzaGFkb3ctY3lhbi1tZDtcblx0XHR9XG5cblx0fVxuXG5cdC5idG4tbG9zdCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0Y29sb3I6ICRuYXZ5LWRhcmstdGV4dDtcblx0XHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXNlbWlib2xkO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRncmV5LWJvcmRlci1tZWRpdW07XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRvcGFjaXR5OiAwLjk7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRuYXZ5LXRwLTA1O1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiAkbmF2eS1kYXJrLXRleHQ7XG5cdFx0XHRjb2xvcjogJG5hdnktZGFyay10ZXh0O1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdGJveC1zaGFkb3c6ICRzaGFkb3ctc207XG5cdFx0fVxuXG5cdH1cblxuXHQuZGV2LXdhcm5pbmcge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICR3YXJuaW5nLWJnO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICR3YXJuaW5nLWJvcmRlcjtcblx0XHRib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1zbTtcblx0XHRwYWRkaW5nOiAxcmVtO1xuXHRcdG1hcmdpbi1ib3R0b206IDEuNXJlbTtcblx0XHRjb2xvcjogJHdhcm5pbmctdGV4dDtcblx0XHRmb250LXNpemU6ICRmb250LXNpemUtc207XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdGJveC1zaGFkb3c6IDAgMnB4IDhweCAkYmxhY2stdHAtMTA7XG5cdH1cblxuXHQubG9naW4tdGl0bGUge1xuXHRcdEBtZWRpYSAobWF4LXdpZHRoOiA1NzZweCkge1xuXHRcdFx0Zm9udC1zaXplOiAxLjZyZW07XG5cdFx0fVxuXHR9XG5cbn1cblxuQGtleWZyYW1lcyBzcGlubmVyLXJvdGF0aW9uIHtcblx0dG8ge1xuXHRcdHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG5cdH1cbn0iLCIuYWJvdXQtcGFnZSB7XG4gICAgLyogT3ZlcnJpZGUgdGhlIHZhcmlhYmxlIGZvciB0aGlzIHNwZWNpZmljIHBhZ2UgKi9cbiAgICAtLXBhZ2UtYmctaW1hZ2U6IHVybCgnaHR0cHM6Ly9jYXR0cmF4LW1lZGlhLnMzLmFwLXNvdXRoZWFzdC0yLmFtYXpvbmF3cy5jb20vaW1hZ2VzL3N1cmdlb25faW1hZ2VfY3JvcHBlZDIuanBnJyk7XG4gICAgLS1wYWdlLWJnLXBvc2l0aW9uOiBjZW50ZXI7XG59XG5cbi5tb2Rlcm4tbG9naW4tcGFnZSB7XG5cbiAgICAuYWJvdXQtc2VjdGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IDRyZW0gJHNlY3Rpb24tcGFkZGluZy14O1xuICAgIH1cblxuICAgIC5hYm91dC1jb250YWluZXIge1xuICAgICAgICBtYXgtd2lkdGg6IDkwMHB4O1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgY29sb3I6ICR3aGl0ZS10cC05MDtcblxuICAgICAgICBwIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xNXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1saWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zZWN0aW9uLXRpdGxlIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICBmb250LXNpemU6IDIuMnJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR3aGl0ZS10cC0yMDtcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIH1cblxuICAgICAgICAuc3Vic2VjdGlvbi10aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUteGw7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXNlbWlib2xkO1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDRyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICB1bCB7XG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMTVyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS42O1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZS10cC04NTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMi41cmVtO1xuXG4gICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDRweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGN5YW47XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN0cm9uZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXNlbWlib2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmltcGFjdC1zZWN0aW9uIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGJsYWNrLXRwLTMwO1xuICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNXB4KTtcbiAgICAgICAgcGFkZGluZzogNHJlbSAkc2VjdGlvbi1wYWRkaW5nLXg7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkd2hpdGUtdHAtMTA7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkd2hpdGUtdHAtMTA7XG4gICAgfVxuXG4gICAgLmltcGFjdC1jb250YWluZXIge1xuICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDAuNWZyKTtcbiAgICAgICAgZ2FwOiAwcmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLmltcGFjdC1jYXJkIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaW1wYWN0LW51bWJlciB7XG4gICAgICAgIGZvbnQtc2l6ZTogMy41cmVtO1xuICAgICAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XG4gICAgICAgIGNvbG9yOiAkY3lhbjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICB0ZXh0LXNoYWRvdzogMCAwIDIwcHggJGN5YW4tdHAtMjA7XG4gICAgfVxuXG4gICAgLmltcGFjdC1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkd2hpdGUtdHAtODA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgICAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XG4gICAgfVxuXG4gICAgLmNsaWVudC1sb2dvcy1zZWN0aW9uIHtcbiAgICAgICAgcGFkZGluZzogM3JlbSAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgfVxuXG4gICAgLmNsaWVudC1sb2dvcy1tYXJxdWVlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFzay1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB0cmFuc3BhcmVudCwgYmxhY2sgMTAlLCBibGFjayA5MCUsIHRyYW5zcGFyZW50KTtcbiAgICAgICAgLXdlYmtpdC1tYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHRyYW5zcGFyZW50LCBibGFjayAxMCUsIGJsYWNrIDkwJSwgdHJhbnNwYXJlbnQpO1xuICAgIH1cblxuICAgIC5jbGllbnQtbG9nb3MtdHJhY2sge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDRyZW07XG4gICAgICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICAgICAgYW5pbWF0aW9uOiBjbGllbnQtbG9nb3Mtc2Nyb2xsIDQwcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBhbmltYXRpb24tcGxheS1zdGF0ZTogcGF1c2VkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNsaWVudC1sb2dvIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBoZWlnaHQ6IDcwcHg7XG4gICAgICAgIG1pbi13aWR0aDogMTUwcHg7XG4gICAgICAgIG9wYWNpdHk6IDAuNjsgXG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA2MHB4O1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxODBweDtcbiAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgY2xpZW50LWxvZ29zLXNjcm9sbCB7XG4gICAgZnJvbSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAubW9kZXJuLWxvZ2luLXBhZ2Uge1xuICAgICAgICAuYWJvdXQtc2VjdGlvbiwgLmltcGFjdC1zZWN0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmltcGFjdC1jb250YWluZXIge1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgICAgICAgICAgZ2FwOiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmltcGFjdC1udW1iZXIge1xuICAgICAgICAgICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2xpZW50LWxvZ29zLXRyYWNrIHtcbiAgICAgICAgICAgIGdhcDogMnJlbTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIucHJpY2luZy1wYWdlIHtcblx0LS1wYWdlLWJnLWltYWdlOiB1cmwoJ2h0dHBzOi8vY2F0dHJheC1tZWRpYS5zMy5hcC1zb3V0aGVhc3QtMi5hbWF6b25hd3MuY29tL2ltYWdlcy9zdXJnZW9uX2ltYWdlX2Nyb3BwZWQyLmpwZycpO1xuXHQtLXBhZ2UtYmctcG9zaXRpb246IGNlbnRlciAxMTAlO1xufVxuXG4ubW9kZXJuLWxvZ2luLXBhZ2Uge1xuXHQucHJpY2luZy1zZWN0aW9uIHtcblx0XHRwYWRkaW5nOiAzcmVtICRzZWN0aW9uLXBhZGRpbmcteDtcblx0fVxuXG5cdC5wcmljaW5nLWdyaWQge1xuXHRcdGRpc3BsYXk6IGdyaWQ7XG5cdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNSwgMWZyKTtcblx0XHRnYXA6IDJyZW07XG5cdFx0bWF4LXdpZHRoOiAxNjAwcHg7XG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0YWxpZ24taXRlbXM6IHN0cmV0Y2g7XG5cblx0XHRAbWVkaWEgKG1pbi13aWR0aDogMTIwMXB4KSB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdFx0Z2FwOiAwO1xuXG5cdFx0XHQucHJpY2luZy1jYXJkIHtcblx0XHRcdFx0d2lkdGg6IGNhbGMoKDEwMCUgLSAxNHJlbSkgLyA1KTtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAyLjVyZW07XG5cblx0XHRcdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmOm50aC1jaGlsZCgyKSB7XG5cdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHRcdG1hcmdpbi1yaWdodDogNC44cmVtO1xuXG5cdFx0XHRcdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdFx0XHR0b3A6IDE1JTtcblx0XHRcdFx0XHRcdGJvdHRvbTogMTUlO1xuXHRcdFx0XHRcdFx0cmlnaHQ6IC0yLjdyZW07XG5cdFx0XHRcdFx0XHR3aWR0aDogMnB4O1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJHdoaXRlLXRwLTIwO1xuXHRcdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMXB4O1xuICAgICAgICBcdFx0XHRcdHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Jjpob3Zlcjo6YWZ0ZXIge1xuXHRcdFx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdCY6bnRoLWNoaWxkKDMpIHtcblx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmOm50aC1jaGlsZCg0KSB7XG5cdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiAyLjhyZW07XG5cdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiA1LjRyZW07XG5cblx0XHRcdFx0XHQmOjphZnRlciB7XG5cdFx0XHRcdFx0XHRjb250ZW50OiAnJztcblx0XHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0XHRcdHRvcDogMTUlO1xuXHRcdFx0XHRcdFx0Ym90dG9tOiAxNSU7XG5cdFx0XHRcdFx0XHRyaWdodDogLTIuNXJlbTtcblx0XHRcdFx0XHRcdHdpZHRoOiAycHg7XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGUtdHAtMjA7XG5cdFx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiAxcHg7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0QG1lZGlhIChtYXgtd2lkdGg6IDE0MDBweCkge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG5cdFx0XHQucHJpY2luZy1jYXJkIHtcblx0XHRcdFx0d2lkdGg6IDQ1JTtcblx0XHRcdFx0bWFyZ2luOiAxcmVtO1xuXG5cdFx0XHRcdCY6bnRoLWNoaWxkKDIpLFxuXHRcdFx0XHQmOm50aC1jaGlsZCgzKSxcblx0XHRcdFx0JjpudGgtY2hpbGQoNCkge1xuXHRcdFx0XHRcdG1hcmdpbi1yaWdodDogMXJlbTtcblx0XHRcdFx0XHRtYXJnaW4tbGVmdDogMXJlbTtcblxuXHRcdFx0XHRcdCY6OmFmdGVyIHtcblx0XHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0QG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG5cdFx0XHRkaXNwbGF5OiBncmlkO1xuXHRcdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG5cblx0XHRcdC5wcmljaW5nLWNhcmQge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5wcmljaW5nLWNhcmQge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRiYWNrZ3JvdW5kOiAkd2hpdGUtdHAtMDU7XG5cdFx0cGFkZGluZzogMi41cmVtIDJyZW07XG5cdFx0Ym9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMteGw7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJHdoaXRlLXRwLTE1O1xuXHRcdHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG5cdFx0YmFja2Ryb3AtZmlsdGVyOiBibHVyKDVweCk7XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7XG5cdFx0XHRiYWNrZ3JvdW5kOiAkd2hpdGUtdHAtMTA7XG5cdFx0XHRib3gtc2hhZG93OiAkc2hhZG93LWxnO1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiAkY3lhbi10cC01MDtcblx0XHR9XG5cblx0XHQmLnBvcHVsYXIge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiAkY3lhbjtcblx0XHRcdGJvcmRlci13aWR0aDogMnB4O1xuXHRcdFx0dHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcblx0XHRcdGJveC1zaGFkb3c6IDAgMTBweCA0MHB4ICRjeWFuLXRwLTIwO1xuXG5cdFx0XHQmOjpiZWZvcmUge1xuXHRcdFx0XHRjb250ZW50OiAnTW9zdCBQb3B1bGFyJztcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IDE4cHg7XG5cdFx0XHRcdHJpZ2h0OiAtMzVweDtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGN5YW47XG5cdFx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0XHRcdHBhZGRpbmc6IDAuNXJlbSAzcmVtO1xuXHRcdFx0XHRmb250LXNpemU6IDAuODVyZW07XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG5cdFx0XHRcdGJveC1zaGFkb3c6IDAgNHB4IDEwcHggJGJsYWNrLXRwLTIwO1xuXHRcdFx0fVxuXG5cdFx0XHRAbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XG5cdFx0XHRcdHRyYW5zZm9ybTogc2NhbGUoMSk7XG5cdFx0XHR9XG5cblx0XHR9XG5cblx0XHQmLnJlY29tbWVuZGVkIHtcblx0XHRcdGJvcmRlci1jb2xvcjogJGN5YW47XG5cdFx0XHRib3JkZXItd2lkdGg6IDJweDtcblx0XHRcdGJveC1zaGFkb3c6IDAgMTBweCA0MHB4ICRjeWFuLXRwLTIwO1xuXHRcdH1cblxuXHRcdC5idG4ge1xuXHRcdFx0bWFyZ2luLXRvcDogYXV0bztcblx0XHR9XG5cblx0fVxuXG5cdC5wcmljaW5nLXJvaSB7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdGZvbnQtc2l6ZTogMC45NXJlbTtcblx0XHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW1lZGl1bTtcblx0XHRjb2xvcjogJHdoaXRlLXRwLTkwO1xuXHRcdGJhY2tncm91bmQ6ICRjeWFuLXRwLTEwO1xuXHRcdHBhZGRpbmc6IDAuOHJlbSAxcmVtO1xuXHRcdGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLXNtO1xuXHRcdG1hcmdpbi1ib3R0b206IDIuNXJlbTtcblx0fVxuXG5cdC5wcmljaW5nLXRpdGxlIHtcblx0XHRmb250LXNpemU6IDEuNXJlbTtcblx0XHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXNlbWlib2xkO1xuXHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0bWFyZ2luOiAwIDAgMXJlbSAwO1xuXHR9XG5cblx0LnByaWNpbmctcHJpY2Uge1xuXHRcdGZvbnQtc2l6ZTogMi44cmVtO1xuXHRcdGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcblx0XHRjb2xvcjogJGN5YW47XG5cdFx0bWFyZ2luLWJvdHRvbTogMC43NXJlbTtcblxuXHRcdC5wcmljZS1wZXJpb2Qge1xuXHRcdFx0Zm9udC1zaXplOiAkZm9udC1zaXplLWJhc2U7XG5cdFx0XHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbDtcblx0XHRcdGNvbG9yOiAkd2hpdGUtdHAtNzA7XG5cdFx0fVxuXG5cdH1cblxuXHQucHJpY2luZy1kZXNjcmlwdGlvbiB7XG5cdFx0Zm9udC1zaXplOiAkZm9udC1zaXplLWJhc2U7XG5cdFx0Y29sb3I6ICR3aGl0ZS10cC04NTtcblx0XHRsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJhc2U7XG5cdFx0bWFyZ2luLWJvdHRvbTogMnJlbTtcblx0fVxuXG5cdC5mZWF0dXJlcy1saXN0IHtcblx0XHRsaXN0LXN0eWxlOiBub25lO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0bWFyZ2luOiAwIDAgMnJlbSAwO1xuXHRcdGZsZXgtZ3JvdzogMTtcblxuXHRcdGxpIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0Z2FwOiAwLjc1cmVtO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMXJlbTtcblx0XHRcdGZvbnQtc2l6ZTogMC45NXJlbTtcblx0XHRcdGNvbG9yOiAkd2hpdGUtdHAtOTA7XG5cblx0XHRcdCYuZGlzYWJsZWQge1xuXHRcdFx0XHRjb2xvcjogJHdoaXRlLXRwLTUwO1xuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcblx0XHRcdH1cblxuXHRcdH1cblxuXHRcdC5mYS1jaGVjay1jaXJjbGUge1xuXHRcdFx0Y29sb3I6ICRncmVlbjtcblx0XHRcdGZvbnQtc2l6ZTogMS4ycmVtO1xuXHRcdH1cblxuXHRcdC5mYS10aW1lcy1jaXJjbGUge1xuXHRcdFx0Y29sb3I6ICR3aGl0ZS10cC00MDtcblx0XHRcdGZvbnQtc2l6ZTogMS4ycmVtO1xuXHRcdH1cblxuXHR9XG5cblx0LmJ0bi1zZWNvbmRhcnkge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJGN5YW47XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRjeWFuO1xuXHRcdFx0Y29sb3I6ICR3aGl0ZTtcblx0XHR9XG5cblx0fVxuXG5cdC8qIEFkZC1vbnM6IGV4dHJhcyBib3VnaHQgb24gdG9wIG9mIGEgcGxhbiByYXRoZXIgdGhhbiBpbnN0ZWFkIG9mIG9uZSwgc28gdGhleSBzaXQgYmVsb3cgdGhlXG5cdCAgIHBsYW4gZ3JpZCBpbiBhIG5hcnJvd2VyIHRocmVlLWFjcm9zcyByb3cgb2YgdGhlaXIgb3duLiAqL1xuXHQuYWRkb24tc2VjdGlvbiB7XG5cdFx0cGFkZGluZzogMXJlbSAkc2VjdGlvbi1wYWRkaW5nLXggNHJlbSAkc2VjdGlvbi1wYWRkaW5nLXg7XG5cdFx0bWF4LXdpZHRoOiAxNjAwcHg7XG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cblx0XHRAbWVkaWEgKG1heC13aWR0aDogNTc2cHgpIHtcblx0XHRcdHBhZGRpbmc6IDFyZW0gJHNlY3Rpb24tcGFkZGluZy14IDNyZW0gJHNlY3Rpb24tcGFkZGluZy14O1xuXHRcdH1cblxuXHR9XG5cblx0LmFkZG9uLWRpdmlkZXIge1xuXHRcdGhlaWdodDogMXB4O1xuXHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQsICR3aGl0ZS10cC0yMCwgdHJhbnNwYXJlbnQpO1xuXHRcdG1hcmdpbi1ib3R0b206IDNyZW07XG5cdH1cblxuXHQuYWRkb24taGVhZGVyIHtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0bWFyZ2luLWJvdHRvbTogM3JlbTtcblxuXHRcdGgyIHtcblx0XHRcdGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS14eGw7XG5cdFx0XHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XG5cdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdFx0bWFyZ2luOiAwIDAgMXJlbSAwO1xuXHRcdH1cblxuXHRcdHAge1xuXHRcdFx0Zm9udC1zaXplOiAkZm9udC1zaXplLWJhc2U7XG5cdFx0XHRjb2xvcjogJHdoaXRlLXRwLTg1O1xuXHRcdFx0bGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1iYXNlO1xuXHRcdFx0bWF4LXdpZHRoOiA4MDBweDtcblx0XHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdH1cblxuXHR9XG5cblx0LyogT25lIGdyb3VwIHBlciBhZGQtb24uIFRoZXJlIGlzIG9ubHkgdHJhbnNjcmlwdGlvbiB0b2RheSwgYnV0IHRoZSBzcGFjaW5nIGlzIHNldCB1cCBzbyBhXG5cdCAgIHNlY29uZCBncm91cCBjYW4gYmUgZHJvcHBlZCBpbiBiZWxvdyB3aXRob3V0IHRvdWNoaW5nIGFueXRoaW5nIGVsc2UuICovXG5cdC8qIE5hcnJvd2VyIHRoYW4gdGhlIHNlY3Rpb24gaXQgc2l0cyBpbjogdGhyZWUgY2FyZHMgc3RyZXRjaGVkIGFjcm9zcyB0aGUgZnVsbCAxNjAwcHggd291bGQgZWFjaFxuXHQgICBlbmQgdXAgd2lkZXIgdGhhbiBhIHBsYW4gY2FyZCBhYm92ZSB0aGVtLiBBdCAxMjAwIHRoZXkgbGFuZCBjbG9zZSB0byBvbmUuICovXG5cdC5hZGRvbi1ncm91cCB7XG5cdFx0bWF4LXdpZHRoOiAxMjAwcHg7XG5cdFx0bWFyZ2luOiAwIGF1dG8gNHJlbSBhdXRvO1xuXG5cdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0fVxuXG5cdH1cblxuXHQuYWRkb24tZ3JvdXAtaGVhZGVyIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXHRcdGdhcDogMS4yNXJlbTtcblx0XHRtYXJnaW4tYm90dG9tOiAycmVtO1xuXG5cdFx0LmFkZG9uLWdyb3VwLWljb24ge1xuXHRcdFx0ZmxleC1zaHJpbms6IDA7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdFx0d2lkdGg6IDU2cHg7XG5cdFx0XHRoZWlnaHQ6IDU2cHg7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1sZztcblx0XHRcdGJhY2tncm91bmQ6ICRjeWFuLXRwLTEwO1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgJGN5YW4tdHAtMzA7XG5cdFx0XHRjb2xvcjogJGN5YW47XG5cdFx0XHRmb250LXNpemU6IDEuNXJlbTtcblx0XHR9XG5cblx0XHRoMyB7XG5cdFx0XHRmb250LXNpemU6ICRmb250LXNpemUtbGc7XG5cdFx0XHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXNlbWlib2xkO1xuXHRcdFx0Y29sb3I6ICR3aGl0ZTtcblx0XHRcdG1hcmdpbjogMCAwIDAuNXJlbSAwO1xuXHRcdH1cblxuXHRcdHAge1xuXHRcdFx0Zm9udC1zaXplOiAwLjk1cmVtO1xuXHRcdFx0Y29sb3I6ICR3aGl0ZS10cC04NTtcblx0XHRcdGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYmFzZTtcblx0XHRcdG1heC13aWR0aDogOTAwcHg7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0fVxuXG5cdFx0QG1lZGlhIChtYXgtd2lkdGg6IDU3NnB4KSB7XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdFx0Z2FwOiAxcmVtO1xuXHRcdH1cblxuXHR9XG5cblx0LmFkZG9uLWdyaWQge1xuXHRcdGRpc3BsYXk6IGdyaWQ7XG5cdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpO1xuXHRcdGdhcDogMnJlbTtcblx0XHRhbGlnbi1pdGVtczogc3RyZXRjaDtcblxuXHRcdC8qIFR3byBhY3Jvc3MgYmVmb3JlIG9uZTogdGhyZWUgY2FyZHMgYXQgdGFibGV0IHdpZHRoIGxlYXZlIG5vIHJvb20gZm9yIHRoZSBmZWF0dXJlIGxpc3RzLiAqL1xuXHRcdEBtZWRpYSAobWF4LXdpZHRoOiAxMjAwcHgpIHtcblx0XHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcblx0XHRcdGdhcDogMS41cmVtO1xuXHRcdH1cblxuXHRcdEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuXHRcdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG5cdFx0fVxuXG5cdH1cblxuXHQuYWRkb24tY2FyZCB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdGJhY2tncm91bmQ6ICR3aGl0ZS10cC0wNTtcblx0XHRwYWRkaW5nOiAycmVtO1xuXHRcdGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLXhsO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICR3aGl0ZS10cC0xNTtcblx0XHR0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuXHRcdGJhY2tkcm9wLWZpbHRlcjogYmx1cig1cHgpO1xuXHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpO1xuXHRcdFx0YmFja2dyb3VuZDogJHdoaXRlLXRwLTEwO1xuXHRcdFx0Ym94LXNoYWRvdzogJHNoYWRvdy1sZztcblx0XHRcdGJvcmRlci1jb2xvcjogJGN5YW4tdHAtNTA7XG5cdFx0fVxuXG5cdFx0Ji5yZWNvbW1lbmRlZCB7XG5cdFx0XHRib3JkZXItY29sb3I6ICRjeWFuO1xuXHRcdFx0Ym9yZGVyLXdpZHRoOiAycHg7XG5cdFx0XHRib3gtc2hhZG93OiAwIDEwcHggNDBweCAkY3lhbi10cC0yMDtcblx0XHR9XG5cblx0XHQvKiBEaWFsbGVkIGJhY2sgZnJvbSB0aGUgcGxhbiBjYXJkcyBhYm92ZTogYW4gYWRkLW9uIG11c3Qgbm90IG91dC1zaG91dCB0aGUgcGxhbiBpdFxuXHRcdCAgIGF0dGFjaGVzIHRvLiAqL1xuXHRcdC5wcmljaW5nLXRpdGxlIHtcblx0XHRcdGZvbnQtc2l6ZTogMS4zNXJlbTtcblx0XHRcdG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG5cdFx0fVxuXG5cdFx0LnByaWNpbmctcHJpY2Uge1xuXHRcdFx0Zm9udC1zaXplOiAyLjRyZW07XG5cdFx0fVxuXG5cdFx0LnByaWNpbmctZGVzY3JpcHRpb24ge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMS41cmVtO1xuXHRcdH1cblxuXHRcdC5mZWF0dXJlcy1saXN0IHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDEuNXJlbTtcblx0XHR9XG5cblx0XHQuYnRuIHtcblx0XHRcdG1hcmdpbi10b3A6IGF1dG87XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG5cblx0fVxuXG5cdC8qIFRoZSB0cmlhbCBpcyBub3QgYSBwYWlkIHRpZXIsIHNvIGl0IGlzIG1hcmtlZCBvdXQgcmF0aGVyIHRoYW4gbGVmdCB0byByZWFkIGFzIGEgdGhpcmRcblx0ICAgcHJpY2UgcG9pbnQuICovXG5cdC5hZGRvbi1jYXJkLnRyaWFsIHtcblx0XHRib3JkZXItY29sb3I6ICRncmVlbi10cC00MDtcblx0XHRiYWNrZ3JvdW5kOiAkZ3JlZW4tdHAtMDg7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJvcmRlci1jb2xvcjogJGdyZWVuLXRwLTcwO1xuXHRcdH1cblxuXHRcdC5wcmljaW5nLXByaWNlIHtcblx0XHRcdGNvbG9yOiAkZ3JlZW47XG5cdFx0fVxuXG5cdH1cblxuXHQvKiBTaXRzIGFib3ZlIHRoZSB0cmlhbCBjYXJkJ3Mgb3duIGJ1dHRvbiwgd2hpY2ggaG9sZHMgdGhlIGJvdHRvbSBzbG90IHNvIGFsbCB0aHJlZSBjYXJkc1xuXHQgICBsaW5lIHVwIGFsb25nIHRoZSBib3R0b20uICovXG5cdC5hZGRvbi1jdGEtbm90ZSB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblx0XHRnYXA6IDAuNnJlbTtcblx0XHRtYXJnaW4tdG9wOiBhdXRvO1xuXHRcdG1hcmdpbi1ib3R0b206IDEuNXJlbTtcblx0XHRwYWRkaW5nOiAwLjlyZW0gMXJlbTtcblx0XHRib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1zbTtcblx0XHRiYWNrZ3JvdW5kOiAkd2hpdGUtdHAtMTA7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJHdoaXRlLXRwLTE1O1xuXHRcdGZvbnQtc2l6ZTogMC44NXJlbTtcblx0XHRsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJhc2U7XG5cdFx0Y29sb3I6ICR3aGl0ZS10cC04NTtcblxuXHRcdGkge1xuXHRcdFx0ZmxleC1zaHJpbms6IDA7XG5cdFx0XHRtYXJnaW4tdG9wOiAwLjJyZW07XG5cdFx0XHRjb2xvcjogJGdyZWVuO1xuXHRcdH1cblxuXHR9XG5cblx0LmFkZG9uLWJhZGdlIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAtMC43NXJlbTtcblx0XHRyaWdodDogMS41cmVtO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRjeWFuO1xuXHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0cGFkZGluZzogMC4zcmVtIDFyZW07XG5cdFx0Ym9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtc207XG5cdFx0Zm9udC1zaXplOiAwLjc1cmVtO1xuXHRcdGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcblx0XHRsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0Ym94LXNoYWRvdzogMCA0cHggMTBweCAkYmxhY2stdHAtMjA7XG5cblx0XHQmLmZyZWUge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGdyZWVuO1xuXHRcdH1cblxuXHR9XG5cbn0iLCIuZmVhdHVyZXMtcGFnZSB7XG5cdC0tcGFnZS1iZy1pbWFnZTogdXJsKCdodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vcGhvdG8tMTUyMjA3MTgyMDA4MS0wMDlmMDEyOWM3MWM/cT04MCZ3PTIwNzAmYXV0bz1mb3JtYXQmZml0PWNyb3AnKTtcblx0LS1wYWdlLWJnLXBvc2l0aW9uOiBjZW50ZXIgODAlO1xufVxuXG4ubW9kZXJuLWxvZ2luLXBhZ2Uge1xuXHQuZmVhdHVyZXMtZ3JpZCB7XG5cdFx0ZGlzcGxheTogZ3JpZDtcblx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuXHRcdGdhcDogMnJlbTtcblxuXHRcdEBtZWRpYSAobWF4LXdpZHRoOiA5OTJweCkge1xuXHRcdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG5cdFx0fVxuXHR9XG5cblx0LmZlYXR1cmVzLW92ZXJ2aWV3IC5mZWF0dXJlcy1ncmlkIHtcblx0XHRkaXNwbGF5OiBncmlkO1xuXHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMzIwcHgsIDFmcikpO1xuXHRcdGdhcDogMnJlbTtcblx0fVxuXG5cdC5mZWF0dXJlLWNhcmQge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRwYWRkaW5nOiAyLjVyZW0gMnJlbTtcblx0XHRiYWNrZ3JvdW5kOiAkd2hpdGUtdHAtMDU7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJHdoaXRlLXRwLTE1O1xuXHRcdGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWxnO1xuXHRcdHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2UsIGJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCk7XG5cdFx0XHRiYWNrZ3JvdW5kOiAkd2hpdGUtdHAtMTA7XG5cdFx0fVxuXG5cdH1cblxuXHQuZmVhdHVyZS1pY29uIHtcblx0XHRmb250LXNpemU6IDIuOHJlbTtcblx0XHRtYXJnaW4tYm90dG9tOiAxLjVyZW07XG5cdFx0Y29sb3I6ICRjeWFuO1xuXHR9XG5cblx0LmZlYXR1cmUtdGl0bGUge1xuXHRcdGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1sZztcblx0XHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXNlbWlib2xkO1xuXHRcdG1hcmdpbjogMCAwIDAuNzVyZW0gMDtcblx0XHRjb2xvcjogJHdoaXRlO1xuXHR9XG5cblx0LmZlYXR1cmUtZGVzY3JpcHRpb24ge1xuXHRcdGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1iYXNlO1xuXHRcdGNvbG9yOiAkd2hpdGUtdHAtODU7XG5cdFx0bGluZS1oZWlnaHQ6IDEuNztcblx0XHRtYXJnaW46IDA7XG5cdH1cblxuXHQuZmluYWwtY3RhLXNlY3Rpb24ge1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRwYWRkaW5nOiA0cmVtICRzZWN0aW9uLXBhZGRpbmcteDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2stdHAtMjA7XG5cdH1cblxuXHQuZmVhdHVyZXMtZGlzY2xhaW1lciB7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdHBhZGRpbmc6IDJyZW0gJHNlY3Rpb24tcGFkZGluZy14IDFyZW0gJHNlY3Rpb24tcGFkZGluZy14O1xuXHRcdG1heC13aWR0aDogODAwcHg7XG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0Zm9udC1zaXplOiAkZm9udC1zaXplLXNtO1xuXHRcdGNvbG9yOiAkd2hpdGUtdHAtNjA7XG5cdFx0bGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1iYXNlO1xuXHR9XG5cblx0LnNlY3Rpb24tdGl0bGUge1xuXHRcdEBtZWRpYSAobWF4LXdpZHRoOiA5OTJweCkge1xuXHRcdFx0Zm9udC1zaXplOiAycmVtO1xuXHRcdH1cblx0fVxuXG59XG5cbi5jb21pbmctc29vbi1iYW5uZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMThweDtcblx0cmlnaHQ6IC0zNXB4O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkeWVsbG93LWN0YTtcblx0Y29sb3I6ICRibGFjaztcblx0cGFkZGluZzogNnB4IDM1cHg7XG5cdGZvbnQtc2l6ZTogMC44cmVtO1xuXHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcblx0Ym94LXNoYWRvdzogMCA0cHggNnB4ICRibGFjay10cC0xMDtcblx0bGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xuXHR6LWluZGV4OiAxMDtcbn0iLCIubW9kZXJuLWxvZ2luLXBhZ2Uge1xuXHQuZGVtby1oZXJvIHtcblx0XHRwYWRkaW5nOiA0cmVtICRzZWN0aW9uLXBhZGRpbmcteCAzcmVtICRzZWN0aW9uLXBhZGRpbmcteDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0XHQuaGVyby10aXRsZSB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAxLjVyZW07XG5cdFx0fVxuXG5cdFx0Lmhlcm8tc3VidGl0bGUge1xuXHRcdFx0bWF4LXdpZHRoOiA4MDBweDtcblx0XHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHR9XG5cblx0XHRAbWVkaWEgKG1heC13aWR0aDogNTc2cHgpIHtcblx0XHRcdHBhZGRpbmc6IDNyZW0gJHNlY3Rpb24tcGFkZGluZy14IDJyZW0gJHNlY3Rpb24tcGFkZGluZy14O1xuXHRcdH1cblxuXHR9XG5cblx0LmRlbW8tc2VjdGlvbiB7XG5cdFx0cGFkZGluZzogM3JlbSAkc2VjdGlvbi1wYWRkaW5nLXg7XG5cblx0XHRAbWVkaWEgKG1heC13aWR0aDogNTc2cHgpIHtcblx0XHRcdHBhZGRpbmc6IDIuNXJlbSAkc2VjdGlvbi1wYWRkaW5nLXg7XG5cdFx0fVxuXHR9XG5cblx0LmRlbW8tY29udGFpbmVyIHtcblx0XHRtYXgtd2lkdGg6IDExMDBweDtcblx0XHRtYXJnaW46IDAgYXV0bztcblx0XHRwYWRkaW5nOiAwIDFyZW07XG5cdH1cblxuXHQudmlkZW8td3JhcHBlciB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XG5cdFx0aGVpZ2h0OiAwO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0Ym9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMteGw7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJHdoaXRlLXRwLTE1O1xuXHRcdGJveC1zaGFkb3c6IDAgMTBweCA0MHB4ICRibGFjay10cC0zMDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG5cblx0XHRpZnJhbWUge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdH1cblxuXHR9XG5cblx0LnNlY3Rpb24tdGl0bGUge1xuXHRcdGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS14eGw7XG5cdFx0Zm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRtYXJnaW4tYm90dG9tOiAxcmVtO1xuXHRcdGNvbG9yOiAkd2hpdGU7XG5cdH1cblxuXHQuc2VjdGlvbi1zdWJ0aXRsZSB7XG5cdFx0Zm9udC1zaXplOiAxLjE1cmVtO1xuXHRcdGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbGlnaHQ7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdG1heC13aWR0aDogNzUwcHg7XG5cdFx0bWFyZ2luOiAwIGF1dG8gMy41cmVtIGF1dG87XG5cdFx0Y29sb3I6ICR3aGl0ZS10cC04NTtcblx0XHRsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJhc2U7XG5cdH1cblxuXHQuZm9ybS1jb250YWluZXIge1xuXHRcdG1heC13aWR0aDogNjUwcHg7XG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuXHRcdGNvbG9yOiAkdGV4dC1kYXJrO1xuXHRcdHBhZGRpbmc6IDNyZW07XG5cdFx0Ym9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbGc7XG5cdFx0Ym94LXNoYWRvdzogJHNoYWRvdy1tZDtcblxuXHRcdEBtZWRpYSAobWF4LXdpZHRoOiA1NzZweCkge1xuXHRcdFx0cGFkZGluZzogMnJlbSAxLjVyZW07XG5cdFx0fVxuXHR9XG5cblx0LmJ0bi1wcmltYXJ5IHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY3lhbjtcblx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdGJveC1zaGFkb3c6ICRzaGFkb3ctY3lhbi1zbTtcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGN5YW4tZGFya2VyO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpO1xuXHRcdFx0Ym94LXNoYWRvdzogJHNoYWRvdy1jeWFuLW1kO1xuXHRcdH1cblxuXHRcdCY6ZGlzYWJsZWQge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGdyZXktZGlzYWJsZWQ7XG5cdFx0XHRjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRcdHRyYW5zZm9ybTogbm9uZTtcblx0XHR9XG5cblx0fVxuXG5cdC5zdWNjZXNzLW1lc3NhZ2Uge1xuXHRcdG1heC13aWR0aDogNjUwcHg7XG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cdFx0cGFkZGluZzogMi41cmVtO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRiYWNrZ3JvdW5kOiAkZ3JlZW4tdHAtMTA7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJGdyZWVuLXRwLTcwO1xuXHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0Ym9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbGc7XG5cblx0XHRoNCB7XG5cdFx0XHRmb250LXNpemU6ICRmb250LXNpemUteGw7XG5cdFx0XHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XG5cdFx0XHRjb2xvcjogJGdyZWVuO1xuXHRcdFx0bWFyZ2luOiAwIDAgMXJlbSAwO1xuXHRcdH1cblxuXHRcdHAge1xuXHRcdFx0Zm9udC1zaXplOiAxLjFyZW07XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJhc2U7XG5cdFx0XHRjb2xvcjogJHdoaXRlLXRwLTkwO1xuXHRcdH1cblxuXHR9XG59XG5cbi5tb2Rlcm4tbW9kYWwtYmFja2Ryb3Age1xuXHRiYWNrZ3JvdW5kOiAkbmF2eS1iYWNrZHJvcDtcblx0YmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuXHQtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbn1cblxuLm1vZGVybi1tb2RhbC13aW5kb3cge1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0cmlnaHQ6IDA7XG5cdGJvdHRvbTogMDtcblx0ei1pbmRleDogMTA1MDtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG5cdC5tb2RhbC1jb250ZW50IHtcblx0XHRtYXJnaW46IDA7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuXHRcdGNvbG9yOiAkdGV4dC1kYXJrO1xuXHRcdGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLXhsO1xuXHRcdGJveC1zaGFkb3c6IDAgMTJweCA0MHB4ICRibGFjay10cC00MDtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRtYXgtd2lkdGg6IDUwMHB4O1xuXHRcdHdpZHRoOiA5MCU7XG5cdFx0cG9pbnRlci1ldmVudHM6IGF1dG87XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KTtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdGFuaW1hdGlvbjogbW9kYWxGYWRlSW4gMC4zcyBlYXNlLW91dCBmb3J3YXJkcztcblx0fVxuXG5cdEBtZWRpYSAobWF4LXdpZHRoOiA1NzZweCkge1xuXHRcdC5tb2RhbC1jb250ZW50IHtcblx0XHRcdHdpZHRoOiA5NSU7XG5cdFx0XHRtYXJnaW46IDFyZW07XG5cdFx0fVxuXHR9XG5cbn1cblxuQGtleWZyYW1lcyBtb2RhbEZhZGVJbiB7XG5cdGZyb20ge1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KTtcblx0fVxuXG5cdHRvIHtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcblx0fVxufVxuXG4ubW9kYWwtaGVhZGVyIHtcblx0cGFkZGluZzogMS41cmVtIDJyZW07XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ3JleS1ib3JkZXItbGlnaHQ7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0YmFja2dyb3VuZC1jb2xvcjogJGdyZXktbW9kYWwtaGVhZGVyO1xuXG5cdEBtZWRpYSAobWF4LXdpZHRoOiA1NzZweCkge1xuXHRcdHBhZGRpbmc6IDEuMnJlbSAxLjVyZW07XG5cdH1cbn1cblxuLm1vZGFsLXRpdGxlIHtcblx0Zm9udC1zaXplOiAxLjY1cmVtO1xuXHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XG5cdGNvbG9yOiAkbmF2eS1kYXJrLXRleHQ7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZy1yaWdodDogMnJlbTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdEBtZWRpYSAobWF4LXdpZHRoOiA1NzZweCkge1xuXHRcdGZvbnQtc2l6ZTogMS40cmVtO1xuXHR9XG59XG5cbi5jbG9zZS1idG4ge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMXJlbTtcblx0cmlnaHQ6IDFyZW07XG5cdGZvbnQtc2l6ZTogMi4ycmVtO1xuXHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWxpZ2h0O1xuXHRjb2xvcjogJHRleHQtY2xvc2UtYnRuO1xuXHRiYWNrZ3JvdW5kOiBub25lO1xuXHRib3JkZXI6IG5vbmU7XG5cdG9wYWNpdHk6IDAuNztcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHR0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZSwgY29sb3IgMC4ycyBlYXNlLCB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xuXHQvLyBBZGRlZCB0cmFuc2Zvcm0gXG5cdCY6aG92ZXIge1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0Y29sb3I6ICR0ZXh0LWRhcms7XG5cdFx0dHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuXHR9XG5cblx0QG1lZGlhIChtYXgtd2lkdGg6IDU3NnB4KSB7XG5cdFx0dG9wOiAwLjhyZW07XG5cdFx0cmlnaHQ6IDAuOHJlbTtcblx0XHRmb250LXNpemU6IDJyZW07XG5cdH1cblxufVxuXG4ubW9kYWwtYm9keSB7XG5cdHBhZGRpbmc6IDIuNXJlbSAycmVtO1xuXG5cdC5mb3JtLWdyb3VwIHtcblx0XHRtYXJnaW4tYm90dG9tOiAxLjVyZW07XG5cdH1cblxuXHQuZm9ybS1jb250cm9sOmZvY3VzIHtcblx0XHRib3JkZXItY29sb3I6ICRjeWFuO1xuXHRcdGJveC1zaGFkb3c6IDAgMCAwIDNweCAkY3lhbi10cC0yNTtcblx0fVxuXG5cdC5idG4tcHJpbWFyeSB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0cGFkZGluZzogMS4xcmVtO1xuXHRcdGZvbnQtc2l6ZTogMS4xcmVtO1xuXHRcdGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcblx0XHRib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1tZDtcblx0XHRtYXJnaW4tdG9wOiAwLjVyZW07XG5cdH1cblxuXHRAbWVkaWEgKG1heC13aWR0aDogNTc2cHgpIHtcblx0XHRwYWRkaW5nOiAxLjhyZW0gMS41cmVtO1xuXG5cdFx0LmJ0bi1wcmltYXJ5IHtcblx0XHRcdHBhZGRpbmc6IDFyZW07XG5cdFx0XHRmb250LXNpemU6ICRmb250LXNpemUtYmFzZTtcblx0XHR9XG5cdH1cblxufVxuXG4ubW9kYWwtc3VidGl0bGUge1xuXHRmb250LXNpemU6IDEuMDVyZW07XG5cdGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbGlnaHQ7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0bWFyZ2luLWJvdHRvbTogMnJlbTtcblx0Y29sb3I6ICR0ZXh0LW11dGVkO1xuXHRsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJhc2U7XG5cblx0QG1lZGlhIChtYXgtd2lkdGg6IDU3NnB4KSB7XG5cdFx0Zm9udC1zaXplOiAwLjk1cmVtO1xuXHR9XG59XG5cbi5tb2RhbC1zdWNjZXNzIHtcblx0YmFja2dyb3VuZDogJGdyZWVuLXRwLTA4O1xuXHRib3JkZXI6IDFweCBzb2xpZCAkZ3JlZW4tdHAtNDA7XG5cdGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLW1kO1xuXHRwYWRkaW5nOiAxLjVyZW07XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0bWFyZ2luLXRvcDogMS41cmVtO1xuXHRjb2xvcjogJHRleHQtZGFyaztcblxuXHRoNCB7XG5cdFx0Zm9udC1zaXplOiAxLjZyZW07XG5cdFx0Zm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuXHRcdGNvbG9yOiAkZ3JlZW47XG5cdFx0bWFyZ2luOiAwIDAgMC44cmVtIDA7XG5cblx0XHRAbWVkaWEgKG1heC13aWR0aDogNTc2cHgpIHtcblx0XHRcdGZvbnQtc2l6ZTogMS40cmVtO1xuXHRcdH1cblx0fVxuXG5cdHAge1xuXHRcdGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1iYXNlO1xuXHRcdGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYmFzZTtcblx0XHRjb2xvcjogJHRleHQtbGlnaHQ7XG5cdH1cblxuXHQuZmEtY2hlY2stY2lyY2xlIHtcblx0XHRtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG5cdFx0Y29sb3I6ICRncmVlbjtcblx0XHRmb250LXNpemU6ICRmb250LXNpemUteGw7XG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0fVxufVxuXG4vKiBTaXRzIGFib3ZlIHRoZSBzdWJtaXQgYnV0dG9uIHJhdGhlciB0aGFuIHJlcGxhY2luZyB0aGUgZm9ybSwgYmVjYXVzZSB0aGUgZGV0YWlscyBhcmUgc3RpbGxcbiAgIGZpbGxlZCBpbiBhbmQgcmV0cnlpbmcgaXMgdXN1YWxseSBhbGwgdGhhdCBpcyBuZWVkZWQuICovXG4ubW9kYWwtZXJyb3Ige1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblx0Z2FwOiAwLjc1cmVtO1xuXHRiYWNrZ3JvdW5kOiByZ2JhKDE2OSwgNjgsIDY2LCAwLjA4KTtcblx0Ym9yZGVyOiAxcHggc29saWQgcmdiYSgxNjksIDY4LCA2NiwgMC40KTtcblx0Ym9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbWQ7XG5cdHBhZGRpbmc6IDFyZW0gMS4yNXJlbTtcblx0bWFyZ2luLWJvdHRvbTogMS4yNXJlbTtcblx0Zm9udC1zaXplOiAkZm9udC1zaXplLXNtO1xuXHRsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJhc2U7XG5cdGNvbG9yOiAkZGFuZ2VyO1xuXG5cdGkge1xuXHRcdGZsZXgtc2hyaW5rOiAwO1xuXHRcdG1hcmdpbi10b3A6IDAuMTVyZW07XG5cdFx0Zm9udC1zaXplOiAkZm9udC1zaXplLWJhc2U7XG5cdH1cbn0iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiAhIFNlYXQgbW9kYWxzIChwcmljaW5nIHBhZ2UgYWRkLW9ucylcbi8qXG4vKiBUaGUgdHdvIG1vZGFscyBvcGVuZWQgZnJvbSB0aGUgQUkgdHJhbnNjcmlwdGlvbiBhZGQtb24gY2FyZHM6IGJ1eWluZyBzZWF0cywgYW5kIGhhbmRpbmcgdGhlbVxuLyogb3V0LiBCb3RoIHNoYXJlIHRoZSBjaHJvbWUgKC5tb2RhbC1oZWFkZXIsIC5tb2RhbC1ib2R5LCAubW9kYWwtdGl0bGUsIC5jbG9zZS1idG4pIHdpdGggdGhlXG4vKiBib29rLWEtZGVtbyBtb2RhbCBpbiBfd2Vic2l0ZV9ib29rX2RlbW8uY3NzLCBhbmQgdGhlIGFzc2lnbiBtb2RhbCByZXVzZXMgdGhlIHRhYmxlLCBhdmF0YXIgYW5kXG4vKiB0aWVyIHNlbGVjdG9yIHN0eWxpbmcgZnJvbSBfdHJhbnNjcmlwdGlvbi1zZWF0cy5jc3MuIE9ubHkgd2hhdCBpcyBzcGVjaWZpYyB0byB0aGVzZSB0d28gbGl2ZXNcbi8qIGhlcmUuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIEJvdGggYXJlIHdpZGVyIHRoYW4gdGhlIHNoYXJlZCA1MDBweCBkZW1vIG1vZGFsOiB0aGUgcHVyY2hhc2Ugc3RlcCBjYXJyaWVzIHR3byB0aWVyIGNhcmRzLCBhXG4gICBzdGVwcGVyIGVhY2ggYW5kIGEgcHJpY2VkIHN1bW1hcnksIGFuZCB0aGUgYXNzaWduIG1vZGFsIGNhcnJpZXMgYSB0YWJsZSBvZiB0aGUgd2hvbGUgcHJhY3RpY2UuXG4gICBDYXBwZWQgYXQgdGhlIHZpZXdwb3J0IHdpdGggdGhlIGJvZHkgc2Nyb2xsaW5nIGluc2lkZSwgYmVjYXVzZSBib3RoIHJ1biBvZmYgYSBsYXB0b3Agc2NyZWVuLiAqL1xuLnNlYXQtcHVyY2hhc2Utd2luZG93LFxuLnNlYXQtYXNzaWduLXdpbmRvdyB7XG5cdC5tb2RhbC1jb250ZW50IHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0bWF4LWhlaWdodDogOTB2aDtcblx0fVxufVxuXG4uc2VhdC1wdXJjaGFzZS13aW5kb3cge1xuXHQubW9kYWwtY29udGVudCB7XG5cdFx0bWF4LXdpZHRoOiA3MjBweDtcblx0fVxufVxuXG4uc2VhdC1hc3NpZ24td2luZG93IHtcblx0Lm1vZGFsLWNvbnRlbnQge1xuXHRcdG1heC13aWR0aDogOTAwcHg7XG5cdH1cbn1cblxuLnNlYXQtcHVyY2hhc2UtbW9kYWwge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRtaW4taGVpZ2h0OiAwO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0Lm1vZGFsLWhlYWRlciB7XG5cdFx0ZmxleC1zaHJpbms6IDA7XG5cdH1cblxuXHQvKiBtaW4taGVpZ2h0IG92ZXJyaWRlcyB0aGUgbWluLWNvbnRlbnQgZmxvb3IgYSBmbGV4IGl0ZW0gZ2V0cyBieSBkZWZhdWx0LCB3aXRob3V0IHdoaWNoIHRoZVxuXHQgICBib2R5IHJlZnVzZXMgdG8gc2hyaW5rIGFuZCBzY3JvbGxzIHRoZSB3aG9sZSBwYWdlIGluc3RlYWQgb2YgaXRzZWxmLiAqL1xuXHQubW9kYWwtYm9keSB7XG5cdFx0bWluLWhlaWdodDogMDtcblx0XHRvdmVyZmxvdy15OiBhdXRvO1xuXHR9XG5cblx0LyogRXZlcnkgc3RlcCBpbiBoZXJlIGlzIGEgc2VydmVyIHJvdW5kIHRyaXAgLSBzaWduaW5nIGluLCBwcmljaW5nLCBjaGFyZ2luZyBhIGNhcmQgLSBzbyB0aGVcblx0ICAgd2hvbGUgbW9kYWwgaXMgYmxvY2tlZCByYXRoZXIgdGhhbiBlYWNoIGNvbnRyb2wgZGlzYWJsZWQgb25lIGF0IGEgdGltZS4gKi9cblx0LnNlYXQtcHVyY2hhc2Utb3ZlcmxheSB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogMDtcblx0XHRsZWZ0OiAwO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRnYXA6IDFyZW07XG5cdFx0ei1pbmRleDogMTA7XG5cdFx0YmFja2dyb3VuZDogJHdoaXRlLXRwLTkwO1xuXHRcdGJhY2tkcm9wLWZpbHRlcjogYmx1cig0cHgpO1xuXHRcdC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDRweCk7XG5cdFx0Y29sb3I6ICRuYXZ5LWRhcmstdGV4dDtcblx0XHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW1lZGl1bTtcblx0fVxuXG5cdC5zcGlubmVyIHtcblx0XHR3aWR0aDogNDBweDtcblx0XHRoZWlnaHQ6IDQwcHg7XG5cdFx0Ym9yZGVyOiA0cHggc29saWQgJG5hdnktdHAtMjA7XG5cdFx0Ym9yZGVyLXRvcC1jb2xvcjogJGN5YW47XG5cdFx0Ym9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtY2lyY2xlO1xuXHRcdGFuaW1hdGlvbjogc3Bpbm5lci1yb3RhdGlvbiAwLjhzIGxpbmVhciBpbmZpbml0ZTtcblx0fVxuXG5cdC5zZWF0LXB1cmNoYXNlLWRldi13YXJuaW5nIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0Z2FwOiAwLjI1cmVtO1xuXHRcdHBhZGRpbmc6IDAuNzVyZW0gMXJlbTtcblx0XHRtYXJnaW4tYm90dG9tOiAxLjVyZW07XG5cdFx0Ym9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbWQ7XG5cdFx0YmFja2dyb3VuZDogJHllbGxvdy10cC0xMDtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAkeWVsbG93LXRwLTUwO1xuXHRcdGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbTtcblx0XHRjb2xvcjogJHdhcm5pbmctdGV4dDtcblxuXHRcdHN0cm9uZyB7XG5cdFx0XHRsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuXHRcdH1cblx0fVxuXG5cdC5zZWF0LXB1cmNoYXNlLWZvb3Rub3RlIHtcblx0XHRtYXJnaW46IDEuNXJlbSAwIDAgMDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0Zm9udC1zaXplOiAkZm9udC1zaXplLXNtO1xuXHRcdGNvbG9yOiAkdGV4dC1tdXRlZDtcblxuXHRcdGEge1xuXHRcdFx0Y29sb3I6ICRjeWFuLWRhcms7XG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXNlbWlib2xkO1xuXHRcdH1cblx0fVxuXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cdC8qIFR3by1mYWN0b3IgY29kZSBib3hlc1xuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXHQuc2VhdC1jb2RlLWlucHV0cyB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRnYXA6IDAuNnJlbTtcblx0XHRtYXJnaW46IDEuNXJlbSAwIDAuNXJlbSAwO1xuXG5cdFx0LmZvcm0tY29udHJvbCB7XG5cdFx0XHR3aWR0aDogNDhweDtcblx0XHRcdGhlaWdodDogNTZweDtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRmb250LXNpemU6IDEuNnJlbTtcblx0XHRcdGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcblx0XHRcdGNvbG9yOiAkbmF2eS1kYXJrLXRleHQ7XG5cdFx0fVxuXG5cdFx0QG1lZGlhIChtYXgtd2lkdGg6IDU3NnB4KSB7XG5cdFx0XHRnYXA6IDAuMzVyZW07XG5cblx0XHRcdC5mb3JtLWNvbnRyb2wge1xuXHRcdFx0XHR3aWR0aDogNDBweDtcblx0XHRcdFx0aGVpZ2h0OiA0OHB4O1xuXHRcdFx0XHRmb250LXNpemU6IDEuM3JlbTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXHQvKiBQcmFjdGljZSBwaWNrZXJcblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblx0LnNlYXQtcHJhY3RpY2UtbGlzdCB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdGdhcDogMC43NXJlbTtcblx0fVxuXG5cdC5zZWF0LXByYWN0aWNlLW9wdGlvbiB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRnYXA6IDFyZW07XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0cGFkZGluZzogMXJlbSAxLjI1cmVtO1xuXHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0YmFja2dyb3VuZDogJGdyZXktbW9kYWwtaGVhZGVyO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRncmV5LWJvcmRlci1saWdodDtcblx0XHRib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1tZDtcblx0XHRjb2xvcjogJHRleHQtZGFyaztcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0dHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnMgZWFzZSwgYmFja2dyb3VuZCAwLjJzIGVhc2U7XG5cblx0XHQmOmhvdmVyOm5vdChbZGlzYWJsZWRdKSB7XG5cdFx0XHRib3JkZXItY29sb3I6ICRjeWFuO1xuXHRcdFx0YmFja2dyb3VuZDogJGN5YW4tdHAtMDU7XG5cdFx0fVxuXG5cdFx0LyogVGhlIG9uZSBhbHJlYWR5IGxvYWRlZCwgc28gc3dpdGNoaW5nIGF3YXkgYW5kIGJhY2sgaXMgbm90IGEgZ3Vlc3MuICovXG5cdFx0Ji5jdXJyZW50IHtcblx0XHRcdGJvcmRlci1jb2xvcjogJGN5YW47XG5cdFx0XHRiYWNrZ3JvdW5kOiAkY3lhbi10cC0wNTtcblx0XHR9XG5cblx0XHQuc2VhdC1wcmFjdGljZS1uYW1lIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdFx0Zm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1zZW1pYm9sZDtcblx0XHR9XG5cblx0XHQuc2VhdC1wcmFjdGljZS1jdXJyZW50IHtcblx0XHRcdGZvbnQtc2l6ZTogMC43NXJlbTtcblx0XHRcdGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsO1xuXHRcdFx0Y29sb3I6ICRjeWFuLWRhcms7XG5cdFx0fVxuXG5cdFx0aSB7XG5cdFx0XHRjb2xvcjogJGN5YW47XG5cdFx0fVxuXHR9XG5cblx0LyogTmFtZXMgdGhlIHByYWN0aWNlIGJlaW5nIHdvcmtlZCBvbiwgYW5kIGNhcnJpZXMgdGhlIHdheSB0byBzd2FwIHRvIGFub3RoZXIuIFNpdHMgYXQgdGhlIHRvcFxuXHQgICBvZiBib3RoIG1vZGFsczogYSBncm91cCBzZXR0aW5nIHVwIHNldmVyYWwgbmVlZHMgdG8gc2VlIHdoaWNoIG9uZSBpdCBpcyBvbiBiZWZvcmUgaXQgcmVhZHNcblx0ICAgYW55dGhpbmcgYmVsb3cuICovXG5cdC5zZWF0LXByYWN0aWNlLWJhciB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRnYXA6IDFyZW07XG5cdFx0cGFkZGluZzogMC43NXJlbSAxcmVtO1xuXHRcdG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG5cdFx0Ym9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbWQ7XG5cdFx0YmFja2dyb3VuZDogJG5hdnktdHAtMDU7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJGdyZXktYm9yZGVyLWxpZ2h0O1xuXG5cdFx0LmJ0biB7XG5cdFx0XHRmbGV4LXNocmluazogMDtcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdHBhZGRpbmc6IDAuNHJlbSAwLjlyZW07XG5cdFx0XHRmb250LXNpemU6IDAuNzVyZW07XG5cdFx0XHR3aWR0aDogYXV0bztcblx0XHR9XG5cblx0XHRAbWVkaWEgKG1heC13aWR0aDogNTc2cHgpIHtcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0XHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblx0XHRcdGdhcDogMC42cmVtO1xuXHRcdH1cblx0fVxuXG5cdC5zZWF0LXByYWN0aWNlLWJhci1sYWJlbCB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGdhcDogMC42cmVtO1xuXHRcdG1pbi13aWR0aDogMDtcblx0XHRmb250LXNpemU6ICRmb250LXNpemUtc207XG5cdFx0Y29sb3I6ICR0ZXh0LW11dGVkO1xuXG5cdFx0c3Ryb25nIHtcblx0XHRcdGNvbG9yOiAkbmF2eS1kYXJrLXRleHQ7XG5cdFx0fVxuXG5cdFx0aSB7XG5cdFx0XHRjb2xvcjogJG5hdnk7XG5cdFx0fVxuXHR9XG5cblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblx0LyogQnV5aW5nXG5cdC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cdC5zZWF0LXB1cmNoYXNlLWxvYWRpbmcge1xuXHRcdHBhZGRpbmc6IDIuNXJlbSAwO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRjb2xvcjogJHRleHQtbXV0ZWQ7XG5cblx0XHRpIHtcblx0XHRcdG1hcmdpbi1yaWdodDogMC41cmVtO1xuXHRcdFx0Y29sb3I6ICRjeWFuO1xuXHRcdH1cblx0fVxuXG5cdC5zZWF0LXB1cmNoYXNlLXRpZXJzIHtcblx0XHRkaXNwbGF5OiBncmlkO1xuXHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcblx0XHRnYXA6IDFyZW07XG5cdFx0bWFyZ2luLWJvdHRvbTogMS41cmVtO1xuXG5cdFx0QG1lZGlhIChtYXgtd2lkdGg6IDU3NnB4KSB7XG5cdFx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcblx0XHR9XG5cdH1cblxuXHQvKiBUaGUgdGllciB3aG9zZSBidXR0b24gd2FzIGNsaWNrZWQgb24gdGhlIHByaWNpbmcgcGFnZSwgc28gdGhlIHZpc2l0b3IgY2FuIHNlZSB0aGF0IHRoZVxuXHQgICBtb2RhbCBvcGVuZWQgb24gdGhlIHNlYXQgdGhleSBhY3R1YWxseSBhc2tlZCBmb3IuICovXG5cdC5zZWF0LXB1cmNoYXNlLXRpZXIge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRnYXA6IDAuNnJlbTtcblx0XHRwYWRkaW5nOiAxLjI1cmVtO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRncmV5LWJvcmRlci1saWdodDtcblx0XHRib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1tZDtcblx0XHRiYWNrZ3JvdW5kOiAkd2hpdGU7XG5cblx0XHQmLnNlbGVjdGVkIHtcblx0XHRcdGJvcmRlci1jb2xvcjogJGN5YW47XG5cdFx0XHRib3gtc2hhZG93OiAwIDAgMCAzcHggJGN5YW4tdHAtMTA7XG5cdFx0fVxuXHR9XG5cblx0LnNlYXQtcHVyY2hhc2UtdGllci1oZWFkIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdFx0Z2FwOiAwLjVyZW07XG5cblx0XHRoNCB7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRmb250LXNpemU6IDEuMXJlbTtcblx0XHRcdGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcblx0XHRcdGNvbG9yOiAkbmF2eS1kYXJrLXRleHQ7XG5cdFx0fVxuXHR9XG5cblx0LnNlYXQtcHVyY2hhc2UtdGllci1wcmljZSB7XG5cdFx0Zm9udC1zaXplOiAxLjE1cmVtO1xuXHRcdGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcblx0XHRjb2xvcjogJG5hdnk7XG5cdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuXHRcdHNtYWxsIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0Zm9udC1zaXplOiAwLjdyZW07XG5cdFx0XHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbDtcblx0XHRcdGNvbG9yOiAkdGV4dC1tdXRlZDtcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdH1cblx0fVxuXG5cdC5zZWF0LXB1cmNoYXNlLXRpZXItaW5jbHVkZWQge1xuXHRcdG1hcmdpbjogMDtcblx0XHRmb250LXNpemU6ICRmb250LXNpemUtc207XG5cdFx0Y29sb3I6ICR0ZXh0LWxpZ2h0O1xuXHR9XG5cblx0LnNlYXQtcHVyY2hhc2UtdGllci1zdGF0ZSB7XG5cdFx0Zm9udC1zaXplOiAwLjhyZW07XG5cdFx0Y29sb3I6ICR0ZXh0LW11dGVkO1xuXHR9XG5cblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblx0LyogUHJpY2VkIHN1bW1hcnkuIEV2ZXJ5IGZpZ3VyZSBpbiBoZXJlIGNvbWVzIGJhY2sgZnJvbSB0aGUgc2VydmVyLlxuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXHQuc2VhdC1wdXJjaGFzZS1zdW1tYXJ5IHtcblx0XHRwYWRkaW5nOiAxLjI1cmVtO1xuXHRcdG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG5cdFx0Ym9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbWQ7XG5cdFx0YmFja2dyb3VuZDogJGdyZXktbW9kYWwtaGVhZGVyO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRncmV5LWJvcmRlci1saWdodDtcblx0fVxuXG5cdC5zZWF0LXB1cmNoYXNlLXN1bW1hcnktbG9hZGluZyxcblx0LnNlYXQtcHVyY2hhc2Utc3VtbWFyeS1lbXB0eSB7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbTtcblx0XHRjb2xvcjogJHRleHQtbXV0ZWQ7XG5cblx0XHRpIHtcblx0XHRcdG1hcmdpbi1yaWdodDogMC40cmVtO1xuXHRcdFx0Y29sb3I6ICRjeWFuO1xuXHRcdH1cblx0fVxuXG5cdC5zZWF0LXB1cmNoYXNlLWxpbmUge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdGdhcDogMXJlbTtcblx0XHRwYWRkaW5nOiAwLjRyZW0gMDtcblx0XHRmb250LXNpemU6ICRmb250LXNpemUtc207XG5cdFx0Y29sb3I6ICR0ZXh0LWxpZ2h0O1xuXG5cdFx0c21hbGwge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRmb250LXNpemU6IDAuNzVyZW07XG5cdFx0XHRjb2xvcjogJHRleHQtbXV0ZWQ7XG5cdFx0fVxuXG5cdFx0c3Ryb25nIHtcblx0XHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0XHRjb2xvcjogJG5hdnktZGFyay10ZXh0O1xuXHRcdH1cblxuXHRcdCYudG90YWwge1xuXHRcdFx0bWFyZ2luLXRvcDogMC40cmVtO1xuXHRcdFx0cGFkZGluZy10b3A6IDAuNzVyZW07XG5cdFx0XHRib3JkZXItdG9wOiAxcHggc29saWQgJGdyZXktYm9yZGVyLWxpZ2h0O1xuXHRcdFx0Zm9udC1zaXplOiAkZm9udC1zaXplLWJhc2U7XG5cdFx0XHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXNlbWlib2xkO1xuXHRcdFx0Y29sb3I6ICRuYXZ5LWRhcmstdGV4dDtcblx0XHR9XG5cblx0XHQmLmR1ZSB7XG5cdFx0XHRtYXJnaW4tdG9wOiAwLjVyZW07XG5cdFx0XHRwYWRkaW5nOiAwLjc1cmVtO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtc207XG5cdFx0XHRiYWNrZ3JvdW5kOiAkY3lhbi10cC0xMDtcblxuXHRcdFx0c3Ryb25nIHtcblx0XHRcdFx0Y29sb3I6ICRjeWFuLWRhcms7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LnNlYXQtcHVyY2hhc2UtbmV4dCB7XG5cdFx0bWFyZ2luOiAwLjc1cmVtIDAgMCAwO1xuXHRcdGZvbnQtc2l6ZTogMC44cmVtO1xuXHRcdGNvbG9yOiAkdGV4dC1tdXRlZDtcblx0fVxuXG5cdC5zZWF0LXB1cmNoYXNlLWNhcmRzIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0Z2FwOiAwLjZyZW07XG5cdFx0bWFyZ2luLWJvdHRvbTogMS4yNXJlbTtcblx0fVxuXG5cdC5zZWF0LXB1cmNoYXNlLWNhcmQge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRnYXA6IDAuOXJlbTtcblx0XHRwYWRkaW5nOiAwLjhyZW0gMXJlbTtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAkZ3JleS1ib3JkZXItbGlnaHQ7XG5cdFx0Ym9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbWQ7XG5cdFx0YmFja2dyb3VuZDogJHdoaXRlO1xuXHRcdGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbTtcblx0XHRjb2xvcjogJHRleHQtbXV0ZWQ7XG5cblx0XHQ+IGkge1xuXHRcdFx0ZmxleC1zaHJpbms6IDA7XG5cdFx0XHRmb250LXNpemU6IDEuMXJlbTtcblx0XHRcdGNvbG9yOiAkbmF2eTtcblx0XHR9XG5cblx0XHQuYnRuIHtcblx0XHRcdGZsZXgtc2hyaW5rOiAwO1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0cGFkZGluZzogMC40cmVtIDAuOXJlbTtcblx0XHRcdGZvbnQtc2l6ZTogMC43NXJlbTtcblx0XHRcdHdpZHRoOiBhdXRvO1xuXHRcdH1cblxuXHRcdEBtZWRpYSAobWF4LXdpZHRoOiA1NzZweCkge1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdH1cblx0fVxuXG5cdC8qIFRoZSBsYWJlbCBhbmQgdGhlIGNhcmQgaXRzZWxmIHN0YWNrLCBhbmQgdGFrZSB3aGF0ZXZlciB3aWR0aCBpcyBsZWZ0IG9uY2UgdGhlIGljb24gYW5kIHRoZVxuXHQgICBjaGFuZ2UgYnV0dG9uIGhhdmUgaGFkIHRoZWlycy4gKi9cblx0LnNlYXQtcHVyY2hhc2UtY2FyZC1kZXRhaWwge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRmbGV4OiAxIDEgYXV0bztcblx0XHRtaW4td2lkdGg6IDA7XG5cblx0XHRzdHJvbmcge1xuXHRcdFx0Y29sb3I6ICRuYXZ5LWRhcmstdGV4dDtcblx0XHR9XG5cdH1cblxuXHQuc2VhdC1wdXJjaGFzZS1ub3RlIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0Z2FwOiAwLjc1cmVtO1xuXHRcdHBhZGRpbmc6IDAuOXJlbSAxLjFyZW07XG5cdFx0bWFyZ2luLWJvdHRvbTogMS4yNXJlbTtcblx0XHRib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1tZDtcblx0XHRmb250LXNpemU6ICRmb250LXNpemUtc207XG5cdFx0bGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1iYXNlO1xuXG5cdFx0aSB7XG5cdFx0XHRmbGV4LXNocmluazogMDtcblx0XHR9XG5cblx0XHQuYnRuIHtcblx0XHRcdGZsZXgtc2hyaW5rOiAwO1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0cGFkZGluZzogMC40cmVtIDAuOXJlbTtcblx0XHRcdGZvbnQtc2l6ZTogMC43NXJlbTtcblx0XHRcdHdpZHRoOiBhdXRvO1xuXHRcdH1cblxuXHRcdCYuaW5mbyB7XG5cdFx0XHRiYWNrZ3JvdW5kOiAkbmF2eS10cC0wNTtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICRncmV5LWJvcmRlci1saWdodDtcblx0XHRcdGNvbG9yOiAkdGV4dC1saWdodDtcblxuXHRcdFx0aSB7XG5cdFx0XHRcdGNvbG9yOiAkbmF2eTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLndhcm5pbmcge1xuXHRcdFx0YmFja2dyb3VuZDogJHllbGxvdy10cC0xMDtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICR5ZWxsb3ctdHAtNTA7XG5cdFx0XHRjb2xvcjogJHdhcm5pbmctdGV4dDtcblx0XHR9XG5cblx0XHQmLnN1Y2Nlc3Mge1xuXHRcdFx0YmFja2dyb3VuZDogJGdyZWVuLXRwLTA4O1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgJGdyZWVuLXRwLTQwO1xuXHRcdFx0Y29sb3I6ICR0ZXh0LWRhcms7XG5cblx0XHRcdGkge1xuXHRcdFx0XHRjb2xvcjogJGdyZWVuO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5zZWF0LXB1cmNoYXNlLXZhbGlkYXRpb24ge1xuXHRcdG1hcmdpbi1ib3R0b206IDFyZW07XG5cdFx0Zm9udC1zaXplOiAkZm9udC1zaXplLXNtO1xuXHRcdGNvbG9yOiAkZGFuZ2VyO1xuXG5cdFx0aSB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDAuNHJlbTtcblx0XHR9XG5cdH1cblxuXHQuc2VhdC1wdXJjaGFzZS1zdHJpcGUge1xuXHRcdHBhZGRpbmc6IDFyZW07XG5cdFx0bWFyZ2luLWJvdHRvbTogMS4yNXJlbTtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAkZ3JleS1ib3JkZXItbGlnaHQ7XG5cdFx0Ym9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbWQ7XG5cdFx0YmFja2dyb3VuZDogJHdoaXRlO1xuXHR9XG5cblx0LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblx0LyogQnV0dG9uc1xuXHQvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC8qIC5tb2RhbC1ib2R5IGluIF93ZWJzaXRlX2Jvb2tfZGVtby5jc3Mgc2l6ZXMgdGhlIHByaW1hcnkgQ1RBLCBidXQgaXRzIGNvbG91ciBpcyBkZWNsYXJlZFxuXHQgICBpbnNpZGUgLm1vZGVybi1sb2dpbi1wYWdlIC0gYW5kIGEgbW9kYWwgYXBwZW5kZWQgdG8gdGhlIGJvZHkgc2l0cyBvdXRzaWRlIHRoYXQuIFJlc3RhdGVkXG5cdCAgIGhlcmUgc28gdGhlIENUQSBtYXRjaGVzIHRoZSBwcmljaW5nIHBhZ2UgaXQgd2FzIGNsaWNrZWQgZnJvbS4gKi9cblx0LmJ0bi1wcmltYXJ5IHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY3lhbjtcblx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdGJvcmRlcjogbm9uZTtcblx0XHRib3gtc2hhZG93OiAkc2hhZG93LWN5YW4tc207XG5cblx0XHQmOmhvdmVyOm5vdChbZGlzYWJsZWRdKSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY3lhbi1kYXJrZXI7XG5cdFx0XHRib3gtc2hhZG93OiAkc2hhZG93LWN5YW4tbWQ7XG5cdFx0fVxuXG5cdFx0JltkaXNhYmxlZF0ge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGdyZXktZGlzYWJsZWQ7XG5cdFx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdFx0Y3Vyc29yOiBub3QtYWxsb3dlZDtcblx0XHR9XG5cdH1cblxuXHQuYnRuLW91dGxpbmUtY3lhbiB7XG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJGN5YW47XG5cdFx0Y29sb3I6ICRjeWFuLWRhcms7XG5cdFx0Zm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1zZW1pYm9sZDtcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZDogJGN5YW47XG5cdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdH1cblx0fVxuXG5cdC5idG4tcGxhaW4ge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdG1hcmdpbi10b3A6IDAuNzVyZW07XG5cdFx0cGFkZGluZzogMC45cmVtO1xuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRncmV5LWJvcmRlci1tZWRpdW07XG5cdFx0Ym9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtbWQ7XG5cdFx0Y29sb3I6ICR0ZXh0LW11dGVkO1xuXHRcdGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtc2VtaWJvbGQ7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJvcmRlci1jb2xvcjogJHRleHQtbXV0ZWQ7XG5cdFx0XHRjb2xvcjogJHRleHQtZGFyaztcblx0XHR9XG5cdH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogISBBc3NpZ24gc2VhdHMgbW9kYWxcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnNlYXQtYXNzaWduLW1vZGFsIHtcblx0LyogVGhlIGNvdW50IHNpdHMgaGFyZCByaWdodCBvZiB0aGUgc2VhcmNoIGJveC4gVGhlIGFwcCdzIGNvcHkgb2YgdGhpcyB0b29sYmFyIHVzZXMgQW5ndWxhclxuXHQgICBNYXRlcmlhbCdzIGZsZXggYXR0cmlidXRlIGZvciB0aGUgZ2FwLCB3aGljaCBoYXMgbm8gcGxhY2UgaW4gYSBwbGFpbiBCb290c3RyYXAgbW9kYWwuICovXG5cdC5zZWF0LXRhYmxlLXRvb2xiYXIge1xuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdH1cblxuXHQvKiBUaGUgdGFibGUgaXMgdGhlIHRhbGwgcGFydCwgc28gaXQgc2Nyb2xscyBpbnNpZGUgaXRzZWxmIHJhdGhlciB0aGFuIHB1c2hpbmcgdGhlIGFjdGlvbnNcblx0ICAgYmVsb3cgdGhlIGZvbGQgb24gYSBwcmFjdGljZSB3aXRoIGEgbG9uZyBzdGFmZiBsaXN0LiAqL1xuXHQuc2VhdC10YWJsZS13cmFwcGVyIHtcblx0XHRtYXgtaGVpZ2h0OiA0MnZoO1xuXHRcdG92ZXJmbG93LXk6IGF1dG87XG5cdH1cblxuXHQuc2VhdC1hc3NpZ24tYWN0aW9ucyB7XG5cdFx0bWFyZ2luLXRvcDogMS41cmVtO1xuXG5cdFx0LmJ0bi1wbGFpbiB7XG5cdFx0XHRtYXJnaW4tdG9wOiAwLjc1cmVtO1xuXHRcdH1cblx0fVxuXG5cdEBtZWRpYSAobWF4LXdpZHRoOiA1NzZweCkge1xuXHRcdC5zZWF0LXNlYXJjaCB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG5cdH1cbn1cbiIsIi5tb2Rlcm4tbG9naW4tcGFnZSB7XG5cblx0LnBhZ2UtaGVhZGVyIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2eS1oZWFkZXItYmc7XG5cdFx0cGFkZGluZzogMC43NXJlbSAkc2VjdGlvbi1wYWRkaW5nLXg7XG5cdFx0cGFkZGluZy10b3A6IDAuNXJlbTtcblx0XHRtYXJnaW4tdG9wOiAwcmVtO1xuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkd2hpdGUtdHAtMTU7XG5cdFx0YmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7XG5cdFx0cG9zaXRpb246IHN0aWNreTtcblx0XHR0b3A6IDA7XG5cdFx0ei1pbmRleDogMTAwMDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHR9XG5cblx0LmhlYWRlci1jb250YWluZXIge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0bWF4LXdpZHRoOiAxNDAwcHg7XG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cdH1cblxuXHQubmF2LWxvZ28ge1xuXHRcdGhlaWdodDogNTBweDtcblx0XHR3aWR0aDogYXV0bztcblx0XHRmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMXB4IDRweCAkYmxhY2stdHAtMzApO1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdH1cblxuXHQubWFpbi1uYXYgdWwge1xuXHRcdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGdhcDogMXJlbTtcblx0fVxuXG5cdC5uYXYtbGluayB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHdoaXRlLXRwLTEwO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICR3aGl0ZS10cC0yMDtcblx0XHRiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNXB4KTtcblx0XHQtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cig1cHgpO1xuXHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0Zm9udC1zaXplOiAkZm9udC1zaXplLWJhc2U7XG5cdFx0Zm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1tZWRpdW07XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdHBhZGRpbmc6IDAuNnJlbSAxLjJyZW07XG5cdFx0Ym9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXMtc207XG5cdFx0dHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGUtdHAtMjA7XG5cdFx0XHRib3JkZXItY29sb3I6ICR3aGl0ZS10cC01MDtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcblx0XHR9XG5cdH1cblxuXHQuYnRuLW5hdi1kZW1vIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkeWVsbG93LWN0YTtcblx0XHRjb2xvcjogJG5hdnktZGFyay10ZXh0O1xuXHRcdHBhZGRpbmc6IDAuOHJlbSAxLjhyZW07XG5cdFx0Zm9udC1zaXplOiAxLjE1cmVtO1xuXHRcdGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcblx0XHRib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1tZDtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG5cdFx0Ym94LXNoYWRvdzogMCA0cHggMTVweCAkYmxhY2stdHAtMTA7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRtYXgtd2lkdGg6IDI1cmVtO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkeWVsbG93O1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuXHRcdFx0Ym94LXNoYWRvdzogMCAzcHggMjBweCAkeWVsbG93O1xuXHRcdH1cblx0fVxufSJdfQ== */
