/*!************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/jquery-ui/themes/base/core.css ***!
  \************************************************************************************************************************************/
/*!
 * jQuery UI CSS Framework 1.14.2
 * https://jqueryui.com
 *
 * Copyright OpenJS Foundation and other contributors
 * Released under the MIT license.
 * https://jquery.org/license
 *
 * https://api.jqueryui.com/category/theming/
 */

/* Layout helpers
----------------------------------*/
.ui-helper-hidden {
	display: none;
}
.ui-helper-hidden-accessible {
	border: 0;
	clip: rect(0 0 0 0);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
}
.ui-helper-reset {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	line-height: 1.3;
	text-decoration: none;
	font-size: 100%;
	list-style: none;
}
.ui-helper-clearfix:before,
.ui-helper-clearfix:after {
	content: "";
	display: table;
	border-collapse: collapse;
}
.ui-helper-clearfix:after {
	clear: both;
}
.ui-helper-zfix {
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	position: absolute;
	opacity: 0;
}

.ui-front {
	z-index: 100;
}


/* Interaction Cues
----------------------------------*/
.ui-state-disabled {
	cursor: default !important;
	pointer-events: none;
}


/* Icons
----------------------------------*/
.ui-icon {
	display: inline-block;
	vertical-align: middle;
	margin-top: -.25em;
	position: relative;
	text-indent: -99999px;
	overflow: hidden;
	background-repeat: no-repeat;
}

.ui-widget-icon-block {
	left: 50%;
	margin-left: -8px;
	display: block;
}

/* Misc visuals
----------------------------------*/

/* Overlays */
.ui-widget-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

/*!*****************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/jquery-ui/themes/base/accordion.css ***!
  \*****************************************************************************************************************************************/
/*!
 * jQuery UI Accordion 1.14.2
 * https://jqueryui.com
 *
 * Copyright OpenJS Foundation and other contributors
 * Released under the MIT license.
 * https://jquery.org/license
 *
 * https://api.jqueryui.com/accordion/#theming
 */
.ui-accordion .ui-accordion-header {
	display: block;
	cursor: pointer;
	position: relative;
	margin: 2px 0 0 0;
	padding: .5em .5em .5em .7em;
	font-size: 100%;
}
.ui-accordion .ui-accordion-content {
	padding: 1em 2.2em;
	border-top: 0;
	overflow: auto;
}

/*!********************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/jquery-ui/themes/base/autocomplete.css ***!
  \********************************************************************************************************************************************/
/*!
 * jQuery UI Autocomplete 1.14.2
 * https://jqueryui.com
 *
 * Copyright OpenJS Foundation and other contributors
 * Released under the MIT license.
 * https://jquery.org/license
 *
 * https://api.jqueryui.com/autocomplete/#theming
 */
.ui-autocomplete {
	position: absolute;
	top: 0;
	left: 0;
	cursor: default;
}

/*!**************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/jquery-ui/themes/base/button.css ***!
  \**************************************************************************************************************************************/
/*!
 * jQuery UI Button 1.14.2
 * https://jqueryui.com
 *
 * Copyright OpenJS Foundation and other contributors
 * Released under the MIT license.
 * https://jquery.org/license
 *
 * https://api.jqueryui.com/button/#theming
 */
.ui-button {
	padding: .4em 1em;
	display: inline-block;
	position: relative;
	line-height: normal;
	margin-right: .1em;
	cursor: pointer;
	vertical-align: middle;
	text-align: center;
	-webkit-user-select: none;
	user-select: none;
}

.ui-button,
.ui-button:link,
.ui-button:visited,
.ui-button:hover,
.ui-button:active {
	text-decoration: none;
}

/* to make room for the icon, a width needs to be set here */
.ui-button-icon-only {
	width: 2em;
	box-sizing: border-box;
	text-indent: -9999px;
	white-space: nowrap;
}

/* no icon support for input elements */
input.ui-button.ui-button-icon-only {
	text-indent: 0;
}

/* button icon element(s) */
.ui-button-icon-only .ui-icon {
	position: absolute;
	top: 50%;
	left: 50%;
	margin-top: -8px;
	margin-left: -8px;
}

.ui-button.ui-icon-notext .ui-icon {
	padding: 0;
	width: 2.1em;
	height: 2.1em;
	text-indent: -9999px;
	white-space: nowrap;

}

input.ui-button.ui-icon-notext .ui-icon {
	width: auto;
	height: auto;
	text-indent: 0;
	white-space: normal;
	padding: .4em 1em;
}

/* workarounds */
/* Support: Firefox 5 - 125+ */
input.ui-button::-moz-focus-inner,
button.ui-button::-moz-focus-inner {
	border: 0;
	padding: 0;
}

/*!*********************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/jquery-ui/themes/base/checkboxradio.css ***!
  \*********************************************************************************************************************************************/
/*!
 * jQuery UI Checkboxradio 1.14.2
 * https://jqueryui.com
 *
 * Copyright OpenJS Foundation and other contributors
 * Released under the MIT license.
 * https://jquery.org/license
 *
 * https://api.jqueryui.com/checkboxradio/#theming
 */

.ui-checkboxradio-label .ui-icon-background {
	box-shadow: inset 1px 1px 1px #ccc;
	border-radius: .12em;
	border: none;
}
.ui-checkboxradio-radio-label .ui-icon-background {
	width: 16px;
	height: 16px;
	border-radius: 1em;
	overflow: visible;
	border: none;
}
.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,
.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon {
	background-image: none;
	width: 8px;
	height: 8px;
	border-width: 4px;
	border-style: solid;
}
.ui-checkboxradio-disabled {
	pointer-events: none;
}

/*!********************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/jquery-ui/themes/base/controlgroup.css ***!
  \********************************************************************************************************************************************/
/*!
 * jQuery UI Controlgroup 1.14.2
 * https://jqueryui.com
 *
 * Copyright OpenJS Foundation and other contributors
 * Released under the MIT license.
 * https://jquery.org/license
 *
 * https://api.jqueryui.com/controlgroup/#theming
 */

.ui-controlgroup {
	vertical-align: middle;
	display: inline-block;
}
.ui-controlgroup > .ui-controlgroup-item {
	float: left;
	margin-left: 0;
	margin-right: 0;
}
.ui-controlgroup > .ui-controlgroup-item:focus,
.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus {
	z-index: 9999;
}
.ui-controlgroup-vertical > .ui-controlgroup-item {
	display: block;
	float: none;
	width: 100%;
	margin-top: 0;
	margin-bottom: 0;
	text-align: left;
}
.ui-controlgroup-vertical .ui-controlgroup-item {
	box-sizing: border-box;
}
.ui-controlgroup .ui-controlgroup-label {
	padding: .4em 1em;
}
.ui-controlgroup .ui-controlgroup-label span {
	font-size: 80%;
}
.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item {
	border-left: none;
}
.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item {
	border-top: none;
}
.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content {
	border-right: none;
}
.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content {
	border-bottom: none;
}

/* Spinner specific style fixes */
.ui-controlgroup-vertical .ui-spinner-input {
	width: calc( 100% - 2.4em );
}
.ui-controlgroup-vertical .ui-spinner .ui-spinner-up {
	border-top-style: solid;
}


/*!******************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/jquery-ui/themes/base/datepicker.css ***!
  \******************************************************************************************************************************************/
/*!
 * jQuery UI Datepicker 1.14.2
 * https://jqueryui.com
 *
 * Copyright OpenJS Foundation and other contributors
 * Released under the MIT license.
 * https://jquery.org/license
 *
 * https://api.jqueryui.com/datepicker/#theming
 */
.ui-datepicker {
	width: 17em;
	padding: .2em .2em 0;
	display: none;
}
.ui-datepicker .ui-datepicker-header {
	position: relative;
	padding: .2em 0;
}
.ui-datepicker .ui-datepicker-prev,
.ui-datepicker .ui-datepicker-next {
	position: absolute;
	top: 2px;
	width: 1.8em;
	height: 1.8em;
}
.ui-datepicker .ui-datepicker-prev-hover,
.ui-datepicker .ui-datepicker-next-hover {
	top: 1px;
}
.ui-datepicker .ui-datepicker-prev {
	left: 2px;
}
.ui-datepicker .ui-datepicker-next {
	right: 2px;
}
.ui-datepicker .ui-datepicker-prev-hover {
	left: 1px;
}
.ui-datepicker .ui-datepicker-next-hover {
	right: 1px;
}
.ui-datepicker .ui-datepicker-prev span,
.ui-datepicker .ui-datepicker-next span {
	display: block;
	position: absolute;
	left: 50%;
	margin-left: -8px;
	top: 50%;
	margin-top: -8px;
}
.ui-datepicker .ui-datepicker-title {
	margin: 0 2.3em;
	line-height: 1.8em;
	text-align: center;
}
.ui-datepicker .ui-datepicker-title select {
	font-size: 1em;
	margin: 1px 0;
}
.ui-datepicker select.ui-datepicker-month,
.ui-datepicker select.ui-datepicker-year {
	width: 45%;
}
.ui-datepicker table {
	width: 100%;
	font-size: .9em;
	border-collapse: collapse;
	margin: 0 0 .4em;
}
.ui-datepicker th {
	padding: .7em .3em;
	text-align: center;
	font-weight: bold;
	border: 0;
}
.ui-datepicker td {
	border: 0;
	padding: 1px;
}
.ui-datepicker td span,
.ui-datepicker td a {
	display: block;
	padding: .2em;
	text-align: right;
	text-decoration: none;
}
.ui-datepicker .ui-datepicker-buttonpane {
	background-image: none;
	margin: .7em 0 0 0;
	padding: 0 .2em;
	border-left: 0;
	border-right: 0;
	border-bottom: 0;
}
.ui-datepicker .ui-datepicker-buttonpane button {
	float: right;
	margin: .5em .2em .4em;
	cursor: pointer;
	padding: .2em .6em .3em .6em;
	width: auto;
	overflow: visible;
}
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
	float: left;
}

/* with multiple calendars */
.ui-datepicker.ui-datepicker-multi {
	width: auto;
}
.ui-datepicker-multi .ui-datepicker-group {
	float: left;
}
.ui-datepicker-multi .ui-datepicker-group table {
	width: 95%;
	margin: 0 auto .4em;
}
.ui-datepicker-multi-2 .ui-datepicker-group {
	width: 50%;
}
.ui-datepicker-multi-3 .ui-datepicker-group {
	width: 33.3%;
}
.ui-datepicker-multi-4 .ui-datepicker-group {
	width: 25%;
}
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
	border-left-width: 0;
}
.ui-datepicker-multi .ui-datepicker-buttonpane {
	clear: left;
}
.ui-datepicker-row-break {
	clear: both;
	width: 100%;
	font-size: 0;
}

/* RTL support */
.ui-datepicker-rtl {
	direction: rtl;
}
.ui-datepicker-rtl .ui-datepicker-prev {
	right: 2px;
	left: auto;
}
.ui-datepicker-rtl .ui-datepicker-next {
	left: 2px;
	right: auto;
}
.ui-datepicker-rtl .ui-datepicker-prev:hover {
	right: 1px;
	left: auto;
}
.ui-datepicker-rtl .ui-datepicker-next:hover {
	left: 1px;
	right: auto;
}
.ui-datepicker-rtl .ui-datepicker-buttonpane {
	clear: right;
}
.ui-datepicker-rtl .ui-datepicker-buttonpane button {
	float: left;
}
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
.ui-datepicker-rtl .ui-datepicker-group {
	float: right;
}
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
	border-right-width: 0;
	border-left-width: 1px;
}

/* Icons */
.ui-datepicker .ui-icon {
	display: block;
	text-indent: -99999px;
	overflow: hidden;
	background-repeat: no-repeat;
	left: .5em;
	top: .3em;
}

/*!**************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/jquery-ui/themes/base/dialog.css ***!
  \**************************************************************************************************************************************/
/*!
 * jQuery UI Dialog 1.14.2
 * https://jqueryui.com
 *
 * Copyright OpenJS Foundation and other contributors
 * Released under the MIT license.
 * https://jquery.org/license
 *
 * https://api.jqueryui.com/dialog/#theming
 */
.ui-dialog {
	position: absolute;
	top: 0;
	left: 0;
	padding: .2em;
	outline: 0;
}
.ui-dialog .ui-dialog-titlebar {
	padding: .4em 1em;
	position: relative;
}
.ui-dialog .ui-dialog-title {
	float: left;
	margin: .1em 0;
	white-space: nowrap;
	width: 90%;
	overflow: hidden;
	text-overflow: ellipsis;
}
.ui-dialog .ui-dialog-titlebar-close {
	position: absolute;
	right: .3em;
	top: 50%;
	width: 20px;
	margin: -10px 0 0 0;
	padding: 1px;
	height: 20px;
}
.ui-dialog .ui-dialog-content {
	position: relative;
	border: 0;
	padding: .5em 1em;
	background: none;
	overflow: auto;
}
.ui-dialog .ui-dialog-buttonpane {
	text-align: left;
	border-width: 1px 0 0 0;
	background-image: none;
	margin-top: .5em;
	padding: .3em 1em .5em .4em;
}
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
	float: right;
}
.ui-dialog .ui-dialog-buttonpane button {
	margin: .5em .4em .5em 0;
	cursor: pointer;
}
.ui-dialog .ui-resizable-n {
	height: 2px;
	top: 0;
}
.ui-dialog .ui-resizable-e {
	width: 2px;
	right: 0;
}
.ui-dialog .ui-resizable-s {
	height: 2px;
	bottom: 0;
}
.ui-dialog .ui-resizable-w {
	width: 2px;
	left: 0;
}
.ui-dialog .ui-resizable-se,
.ui-dialog .ui-resizable-sw,
.ui-dialog .ui-resizable-ne,
.ui-dialog .ui-resizable-nw {
	width: 7px;
	height: 7px;
}
.ui-dialog .ui-resizable-se {
	right: 0;
	bottom: 0;
}
.ui-dialog .ui-resizable-sw {
	left: 0;
	bottom: 0;
}
.ui-dialog .ui-resizable-ne {
	right: 0;
	top: 0;
}
.ui-dialog .ui-resizable-nw {
	left: 0;
	top: 0;
}
.ui-draggable .ui-dialog-titlebar {
	cursor: move;
}

/*!*****************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/jquery-ui/themes/base/draggable.css ***!
  \*****************************************************************************************************************************************/
/*!
 * jQuery UI Draggable 1.14.2
 * https://jqueryui.com
 *
 * Copyright OpenJS Foundation and other contributors
 * Released under the MIT license.
 * https://jquery.org/license
 */
.ui-draggable-handle {
	touch-action: none;
}

/*!************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/jquery-ui/themes/base/menu.css ***!
  \************************************************************************************************************************************/
/*!
 * jQuery UI Menu 1.14.2
 * https://jqueryui.com
 *
 * Copyright OpenJS Foundation and other contributors
 * Released under the MIT license.
 * https://jquery.org/license
 *
 * https://api.jqueryui.com/menu/#theming
 */
.ui-menu {
	list-style: none;
	padding: 0;
	margin: 0;
	display: block;
	outline: 0;
}
.ui-menu .ui-menu {
	position: absolute;
}
.ui-menu .ui-menu-item {
	margin: 0;
	cursor: pointer;
}
.ui-menu .ui-menu-item-wrapper {
	position: relative;
	padding: 3px 1em 3px .4em;
}
.ui-menu .ui-menu-divider {
	margin: 5px 0;
	height: 0;
	font-size: 0;
	line-height: 0;
	border-width: 1px 0 0 0;
}
.ui-menu .ui-state-focus,
.ui-menu .ui-state-active {
	margin: -1px;
}

/* icon support */
.ui-menu-icons {
	position: relative;
}
.ui-menu-icons .ui-menu-item-wrapper {
	padding-left: 2em;
}

/* left-aligned */
.ui-menu .ui-icon {
	position: absolute;
	top: 0;
	bottom: 0;
	left: .2em;
	margin: auto 0;
}

/* right-aligned */
.ui-menu .ui-menu-icon {
	left: auto;
	right: 0;
}

/*!*******************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/jquery-ui/themes/base/progressbar.css ***!
  \*******************************************************************************************************************************************/
/*!
 * jQuery UI Progressbar 1.14.2
 * https://jqueryui.com
 *
 * Copyright OpenJS Foundation and other contributors
 * Released under the MIT license.
 * https://jquery.org/license
 *
 * https://api.jqueryui.com/progressbar/#theming
 */
.ui-progressbar {
	height: 2em;
	text-align: left;
	overflow: hidden;
}
.ui-progressbar .ui-progressbar-value {
	margin: -1px;
	height: 100%;
}
.ui-progressbar .ui-progressbar-overlay {
	background: url(data:image/gif;base64,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);
	height: 100%;
	opacity: 0.25;
}
.ui-progressbar-indeterminate .ui-progressbar-value {
	background-image: none;
}

/*!*****************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/jquery-ui/themes/base/resizable.css ***!
  \*****************************************************************************************************************************************/
/*!
 * jQuery UI Resizable 1.14.2
 * https://jqueryui.com
 *
 * Copyright OpenJS Foundation and other contributors
 * Released under the MIT license.
 * https://jquery.org/license
 */
.ui-resizable {
	position: relative;
}
.ui-resizable-handle {
	position: absolute;
	font-size: 0.1px;
	display: block;
	touch-action: none;
}
.ui-resizable-disabled .ui-resizable-handle,
.ui-resizable-autohide .ui-resizable-handle {
	display: none;
}
.ui-resizable-n {
	cursor: n-resize;
	height: 7px;
	width: 100%;
	top: -5px;
	left: 0;
}
.ui-resizable-s {
	cursor: s-resize;
	height: 7px;
	width: 100%;
	bottom: -5px;
	left: 0;
}
.ui-resizable-e {
	cursor: e-resize;
	width: 7px;
	right: -5px;
	top: 0;
	height: 100%;
}
.ui-resizable-w {
	cursor: w-resize;
	width: 7px;
	left: -5px;
	top: 0;
	height: 100%;
}
.ui-resizable-se {
	cursor: se-resize;
	width: 12px;
	height: 12px;
	right: 1px;
	bottom: 1px;
}
.ui-resizable-sw {
	cursor: sw-resize;
	width: 9px;
	height: 9px;
	left: -5px;
	bottom: -5px;
}
.ui-resizable-nw {
	cursor: nw-resize;
	width: 9px;
	height: 9px;
	left: -5px;
	top: -5px;
}
.ui-resizable-ne {
	cursor: ne-resize;
	width: 9px;
	height: 9px;
	right: -5px;
	top: -5px;
}

/*!******************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/jquery-ui/themes/base/selectable.css ***!
  \******************************************************************************************************************************************/
/*!
 * jQuery UI Selectable 1.14.2
 * https://jqueryui.com
 *
 * Copyright OpenJS Foundation and other contributors
 * Released under the MIT license.
 * https://jquery.org/license
 */
.ui-selectable {
	touch-action: none;
}
.ui-selectable-helper {
	position: absolute;
	z-index: 100;
	border: 1px dotted black;
}

/*!******************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/jquery-ui/themes/base/selectmenu.css ***!
  \******************************************************************************************************************************************/
/*!
 * jQuery UI Selectmenu 1.14.2
 * https://jqueryui.com
 *
 * Copyright OpenJS Foundation and other contributors
 * Released under the MIT license.
 * https://jquery.org/license
 *
 * https://api.jqueryui.com/selectmenu/#theming
 */
.ui-selectmenu-menu {
	padding: 0;
	margin: 0;
	position: absolute;
	top: 0;
	left: 0;
	display: none;
}
.ui-selectmenu-menu .ui-menu {
	overflow: auto;
	overflow-x: hidden;
	padding-bottom: 1px;
}
.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup {
	font-size: 1em;
	font-weight: bold;
	line-height: 1.5;
	padding: 2px 0.4em;
	margin: 0.5em 0 0 0;
	height: auto;
	border: 0;
}
.ui-selectmenu-open {
	display: block;
}
.ui-selectmenu-text {
	display: block;
	margin-right: 20px;
	overflow: hidden;
	text-overflow: ellipsis;
}
.ui-selectmenu-button.ui-button {
	text-align: left;
	white-space: nowrap;
	width: 14em;
}
.ui-selectmenu-icon.ui-icon {
	float: right;
	margin-top: 0;
}

/*!****************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/jquery-ui/themes/base/sortable.css ***!
  \****************************************************************************************************************************************/
/*!
 * jQuery UI Sortable 1.14.2
 * https://jqueryui.com
 *
 * Copyright OpenJS Foundation and other contributors
 * Released under the MIT license.
 * https://jquery.org/license
 */
.ui-sortable-handle {
	touch-action: none;
}

/*!**************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/jquery-ui/themes/base/slider.css ***!
  \**************************************************************************************************************************************/
/*!
 * jQuery UI Slider 1.14.2
 * https://jqueryui.com
 *
 * Copyright OpenJS Foundation and other contributors
 * Released under the MIT license.
 * https://jquery.org/license
 *
 * https://api.jqueryui.com/slider/#theming
 */
.ui-slider {
	position: relative;
	text-align: left;
}
.ui-slider .ui-slider-handle {
	position: absolute;
	z-index: 2;
	width: 1.2em;
	height: 1.2em;
	cursor: pointer;
	touch-action: none;
}
.ui-slider .ui-slider-range {
	position: absolute;
	z-index: 1;
	font-size: .7em;
	display: block;
	border: 0;
	background-position: 0 0;
}

.ui-slider-horizontal {
	height: .8em;
}
.ui-slider-horizontal .ui-slider-handle {
	top: -.3em;
	margin-left: -.6em;
}
.ui-slider-horizontal .ui-slider-range {
	top: 0;
	height: 100%;
}
.ui-slider-horizontal .ui-slider-range-min {
	left: 0;
}
.ui-slider-horizontal .ui-slider-range-max {
	right: 0;
}

.ui-slider-vertical {
	width: .8em;
	height: 100px;
}
.ui-slider-vertical .ui-slider-handle {
	left: -.3em;
	margin-left: 0;
	margin-bottom: -.6em;
}
.ui-slider-vertical .ui-slider-range {
	left: 0;
	width: 100%;
}
.ui-slider-vertical .ui-slider-range-min {
	bottom: 0;
}
.ui-slider-vertical .ui-slider-range-max {
	top: 0;
}

/*!***************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/jquery-ui/themes/base/spinner.css ***!
  \***************************************************************************************************************************************/
/*!
 * jQuery UI Spinner 1.14.2
 * https://jqueryui.com
 *
 * Copyright OpenJS Foundation and other contributors
 * Released under the MIT license.
 * https://jquery.org/license
 *
 * https://api.jqueryui.com/spinner/#theming
 */
.ui-spinner {
	position: relative;
	display: inline-block;
	overflow: hidden;
	padding: 0;
	vertical-align: middle;
}
.ui-spinner-input {
	border: none;
	background: none;
	color: inherit;
	padding: .222em 0;
	margin: .2em 0;
	vertical-align: middle;
	margin-left: .4em;
	margin-right: 2em;
}
.ui-spinner-button {
	width: 1.6em;
	height: 50%;
	font-size: .5em;
	padding: 0;
	margin: 0;
	text-align: center;
	position: absolute;
	cursor: default;
	display: block;
	overflow: hidden;
	right: 0;
}
/* more specificity required here to override default borders */
.ui-spinner a.ui-spinner-button {
	border-top-style: none;
	border-bottom-style: none;
	border-right-style: none;
}
.ui-spinner-up {
	top: 0;
}
.ui-spinner-down {
	bottom: 0;
}

/*!************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/jquery-ui/themes/base/tabs.css ***!
  \************************************************************************************************************************************/
/*!
 * jQuery UI Tabs 1.14.2
 * https://jqueryui.com
 *
 * Copyright OpenJS Foundation and other contributors
 * Released under the MIT license.
 * https://jquery.org/license
 *
 * https://api.jqueryui.com/tabs/#theming
 */
.ui-tabs {
	position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
	padding: .2em;
}
.ui-tabs .ui-tabs-nav {
	margin: 0;
	padding: .2em .2em 0;
}
.ui-tabs .ui-tabs-nav li {
	list-style: none;
	float: left;
	position: relative;
	top: 0;
	margin: 1px .2em 0 0;
	border-bottom-width: 0;
	padding: 0;
	white-space: nowrap;
}
.ui-tabs .ui-tabs-nav .ui-tabs-anchor {
	float: left;
	padding: .5em 1em;
	text-decoration: none;
}
.ui-tabs .ui-tabs-nav li.ui-tabs-active {
	margin-bottom: -1px;
	padding-bottom: 1px;
}
.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,
.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,
.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor {
	cursor: text;
}
.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor {
	cursor: pointer;
}
.ui-tabs .ui-tabs-panel {
	display: block;
	border-width: 0;
	padding: 1em 1.4em;
	background: none;
}

/*!***************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/jquery-ui/themes/base/tooltip.css ***!
  \***************************************************************************************************************************************/
/*!
 * jQuery UI Tooltip 1.14.2
 * https://jqueryui.com
 *
 * Copyright OpenJS Foundation and other contributors
 * Released under the MIT license.
 * https://jquery.org/license
 *
 * https://api.jqueryui.com/tooltip/#theming
 */
.ui-tooltip {
	padding: 8px;
	position: absolute;
	z-index: 9999;
	max-width: 300px;
}
body .ui-tooltip {
	border-width: 2px;
}

/*!************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/jquery-ui/themes/base/base.css ***!
  \************************************************************************************************************************************/
/*!
 * jQuery UI CSS Framework 1.14.2
 * https://jqueryui.com
 *
 * Copyright OpenJS Foundation and other contributors
 * Released under the MIT license.
 * https://jquery.org/license
 *
 * https://api.jqueryui.com/category/theming/
 */

/*!*************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/jquery-ui/themes/base/theme.css ***!
  \*************************************************************************************************************************************/
/*!
 * jQuery UI CSS Framework 1.14.2
 * https://jqueryui.com
 *
 * Copyright OpenJS Foundation and other contributors
 * Released under the MIT license.
 * https://jquery.org/license
 *
 * https://api.jqueryui.com/category/theming/
 *
 * To view and modify this theme, visit https://jqueryui.com/themeroller/
 */


/* Component containers
----------------------------------*/
.ui-widget {
	font-family: Arial,Helvetica,sans-serif/*{ffDefault}*/;
	font-size: 1em/*{fsDefault}*/;
}
.ui-widget .ui-widget {
	font-size: 1em;
}
.ui-widget input,
.ui-widget select,
.ui-widget textarea,
.ui-widget button {
	font-family: Arial,Helvetica,sans-serif/*{ffDefault}*/;
	font-size: 1em;
}
.ui-widget.ui-widget-content {
	border: 1px solid #c5c5c5/*{borderColorDefault}*/;
}
.ui-widget-content {
	border: 1px solid #dddddd/*{borderColorContent}*/;
	background: #ffffff/*{bgColorContent}*/ /*{bgImgUrlContent}*/ /*{bgContentXPos}*/ /*{bgContentYPos}*/ /*{bgContentRepeat}*/;
	color: #333333/*{fcContent}*/;
}
.ui-widget-content a {
	color: #333333/*{fcContent}*/;
}
.ui-widget-header {
	border: 1px solid #dddddd/*{borderColorHeader}*/;
	background: #e9e9e9/*{bgColorHeader}*/ /*{bgImgUrlHeader}*/ /*{bgHeaderXPos}*/ /*{bgHeaderYPos}*/ /*{bgHeaderRepeat}*/;
	color: #333333/*{fcHeader}*/;
	font-weight: bold;
}
.ui-widget-header a {
	color: #333333/*{fcHeader}*/;
}

/* Interaction states
----------------------------------*/
.ui-state-default,
.ui-widget-content .ui-state-default,
.ui-widget-header .ui-state-default,
.ui-button,

/* We use html here because we need a greater specificity to make sure disabled
works properly when clicked or hovered */
html .ui-button.ui-state-disabled:hover,
html .ui-button.ui-state-disabled:active {
	border: 1px solid #c5c5c5/*{borderColorDefault}*/;
	background: #f6f6f6/*{bgColorDefault}*/ /*{bgImgUrlDefault}*/ /*{bgDefaultXPos}*/ /*{bgDefaultYPos}*/ /*{bgDefaultRepeat}*/;
	font-weight: normal/*{fwDefault}*/;
	color: #454545/*{fcDefault}*/;
}
.ui-state-default a,
.ui-state-default a:link,
.ui-state-default a:visited,
a.ui-button,
a:link.ui-button,
a:visited.ui-button,
.ui-button {
	color: #454545/*{fcDefault}*/;
	text-decoration: none;
}
.ui-state-hover,
.ui-widget-content .ui-state-hover,
.ui-widget-header .ui-state-hover,
.ui-state-focus,
.ui-widget-content .ui-state-focus,
.ui-widget-header .ui-state-focus,
.ui-button:hover,
.ui-button:focus {
	border: 1px solid #cccccc/*{borderColorHover}*/;
	background: #ededed/*{bgColorHover}*/ /*{bgImgUrlHover}*/ /*{bgHoverXPos}*/ /*{bgHoverYPos}*/ /*{bgHoverRepeat}*/;
	font-weight: normal/*{fwDefault}*/;
	color: #2b2b2b/*{fcHover}*/;
}
.ui-state-hover a,
.ui-state-hover a:hover,
.ui-state-hover a:link,
.ui-state-hover a:visited,
.ui-state-focus a,
.ui-state-focus a:hover,
.ui-state-focus a:link,
.ui-state-focus a:visited,
a.ui-button:hover,
a.ui-button:focus {
	color: #2b2b2b/*{fcHover}*/;
	text-decoration: none;
}

.ui-visual-focus {
	box-shadow: 0 0 3px 1px rgb(94, 158, 214);
}
.ui-state-active,
.ui-widget-content .ui-state-active,
.ui-widget-header .ui-state-active,
a.ui-button:active,
.ui-button:active,
.ui-button.ui-state-active:hover {
	border: 1px solid #003eff/*{borderColorActive}*/;
	background: #007fff/*{bgColorActive}*/ /*{bgImgUrlActive}*/ /*{bgActiveXPos}*/ /*{bgActiveYPos}*/ /*{bgActiveRepeat}*/;
	font-weight: normal/*{fwDefault}*/;
	color: #ffffff/*{fcActive}*/;
}
.ui-icon-background,
.ui-state-active .ui-icon-background {
	border: #003eff/*{borderColorActive}*/;
	background-color: #ffffff/*{fcActive}*/;
}
.ui-state-active a,
.ui-state-active a:link,
.ui-state-active a:visited {
	color: #ffffff/*{fcActive}*/;
	text-decoration: none;
}

/* Interaction Cues
----------------------------------*/
.ui-state-highlight,
.ui-widget-content .ui-state-highlight,
.ui-widget-header .ui-state-highlight {
	border: 1px solid #dad55e/*{borderColorHighlight}*/;
	background: #fffa90/*{bgColorHighlight}*/ /*{bgImgUrlHighlight}*/ /*{bgHighlightXPos}*/ /*{bgHighlightYPos}*/ /*{bgHighlightRepeat}*/;
	color: #777620/*{fcHighlight}*/;
}
.ui-state-checked {
	border: 1px solid #dad55e/*{borderColorHighlight}*/;
	background: #fffa90/*{bgColorHighlight}*/;
}
.ui-state-highlight a,
.ui-widget-content .ui-state-highlight a,
.ui-widget-header .ui-state-highlight a {
	color: #777620/*{fcHighlight}*/;
}
.ui-state-error,
.ui-widget-content .ui-state-error,
.ui-widget-header .ui-state-error {
	border: 1px solid #f1a899/*{borderColorError}*/;
	background: #fddfdf/*{bgColorError}*/ /*{bgImgUrlError}*/ /*{bgErrorXPos}*/ /*{bgErrorYPos}*/ /*{bgErrorRepeat}*/;
	color: #5f3f3f/*{fcError}*/;
}
.ui-state-error a,
.ui-widget-content .ui-state-error a,
.ui-widget-header .ui-state-error a {
	color: #5f3f3f/*{fcError}*/;
}
.ui-state-error-text,
.ui-widget-content .ui-state-error-text,
.ui-widget-header .ui-state-error-text {
	color: #5f3f3f/*{fcError}*/;
}
.ui-priority-primary,
.ui-widget-content .ui-priority-primary,
.ui-widget-header .ui-priority-primary {
	font-weight: bold;
}
.ui-priority-secondary,
.ui-widget-content .ui-priority-secondary,
.ui-widget-header .ui-priority-secondary {
	opacity: .7;
	font-weight: normal;
}
.ui-state-disabled,
.ui-widget-content .ui-state-disabled,
.ui-widget-header .ui-state-disabled {
	opacity: .35;
	background-image: none;
}

/* Icons
----------------------------------*/

/* states and images */
.ui-icon {
	width: 16px;
	height: 16px;
}
.ui-icon,
.ui-widget-content .ui-icon {
	background-image: url(/build/images/ui-icons_444444_256x240.d1b81858.png)/*{iconsContent}*/;
}
.ui-widget-header .ui-icon {
	background-image: url(/build/images/ui-icons_444444_256x240.d1b81858.png)/*{iconsHeader}*/;
}
.ui-state-hover .ui-icon,
.ui-state-focus .ui-icon,
.ui-button:hover .ui-icon,
.ui-button:focus .ui-icon {
	background-image: url(/build/images/ui-icons_555555_256x240.35d57320.png)/*{iconsHover}*/;
}
.ui-state-active .ui-icon,
.ui-button:active .ui-icon {
	background-image: url(/build/images/ui-icons_ffffff_256x240.92bef7e4.png)/*{iconsActive}*/;
}
.ui-state-highlight .ui-icon,
.ui-button .ui-state-highlight.ui-icon {
	background-image: url(/build/images/ui-icons_777620_256x240.f423048b.png)/*{iconsHighlight}*/;
}
.ui-state-error .ui-icon,
.ui-state-error-text .ui-icon {
	background-image: url(/build/images/ui-icons_cc0000_256x240.5cbbd560.png)/*{iconsError}*/;
}
.ui-button .ui-icon {
	background-image: url(/build/images/ui-icons_777777_256x240.f5d5fce2.png)/*{iconsDefault}*/;
}

/* positioning */
/* Three classes needed to override `.ui-button:hover .ui-icon` */
.ui-icon-blank.ui-icon-blank.ui-icon-blank {
	background-image: none;
}
.ui-icon-caret-1-n { background-position: 0 0; }
.ui-icon-caret-1-ne { background-position: -16px 0; }
.ui-icon-caret-1-e { background-position: -32px 0; }
.ui-icon-caret-1-se { background-position: -48px 0; }
.ui-icon-caret-1-s { background-position: -65px 0; }
.ui-icon-caret-1-sw { background-position: -80px 0; }
.ui-icon-caret-1-w { background-position: -96px 0; }
.ui-icon-caret-1-nw { background-position: -112px 0; }
.ui-icon-caret-2-n-s { background-position: -128px 0; }
.ui-icon-caret-2-e-w { background-position: -144px 0; }
.ui-icon-triangle-1-n { background-position: 0 -16px; }
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
.ui-icon-triangle-1-e { background-position: -32px -16px; }
.ui-icon-triangle-1-se { background-position: -48px -16px; }
.ui-icon-triangle-1-s { background-position: -65px -16px; }
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
.ui-icon-triangle-1-w { background-position: -96px -16px; }
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
.ui-icon-arrow-1-n { background-position: 0 -32px; }
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
.ui-icon-arrow-1-e { background-position: -32px -32px; }
.ui-icon-arrow-1-se { background-position: -48px -32px; }
.ui-icon-arrow-1-s { background-position: -65px -32px; }
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
.ui-icon-arrow-1-w { background-position: -96px -32px; }
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
.ui-icon-arrowthick-1-n { background-position: 1px -48px; }
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
.ui-icon-arrow-4 { background-position: 0 -80px; }
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
.ui-icon-extlink { background-position: -32px -80px; }
.ui-icon-newwin { background-position: -48px -80px; }
.ui-icon-refresh { background-position: -64px -80px; }
.ui-icon-shuffle { background-position: -80px -80px; }
.ui-icon-transfer-e-w { background-position: -96px -80px; }
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
.ui-icon-folder-collapsed { background-position: 0 -96px; }
.ui-icon-folder-open { background-position: -16px -96px; }
.ui-icon-document { background-position: -32px -96px; }
.ui-icon-document-b { background-position: -48px -96px; }
.ui-icon-note { background-position: -64px -96px; }
.ui-icon-mail-closed { background-position: -80px -96px; }
.ui-icon-mail-open { background-position: -96px -96px; }
.ui-icon-suitcase { background-position: -112px -96px; }
.ui-icon-comment { background-position: -128px -96px; }
.ui-icon-person { background-position: -144px -96px; }
.ui-icon-print { background-position: -160px -96px; }
.ui-icon-trash { background-position: -176px -96px; }
.ui-icon-locked { background-position: -192px -96px; }
.ui-icon-unlocked { background-position: -208px -96px; }
.ui-icon-bookmark { background-position: -224px -96px; }
.ui-icon-tag { background-position: -240px -96px; }
.ui-icon-home { background-position: 0 -112px; }
.ui-icon-flag { background-position: -16px -112px; }
.ui-icon-calendar { background-position: -32px -112px; }
.ui-icon-cart { background-position: -48px -112px; }
.ui-icon-pencil { background-position: -64px -112px; }
.ui-icon-clock { background-position: -80px -112px; }
.ui-icon-disk { background-position: -96px -112px; }
.ui-icon-calculator { background-position: -112px -112px; }
.ui-icon-zoomin { background-position: -128px -112px; }
.ui-icon-zoomout { background-position: -144px -112px; }
.ui-icon-search { background-position: -160px -112px; }
.ui-icon-wrench { background-position: -176px -112px; }
.ui-icon-gear { background-position: -192px -112px; }
.ui-icon-heart { background-position: -208px -112px; }
.ui-icon-star { background-position: -224px -112px; }
.ui-icon-link { background-position: -240px -112px; }
.ui-icon-cancel { background-position: 0 -128px; }
.ui-icon-plus { background-position: -16px -128px; }
.ui-icon-plusthick { background-position: -32px -128px; }
.ui-icon-minus { background-position: -48px -128px; }
.ui-icon-minusthick { background-position: -64px -128px; }
.ui-icon-close { background-position: -80px -128px; }
.ui-icon-closethick { background-position: -96px -128px; }
.ui-icon-key { background-position: -112px -128px; }
.ui-icon-lightbulb { background-position: -128px -128px; }
.ui-icon-scissors { background-position: -144px -128px; }
.ui-icon-clipboard { background-position: -160px -128px; }
.ui-icon-copy { background-position: -176px -128px; }
.ui-icon-contact { background-position: -192px -128px; }
.ui-icon-image { background-position: -208px -128px; }
.ui-icon-video { background-position: -224px -128px; }
.ui-icon-script { background-position: -240px -128px; }
.ui-icon-alert { background-position: 0 -144px; }
.ui-icon-info { background-position: -16px -144px; }
.ui-icon-notice { background-position: -32px -144px; }
.ui-icon-help { background-position: -48px -144px; }
.ui-icon-check { background-position: -64px -144px; }
.ui-icon-bullet { background-position: -80px -144px; }
.ui-icon-radio-on { background-position: -96px -144px; }
.ui-icon-radio-off { background-position: -112px -144px; }
.ui-icon-pin-w { background-position: -128px -144px; }
.ui-icon-pin-s { background-position: -144px -144px; }
.ui-icon-play { background-position: 0 -160px; }
.ui-icon-pause { background-position: -16px -160px; }
.ui-icon-seek-next { background-position: -32px -160px; }
.ui-icon-seek-prev { background-position: -48px -160px; }
.ui-icon-seek-end { background-position: -64px -160px; }
.ui-icon-seek-start { background-position: -80px -160px; }
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
.ui-icon-seek-first { background-position: -80px -160px; }
.ui-icon-stop { background-position: -96px -160px; }
.ui-icon-eject { background-position: -112px -160px; }
.ui-icon-volume-off { background-position: -128px -160px; }
.ui-icon-volume-on { background-position: -144px -160px; }
.ui-icon-power { background-position: 0 -176px; }
.ui-icon-signal-diag { background-position: -16px -176px; }
.ui-icon-signal { background-position: -32px -176px; }
.ui-icon-battery-0 { background-position: -48px -176px; }
.ui-icon-battery-1 { background-position: -64px -176px; }
.ui-icon-battery-2 { background-position: -80px -176px; }
.ui-icon-battery-3 { background-position: -96px -176px; }
.ui-icon-circle-plus { background-position: 0 -192px; }
.ui-icon-circle-minus { background-position: -16px -192px; }
.ui-icon-circle-close { background-position: -32px -192px; }
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
.ui-icon-circle-zoomin { background-position: -176px -192px; }
.ui-icon-circle-zoomout { background-position: -192px -192px; }
.ui-icon-circle-check { background-position: -208px -192px; }
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
.ui-icon-circlesmall-close { background-position: -32px -208px; }
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
.ui-icon-squaresmall-close { background-position: -80px -208px; }
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }


/* Misc visuals
----------------------------------*/

/* Corner radius */
.ui-corner-all,
.ui-corner-top,
.ui-corner-left,
.ui-corner-tl {
	border-top-left-radius: 3px/*{cornerRadius}*/;
}
.ui-corner-all,
.ui-corner-top,
.ui-corner-right,
.ui-corner-tr {
	border-top-right-radius: 3px/*{cornerRadius}*/;
}
.ui-corner-all,
.ui-corner-bottom,
.ui-corner-left,
.ui-corner-bl {
	border-bottom-left-radius: 3px/*{cornerRadius}*/;
}
.ui-corner-all,
.ui-corner-bottom,
.ui-corner-right,
.ui-corner-br {
	border-bottom-right-radius: 3px/*{cornerRadius}*/;
}

/* Overlays */
.ui-widget-overlay {
	background: #aaaaaa/*{bgColorOverlay}*/ /*{bgImgUrlOverlay}*/ /*{bgOverlayXPos}*/ /*{bgOverlayYPos}*/ /*{bgOverlayRepeat}*/;
	opacity: .3/*{opacityOverlay}*/;
}
.ui-widget-shadow {
	box-shadow: 0/*{offsetLeftShadow}*/ 0/*{offsetTopShadow}*/ 5px/*{thicknessShadow}*/ #666666/*{bgColorShadow}*/;
}

/*!***********************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/jquery-ui/themes/base/all.css ***!
  \***********************************************************************************************************************************/
/*!
 * jQuery UI CSS Framework 1.14.2
 * https://jqueryui.com
 *
 * Copyright OpenJS Foundation and other contributors
 * Released under the MIT license.
 * https://jquery.org/license
 *
 * https://api.jqueryui.com/category/theming/
 */

/*!**********************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/jquery-ui/dist/themes/base/jquery-ui.css ***!
  \**********************************************************************************************************************************************/
/*! jQuery UI - v1.14.2 - 2026-01-28
* https://jqueryui.com
* Includes: core.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, draggable.css, resizable.css, progressbar.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css
* To view and modify this theme, visit https://jqueryui.com/themeroller/?ffDefault=Arial%2CHelvetica%2Csans-serif&fsDefault=1em&fwDefault=normal&cornerRadius=3px&bgColorHeader=e9e9e9&bgTextureHeader=flat&borderColorHeader=dddddd&fcHeader=333333&iconColorHeader=444444&bgColorContent=ffffff&bgTextureContent=flat&borderColorContent=dddddd&fcContent=333333&iconColorContent=444444&bgColorDefault=f6f6f6&bgTextureDefault=flat&borderColorDefault=c5c5c5&fcDefault=454545&iconColorDefault=777777&bgColorHover=ededed&bgTextureHover=flat&borderColorHover=cccccc&fcHover=2b2b2b&iconColorHover=555555&bgColorActive=007fff&bgTextureActive=flat&borderColorActive=003eff&fcActive=ffffff&iconColorActive=ffffff&bgColorHighlight=fffa90&bgTextureHighlight=flat&borderColorHighlight=dad55e&fcHighlight=777620&iconColorHighlight=777620&bgColorError=fddfdf&bgTextureError=flat&borderColorError=f1a899&fcError=5f3f3f&iconColorError=cc0000&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=666666&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=5px&offsetTopShadow=0px&offsetLeftShadow=0px&cornerRadiusShadow=8px
* Copyright OpenJS Foundation and other contributors; Licensed MIT */

/* Layout helpers
----------------------------------*/
.ui-helper-hidden {
	display: none;
}
.ui-helper-hidden-accessible {
	border: 0;
	clip: rect(0 0 0 0);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
}
.ui-helper-reset {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	line-height: 1.3;
	text-decoration: none;
	font-size: 100%;
	list-style: none;
}
.ui-helper-clearfix:before,
.ui-helper-clearfix:after {
	content: "";
	display: table;
	border-collapse: collapse;
}
.ui-helper-clearfix:after {
	clear: both;
}
.ui-helper-zfix {
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	position: absolute;
	opacity: 0;
}

.ui-front {
	z-index: 100;
}


/* Interaction Cues
----------------------------------*/
.ui-state-disabled {
	cursor: default !important;
	pointer-events: none;
}


/* Icons
----------------------------------*/
.ui-icon {
	display: inline-block;
	vertical-align: middle;
	margin-top: -.25em;
	position: relative;
	text-indent: -99999px;
	overflow: hidden;
	background-repeat: no-repeat;
}

.ui-widget-icon-block {
	left: 50%;
	margin-left: -8px;
	display: block;
}

/* Misc visuals
----------------------------------*/

/* Overlays */
.ui-widget-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.ui-accordion .ui-accordion-header {
	display: block;
	cursor: pointer;
	position: relative;
	margin: 2px 0 0 0;
	padding: .5em .5em .5em .7em;
	font-size: 100%;
}
.ui-accordion .ui-accordion-content {
	padding: 1em 2.2em;
	border-top: 0;
	overflow: auto;
}
.ui-autocomplete {
	position: absolute;
	top: 0;
	left: 0;
	cursor: default;
}
.ui-menu {
	list-style: none;
	padding: 0;
	margin: 0;
	display: block;
	outline: 0;
}
.ui-menu .ui-menu {
	position: absolute;
}
.ui-menu .ui-menu-item {
	margin: 0;
	cursor: pointer;
}
.ui-menu .ui-menu-item-wrapper {
	position: relative;
	padding: 3px 1em 3px .4em;
}
.ui-menu .ui-menu-divider {
	margin: 5px 0;
	height: 0;
	font-size: 0;
	line-height: 0;
	border-width: 1px 0 0 0;
}
.ui-menu .ui-state-focus,
.ui-menu .ui-state-active {
	margin: -1px;
}

/* icon support */
.ui-menu-icons {
	position: relative;
}
.ui-menu-icons .ui-menu-item-wrapper {
	padding-left: 2em;
}

/* left-aligned */
.ui-menu .ui-icon {
	position: absolute;
	top: 0;
	bottom: 0;
	left: .2em;
	margin: auto 0;
}

/* right-aligned */
.ui-menu .ui-menu-icon {
	left: auto;
	right: 0;
}
.ui-button {
	padding: .4em 1em;
	display: inline-block;
	position: relative;
	line-height: normal;
	margin-right: .1em;
	cursor: pointer;
	vertical-align: middle;
	text-align: center;
	-webkit-user-select: none;
	user-select: none;
}

.ui-button,
.ui-button:link,
.ui-button:visited,
.ui-button:hover,
.ui-button:active {
	text-decoration: none;
}

/* to make room for the icon, a width needs to be set here */
.ui-button-icon-only {
	width: 2em;
	box-sizing: border-box;
	text-indent: -9999px;
	white-space: nowrap;
}

/* no icon support for input elements */
input.ui-button.ui-button-icon-only {
	text-indent: 0;
}

/* button icon element(s) */
.ui-button-icon-only .ui-icon {
	position: absolute;
	top: 50%;
	left: 50%;
	margin-top: -8px;
	margin-left: -8px;
}

.ui-button.ui-icon-notext .ui-icon {
	padding: 0;
	width: 2.1em;
	height: 2.1em;
	text-indent: -9999px;
	white-space: nowrap;

}

input.ui-button.ui-icon-notext .ui-icon {
	width: auto;
	height: auto;
	text-indent: 0;
	white-space: normal;
	padding: .4em 1em;
}

/* workarounds */
/* Support: Firefox 5 - 125+ */
input.ui-button::-moz-focus-inner,
button.ui-button::-moz-focus-inner {
	border: 0;
	padding: 0;
}
.ui-controlgroup {
	vertical-align: middle;
	display: inline-block;
}
.ui-controlgroup > .ui-controlgroup-item {
	float: left;
	margin-left: 0;
	margin-right: 0;
}
.ui-controlgroup > .ui-controlgroup-item:focus,
.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus {
	z-index: 9999;
}
.ui-controlgroup-vertical > .ui-controlgroup-item {
	display: block;
	float: none;
	width: 100%;
	margin-top: 0;
	margin-bottom: 0;
	text-align: left;
}
.ui-controlgroup-vertical .ui-controlgroup-item {
	box-sizing: border-box;
}
.ui-controlgroup .ui-controlgroup-label {
	padding: .4em 1em;
}
.ui-controlgroup .ui-controlgroup-label span {
	font-size: 80%;
}
.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item {
	border-left: none;
}
.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item {
	border-top: none;
}
.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content {
	border-right: none;
}
.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content {
	border-bottom: none;
}

/* Spinner specific style fixes */
.ui-controlgroup-vertical .ui-spinner-input {
	width: calc( 100% - 2.4em );
}
.ui-controlgroup-vertical .ui-spinner .ui-spinner-up {
	border-top-style: solid;
}

.ui-checkboxradio-label .ui-icon-background {
	box-shadow: inset 1px 1px 1px #ccc;
	border-radius: .12em;
	border: none;
}
.ui-checkboxradio-radio-label .ui-icon-background {
	width: 16px;
	height: 16px;
	border-radius: 1em;
	overflow: visible;
	border: none;
}
.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,
.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon {
	background-image: none;
	width: 8px;
	height: 8px;
	border-width: 4px;
	border-style: solid;
}
.ui-checkboxradio-disabled {
	pointer-events: none;
}
.ui-datepicker {
	width: 17em;
	padding: .2em .2em 0;
	display: none;
}
.ui-datepicker .ui-datepicker-header {
	position: relative;
	padding: .2em 0;
}
.ui-datepicker .ui-datepicker-prev,
.ui-datepicker .ui-datepicker-next {
	position: absolute;
	top: 2px;
	width: 1.8em;
	height: 1.8em;
}
.ui-datepicker .ui-datepicker-prev-hover,
.ui-datepicker .ui-datepicker-next-hover {
	top: 1px;
}
.ui-datepicker .ui-datepicker-prev {
	left: 2px;
}
.ui-datepicker .ui-datepicker-next {
	right: 2px;
}
.ui-datepicker .ui-datepicker-prev-hover {
	left: 1px;
}
.ui-datepicker .ui-datepicker-next-hover {
	right: 1px;
}
.ui-datepicker .ui-datepicker-prev span,
.ui-datepicker .ui-datepicker-next span {
	display: block;
	position: absolute;
	left: 50%;
	margin-left: -8px;
	top: 50%;
	margin-top: -8px;
}
.ui-datepicker .ui-datepicker-title {
	margin: 0 2.3em;
	line-height: 1.8em;
	text-align: center;
}
.ui-datepicker .ui-datepicker-title select {
	font-size: 1em;
	margin: 1px 0;
}
.ui-datepicker select.ui-datepicker-month,
.ui-datepicker select.ui-datepicker-year {
	width: 45%;
}
.ui-datepicker table {
	width: 100%;
	font-size: .9em;
	border-collapse: collapse;
	margin: 0 0 .4em;
}
.ui-datepicker th {
	padding: .7em .3em;
	text-align: center;
	font-weight: bold;
	border: 0;
}
.ui-datepicker td {
	border: 0;
	padding: 1px;
}
.ui-datepicker td span,
.ui-datepicker td a {
	display: block;
	padding: .2em;
	text-align: right;
	text-decoration: none;
}
.ui-datepicker .ui-datepicker-buttonpane {
	background-image: none;
	margin: .7em 0 0 0;
	padding: 0 .2em;
	border-left: 0;
	border-right: 0;
	border-bottom: 0;
}
.ui-datepicker .ui-datepicker-buttonpane button {
	float: right;
	margin: .5em .2em .4em;
	cursor: pointer;
	padding: .2em .6em .3em .6em;
	width: auto;
	overflow: visible;
}
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
	float: left;
}

/* with multiple calendars */
.ui-datepicker.ui-datepicker-multi {
	width: auto;
}
.ui-datepicker-multi .ui-datepicker-group {
	float: left;
}
.ui-datepicker-multi .ui-datepicker-group table {
	width: 95%;
	margin: 0 auto .4em;
}
.ui-datepicker-multi-2 .ui-datepicker-group {
	width: 50%;
}
.ui-datepicker-multi-3 .ui-datepicker-group {
	width: 33.3%;
}
.ui-datepicker-multi-4 .ui-datepicker-group {
	width: 25%;
}
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
	border-left-width: 0;
}
.ui-datepicker-multi .ui-datepicker-buttonpane {
	clear: left;
}
.ui-datepicker-row-break {
	clear: both;
	width: 100%;
	font-size: 0;
}

/* RTL support */
.ui-datepicker-rtl {
	direction: rtl;
}
.ui-datepicker-rtl .ui-datepicker-prev {
	right: 2px;
	left: auto;
}
.ui-datepicker-rtl .ui-datepicker-next {
	left: 2px;
	right: auto;
}
.ui-datepicker-rtl .ui-datepicker-prev:hover {
	right: 1px;
	left: auto;
}
.ui-datepicker-rtl .ui-datepicker-next:hover {
	left: 1px;
	right: auto;
}
.ui-datepicker-rtl .ui-datepicker-buttonpane {
	clear: right;
}
.ui-datepicker-rtl .ui-datepicker-buttonpane button {
	float: left;
}
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
.ui-datepicker-rtl .ui-datepicker-group {
	float: right;
}
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
	border-right-width: 0;
	border-left-width: 1px;
}

/* Icons */
.ui-datepicker .ui-icon {
	display: block;
	text-indent: -99999px;
	overflow: hidden;
	background-repeat: no-repeat;
	left: .5em;
	top: .3em;
}
.ui-dialog {
	position: absolute;
	top: 0;
	left: 0;
	padding: .2em;
	outline: 0;
}
.ui-dialog .ui-dialog-titlebar {
	padding: .4em 1em;
	position: relative;
}
.ui-dialog .ui-dialog-title {
	float: left;
	margin: .1em 0;
	white-space: nowrap;
	width: 90%;
	overflow: hidden;
	text-overflow: ellipsis;
}
.ui-dialog .ui-dialog-titlebar-close {
	position: absolute;
	right: .3em;
	top: 50%;
	width: 20px;
	margin: -10px 0 0 0;
	padding: 1px;
	height: 20px;
}
.ui-dialog .ui-dialog-content {
	position: relative;
	border: 0;
	padding: .5em 1em;
	background: none;
	overflow: auto;
}
.ui-dialog .ui-dialog-buttonpane {
	text-align: left;
	border-width: 1px 0 0 0;
	background-image: none;
	margin-top: .5em;
	padding: .3em 1em .5em .4em;
}
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
	float: right;
}
.ui-dialog .ui-dialog-buttonpane button {
	margin: .5em .4em .5em 0;
	cursor: pointer;
}
.ui-dialog .ui-resizable-n {
	height: 2px;
	top: 0;
}
.ui-dialog .ui-resizable-e {
	width: 2px;
	right: 0;
}
.ui-dialog .ui-resizable-s {
	height: 2px;
	bottom: 0;
}
.ui-dialog .ui-resizable-w {
	width: 2px;
	left: 0;
}
.ui-dialog .ui-resizable-se,
.ui-dialog .ui-resizable-sw,
.ui-dialog .ui-resizable-ne,
.ui-dialog .ui-resizable-nw {
	width: 7px;
	height: 7px;
}
.ui-dialog .ui-resizable-se {
	right: 0;
	bottom: 0;
}
.ui-dialog .ui-resizable-sw {
	left: 0;
	bottom: 0;
}
.ui-dialog .ui-resizable-ne {
	right: 0;
	top: 0;
}
.ui-dialog .ui-resizable-nw {
	left: 0;
	top: 0;
}
.ui-draggable .ui-dialog-titlebar {
	cursor: move;
}
.ui-draggable-handle {
	touch-action: none;
}
.ui-resizable {
	position: relative;
}
.ui-resizable-handle {
	position: absolute;
	font-size: 0.1px;
	display: block;
	touch-action: none;
}
.ui-resizable-disabled .ui-resizable-handle,
.ui-resizable-autohide .ui-resizable-handle {
	display: none;
}
.ui-resizable-n {
	cursor: n-resize;
	height: 7px;
	width: 100%;
	top: -5px;
	left: 0;
}
.ui-resizable-s {
	cursor: s-resize;
	height: 7px;
	width: 100%;
	bottom: -5px;
	left: 0;
}
.ui-resizable-e {
	cursor: e-resize;
	width: 7px;
	right: -5px;
	top: 0;
	height: 100%;
}
.ui-resizable-w {
	cursor: w-resize;
	width: 7px;
	left: -5px;
	top: 0;
	height: 100%;
}
.ui-resizable-se {
	cursor: se-resize;
	width: 12px;
	height: 12px;
	right: 1px;
	bottom: 1px;
}
.ui-resizable-sw {
	cursor: sw-resize;
	width: 9px;
	height: 9px;
	left: -5px;
	bottom: -5px;
}
.ui-resizable-nw {
	cursor: nw-resize;
	width: 9px;
	height: 9px;
	left: -5px;
	top: -5px;
}
.ui-resizable-ne {
	cursor: ne-resize;
	width: 9px;
	height: 9px;
	right: -5px;
	top: -5px;
}
.ui-progressbar {
	height: 2em;
	text-align: left;
	overflow: hidden;
}
.ui-progressbar .ui-progressbar-value {
	margin: -1px;
	height: 100%;
}
.ui-progressbar .ui-progressbar-overlay {
	background: url(data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==);
	height: 100%;
	opacity: 0.25;
}
.ui-progressbar-indeterminate .ui-progressbar-value {
	background-image: none;
}
.ui-selectable {
	touch-action: none;
}
.ui-selectable-helper {
	position: absolute;
	z-index: 100;
	border: 1px dotted black;
}
.ui-selectmenu-menu {
	padding: 0;
	margin: 0;
	position: absolute;
	top: 0;
	left: 0;
	display: none;
}
.ui-selectmenu-menu .ui-menu {
	overflow: auto;
	overflow-x: hidden;
	padding-bottom: 1px;
}
.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup {
	font-size: 1em;
	font-weight: bold;
	line-height: 1.5;
	padding: 2px 0.4em;
	margin: 0.5em 0 0 0;
	height: auto;
	border: 0;
}
.ui-selectmenu-open {
	display: block;
}
.ui-selectmenu-text {
	display: block;
	margin-right: 20px;
	overflow: hidden;
	text-overflow: ellipsis;
}
.ui-selectmenu-button.ui-button {
	text-align: left;
	white-space: nowrap;
	width: 14em;
}
.ui-selectmenu-icon.ui-icon {
	float: right;
	margin-top: 0;
}
.ui-slider {
	position: relative;
	text-align: left;
}
.ui-slider .ui-slider-handle {
	position: absolute;
	z-index: 2;
	width: 1.2em;
	height: 1.2em;
	cursor: pointer;
	touch-action: none;
}
.ui-slider .ui-slider-range {
	position: absolute;
	z-index: 1;
	font-size: .7em;
	display: block;
	border: 0;
	background-position: 0 0;
}

.ui-slider-horizontal {
	height: .8em;
}
.ui-slider-horizontal .ui-slider-handle {
	top: -.3em;
	margin-left: -.6em;
}
.ui-slider-horizontal .ui-slider-range {
	top: 0;
	height: 100%;
}
.ui-slider-horizontal .ui-slider-range-min {
	left: 0;
}
.ui-slider-horizontal .ui-slider-range-max {
	right: 0;
}

.ui-slider-vertical {
	width: .8em;
	height: 100px;
}
.ui-slider-vertical .ui-slider-handle {
	left: -.3em;
	margin-left: 0;
	margin-bottom: -.6em;
}
.ui-slider-vertical .ui-slider-range {
	left: 0;
	width: 100%;
}
.ui-slider-vertical .ui-slider-range-min {
	bottom: 0;
}
.ui-slider-vertical .ui-slider-range-max {
	top: 0;
}
.ui-sortable-handle {
	touch-action: none;
}
.ui-spinner {
	position: relative;
	display: inline-block;
	overflow: hidden;
	padding: 0;
	vertical-align: middle;
}
.ui-spinner-input {
	border: none;
	background: none;
	color: inherit;
	padding: .222em 0;
	margin: .2em 0;
	vertical-align: middle;
	margin-left: .4em;
	margin-right: 2em;
}
.ui-spinner-button {
	width: 1.6em;
	height: 50%;
	font-size: .5em;
	padding: 0;
	margin: 0;
	text-align: center;
	position: absolute;
	cursor: default;
	display: block;
	overflow: hidden;
	right: 0;
}
/* more specificity required here to override default borders */
.ui-spinner a.ui-spinner-button {
	border-top-style: none;
	border-bottom-style: none;
	border-right-style: none;
}
.ui-spinner-up {
	top: 0;
}
.ui-spinner-down {
	bottom: 0;
}
.ui-tabs {
	position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
	padding: .2em;
}
.ui-tabs .ui-tabs-nav {
	margin: 0;
	padding: .2em .2em 0;
}
.ui-tabs .ui-tabs-nav li {
	list-style: none;
	float: left;
	position: relative;
	top: 0;
	margin: 1px .2em 0 0;
	border-bottom-width: 0;
	padding: 0;
	white-space: nowrap;
}
.ui-tabs .ui-tabs-nav .ui-tabs-anchor {
	float: left;
	padding: .5em 1em;
	text-decoration: none;
}
.ui-tabs .ui-tabs-nav li.ui-tabs-active {
	margin-bottom: -1px;
	padding-bottom: 1px;
}
.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,
.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,
.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor {
	cursor: text;
}
.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor {
	cursor: pointer;
}
.ui-tabs .ui-tabs-panel {
	display: block;
	border-width: 0;
	padding: 1em 1.4em;
	background: none;
}
.ui-tooltip {
	padding: 8px;
	position: absolute;
	z-index: 9999;
	max-width: 300px;
}
body .ui-tooltip {
	border-width: 2px;
}
/* Component containers
----------------------------------*/
.ui-widget {
	font-family: Arial,Helvetica,sans-serif;
	font-size: 1em;
}
.ui-widget .ui-widget {
	font-size: 1em;
}
.ui-widget input,
.ui-widget select,
.ui-widget textarea,
.ui-widget button {
	font-family: Arial,Helvetica,sans-serif;
	font-size: 1em;
}
.ui-widget.ui-widget-content {
	border: 1px solid #c5c5c5;
}
.ui-widget-content {
	border: 1px solid #dddddd;
	background: #ffffff;
	color: #333333;
}
.ui-widget-content a {
	color: #333333;
}
.ui-widget-header {
	border: 1px solid #dddddd;
	background: #e9e9e9;
	color: #333333;
	font-weight: bold;
}
.ui-widget-header a {
	color: #333333;
}

/* Interaction states
----------------------------------*/
.ui-state-default,
.ui-widget-content .ui-state-default,
.ui-widget-header .ui-state-default,
.ui-button,

/* We use html here because we need a greater specificity to make sure disabled
works properly when clicked or hovered */
html .ui-button.ui-state-disabled:hover,
html .ui-button.ui-state-disabled:active {
	border: 1px solid #c5c5c5;
	background: #f6f6f6;
	font-weight: normal;
	color: #454545;
}
.ui-state-default a,
.ui-state-default a:link,
.ui-state-default a:visited,
a.ui-button,
a:link.ui-button,
a:visited.ui-button,
.ui-button {
	color: #454545;
	text-decoration: none;
}
.ui-state-hover,
.ui-widget-content .ui-state-hover,
.ui-widget-header .ui-state-hover,
.ui-state-focus,
.ui-widget-content .ui-state-focus,
.ui-widget-header .ui-state-focus,
.ui-button:hover,
.ui-button:focus {
	border: 1px solid #cccccc;
	background: #ededed;
	font-weight: normal;
	color: #2b2b2b;
}
.ui-state-hover a,
.ui-state-hover a:hover,
.ui-state-hover a:link,
.ui-state-hover a:visited,
.ui-state-focus a,
.ui-state-focus a:hover,
.ui-state-focus a:link,
.ui-state-focus a:visited,
a.ui-button:hover,
a.ui-button:focus {
	color: #2b2b2b;
	text-decoration: none;
}

.ui-visual-focus {
	box-shadow: 0 0 3px 1px rgb(94, 158, 214);
}
.ui-state-active,
.ui-widget-content .ui-state-active,
.ui-widget-header .ui-state-active,
a.ui-button:active,
.ui-button:active,
.ui-button.ui-state-active:hover {
	border: 1px solid #003eff;
	background: #007fff;
	font-weight: normal;
	color: #ffffff;
}
.ui-icon-background,
.ui-state-active .ui-icon-background {
	border: #003eff;
	background-color: #ffffff;
}
.ui-state-active a,
.ui-state-active a:link,
.ui-state-active a:visited {
	color: #ffffff;
	text-decoration: none;
}

/* Interaction Cues
----------------------------------*/
.ui-state-highlight,
.ui-widget-content .ui-state-highlight,
.ui-widget-header .ui-state-highlight {
	border: 1px solid #dad55e;
	background: #fffa90;
	color: #777620;
}
.ui-state-checked {
	border: 1px solid #dad55e;
	background: #fffa90;
}
.ui-state-highlight a,
.ui-widget-content .ui-state-highlight a,
.ui-widget-header .ui-state-highlight a {
	color: #777620;
}
.ui-state-error,
.ui-widget-content .ui-state-error,
.ui-widget-header .ui-state-error {
	border: 1px solid #f1a899;
	background: #fddfdf;
	color: #5f3f3f;
}
.ui-state-error a,
.ui-widget-content .ui-state-error a,
.ui-widget-header .ui-state-error a {
	color: #5f3f3f;
}
.ui-state-error-text,
.ui-widget-content .ui-state-error-text,
.ui-widget-header .ui-state-error-text {
	color: #5f3f3f;
}
.ui-priority-primary,
.ui-widget-content .ui-priority-primary,
.ui-widget-header .ui-priority-primary {
	font-weight: bold;
}
.ui-priority-secondary,
.ui-widget-content .ui-priority-secondary,
.ui-widget-header .ui-priority-secondary {
	opacity: .7;
	font-weight: normal;
}
.ui-state-disabled,
.ui-widget-content .ui-state-disabled,
.ui-widget-header .ui-state-disabled {
	opacity: .35;
	background-image: none;
}

/* Icons
----------------------------------*/

/* states and images */
.ui-icon {
	width: 16px;
	height: 16px;
}
.ui-icon,
.ui-widget-content .ui-icon {
	background-image: url(/build/images/ui-icons_444444_256x240.6b6593cf.png);
}
.ui-widget-header .ui-icon {
	background-image: url(/build/images/ui-icons_444444_256x240.6b6593cf.png);
}
.ui-state-hover .ui-icon,
.ui-state-focus .ui-icon,
.ui-button:hover .ui-icon,
.ui-button:focus .ui-icon {
	background-image: url(/build/images/ui-icons_555555_256x240.27de250b.png);
}
.ui-state-active .ui-icon,
.ui-button:active .ui-icon {
	background-image: url(/build/images/ui-icons_ffffff_256x240.6ae272f6.png);
}
.ui-state-highlight .ui-icon,
.ui-button .ui-state-highlight.ui-icon {
	background-image: url(/build/images/ui-icons_777620_256x240.c34fd34f.png);
}
.ui-state-error .ui-icon,
.ui-state-error-text .ui-icon {
	background-image: url(/build/images/ui-icons_cc0000_256x240.f40020ee.png);
}
.ui-button .ui-icon {
	background-image: url(/build/images/ui-icons_777777_256x240.5f5e7dcd.png);
}

/* positioning */
/* Three classes needed to override `.ui-button:hover .ui-icon` */
.ui-icon-blank.ui-icon-blank.ui-icon-blank {
	background-image: none;
}
.ui-icon-caret-1-n { background-position: 0 0; }
.ui-icon-caret-1-ne { background-position: -16px 0; }
.ui-icon-caret-1-e { background-position: -32px 0; }
.ui-icon-caret-1-se { background-position: -48px 0; }
.ui-icon-caret-1-s { background-position: -65px 0; }
.ui-icon-caret-1-sw { background-position: -80px 0; }
.ui-icon-caret-1-w { background-position: -96px 0; }
.ui-icon-caret-1-nw { background-position: -112px 0; }
.ui-icon-caret-2-n-s { background-position: -128px 0; }
.ui-icon-caret-2-e-w { background-position: -144px 0; }
.ui-icon-triangle-1-n { background-position: 0 -16px; }
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
.ui-icon-triangle-1-e { background-position: -32px -16px; }
.ui-icon-triangle-1-se { background-position: -48px -16px; }
.ui-icon-triangle-1-s { background-position: -65px -16px; }
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
.ui-icon-triangle-1-w { background-position: -96px -16px; }
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
.ui-icon-arrow-1-n { background-position: 0 -32px; }
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
.ui-icon-arrow-1-e { background-position: -32px -32px; }
.ui-icon-arrow-1-se { background-position: -48px -32px; }
.ui-icon-arrow-1-s { background-position: -65px -32px; }
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
.ui-icon-arrow-1-w { background-position: -96px -32px; }
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
.ui-icon-arrowthick-1-n { background-position: 1px -48px; }
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
.ui-icon-arrow-4 { background-position: 0 -80px; }
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
.ui-icon-extlink { background-position: -32px -80px; }
.ui-icon-newwin { background-position: -48px -80px; }
.ui-icon-refresh { background-position: -64px -80px; }
.ui-icon-shuffle { background-position: -80px -80px; }
.ui-icon-transfer-e-w { background-position: -96px -80px; }
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
.ui-icon-folder-collapsed { background-position: 0 -96px; }
.ui-icon-folder-open { background-position: -16px -96px; }
.ui-icon-document { background-position: -32px -96px; }
.ui-icon-document-b { background-position: -48px -96px; }
.ui-icon-note { background-position: -64px -96px; }
.ui-icon-mail-closed { background-position: -80px -96px; }
.ui-icon-mail-open { background-position: -96px -96px; }
.ui-icon-suitcase { background-position: -112px -96px; }
.ui-icon-comment { background-position: -128px -96px; }
.ui-icon-person { background-position: -144px -96px; }
.ui-icon-print { background-position: -160px -96px; }
.ui-icon-trash { background-position: -176px -96px; }
.ui-icon-locked { background-position: -192px -96px; }
.ui-icon-unlocked { background-position: -208px -96px; }
.ui-icon-bookmark { background-position: -224px -96px; }
.ui-icon-tag { background-position: -240px -96px; }
.ui-icon-home { background-position: 0 -112px; }
.ui-icon-flag { background-position: -16px -112px; }
.ui-icon-calendar { background-position: -32px -112px; }
.ui-icon-cart { background-position: -48px -112px; }
.ui-icon-pencil { background-position: -64px -112px; }
.ui-icon-clock { background-position: -80px -112px; }
.ui-icon-disk { background-position: -96px -112px; }
.ui-icon-calculator { background-position: -112px -112px; }
.ui-icon-zoomin { background-position: -128px -112px; }
.ui-icon-zoomout { background-position: -144px -112px; }
.ui-icon-search { background-position: -160px -112px; }
.ui-icon-wrench { background-position: -176px -112px; }
.ui-icon-gear { background-position: -192px -112px; }
.ui-icon-heart { background-position: -208px -112px; }
.ui-icon-star { background-position: -224px -112px; }
.ui-icon-link { background-position: -240px -112px; }
.ui-icon-cancel { background-position: 0 -128px; }
.ui-icon-plus { background-position: -16px -128px; }
.ui-icon-plusthick { background-position: -32px -128px; }
.ui-icon-minus { background-position: -48px -128px; }
.ui-icon-minusthick { background-position: -64px -128px; }
.ui-icon-close { background-position: -80px -128px; }
.ui-icon-closethick { background-position: -96px -128px; }
.ui-icon-key { background-position: -112px -128px; }
.ui-icon-lightbulb { background-position: -128px -128px; }
.ui-icon-scissors { background-position: -144px -128px; }
.ui-icon-clipboard { background-position: -160px -128px; }
.ui-icon-copy { background-position: -176px -128px; }
.ui-icon-contact { background-position: -192px -128px; }
.ui-icon-image { background-position: -208px -128px; }
.ui-icon-video { background-position: -224px -128px; }
.ui-icon-script { background-position: -240px -128px; }
.ui-icon-alert { background-position: 0 -144px; }
.ui-icon-info { background-position: -16px -144px; }
.ui-icon-notice { background-position: -32px -144px; }
.ui-icon-help { background-position: -48px -144px; }
.ui-icon-check { background-position: -64px -144px; }
.ui-icon-bullet { background-position: -80px -144px; }
.ui-icon-radio-on { background-position: -96px -144px; }
.ui-icon-radio-off { background-position: -112px -144px; }
.ui-icon-pin-w { background-position: -128px -144px; }
.ui-icon-pin-s { background-position: -144px -144px; }
.ui-icon-play { background-position: 0 -160px; }
.ui-icon-pause { background-position: -16px -160px; }
.ui-icon-seek-next { background-position: -32px -160px; }
.ui-icon-seek-prev { background-position: -48px -160px; }
.ui-icon-seek-end { background-position: -64px -160px; }
.ui-icon-seek-start { background-position: -80px -160px; }
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
.ui-icon-seek-first { background-position: -80px -160px; }
.ui-icon-stop { background-position: -96px -160px; }
.ui-icon-eject { background-position: -112px -160px; }
.ui-icon-volume-off { background-position: -128px -160px; }
.ui-icon-volume-on { background-position: -144px -160px; }
.ui-icon-power { background-position: 0 -176px; }
.ui-icon-signal-diag { background-position: -16px -176px; }
.ui-icon-signal { background-position: -32px -176px; }
.ui-icon-battery-0 { background-position: -48px -176px; }
.ui-icon-battery-1 { background-position: -64px -176px; }
.ui-icon-battery-2 { background-position: -80px -176px; }
.ui-icon-battery-3 { background-position: -96px -176px; }
.ui-icon-circle-plus { background-position: 0 -192px; }
.ui-icon-circle-minus { background-position: -16px -192px; }
.ui-icon-circle-close { background-position: -32px -192px; }
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
.ui-icon-circle-zoomin { background-position: -176px -192px; }
.ui-icon-circle-zoomout { background-position: -192px -192px; }
.ui-icon-circle-check { background-position: -208px -192px; }
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
.ui-icon-circlesmall-close { background-position: -32px -208px; }
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
.ui-icon-squaresmall-close { background-position: -80px -208px; }
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }


/* Misc visuals
----------------------------------*/

/* Corner radius */
.ui-corner-all,
.ui-corner-top,
.ui-corner-left,
.ui-corner-tl {
	border-top-left-radius: 3px;
}
.ui-corner-all,
.ui-corner-top,
.ui-corner-right,
.ui-corner-tr {
	border-top-right-radius: 3px;
}
.ui-corner-all,
.ui-corner-bottom,
.ui-corner-left,
.ui-corner-bl {
	border-bottom-left-radius: 3px;
}
.ui-corner-all,
.ui-corner-bottom,
.ui-corner-right,
.ui-corner-br {
	border-bottom-right-radius: 3px;
}

/* Overlays */
.ui-widget-overlay {
	background: #aaaaaa;
	opacity: .3;
}
.ui-widget-shadow {
	box-shadow: 0px 0px 5px #666666;
}

/*!**********************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/ckeditor5/dist/ckeditor5.css ***!
  \**********************************************************************************************************************************/
/**
 * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/* Reset */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-color-base-foreground: 								hsl(0, 0%, 98%);
	--ck-color-base-background: 								hsl(0, 0%, 100%);
	--ck-color-base-border: 									hsl(220, 6%, 81%);
	--ck-color-base-action: 									hsl(104, 50.2%, 42.5%);
	--ck-color-base-focus: 										hsl(209, 92%, 70%);
	--ck-color-base-text: 										hsl(0, 0%, 20%);
	--ck-color-base-active: 									hsl(218.1, 100%, 58%);
	--ck-color-base-active-focus:								hsl(218.2, 100%, 52.5%);
	--ck-color-base-error:										hsl(15, 100%, 43%);

	/* -- Generic colors ------------------------------------------------------------------------ */

	--ck-color-focus-border-coordinates: 						218, 81.8%, 56.9%;
	--ck-color-focus-border: 									hsl(var(--ck-color-focus-border-coordinates));
	--ck-color-focus-outer-shadow:								hsl(212.4, 89.3%, 89%);
	--ck-color-focus-disabled-shadow:							hsla(209, 90%, 72%,.3);
	--ck-color-focus-error-shadow:								hsla(9,100%,56%,.3);
	--ck-color-text: 											var(--ck-color-base-text);
	--ck-color-shadow-drop: 									hsla(0, 0%, 0%, 0.15);
	--ck-color-shadow-drop-active:								hsla(0, 0%, 0%, 0.2);
	--ck-color-shadow-inner: 									hsla(0, 0%, 0%, 0.1);

	/* -- Buttons ------------------------------------------------------------------------------- */

	--ck-color-button-default-background: 						transparent;
	--ck-color-button-default-hover-background: 				hsl(0, 0%, 94.1%);
	--ck-color-button-default-active-background: 				hsl(0, 0%, 94.1%);
	--ck-color-button-default-disabled-background: 				transparent;

	--ck-color-button-on-background: 							hsl(212, 100%, 97.1%);
	--ck-color-button-on-hover-background: 						hsl(211.7, 100%, 92.9%);
	--ck-color-button-on-active-background: 					hsl(211.7, 100%, 92.9%);
	--ck-color-button-on-disabled-background: 					hsl(211, 15%, 95%);
	--ck-color-button-on-color:									hsl(218.1, 100%, 58%);


	--ck-color-button-action-background: 						var(--ck-color-base-action);
	--ck-color-button-action-hover-background: 					hsl(104, 53.2%, 40.2%);
	--ck-color-button-action-active-background: 				hsl(104, 53.2%, 40.2%);
	--ck-color-button-action-disabled-background: 				hsl(104, 44%, 58%);
	--ck-color-button-action-text: 								var(--ck-color-base-background);

	--ck-color-button-save: 									hsl(120, 100%, 27%);
	--ck-color-button-cancel: 									hsl(15, 100%, 43%);

	--ck-color-switch-button-off-background:					hsl(0, 0%, 57.6%);
	--ck-color-switch-button-off-hover-background:				hsl(0, 0%, 49%);
	--ck-color-switch-button-on-background:						var(--ck-color-button-action-background);
	--ck-color-switch-button-on-hover-background:				hsl(104, 53.2%, 40.2%);
	--ck-color-switch-button-inner-background:					var(--ck-color-base-background);
	--ck-color-switch-button-inner-shadow:						hsla(0, 0%, 0%, 0.1);

	/* -- Dropdown ------------------------------------------------------------------------------ */

	--ck-color-dropdown-panel-background: 						var(--ck-color-base-background);
	--ck-color-dropdown-panel-border: 							var(--ck-color-base-border);

	/* -- Dialog -------------------------------------------------------------------------------- */

	--ck-color-dialog-background: 								var(--ck-custom-background);
	--ck-color-dialog-form-header-border: 						var(--ck-custom-border);

	/* -- Input --------------------------------------------------------------------------------- */

	--ck-color-input-background: 								var(--ck-color-base-background);
	--ck-color-input-border: 									var(--ck-color-base-border);
	--ck-color-input-error-border:								var(--ck-color-base-error);
	--ck-color-input-text: 										var(--ck-color-base-text);
	--ck-color-input-disabled-background: 						hsl(0, 0%, 95%);
	--ck-color-input-disabled-border: 							var(--ck-color-base-border);
	--ck-color-input-disabled-text: 							hsl(0, 0%, 46%);

	/* -- List ---------------------------------------------------------------------------------- */

	--ck-color-list-background: 								var(--ck-color-base-background);
	--ck-color-list-button-hover-background: 					var(--ck-color-button-default-hover-background);
	--ck-color-list-button-on-background: 						var(--ck-color-button-on-color);
	--ck-color-list-button-on-background-focus: 				var(--ck-color-button-on-color);
	--ck-color-list-button-on-text:								var(--ck-color-base-background);

	/* -- Panel --------------------------------------------------------------------------------- */

	--ck-color-panel-background: 								var(--ck-color-base-background);
	--ck-color-panel-border: 									var(--ck-color-base-border);

	/* -- Toolbar ------------------------------------------------------------------------------- */

	--ck-color-toolbar-background: 								var(--ck-color-base-background);
	--ck-color-toolbar-border: 									var(--ck-color-base-border);

	/* -- Tooltip ------------------------------------------------------------------------------- */

	--ck-color-tooltip-background: 								var(--ck-color-base-text);
	--ck-color-tooltip-text: 									var(--ck-color-base-background);

	/* -- Engine -------------------------------------------------------------------------------- */

	--ck-color-engine-placeholder-text: 						hsl(0, 0%, 44%);

	/* -- Upload -------------------------------------------------------------------------------- */

	--ck-color-upload-bar-background:		 					hsl(209, 92%, 70%);

	/* -- Link -------------------------------------------------------------------------------- */

	--ck-color-link-default:									hsl(240, 100%, 47%);
	--ck-color-link-selected-background:						hsla(201, 100%, 56%, 0.1);
	--ck-color-link-fake-selection:								hsla(201, 100%, 56%, 0.3);

	/* -- Search result highlight ---------------------------------------------------------------- */

	--ck-color-highlight-background:							hsl(60, 100%, 50%);

	/* -- Generic colors ------------------------------------------------------------------------- */

	--ck-color-light-red:										hsl(0, 100%, 90%);
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	/**
	 * An opacity value of disabled UI item.
	 */
	--ck-disabled-opacity: .5;
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	/**
	 * The geometry of the of focused element's outer shadow.
	 */
	--ck-focus-outer-shadow-geometry: 0 0 0 3px;

	/**
	 * A visual style of focused element's outer shadow.
	 */
	--ck-focus-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-outer-shadow);

	/**
	 * A visual style of focused element's outer shadow (when disabled).
	 */
	--ck-focus-disabled-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-disabled-shadow);

	/**
	 * A visual style of focused element's outer shadow (when has errors).
	 */
	--ck-focus-error-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-error-shadow);

	/**
	 * A visual style of focused element's border or outline.
	 */
	--ck-focus-ring: 1px solid var(--ck-color-focus-border);
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-font-size-base: 13px;
	--ck-line-height-base: 1.84615;
	--ck-font-face: Helvetica, Arial, Tahoma, Verdana, Sans-Serif;

	--ck-font-size-tiny: 0.7em;
	--ck-font-size-small: 0.75em;
	--ck-font-size-normal: 1em;
	--ck-font-size-big: 1.4em;
	--ck-font-size-large: 1.8em;
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	/* This is super-important. This is **manually** adjusted so a button without an icon
	is never smaller than a button with icon, additionally making sure that text-less buttons
	are perfect squares. The value is also shared by other components which should stay "in-line"
	with buttons. */
	--ck-ui-component-min-height: 2.3em;
}
/**
 * Resets an element, ignoring its children.
 */
.ck.ck-reset,
.ck.ck-reset_all,
.ck-reset_all *:not(.ck-reset_all-excluded *) {
	box-sizing: border-box;
	width: auto;
	height: auto;
	position: static;

	/* Do not include inheritable rules here. */
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	text-decoration: none;
	vertical-align: middle;
	transition: none;

	/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/105 */
	word-wrap: break-word;
}
/**
 * Resets an element AND its children.
 */
.ck.ck-reset_all,
.ck-reset_all *:not(.ck-reset_all-excluded *) {
	/* These are rule inherited by all children elements. */
	border-collapse: collapse;
	font: normal normal normal var(--ck-font-size-base)/var(--ck-line-height-base) var(--ck-font-face);
	color: var(--ck-color-text);
	text-align: left;
	white-space: nowrap;
	cursor: auto;
	float: none;
}
.ck-reset_all .ck-rtl *:not(.ck-reset_all-excluded *) {
		text-align: right;
	}
.ck-reset_all iframe:not(.ck-reset_all-excluded *) {
		/* For IE */
		vertical-align: inherit;
	}
.ck-reset_all textarea:not(.ck-reset_all-excluded *) {
		white-space: pre-wrap;
	}
.ck-reset_all textarea:not(.ck-reset_all-excluded *),
	.ck-reset_all input[type="text"]:not(.ck-reset_all-excluded *),
	.ck-reset_all input[type="password"]:not(.ck-reset_all-excluded *) {
		cursor: text;
	}
.ck-reset_all textarea[disabled]:not(.ck-reset_all-excluded *),
	.ck-reset_all input[type="text"][disabled]:not(.ck-reset_all-excluded *),
	.ck-reset_all input[type="password"][disabled]:not(.ck-reset_all-excluded *) {
		cursor: default;
	}
.ck-reset_all fieldset:not(.ck-reset_all-excluded *) {
		padding: 10px;
		border: 2px groove hsl(255, 7%, 88%);
	}
.ck-reset_all button:not(.ck-reset_all-excluded *)::-moz-focus-inner {
		/* See http://stackoverflow.com/questions/5517744/remove-extra-button-spacing-padding-in-firefox */
		padding: 0;
		border: 0
	}
/**
 * Default UI rules for RTL languages.
 */
.ck[dir="rtl"],
.ck[dir="rtl"] .ck {
	text-align: right;
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Default border-radius value.
 */
:root{
	--ck-border-radius: 2px;
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	/**
	 * A visual style of element's inner shadow (i.e. input).
	 */
	--ck-inner-shadow: 2px 2px 3px var(--ck-color-shadow-inner) inset;

	/**
	 * A visual style of element's drop shadow (i.e. panel).
	 */
	--ck-drop-shadow: 0 1px 2px 1px var(--ck-color-shadow-drop);

	/**
	 * A visual style of element's active shadow (i.e. comment or suggestion).
	 */
	--ck-drop-shadow-active: 0 3px 6px 1px var(--ck-color-shadow-drop-active);
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-spacing-unit: 						0.6em;
	--ck-spacing-large: 					calc(var(--ck-spacing-unit) * 1.5);
	--ck-spacing-standard: 					var(--ck-spacing-unit);
	--ck-spacing-medium: 					calc(var(--ck-spacing-unit) * 0.8);
	--ck-spacing-small: 					calc(var(--ck-spacing-unit) * 0.5);
	--ck-spacing-tiny: 						calc(var(--ck-spacing-unit) * 0.3);
	--ck-spacing-extra-tiny: 				calc(var(--ck-spacing-unit) * 0.16);
}

/* Components */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
.ck.ck-autocomplete > .ck-search__results {
		border-radius: 0;

		max-height: 200px;
		overflow-y: auto;
		background: var(--ck-color-base-background);
		border: 1px solid var(--ck-color-dropdown-panel-border);
		min-width: auto;
	}
.ck-rounded-corners .ck.ck-autocomplete > .ck-search__results,
	.ck.ck-autocomplete > .ck-search__results.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
	}
.ck.ck-autocomplete > .ck-search__results {
		box-shadow: var(--ck-drop-shadow), 0 0;
	}
.ck.ck-autocomplete > .ck-search__results.ck-search__results_n {
			border-bottom-left-radius: 0;
			border-bottom-right-radius: 0;

			/* Prevent duplicated borders between the input and the results pane. */
			margin-bottom: -1px;
		}
.ck.ck-autocomplete > .ck-search__results.ck-search__results_s {
			border-top-left-radius: 0;
			border-top-right-radius: 0;

			/* Prevent duplicated borders between the input and the results pane. */
			margin-top: -1px;
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A visual style of focused element's border.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A class which indicates that an element holding it is disabled.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements a button of given background color.
 *
 * @param {String} $background - Background color of the button.
 * @param {String} $border - Border color of the button.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-button,
a.ck.ck-button {
	background: var(--ck-color-button-default-background);
	border-radius: 0;

	white-space: nowrap;
	cursor: default;
	vertical-align: middle;
	padding: var(--ck-spacing-tiny);
	text-align: center;

	/* A very important piece of styling. Go to variable declaration to learn more. */
	min-width: var(--ck-ui-component-min-height);
	min-height: var(--ck-ui-component-min-height);

	/* Normalize the height of the line. Removing this will break consistent height
	among text and text-less buttons (with icons). */
	line-height: 1;

	/* Enable font size inheritance, which allows fluid UI scaling. */
	font-size: inherit;

	/* Avoid flickering when the foucs border shows up. */
	border: 1px solid transparent;

	/* Apply some smooth transition to the box-shadow and border. */
	transition: box-shadow .2s ease-in-out, border .2s ease-in-out;

	/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/189 */
	-webkit-appearance: none;
}
.ck.ck-button:not(.ck-disabled):hover, a.ck.ck-button:not(.ck-disabled):hover {
			background: var(--ck-color-button-default-hover-background);
		}
.ck.ck-button:not(.ck-disabled):active, a.ck.ck-button:not(.ck-disabled):active {
			background: var(--ck-color-button-default-active-background);
		}
/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */
.ck.ck-button.ck-disabled, a.ck.ck-button.ck-disabled {
		background: var(--ck-color-button-default-disabled-background);
	}
.ck-rounded-corners .ck.ck-button,
	.ck-rounded-corners a.ck.ck-button,
	.ck.ck-button.ck-rounded-corners,
	a.ck.ck-button.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
	}
@media (prefers-reduced-motion: reduce) {
.ck.ck-button,
a.ck.ck-button {
		transition: none;
}
	}
.ck.ck-button:active,
	a.ck.ck-button:active,
	.ck.ck-button:focus,
	a.ck.ck-button:focus {
		/* Disable native outline. */
		outline: none;
		border: var(--ck-focus-ring);
		box-shadow: var(--ck-focus-outer-shadow), 0 0;
	}
/* Allow icon coloring using the text "color" property. */
.ck.ck-button .ck-button__icon use,
		a.ck.ck-button .ck-button__icon use,
		.ck.ck-button .ck-button__icon use *,
		a.ck.ck-button .ck-button__icon use * {
			color: inherit;
		}
.ck.ck-button .ck-button__label, a.ck.ck-button .ck-button__label {
		/* Enable font size inheritance, which allows fluid UI scaling. */
		font-size: inherit;
		font-weight: inherit;
		color: inherit;
		cursor: inherit;

		/* Must be consistent with .ck-icon's vertical align. Otherwise, buttons with and
		without labels (but with icons) have different sizes in Chrome */
		vertical-align: middle;
	}
[dir="ltr"] .ck.ck-button .ck-button__label, [dir="ltr"] a.ck.ck-button .ck-button__label {
			text-align: left;
	}
[dir="rtl"] .ck.ck-button .ck-button__label, [dir="rtl"] a.ck.ck-button .ck-button__label {
			text-align: right;
	}
.ck.ck-button .ck-button__keystroke, a.ck.ck-button .ck-button__keystroke {
		color: inherit;

		opacity: .5;
	}
[dir="ltr"] .ck.ck-button .ck-button__keystroke, [dir="ltr"] a.ck.ck-button .ck-button__keystroke {
			margin-left: var(--ck-spacing-large);
	}
[dir="rtl"] .ck.ck-button .ck-button__keystroke, [dir="rtl"] a.ck.ck-button .ck-button__keystroke {
			margin-right: var(--ck-spacing-large);
	}
/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/70 */
.ck.ck-button.ck-disabled:active,
		a.ck.ck-button.ck-disabled:active,
		.ck.ck-button.ck-disabled:focus,
		a.ck.ck-button.ck-disabled:focus {
			/* The disabled button should have a slightly less visible shadow when focused. */
			box-shadow: var(--ck-focus-disabled-outer-shadow), 0 0;
		}
.ck.ck-button.ck-disabled .ck-button__icon, a.ck.ck-button.ck-disabled .ck-button__icon {
			opacity: var(--ck-disabled-opacity);
		}
/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */
.ck.ck-button.ck-disabled .ck-button__label, a.ck.ck-button.ck-disabled .ck-button__label {
			opacity: var(--ck-disabled-opacity);
		}
.ck.ck-button.ck-disabled .ck-button__keystroke, a.ck.ck-button.ck-disabled .ck-button__keystroke {
			opacity: .3;
		}
.ck.ck-button.ck-button_with-text, a.ck.ck-button.ck-button_with-text {
		padding: var(--ck-spacing-tiny) var(--ck-spacing-standard);

		/* stylelint-disable-next-line no-descending-specificity */
	}
[dir="ltr"] .ck.ck-button.ck-button_with-text .ck-button__icon, [dir="ltr"] a.ck.ck-button.ck-button_with-text .ck-button__icon {
				margin-right: var(--ck-spacing-medium);
	}
[dir="rtl"] .ck.ck-button.ck-button_with-text .ck-button__icon, [dir="rtl"] a.ck.ck-button.ck-button_with-text .ck-button__icon {
				margin-left: var(--ck-spacing-medium);
	}
/* stylelint-disable-next-line no-descending-specificity */
.ck.ck-button.ck-button_with-keystroke .ck-button__label, a.ck.ck-button.ck-button_with-keystroke .ck-button__label {
			flex-grow: 1;
		}
/* A style of the button which is currently on, e.g. its feature is active. */
.ck.ck-button.ck-on, a.ck.ck-button.ck-on {
		background: var(--ck-color-button-on-background);

		color: var(--ck-color-button-on-color);
	}
.ck.ck-button.ck-on:not(.ck-disabled):hover, a.ck.ck-button.ck-on:not(.ck-disabled):hover {
			background: var(--ck-color-button-on-hover-background);
		}
.ck.ck-button.ck-on:not(.ck-disabled):active, a.ck.ck-button.ck-on:not(.ck-disabled):active {
			background: var(--ck-color-button-on-active-background);
		}
/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */
.ck.ck-button.ck-on.ck-disabled, a.ck.ck-button.ck-on.ck-disabled {
		background: var(--ck-color-button-on-disabled-background);
	}
.ck.ck-button.ck-button-save, a.ck.ck-button.ck-button-save {
		color: var(--ck-color-button-save);
	}
.ck.ck-button.ck-button-cancel, a.ck.ck-button.ck-button-cancel {
		color: var(--ck-color-button-cancel);
	}
/* A style of the button which handles the primary action. */
.ck.ck-button-action,
a.ck.ck-button-action {
	background: var(--ck-color-button-action-background);

	color: var(--ck-color-button-action-text);
}
.ck.ck-button-action:not(.ck-disabled):hover, a.ck.ck-button-action:not(.ck-disabled):hover {
			background: var(--ck-color-button-action-hover-background);
		}
.ck.ck-button-action:not(.ck-disabled):active, a.ck.ck-button-action:not(.ck-disabled):active {
			background: var(--ck-color-button-action-active-background);
		}
/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */
.ck.ck-button-action.ck-disabled, a.ck.ck-button-action.ck-disabled {
		background: var(--ck-color-button-action-disabled-background);
	}
.ck.ck-button-bold,
a.ck.ck-button-bold {
	font-weight: bold;
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A class which indicates that an element holding it is disabled.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/* Note: To avoid rendering issues (aliasing) but to preserve the responsive nature
of the component, floating–point numbers have been used which, for the default font size
(see: --ck-font-size-base), will generate simple integers. */
:root {
	/* 34px at 13px font-size */
	--ck-switch-button-toggle-width: 2.6153846154em;
	/* 14px at 13px font-size */
	--ck-switch-button-toggle-inner-size: calc(1.0769230769em + 1px);
	--ck-switch-button-translation: calc(
		var(--ck-switch-button-toggle-width) -
		var(--ck-switch-button-toggle-inner-size) -
		2px /* Border */
	);
	--ck-switch-button-inner-hover-shadow: 0 0 0 5px var(--ck-color-switch-button-inner-shadow);
}
/* Unlike a regular button, the switch button text color and background should never change.
	 * Changing toggle switch (background, outline) is enough to carry the information about the
	 * state of the entire component (https://github.com/ckeditor/ckeditor5/issues/12519)
	 */
.ck.ck-button.ck-switchbutton, .ck.ck-button.ck-switchbutton:hover, .ck.ck-button.ck-switchbutton:focus, .ck.ck-button.ck-switchbutton:active, .ck.ck-button.ck-switchbutton.ck-on:hover, .ck.ck-button.ck-switchbutton.ck-on:focus, .ck.ck-button.ck-switchbutton.ck-on:active {
		color: inherit;
		background: transparent;
	}
[dir="ltr"] .ck.ck-button.ck-switchbutton .ck-button__label {
			/* Separate the label from the switch */
			margin-right: calc(2 * var(--ck-spacing-large));
	}
[dir="rtl"] .ck.ck-button.ck-switchbutton .ck-button__label {
			/* Separate the label from the switch */
			margin-left: calc(2 * var(--ck-spacing-large));
	}
.ck.ck-button.ck-switchbutton .ck-button__toggle {
		border-radius: 0;

		/* Apply some smooth transition to the box-shadow and border. */
		/* Gently animate the background color of the toggle switch */
		transition: background 400ms ease, box-shadow .2s ease-in-out, outline .2s ease-in-out;
		border: 1px solid transparent;
		width: var(--ck-switch-button-toggle-width);
		background: var(--ck-color-switch-button-off-background);
	}
.ck-rounded-corners .ck.ck-button.ck-switchbutton .ck-button__toggle,
	.ck.ck-button.ck-switchbutton .ck-button__toggle.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
	}
[dir="ltr"] .ck.ck-button.ck-switchbutton .ck-button__toggle {
			/* Make sure the toggle is always to the right as far as possible. */
			margin-left: auto;
	}
[dir="rtl"] .ck.ck-button.ck-switchbutton .ck-button__toggle {
			/* Make sure the toggle is always to the left as far as possible. */
			margin-right: auto;
	}
.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner {
			border-radius: 0;

			width: var(--ck-switch-button-toggle-inner-size);
			height: var(--ck-switch-button-toggle-inner-size);
			background: var(--ck-color-switch-button-inner-background);

			/* Gently animate the inner part of the toggle switch */
			transition: all 300ms ease;
		}
.ck-rounded-corners .ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner,
	.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
				border-radius: calc(.5 * var(--ck-border-radius));
	}
@media (prefers-reduced-motion: reduce) {
.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner {
				transition: none;
		}
			}
.ck.ck-button.ck-switchbutton .ck-button__toggle:hover {
			background: var(--ck-color-switch-button-off-hover-background);
		}
.ck.ck-button.ck-switchbutton .ck-button__toggle:hover .ck-button__toggle__inner {
				box-shadow: var(--ck-switch-button-inner-hover-shadow);
			}
.ck.ck-button.ck-switchbutton.ck-disabled .ck-button__toggle {
		opacity: var(--ck-disabled-opacity);
	}
/* Overriding default .ck-button:focus styles + an outline around the toogle */
.ck.ck-button.ck-switchbutton:focus {
		border-color: transparent;
		outline: none;
		box-shadow: none;
	}
.ck.ck-button.ck-switchbutton:focus .ck-button__toggle {
			box-shadow: 0 0 0 1px var(--ck-color-base-background), 0 0 0 5px var(--ck-color-focus-outer-shadow);
			outline-offset: 1px;
			outline: var(--ck-focus-ring);
		}
/* stylelint-disable-next-line no-descending-specificity */
.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle {
			background: var(--ck-color-switch-button-on-background);
		}
.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle:hover {
				background: var(--ck-color-switch-button-on-hover-background);
			}
/*
				* Move the toggle switch to the right. It will be animated.
				*/
[dir="ltr"] .ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner {
					transform: translateX( var( --ck-switch-button-translation ) );
	}
[dir="rtl"] .ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner {
					transform: translateX( calc( -1 * var( --ck-switch-button-translation ) ) );
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-button.ck-list-item-button {
	padding: var(--ck-spacing-tiny) calc(2 * var(--ck-spacing-standard));
}
.ck.ck-button.ck-list-item-button,
	.ck.ck-button.ck-list-item-button.ck-on {
		background: var(--ck-color-list-background);
		color: var(--ck-color-text);
	}
[dir="ltr"] .ck.ck-button.ck-list-item-button:has(.ck-list-item-button__check-holder) {
			padding-left: var(--ck-spacing-small);
	}
[dir="rtl"] .ck.ck-button.ck-list-item-button:has(.ck-list-item-button__check-holder) {
			padding-right: var(--ck-spacing-small);
	}
/*
	 * `.ck-on` class and background styling is overridden for `ck-button` in many places.
	 * This is a workaround to make sure that the background is not overridden and uses similar
	 * selector specificity as the other overrides.
	 */
.ck.ck-button.ck-list-item-button:hover:not(.ck-disabled),
	.ck.ck-button.ck-list-item-button.ck-button.ck-on:hover,
	.ck.ck-button.ck-list-item-button.ck-on:not(.ck-list-item-button_toggleable),
	.ck.ck-button.ck-list-item-button.ck-on:hover {
		background: var(--ck-color-list-button-hover-background);
	}
.ck.ck-button.ck-list-item-button:hover:not(.ck-disabled):not(.ck-disabled), .ck.ck-button.ck-list-item-button.ck-button.ck-on:hover:not(.ck-disabled), .ck.ck-button.ck-list-item-button.ck-on:not(.ck-list-item-button_toggleable):not(.ck-disabled), .ck.ck-button.ck-list-item-button.ck-on:hover:not(.ck-disabled) {
			color: var(--ck-color-text);
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-collapsible-arrow-size: calc(0.5 * var(--ck-icon-size));
}
.ck.ck-collapsible > .ck.ck-button {
		width: 100%;
		font-weight: bold;
		border-radius: 0;
		color: inherit;
	}
.ck.ck-collapsible > .ck.ck-button:focus {
			background: transparent;
		}
.ck.ck-collapsible > .ck.ck-button:active, .ck.ck-collapsible > .ck.ck-button:not(:focus), .ck.ck-collapsible > .ck.ck-button:hover:not(:focus) {
			background: transparent;
			border-color: transparent;
			box-shadow: none;
		}
.ck.ck-collapsible > .ck.ck-button > .ck-icon {
			margin-right: var(--ck-spacing-medium);
			width: var(--ck-collapsible-arrow-size);
		}
.ck.ck-collapsible > .ck-collapsible__children {
		padding: var(--ck-spacing-medium) var(--ck-spacing-large) var(--ck-spacing-large);
	}
.ck.ck-collapsible.ck-collapsible_collapsed > .ck.ck-button .ck-icon {
			transform: rotate(-90deg);
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-color-grid-tile-size: 24px;

	/* Not using global colors here because these may change but some colors in a pallette
	 * require special treatment. For instance, this ensures no matter what the UI text color is,
	 * the check icon will look good on the black color tile. */
	--ck-color-color-grid-check-icon: hsl(212, 81%, 46%);
}
.ck.ck-color-grid {
	grid-gap: 5px;
	padding: 8px;
}
.ck.ck-color-grid__tile {
	transition: .2s ease box-shadow;
}
@media (forced-colors: none) {
		.ck.ck-color-grid__tile {
		width: var(--ck-color-grid-tile-size);
		height: var(--ck-color-grid-tile-size);
		min-width: var(--ck-color-grid-tile-size);
		min-height: var(--ck-color-grid-tile-size);
		padding: 0;
		border: 0;
		}

		.ck.ck-color-grid__tile.ck-on,
		.ck.ck-color-grid__tile:focus:not( .ck-disabled ),
		.ck.ck-color-grid__tile:hover:not( .ck-disabled ) {
			/* Disable the default .ck-button's border ring. */
			border: 0;
		}

		.ck.ck-color-grid__tile.ck-color-selector__color-tile_bordered {
			box-shadow: 0 0 0 1px var(--ck-color-base-border);
		}

		.ck.ck-color-grid__tile.ck-on {
			box-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-base-text);
		}

		.ck.ck-color-grid__tile:focus:not( .ck-disabled ),
		.ck.ck-color-grid__tile:hover:not( .ck-disabled ) {
			box-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-focus-border);
		}
	}
/*
	 * In high contrast mode, the colors are replaced with text labels.
	 * See https://github.com/ckeditor/ckeditor5/issues/14907.
	 */
@media (forced-colors: active) {
		.ck.ck-color-grid__tile {
		width: unset;
		height: unset;
		min-width: unset;
		min-height: unset;
		padding: 0 var(--ck-spacing-small);
		}

		.ck.ck-color-grid__tile .ck-button__label {
			display: inline-block;
		}
	}
@media (prefers-reduced-motion: reduce) {
.ck.ck-color-grid__tile {
		transition: none;
}
	}
.ck.ck-color-grid__tile.ck-disabled {
		cursor: unset;
		transition: unset;
	}
.ck.ck-color-grid__tile .ck.ck-icon {
		display: none;
		color: var(--ck-color-color-grid-check-icon);
	}
.ck.ck-color-grid__tile.ck-on .ck.ck-icon {
			display: block;
		}
.ck.ck-color-grid__label {
	padding: 0 var(--ck-spacing-standard);
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/* View fragment with color grids. */
.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__remove-color,
		.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker {
			width: 100%;
		}
.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker {
			padding: calc(var(--ck-spacing-standard) / 2) var(--ck-spacing-standard);
			border-bottom-left-radius: 0;
			border-bottom-right-radius: 0;
		}
.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker:not(:focus) {
				border-top: 1px solid var(--ck-color-base-border);
			}
[dir="ltr"] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker .ck.ck-icon {
					margin-right: var(--ck-spacing-standard);
	}
[dir="rtl"] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker .ck.ck-icon {
					margin-left: var(--ck-spacing-standard);
	}
.ck.ck-color-selector .ck-color-grids-fragment label.ck.ck-color-grid__label {
			font-weight: unset;
		}
/* View fragment with a color picker. */
.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker {
			padding: 8px;
		}
.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker {
				height: 100px;
				min-width: 180px;
			}
.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(saturation) {
					border-radius: var(--ck-border-radius) var(--ck-border-radius) 0 0;
				}
.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(hue) {
					border-radius: 0 0 var(--ck-border-radius) var(--ck-border-radius);
				}
.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(saturation-pointer),
				.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(hue-pointer) {
					width: 15px;
					height: 15px;
				}
.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar {
			padding: 0 8px 8px;
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-dialog-overlay-background-color: hsla( 0, 0%, 0%, .5 );
	--ck-dialog-drop-shadow: 0px 0px 6px 2px hsl(0deg 0% 0% / 15%);
	--ck-dialog-max-width: 100vw;
	--ck-dialog-max-height: 90vh;
	--ck-color-dialog-background: var(--ck-color-base-background);
	--ck-color-dialog-form-header-border: var(--ck-color-base-border);
}
.ck.ck-dialog-overlay {
	animation: ck-dialog-fade-in .3s;
	background: var(--ck-dialog-overlay-background-color);
	z-index: var(--ck-z-dialog);
}
.ck.ck-dialog {
	border-radius: 0;

	--ck-drop-shadow: var(--ck-dialog-drop-shadow);

	background: var(--ck-color-dialog-background);
	max-height: var(--ck-dialog-max-height);
	max-width: var(--ck-dialog-max-width);
	border: 1px solid var(--ck-color-base-border);
	overscroll-behavior: contain;
}
.ck-rounded-corners .ck.ck-dialog,
	.ck.ck-dialog.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
	}
.ck.ck-dialog {
	box-shadow: var(--ck-drop-shadow), 0 0;
}
.ck.ck-dialog .ck.ck-form__header {
		border-bottom: 1px solid var(--ck-color-dialog-form-header-border);
	}
.ck-dialog-scroll-locked {
	overflow: hidden;
}
@keyframes ck-dialog-fade-in {
	0% {
		background: hsla( 0, 0%, 0%, 0 );
	}

	100% {
		background: var(--ck-dialog-overlay-background-color);
	}
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-dialog .ck.ck-dialog__actions {
		padding: var(--ck-spacing-large);
	}
.ck.ck-dialog .ck.ck-dialog__actions > * + * {
			margin-left: var(--ck-spacing-large);
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A class which indicates that an element holding it is disabled.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-dropdown-arrow-size: calc(0.5 * var(--ck-icon-size));
}
.ck.ck-dropdown {
	/* Enable font size inheritance, which allows fluid UI scaling. */
	font-size: inherit;
}
.ck.ck-dropdown .ck-dropdown__arrow {
		width: var(--ck-dropdown-arrow-size);
	}
[dir="ltr"] .ck.ck-dropdown .ck-dropdown__arrow {
			right: var(--ck-spacing-standard);

			/* A space to accommodate the triangle. */
			margin-left: var(--ck-spacing-standard);
		}
[dir="rtl"] .ck.ck-dropdown .ck-dropdown__arrow {
			left: var(--ck-spacing-standard);

			/* A space to accommodate the triangle. */
			margin-right: var(--ck-spacing-small);
		}
.ck.ck-dropdown.ck-disabled .ck-dropdown__arrow {
		opacity: var(--ck-disabled-opacity);
	}
[dir="ltr"] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text) {
				/* Make sure dropdowns with just an icon have the right inner spacing */
				padding-left: var(--ck-spacing-small);
			}
[dir="rtl"] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text) {
				/* Make sure dropdowns with just an icon have the right inner spacing */
				padding-right: var(--ck-spacing-small);
			}
/* #23 */
.ck.ck-dropdown .ck-button.ck-dropdown__button .ck-button__label {
			width: 7em;
			overflow: hidden;
			text-overflow: ellipsis;
		}
/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/70 */
.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-disabled .ck-button__label {
			opacity: var(--ck-disabled-opacity);
		}
/* https://github.com/ckeditor/ckeditor5/issues/816 */
.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on {
			border-bottom-left-radius: 0;
			border-bottom-right-radius: 0;
		}
.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-dropdown__button_label-width_auto .ck-button__label {
			width: auto;
		}
/* https://github.com/ckeditor/ckeditor5/issues/8699 */
.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active,
		.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active {
			box-shadow: none;
		}
.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active:focus, .ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active:focus {
				box-shadow: var(--ck-focus-outer-shadow), 0 0;
			}
.ck.ck-dropdown__panel {
	border-radius: 0;

	background: var(--ck-color-dropdown-panel-background);
	border: 1px solid var(--ck-color-dropdown-panel-border);
	bottom: 0;

	/* Make sure the panel is at least as wide as the drop-down's button. */
	min-width: 100%;
}
.ck-rounded-corners .ck.ck-dropdown__panel,
	.ck.ck-dropdown__panel.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
	}
.ck.ck-dropdown__panel {
	box-shadow: var(--ck-drop-shadow), 0 0;

	/* Disabled corner border radius to be consistent with the .dropdown__button
	https://github.com/ckeditor/ckeditor5/issues/816 */
}
.ck.ck-dropdown__panel.ck-dropdown__panel_se {
		border-top-left-radius: 0;
	}
.ck.ck-dropdown__panel.ck-dropdown__panel_sw {
		border-top-right-radius: 0;
	}
.ck.ck-dropdown__panel.ck-dropdown__panel_ne {
		border-bottom-left-radius: 0;
	}
.ck.ck-dropdown__panel.ck-dropdown__panel_nw {
		border-bottom-right-radius: 0;
	}
.ck.ck-dropdown__panel:focus {
		outline: none;
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
.ck.ck-dropdown > .ck-dropdown__panel > .ck-list {
	/* Disabled radius of top-left border to be consistent with .dropdown__button
	https://github.com/ckeditor/ckeditor5/issues/816 */
	border-radius: 0;
}
.ck-rounded-corners .ck.ck-dropdown > .ck-dropdown__panel > .ck-list,
	.ck.ck-dropdown > .ck-dropdown__panel > .ck-list.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
		border-top-left-radius: 0;
	}
/* Make sure the button belonging to the first/last child of the list goes well with the
	border radius of the entire panel. */
.ck.ck-dropdown > .ck-dropdown__panel > .ck-list .ck-list__item:first-child > .ck-button {
			border-radius: 0;
		}
.ck-rounded-corners .ck.ck-dropdown > .ck-dropdown__panel > .ck-list .ck-list__item:first-child > .ck-button,
	.ck.ck-dropdown > .ck-dropdown__panel > .ck-list .ck-list__item:first-child > .ck-button.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
				border-top-left-radius: 0;
				border-bottom-left-radius: 0;
				border-bottom-right-radius: 0;
	}
.ck.ck-dropdown > .ck-dropdown__panel > .ck-list .ck-list__item:last-child > .ck-button {
			border-radius: 0;
		}
.ck-rounded-corners .ck.ck-dropdown > .ck-dropdown__panel > .ck-list .ck-list__item:last-child > .ck-button,
	.ck.ck-dropdown > .ck-dropdown__panel > .ck-list .ck-list__item:last-child > .ck-button.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
				border-top-left-radius: 0;
				border-top-right-radius: 0;
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
:root {
	--ck-color-split-button-hover-background: hsl(0, 0%, 92%);
	--ck-color-split-button-hover-border: hsl(0, 0%, 70%);
}
/*
	 * Note: ck-rounded and ck-dir mixins don't go together (because they both use @nest).
	 */
[dir="ltr"] .ck.ck-splitbutton:hover > .ck-splitbutton__action, [dir="ltr"] .ck.ck-splitbutton.ck-splitbutton_open > .ck-splitbutton__action {
			/* Don't round the action button on the right side */
			border-top-right-radius: unset;
			border-bottom-right-radius: unset;
		}
[dir="rtl"] .ck.ck-splitbutton:hover > .ck-splitbutton__action, [dir="rtl"] .ck.ck-splitbutton.ck-splitbutton_open > .ck-splitbutton__action {
			/* Don't round the action button on the left side */
			border-top-left-radius: unset;
			border-bottom-left-radius: unset;
		}
.ck.ck-splitbutton > .ck-splitbutton__arrow {
		/* It's a text-less button and since the icon is positioned absolutely in such situation,
		it must get some arbitrary min-width. */
		min-width: unset;
	}
[dir="ltr"] .ck.ck-splitbutton > .ck-splitbutton__arrow {
			/* Don't round the arrow button on the left side */
			border-top-left-radius: unset;
			border-bottom-left-radius: unset;
		}
[dir="rtl"] .ck.ck-splitbutton > .ck-splitbutton__arrow {
			/* Don't round the arrow button on the right side */
			border-top-right-radius: unset;
			border-bottom-right-radius: unset;
		}
.ck.ck-splitbutton > .ck-splitbutton__arrow svg {
			width: var(--ck-dropdown-arrow-size);
		}
/* Make sure the divider stretches 100% height of the button
	https://github.com/ckeditor/ckeditor5/issues/10936 */
.ck.ck-splitbutton > .ck-splitbutton__arrow:not(:focus) {
		border-top-width: 0px;
		border-bottom-width: 0px;
	}
/* Don't round the bottom left and right corners of the buttons when "open"
	https://github.com/ckeditor/ckeditor5/issues/816 */
.ck.ck-splitbutton.ck-splitbutton_open {
		border-radius: 0;
	}
.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open,
	.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
	}
.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open > .ck-splitbutton__action, .ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners > .ck-splitbutton__action {
				border-bottom-left-radius: 0;
			}
.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open > .ck-splitbutton__arrow, .ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners > .ck-splitbutton__arrow {
				border-bottom-right-radius: 0;
			}
/* When the split button is "open" (the arrow is on) or being hovered, it should get some styling
	as a whole. The background of both buttons should stand out and there should be a visual
	separation between both buttons. */
/* When the split button hovered as a whole, not as individual buttons. */
.ck.ck-splitbutton.ck-splitbutton_open > .ck-button:not(.ck-on):not(.ck-disabled):not(:hover), .ck.ck-splitbutton:hover > .ck-button:not(.ck-on):not(.ck-disabled):not(:hover) {
			background: var(--ck-color-split-button-hover-background);
		}
/* Splitbutton separator needs to be set with the ::after pseudoselector
		to display properly the borders on focus */
.ck.ck-splitbutton.ck-splitbutton_open > .ck-splitbutton__arrow:not(.ck-disabled)::after, .ck.ck-splitbutton:hover > .ck-splitbutton__arrow:not(.ck-disabled)::after {
			content: '';
			position: absolute;
			width: 1px;
			height: 100%;
			background-color: var(--ck-color-split-button-hover-border);
		}
/* Make sure the divider between the buttons looks fine when the button is focused */
.ck.ck-splitbutton.ck-splitbutton_open > .ck-splitbutton__arrow:focus::after, .ck.ck-splitbutton:hover > .ck-splitbutton__arrow:focus::after {
			--ck-color-split-button-hover-border: var(--ck-color-focus-border);
		}
[dir="ltr"] .ck.ck-splitbutton.ck-splitbutton_open > .ck-splitbutton__arrow:not(.ck-disabled)::after, [dir="ltr"] .ck.ck-splitbutton:hover > .ck-splitbutton__arrow:not(.ck-disabled)::after {
				left: -1px;
			}
[dir="rtl"] .ck.ck-splitbutton.ck-splitbutton_open > .ck-splitbutton__arrow:not(.ck-disabled)::after, [dir="rtl"] .ck.ck-splitbutton:hover > .ck-splitbutton__arrow:not(.ck-disabled)::after {
				right: -1px;
			}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-toolbar-dropdown .ck-toolbar {
	border: 0;
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A class which indicates that an element holding it is disabled.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements a button of given background color.
 *
 * @param {String} $background - Background color of the button.
 * @param {String} $border - Border color of the button.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * All menu buttons.
 */
.ck.ck-button.ck-dropdown-menu-list__nested-menu__button {
	width: 100%;
	padding: var(--ck-spacing-tiny) calc(2 * var(--ck-spacing-standard));
	border-radius: 0;
}
.ck.ck-button.ck-dropdown-menu-list__nested-menu__button:focus {
		border-color: transparent;
		box-shadow: none;
	}
.ck.ck-button.ck-dropdown-menu-list__nested-menu__button:focus:not(.ck-on) {
			background: var(--ck-color-button-default-hover-background);
		}
.ck.ck-button.ck-dropdown-menu-list__nested-menu__button > .ck-button__label {
		flex-grow: 1;
		overflow: hidden;
		text-overflow: ellipsis;
	}
.ck.ck-button.ck-dropdown-menu-list__nested-menu__button.ck-disabled > .ck-button__label {
		opacity: var(--ck-disabled-opacity);
	}
/* Spacing in buttons that miss the icon. */
.ck.ck-button.ck-dropdown-menu-list__nested-menu__button.ck-icon-spacing:not(:has(.ck-button__icon)) > .ck-button__label {
		margin-left: calc(var(--ck-icon-size) - var(--ck-spacing-small));
	}
.ck.ck-button.ck-dropdown-menu-list__nested-menu__button > .ck-dropdown-menu-list__nested-menu__button__arrow {
		width: var(--ck-dropdown-arrow-size);
	}
[dir="ltr"] .ck.ck-button.ck-dropdown-menu-list__nested-menu__button > .ck-dropdown-menu-list__nested-menu__button__arrow {
			transform: rotate(-90deg);

			/* Nudge the arrow gently to the right because its center of gravity is to the left */
			margin-right: calc(-1 * var(--ck-spacing-small));
	}
[dir="rtl"] .ck.ck-button.ck-dropdown-menu-list__nested-menu__button > .ck-dropdown-menu-list__nested-menu__button__arrow {
			transform: rotate(90deg);

			/* Nudge the arrow gently to the left because its center of gravity is to the right (after rotation). */
			margin-left: calc(-1 * var(--ck-spacing-small));
	}
.ck.ck-button.ck-dropdown-menu-list__nested-menu__button.ck-disabled > .ck-dropdown-menu-list__nested-menu__button__arrow {
		opacity: var(--ck-disabled-opacity);
	}
[dir="ltr"] .ck.ck-button.ck-dropdown-menu-list__nested-menu__button:not(.ck-button_with-text) {
			padding-left: var(--ck-spacing-small);
		}
[dir="ltr"] .ck.ck-button.ck-dropdown-menu-list__nested-menu__button > .ck-dropdown-menu-list__nested-menu__button__arrow {
			right: var(--ck-spacing-standard);

			/* A space to accommodate the triangle. */
			margin-left: var(--ck-spacing-standard);
		}
[dir="rtl"] .ck.ck-button.ck-dropdown-menu-list__nested-menu__button:not(.ck-button_with-text) {
			padding-right: var(--ck-spacing-small);
		}
[dir="rtl"] .ck.ck-button.ck-dropdown-menu-list__nested-menu__button > .ck-dropdown-menu-list__nested-menu__button__arrow {
			left: var(--ck-spacing-standard);

			/* A space to accommodate the triangle. */
			margin-right: var(--ck-spacing-small);
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-dropdown-menu-menu-item-min-width: 18em;
}
.ck.ck-dropdown-menu-list__nested-menu__item {
	min-width: var(--ck-dropdown-menu-menu-item-min-width);
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * List item buttons.
 */
.ck-button.ck-dropdown-menu-list__nested-menu__item__button {
	border-radius: 0;
}
.ck-button.ck-dropdown-menu-list__nested-menu__item__button > .ck-spinner-container,
	.ck-button.ck-dropdown-menu-list__nested-menu__item__button > .ck-spinner-container .ck-spinner {
		/* These styles correspond to .ck-icon so that the spinner seamlessly replaces the icon. */
		--ck-toolbar-spinner-size: 20px;
	}
.ck-button.ck-dropdown-menu-list__nested-menu__item__button > .ck-spinner-container {
		/* These margins are the same as for .ck-icon. */
		margin-left: calc(-1 * var(--ck-spacing-small));
		margin-right: var(--ck-spacing-small);
	}
/*
	 * Hovered items automatically get focused. Default focus styles look odd
	 * while moving across a huge list of items so let's get rid of them
	 */
.ck-button.ck-dropdown-menu-list__nested-menu__item__button:focus {
		border-color: transparent;
		box-shadow: none;
	}
.ck-button.ck-dropdown-menu-list__nested-menu__item__button:focus:not(.ck-on) {
			background: var(--ck-color-button-default-hover-background);
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
:root {
	--ck-dropdown-menu-menu-panel-max-width: 75vw;
}
.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel {
	box-shadow: var(--ck-drop-shadow), 0 0;

	background: var(--ck-color-dropdown-panel-background);
	border: 1px solid var(--ck-color-dropdown-panel-border);
	bottom: 0;
	height: fit-content;
	max-width: var(--ck-dropdown-menu-menu-panel-max-width);

	/* Reset balloon styling */
}
.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel::after,
	.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel::before {
		display: none;
	}
/* Corner border radius consistent with the button. */
.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_es,
	.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_se {
		border-top-left-radius: 0;
	}
.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_ws,
	.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_sw {
		border-top-right-radius: 0;
	}
.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_en,
	.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_ne {
		border-bottom-left-radius: 0;
	}
.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_wn,
	.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_nw {
		border-bottom-right-radius: 0;
	}
.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel:focus {
		outline: none;
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A visual style of focused element's border.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
:root {
	--ck-accessibility-help-dialog-max-width: 600px;
	--ck-accessibility-help-dialog-max-height: 400px;
	--ck-accessibility-help-dialog-border-color: hsl(220, 6%, 81%);
	--ck-accessibility-help-dialog-code-background-color: hsl(0deg 0% 92.94%);
	--ck-accessibility-help-dialog-kbd-shadow-color: hsl(0deg 0% 61%);
}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content {
	padding: var(--ck-spacing-large);
	max-width: var(--ck-accessibility-help-dialog-max-width);
	max-height: var(--ck-accessibility-help-dialog-max-height);
	overflow: auto;
	user-select: text;

	border: 1px solid transparent;
}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content:focus {
		/* Disable native outline. */
		outline: none;
		border: var(--ck-focus-ring);
		box-shadow: var(--ck-focus-outer-shadow), 0 0;
	}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content * {
		white-space: normal;
	}
/* Hide the main label of the content container. */
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content .ck-label {
		display: none;
	}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h3 {
		font-weight: bold;
		font-size: 1.2em;
	}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h4 {
		font-weight: bold;
		font-size: 1em;
	}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content p,
	.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h3,
	.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h4,
	.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content table {
		margin: 1em 0;
	}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl {
		display: grid;
		grid-template-columns: 2fr 1fr;
		border-top: 1px solid var(--ck-accessibility-help-dialog-border-color);
		border-bottom: none;
	}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dt, .ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dd {
			border-bottom: 1px solid var(--ck-accessibility-help-dialog-border-color);
			padding: .4em 0;
		}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dt {
			grid-column-start: 1;
		}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dd {
			grid-column-start: 2;
			text-align: right;
		}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content kbd, .ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content code {
		display: inline-block;
		background: var(--ck-accessibility-help-dialog-code-background-color);
		padding: .4em;
		vertical-align: middle;
		line-height: 1;
		border-radius: 2px;
		text-align: center;
		font-size: .9em;
	}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content code {
		font-family: monospace;
	}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content kbd {
		min-width: 1.8em;
		box-shadow: 0px 1px 1px var(--ck-accessibility-help-dialog-kbd-shadow-color);
		margin: 0 1px;
	}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content kbd + kbd {
			margin-left: 2px;
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A class which indicates that an element holding it is disabled.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A visual style of focused element's border.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements a button of given background color.
 *
 * @param {String} $background - Background color of the button.
 * @param {String} $border - Border color of the button.
 */
:root {
	--ck-color-editable-blur-selection: hsl(0, 0%, 85%);
}
.ck.ck-editor__editable:not(.ck-editor__nested-editable) {
	border-radius: 0;
}
.ck-rounded-corners .ck.ck-editor__editable:not(.ck-editor__nested-editable),
	.ck.ck-editor__editable.ck-rounded-corners:not(.ck-editor__nested-editable) {
		border-radius: var(--ck-border-radius);
	}
.ck.ck-editor__editable.ck-focused:not(.ck-editor__nested-editable) {
		/* Disable native outline. */
		outline: none;
		border: var(--ck-focus-ring);
		box-shadow: var(--ck-inner-shadow), 0 0;
	}
.ck.ck-editor__editable_inline {
	overflow: auto;
	padding: 0 var(--ck-spacing-standard);
	border: 1px solid transparent;
}
.ck.ck-editor__editable_inline[dir="ltr"] {
		text-align: left;
	}
.ck.ck-editor__editable_inline[dir="rtl"] {
		text-align: right;
	}
/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/116 */
.ck.ck-editor__editable_inline > *:first-child {
		margin-top: var(--ck-spacing-large);
	}
/* https://github.com/ckeditor/ckeditor5/issues/847 */
.ck.ck-editor__editable_inline > *:last-child {
		/*
		 * This value should match with the default margins of the block elements (like .media or .image)
		 * to avoid a content jumping when the fake selection container shows up (See https://github.com/ckeditor/ckeditor5/issues/9825).
		 */
		margin-bottom: var(--ck-spacing-large);
	}
/* https://github.com/ckeditor/ckeditor5/issues/6517 */
.ck.ck-editor__editable_inline.ck-blurred ::selection {
		background: var(--ck-color-editable-blur-selection);
	}
/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/111 */
.ck.ck-balloon-panel.ck-toolbar-container[class*="arrow_n"]::after {
		border-bottom-color: var(--ck-color-panel-background);
	}
.ck.ck-balloon-panel.ck-toolbar-container[class*="arrow_s"]::after {
		border-top-color: var(--ck-color-panel-background);
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-form-header-height: 44px;
}
.ck.ck-form__header {
	padding: var(--ck-spacing-small) var(--ck-spacing-large);
	height: var(--ck-form-header-height);
	line-height: var(--ck-form-header-height);
	border-bottom: 1px solid var(--ck-color-base-border);
}
[dir="ltr"] .ck.ck-form__header > .ck-icon {
			margin-right: var(--ck-spacing-medium);
	}
[dir="rtl"] .ck.ck-form__header > .ck-icon {
			margin-left: var(--ck-spacing-medium);
	}
.ck.ck-form__header .ck-form__header__label {
		--ck-font-size-base: 15px;
		font-weight: bold;
	}
/* Padding when back button is hidden */
.ck.ck-form__header:has(.ck-button-back.ck-hidden) {
		padding-inline: var(--ck-spacing-large) var(--ck-spacing-large);
	}
/* Padding when back button is visible */
.ck.ck-form__header:has(.ck-button-back:not(.ck-hidden)) {
		padding-inline: var(--ck-spacing-small) var(--ck-spacing-small);
	}
.ck.ck-form__header > .ck-button-back {
		margin-inline-end: var(--ck-spacing-small);
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-icon-size: calc(var(--ck-line-height-base) * var(--ck-font-size-normal));
	--ck-icon-font-size: .8333350694em;
}
.ck.ck-icon {
	width: var(--ck-icon-size);
	height: var(--ck-icon-size);

	/* Multiplied by the height of the line in "px" should give SVG "viewport" dimensions */
	font-size: var(--ck-icon-font-size);

	/* Inherit cursor style (#5). */
	cursor: inherit;
}
.ck.ck-icon * {
		/* Inherit cursor style (#5). */
		cursor: inherit;
	}
/* Allows dynamic coloring of an icon by inheriting its color from the parent. */
.ck.ck-icon.ck-icon_inherit-color {
		color: inherit;
	}
.ck.ck-icon.ck-icon_inherit-color * {
			color: inherit;
		}
.ck.ck-icon.ck-icon_inherit-color *:not([fill]) {
				/* Needed by FF. */
				fill: currentColor;
			}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A visual style of focused element's border.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
:root {
	--ck-input-width: 18em;

	/* Backward compatibility. */
	--ck-input-text-width: var(--ck-input-width);
}
.ck.ck-input {
	border-radius: 0;

	background: var(--ck-color-input-background);
	border: 1px solid var(--ck-color-input-border);
	padding: var(--ck-spacing-extra-tiny) var(--ck-spacing-medium);
	min-width: var(--ck-input-width);

	/* This is important to stay of the same height as surrounding buttons */
	min-height: var(--ck-ui-component-min-height);

	/* Apply some smooth transition to the box-shadow and border. */
	transition: box-shadow .1s ease-in-out, border .1s ease-in-out;
}
.ck-rounded-corners .ck.ck-input,
	.ck.ck-input.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
	}
@media (prefers-reduced-motion: reduce) {
.ck.ck-input {
		transition: none;
}
	}
.ck.ck-input:focus {
		/* Disable native outline. */
		outline: none;
		border: var(--ck-focus-ring);
		box-shadow: var(--ck-focus-outer-shadow), 0 0;
	}
.ck.ck-input[readonly] {
		border: 1px solid var(--ck-color-input-disabled-border);
		background: var(--ck-color-input-disabled-background);
		color: var(--ck-color-input-disabled-text);
	}
.ck.ck-input[readonly]:focus {
			/* The read-only input should have a slightly less visible shadow when focused. */
			box-shadow: var(--ck-focus-disabled-outer-shadow), 0 0;
		}
.ck.ck-input.ck-error {
		border-color: var(--ck-color-input-error-border);
		animation: ck-input-shake .3s ease both;
	}
@media (prefers-reduced-motion: reduce) {
.ck.ck-input.ck-error {
			animation: none;
	}
		}
.ck.ck-input.ck-error:focus {
			box-shadow: var(--ck-focus-error-outer-shadow), 0 0;
		}
@keyframes ck-input-shake {
	20% {
		transform: translateX(-2px);
	}

	40% {
		transform: translateX(2px);
	}

	60% {
		transform: translateX(-1px);
	}

	80% {
		transform: translateX(1px);
	}
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-label {
	font-weight: bold;
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
:root {
	--ck-labeled-field-view-transition: .1s cubic-bezier(0, 0, 0.24, 0.95);
	--ck-labeled-field-empty-unfocused-max-width: 100% - 2 * var(--ck-spacing-medium);
	--ck-labeled-field-label-default-position-x: var(--ck-spacing-medium);
	--ck-labeled-field-label-default-position-y: calc(0.6 * var(--ck-font-size-base));
	--ck-color-labeled-field-label-background: var(--ck-color-base-background);
}
.ck.ck-labeled-field-view {
	border-radius: 0;
}
.ck-rounded-corners .ck.ck-labeled-field-view,
	.ck.ck-labeled-field-view.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
	}
.ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper {
		width: 100%;
	}
.ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {
			top: 0px;

			pointer-events: none;

			background: var(--ck-color-labeled-field-label-background);
			padding: 0 calc(.5 * var(--ck-font-size-tiny));
			line-height: initial;
			font-weight: normal;

			/* Prevent overflow when the label is longer than the input */
			text-overflow: ellipsis;
			overflow: hidden;

			max-width: 100%;

			transition:
				transform var(--ck-labeled-field-view-transition),
				padding var(--ck-labeled-field-view-transition),
				background var(--ck-labeled-field-view-transition);
		}
[dir="ltr"] .ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {
				left: 0px;
				transform-origin: 0 0;
				/* By default, display the label scaled down above the field. */
				transform: translate(var(--ck-spacing-medium), -6px) scale(.75);
	}
[dir="rtl"] .ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {
				right: 0px;
				transform-origin: 100% 0;
				transform: translate(calc(-1 * var(--ck-spacing-medium)), -6px) scale(.75);
	}
@media (prefers-reduced-motion: reduce) {
.ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {
				transition: none;
		}
			}
.ck.ck-labeled-field-view.ck-error > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {
			color: var(--ck-color-base-error);
		}
.ck.ck-labeled-field-view.ck-error .ck-input:not([readonly]) + .ck.ck-label {
			color: var(--ck-color-base-error);
		}
.ck.ck-labeled-field-view .ck-labeled-field-view__status {
		font-size: var(--ck-font-size-small);
		margin-top: var(--ck-spacing-small);

		/* Let the info wrap to the next line to avoid stretching the layout horizontally.
		The status could be very long. */
		white-space: normal;
	}
.ck.ck-labeled-field-view .ck-labeled-field-view__status.ck-labeled-field-view__status_error {
			color: var(--ck-color-base-error);
		}
/* Disabled fields and fields that have no focus should fade out. */
.ck.ck-labeled-field-view.ck-disabled > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label,
	.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {
		color: var(--ck-color-input-disabled-text);
	}
/* Fields that are disabled or not focused and without a placeholder should have full-sized labels. */
/* stylelint-disable-next-line no-descending-specificity */
.ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label,
	.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {

		/* Compensate for the default translate position. */
		max-width: calc(var(--ck-labeled-field-empty-unfocused-max-width));

		background: transparent;
		padding: 0;
	}
[dir="ltr"] .ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label, [dir="ltr"] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {
			transform: translate(var(--ck-labeled-field-label-default-position-x), var(--ck-labeled-field-label-default-position-y)) scale(1);
	}
[dir="rtl"] .ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label, [dir="rtl"] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {
			transform: translate(calc(-1 * var(--ck-labeled-field-label-default-position-x)), var(--ck-labeled-field-label-default-position-y)) scale(1);
	}
/*------ DropdownView integration ----------------------------------------------------------------------------------- */
/* Make sure dropdown' background color in any of dropdown's state does not collide with labeled field. */
.ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown > .ck.ck-button {
		background: transparent;
	}
/* When the dropdown is "empty", the labeled field label replaces its label. */
.ck.ck-labeled-field-view.ck-labeled-field-view_empty > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown > .ck-button > .ck-button__label {
		opacity: 0;
	}
/* Make sure the label of the empty, unfocused input does not cover the dropdown arrow. */
.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown + .ck-label {
		max-width: calc(var(--ck-labeled-field-empty-unfocused-max-width) - var(--ck-dropdown-arrow-size) - var(--ck-spacing-standard));
	}
.ck.ck-labeled-field-view.ck-labeled-field-view_full-width {
		flex-grow: 1;
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-labeled-input .ck-labeled-input__status {
	font-size: var(--ck-font-size-small);
	margin-top: var(--ck-spacing-small);

	/* Let the info wrap to the next line to avoid stretching the layout horizontally.
	The status could be very long. */
	white-space: normal;
}
.ck.ck-labeled-input .ck-labeled-input__status_error {
	color: var(--ck-color-base-error);
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A class which indicates that an element holding it is disabled.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-list {
	border-radius: 0;

	list-style-type: none;
	background: var(--ck-color-list-background);

	/* A spacing at the beginning and end of the list */
	padding: var(--ck-spacing-small) 0;
}
.ck-rounded-corners .ck.ck-list,
	.ck.ck-list.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
	}
.ck.ck-list__item {
	cursor: default;

	/* Almost as wide as menu bar items. */
	min-width: 15em;
}
.ck.ck-list__item > .ck-button:not(.ck-list-item-button) {
		padding: var(--ck-spacing-tiny) calc(2 * var(--ck-spacing-standard));
		min-height: unset;
		width: 100%;
		border-radius: 0;
	}
[dir="ltr"] .ck.ck-list__item > .ck-button:not(.ck-list-item-button) {
			text-align: left;
	}
[dir="rtl"] .ck.ck-list__item > .ck-button:not(.ck-list-item-button) {
			text-align: right;
	}
.ck.ck-list__item > .ck-button:not(.ck-list-item-button) .ck-button__label {
			/* https://github.com/ckeditor/ckeditor5-heading/issues/63 */
			line-height: calc(var(--ck-line-height-base) * var(--ck-font-size-base));
		}
.ck.ck-list__item > .ck-button:not(.ck-list-item-button):active {
			box-shadow: none;
		}
.ck.ck-list__item > .ck-button.ck-on:not(.ck-list-item-button) {
			background: var(--ck-color-list-button-on-background);
			color: var(--ck-color-list-button-on-text);
		}
.ck.ck-list__item > .ck-button.ck-on:not(.ck-list-item-button):active {
				box-shadow: none;
			}
.ck.ck-list__item > .ck-button.ck-on:not(.ck-list-item-button):hover:not(.ck-disabled) {
				background: var(--ck-color-list-button-on-background-focus);
			}
.ck.ck-list__item > .ck-button.ck-on:not(.ck-list-item-button):focus:not(.ck-disabled) {
				border-color: var(--ck-color-base-background);
			}
.ck.ck-list__item > .ck-button:not(.ck-list-item-button):hover:not(.ck-disabled) {
			background: var(--ck-color-list-button-hover-background);
		}
/* It's unnecessary to change the background/text of a switch toggle; it has different ways
	of conveying its state (like the switcher) */
.ck.ck-list__item > .ck-button.ck-switchbutton.ck-on {
			background: var(--ck-color-list-background);
			color: inherit;
		}
.ck.ck-list__item > .ck-button.ck-switchbutton.ck-on:hover:not(.ck-disabled) {
				background: var(--ck-color-list-button-hover-background);
				color: inherit;
			}
.ck-list .ck-list__group {
	padding-top: var(--ck-spacing-medium);

	/* Lists come with an inner vertical padding. Don't duplicate it. */
}
.ck-list .ck-list__group:first-child {
		padding-top: 0;
	}
/* The group should have a border when it's not the first item. */
*:not(.ck-hidden) ~ .ck-list .ck-list__group {
		border-top: 1px solid var(--ck-color-base-border);
	}
.ck-list .ck-list__group > .ck-label {
		font-size: 11px;
		font-weight: bold;
		padding: var(--ck-spacing-medium) var(--ck-spacing-large) 0;
	}
.ck.ck-list__separator {
	height: 1px;
	width: 100%;
	background: var(--ck-color-base-border);

	/* Give the separator some air */
	margin: var(--ck-spacing-small) 0;
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-menu-bar {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	background: var(--ck-color-base-background);
	padding: var(--ck-spacing-small);
	gap: var(--ck-spacing-small);
	border: 1px solid var(--ck-color-toolbar-border);
	width: 100%;
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-menu-bar__menu {
	/* Enable font size inheritance, which allows fluid UI scaling. */
	font-size: inherit;
}
.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level {
		max-width: 100%;
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A class which indicates that an element holding it is disabled.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements a button of given background color.
 *
 * @param {String} $background - Background color of the button.
 * @param {String} $border - Border color of the button.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
	 * All menu buttons.
	 */
.ck.ck-menu-bar__menu > .ck-menu-bar__menu__button {
		width: 100%;
	}
.ck.ck-menu-bar__menu > .ck-menu-bar__menu__button > .ck-button__label {
			flex-grow: 1;
			overflow: hidden;
			text-overflow: ellipsis;
		}
.ck.ck-menu-bar__menu > .ck-menu-bar__menu__button.ck-disabled > .ck-button__label {
			opacity: var(--ck-disabled-opacity);
		}
[dir="ltr"] .ck.ck-menu-bar__menu > .ck-menu-bar__menu__button:not(.ck-button_with-text) {
				padding-left: var(--ck-spacing-small);
			}
[dir="rtl"] .ck.ck-menu-bar__menu > .ck-menu-bar__menu__button:not(.ck-button_with-text) {
				padding-right: var(--ck-spacing-small);
			}
/*
	 * Top-level menu buttons only.
	 */
.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level > .ck-menu-bar__menu__button {
		padding: var(--ck-spacing-small) var(--ck-spacing-medium);
		min-height: unset;
	}
.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level > .ck-menu-bar__menu__button .ck-button__label {
			width: unset;
			line-height: unset;

			/*
			 * Top-level buttons don't use ellipsis and overflow: hidden clips descenders.
			 *  See https://github.com/ckeditor/ckeditor5/issues/17422.
			 */
			overflow: visible;
		}
.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level > .ck-menu-bar__menu__button.ck-on {
			border-bottom-left-radius: 0;
			border-bottom-right-radius: 0;
		}
.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level > .ck-menu-bar__menu__button .ck-icon {
			display: none;
		}
/*
	 * Sub-menu buttons.
	 */
.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button {
		border-radius: 0;
	}
.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button > .ck-menu-bar__menu__button__arrow {
			width: var(--ck-dropdown-arrow-size);
		}
[dir="ltr"] .ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button > .ck-menu-bar__menu__button__arrow {
				transform: rotate(-90deg);

				/* A space to accommodate the triangle. */
				margin-left: var(--ck-spacing-standard);

				/* Nudge the arrow gently to the right because its center of gravity is to the left */
				margin-right: calc(-1 * var(--ck-spacing-small));
	}
[dir="rtl"] .ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button > .ck-menu-bar__menu__button__arrow {
				transform: rotate(90deg);

				left: var(--ck-spacing-standard);

				/* A space to accommodate the triangle. */
				margin-right: var(--ck-spacing-small);

				/* Nudge the arrow gently to the left because its center of gravity is to the right (after rotation). */
				margin-left: calc(-1 * var(--ck-spacing-small));
	}
.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button.ck-disabled > .ck-menu-bar__menu__button__arrow {
			opacity: var(--ck-disabled-opacity);
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-menu-bar-menu-item-min-width: 18em;
}
.ck.ck-menu-bar__menu .ck.ck-menu-bar__menu__item {
	min-width: var(--ck-menu-bar-menu-item-min-width);
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
	 * List item buttons.
	 */
.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button {
		border-radius: 0;
	}
.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button > .ck-spinner-container,
		.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button > .ck-spinner-container .ck-spinner {
			/* These styles correspond to .ck-icon so that the spinner seamlessly replaces the icon. */
			--ck-toolbar-spinner-size: 20px;
		}
.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button > .ck-spinner-container {
			/* This ensures margins corresponding to the .ck-icon. */
			font-size: var(--ck-icon-font-size);
		}
[dir="ltr"] .ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button > .ck-spinner-container {
				margin-right: var(--ck-spacing-medium);
	}
[dir="rtl"] .ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button > .ck-spinner-container {
				margin-left: var(--ck-spacing-medium);
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A visual style of focused element's border.
 */
:root {
	--ck-menu-bar-menu-panel-max-width: 75vw;
}
.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel {
	border-radius: 0;

	background: var(--ck-color-dropdown-panel-background);
	border: 1px solid var(--ck-color-dropdown-panel-border);
	bottom: 0;
	height: fit-content;
	max-width: var(--ck-menu-bar-menu-panel-max-width);
}
.ck-rounded-corners .ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel,
	.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
	}
.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel {
	box-shadow: var(--ck-drop-shadow), 0 0;

	/* Corner border radius consistent with the button. */
}
.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_es,
	.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_se {
		border-top-left-radius: 0;
	}
.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ws,
	.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_sw {
		border-top-right-radius: 0;
	}
.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_en,
	.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ne {
		border-bottom-left-radius: 0;
	}
.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_wn,
	.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_nw {
		border-bottom-right-radius: 0;
	}
.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel:focus {
		outline: none;
	}
.ck.ck-menu-bar .ck-list-item-button:focus,
		.ck.ck-menu-bar .ck-list-item-button:active {
			border-color: transparent;
			box-shadow: none;
		}
.ck.ck-menu-bar.ck-menu-bar_focus-border-enabled .ck-list-item-button:focus,
		.ck.ck-menu-bar.ck-menu-bar_focus-border-enabled .ck-list-item-button:active {
			/* Fix truncated shadows due to rendering order. */
			position: relative;
			z-index: 2;

			/* Disable native outline. */

			outline: none;

			border: var(--ck-focus-ring);
			box-shadow: var(--ck-focus-outer-shadow), 0 0;
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
:root {
	--ck-balloon-border-width: 1px;
	--ck-balloon-arrow-offset: 2px;
	--ck-balloon-arrow-height: 10px;
	--ck-balloon-arrow-half-width: 8px;
	--ck-balloon-arrow-drop-shadow: 0 2px 2px var(--ck-color-shadow-drop);
}
.ck.ck-balloon-panel {
	border-radius: 0;

	min-height: 15px;

	background: var(--ck-color-panel-background);
	border: var(--ck-balloon-border-width) solid var(--ck-color-panel-border);
}
.ck-rounded-corners .ck.ck-balloon-panel,
	.ck.ck-balloon-panel.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
	}
.ck.ck-balloon-panel {
	box-shadow: var(--ck-drop-shadow), 0 0;
}
.ck.ck-balloon-panel.ck-balloon-panel_with-arrow::before,
		.ck.ck-balloon-panel.ck-balloon-panel_with-arrow::after {
			width: 0;
			height: 0;
			border-style: solid;
		}
.ck.ck-balloon-panel[class*="arrow_n"]::before,
		.ck.ck-balloon-panel[class*="arrow_n"]::after {
			border-width: 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width);
		}
.ck.ck-balloon-panel[class*="arrow_n"]::before {
			border-color: transparent transparent var(--ck-color-panel-border) transparent;
			margin-top: calc( -1 * var(--ck-balloon-border-width) );
		}
.ck.ck-balloon-panel[class*="arrow_n"]::after {
			border-color: transparent transparent var(--ck-color-panel-background) transparent;
			margin-top: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );
		}
.ck.ck-balloon-panel[class*="arrow_s"]::before,
		.ck.ck-balloon-panel[class*="arrow_s"]::after {
			border-width: var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width);
		}
.ck.ck-balloon-panel[class*="arrow_s"]::before {
			border-color: var(--ck-color-panel-border) transparent transparent;
			filter: drop-shadow(var(--ck-balloon-arrow-drop-shadow));
			margin-bottom: calc( -1 * var(--ck-balloon-border-width) );
		}
.ck.ck-balloon-panel[class*="arrow_s"]::after {
			border-color: var(--ck-color-panel-background) transparent transparent transparent;
			margin-bottom: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );
		}
.ck.ck-balloon-panel[class*="arrow_e"]::before,
		.ck.ck-balloon-panel[class*="arrow_e"]::after {
			border-width: var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height);
		}
.ck.ck-balloon-panel[class*="arrow_e"]::before {
			border-color: transparent transparent transparent var(--ck-color-panel-border);
			margin-right: calc( -1 * var(--ck-balloon-border-width) );
		}
.ck.ck-balloon-panel[class*="arrow_e"]::after {
			border-color: transparent transparent transparent var(--ck-color-panel-background);
			margin-right: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );
		}
.ck.ck-balloon-panel[class*="arrow_w"]::before,
		.ck.ck-balloon-panel[class*="arrow_w"]::after {
			border-width: var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0;
		}
.ck.ck-balloon-panel[class*="arrow_w"]::before {
			border-color: transparent var(--ck-color-panel-border) transparent transparent;
			margin-left: calc( -1 * var(--ck-balloon-border-width) );
		}
.ck.ck-balloon-panel[class*="arrow_w"]::after {
			border-color: transparent var(--ck-color-panel-background) transparent transparent;
			margin-left: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_n::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_n::after {
			left: 50%;
			margin-left: calc(-1 * var(--ck-balloon-arrow-half-width));
			top: calc(-1 * var(--ck-balloon-arrow-height));
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw::after {
			left: calc(2 * var(--ck-balloon-arrow-half-width));
			top: calc(-1 * var(--ck-balloon-arrow-height));
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne::after {
			right: calc(2 * var(--ck-balloon-arrow-half-width));
			top: calc(-1 * var(--ck-balloon-arrow-height));
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_s::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_s::after {
			left: 50%;
			margin-left: calc(-1 * var(--ck-balloon-arrow-half-width));
			bottom: calc(-1 * var(--ck-balloon-arrow-height));
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw::after {
			left: calc(2 * var(--ck-balloon-arrow-half-width));
			bottom: calc(-1 * var(--ck-balloon-arrow-height));
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_se::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_se::after {
			right: calc(2 * var(--ck-balloon-arrow-half-width));
			bottom: calc(-1 * var(--ck-balloon-arrow-height));
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme::after {
			right: 25%;
			margin-right: calc(2 * var(--ck-balloon-arrow-half-width));
			bottom: calc(-1 * var(--ck-balloon-arrow-height));
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw::after {
			left: 25%;
			margin-left: calc(2 * var(--ck-balloon-arrow-half-width));
			bottom: calc(-1 * var(--ck-balloon-arrow-height));
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme::after {
			right: 25%;
			margin-right: calc(2 * var(--ck-balloon-arrow-half-width));
			top: calc(-1 * var(--ck-balloon-arrow-height));
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw::after {
			left: 25%;
			margin-left: calc(2 * var(--ck-balloon-arrow-half-width));
			top: calc(-1 * var(--ck-balloon-arrow-height));
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_e::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_e::after {
			right: calc(-1 * var(--ck-balloon-arrow-height));
			margin-top: calc(-1 * var(--ck-balloon-arrow-half-width));
			top: 50%;
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_w::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_w::after {
			left: calc(-1 * var(--ck-balloon-arrow-height));
			margin-top: calc(-1 * var(--ck-balloon-arrow-half-width));
			top: 50%;
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck .ck-balloon-rotator__navigation {
	background: var(--ck-color-toolbar-background);
	border-bottom: 1px solid var(--ck-color-toolbar-border);
	padding: 0 var(--ck-spacing-small);

	/* Let's keep similar appearance to `ck-toolbar`. */
}
.ck .ck-balloon-rotator__navigation > * {
		margin-right: var(--ck-spacing-small);
		margin-top: var(--ck-spacing-small);
		margin-bottom: var(--ck-spacing-small);
	}
/* Gives counter more breath than buttons. */
.ck .ck-balloon-rotator__navigation .ck-balloon-rotator__counter {
		margin-right: var(--ck-spacing-standard);

		/* We need to use smaller margin because of previous button's right margin. */
		margin-left: var(--ck-spacing-small);
	}
/* Disable default annotation shadow inside rotator with fake panels. */
.ck .ck-balloon-rotator__content .ck.ck-annotation-wrapper {
		box-shadow: none;
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
:root {
	--ck-balloon-fake-panel-offset-horizontal: 6px;
	--ck-balloon-fake-panel-offset-vertical: 6px;
}
/* Let's use `.ck-balloon-panel` appearance. See: balloonpanel.css. */
.ck .ck-fake-panel div {
	box-shadow: var(--ck-drop-shadow), 0 0;

	min-height: 15px;

	background: var(--ck-color-panel-background);
	border: 1px solid var(--ck-color-panel-border);
	border-radius: var(--ck-border-radius);

	width: 100%;
	height: 100%;
}
.ck .ck-fake-panel div:nth-child( 1 ) {
	margin-left: var(--ck-balloon-fake-panel-offset-horizontal);
	margin-top: var(--ck-balloon-fake-panel-offset-vertical);
}
.ck .ck-fake-panel div:nth-child( 2 ) {
	margin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 2);
	margin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 2);
}
.ck .ck-fake-panel div:nth-child( 3 ) {
	margin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 3);
	margin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 3);
}
/* If balloon is positioned above element, we need to move fake panel to the top. */
.ck .ck-balloon-panel_arrow_s + .ck-fake-panel,
.ck .ck-balloon-panel_arrow_se + .ck-fake-panel,
.ck .ck-balloon-panel_arrow_sw + .ck-fake-panel {
	--ck-balloon-fake-panel-offset-vertical: -6px;
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
.ck.ck-sticky-panel .ck-sticky-panel__content_sticky {
		box-shadow: var(--ck-drop-shadow), 0 0;

		border-width: 0 1px 1px;
		border-top-left-radius: 0;
		border-top-right-radius: 0;
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck-vertical-form > .ck-button:nth-last-child(2)::after {
	border-right: 1px solid var(--ck-color-base-border);
}
.ck.ck-responsive-form {
	padding: var(--ck-spacing-large);
}
.ck.ck-responsive-form:focus {
		/* See: https://github.com/ckeditor/ckeditor5/issues/4773 */
		outline: none;
	}
[dir="ltr"] .ck.ck-responsive-form > :not(:first-child) {
			margin-left: var(--ck-spacing-standard);
		}
[dir="rtl"] .ck.ck-responsive-form > :not(:last-child) {
			margin-left: var(--ck-spacing-standard);
		}
@media screen and (max-width: 600px) {
.ck.ck-responsive-form {
		padding: 0;
		width: calc(.8 * var(--ck-input-width));
}

		.ck.ck-responsive-form .ck-labeled-field-view {
			margin: var(--ck-spacing-large) var(--ck-spacing-large) 0;
		}

			.ck.ck-responsive-form .ck-labeled-field-view .ck-input-text,
			.ck.ck-responsive-form .ck-labeled-field-view .ck-input-number {
				min-width: 0;
				width: 100%;
			}

			/* Let the long error messages wrap in the narrow form. */
			.ck.ck-responsive-form .ck-labeled-field-view .ck-labeled-field-view__error {
				white-space: normal;
			}

		/* Styles for two last buttons in the form (save&cancel, edit&unlink, etc.). */
			.ck.ck-responsive-form > .ck-button:nth-last-child(2)::after {
				border-right: 1px solid var(--ck-color-base-border);
			}

		.ck.ck-responsive-form > .ck-button:nth-last-child(1),
		.ck.ck-responsive-form > .ck-button:nth-last-child(2) {
			padding: var(--ck-spacing-standard);
			margin-top: var(--ck-spacing-large);
			border-radius: 0;
		}

			.ck.ck-responsive-form > .ck-button:nth-last-child(1):not(:focus), .ck.ck-responsive-form > .ck-button:nth-last-child(2):not(:focus) {
				border-top: 1px solid var(--ck-color-base-border);
			}

			[dir="ltr"] .ck.ck-responsive-form > .ck-button:nth-last-child(1), [dir="ltr"] .ck.ck-responsive-form > .ck-button:nth-last-child(2) {
				margin-left: 0;
	}

			[dir="rtl"] .ck.ck-responsive-form > .ck-button:nth-last-child(1), [dir="rtl"] .ck.ck-responsive-form > .ck-button:nth-last-child(2) {
				margin-left: 0;
	}

				[dir="rtl"] .ck.ck-responsive-form > .ck-button:nth-last-child(1):last-of-type, [dir="rtl"] .ck.ck-responsive-form > .ck-button:nth-last-child(2):last-of-type {
					border-right: 1px solid var(--ck-color-base-border);
				}
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-search-field-view-horizontal-spacing: calc(var(--ck-icon-size) + var(--ck-spacing-medium));
}
.ck.ck-search > .ck-labeled-field-view .ck-input {
			width: 100%;
		}
.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-icon {
			--ck-labeled-field-label-default-position-x: var(--ck-search-field-view-horizontal-spacing);
		}
.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-icon > .ck-labeled-field-view__input-wrapper > .ck-icon {
				opacity: .5;
				pointer-events: none;
			}
.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-icon .ck-input {
				width: 100%;
			}
[dir="ltr"] .ck.ck-search > .ck-labeled-field-view.ck-search__query_with-icon .ck-input {
					padding-left: var(--ck-search-field-view-horizontal-spacing);
	}
[dir="rtl"] .ck.ck-search > .ck-labeled-field-view.ck-search__query_with-icon .ck-input:not(.ck-input-text_empty) {
						padding-left: var(--ck-search-field-view-horizontal-spacing);
					}
.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset {
			--ck-labeled-field-empty-unfocused-max-width: 100% - 2 * var(--ck-search-field-view-horizontal-spacing);
		}
.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset.ck-labeled-field-view_empty {
				--ck-labeled-field-empty-unfocused-max-width: 100% - var(--ck-search-field-view-horizontal-spacing) - var(--ck-spacing-medium);
			}
.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset {
				min-width: auto;
				min-height: auto;

				background: none;
				opacity: .5;
				padding: 0;
			}
[dir="ltr"] .ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset {
					right: var(--ck-spacing-medium);
	}
[dir="rtl"] .ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset {
					left: var(--ck-spacing-medium);
	}
.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset:hover {
					opacity: 1;
				}
.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset .ck-input {
				width: 100%;
			}
[dir="ltr"] .ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset .ck-input:not(.ck-input-text_empty) {
						padding-right: var(--ck-search-field-view-horizontal-spacing);
					}
[dir="rtl"] .ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset .ck-input {
					padding-right: var(--ck-search-field-view-horizontal-spacing);
	}
.ck.ck-search > .ck-search__results {
		min-width: 100%;
	}
.ck.ck-search > .ck-search__results > .ck-search__info {
			width: 100%;
			padding: var(--ck-spacing-medium) var(--ck-spacing-large);
		}
.ck.ck-search > .ck-search__results > .ck-search__info * {
				white-space: normal;
			}
.ck.ck-search > .ck-search__results > .ck-search__info > span:first-child {
				font-weight: bold;
			}
.ck.ck-search > .ck-search__results > .ck-search__info > span:last-child {
				margin-top: var(--ck-spacing-medium);
			}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-toolbar-spinner-size: 18px;
}
.ck.ck-spinner-container {
	width: var(--ck-toolbar-spinner-size);
	height: var(--ck-toolbar-spinner-size);
	animation: 1.5s infinite ck-spinner-rotate linear;
}
@media (prefers-reduced-motion: reduce) {
.ck.ck-spinner-container {
		animation-duration: 3s;
}
	}
.ck.ck-spinner {
	width: var(--ck-toolbar-spinner-size);
	height: var(--ck-toolbar-spinner-size);
	border-radius: 50%;
	border: 2px solid var(--ck-color-text);
	border-top-color: transparent;
}
@keyframes ck-spinner-rotate {
	to {
		transform: rotate(360deg)
	}
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * This fixes a problem in Firefox when the initial height of the complement does not match the number of rows.
 * This bug is especially visible when rows=1.
 */
.ck-textarea {
	overflow-x: hidden
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-color-block-toolbar-button: var(--ck-color-text);
	--ck-block-toolbar-button-size: var(--ck-font-size-normal);
}
.ck.ck-block-toolbar-button {
	color: var(--ck-color-block-toolbar-button);
	font-size: var(--ck-block-toolbar-size);
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-toolbar {
	border-radius: 0;

	background: var(--ck-color-toolbar-background);
	padding: 0 var(--ck-spacing-small);
	border: 1px solid var(--ck-color-toolbar-border);
}
.ck-rounded-corners .ck.ck-toolbar,
	.ck.ck-toolbar.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
	}
.ck.ck-toolbar .ck.ck-toolbar__separator {
		height: var(--ck-icon-size);
		width: 1px;
		min-width: 1px;
		background: var(--ck-color-toolbar-border);

		/*
		 * These margins make the separators look better in balloon toolbars (when aligned with the "tip").
		 * See https://github.com/ckeditor/ckeditor5/issues/7493.
		 */
		margin-top: var(--ck-spacing-small);
		margin-bottom: var(--ck-spacing-small);
	}
.ck.ck-toolbar .ck-toolbar__line-break {
		height: 0;
	}
.ck.ck-toolbar > .ck-toolbar__items > *:not(.ck-toolbar__line-break) {
			/* (#11) Separate toolbar items. */
			margin-right: var(--ck-spacing-small);
		}
/* Don't display a separator after an empty items container, for instance,
		when all items were grouped */
.ck.ck-toolbar > .ck-toolbar__items:empty + .ck.ck-toolbar__separator {
			display: none;
		}
.ck.ck-toolbar > .ck-toolbar__items > *:not(.ck-toolbar__line-break),
	.ck.ck-toolbar > .ck.ck-toolbar__grouped-dropdown {
		/* Make sure items wrapped to the next line have v-spacing */
		margin-top: var(--ck-spacing-small);
		margin-bottom: var(--ck-spacing-small);
	}
.ck.ck-toolbar.ck-toolbar_vertical {
		/* Items in a vertical toolbar span the entire width. */
		padding: 0;

		/* Specificity matters here. See https://github.com/ckeditor/ckeditor5-theme-lark/issues/168. */
	}
.ck.ck-toolbar.ck-toolbar_vertical > .ck-toolbar__items > .ck {
			/* Items in a vertical toolbar should span the horizontal space. */
			width: 100%;

			/* Items in a vertical toolbar should have no margin. */
			margin: 0;

			/* Items in a vertical toolbar span the entire width so rounded corners are pointless. */
			border-radius: 0;
		}
.ck.ck-toolbar.ck-toolbar_compact {
		/* No spacing around items. */
		padding: 0;
	}
.ck.ck-toolbar.ck-toolbar_compact > .ck-toolbar__items > * {
			/* Compact toolbar items have no spacing between them. */
			margin: 0;

			/* "Middle" children should have no rounded corners. */
		}
.ck.ck-toolbar.ck-toolbar_compact > .ck-toolbar__items > *:not(:first-child):not(:last-child) {
				border-radius: 0;
			}
/*
		 * Dropdown button has asymmetric padding to fit the arrow.
		 * This button has no arrow so let's revert that padding back to normal.
		 */
.ck.ck-toolbar > .ck.ck-toolbar__grouped-dropdown > .ck.ck-button.ck-dropdown__button {
			padding-left: var(--ck-spacing-tiny);
		}
/* A drop-down containing the nested toolbar with configured items. */
/* Prevent empty space in the panel when the dropdown label is visible and long but the toolbar has few items. */
.ck.ck-toolbar .ck-toolbar__nested-toolbar-dropdown > .ck-dropdown__panel {
			min-width: auto;
		}
.ck.ck-toolbar .ck-toolbar__nested-toolbar-dropdown > .ck-button > .ck-button__label {
			max-width: 7em;
			width: auto;
		}
.ck.ck-toolbar:focus {
		outline: none;
	}
.ck-toolbar-container .ck.ck-toolbar {
		border: 0;
	}
/* stylelint-disable */
/*
 * Styles for RTL toolbars.
 *
 * Note: In some cases (e.g. a decoupled editor), the toolbar has its own "dir"
 * because its parent is not controlled by the editor framework.
 */
[dir="rtl"] .ck.ck-toolbar > .ck-toolbar__items > .ck, .ck.ck-toolbar[dir="rtl"] > .ck-toolbar__items > .ck {
		margin-right: 0;
	}
[dir="rtl"] .ck.ck-toolbar:not(.ck-toolbar_compact) > .ck-toolbar__items > .ck, .ck.ck-toolbar[dir="rtl"]:not(.ck-toolbar_compact) > .ck-toolbar__items > .ck {
		/* (#11) Separate toolbar items. */
		margin-left: var(--ck-spacing-small);
	}
[dir="rtl"] .ck.ck-toolbar > .ck-toolbar__items > .ck:last-child, .ck.ck-toolbar[dir="rtl"] > .ck-toolbar__items > .ck:last-child {
		margin-left: 0;
	}
/* No rounded corners on the right side of the first child. */
[dir="rtl"] .ck.ck-toolbar.ck-toolbar_compact > .ck-toolbar__items > .ck:first-child, .ck.ck-toolbar.ck-toolbar_compact[dir="rtl"] > .ck-toolbar__items > .ck:first-child {
			border-top-left-radius: 0;
			border-bottom-left-radius: 0;
		}
/* No rounded corners on the left side of the last child. */
[dir="rtl"] .ck.ck-toolbar.ck-toolbar_compact > .ck-toolbar__items > .ck:last-child, .ck.ck-toolbar.ck-toolbar_compact[dir="rtl"] > .ck-toolbar__items > .ck:last-child {
			border-top-right-radius: 0;
			border-bottom-right-radius: 0;
		}
/* Separate the the separator form the grouping dropdown when some items are grouped. */
[dir="rtl"] .ck.ck-toolbar > .ck.ck-toolbar__separator, .ck.ck-toolbar[dir="rtl"] > .ck.ck-toolbar__separator {
		margin-left: var(--ck-spacing-small);
	}
/* Some spacing between the items and the separator before the grouped items dropdown. */
[dir="rtl"] .ck.ck-toolbar.ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child), .ck.ck-toolbar.ck-toolbar_grouping[dir="rtl"] > .ck-toolbar__items:not(:empty):not(:only-child) {
		margin-left: var(--ck-spacing-small);
	}
/*
 * Styles for LTR toolbars.
 *
 * Note: In some cases (e.g. a decoupled editor), the toolbar has its own "dir"
 * because its parent is not controlled by the editor framework.
 */
[dir="ltr"] .ck.ck-toolbar > .ck-toolbar__items > .ck:last-child, .ck.ck-toolbar[dir="ltr"] > .ck-toolbar__items > .ck:last-child {
		margin-right: 0;
	}
/* No rounded corners on the right side of the first child. */
[dir="ltr"] .ck.ck-toolbar.ck-toolbar_compact > .ck-toolbar__items > .ck:first-child, .ck.ck-toolbar.ck-toolbar_compact[dir="ltr"] > .ck-toolbar__items > .ck:first-child {
			border-top-right-radius: 0;
			border-bottom-right-radius: 0;
		}
/* No rounded corners on the left side of the last child. */
[dir="ltr"] .ck.ck-toolbar.ck-toolbar_compact > .ck-toolbar__items > .ck:last-child, .ck.ck-toolbar.ck-toolbar_compact[dir="ltr"] > .ck-toolbar__items > .ck:last-child {
			border-top-left-radius: 0;
			border-bottom-left-radius: 0;
		}
/* Separate the the separator form the grouping dropdown when some items are grouped. */
[dir="ltr"] .ck.ck-toolbar > .ck.ck-toolbar__separator, .ck.ck-toolbar[dir="ltr"] > .ck.ck-toolbar__separator {
		margin-right: var(--ck-spacing-small);
	}
/* Some spacing between the items and the separator before the grouped items dropdown. */
[dir="ltr"] .ck.ck-toolbar.ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child), .ck.ck-toolbar.ck-toolbar_grouping[dir="ltr"] > .ck-toolbar__items:not(:empty):not(:only-child) {
		margin-right: var(--ck-spacing-small);
	}
/* stylelint-enable */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
.ck.ck-balloon-panel.ck-tooltip {
	--ck-balloon-border-width: 0px;
	--ck-balloon-arrow-offset: 0px;
	--ck-balloon-arrow-half-width: 4px;
	--ck-balloon-arrow-height: 4px;
	--ck-tooltip-text-padding: 4px;
	--ck-color-panel-background: var(--ck-color-tooltip-background);

	padding: 0 var(--ck-spacing-medium);

	/* Reset balloon panel styles */
	box-shadow: none;
}
.ck.ck-balloon-panel.ck-tooltip .ck-tooltip__text {
		font-size: .9em;
		line-height: 1.5;
		color: var(--ck-color-tooltip-text);
	}
.ck.ck-balloon-panel.ck-tooltip.ck-tooltip_multi-line .ck-tooltip__text {
		white-space: break-spaces;
		display: inline-block;
		padding: var(--ck-tooltip-text-padding) 0;
		max-width: 200px;
	}
/* Hide the default shadow of the .ck-balloon-panel tip */
.ck.ck-balloon-panel.ck-tooltip::before {
		display: none;
	}

/* Editor */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content {
			border-radius: 0;

			border: 1px solid var(--ck-color-base-border);
			border-bottom-width: 0;
		}
.ck-rounded-corners .ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content,
	.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
				border-bottom-left-radius: 0;
				border-bottom-right-radius: 0;
	}
.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content.ck-sticky-panel__content_sticky {
				border-bottom-width: 1px;
			}
.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content .ck-menu-bar {
				border: 0;
				border-bottom: 1px solid var(--ck-color-base-border);
			}
.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content .ck-toolbar {
				border: 0;
			}
/* Note: Use ck-editor__main to make sure these styles don't apply to other editor types */
.ck.ck-editor__main > .ck-editor__editable {
	/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/113 */
	background: var(--ck-color-base-background);

	border-radius: 0;
}
.ck-rounded-corners .ck.ck-editor__main > .ck-editor__editable,
	.ck.ck-editor__main > .ck-editor__editable.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
		border-top-left-radius: 0;
		border-top-right-radius: 0;
	}
.ck.ck-editor__main > .ck-editor__editable:not(.ck-focused) {
		border-color: var(--ck-color-base-border);
	}

/* Plugins */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-bookmark-icon-hover-fill-color: var(--ck-color-widget-hover-border);
	--ck-bookmark-icon-selected-fill-color: var(--ck-color-focus-border);
	--ck-bookmark-icon-animation-duration: var(--ck-widget-handler-animation-duration);
	--ck-bookmark-icon-animation-curve: var(--ck-widget-handler-animation-curve);
}
.ck .ck-bookmark.ck-widget {
		display: inline-block;
		outline: none;
	}
.ck .ck-bookmark.ck-widget .ck-bookmark__icon .ck-icon__fill {
			transition: fill var(--ck-bookmark-icon-animation-duration) var(--ck-bookmark-icon-animation-curve);
		}
.ck .ck-bookmark.ck-widget:hover .ck-bookmark__icon .ck-icon__fill {
				fill: var(--ck-bookmark-icon-hover-fill-color);
			}
.ck .ck-bookmark.ck-widget.ck-widget_selected .ck-bookmark__icon .ck-icon__fill {
				fill: var(--ck-bookmark-icon-selected-fill-color);
			}
.ck .ck-bookmark.ck-widget.ck-widget_selected,
		.ck .ck-bookmark.ck-widget.ck-widget_selected:hover {
			outline: none;
		}
.ck .ck-bookmark.ck-widget .ck-bookmark__icon {
			position: relative;
			display: block;
			/* To make it align with text baseline. */
			top: -0.1em;
		}
.ck .ck-bookmark.ck-widget .ck-bookmark__icon .ck-icon {
				height: 1.2em;
				width: auto;
				vertical-align: middle;
			}
/*
 * Classes used by the "fake visual selection" displayed in the content when an input
 * in the bookmark UI has focus (the browser does not render the native selection in this state).
 */
.ck .ck-fake-bookmark-selection {
	background: var(--ck-color-link-fake-selection);
}
/* A collapsed fake visual selection. */
.ck .ck-fake-bookmark-selection_collapsed {
	height: 100%;
	border-right: 1px solid var(--ck-color-base-text);
	margin-right: -1px;
	outline: solid 1px hsla(0, 0%, 100%, .5);
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-bookmark-form-width: 340px;
}
@media screen and (max-width: 600px) {
	:root {
		--ck-bookmark-form-width: 300px;
	}
	}
.ck.ck-bookmark-form {
	width: var(--ck-bookmark-form-width);
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Makes element unselectable.
 */
.ck.ck-bookmark-balloon .ck.ck-toolbar > .ck-toolbar__items {
			flex-wrap: nowrap;
		}
.ck.ck-bookmark-toolbar__preview {
	padding: 0 var(--ck-spacing-medium);
	max-width: var(--ck-input-width);
	min-width: 3em;
	font-weight: normal;
	text-overflow: ellipsis;
	text-align: center;
	overflow: hidden;

	-moz-user-select: none;

	-webkit-user-select: none;

	-ms-user-select: none;

	user-select: none;
	cursor: default;
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-clipboard-drop-target-dot-width: 12px;
	--ck-clipboard-drop-target-dot-height: 8px;
	--ck-clipboard-drop-target-color: var(--ck-color-focus-border);
}
/*
	 * Vertical drop target (in text).
	 */
.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span {
			bottom: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));
			top: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));
			border: 1px solid var(--ck-clipboard-drop-target-color);
			background: var(--ck-clipboard-drop-target-color);
			margin-left: -1px;

			/* The triangle above the marker */
		}
.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span::after {
				content: '';
				width: 0;
				height: 0;

				display: block;
				position: absolute;
				left: 50%;
				top: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));

				transform: translateX(-50%);
				border-color: var(--ck-clipboard-drop-target-color) transparent transparent transparent;
				border-width: calc(var(--ck-clipboard-drop-target-dot-height)) calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0 calc(.5 * var(--ck-clipboard-drop-target-dot-width));
				border-style: solid;
			}
/*
	 * Styles of the widget that it a drop target.
	 */
.ck.ck-editor__editable .ck-widget.ck-clipboard-drop-target-range {
		outline: var(--ck-widget-outline-thickness) solid var(--ck-clipboard-drop-target-color) !important;
	}
/*
	 * Styles of the widget being dragged (its preview).
	 */
.ck.ck-editor__editable .ck-widget:-webkit-drag {
		zoom: 0.6;
		outline: none !important;
	}
.ck.ck-clipboard-drop-target-line {
	height: 0;
	border: 1px solid var(--ck-clipboard-drop-target-color);
	background: var(--ck-clipboard-drop-target-color);
	margin-top: -1px;
}
.ck.ck-clipboard-drop-target-line::before {
		content: '';
		position: absolute;
		top: calc(-.5 * var(--ck-clipboard-drop-target-dot-width));
		width: 0;
		height: 0;
		border-style: solid;
	}
[dir="ltr"] .ck.ck-clipboard-drop-target-line::before {
			left: -1px;

			border-width: calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0 calc(.5 * var(--ck-clipboard-drop-target-dot-width)) var(--ck-clipboard-drop-target-dot-height);
			border-color: transparent transparent transparent var(--ck-clipboard-drop-target-color);
	}
[dir="rtl"] .ck.ck-clipboard-drop-target-line::before {
			right: -1px;

			border-width:calc(.5 * var(--ck-clipboard-drop-target-dot-width)) var(--ck-clipboard-drop-target-dot-height) calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0;
			border-color: transparent var(--ck-clipboard-drop-target-color) transparent transparent;
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-color-code-block-label-background: hsl(0, 0%, 46%);
}
.ck.ck-editor__editable pre[data-language]::after {
	top: -1px;
	right: 10px;
	background: var(--ck-color-code-block-label-background);

	font-size: 10px;
	font-family: var(--ck-font-face);
	line-height: 16px;
	padding: var(--ck-spacing-tiny) var(--ck-spacing-medium);
	color: hsl(0, 0%, 100%);
	white-space: nowrap;
}
.ck.ck-code-block-dropdown .ck-dropdown__panel {
	/* There could be dozens of languages available. Use scroll to prevent a 10e6px dropdown. */
	max-height: 250px;
	overflow-y: auto;
	overflow-x: hidden;
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/* See ckeditor/ckeditor5#936. */
@media (forced-colors: active) {
		.ck.ck-placeholder, .ck .ck-placeholder {
		/*
		 * This is needed for Edge on Windows to use the right color for the placeholder content (::before).
		 * See https://github.com/ckeditor/ckeditor5/issues/14907.
		 */
		forced-color-adjust: preserve-parent-color;
		}
	}
.ck.ck-placeholder::before, .ck .ck-placeholder::before {
		cursor: text;
	}
@media (forced-colors: none) {
		.ck.ck-placeholder::before, .ck .ck-placeholder::before {
			color: var(--ck-color-engine-placeholder-text);
		}
	}
@media (forced-colors: active) {
		.ck.ck-placeholder::before, .ck .ck-placeholder::before {
			/*
			 * In the high contrast mode there is no telling between regular and placeholder text. Using
			 * italic text to address that issue. See https://github.com/ckeditor/ckeditor5/issues/14907.
			 */
			font-style: italic;

			/*
			 * Without this margin, the caret will not show up and blink when the user puts the selection
			 * in the placeholder (Edge on Windows). See https://github.com/ckeditor/ckeditor5/issues/14907.
			 */
			margin-left: 1px;
		}
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-find-and-replace-form {
	width: 400px;

	/*
	 * The <form> needs tabindex="-1" for proper Esc handling after being clicked
	 * but the side effect is that this creates a nasty focus outline in some browsers.
	 */
}
.ck.ck-find-and-replace-form:focus {
		outline: none;
	}
/* Generic styles for the form inputs and actions. */
.ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs,
	.ck.ck-find-and-replace-form .ck-find-and-replace-form__actions {
		flex: 1 1 auto;
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		align-content: stretch;

		padding: var(--ck-spacing-large);
		margin: 0;

	}
.ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs > .ck-button, .ck.ck-find-and-replace-form .ck-find-and-replace-form__actions > .ck-button {
			flex: 0 0 auto;
		}
[dir="ltr"] .ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs > * + *, [dir="ltr"] .ck.ck-find-and-replace-form .ck-find-and-replace-form__actions > * + * {
				margin-left: var(--ck-spacing-standard);
			}
[dir="rtl"] .ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs > * + *, [dir="rtl"] .ck.ck-find-and-replace-form .ck-find-and-replace-form__actions > * + * {
				margin-right: var(--ck-spacing-standard);
			}
.ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs .ck-labeled-field-view, .ck.ck-find-and-replace-form .ck-find-and-replace-form__actions .ck-labeled-field-view {
			flex: 1 1 auto;
		}
.ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs .ck-labeled-field-view .ck-input, .ck.ck-find-and-replace-form .ck-find-and-replace-form__actions .ck-labeled-field-view .ck-input {
				width: 100%;
				min-width: 50px;
			}
/* Styles specific for inputs area. */
.ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs {
		/* To display all controls in line when there's an error under the input */
		align-items: flex-start;
	}
.ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs > .ck-button-prev > .ck-icon {
			transform: rotate(90deg);
		}
.ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs > .ck-button-next > .ck-icon {
			transform: rotate(-90deg);
		}
.ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs .ck-results-counter {
			top: 50%;
			transform: translateY(-50%);

			color: var(--ck-color-base-border);
		}
[dir="ltr"] .ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs .ck-results-counter {
				right: var(--ck-spacing-standard);
	}
[dir="rtl"] .ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs .ck-results-counter {
				left: var(--ck-spacing-standard);
	}
.ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs > .ck-labeled-field-replace {
			flex: 0 0 100%;
			padding-top: var(--ck-spacing-standard);
		}
[dir="ltr"] .ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs > .ck-labeled-field-replace {
				margin-left: 0;
	}
[dir="rtl"] .ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs > .ck-labeled-field-replace {
				margin-right: 0;
	}
/* Styles specific for actions area. */
.ck.ck-find-and-replace-form .ck-find-and-replace-form__actions {
		flex-wrap: wrap;
		justify-content: flex-end;
		margin-top: calc( -1 * var(--ck-spacing-large) );
	}
.ck.ck-find-and-replace-form .ck-find-and-replace-form__actions > .ck-button-find {
			font-weight: bold;

			/* Beef the find button up a little. It's the main action button in the form */
		}
.ck.ck-find-and-replace-form .ck-find-and-replace-form__actions > .ck-button-find .ck-button__label {
				padding-left: var(--ck-spacing-large);
				padding-right: var(--ck-spacing-large);
			}
.ck.ck-find-and-replace-form .ck-switchbutton {
		width: 100%;
		display: flex;
		flex-direction: row;
		flex-wrap: nowrap;
		justify-content: space-between;
		align-items: center;
	}
@media screen and (max-width: 600px) {
	.ck.ck-find-and-replace-form {
		width: 300px;

		/* Don't let the form overflow from the dialog (https://github.com/cksource/ckeditor5-commercial/issues/5913) */
		max-width: 100%;

		/* Styles specific for inputs area. */
	}
		.ck.ck-find-and-replace-form.ck-find-and-replace-form__input {
			flex-wrap: wrap;
		}

			.ck.ck-find-and-replace-form.ck-find-and-replace-form__input .ck-labeled-field-view {
				flex: 1 0 auto;
				width: 100%;
				margin-bottom: var(--ck-spacing-standard);
			}

			.ck.ck-find-and-replace-form.ck-find-and-replace-form__input > .ck-button {
				text-align: center;
			}

				.ck.ck-find-and-replace-form.ck-find-and-replace-form__input > .ck-button:first-of-type {
					flex: 1 1 auto;
				}

					[dir="ltr"] .ck.ck-find-and-replace-form.ck-find-and-replace-form__input > .ck-button:first-of-type {
						margin-left: 0;
	}

					[dir="rtl"] .ck.ck-find-and-replace-form.ck-find-and-replace-form__input > .ck-button:first-of-type {
						margin-right: 0;
	}

					.ck.ck-find-and-replace-form.ck-find-and-replace-form__input > .ck-button:first-of-type .ck-button__label {
						width: 100%;
						text-align: center;
					}

		/* Styles specific for actions area. */
		.ck.ck-find-and-replace-form.ck-find-and-replace-form__actions > :not(.ck-labeled-field-view) {
			flex-wrap: wrap;
			flex: 1 1 auto;
		}

			.ck.ck-find-and-replace-form.ck-find-and-replace-form__actions > :not(.ck-labeled-field-view) > .ck-button {
				text-align: center;
			}

				.ck.ck-find-and-replace-form.ck-find-and-replace-form__actions > :not(.ck-labeled-field-view) > .ck-button:first-of-type {
					flex: 1 1 auto;
				}

					[dir="ltr"] .ck.ck-find-and-replace-form.ck-find-and-replace-form__actions > :not(.ck-labeled-field-view) > .ck-button:first-of-type {
						margin-left: 0;
	}

					[dir="rtl"] .ck.ck-find-and-replace-form.ck-find-and-replace-form__actions > :not(.ck-labeled-field-view) > .ck-button:first-of-type {
						margin-right: 0;
	}

				.ck.ck-find-and-replace-form.ck-find-and-replace-form__actions > :not(.ck-labeled-field-view) > .ck-button .ck-button__label {
					width: 100%;
					text-align: center;
				}
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/* Resize dropdown's button label. */
.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__button .ck-button__label {
		width: 8em;
	}
.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__panel .ck-list__item {
		min-width: 18em;
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Note: This file should contain the wireframe styles only. But since there are no such styles,
 * it acts as a message to the builder telling that it should look for the corresponding styles
 * **in the theme** when compiling the editor.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-html-embed-content-width: calc(100% - 1.5 * var(--ck-icon-size));
	--ck-html-embed-source-height: 10em;
	--ck-html-embed-unfocused-outline-width: 1px;
	--ck-html-embed-content-min-height: calc(var(--ck-icon-size) + var(--ck-spacing-standard));

	--ck-html-embed-source-disabled-background: var(--ck-color-base-foreground);
	--ck-html-embed-source-disabled-color: hsl(0deg 0% 45%);
}
/* The feature container. */
.ck-widget.raw-html-embed {
	font-size: var(--ck-font-size-base);
	background-color: var(--ck-color-base-foreground);
}
.ck-widget.raw-html-embed:not(.ck-widget_selected):not(:hover) {
		outline: var(--ck-html-embed-unfocused-outline-width) dashed var(--ck-color-widget-blurred-border);
	}
/* HTML embed widget itself should respect UI language direction */
.ck-widget.raw-html-embed[dir="ltr"] {
		text-align: left;
	}
.ck-widget.raw-html-embed[dir="rtl"] {
		text-align: right;
	}
/* ----- Embed label in the upper left corner ----------------------------------------------- */
.ck-widget.raw-html-embed::before {
		content: attr(data-html-embed-label);
		top: calc(-1 * var(--ck-html-embed-unfocused-outline-width));
		left: var(--ck-spacing-standard);
		background: hsl(0deg 0% 60%);
		transition: background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);
		padding: calc(var(--ck-spacing-tiny) + var(--ck-html-embed-unfocused-outline-width)) var(--ck-spacing-small) var(--ck-spacing-tiny);
		border-radius: 0 0 var(--ck-border-radius) var(--ck-border-radius);
		color: var(--ck-color-base-background);
		font-size: var(--ck-font-size-tiny);
		font-family: var(--ck-font-face);
	}
.ck-widget.raw-html-embed[dir="rtl"]::before {
		left: auto;
		right: var(--ck-spacing-standard);
	}
/* Make space for label but it only collides in LTR languages */
.ck-widget.raw-html-embed[dir="ltr"] .ck-widget__type-around .ck-widget__type-around__button.ck-widget__type-around__button_before {
		margin-left: 50px;
	}
.ck.ck-editor__editable.ck-blurred .ck-widget.raw-html-embed.ck-widget_selected::before {
		top: 0px;
		padding: var(--ck-spacing-tiny) var(--ck-spacing-small);
	}
.ck.ck-editor__editable:not(.ck-blurred) .ck-widget.raw-html-embed.ck-widget_selected::before {
		top: 0;
		padding: var(--ck-spacing-tiny) var(--ck-spacing-small);
		background: var(--ck-color-focus-border);
	}
.ck.ck-editor__editable .ck-widget.raw-html-embed:not(.ck-widget_selected):hover::before {
		top: 0px;
		padding: var(--ck-spacing-tiny) var(--ck-spacing-small);
	}
/* ----- Emebed internals --------------------------------------------------------------------- */
.ck-widget.raw-html-embed .raw-html-embed__content-wrapper {
		padding: var(--ck-spacing-standard);
	}
/* The switch mode button wrapper. */
.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper {
		top: var(--ck-spacing-standard);
		right: var(--ck-spacing-standard);
	}
.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper .ck-button.raw-html-embed__save-button {
			color: var(--ck-color-button-save);
		}
.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper .ck-button.raw-html-embed__cancel-button {
			color: var(--ck-color-button-cancel);
		}
.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper .ck-button:not(:first-child) {
			margin-top: var(--ck-spacing-small);
		}
.ck-widget.raw-html-embed[dir="rtl"] .raw-html-embed__buttons-wrapper {
		left: var(--ck-spacing-standard);
		right: auto;
	}
/* The edit source element. */
.ck-widget.raw-html-embed .raw-html-embed__source {
		box-sizing: border-box;
		height: var(--ck-html-embed-source-height);
		width: var(--ck-html-embed-content-width);
		resize: none;
		min-width: 0;
		padding: var(--ck-spacing-standard);

		font-family: monospace;
		tab-size: 4;
		white-space: pre-wrap;
		font-size: var(--ck-font-size-base); /* Safari needs this. */

		/* HTML code is direction–agnostic. */
		text-align: left;
		direction: ltr;
	}
.ck-widget.raw-html-embed .raw-html-embed__source[disabled] {
			background: var(--ck-html-embed-source-disabled-background);
			color: var(--ck-html-embed-source-disabled-color);

			/* Safari needs this for the proper text color in disabled input (https://github.com/ckeditor/ckeditor5/issues/8320). */
			-webkit-text-fill-color: var(--ck-html-embed-source-disabled-color);
			opacity: 1;
		}
/* The preview data container. */
.ck-widget.raw-html-embed .raw-html-embed__preview {
		min-height: var(--ck-html-embed-content-min-height);
		width: var(--ck-html-embed-content-width);

		/* Disable all mouse interaction as long as the editor is not read–only. */
	}
.ck-editor__editable:not(.ck-read-only) .ck-widget.raw-html-embed .raw-html-embed__preview {
			pointer-events: none;
		}
.ck-widget.raw-html-embed .raw-html-embed__preview-content {
		box-sizing: border-box;
		background-color: var(--ck-color-base-foreground);
	}
.ck-widget.raw-html-embed .raw-html-embed__preview-content > * {
			margin-left: auto;
			margin-right: auto;
		}
.ck-widget.raw-html-embed .raw-html-embed__preview-placeholder {
		color: var(--ck-html-embed-source-disabled-color)
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-image-insert-insert-by-url-width: 250px;
}
.ck.ck-image-insert-url {
	--ck-input-width: 100%;
}
.ck.ck-image-insert-url .ck-image-insert-url__action-row {
		grid-column-gap: var(--ck-spacing-large);
		margin-top: var(--ck-spacing-large);
	}
.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button-save,
		.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button-cancel {
			justify-content: center;
			min-width: auto;
		}
.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button .ck-button__label {
			color: var(--ck-color-text);
		}
.ck.ck-image-insert-form > .ck.ck-button {
		display: block;
		width: 100%;
	}
[dir="ltr"] .ck.ck-image-insert-form > .ck.ck-button {
			text-align: left;
	}
[dir="rtl"] .ck.ck-image-insert-form > .ck.ck-button {
			text-align: right;
	}
.ck.ck-image-insert-form > .ck.ck-collapsible {

		min-width: var(--ck-image-insert-insert-by-url-width);
	}
.ck.ck-image-insert-form > .ck.ck-collapsible:not(:first-child) {
			border-top: 1px solid var(--ck-color-base-border);
		}
.ck.ck-image-insert-form > .ck.ck-collapsible:not(:last-child) {
			border-bottom: 1px solid var(--ck-color-base-border);
		}
/* This is the case when there are no other integrations configured than insert by URL */
.ck.ck-image-insert-form > .ck.ck-image-insert-url {
		min-width: var(--ck-image-insert-insert-by-url-width);
		padding: var(--ck-spacing-large);
	}
.ck.ck-image-insert-form:focus {
		outline: none;
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-color-image-upload-icon: hsl(0, 0%, 100%);
	--ck-color-image-upload-icon-background: hsl(120, 100%, 27%);

	/* Match the icon size with the linked image indicator brought by the link image feature. */
	--ck-image-upload-icon-size: 20;
	--ck-image-upload-icon-width: 2px;
	--ck-image-upload-icon-is-visible: clamp(0px, 100% - 50px, 1px);
}
.ck-image-upload-complete-icon {
	opacity: 0;
	background: var(--ck-color-image-upload-icon-background);
	animation-name: ck-upload-complete-icon-show, ck-upload-complete-icon-hide;
	animation-fill-mode: forwards, forwards;
	animation-duration: 500ms, 500ms;

	/* To make animation scalable. */
	font-size: calc(1px * var(--ck-image-upload-icon-size));

	/* Hide completed upload icon after 3 seconds. */
	animation-delay: 0ms, 3000ms;

	/*
	 * Use CSS math to simulate container queries.
	 * https://css-tricks.com/the-raven-technique-one-step-closer-to-container-queries/#what-about-showing-and-hiding-things
	 */
	overflow: hidden;
	width: calc(var(--ck-image-upload-icon-is-visible) * var(--ck-image-upload-icon-size));
	height: calc(var(--ck-image-upload-icon-is-visible) * var(--ck-image-upload-icon-size));

	/* This is check icon element made from border-width mixed with animations. */
}
.ck-image-upload-complete-icon::after {
		/* Because of border transformation we need to "hard code" left position. */
		left: 25%;

		top: 50%;
		opacity: 0;
		height: 0;
		width: 0;

		transform: scaleX(-1) rotate(135deg);
		transform-origin: left top;
		border-top: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);
		border-right: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);

		animation-name: ck-upload-complete-icon-check;
		animation-duration: 500ms;
		animation-delay: 500ms;
		animation-fill-mode: forwards;

		/* #1095. While reset is not providing proper box-sizing for pseudoelements, we need to handle it. */
		box-sizing: border-box;
	}
@media (prefers-reduced-motion: reduce) {
.ck-image-upload-complete-icon {
		animation-duration: 0ms;
}

		.ck-image-upload-complete-icon::after {
			animation: none;
			opacity: 1;
			width: 0.3em;
			height: 0.45em;
		}
	}
@keyframes ck-upload-complete-icon-show {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}
@keyframes ck-upload-complete-icon-hide {
	from {
		opacity: 1;
	}

	to {
		opacity: 0;
	}
}
@keyframes ck-upload-complete-icon-check {
	0% {
		opacity: 1;
		width: 0;
		height: 0;
	}
	33% {
		width: 0.3em;
		height: 0;
	}
	100% {
		opacity: 1;
		width: 0.3em;
		height: 0.45em;
	}
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-color-upload-placeholder-loader: hsl(0, 0%, 70%);
	--ck-upload-placeholder-loader-size: 32px;
	--ck-upload-placeholder-image-aspect-ratio: 2.8;
}
.ck .ck-image-upload-placeholder {
	/* We need to control the full width of the SVG gray background. */
	width: 100%;
	margin: 0;
}
.ck .ck-image-upload-placeholder.image-inline {
		width: calc( 2 * var(--ck-upload-placeholder-loader-size) * var(--ck-upload-placeholder-image-aspect-ratio) );
	}
.ck .ck-image-upload-placeholder img {
		/*
		 * This is an arbitrary aspect for a 1x1 px GIF to display to the user. Not too tall, not too short.
		 * There's nothing special about this number except that it should make the image placeholder look like
		 * a real image during this short period after the upload started and before the image was read from the
		 * file system (and a rich preview was loaded).
		 */
		aspect-ratio: var(--ck-upload-placeholder-image-aspect-ratio);
	}
.ck .ck-upload-placeholder-loader {
	width: 100%;
	height: 100%;
}
.ck .ck-upload-placeholder-loader::before {
		width: var(--ck-upload-placeholder-loader-size);
		height: var(--ck-upload-placeholder-loader-size);
		border-radius: 50%;
		border-top: 3px solid var(--ck-color-upload-placeholder-loader);
		border-right: 2px solid transparent;
		animation: ck-upload-placeholder-loader 1s linear infinite;
	}
@keyframes ck-upload-placeholder-loader {
	to {
		transform: rotate( 360deg );
	}
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/* Showing animation. */
.ck.ck-editor__editable .image.ck-appear, .ck.ck-editor__editable .image-inline.ck-appear {
			animation: fadeIn 700ms;
		}
@media (prefers-reduced-motion: reduce) {
.ck.ck-editor__editable .image.ck-appear, .ck.ck-editor__editable .image-inline.ck-appear {
				opacity: 1;
				animation: none;
		}
			}
/* Upload progress bar. */
.ck.ck-editor__editable .image .ck-progress-bar,
	.ck.ck-editor__editable .image-inline .ck-progress-bar {
		height: 2px;
		width: 0;
		background: var(--ck-color-upload-bar-background);
		transition: width 100ms;
	}
@keyframes fadeIn {
	from { opacity: 0; }
	to   { opacity: 1; }
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-text-alternative-form-width: 340px;
}
@media screen and (max-width: 600px) {
	:root {
		--ck-text-alternative-form-width: 300px;
	}
	}
.ck.ck-text-alternative-form.ck-responsive-form {
		width: var(--ck-text-alternative-form-width);
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-image-custom-resize-form-width: 340px;
}
@media screen and (max-width: 600px) {
	:root {
		--ck-image-custom-resize-form-width: 300px;
	}
	}
.ck.ck-image-custom-resize-form.ck-responsive-form {
		width: var(--ck-image-custom-resize-form-width);
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/* Class added to span element surrounding currently selected link. */
.ck .ck-link_selected {
	background: var(--ck-color-link-selected-background);

	/* Give linked inline images some outline to let the user know they are also part of the link. */
}
.ck .ck-link_selected span.image-inline {
		outline: var(--ck-widget-outline-thickness) solid var(--ck-color-link-selected-background);
	}
/*
 * Classes used by the "fake visual selection" displayed in the content when an input
 * in the link UI has focus (the browser does not render the native selection in this state).
 */
.ck .ck-fake-link-selection {
	background: var(--ck-color-link-fake-selection);
}
/* A collapsed fake visual selection. */
.ck .ck-fake-link-selection_collapsed {
	height: 100%;
	border-right: 1px solid var(--ck-color-base-text);
	margin-right: -1px;
	outline: solid 1px hsla(0, 0%, 100%, .5);
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-link-bookmark-icon-size: calc( var(--ck-icon-size) * 0.7); /* 0.7 = 14/20 cause default the icon size is 20px */
}
.ck.ck-toolbar.ck-link-toolbar > .ck-toolbar__items {
		flex-wrap: nowrap;
	}
a.ck.ck-button.ck-link-toolbar__preview {
	padding: 0 var(--ck-spacing-medium);
	color: var(--ck-color-link-default);
	cursor: pointer;
	justify-content: center;
}
a.ck.ck-button.ck-link-toolbar__preview .ck.ck-button__label {
		text-overflow: ellipsis;

		/* Match the box model of the link editor form's input so the balloon
		does not change width when moving between actions and the form. */
		max-width: var(--ck-input-width);
	}
a.ck.ck-button.ck-link-toolbar__preview,
	a.ck.ck-button.ck-link-toolbar__preview:hover,
	a.ck.ck-button.ck-link-toolbar__preview:focus,
	a.ck.ck-button.ck-link-toolbar__preview:active {
		background: none;
	}
a.ck.ck-button.ck-link-toolbar__preview:active {
		box-shadow: none;
	}
a.ck.ck-button.ck-link-toolbar__preview:hover,
	a.ck.ck-button.ck-link-toolbar__preview:focus {
		text-decoration: underline;
	}
a.ck.ck-button.ck-link-toolbar__preview.ck-button_with-text .ck.ck-icon.ck-button__icon {
		width: var(--ck-link-bookmark-icon-size);
		height: var(--ck-link-bookmark-icon-size);
	}
[dir="ltr"] a.ck.ck-button.ck-link-toolbar__preview.ck-button_with-text .ck.ck-icon.ck-button__icon {
			margin-right: var(--ck-spacing-tiny);
			margin-left: var(--ck-spacing-small);
	}
[dir="rtl"] a.ck.ck-button.ck-link-toolbar__preview.ck-button_with-text .ck.ck-icon.ck-button__icon {
			margin-left: var(--ck-spacing-tiny);
			margin-right: var(--ck-spacing-small);
	}
a.ck.ck-button.ck-link-toolbar__preview:has( .ck-icon ) {
		padding-left: var(--ck-spacing-extra-tiny );
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-link-panel-width: 340px;
	/* The height of the text inside the link providers list button. */
	--ck-link-provider-list-item-text-height: calc(var(--ck-line-height-base) * var(--ck-font-size-base));
	/* The height of the link providers list item contained paddings. */
	--ck-link-provider-list-item-height: calc(var(--ck-link-provider-list-item-text-height) + var(--ck-spacing-small) + var(--ck-spacing-small));
}
@media screen and (max-width: 600px) {
	:root {
		--ck-link-panel-width: 300px;
	}
	}
/* Generic class that wraps each link balloon view. */
.ck.ck-form.ck-link-form {
	width: var(--ck-link-panel-width);
	padding-bottom: 0;
}
@media screen and (max-width: 600px) {
.ck.ck-form.ck-link-form.ck-responsive-form .ck-labeled-field-view {
				margin: 0;
		}
	}
.ck.ck-form.ck-link-form .ck-link-form__providers-list {
		border-top: 1px solid var(--ck-color-base-border);

		/* The list should be scrollable when there are more than 4 items. */
	}
.ck.ck-form.ck-link-form .ck-link-form__providers-list:has(.ck-list__item:nth-child(n + 5)) {
			overflow: auto;
			/* Scroll should appear when there are more than 5 item on the list.
			* var(--ck-spacing-large) - is a form padding.
			* 1px - is a border width. */
			max-height: calc(var(--ck-link-provider-list-item-height) * 4 + var(--ck-spacing-large) + 1px);
		}
.ck.ck-form.ck-link-form .ck-link-form__providers-list .ck-link__button {
			padding: var(--ck-spacing-small) var(--ck-spacing-large);
			border-radius: 0;
		}
.ck.ck-form.ck-link-form .ck-link-form__providers-list .ck-link__button > .ck-button__label {
				overflow: hidden;
				text-overflow: ellipsis;
			}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	/* Match the icon size with the upload indicator brought by the image upload feature. */
	--ck-link-image-indicator-icon-size: 20;
	--ck-link-image-indicator-icon-is-visible: clamp(0px, 100% - 50px, 1px);
}
/* Linked image indicator */
.ck.ck-editor__editable figure.image > a::after, .ck.ck-editor__editable a span.image-inline::after {
			content: "";

			/*
			 * Smaller images should have the icon closer to the border.
			 * Match the icon position with the upload indicator brought by the image upload feature.
			 */
			top: min(var(--ck-spacing-medium), 6%);
			right: min(var(--ck-spacing-medium), 6%);

			background-color: hsla(0, 0%, 0%, .4);
			background-image: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTExLjA3NyAxNSAuOTkxLTEuNDE2YS43NS43NSAwIDEgMSAxLjIyOS44NmwtMS4xNDggMS42NGEuNzQ4Ljc0OCAwIDAgMS0uMjE3LjIwNiA1LjI1MSA1LjI1MSAwIDAgMS04LjUwMy01Ljk1NS43NDEuNzQxIDAgMCAxIC4xMi0uMjc0bDEuMTQ3LTEuNjM5YS43NS43NSAwIDEgMSAxLjIyOC44Nkw0LjkzMyAxMC43bC4wMDYuMDAzYTMuNzUgMy43NSAwIDAgMCA2LjEzMiA0LjI5NGwuMDA2LjAwNHptNS40OTQtNS4zMzVhLjc0OC43NDggMCAwIDEtLjEyLjI3NGwtMS4xNDcgMS42MzlhLjc1Ljc1IDAgMSAxLTEuMjI4LS44NmwuODYtMS4yM2EzLjc1IDMuNzUgMCAwIDAtNi4xNDQtNC4zMDFsLS44NiAxLjIyOWEuNzUuNzUgMCAwIDEtMS4yMjktLjg2bDEuMTQ4LTEuNjRhLjc0OC43NDggMCAwIDEgLjIxNy0uMjA2IDUuMjUxIDUuMjUxIDAgMCAxIDguNTAzIDUuOTU1em0tNC41NjMtMi41MzJhLjc1Ljc1IDAgMCAxIC4xODQgMS4wNDVsLTMuMTU1IDQuNTA1YS43NS43NSAwIDEgMS0xLjIyOS0uODZsMy4xNTUtNC41MDZhLjc1Ljc1IDAgMCAxIDEuMDQ1LS4xODR6Ii8+PC9zdmc+);
			background-size: 14px;
			background-repeat: no-repeat;
			background-position: center;
			border-radius: 100%;

			/*
			* Use CSS math to simulate container queries.
			* https://css-tricks.com/the-raven-technique-one-step-closer-to-container-queries/#what-about-showing-and-hiding-things
			*/
			overflow: hidden;
			width: calc(var(--ck-link-image-indicator-icon-is-visible) * var(--ck-link-image-indicator-icon-size));
			height: calc(var(--ck-link-image-indicator-icon-is-visible) * var(--ck-link-image-indicator-icon-size));
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-link-properties-width: 340px;
}
@media screen and (max-width: 600px) {
	:root {
		--ck-link-properties-width: 300px;
	}
	}
.ck.ck-link-properties {
	width: var(--ck-link-properties-width);
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-link-providers-width: 340px;
	--ck-link-list-view-max-height: 240px;
	--ck-link-list-view-icon-size: calc( var(--ck-icon-size) * 0.8); /* 0.8 = 16/20 cause default the icon size is 20px */
}
@media screen and (max-width: 600px) {
	:root {
		--ck-link-providers-width: 300px;
	}
	}
.ck.ck-link-providers {
	width: var(--ck-link-providers-width);
}
.ck.ck-link-providers .ck-form__header__label {
		overflow: hidden;
		text-overflow: ellipsis;
	}
.ck.ck-link-providers > .ck-link-providers__list {
		max-height: min( var(--ck-link-list-view-max-height), 40vh );
	}
.ck.ck-link-providers > .ck-link-providers__list .ck-button > .ck-icon {
				width: var(--ck-link-list-view-icon-size);
				height: var(--ck-link-list-view-icon-size);
			}
.ck.ck-link-providers > .ck-link-providers__list .ck-button > .ck-button__label {
				overflow: hidden;
				text-overflow: ellipsis;
				white-space: nowrap;
			}
.ck.ck-link-providers .ck-link__empty-list-info {
		padding: calc( 2 * var(--ck-spacing-large) ) var(--ck-spacing-medium);
		text-align: center;
		font-style: italic;
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/* When there are no list styles and there is no collapsible. */
.ck.ck-list-properties.ck-list-properties_without-styles {
		padding: var(--ck-spacing-large);
	}
.ck.ck-list-properties.ck-list-properties_without-styles > * {
			min-width: 14em;
		}
.ck.ck-list-properties.ck-list-properties_without-styles > * + * {
				margin-top: var(--ck-spacing-standard);
			}
/*
	 * When the numbered list property fields (start at, reversed) should be displayed,
	 * more horizontal space is needed. Reconfigure the style grid to create that space.
	 */
.ck.ck-list-properties.ck-list-properties_with-numbered-properties > .ck-list-styles-list {
			grid-template-columns: repeat( 4, auto );
		}
/* When list styles are rendered and property fields are in a collapsible. */
.ck.ck-list-properties.ck-list-properties_with-numbered-properties > .ck-collapsible {
			border-top: 1px solid var(--ck-color-base-border);
		}
.ck.ck-list-properties.ck-list-properties_with-numbered-properties > .ck-collapsible > .ck-collapsible__children > * {
					width: 100%;
				}
.ck.ck-list-properties.ck-list-properties_with-numbered-properties > .ck-collapsible > .ck-collapsible__children > * + * {
						margin-top: var(--ck-spacing-standard);
					}
.ck.ck-list-properties .ck.ck-numbered-list-properties__start-index .ck-input {
		min-width: auto;
		width: 100%;
	}
.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order {
		background: transparent;
		padding-left: 0;
		padding-right: 0;
		margin-bottom: calc(-1 * var(--ck-spacing-tiny));
	}
.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order:active, .ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order:hover {
			box-shadow: none;
			border-color: transparent;
			background: none;
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-list-style-button-size: 44px;
}
.ck.ck-list-styles-list {
	grid-template-columns: repeat( 3, auto );
	row-gap: var(--ck-spacing-medium);
	column-gap: var(--ck-spacing-medium);
	padding: var(--ck-spacing-large);
}
.ck.ck-list-styles-list .ck-button {
		/* Make the button look like a thumbnail (the icon "takes it all"). */
		width: var(--ck-list-style-button-size);
		height: var(--ck-list-style-button-size);
		padding: 0;

		/*
		 * Buttons are aligned by the grid so disable default button margins to not collide with the
		 * gaps in the grid.
		 */
		margin: 0;

		/*
		 * Make sure the button border (which is displayed on focus, BTW) does not steal pixels
		 * from the button dimensions and, as a result, decrease the size of the icon
		 * (which becomes blurry as it scales down).
		 */
		box-sizing: content-box;
	}
.ck.ck-list-styles-list .ck-button .ck-icon {
			width: var(--ck-list-style-button-size);
			height: var(--ck-list-style-button-size);
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-media-embed-placeholder-icon-size: 3em;

	--ck-color-media-embed-placeholder-url-text: hsl(0, 0%, 46%);
	--ck-color-media-embed-placeholder-url-text-hover: var(--ck-color-base-text);
}
.ck-media__wrapper {
	margin: 0 auto;
}
.ck-media__wrapper .ck-media__placeholder {
		padding: calc( 3 * var(--ck-spacing-standard) );
		background: var(--ck-color-base-foreground);
	}
.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__icon {
			min-width: var(--ck-media-embed-placeholder-icon-size);
			height: var(--ck-media-embed-placeholder-icon-size);
			margin-bottom: var(--ck-spacing-large);
			background-position: center;
			background-size: cover;
		}
.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__icon .ck-icon {
				width: 100%;
				height: 100%;
			}
.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url__text {
			color: var(--ck-color-media-embed-placeholder-url-text);
			white-space: nowrap;
			text-align: center;
			font-style: italic;
			text-overflow: ellipsis;
		}
.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url__text:hover {
				color: var(--ck-color-media-embed-placeholder-url-text-hover);
				cursor: pointer;
				text-decoration: underline;
			}
.ck-media__wrapper[data-oembed-url*="open.spotify.com"] {
		max-width: 300px;
		max-height: 380px;
	}
.ck-media__wrapper[data-oembed-url*="google.com/maps"] .ck-media__placeholder__icon,
	.ck-media__wrapper[data-oembed-url*="goo.gl/maps"] .ck-media__placeholder__icon,
	.ck-media__wrapper[data-oembed-url*="maps.google.com"] .ck-media__placeholder__icon,
	.ck-media__wrapper[data-oembed-url*="maps.app.goo.gl"] .ck-media__placeholder__icon {
		background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTAuMzc4IiBoZWlnaHQ9IjI1NC4xNjciIHZpZXdCb3g9IjAgMCA2Ni4yNDYgNjcuMjQ4Ij48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTcyLjUzMSAtMjE4LjQ1NSkgc2NhbGUoLjk4MDEyKSI+PHJlY3Qgcnk9IjUuMjM4IiByeD0iNS4yMzgiIHk9IjIzMS4zOTkiIHg9IjE3Ni4wMzEiIGhlaWdodD0iNjAuMDk5IiB3aWR0aD0iNjAuMDk5IiBmaWxsPSIjMzRhNjY4IiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjxwYXRoIGQ9Ik0yMDYuNDc3IDI2MC45bC0yOC45ODcgMjguOTg3YTUuMjE4IDUuMjE4IDAgMCAwIDMuNzggMS42MWg0OS42MjFjMS42OTQgMCAzLjE5LS43OTggNC4xNDYtMi4wMzd6IiBmaWxsPSIjNWM4OGM1Ii8+PHBhdGggZD0iTTIyNi43NDIgMjIyLjk4OGMtOS4yNjYgMC0xNi43NzcgNy4xNy0xNi43NzcgMTYuMDE0LjAwNyAyLjc2Mi42NjMgNS40NzQgMi4wOTMgNy44NzUuNDMuNzAzLjgzIDEuNDA4IDEuMTkgMi4xMDcuMzMzLjUwMi42NSAxLjAwNS45NSAxLjUwOC4zNDMuNDc3LjY3My45NTcuOTg4IDEuNDQgMS4zMSAxLjc2OSAyLjUgMy41MDIgMy42MzcgNS4xNjguNzkzIDEuMjc1IDEuNjgzIDIuNjQgMi40NjYgMy45OSAyLjM2MyA0LjA5NCA0LjAwNyA4LjA5MiA0LjYgMTMuOTE0di4wMTJjLjE4Mi40MTIuNTE2LjY2Ni44NzkuNjY3LjQwMy0uMDAxLjc2OC0uMzE0LjkzLS43OTkuNjAzLTUuNzU2IDIuMjM4LTkuNzI5IDQuNTg1LTEzLjc5NC43ODItMS4zNSAxLjY3My0yLjcxNSAyLjQ2NS0zLjk5IDEuMTM3LTEuNjY2IDIuMzI4LTMuNCAzLjYzOC01LjE2OS4zMTUtLjQ4Mi42NDUtLjk2Mi45ODgtMS40MzkuMy0uNTAzLjYxNy0xLjAwNi45NS0xLjUwOC4zNTktLjcuNzYtMS40MDQgMS4xOS0yLjEwNyAxLjQyNi0yLjQwMiAyLTUuMTE0IDIuMDA0LTcuODc1IDAtOC44NDQtNy41MTEtMTYuMDE0LTE2Ljc3Ni0xNi4wMTR6IiBmaWxsPSIjZGQ0YjNlIiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjxlbGxpcHNlIHJ5PSI1LjU2NCIgcng9IjUuODI4IiBjeT0iMjM5LjAwMiIgY3g9IjIyNi43NDIiIGZpbGw9IiM4MDJkMjciIHBhaW50LW9yZGVyPSJtYXJrZXJzIHN0cm9rZSBmaWxsIi8+PHBhdGggZD0iTTE5MC4zMDEgMjM3LjI4M2MtNC42NyAwLTguNDU3IDMuODUzLTguNDU3IDguNjA2czMuNzg2IDguNjA3IDguNDU3IDguNjA3YzMuMDQzIDAgNC44MDYtLjk1OCA2LjMzNy0yLjUxNiAxLjUzLTEuNTU3IDIuMDg3LTMuOTEzIDIuMDg3LTYuMjkgMC0uMzYyLS4wMjMtLjcyMi0uMDY0LTEuMDc5aC04LjI1N3YzLjA0M2g0Ljg1Yy0uMTk3Ljc1OS0uNTMxIDEuNDUtMS4wNTggMS45ODYtLjk0Mi45NTgtMi4wMjggMS41NDgtMy45MDEgMS41NDgtMi44NzYgMC01LjIwOC0yLjM3Mi01LjIwOC01LjI5OSAwLTIuOTI2IDIuMzMyLTUuMjk5IDUuMjA4LTUuMjk5IDEuMzk5IDAgMi42MTguNDA3IDMuNTg0IDEuMjkzbDIuMzgxLTIuMzhjMC0uMDAyLS4wMDMtLjAwNC0uMDA0LS4wMDUtMS41ODgtMS41MjQtMy42Mi0yLjIxNS01Ljk1NS0yLjIxNXptNC40MyA1LjY2bC4wMDMuMDA2di0uMDAzeiIgZmlsbD0iI2ZmZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48cGF0aCBkPSJNMjE1LjE4NCAyNTEuOTI5bC03Ljk4IDcuOTc5IDI4LjQ3NyAyOC40NzVjLjI4Ny0uNjQ5LjQ0OS0xLjM2Ni40NDktMi4xMjN2LTMxLjE2NWMtLjQ2OS42NzUtLjkzNCAxLjM0OS0xLjM4MiAyLjAwNS0uNzkyIDEuMjc1LTEuNjgyIDIuNjQtMi40NjUgMy45OS0yLjM0NyA0LjA2NS0zLjk4MiA4LjAzOC00LjU4NSAxMy43OTQtLjE2Mi40ODUtLjUyNy43OTgtLjkzLjc5OS0uMzYzLS4wMDEtLjY5Ny0uMjU1LS44NzktLjY2N3YtLjAxMmMtLjU5My01LjgyMi0yLjIzNy05LjgyLTQuNi0xMy45MTQtLjc4My0xLjM1LTEuNjczLTIuNzE1LTIuNDY2LTMuOTktMS4xMzctMS42NjYtMi4zMjctMy40LTMuNjM3LTUuMTY5bC0uMDAyLS4wMDN6IiBmaWxsPSIjYzNjM2MzIi8+PHBhdGggZD0iTTIxMi45ODMgMjQ4LjQ5NWwtMzYuOTUyIDM2Ljk1M3YuODEyYTUuMjI3IDUuMjI3IDAgMCAwIDUuMjM4IDUuMjM4aDEuMDE1bDM1LjY2Ni0zNS42NjZhMTM2LjI3NSAxMzYuMjc1IDAgMCAwLTIuNzY0LTMuOSAzNy41NzUgMzcuNTc1IDAgMCAwLS45ODktMS40NGMtLjI5OS0uNTAzLS42MTYtMS4wMDYtLjk1LTEuNTA4LS4wODMtLjE2Mi0uMTc2LS4zMjYtLjI2NC0uNDg5eiIgZmlsbD0iI2ZkZGM0ZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48cGF0aCBkPSJNMjExLjk5OCAyNjEuMDgzbC02LjE1MiA2LjE1MSAyNC4yNjQgMjQuMjY0aC43ODFhNS4yMjcgNS4yMjcgMCAwIDAgNS4yMzktNS4yMzh2LTEuMDQ1eiIgZmlsbD0iI2ZmZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48L2c+PC9zdmc+);
	}
.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder {
		background: hsl(220, 46%, 48%);
	}
.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__icon {
			background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIxMDI0cHgiIGhlaWdodD0iMTAyNHB4IiB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPiAgICAgICAgPHRpdGxlPkZpbGwgMTwvdGl0bGU+ICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPiAgICA8ZGVmcz48L2RlZnM+ICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiAgICAgICAgPGcgaWQ9ImZMb2dvX1doaXRlIiBmaWxsPSIjRkZGRkZFIj4gICAgICAgICAgICA8cGF0aCBkPSJNOTY3LjQ4NCwwIEw1Ni41MTcsMCBDMjUuMzA0LDAgMCwyNS4zMDQgMCw1Ni41MTcgTDAsOTY3LjQ4MyBDMCw5OTguNjk0IDI1LjI5NywxMDI0IDU2LjUyMiwxMDI0IEw1NDcsMTAyNCBMNTQ3LDYyOCBMNDE0LDYyOCBMNDE0LDQ3MyBMNTQ3LDQ3MyBMNTQ3LDM1OS4wMjkgQzU0NywyMjYuNzY3IDYyNy43NzMsMTU0Ljc0NyA3NDUuNzU2LDE1NC43NDcgQzgwMi4yNjksMTU0Ljc0NyA4NTAuODQyLDE1OC45NTUgODY1LDE2MC44MzYgTDg2NSwyOTkgTDc4My4zODQsMjk5LjAzNyBDNzE5LjM5MSwyOTkuMDM3IDcwNywzMjkuNTI5IDcwNywzNzQuMjczIEw3MDcsNDczIEw4NjAuNDg3LDQ3MyBMODQwLjUwMSw2MjggTDcwNyw2MjggTDcwNywxMDI0IEw5NjcuNDg0LDEwMjQgQzk5OC42OTcsMTAyNCAxMDI0LDk5OC42OTcgMTAyNCw5NjcuNDg0IEwxMDI0LDU2LjUxNSBDMTAyNCwyNS4zMDMgOTk4LjY5NywwIDk2Ny40ODQsMCIgaWQ9IkZpbGwtMSI+PC9wYXRoPiAgICAgICAgPC9nPiAgICA8L2c+PC9zdmc+);
		}
.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__url__text {
			color: hsl(220, 100%, 90%);
		}
.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__url__text:hover {
				color: hsl(0, 0%, 100%);
			}
.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder {
		background: linear-gradient(-135deg,hsl(246, 100%, 39%),hsl(302, 100%, 36%),hsl(0, 100%, 48%));
	}
.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__icon {
			background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSI1MDRweCIgaGVpZ2h0PSI1MDRweCIgdmlld0JveD0iMCAwIDUwNCA1MDQiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+ICAgICAgICA8dGl0bGU+Z2x5cGgtbG9nb19NYXkyMDE2PC90aXRsZT4gICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+ICAgIDxkZWZzPiAgICAgICAgPHBvbHlnb24gaWQ9InBhdGgtMSIgcG9pbnRzPSIwIDAuMTU5IDUwMy44NDEgMC4xNTkgNTAzLjg0MSA1MDMuOTQgMCA1MDMuOTQiPjwvcG9seWdvbj4gICAgPC9kZWZzPiAgICA8ZyBpZD0iZ2x5cGgtbG9nb19NYXkyMDE2IiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4gICAgICAgIDxnIGlkPSJHcm91cC0zIj4gICAgICAgICAgICA8bWFzayBpZD0ibWFzay0yIiBmaWxsPSJ3aGl0ZSI+ICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMSI+PC91c2U+ICAgICAgICAgICAgPC9tYXNrPiAgICAgICAgICAgIDxnIGlkPSJDbGlwLTIiPjwvZz4gICAgICAgICAgICA8cGF0aCBkPSJNMjUxLjkyMSwwLjE1OSBDMTgzLjUwMywwLjE1OSAxNzQuOTI0LDAuNDQ5IDE0OC4wNTQsMS42NzUgQzEyMS4yNCwyLjg5OCAxMDIuOTI3LDcuMTU3IDg2LjkwMywxMy4zODUgQzcwLjMzNywxOS44MjIgNTYuMjg4LDI4LjQzNiA0Mi4yODIsNDIuNDQxIEMyOC4yNzcsNTYuNDQ3IDE5LjY2Myw3MC40OTYgMTMuMjI2LDg3LjA2MiBDNi45OTgsMTAzLjA4NiAyLjczOSwxMjEuMzk5IDEuNTE2LDE0OC4yMTMgQzAuMjksMTc1LjA4MyAwLDE4My42NjIgMCwyNTIuMDggQzAsMzIwLjQ5NyAwLjI5LDMyOS4wNzYgMS41MTYsMzU1Ljk0NiBDMi43MzksMzgyLjc2IDYuOTk4LDQwMS4wNzMgMTMuMjI2LDQxNy4wOTcgQzE5LjY2Myw0MzMuNjYzIDI4LjI3Nyw0NDcuNzEyIDQyLjI4Miw0NjEuNzE4IEM1Ni4yODgsNDc1LjcyMyA3MC4zMzcsNDg0LjMzNyA4Ni45MDMsNDkwLjc3NSBDMTAyLjkyNyw0OTcuMDAyIDEyMS4yNCw1MDEuMjYxIDE0OC4wNTQsNTAyLjQ4NCBDMTc0LjkyNCw1MDMuNzEgMTgzLjUwMyw1MDQgMjUxLjkyMSw1MDQgQzMyMC4zMzgsNTA0IDMyOC45MTcsNTAzLjcxIDM1NS43ODcsNTAyLjQ4NCBDMzgyLjYwMSw1MDEuMjYxIDQwMC45MTQsNDk3LjAwMiA0MTYuOTM4LDQ5MC43NzUgQzQzMy41MDQsNDg0LjMzNyA0NDcuNTUzLDQ3NS43MjMgNDYxLjU1OSw0NjEuNzE4IEM0NzUuNTY0LDQ0Ny43MTIgNDg0LjE3OCw0MzMuNjYzIDQ5MC42MTYsNDE3LjA5NyBDNDk2Ljg0Myw0MDEuMDczIDUwMS4xMDIsMzgyLjc2IDUwMi4zMjUsMzU1Ljk0NiBDNTAzLjU1MSwzMjkuMDc2IDUwMy44NDEsMzIwLjQ5NyA1MDMuODQxLDI1Mi4wOCBDNTAzLjg0MSwxODMuNjYyIDUwMy41NTEsMTc1LjA4MyA1MDIuMzI1LDE0OC4yMTMgQzUwMS4xMDIsMTIxLjM5OSA0OTYuODQzLDEwMy4wODYgNDkwLjYxNiw4Ny4wNjIgQzQ4NC4xNzgsNzAuNDk2IDQ3NS41NjQsNTYuNDQ3IDQ2MS41NTksNDIuNDQxIEM0NDcuNTUzLDI4LjQzNiA0MzMuNTA0LDE5LjgyMiA0MTYuOTM4LDEzLjM4NSBDNDAwLjkxNCw3LjE1NyAzODIuNjAxLDIuODk4IDM1NS43ODcsMS42NzUgQzMyOC45MTcsMC40NDkgMzIwLjMzOCwwLjE1OSAyNTEuOTIxLDAuMTU5IFogTTI1MS45MjEsNDUuNTUgQzMxOS4xODYsNDUuNTUgMzI3LjE1NCw0NS44MDcgMzUzLjcxOCw0Ny4wMTkgQzM3OC4yOCw0OC4xMzkgMzkxLjYxOSw1Mi4yNDMgNDAwLjQ5Niw1NS42OTMgQzQxMi4yNTUsNjAuMjYzIDQyMC42NDcsNjUuNzIyIDQyOS40NjIsNzQuNTM4IEM0MzguMjc4LDgzLjM1MyA0NDMuNzM3LDkxLjc0NSA0NDguMzA3LDEwMy41MDQgQzQ1MS43NTcsMTEyLjM4MSA0NTUuODYxLDEyNS43MiA0NTYuOTgxLDE1MC4yODIgQzQ1OC4xOTMsMTc2Ljg0NiA0NTguNDUsMTg0LjgxNCA0NTguNDUsMjUyLjA4IEM0NTguNDUsMzE5LjM0NSA0NTguMTkzLDMyNy4zMTMgNDU2Ljk4MSwzNTMuODc3IEM0NTUuODYxLDM3OC40MzkgNDUxLjc1NywzOTEuNzc4IDQ0OC4zMDcsNDAwLjY1NSBDNDQzLjczNyw0MTIuNDE0IDQzOC4yNzgsNDIwLjgwNiA0MjkuNDYyLDQyOS42MjEgQzQyMC42NDcsNDM4LjQzNyA0MTIuMjU1LDQ0My44OTYgNDAwLjQ5Niw0NDguNDY2IEMzOTEuNjE5LDQ1MS45MTYgMzc4LjI4LDQ1Ni4wMiAzNTMuNzE4LDQ1Ny4xNCBDMzI3LjE1OCw0NTguMzUyIDMxOS4xOTEsNDU4LjYwOSAyNTEuOTIxLDQ1OC42MDkgQzE4NC42NSw0NTguNjA5IDE3Ni42ODQsNDU4LjM1MiAxNTAuMTIzLDQ1Ny4xNCBDMTI1LjU2MSw0NTYuMDIgMTEyLjIyMiw0NTEuOTE2IDEwMy4zNDUsNDQ4LjQ2NiBDOTEuNTg2LDQ0My44OTYgODMuMTk0LDQzOC40MzcgNzQuMzc5LDQyOS42MjEgQzY1LjU2NCw0MjAuODA2IDYwLjEwNCw0MTIuNDE0IDU1LjUzNCw0MDAuNjU1IEM1Mi4wODQsMzkxLjc3OCA0Ny45OCwzNzguNDM5IDQ2Ljg2LDM1My44NzcgQzQ1LjY0OCwzMjcuMzEzIDQ1LjM5MSwzMTkuMzQ1IDQ1LjM5MSwyNTIuMDggQzQ1LjM5MSwxODQuODE0IDQ1LjY0OCwxNzYuODQ2IDQ2Ljg2LDE1MC4yODIgQzQ3Ljk4LDEyNS43MiA1Mi4wODQsMTEyLjM4MSA1NS41MzQsMTAzLjUwNCBDNjAuMTA0LDkxLjc0NSA2NS41NjMsODMuMzUzIDc0LjM3OSw3NC41MzggQzgzLjE5NCw2NS43MjIgOTEuNTg2LDYwLjI2MyAxMDMuMzQ1LDU1LjY5MyBDMTEyLjIyMiw1Mi4yNDMgMTI1LjU2MSw0OC4xMzkgMTUwLjEyMyw0Ny4wMTkgQzE3Ni42ODcsNDUuODA3IDE4NC42NTUsNDUuNTUgMjUxLjkyMSw0NS41NSBaIiBpZD0iRmlsbC0xIiBmaWxsPSIjRkZGRkZGIiBtYXNrPSJ1cmwoI21hc2stMikiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgICAgIDxwYXRoIGQ9Ik0yNTEuOTIxLDMzNi4wNTMgQzIwNS41NDMsMzM2LjA1MyAxNjcuOTQ3LDI5OC40NTcgMTY3Ljk0NywyNTIuMDggQzE2Ny45NDcsMjA1LjcwMiAyMDUuNTQzLDE2OC4xMDYgMjUxLjkyMSwxNjguMTA2IEMyOTguMjk4LDE2OC4xMDYgMzM1Ljg5NCwyMDUuNzAyIDMzNS44OTQsMjUyLjA4IEMzMzUuODk0LDI5OC40NTcgMjk4LjI5OCwzMzYuMDUzIDI1MS45MjEsMzM2LjA1MyBaIE0yNTEuOTIxLDEyMi43MTUgQzE4MC40NzQsMTIyLjcxNSAxMjIuNTU2LDE4MC42MzMgMTIyLjU1NiwyNTIuMDggQzEyMi41NTYsMzIzLjUyNiAxODAuNDc0LDM4MS40NDQgMjUxLjkyMSwzODEuNDQ0IEMzMjMuMzY3LDM4MS40NDQgMzgxLjI4NSwzMjMuNTI2IDM4MS4yODUsMjUyLjA4IEMzODEuMjg1LDE4MC42MzMgMzIzLjM2NywxMjIuNzE1IDI1MS45MjEsMTIyLjcxNSBaIiBpZD0iRmlsbC00IiBmaWxsPSIjRkZGRkZGIj48L3BhdGg+ICAgICAgICA8cGF0aCBkPSJNNDE2LjYyNywxMTcuNjA0IEM0MTYuNjI3LDEzNC4zIDQwMy4wOTIsMTQ3LjgzNCAzODYuMzk2LDE0Ny44MzQgQzM2OS43MDEsMTQ3LjgzNCAzNTYuMTY2LDEzNC4zIDM1Ni4xNjYsMTE3LjYwNCBDMzU2LjE2NiwxMDAuOTA4IDM2OS43MDEsODcuMzczIDM4Ni4zOTYsODcuMzczIEM0MDMuMDkyLDg3LjM3MyA0MTYuNjI3LDEwMC45MDggNDE2LjYyNywxMTcuNjA0IiBpZD0iRmlsbC01IiBmaWxsPSIjRkZGRkZGIj48L3BhdGg+ICAgIDwvZz48L3N2Zz4=);
		}
/* stylelint-disable-next-line no-descending-specificity */
.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__url__text {
			color: hsl(302, 100%, 94%);
		}
.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__url__text:hover {
				color: hsl(0, 0%, 100%);
			}
.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder {
		/* Use gradient to contrast with focused widget (ckeditor/ckeditor5-media-embed#22). */
		background: linear-gradient( to right, hsl(201, 85%, 70%), hsl(201, 85%, 35%) );
	}
.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__icon {
			background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IldoaXRlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQwMCA0MDAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQwMCA0MDA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGUgdHlwZT0idGV4dC9jc3MiPi5zdDB7ZmlsbDojRkZGRkZGO308L3N0eWxlPjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MDAsMjAwYzAsMTEwLjUtODkuNSwyMDAtMjAwLDIwMFMwLDMxMC41LDAsMjAwUzg5LjUsMCwyMDAsMFM0MDAsODkuNSw0MDAsMjAweiBNMTYzLjQsMzA1LjVjODguNywwLDEzNy4yLTczLjUsMTM3LjItMTM3LjJjMC0yLjEsMC00LjItMC4xLTYuMmM5LjQtNi44LDE3LjYtMTUuMywyNC4xLTI1Yy04LjYsMy44LTE3LjksNi40LTI3LjcsNy42YzEwLTYsMTcuNi0xNS40LDIxLjItMjYuN2MtOS4zLDUuNS0xOS42LDkuNS0zMC42LDExLjdjLTguOC05LjQtMjEuMy0xNS4yLTM1LjItMTUuMmMtMjYuNiwwLTQ4LjIsMjEuNi00OC4yLDQ4LjJjMCwzLjgsMC40LDcuNSwxLjMsMTFjLTQwLjEtMi03NS42LTIxLjItOTkuNC01MC40Yy00LjEsNy4xLTYuNSwxNS40LTYuNSwyNC4yYzAsMTYuNyw4LjUsMzEuNSwyMS41LDQwLjFjLTcuOS0wLjItMTUuMy0yLjQtMjEuOC02YzAsMC4yLDAsMC40LDAsMC42YzAsMjMuNCwxNi42LDQyLjgsMzguNyw0Ny4zYy00LDEuMS04LjMsMS43LTEyLjcsMS43Yy0zLjEsMC02LjEtMC4zLTkuMS0wLjljNi4xLDE5LjIsMjMuOSwzMy4xLDQ1LDMzLjVjLTE2LjUsMTIuOS0zNy4zLDIwLjYtNTkuOSwyMC42Yy0zLjksMC03LjctMC4yLTExLjUtMC43QzExMC44LDI5Ny41LDEzNi4yLDMwNS41LDE2My40LDMwNS41Ii8+PC9zdmc+);
		}
.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__url__text {
			color: hsl(201, 100%, 86%);
		}
.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__url__text:hover {
				color: hsl(0, 0%, 100%);
			}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-color-mention-background: hsla(341, 100%, 30%, 0.1);
	--ck-color-mention-text: hsl(341, 100%, 30%);
}
.ck-content .mention {
	background: var(--ck-color-mention-background);
	color: var(--ck-color-mention-text);
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-color-restricted-editing-exception-background: hsla(31, 100%, 65%, .2);
	--ck-color-restricted-editing-exception-hover-background: hsla(31, 100%, 65%, .35);
	--ck-color-restricted-editing-exception-brackets: hsla(31, 100%, 40%, .4);
	--ck-color-restricted-editing-selected-exception-background: hsla(31, 100%, 65%, .5);
	--ck-color-restricted-editing-selected-exception-brackets: hsla(31, 100%, 40%, .6);
}
.ck-editor__editable .restricted-editing-exception {
	transition: .2s ease-in-out background;
	background-color: var(--ck-color-restricted-editing-exception-background);
	border: 1px solid;
	border-image: linear-gradient(
		to right,
		var(--ck-color-restricted-editing-exception-brackets) 0%,
		var(--ck-color-restricted-editing-exception-brackets) 5px,
		hsla(0, 0%, 0%, 0) 6px,
		hsla(0, 0%, 0%, 0) calc(100% - 6px),
		var(--ck-color-restricted-editing-exception-brackets) calc(100% - 5px),
		var(--ck-color-restricted-editing-exception-brackets) 100%
	) 1;
}
@media (prefers-reduced-motion: reduce) {
.ck-editor__editable .restricted-editing-exception {
		transition: none;
}
	}
.ck-editor__editable .restricted-editing-exception.restricted-editing-exception_selected {
		background-color: var(--ck-color-restricted-editing-selected-exception-background);
		border-image: linear-gradient(
			to right,
			var(--ck-color-restricted-editing-selected-exception-brackets) 0%,
			var(--ck-color-restricted-editing-selected-exception-brackets) 5px,
			var(--ck-color-restricted-editing-selected-exception-brackets) calc(100% - 5px),
			var(--ck-color-restricted-editing-selected-exception-brackets) 100%
		) 1;
	}
.ck-editor__editable .restricted-editing-exception.restricted-editing-exception_collapsed {
		/* Empty exception should have the same width as exception with at least 1 char */
		padding-left: 1ch;
	}
.ck-restricted-editing_mode_restricted {
	cursor: default;

	/* We also have to override all elements inside the restricted editable to prevent cursor switching between default and text
	during the pointer movement. */
}
.ck-restricted-editing_mode_restricted * {
		cursor: default;
	}
.ck-restricted-editing_mode_restricted .restricted-editing-exception {
		cursor: text;
	}
.ck-restricted-editing_mode_restricted .restricted-editing-exception * {
			cursor: text;
		}
.ck-restricted-editing_mode_restricted .restricted-editing-exception:hover {
			background: var(--ck-color-restricted-editing-exception-hover-background);
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
:root {
	--ck-character-grid-tile-size: 24px;
}
.ck.ck-character-grid {
	overflow-y: auto;
	overflow-x: hidden;
}
.ck.ck-character-grid .ck-character-grid__tiles {
		grid-template-columns: repeat(auto-fill, minmax(var(--ck-character-grid-tile-size), 1fr));
		margin: var(--ck-spacing-standard) var(--ck-spacing-large);
		grid-gap: var(--ck-spacing-standard);
	}
.ck.ck-character-grid .ck-character-grid__tile {
		width: var(--ck-character-grid-tile-size);
		height: var(--ck-character-grid-tile-size);
		min-width: var(--ck-character-grid-tile-size);
		min-height: var(--ck-character-grid-tile-size);
		font-size: 1.5em;
		padding: 0;
		transition: .2s ease box-shadow;
		border: 0;
	}
@media (prefers-reduced-motion: reduce) {
.ck.ck-character-grid .ck-character-grid__tile {
			transition: none;
	}
		}
.ck.ck-character-grid .ck-character-grid__tile:focus:not( .ck-disabled ),
		.ck.ck-character-grid .ck-character-grid__tile:hover:not( .ck-disabled ) {
			/* Disable the default .ck-button's border ring. */
			border: 0;
			box-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-focus-border);
		}
/* Make sure the glyph is rendered in the center of the button */
.ck.ck-character-grid .ck-character-grid__tile .ck-button__label {
			line-height: var(--ck-character-grid-tile-size);
			width: 100%;
			text-align: center;
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-character-info {
	padding: var(--ck-spacing-small) var(--ck-spacing-large);
	border-top: 1px solid var(--ck-color-base-border);
}
.ck.ck-character-info > * {
		text-transform: uppercase;
		font-size: var(--ck-font-size-small);
	}
.ck.ck-character-info .ck-character-info__name {
		max-width: 280px;
		text-overflow: ellipsis;
		overflow: hidden;
	}
.ck.ck-character-info .ck-character-info__code {
		opacity: .6;
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-special-characters-navigation > .ck-label {
		max-width: 160px;
		text-overflow: ellipsis;
		overflow: hidden;
	}
.ck.ck-special-characters-navigation > .ck-dropdown .ck-dropdown__panel {
		/* There could be dozens of categories available. Use scroll to prevent a 10e6px dropdown. */
		max-height: 250px;
		overflow-y: auto;
		overflow-x: hidden;
	}
@media screen and (max-width: 600px) {
.ck.ck-special-characters-navigation {
		max-width: 190px;
}

		.ck.ck-special-characters-navigation > .ck-form__header__label {
			text-overflow: ellipsis;
			overflow: hidden;
		}
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-dropdown.ck-style-dropdown.ck-style-dropdown_multiple-active > .ck-button > .ck-button__label {
	font-style: italic;
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-style-panel-button-width: 120px;
	--ck-style-panel-button-height: 80px;
	--ck-style-panel-button-label-background: hsl(0, 0%, 94.1%);
	--ck-style-panel-button-hover-label-background: hsl(0, 0%, 92.1%);
	--ck-style-panel-button-hover-border-color: hsl(0, 0%, 70%);
}
.ck.ck-style-panel .ck-style-grid {
	row-gap: var(--ck-spacing-large);
	column-gap: var(--ck-spacing-large);
}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button {
		--ck-color-button-default-hover-background: var(--ck-color-base-background);
		--ck-color-button-default-active-background: var(--ck-color-base-background);

		padding: 0;
		width: var(--ck-style-panel-button-width);
		height: var(--ck-style-panel-button-height);

		/* Let default .ck-button :focus styles apply */
	}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button:not(:focus) {
			border: 1px solid var(--ck-color-base-border);
		}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button .ck-button__label {
			height: 22px;
			line-height: 22px;
			width: 100%;
			padding: 0 var(--ck-spacing-medium);
			overflow: hidden;
			text-overflow: ellipsis;
			flex-shrink: 0;
		}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button .ck-style-grid__button__preview {
			width: 100%;
			overflow: hidden;
			opacity: .9;

			padding: var(--ck-spacing-medium);
			background: var(--ck-color-base-background);
			border: 2px solid var(--ck-color-base-background);
		}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-disabled {
			--ck-color-button-default-disabled-background: var(--ck-color-base-foreground);

			/* Let default .ck-button :focus styles apply */
		}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-disabled:not(:focus) {
				border-color: var(--ck-style-panel-button-label-background);
			}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-disabled .ck-style-grid__button__preview {
				opacity: .4;

				border-color: var(--ck-color-base-foreground);
				filter: saturate(.3);
			}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-on {
			border-color: var(--ck-color-base-active);
		}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-on .ck-button__label {
				box-shadow: 0 -1px 0 var(--ck-color-base-active);
				z-index: 1; /* Stay on top of the preview with the shadow. */
			}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-on:hover {
				border-color: var(--ck-color-base-active-focus);
			}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button:not(.ck-on) .ck-button__label {
				background: var(--ck-style-panel-button-label-background);
			}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button:not(.ck-on):hover .ck-button__label {
				background: var(--ck-style-panel-button-hover-label-background);
			}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button:hover:not(.ck-disabled):not(.ck-on) {
			border-color: var(--ck-style-panel-button-hover-border-color);
		}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button:hover:not(.ck-disabled):not(.ck-on) .ck-style-grid__button__preview {
				opacity: 1;
			}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-style-panel .ck-style-panel__style-group > .ck-label {
		margin: var(--ck-spacing-large) 0;
	}
.ck.ck-style-panel .ck-style-panel__style-group:first-child > .ck-label {
			margin-top: 0;
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-style-panel-max-height: 470px;
}
.ck.ck-style-panel {
	padding: var(--ck-spacing-large);
	overflow-y: auto;
	max-height: var(--ck-style-panel-max-height);
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
[dir="ltr"] .ck.ck-input-color > .ck.ck-input-text {
			border-top-right-radius: 0;
			border-bottom-right-radius: 0;
	}
[dir="rtl"] .ck.ck-input-color > .ck.ck-input-text {
			border-top-left-radius: 0;
			border-bottom-left-radius: 0;
	}
/* Make sure the focused input is always on top of the dropdown button so its
		   outline and border are never cropped (also when the input is read-only). */
.ck.ck-input-color > .ck.ck-input-text:focus {
			z-index: 0;
		}
.ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button {
			padding: 0;
		}
[dir="ltr"] .ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button {
				border-top-left-radius: 0;
				border-bottom-left-radius: 0;
	}
[dir="ltr"] .ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button:not(:focus) {
					border-left: 1px solid transparent;
				}
[dir="rtl"] .ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button {
				border-top-right-radius: 0;
				border-bottom-right-radius: 0;
	}
[dir="rtl"] .ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button:not(:focus) {
					border-right: 1px solid transparent;
				}
.ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button.ck-disabled {
				background: var(--ck-color-input-disabled-background);
			}
.ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button > .ck.ck-input-color__button__preview {
				border-radius: 0;

				width: 20px;
				height: 20px;
				border: 1px solid var(--ck-color-input-border);
			}
.ck-rounded-corners .ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button > .ck.ck-input-color__button__preview,
	.ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button > .ck.ck-input-color__button__preview.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
	}
.ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button > .ck.ck-input-color__button__preview > .ck.ck-input-color__button__preview__no-color-indicator {
					top: -30%;
					left: 50%;
					height: 150%;
					width: 8%;
					background: hsl(0, 100%, 50%);
					border-radius: 2px;
					transform: rotate(45deg);
					transform-origin: 50%;
				}
.ck.ck-input-color .ck.ck-input-color__remove-color {
		width: 100%;
		padding: calc(var(--ck-spacing-standard) / 2) var(--ck-spacing-standard);

		border-bottom-left-radius: 0;
		border-bottom-right-radius: 0;
	}
.ck.ck-input-color .ck.ck-input-color__remove-color:not(:focus) {
			border-bottom: 1px solid var(--ck-color-input-border);
		}
[dir="ltr"] .ck.ck-input-color .ck.ck-input-color__remove-color {
			border-top-right-radius: 0;
	}
[dir="rtl"] .ck.ck-input-color .ck.ck-input-color__remove-color {
			border-top-left-radius: 0;
	}
.ck.ck-input-color .ck.ck-input-color__remove-color .ck.ck-icon {
			margin-right: var(--ck-spacing-standard);
		}
[dir="rtl"] .ck.ck-input-color .ck.ck-input-color__remove-color .ck.ck-icon {
				margin-right: 0;
				margin-left: var(--ck-spacing-standard);
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/* Ignore labels that work as fieldset legends */
.ck.ck-form__row > *:not(.ck-label) + * {
			margin-inline-start: var(--ck-spacing-large);
		}
.ck.ck-form__row > .ck-label {
		width: 100%;
		min-width: 100%;
	}
.ck.ck-form__row.ck-table-form__action-row {
		margin-top: var(--ck-spacing-large);
	}
.ck.ck-form__row.ck-table-form__action-row .ck-button .ck-button__label {
			color: var(--ck-color-text);
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-insert-table-dropdown-padding: 10px;
	--ck-insert-table-dropdown-box-height: 11px;
	--ck-insert-table-dropdown-box-width: 12px;
	--ck-insert-table-dropdown-box-margin: 1px;
}
.ck .ck-insert-table-dropdown__grid {
	/* The width of a container should match 10 items in a row so there will be a 10x10 grid. */
	width: calc(var(--ck-insert-table-dropdown-box-width) * 10 + var(--ck-insert-table-dropdown-box-margin) * 20 + var(--ck-insert-table-dropdown-padding) * 2);
	padding: var(--ck-insert-table-dropdown-padding) var(--ck-insert-table-dropdown-padding) 0;
}
.ck .ck-insert-table-dropdown__label,
.ck[dir=rtl] .ck-insert-table-dropdown__label {
	text-align: center;
}
.ck .ck-insert-table-dropdown-grid-box {
	min-width: var(--ck-insert-table-dropdown-box-width);
	min-height: var(--ck-insert-table-dropdown-box-height);
	margin: var(--ck-insert-table-dropdown-box-margin);
	border: 1px solid var(--ck-color-base-border);
	border-radius: 1px;
	outline: none;
	transition: none;
}
@media (prefers-reduced-motion: reduce) {
.ck .ck-insert-table-dropdown-grid-box {
		transition: none;
}
	}
.ck .ck-insert-table-dropdown-grid-box:focus {
		box-shadow: none;
	}
.ck .ck-insert-table-dropdown-grid-box.ck-on {
		border-color: var(--ck-color-focus-border);
		background: var(--ck-color-focus-outer-shadow);
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-table-cell-properties-form {
	width: 320px;
}
.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__padding-row {
			align-self: flex-end;
			padding: 0;
			width: 25%;
		}
.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar {
				background: none;

				/* Compensate for missing input label that would push the margin (toolbar has no inputs). */
				margin-top: var(--ck-spacing-standard);
			}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-color-selector-focused-cell-background: hsla(212, 90%, 80%, .3);
	--ck-table-content-default-border-color: hsl(0, 0%, 83%);
}
/* Dashed outline for table without any border. */
.ck-widget.table table[style*="border:none"],
	.ck-widget.table table[style*="border-style:none"] {
		outline: var(--ck-table-content-default-border-color) 1px dashed;
	}
/**
		 * While setting outline is fine, the border should not be modified here
		 * because it overrides the default table cell border color which is not expected.
		 * So do not use `@mixin ck-focus-ring;` here, or any other border styles.
		 * See more: https://github.com/ckeditor/ckeditor5/issues/16979
		 */
.ck-widget.table td.ck-editor__nested-editable, .ck-widget.table th.ck-editor__nested-editable {
			outline: unset;
		}
.ck-widget.table td.ck-editor__nested-editable.ck-editor__nested-editable_focused:not(.ck-editor__editable_selected),
				.ck-widget.table th.ck-editor__nested-editable.ck-editor__nested-editable_focused:not(.ck-editor__editable_selected),
				.ck-widget.table td.ck-editor__nested-editable:not(.ck-editor__editable_selected):focus,
				.ck-widget.table th.ck-editor__nested-editable:not(.ck-editor__editable_selected):focus {
					/* A very slight background to highlight the focused cell */
					background: var(--ck-color-selector-focused-cell-background);
					outline: 1px solid var(--ck-color-focus-border);
					outline-offset: -1px; /* progressive enhancement - no IE support */
				}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
:root {
	--ck-table-properties-error-arrow-size: 6px;
	--ck-table-properties-min-error-width: 150px;
}
.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-labeled-field-view > .ck-label {
					font-size: var(--ck-font-size-tiny);
					text-align: center;
				}
.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-table-form__border-style,
			.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-table-form__border-width {
				width: 80px;
				min-width: 80px;
				max-width: 80px;
			}
.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row {
			padding: 0;
		}
.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__width,
			.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__height {
				margin: 0
			}
.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimension-operator {
				align-self: flex-end;
				display: inline-block;
				height: var(--ck-ui-component-min-height);
				line-height: var(--ck-ui-component-min-height);
				margin: 0 var(--ck-spacing-small);
			}
.ck.ck-table-form .ck.ck-labeled-field-view {
		padding-top: var(--ck-spacing-standard);
	}
.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status {
			border-radius: 0;

			background: var(--ck-color-base-error);
			color: var(--ck-color-base-background);
			padding: var(--ck-spacing-small) var(--ck-spacing-medium);
			min-width: var(--ck-table-properties-min-error-width);
			text-align: center;

			animation: ck-table-form-labeled-view-status-appear .15s ease both;
		}
.ck-rounded-corners .ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status,
	.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
	}
/* The arrow pointing towards the field. */
.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status::after {
				border-color: transparent transparent var(--ck-color-base-error) transparent;
				border-width: 0 var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size);
				border-style: solid;
			}
@media (prefers-reduced-motion: reduce) {
.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status {
				animation: none;
		}
			}
/* Hide the error balloon when the field is blurred. Makes the experience much more clear. */
.ck.ck-table-form .ck.ck-labeled-field-view .ck-input.ck-error:not(:focus) + .ck.ck-labeled-field-view__status {
			display: none;
		}
@keyframes ck-table-form-labeled-view-status-appear {
	0% {
		opacity: 0;
	}

	100% {
		opacity: 1;
	}
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-table-properties-form {
	width: 320px;
}
.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row {
			align-self: flex-end;
			padding: 0;
		}
.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar {
				background: none;

				/* Compensate for missing input label that would push the margin (toolbar has no inputs). */
				margin-top: var(--ck-spacing-standard);
			}
.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar .ck-toolbar__items > * {
					width: 40px;
				}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-table-selected-cell-background: hsla(208, 90%, 80%, .3);
}
.ck.ck-editor__editable .table table td.ck-editor__editable_selected,
	.ck.ck-editor__editable .table table th.ck-editor__editable_selected {
		position: relative;
		caret-color: transparent;
		box-shadow: unset;

		/* https://github.com/ckeditor/ckeditor5/issues/6446 */
	}
.ck.ck-editor__editable .table table td.ck-editor__editable_selected:after, .ck.ck-editor__editable .table table th.ck-editor__editable_selected:after {
			content: '';
			pointer-events: none;
			background-color: var(--ck-table-selected-cell-background);
			position: absolute;
			top: 0;
			left: 0;
			right: 0;
			bottom: 0;
		}
.ck.ck-editor__editable .table table td.ck-editor__editable_selected ::selection,
		.ck.ck-editor__editable .table table th.ck-editor__editable_selected ::selection,
		.ck.ck-editor__editable .table table td.ck-editor__editable_selected:focus,
		.ck.ck-editor__editable .table table th.ck-editor__editable_selected:focus {
			background-color: transparent;
		}
/*
		 * To reduce the amount of noise, all widgets in the table selection have no outline and no selection handle.
		 * See https://github.com/ckeditor/ckeditor5/issues/9491.
		 */
.ck.ck-editor__editable .table table td.ck-editor__editable_selected .ck-widget, .ck.ck-editor__editable .table table th.ck-editor__editable_selected .ck-widget {
			outline: unset;
		}
.ck.ck-editor__editable .table table td.ck-editor__editable_selected .ck-widget > .ck-widget__selection-handle, .ck.ck-editor__editable .table table th.ck-editor__editable_selected .ck-widget > .ck-widget__selection-handle {
				display: none;
			}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-table-layout-widget-type-around-button-size: 16px;
	--ck-table-layout-widget-type-around-icon-width: 10px;
	--ck-table-layout-widget-type-around-icon-height: 8px;
	--ck-table-layout-widget-handler-icon-size: 10px;
	--ck-table-layout-default-border-color: hsl(0, 0%, 83%);

}
.ck-editor__editable .table.layout-table > table {
			width: 100%;
			height: 100%;

			/* Resetting `border-collapse` property to the user agent styles. */
			border-collapse: revert;

			/* The default table layout style in the editing view when the border is unset. */
		}
.ck-editor__editable .table.layout-table > table:not(
			[style*="border:"],
			[style*="border-top"],
			[style*="border-bottom"],
			[style*="border-left"],
			[style*="border-right"],
			[style*="border-width"],
			[style*="border-style"],
			[style*="border-color"]) {
				border-color: transparent;
				border-width: 0;
				outline: none;
			}
.ck-editor__editable .table.layout-table > table > tbody > tr > td {
			box-shadow: revert;
			padding: revert;
			min-width: 2em;
			/* To make the caret visible. */
			text-indent: 1px;

			/* Resets the `min-width` style attribute that was added by the content table style. */
		}
.ck-editor__editable .table.layout-table > table > tbody > tr > td[style^="width:"],
			.ck-editor__editable .table.layout-table > table > tbody > tr > td[style*=" width:"],
			.ck-editor__editable .table.layout-table > table > tbody > tr > td[style*=";width:"],
			.ck-editor__editable .table.layout-table > table > tbody > tr > td[style*="'width:"] {
				min-width: auto;
			}
/* Remove the default background color from the focused table cell. */
.ck-editor__editable .table.layout-table > table > tbody > tr > td:focus {
				background-color: transparent;
			}
/* The default table layout cell style in the editing view when the border is unset.
			But it need to be more strict cause of style attributes like `border-collapse`, `border-spacing`, etc. */
.ck-editor__editable .table.layout-table > table > tbody > tr > td:not(
			[style*="border:"],
			[style*="border-top"],
			[style*="border-bottom"],
			[style*="border-left"],
			[style*="border-right"],
			[style*="border-width"],
			[style*="border-style"],
			[style*="border-color"]) {
				border-color: transparent;
				/* Resetting `border-width` property to the user agent styles. */
				border-width: 0;
				outline: var(--ck-table-layout-default-border-color) 1px dashed;
				outline-offset: -1px;
			}
.ck-editor__editable .table.layout-table > table > tbody > tr > td:not(
			[style*="border:"],
			[style*="border-top"],
			[style*="border-bottom"],
			[style*="border-left"],
			[style*="border-right"],
			[style*="border-width"],
			[style*="border-style"],
			[style*="border-color"]):focus {
					outline: var(--ck-color-focus-border) 1px solid;
				}
/* Reset the `width` and `text-indent` of the bogus paragraph because <td> has 1px text indent. */
.ck-editor__editable .table.layout-table > table > tbody > tr > td > .ck-table-bogus-paragraph {
				width: calc(100% - 1px);
				text-indent: 0;
			}
/* Widget type around overrides. */
.ck-editor__editable .table.layout-table.ck-widget > .ck-widget__type-around {
				--ck-widget-type-around-button-size: var(--ck-table-layout-widget-type-around-button-size);
			}
.ck-editor__editable .table.layout-table.ck-widget > .ck-widget__type-around > .ck-widget__type-around__button.ck-widget__type-around__button_before,
					.ck-editor__editable .table.layout-table.ck-widget > .ck-widget__type-around > .ck-widget__type-around__button.ck-widget__type-around__button_after {
						transform: translateY(0);
						/* Same value as inline-image widget because it is after the inline-image in HTML structure */
						z-index: 2;
					}
.ck-editor__editable .table.layout-table.ck-widget > .ck-widget__type-around > .ck-widget__type-around__button.ck-widget__type-around__button_before {
						margin-left: var(--ck-table-layout-widget-type-around-button-size);
						left: min(10%, 30px);
						border-radius: 0 0 100px 100px;
					}
.ck-editor__editable .table.layout-table.ck-widget > .ck-widget__type-around > .ck-widget__type-around__button.ck-widget__type-around__button_before::after {
							border-radius: 0 0 100px 100px;
						}
.ck-editor__editable .table.layout-table.ck-widget > .ck-widget__type-around > .ck-widget__type-around__button.ck-widget__type-around__button_after {
						border-radius: 100px 100px 0 0;
					}
.ck-editor__editable .table.layout-table.ck-widget > .ck-widget__type-around > .ck-widget__type-around__button.ck-widget__type-around__button_after::after {
							border-radius: 100px 100px 0 0;
						}
.ck-editor__editable .table.layout-table.ck-widget > .ck-widget__type-around > .ck-widget__type-around__button svg {
						width: var(--ck-table-layout-widget-type-around-icon-width);
						height: var(--ck-table-layout-widget-type-around-icon-height);
					}
.ck-editor__editable .table.layout-table.ck-widget.ck-widget_with-selection-handle > .ck-widget__selection-handle {
					--ck-widget-handler-icon-size: var(--ck-table-layout-widget-handler-icon-size);

					transform: translateY(calc(0px - var(--ck-widget-outline-thickness)));
					/* Value increased by 1 as in selected inline-image widget
					because it is before the inline-image in HTML structure. */
					z-index: 3;
				}
/* Show fake caret on border not above. */
.ck-editor__editable .table.layout-table.ck-widget.ck-widget_type-around_show-fake-caret_before > .ck-widget__type-around > .ck-widget__type-around__fake-caret {
						top: 0;
					}
/* Show fake caret on border not below. */
.ck-editor__editable .table.layout-table.ck-widget.ck-widget_type-around_show-fake-caret_after > .ck-widget__type-around > .ck-widget__type-around__fake-caret {
						bottom: 0;
					}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A visual style of focused element's border.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-widget-outline-thickness: 3px;
	--ck-widget-handler-icon-size: 16px;
	--ck-widget-handler-animation-duration: 200ms;
	--ck-widget-handler-animation-curve: ease;

	--ck-color-widget-blurred-border: hsl(0, 0%, 87%);
	--ck-color-widget-hover-border: hsl(43, 100%, 62%);
	--ck-color-widget-editable-focus-background: var(--ck-color-base-background);
	--ck-color-widget-drag-handler-icon-color: var(--ck-color-base-background);
}
.ck .ck-widget {
	outline-width: var(--ck-widget-outline-thickness);
	outline-style: solid;
	outline-color: transparent;
	transition: outline-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);
}
@media (prefers-reduced-motion: reduce) {
.ck .ck-widget {
		transition: none;
}
	}
.ck .ck-widget.ck-widget_selected,
	.ck .ck-widget.ck-widget_selected:hover {
		outline: var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border);
	}
.ck .ck-widget:hover {
		outline-color: var(--ck-color-widget-hover-border);
	}
.ck .ck-editor__nested-editable {
	border: 1px solid transparent;

	/* The :focus style is applied before .ck-editor__nested-editable_focused class is rendered in the view.
	These styles show a different border for a blink of an eye, so `:focus` need to have same styles applied. */
}
.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused,
	.ck .ck-editor__nested-editable:focus {
		box-shadow: var(--ck-inner-shadow), 0 0;
	}
@media (forced-colors: none) {
		.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused, .ck .ck-editor__nested-editable:focus {
			background-color: var(--ck-color-widget-editable-focus-background);
		}
	}
/**
		 * Focus border should not be applied to table cells because it overrides the default table cell border color.
		 * In other words - in some scenarios, the part of the table cell border has focus color style, which is not expected behavior
		 * because it should be the same as the table cell border color.
		 */
.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused:not(td, th), .ck .ck-editor__nested-editable:focus:not(td, th) {
			/* Disable native outline. */
			outline: none;
			border: var(--ck-focus-ring);
		}
.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle {
		padding: 4px;
		box-sizing: border-box;

		/* Background and opacity will be animated as the handler shows up or the widget gets selected. */
		background-color: transparent;
		opacity: 0;

		/* Transition:
		   * background-color for the .ck-widget_selected state change,
		   * visibility for hiding the handler,
		   * opacity for the proper look of the icon when the handler disappears. */
		transition:
			background-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),
			visibility var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),
			opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);

		/* Make only top corners round. */
		border-radius: var(--ck-border-radius) var(--ck-border-radius) 0 0;

		/* Place the drag handler outside the widget wrapper. */
		transform: translateY(-100%);
		left: calc(0px - var(--ck-widget-outline-thickness));
		top: 0;
	}
@media (prefers-reduced-motion: reduce) {
.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle {
			transition: none;
	}
		}
.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon {
			/* Make sure the dimensions of the icon are independent of the fon-size of the content. */
			width: var(--ck-widget-handler-icon-size);
			height: var(--ck-widget-handler-icon-size);
			color: var(--ck-color-widget-drag-handler-icon-color);

			/* The "selected" part of the icon is invisible by default */
		}
.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator {
				opacity: 0;

				/* Note: The animation is longer on purpose. Simply feels better. */
				transition: opacity 300ms var(--ck-widget-handler-animation-curve);
			}
@media (prefers-reduced-motion: reduce) {
.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator {
					transition: none;
			}
				}
/* Advertise using the look of the icon that once clicked the handler, the widget will be selected. */
.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover .ck-icon .ck-icon__selected-indicator {
			opacity: 1;
		}
/* Show the selection handler on mouse hover over the widget, but not for nested widgets. */
.ck .ck-widget.ck-widget_with-selection-handle:hover > .ck-widget__selection-handle {
		opacity: 1;
		background-color: var(--ck-color-widget-hover-border);
	}
/* Show the selection handler when the widget is selected, but not for nested widgets. */
.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected > .ck-widget__selection-handle, .ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover > .ck-widget__selection-handle {
			opacity: 1;
			background-color: var(--ck-color-focus-border);

			/* When the widget is selected, notify the user using the proper look of the icon. */
		}
.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected > .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator, .ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover > .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator {
				opacity: 1;
			}
/* In a RTL environment, align the selection handler to the right side of the widget */
/* stylelint-disable-next-line no-descending-specificity */
.ck[dir="rtl"] .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle {
	left: auto;
	right: calc(0px - var(--ck-widget-outline-thickness));
}
/* https://github.com/ckeditor/ckeditor5/issues/6415 */
.ck.ck-editor__editable.ck-read-only .ck-widget {
	/* Prevent the :hover outline from showing up because of the used outline-color transition. */
	transition: none;
}
.ck.ck-editor__editable.ck-read-only .ck-widget:not(.ck-widget_selected) {
		/* Disable visual effects of hover/active widget when CKEditor is in readOnly mode.
		 * See: https://github.com/ckeditor/ckeditor5/issues/1261
		 *
		 * Leave the unit because this custom property is used in calc() by other features.
		 * See: https://github.com/ckeditor/ckeditor5/issues/6775
		 */
		--ck-widget-outline-thickness: 0px;
	}
.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle,
		.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover {
			background: var(--ck-color-widget-blurred-border);
		}
/*
* Hide the outline of all widget parents when the widget is being hovered.
*/
.ck .ck-widget:has( .ck-widget.table:hover ) {
	outline-color: transparent;
}
/* Hide the selection handle on mouse hover over the widget of all the widget parents. */
.ck .ck-widget.ck-widget_with-selection-handle:has( .ck-widget.table:hover ) > .ck-widget__selection-handle {
	opacity: 0;
	visibility: hidden;
}
/* Style the widget when it's selected but the editable it belongs to lost focus. */
/* stylelint-disable-next-line no-descending-specificity */
.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected,
	.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover {
		outline-color: var(--ck-color-widget-blurred-border);
	}
.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle > .ck-widget__selection-handle,
			.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle:hover > .ck-widget__selection-handle,
			.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle > .ck-widget__selection-handle:hover,
			.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle:hover > .ck-widget__selection-handle:hover {
				background: var(--ck-color-widget-blurred-border);
			}
.ck.ck-editor__editable > .ck-widget.ck-widget_with-selection-handle:first-child,
.ck.ck-editor__editable blockquote > .ck-widget.ck-widget_with-selection-handle:first-child {
	/* Do not crop selection handler if a widget is a first-child in the blockquote or in the root editable.
	In fact, anything with overflow: hidden.
	https://github.com/ckeditor/ckeditor5-block-quote/issues/28
	https://github.com/ckeditor/ckeditor5-widget/issues/44
	https://github.com/ckeditor/ckeditor5-widget/issues/66 */
	margin-top: calc(1em + var(--ck-widget-handler-icon-size));
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-resizer-size: 10px;

	/* Set the resizer with a 50% offset. */
	--ck-resizer-offset: calc( ( var(--ck-resizer-size) / -2 ) - 2px);
	--ck-resizer-border-width: 1px;
}
.ck .ck-widget__resizer {
	outline: 1px solid var(--ck-color-resizer);
}
.ck .ck-widget__resizer__handle {
	width: var(--ck-resizer-size);
	height: var(--ck-resizer-size);
	background: var(--ck-color-focus-border);
	border: var(--ck-resizer-border-width) solid hsl(0, 0%, 100%);
	border-radius: var(--ck-resizer-border-radius);
}
.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left {
		top: var(--ck-resizer-offset);
		left: var(--ck-resizer-offset);
	}
.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right {
		top: var(--ck-resizer-offset);
		right: var(--ck-resizer-offset);
	}
.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right {
		bottom: var(--ck-resizer-offset);
		right: var(--ck-resizer-offset);
	}
.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left {
		bottom: var(--ck-resizer-offset);
		left: var(--ck-resizer-offset);
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-widget-type-around-button-size: 20px;
	--ck-color-widget-type-around-button-active: var(--ck-color-focus-border);
	--ck-color-widget-type-around-button-hover: var(--ck-color-widget-hover-border);
	--ck-color-widget-type-around-button-blurred-editable: var(--ck-color-widget-blurred-border);
	--ck-color-widget-type-around-button-radar-start-alpha: 0;
	--ck-color-widget-type-around-button-radar-end-alpha: .3;
	--ck-color-widget-type-around-button-icon: var(--ck-color-base-background);
}
/*
	 * Styles of the type around buttons
	 */
.ck .ck-widget .ck-widget__type-around__button {
		width: var(--ck-widget-type-around-button-size);
		height: var(--ck-widget-type-around-button-size);
		background: var(--ck-color-widget-type-around-button);
		border-radius: 100px;
		transition: opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve), background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);

		opacity: 0;

		pointer-events: none;
	}
@media (prefers-reduced-motion: reduce) {
.ck .ck-widget .ck-widget__type-around__button {
			transition: none;
	}
		}
.ck .ck-widget .ck-widget__type-around__button svg {
			width: 10px;
			height: 8px;
			transform: translate(-50%,-50%);
			transition: transform .5s ease;
			margin-top: 1px;
		}
@media (prefers-reduced-motion: reduce) {
.ck .ck-widget .ck-widget__type-around__button svg {
				transition: none;
		}
			}
.ck .ck-widget .ck-widget__type-around__button svg * {
				stroke-dasharray: 10;
				stroke-dashoffset: 0;

				fill: none;
				stroke: var(--ck-color-widget-type-around-button-icon);
				stroke-width: 1.5px;
				stroke-linecap: round;
				stroke-linejoin: round;
			}
.ck .ck-widget .ck-widget__type-around__button svg line {
				stroke-dasharray: 7;
			}
.ck .ck-widget .ck-widget__type-around__button:hover {
			/*
			 * Display the "sonar" around the button when hovered.
			 */
			animation: ck-widget-type-around-button-sonar 1s ease infinite;

			/*
			 * Animate active button's icon.
			 */
		}
.ck .ck-widget .ck-widget__type-around__button:hover svg polyline {
					animation: ck-widget-type-around-arrow-dash 2s linear;
				}
.ck .ck-widget .ck-widget__type-around__button:hover svg line {
					animation: ck-widget-type-around-arrow-tip-dash 2s linear;
				}
@media (prefers-reduced-motion: reduce) {
.ck .ck-widget .ck-widget__type-around__button:hover {
				animation: none;
		}
					.ck .ck-widget .ck-widget__type-around__button:hover svg polyline {
						animation: none;
					}

					.ck .ck-widget .ck-widget__type-around__button:hover svg line {
						animation: none;
					}
			}
/*
	 * Show type around buttons when the widget is being hovered.
	 */
.ck .ck-widget:hover > .ck-widget__type-around > .ck-widget__type-around__button {
			opacity: 1;
			pointer-events: auto;
		}
/*
	 * Styles for the buttons when the widget is NOT selected (but the buttons are visible
	 * and still can be hovered).
	 */
.ck .ck-widget:not(.ck-widget_selected) > .ck-widget__type-around > .ck-widget__type-around__button {
		background: var(--ck-color-widget-type-around-button-hover);
	}
/*
	 * Styles for the buttons when:
	 * - the widget is selected,
	 * - or the button is being hovered (regardless of the widget state).
	 */
.ck .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button,
	.ck .ck-widget > .ck-widget__type-around > .ck-widget__type-around__button:hover {
		background: var(--ck-color-widget-type-around-button-active);
	}
.ck .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button::after, .ck .ck-widget > .ck-widget__type-around > .ck-widget__type-around__button:hover::after {
			width: calc(var(--ck-widget-type-around-button-size) - 2px);
			height: calc(var(--ck-widget-type-around-button-size) - 2px);
			border-radius: 100px;
			background: linear-gradient(135deg, hsla(0,0%,100%,0) 0%, hsla(0,0%,100%,.3) 100%);
		}
/*
		* Styles of the widget when the "fake caret" is blinking (e.g. upon keyboard navigation).
		* Despite the widget being physically selected in the model, its outline should disappear.
		*/
.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_before,
		.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_after {
			outline-color: transparent;
		}
/*
		* Show type around buttons when the widget gets selected.
		*/
.ck .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button {
			opacity: 1;
			pointer-events: auto;
		}
/*
	 * Styles for the "before" button when the widget has a selection handle. Because some space
	 * is consumed by the handle, the button must be moved slightly to the right to let it breathe.
	 */
.ck .ck-widget.ck-widget_with-selection-handle > .ck-widget__type-around > .ck-widget__type-around__button_before {
		margin-left: 20px;
	}
/*
	 * Styles for the horizontal "fake caret" which is displayed when the user navigates using the keyboard.
	 */
.ck .ck-widget .ck-widget__type-around__fake-caret {
		pointer-events: none;
		height: 1px;
		animation: ck-widget-type-around-fake-caret-pulse linear 1s infinite normal forwards;

		/*
		 * The semi-transparent-outline+background combo improves the contrast
		 * when the background underneath the fake caret is dark.
		 */
		outline: solid 1px hsla(0, 0%, 100%, .5);
		background: var(--ck-color-base-text);
	}
/*
		 * When the "fake caret" is visible we simulate that the widget is not selected
		 * (despite being physically selected), so the outline color should be for the
		 * unselected widget.
		 */
.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected:hover, .ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected:hover {
			outline-color: var(--ck-color-widget-hover-border);
		}
/*
		 * Styles of the type around buttons when the "fake caret" is blinking (e.g. upon keyboard navigation).
		 * In this state, the type around buttons would collide with the fake carets so they should disappear.
		 */
.ck .ck-widget.ck-widget_type-around_show-fake-caret_before > .ck-widget__type-around > .ck-widget__type-around__button, .ck .ck-widget.ck-widget_type-around_show-fake-caret_after > .ck-widget__type-around > .ck-widget__type-around__button {
			opacity: 0;
			pointer-events: none;
		}
/*
		 * Fake horizontal caret integration with the selection handle. When the caret is visible, simply
		 * hide the handle because it intersects with the caret (and does not make much sense anyway).
		 */
.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected > .ck-widget__selection-handle, .ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected > .ck-widget__selection-handle, .ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected:hover > .ck-widget__selection-handle, .ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected:hover > .ck-widget__selection-handle {
					opacity: 0
				}
/*
		 * Fake horizontal caret integration with the resize UI. When the caret is visible, simply
		 * hide the resize UI because it creates too much noise. It can be visible when the user
		 * hovers the widget, though.
		 */
.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected.ck-widget_with-resizer > .ck-widget__resizer, .ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected.ck-widget_with-resizer > .ck-widget__resizer {
			opacity: 0
		}
/*
 * Styles for the "before" button when the widget has a selection handle in an RTL environment.
 * The selection handler is aligned to the right side of the widget so there is no need to create
 * additional space for it next to the "before" button.
 */
.ck[dir="rtl"] .ck-widget.ck-widget_with-selection-handle .ck-widget__type-around > .ck-widget__type-around__button_before {
	margin-left: 0;
	margin-right: 20px;
}
/*
 * Hide type around buttons when the widget is selected as a child of a selected
 * nested editable (e.g. mulit-cell table selection).
 *
 * See https://github.com/ckeditor/ckeditor5/issues/7263.
 */
/* stylelint-disable-next-line no-descending-specificity */
.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button, .ck-editor__nested-editable.ck-editor__editable_selected .ck-widget:hover > .ck-widget__type-around > .ck-widget__type-around__button {
				opacity: 0;
				pointer-events: none;
			}
/*
 * Hide type around buttons of all widget parents when the widget is being hovered.
 */
.ck .ck-widget:has( .ck-widget.table:hover ) > .ck-widget__type-around > .ck-widget__type-around__button {
		opacity: 0;
		pointer-events: none;
	}
/*
 * Styles for the buttons when the widget is selected but the user clicked outside of the editor (blurred the editor).
 */
.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button:not(:hover) {
	background: var(--ck-color-widget-type-around-button-blurred-editable);
}
.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button:not(:hover) svg * {
		stroke: hsl(0,0%,60%);
	}
@keyframes ck-widget-type-around-arrow-dash {
	0% {
		stroke-dashoffset: 10;
	}
	20%, 100% {
		stroke-dashoffset: 0;
	}
}
@keyframes ck-widget-type-around-arrow-tip-dash {
	0%, 20% {
		stroke-dashoffset: 7;
	}
	40%, 100% {
		stroke-dashoffset: 0;
	}
}
@keyframes ck-widget-type-around-button-sonar {
	0% {
		box-shadow: 0 0 0 0 hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha));
	}
	50% {
		box-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-end-alpha));
	}
	100% {
		box-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha));
	}
}
@keyframes ck-widget-type-around-fake-caret-pulse {
	0% {
		opacity: 1;
	}
	49% {
		opacity: 1;
	}
	50% {
		opacity: 0;
	}
	99% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-content code {
	background-color: hsla(0, 0%, 78%, 0.3);
	padding: .15em;
	border-radius: 2px;
}

.ck.ck-editor__editable .ck-code_selected  {
	background-color: hsla(0, 0%, 78%, 0.5);
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-content blockquote {
	/* See #12 */
	overflow: hidden;

	/* https://github.com/ckeditor/ckeditor5-block-quote/issues/15 */
	padding-right: 1.5em;
	padding-left: 1.5em;

	margin-left: 0;
	margin-right: 0;
	font-style: italic;
	border-left: solid 5px hsl(0, 0%, 80%);
}

.ck-content[dir="rtl"] blockquote {
	border-left: 0;
	border-right: solid 5px hsl(0, 0%, 80%);
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	/* Based on default CKBox theme colors */
	--ck-image-processing-highlight-color: hsl(220, 10%, 98%);
	--ck-image-processing-background-color: hsl(220, 10%, 90%);
}

.ck.ck-editor__editable .image.image-processing {
			position: relative;
		}

.ck.ck-editor__editable .image.image-processing:before {
				content: '';

				position: absolute;
				top: 0;
				left: 0;
				z-index: 1;

				height: 100%;
				width: 100%;

				background: linear-gradient(
					90deg,
					var(--ck-image-processing-background-color),
					var(--ck-image-processing-highlight-color),
					var(--ck-image-processing-background-color)
				);
				background-size: 200% 100%;

				animation: ck-image-processing-animation 2s linear infinite;
			}

.ck.ck-editor__editable .image.image-processing img {
				height: 100%;
			}

@keyframes ck-image-processing-animation {
	0% {
		background-position: 200% 0;
	}
	100% {
		background-position: -200% 0;
	}
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
	 * Vertical drop target (in text).
	 */

.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position {
		display: inline;
		position: relative;
		pointer-events: none;
	}

.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span {
			position: absolute;
			width: 0;
		}

/*
	 * Styles of the widget being dragged (its preview).
	 */

.ck.ck-editor__editable .ck-widget:-webkit-drag > .ck-widget__selection-handle {
			display: none;
		}

.ck.ck-editor__editable .ck-widget:-webkit-drag > .ck-widget__type-around {
			display: none;
		}

.ck.ck-clipboard-drop-target-line {
	position: absolute;
	pointer-events: none;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-content pre {
	padding: 1em;
	color: hsl(0, 0%, 20.8%);
	background: hsla(0, 0%, 78%, 0.3);
	border: 1px solid hsl(0, 0%, 77%);
	border-radius: 2px;

	/* Code block are language direction–agnostic. */
	text-align: left;
	direction: ltr;

	tab-size: 4;
	white-space: pre-wrap;

	/* Don't inherit the style, e.g. when in a block quote. */
	font-style: normal;

	/* Don't let the code be squashed e.g. when in a table cell. */
	min-width: 200px;
}

.ck-content pre code {
		background: unset;
		padding: 0;
		border-radius: 0;
	}

.ck.ck-editor__editable pre {
	position: relative;
}

.ck.ck-editor__editable pre[data-language]::after {
		content: attr(data-language);
		position: absolute;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-editor {
	/* All the elements within `.ck-editor` are positioned relatively to it.
	 If any element needs to be positioned with respect to the <body>, etc.,
	 it must land outside of the `.ck-editor` in DOM. */
	position: relative;
}

.ck.ck-editor .ck-editor__top .ck-sticky-panel .ck-toolbar {
		/* https://github.com/ckeditor/ckeditor5-editor-classic/issues/62 */
		z-index: var(--ck-z-panel);
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-menu-bar {
	border: none;
	border-bottom: 1px solid var(--ck-color-toolbar-border);
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-emoji-grid-tile-size: 27px;
}

.ck.ck-emoji .ck.ck-emoji__tiles {
		max-width: 100%;
		max-height: min(265px, 40vh);

		overflow-y: auto;
		overflow-x: hidden;
		border-top: 1px solid var(--ck-color-base-border);
	}

.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__grid {
			display: grid;
			grid-template-columns: repeat(auto-fill, minmax(var(--ck-emoji-grid-tile-size), 1fr));
			margin: var(--ck-spacing-standard) var(--ck-spacing-large);
			grid-gap: var(--ck-spacing-small);
		}

.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile {
			width: var(--ck-emoji-grid-tile-size);
			height: var(--ck-emoji-grid-tile-size);
			min-width: var(--ck-emoji-grid-tile-size);
			min-height: var(--ck-emoji-grid-tile-size);
			font-size: 1.5em;
			padding: 0;
			transition: .2s ease box-shadow;
			border: 0;
		}

@media (prefers-reduced-motion: reduce) {

.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile {
				transition: none;
		}
			}

.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile:focus:not(.ck-disabled),
			.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile:hover:not(.ck-disabled) {
				/* Disable the default .ck-button's border ring. */
				border: 0;
				box-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-focus-border);
			}

/* Make sure the glyph is rendered in the center of the button */

.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile .ck-button__label {
				line-height: var(--ck-emoji-grid-tile-size);
				width: 100%;
				text-align: center;
			}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-emoji__categories-list {
	display: flex;
	justify-content: space-between;
	margin: 0 var(--ck-spacing-large);
}

.ck.ck-emoji__categories-list > .ck.ck-button.ck-button_with-text {
		border-width: 0;
		border-bottom-width: 2px;
		border-bottom-style: solid;
		border-bottom-color: transparent;
		padding: 0;
		font-size: var(--ck-font-size-big);
		min-width: var(--ck-font-size-big);
		min-height: var(--ck-font-size-big);
	}

.ck.ck-emoji__categories-list > .ck.ck-button.ck-button_with-text.ck-emoji__category-item.ck-on {
			border-bottom-color: var(--ck-color-base-active);
		}

.ck.ck-emoji__categories-list > .ck.ck-button.ck-button_with-text > span {
			margin: auto;
		}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-emoji__skin-tone {
	margin-left: var(--ck-spacing-standard);
}

.ck.ck-emoji__skin-tone > .ck.ck-dropdown .ck.ck-list__item {
			min-width: 1em;
		}

.ck.ck-emoji__skin-tone > .ck.ck-dropdown .ck-button.ck-dropdown__button .ck-button__label {
				width: initial;
			}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-form.ck-emoji-picker-form {
	padding-bottom: 0;

	/*
	 * `.ck-form` overrides styling of all dropdowns by adding border around them.
	 * The border is not needed in the emoji picker form so try to remove it keeping
	 * specificity high enough to override the form styling.
	 */
}

.ck.ck-form.ck-emoji-picker-form .ck.ck-dropdown .ck-dropdown__button:not(:focus) {
		border-color: transparent;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-emoji {
	width: 320px;
}

.ck .ck.ck-emoji__search {
	display: flex;
	padding: var(--ck-spacing-large);
	padding-bottom: var(--ck-spacing-medium);
	justify-content: space-between;
	align-items: center;
}

.ck .ck.ck-emoji__search > .ck.ck-search {
		flex: 1;
	}

/*
 * Classes used by the "fake visual selection" displayed in the content when an input
 * in the emoji picker UI has focus (the browser does not render the native selection in this state).
 */
.ck .ck-fake-emoji-selection {
	background: var(--ck-color-link-fake-selection);
}

/* A collapsed fake visual selection. */
.ck .ck-fake-emoji-selection_collapsed {
	height: 100%;
	border-right: 1px solid var(--ck-color-base-text);
	margin-right: -1px;
	outline: solid 1px hsla(0, 0%, 100%, .5);
}

div.ck.ck-balloon-panel.ck-emoji-picker-balloon {
	z-index: calc( var( --ck-z-dialog ) + 1 );
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/* See ckeditor/ckeditor5#936. */
.ck.ck-placeholder,
.ck .ck-placeholder {
	position: relative;
}
.ck.ck-placeholder::before, .ck .ck-placeholder::before {
		position: absolute;
		left: 0;
		right: 0;
		content: attr(data-placeholder);

		/* See ckeditor/ckeditor5#469. */
		pointer-events: none;
	}

/* See ckeditor/ckeditor5#1987. */
.ck.ck-read-only .ck-placeholder::before {
		display: none;
	}

/*
 * Rules for the `ck-placeholder` are loaded before the rules for `ck-reset_all` in the base CKEditor 5 DLL build.
 * This fix overwrites the incorrectly set `position: static` from `ck-reset_all`.
 * See https://github.com/ckeditor/ckeditor5/issues/11418.
 */
.ck.ck-reset_all .ck-placeholder {
	position: relative;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/* Elements marked by the Renderer as hidden should be invisible in the editor. */
.ck.ck-editor__editable span[data-ck-unsafe-element] {
	display: none;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-find-result {
	background: var(--ck-color-highlight-background);
	color: var(--ck-color-text);
}

.ck-find-result_selected {
	background: hsl(29, 100%, 60%);
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-find-and-replace-form {
	max-width: 100%;
}

.ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs, .ck.ck-find-and-replace-form .ck-find-and-replace-form__actions {
		display: flex;

		/* The inputs area styles */
	}

.ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs.ck-find-and-replace-form__inputs .ck-results-counter, .ck.ck-find-and-replace-form .ck-find-and-replace-form__actions.ck-find-and-replace-form__inputs .ck-results-counter {
			position: absolute;
		}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/* The values should be synchronized with the "FONT_SIZE_PRESET_UNITS" object in the "/src/fontsize/utils.js" file. */

/* Styles should be prefixed with the `.ck-content` class.
See https://github.com/ckeditor/ckeditor5/issues/6636 */
.ck-content .text-tiny {
		font-size: .7em;
	}
.ck-content .text-small {
		font-size: .85em;
	}
.ck-content .text-big {
		font-size: 1.4em;
	}
.ck-content .text-huge {
		font-size: 1.8em;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/* Increase z-index of everything to make sure nothing sticks in front of the editor.
Disable scrollbars that can be present due to the rest of the website content. */
html.ck-fullscreen,
body.ck-fullscreen {
	--ck-z-fullscreen: 10000;

	overflow: hidden;

	--ck-z-default: calc(var(--ck-z-fullscreen) + 1);
	--ck-z-panel: calc(var(--ck-z-default) + 999);
	--ck-z-dialog: 100000;

	/* CKBox wrappers have z-index of 9999, let's bump them over the dialog's to ensure visibility like outside fullscreen mode. */
}
html.ck-fullscreen .ckbox-reset:not(#n)>.ckbox--dialog, body.ck-fullscreen .ckbox-reset:not(#n)>.ckbox--dialog {
		--ckbox-z-index-root: calc(var(--ck-z-dialog) + 1);
	}
html.ck-fullscreen .ckbox:not(#n) .ckbox-img-editor, body.ck-fullscreen .ckbox:not(#n) .ckbox-img-editor {
		--ckbox-z-index-preview: calc(var(--ck-z-dialog) + 1);
	}
html.ck-fullscreen .ck-pagination-view-line, body.ck-fullscreen .ck-pagination-view-line {
		z-index: calc(var(--ck-z-fullscreen) + 1);
	}
html.ck-fullscreen .page-break__label, body.ck-fullscreen .page-break__label {
		/* Needs to be higher than for .ck-pagination-view-line to be displayed on top of the line. */
		z-index: calc(var(--ck-z-fullscreen) + 2);
	}

/*
Fullscreen layout:

<div class="ck ck-fullscreen__main-wrapper">
	<div class="ck ck-fullscreen__top-wrapper ck-reset_all">
		<div class="ck ck-fullscreen__menu-bar" data-ck-fullscreen="menu-bar"></div>
		<div class="ck ck-fullscreen__toolbar" data-ck-fullscreen="toolbar"></div>
	</div>
	<div class="ck ck-fullscreen__editable-wrapper">
		<div class="ck ck-fullscreen__sidebar ck-fullscreen__left-sidebar" data-ck-fullscreen="left-sidebar"></div>
		<div class="ck ck-fullscreen__editable" data-ck-fullscreen="editable"></div>
		<div class="ck ck-fullscreen__sidebar ck-fullscreen__right-sidebar" data-ck-fullscreen="right-sidebar"></div>
	</div>
	<div class="ck ck-fullscreen__bottom-wrapper">
		<div class="ck ck-fullscreen__body-wrapper" data-ck-fullscreen="body-wrapper"></div>
	</div>
</div>
*/

.ck.ck-fullscreen__main-wrapper {
	/* `position: fixed` prevents the overscroll on macos that would happen with `position: absolute`. */
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: var(--ck-z-fullscreen);
	background: var(--ck-color-base-foreground);
	display: flex;
	flex-direction: column;
}

.ck.ck-fullscreen__main-wrapper .ck.ck-revision-history-ui__changes-navigation {
		margin-top: 0px;
		margin-bottom: 0px;
	}

/* If the fullscreen container is not directly in the body, we need to make sure it's positioned absolutely. */
:not(body> .ck-fullscreen__main-wrapper).ck-fullscreen__main-wrapper {
	position: absolute;
}
.ck-fullscreen__main-wrapper:not(body> .ck-fullscreen__main-wrapper) .ck-fullscreen__top-wrapper {
		border-top: 1px solid var(--ck-color-base-border);
		border-left: 1px solid var(--ck-color-base-border);
		border-right: 1px solid var(--ck-color-base-border);
		border-radius: var(--ck-border-radius) 0;
	}

.ck-fullscreen__menu-bar .ck.ck-menu-bar {
	border: none;
}

.ck.ck-fullscreen__toolbar .ck-toolbar {
	border-left: 0;
	border-right: 0;
	border-radius: 0;
}

.ck-fullscreen__main-wrapper .ck-fullscreen__editable-wrapper {
	--ck-fullscreen-editor-top-margin: 28px;
	--ck-fullscreen-editor-bottom-margin: 28px;
	display: flex;
	justify-content: flex-start;
	overflow: auto;
	max-height: 100%;
}

.ck-fullscreen__main-wrapper .ck-fullscreen__editable {
	margin-top: var(--ck-fullscreen-editor-top-margin);
	height: 100%;
	margin-left: auto;
}

.ck-fullscreen__main-wrapper .ck-fullscreen__editable::after {
		content: '';
		display: block;
		height: var(--ck-fullscreen-editor-bottom-margin);
	}

.ck-fullscreen__main-wrapper .ck-fullscreen__editable .ck.ck-editor__editable:not(.ck-editor__nested-editable) {
	box-sizing: border-box;
	/* Make sure the border is taken into account. */
	width: calc(210mm + 2px);
	/* Make sure the border is taken into account. */
	max-width: calc(210mm + 2px);
	min-height: 297mm;
	height: fit-content;
	/* Reset margins that may be present on editable. We add them in other places. */
	margin: 0;
	padding: 20mm 12mm;
	border: 1px var(--ck-color-base-border) solid;
	background: hsl(0, 0%, 100%);
	box-shadow: 0 2px 3px hsla(0, 0%, 0%, 0.078);
}

.ck-fullscreen__main-wrapper .ck-fullscreen__editable .ck-source-editing-area {
	width: calc(210mm + 2px);
}

.ck-fullscreen__sidebar {
	width: 300px;
	margin-top: var(--ck-fullscreen-editor-top-margin);
	margin-left: 10px;
}

.ck-fullscreen__left-sidebar {
	font-family: Helvetica, Arial, sans-serif;
	--ck-user-avatar-size: 28px;
	position: sticky;
	align-self: flex-start;
	top: 0;
	height: 100%;
	background-color: transparent;
	margin-top: 0px;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
}

.ck-fullscreen__left-sidebar > :first-child {
		/* Set minimal width if there is any item in the sidebar. */
		min-width: 300px;
		/* We have to use padding-top instead of margin-top because margin is scrollable. */
		padding-top: var(--ck-fullscreen-editor-top-margin);
	}

.ck-fullscreen__left-sidebar .ck.ck-presence-list--collapsed {
	--ck-user-avatar-size: 32px;
}

.ck-fullscreen__left-sidebar .ck-user {
	font-size: 0.85em;
}

.ck-fullscreen__left-sidebar .ck-presence-list__users-counter__text {
	font-size: 0.85em;
}

.ck-fullscreen__left-sidebar-item {
	padding: var(--ck-spacing-medium);
	margin-bottom: var(--ck-spacing-medium);

	/* First header should not have top padding. */
}

.ck-fullscreen__left-sidebar-item:first-child {
		padding-top: 0;
	}

.ck-fullscreen__left-sidebar-item:last-child {
		margin-bottom: 0;
	}

.ck-fullscreen__left-sidebar-header {
	--ck-fullscreen-presence-list-header-font-size: 0.875em;
	font-size: var(--ck-fullscreen-presence-list-header-font-size);
	font-weight: bold;
	color: var(--ck-document-outline-item-default-color);
	white-space: nowrap;
	text-overflow: ellipsis;
	overflow: hidden;
}

.ck-fullscreen__left-sidebar--sticky {
	position: sticky;
	top: 0;
}

.ck-fullscreen__left-sidebar--sticky > :first-child {
		padding-top: 0;
	}

.ck-fullscreen__presence-list {
	margin-top: var(--ck-spacing-medium);
}

.ck-fullscreen__left-sidebar-item--no-margin {
	margin: 0;
}

.ck-fullscreen__left-sidebar .ck.ck-document-outline {
	padding-top: 0;
	padding-left: 0;
	padding-right: 0;
}

.ck-fullscreen__document-outline-wrapper {
	padding-top: 0;
	overflow-y: auto;
}

.ck-fullscreen__sidebar.ck-fullscreen__right-sidebar {
	margin-top: var(--ck-fullscreen-editor-top-margin);
	margin-right: auto;
}

.ck-fullscreen__sidebar.ck-fullscreen__right-sidebar> :first-child {
		/* Set minimal width if there is any item in the sidebar. */
		min-width: 300px;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-heading_heading1 .ck-button__label {
	font-size: 20px;
}

.ck.ck-heading_heading2 .ck-button__label {
	font-size: 17px;
}

.ck.ck-heading_heading3 .ck-button__label {
	font-size: 14px;
}

.ck[class*="ck-heading_heading"] {
	font-weight: bold;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-highlight-marker-yellow: hsl(60, 97%, 73%);
	--ck-highlight-marker-green: hsl(120, 93%, 68%);
	--ck-highlight-marker-pink: hsl(345, 96%, 73%);
	--ck-highlight-marker-blue: hsl(201, 97%, 72%);
	--ck-highlight-pen-red: hsl(0, 85%, 49%);
	--ck-highlight-pen-green: hsl(112, 100%, 27%);
}

.ck-content .marker-yellow {
		background-color: var(--ck-highlight-marker-yellow);
	}
.ck-content .marker-green {
		background-color: var(--ck-highlight-marker-green);
	}
.ck-content .marker-pink {
		background-color: var(--ck-highlight-marker-pink);
	}
.ck-content .marker-blue {
		background-color: var(--ck-highlight-marker-blue);
	}

.ck-content .pen-red {
		color: var(--ck-highlight-pen-red);

		/* Override default yellow background of `<mark>` from user agent stylesheet */
		background-color: transparent;
	}
.ck-content .pen-green {
		color: var(--ck-highlight-pen-green);

		/* Override default yellow background of `<mark>` from user agent stylesheet */
		background-color: transparent;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */


.ck-editor__editable .ck-horizontal-line {
	/* Necessary to render properly next to floated objects, e.g. side image case. */
	display: flow-root;
}

.ck-content hr {
	margin: 15px 0;
	height: 4px;
	background: hsl(0, 0%, 87%);
	border: 0;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/* The feature container. */
.ck-widget.raw-html-embed {
	/* Give the embed some air. */
	/* The first value should be equal to --ck-spacing-large variable if used in the editor context
	to avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */
	margin: 0.9em auto;
	position: relative;
	display: flow-root;

	/* Give the html embed some minimal width in the content to prevent them
	from being "squashed" in tight spaces, e.g. in table cells (https://github.com/ckeditor/ckeditor5/issues/8331) */
	min-width: 15em;

	/* Don't inherit the style, e.g. when in a block quote. */
	font-style: normal;

	/* ----- Emebed label in the upper left corner ----------------------------------------------- */
}
.ck-widget.raw-html-embed::before {
		position: absolute;

		/* Make sure the content does not cover the label. */
		z-index: 1;
	}
/* ----- Emebed internals --------------------------------------------------------------------- */
/* The switch mode button wrapper. */
.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper {
		position: absolute;
		display: flex;
		flex-direction: column;
	}
.ck-widget.raw-html-embed .raw-html-embed__preview {
		position: relative;
		overflow: hidden;
		display: flex;
	}
.ck-widget.raw-html-embed .raw-html-embed__preview-content {
		width: 100%;
		position: relative;
		margin: auto;

		/* Gives spacing to the small renderable elements, so they always cover the placeholder. */
		display: table;
		border-collapse: separate;
		border-spacing: 7px;
	}
.ck-widget.raw-html-embed .raw-html-embed__preview-placeholder {
		position: absolute;
		left: 0;
		top: 0;
		right: 0;
		bottom: 0;

		display: flex;
		align-items: center;
		justify-content: center;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-html-object-embed-unfocused-outline-width: 1px;
}

.ck-widget.html-object-embed {
	font-size: var(--ck-font-size-base);
	background-color: var(--ck-color-base-foreground);
	padding: var(--ck-spacing-small);
	/* Leave space for label */
	padding-top: calc(var(--ck-font-size-tiny) + var(--ck-spacing-large));
	min-width: calc(76px + var(--ck-spacing-standard));
}

.ck-widget.html-object-embed:not(.ck-widget_selected):not(:hover) {
		outline: var(--ck-html-object-embed-unfocused-outline-width) dashed var(--ck-color-widget-blurred-border);
	}

.ck-widget.html-object-embed::before {
		font-weight: normal;
		font-style: normal;
		position: absolute;
		content: attr(data-html-object-embed-label);
		top: 0;
		left: var(--ck-spacing-standard);
		background: hsl(0deg 0% 60%);
		transition: background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);
		padding: calc(var(--ck-spacing-tiny) + var(--ck-html-object-embed-unfocused-outline-width)) var(--ck-spacing-small) var(--ck-spacing-tiny);
		border-radius: 0 0 var(--ck-border-radius) var(--ck-border-radius);
		color: var(--ck-color-base-background);
		font-size: var(--ck-font-size-tiny);
		font-family: var(--ck-font-face);
	}

/* Make space for label. */

.ck-widget.html-object-embed .ck-widget__type-around .ck-widget__type-around__button.ck-widget__type-around__button_before {
		margin-left: 50px;
	}

.ck-widget.html-object-embed .html-object-embed__content {
		/* Disable user interaction with embed content */
		pointer-events: none;
	}

div.ck-widget.html-object-embed {
	margin: 1em auto;
}

span.ck-widget.html-object-embed {
	display: inline-block;
}


/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-color-image-caption-background: hsl(0, 0%, 97%);
	--ck-color-image-caption-text: hsl(0, 0%, 20%);
	--ck-color-image-caption-highlighted-background: hsl(52deg 100% 50%);
}

/* Content styles */
.ck-content .image > figcaption {
	display: table-caption;
	caption-side: bottom;
	word-break: break-word;
	color: var(--ck-color-image-caption-text);
	background-color: var(--ck-color-image-caption-background);
	padding: .6em;
	font-size: .75em;
	outline-offset: -1px;

	/* Improve placeholder rendering in high-constrast mode (https://github.com/ckeditor/ckeditor5/issues/14907). */
}
@media (forced-colors: active) {
.ck-content .image > figcaption {
		background-color: unset;
		color: unset;
}
	}

/* Editing styles */
@media (forced-colors: none) {
		.ck.ck-editor__editable .image > figcaption.image__caption_highlighted {
		animation: ck-image-caption-highlight .6s ease-out;
		}
	}
@media (prefers-reduced-motion: reduce) {
.ck.ck-editor__editable .image > figcaption.image__caption_highlighted {
		animation: none;
}
	}

@keyframes ck-image-caption-highlight {
	0% {
		background-color: var(--ck-color-image-caption-highlighted-background);
	}

	100% {
		background-color: var(--ck-color-image-caption-background);
	}
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-image-insert-url {
	width: 400px;
	padding: var(--ck-spacing-large) var(--ck-spacing-large) 0;
}

.ck.ck-image-insert-url .ck-image-insert-url__action-row {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/* Preserve aspect ratio of the resized image after introducing image height attribute. */
.ck-content img.image_resized {
	height: auto;
}

.ck-content .image.image_resized {
	max-width: 100%;
	/*
	The `<figure>` element for resized images must not use `display:table` as browsers do not support `max-width` for it well.
	See https://stackoverflow.com/questions/4019604/chrome-safari-ignoring-max-width-in-table/14420691#14420691 for more.
	Fortunately, since we control the width, there is no risk that the image will look bad.
	*/
	display: block;
	box-sizing: border-box;
}

.ck-content .image.image_resized img {
		/* For resized images it is the `<figure>` element that determines the image width. */
		width: 100%;
	}

.ck-content .image.image_resized > figcaption {
		/* The `<figure>` element uses `display:block`, so `<figcaption>` also has to. */
		display: block;
	}

/* The resized inline image nested in the table should respect its parent size.
	See https://github.com/ckeditor/ckeditor5/issues/9117. */

.ck.ck-editor__editable td .image-inline.image_resized img, .ck.ck-editor__editable th .image-inline.image_resized img {
			max-width: 100%;
		}

[dir="ltr"] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon {
	margin-right: var(--ck-spacing-standard);
}

[dir="rtl"] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon {
	margin-left: var(--ck-spacing-standard);
}

.ck.ck-dropdown .ck-button.ck-resize-image-button .ck-button__label {
	width: 4em;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-image-style-spacing: 1.5em;
	--ck-inline-image-style-spacing: calc(var(--ck-image-style-spacing) / 2);
}

/* See: https://github.com/ckeditor/ckeditor5/issues/16317 */

/* Provides a minimal side margin for the left and right aligned images, so that the user has a visual feedback
		confirming successful application of the style if image width exceeds the editor's size.
		See https://github.com/ckeditor/ckeditor5/issues/9342 */

.ck-content .image.image-style-block-align-left,
		.ck-content .image.image-style-block-align-right {
			max-width: calc(100% - var(--ck-image-style-spacing));
		}

/* Allows displaying multiple floating images in the same line.
		See https://github.com/ckeditor/ckeditor5/issues/9183#issuecomment-804988132 */

.ck-content .image.image-style-align-left,
		.ck-content .image.image-style-align-right {
			clear: none;
		}

.ck-content .image.image-style-side {
			float: right;
			margin-left: var(--ck-image-style-spacing);
			max-width: 50%;
		}

.ck-content .image.image-style-align-left {
			float: left;
			margin-right: var(--ck-image-style-spacing);
		}

.ck-content .image.image-style-align-right {
			float: right;
			margin-left: var(--ck-image-style-spacing);
		}

.ck-content .image.image-style-block-align-right {
			margin-right: 0;
			margin-left: auto;
		}

.ck-content .image.image-style-block-align-left {
			margin-left: 0;
			margin-right: auto;
		}

.ck-content .image-style-align-center {
		margin-left: auto;
		margin-right: auto;
	}

.ck-content .image-style-align-left {
		float: left;
		margin-right: var(--ck-image-style-spacing);
	}

.ck-content .image-style-align-right {
		float: right;
		margin-left: var(--ck-image-style-spacing);
	}

/* Simulates margin collapsing with the preceding paragraph, which does not work for the floating elements. */

.ck-content p + .image.image-style-align-left,
	.ck-content p + .image.image-style-align-right,
	.ck-content p + .image.image-style-side {
		margin-top: 0;
	}

.ck-content .image-inline.image-style-align-left,
		.ck-content .image-inline.image-style-align-right {
			margin-top: var(--ck-inline-image-style-spacing);
			margin-bottom: var(--ck-inline-image-style-spacing);
		}

.ck-content .image-inline.image-style-align-left {
			margin-right: var(--ck-inline-image-style-spacing);
		}

.ck-content .image-inline.image-style-align-right {
			margin-left: var(--ck-inline-image-style-spacing);
		}

/* The button should display as a regular drop-down if the action button
	is forced to fire the same action as the arrow button. */

.ck.ck-splitbutton.ck-splitbutton_flatten:hover > .ck-splitbutton__action:not(.ck-disabled),
			.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open > .ck-splitbutton__action:not(.ck-disabled),
			.ck.ck-splitbutton.ck-splitbutton_flatten:hover > .ck-splitbutton__arrow:not(.ck-disabled),
			.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open > .ck-splitbutton__arrow:not(.ck-disabled),
			.ck.ck-splitbutton.ck-splitbutton_flatten:hover > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover),
			.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {
				background-color: var(--ck-color-button-on-background);
			}

.ck.ck-splitbutton.ck-splitbutton_flatten:hover > .ck-splitbutton__action:not(.ck-disabled)::after, .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open > .ck-splitbutton__action:not(.ck-disabled)::after, .ck.ck-splitbutton.ck-splitbutton_flatten:hover > .ck-splitbutton__arrow:not(.ck-disabled)::after, .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open > .ck-splitbutton__arrow:not(.ck-disabled)::after, .ck.ck-splitbutton.ck-splitbutton_flatten:hover > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover)::after, .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover)::after {
					display: none;
				}

.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover > .ck-splitbutton__action:not(.ck-disabled),
			.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover > .ck-splitbutton__arrow:not(.ck-disabled),
			.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {
				background-color: var(--ck-color-button-on-hover-background);
			}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-editor__editable .image,
	.ck.ck-editor__editable .image-inline {
		position: relative;
	}

/* Upload progress bar. */

.ck.ck-editor__editable .image .ck-progress-bar,
	.ck.ck-editor__editable .image-inline .ck-progress-bar {
		position: absolute;
		top: 0;
		left: 0;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-image-upload-complete-icon {
	display: block;
	position: absolute;

	/*
	 * Smaller images should have the icon closer to the border.
	 * Match the icon position with the linked image indicator brought by the link image feature.
	 */
	top: min(var(--ck-spacing-medium), 6%);
	right: min(var(--ck-spacing-medium), 6%);
	border-radius: 50%;
	z-index: 1;
}

.ck-image-upload-complete-icon::after {
		content: "";
		position: absolute;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck .ck-upload-placeholder-loader {
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: center;
	top: 0;
	left: 0;
}

.ck .ck-upload-placeholder-loader::before {
		content: '';
		position: relative;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-content .image {
		display: table;
		clear: both;
		text-align: center;

		/* Make sure there is some space between the content and the image. Center image by default. */
		/* The first value should be equal to --ck-spacing-large variable if used in the editor context
	 	to avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */
		margin: 0.9em auto;

		/* Make sure the caption will be displayed properly (See: https://github.com/ckeditor/ckeditor5/issues/1870). */
		min-width: 50px;
	}

.ck-content .image img {
			/* Prevent unnecessary margins caused by line-height (see #44). */
			display: block;

			/* Center the image if its width is smaller than the content's width. */
			margin: 0 auto;

			/* Make sure the image never exceeds the size of the parent container (ckeditor/ckeditor5-ui#67). */
			max-width: 100%;

			/* Make sure the image is never smaller than the parent container (See: https://github.com/ckeditor/ckeditor5/issues/9300). */
			min-width: 100%;

			/* Keep proportions of the block image if the height is set and the image is wider than the editor width.
			See https://github.com/ckeditor/ckeditor5/issues/14542. */
			height: auto;
		}

.ck-content .image-inline {
		/*
		 * Normally, the .image-inline would have "display: inline-block" and "img { width: 100% }" (to follow the wrapper while resizing).
		 * Unfortunately, together with "srcset", it gets automatically stretched up to the width of the editing root.
		 * This strange behavior does not happen with inline-flex.
		 */
		display: inline-flex;

		/* While being resized, don't allow the image to exceed the width of the editing root. */
		max-width: 100%;

		/* This is required by Safari to resize images in a sensible way. Without this, the browser breaks the ratio. */
		align-items: flex-start;

		/* When the picture is present it must act as a flex container to let the img resize properly */
	}

.ck-content .image-inline picture {
			display: flex;
		}

/* When the picture is present, it must act like a resizable img. */

.ck-content .image-inline picture,
		.ck-content .image-inline img {
			/* This is necessary for the img to span the entire .image-inline wrapper and to resize properly. */
			flex-grow: 1;
			flex-shrink: 1;

			/* Prevents overflowing the editing root boundaries when an inline image is very wide. */
			max-width: 100%;
		}

/*
	 * Inhertit the content styles padding of the <figcaption> in case the integration overrides `text-align: center`
	 * of `.image` (e.g. to the left/right). This ensures the placeholder stays at the padding just like the native
	 * caret does, and not at the edge of <figcaption>.
	 */

.ck.ck-editor__editable .image > figcaption.ck-placeholder::before {
		padding-left: inherit;
		padding-right: inherit;

		/*
		 * Make sure the image caption placeholder doesn't overflow the placeholder area.
		 * See https://github.com/ckeditor/ckeditor5/issues/9162.
		 */
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}

/*
	 * See https://github.com/ckeditor/ckeditor5/issues/15115.
	 */

.ck.ck-editor__editable .image {
		z-index: 1;

		/*
		 * Make sure the selected image always stays on top of its siblings.
		 * See https://github.com/ckeditor/ckeditor5/issues/9108.
		 */
	}

.ck.ck-editor__editable .image.ck-widget_selected {
			z-index: 2;
		}

/*
	 * See https://github.com/ckeditor/ckeditor5/issues/15115.
	 */

.ck.ck-editor__editable .image-inline {
		z-index: 1;

		/*
		 * Make sure the selected inline image always stays on top of its siblings.
		 * See https://github.com/ckeditor/ckeditor5/issues/9108.
		 */
	}

.ck.ck-editor__editable .image-inline.ck-widget_selected {
			z-index: 2;

			/*
			 * Make sure the native browser selection style is not displayed.
			 * Inline image widgets have their own styles for the selected state and
			 * leaving this up to the browser is asking for a visual collision.
			 */
		}

.ck.ck-editor__editable .image-inline.ck-widget_selected ::selection {
				display: none;
			}

/* Keep proportions of the inline image if the height is set and the image is wider than the editor width.
	See https://github.com/ckeditor/ckeditor5/issues/14542. */

.ck.ck-editor__editable .image-inline img {
		height: auto;
	}

/* The inline image nested in the table should have its original size if not resized.
	See https://github.com/ckeditor/ckeditor5/issues/9117. */

.ck.ck-editor__editable td .image-inline img, .ck.ck-editor__editable th .image-inline img {
			max-width: none;
		}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-editor__editable img.image_placeholder {
		background-size: 100% 100%;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-link-providers > .ck-link-providers__list {
		overflow-x: hidden;
		overflow-y: auto;
		overscroll-behavior: contain;
	}

.ck.ck-link-providers > .ck-link-providers__list .ck-button > .ck-icon {
				flex-shrink: 0;
			}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-link-toolbar__preview {
	display: inline-block;
}

.ck.ck-link-toolbar__preview .ck-button__label {
		overflow: hidden;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/* Linked image indicator */

.ck.ck-editor__editable figure.image > a::after, .ck.ck-editor__editable a span.image-inline::after {
			display: block;
			position: absolute;
		}


/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/* Generic class that wraps each link balloon view. */
.ck.ck-link-form .ck-link-form__providers-list {
		display: flex;
		flex-direction: column;
	}
.ck.ck-link-form .ck-link-form__providers-list .ck-link__button > .ck-button__label {
				flex-grow: 1;
			}
.ck.ck-link-form .ck-link__items:empty {
		display: none;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-editor__editable .ck-list-bogus-paragraph {
	display: block;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-list-styles-list {
	display: grid;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-content ol {
	list-style-type: decimal;
}

.ck-content ol ol {
		list-style-type: lower-latin;
	}

.ck-content ol ol ol {
			list-style-type: lower-roman;
		}

.ck-content ol ol ol ol {
				list-style-type: upper-latin;
			}

.ck-content ol ol ol ol ol {
					list-style-type: upper-roman;
				}

.ck-content ul {
	list-style-type: disc;
}

.ck-content ul ul {
		list-style-type: circle;
	}

.ck-content ul ul ul {
			list-style-type: square;
		}

.ck-content ul ul ul ul {
				list-style-type: square;
			}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-todo-list-checkmark-size: 16px;
}

/*
 * To-do list content styles.
 */
.ck-content .todo-list {
	list-style: none;
}
.ck-content .todo-list li {
		position: relative;
		margin-bottom: 5px;
	}
.ck-content .todo-list li .todo-list {
			margin-top: 5px;
		}
.ck-content .todo-list .todo-list__label > input {
			-webkit-appearance: none;
			display: inline-block;
			position: relative;
			width: var(--ck-todo-list-checkmark-size);
			height: var(--ck-todo-list-checkmark-size);
			vertical-align: middle;
			/* Needed on iOS */
			border: 0;
			/* LTR styles */
			left: -25px;
			margin-right: -15px;
			right: 0;
			margin-left: 0;
			/* RTL styles */
		}
.ck-content[dir=rtl] .todo-list .todo-list__label > input {
		left: 0;
		margin-right: 0;
		right: -25px;
		margin-left: -15px;
	}
.ck-content .todo-list .todo-list__label > input::before {
		display: block;
		position: absolute;
		box-sizing: border-box;
		content: '';
		width: 100%;
		height: 100%;
		border: 1px solid hsl(0, 0%, 20%);
		border-radius: 2px;
		transition: 250ms ease-in-out box-shadow;
	}
@media (prefers-reduced-motion: reduce) {
.ck-content .todo-list .todo-list__label > input::before {
			transition: none;
	}
		}
.ck-content .todo-list .todo-list__label > input::after {
		display: block;
		position: absolute;
		box-sizing: content-box;
		pointer-events: none;
		content: '';

		/* Calculate tick position, size and border-width proportional to the checkmark size. */
		left: calc( var(--ck-todo-list-checkmark-size) / 3 );
		top: calc( var(--ck-todo-list-checkmark-size) / 5.3 );
		width: calc( var(--ck-todo-list-checkmark-size) / 5.3 );
		height: calc( var(--ck-todo-list-checkmark-size) / 2.6 );
		border-style: solid;
		border-color: transparent;
		border-width: 0 calc( var(--ck-todo-list-checkmark-size) / 8 ) calc( var(--ck-todo-list-checkmark-size) / 8 ) 0;
		transform: rotate(45deg);
	}
.ck-content .todo-list .todo-list__label > input[checked]::before {
			background: hsl(126, 64%, 41%);
			border-color: hsl(126, 64%, 41%);
		}
.ck-content .todo-list .todo-list__label > input[checked]::after {
			border-color: hsl(0, 0%, 100%);
		}
.ck-content .todo-list .todo-list__label .todo-list__label__description {
			vertical-align: middle;
		}
.ck-content .todo-list .todo-list__label.todo-list__label_without-description input[type=checkbox] {
			position: absolute;
		}

/*
 * To-do list editing view styles.
 */
/*
	 * To-do list should be interactive only during the editing
	 * (https://github.com/ckeditor/ckeditor5/issues/2090).
	 */
.ck-editor__editable.ck-content .todo-list .todo-list__label > input,
	.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input {
		cursor: pointer;
	}
.ck-editor__editable.ck-content .todo-list .todo-list__label > input:hover::before, .ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input:hover::before {
			box-shadow: 0 0 0 5px hsla(0, 0%, 0%, 0.1);
		}
/*
	 * Document Lists - editing view has an additional span around checkbox.
	 */
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input {
		-webkit-appearance: none;
		display: inline-block;
		position: relative;
		width: var(--ck-todo-list-checkmark-size);
		height: var(--ck-todo-list-checkmark-size);
		vertical-align: middle;
		/* Needed on iOS */
		border: 0;
		/* LTR styles */
		left: -25px;
		margin-right: -15px;
		right: 0;
		margin-left: 0;
		/* RTL styles */
	}
.ck-editor__editable.ck-content[dir=rtl] .todo-list .todo-list__label > span[contenteditable=false] > input {
		left: 0;
		margin-right: 0;
		right: -25px;
		margin-left: -15px;
	}
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input::before {
		display: block;
		position: absolute;
		box-sizing: border-box;
		content: '';
		width: 100%;
		height: 100%;
		border: 1px solid hsl(0, 0%, 20%);
		border-radius: 2px;
		transition: 250ms ease-in-out box-shadow;
	}
@media (prefers-reduced-motion: reduce) {
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input::before {
			transition: none;
	}
		}
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input::after {
		display: block;
		position: absolute;
		box-sizing: content-box;
		pointer-events: none;
		content: '';

		/* Calculate tick position, size and border-width proportional to the checkmark size. */
		left: calc( var(--ck-todo-list-checkmark-size) / 3 );
		top: calc( var(--ck-todo-list-checkmark-size) / 5.3 );
		width: calc( var(--ck-todo-list-checkmark-size) / 5.3 );
		height: calc( var(--ck-todo-list-checkmark-size) / 2.6 );
		border-style: solid;
		border-color: transparent;
		border-width: 0 calc( var(--ck-todo-list-checkmark-size) / 8 ) calc( var(--ck-todo-list-checkmark-size) / 8 ) 0;
		transform: rotate(45deg);
	}
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input[checked]::before {
			background: hsl(126, 64%, 41%);
			border-color: hsl(126, 64%, 41%);
		}
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input[checked]::after {
			border-color: hsl(0, 0%, 100%);
		}
.ck-editor__editable.ck-content .todo-list .todo-list__label.todo-list__label_without-description input[type=checkbox] {
			position: absolute;
		}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-content .media {
	/* Don't allow floated content overlap the media.
	https://github.com/ckeditor/ckeditor5-media-embed/issues/53 */
	clear: both;

	/* Make sure there is some space between the content and the media. */
	/* The first value should be equal to --ck-spacing-large variable if used in the editor context
	to avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */
	margin: 0.9em 0;

	/* Make sure media is not overriden with Bootstrap default `flex` value.
	See: https://github.com/ckeditor/ckeditor5/issues/1373. */
	display: block;

	/* Give the media some minimal width in the content to prevent them
	from being "squashed" in tight spaces, e.g. in table cells (#44) */
	min-width: 15em;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-media__wrapper .ck-media__placeholder {
		display: flex;
		flex-direction: column;
		align-items: center;
	}

.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url {
			/* Otherwise the URL will overflow when the content is very narrow. */
			max-width: 100%;

			position: relative;
		}

.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url .ck-media__placeholder__url__text {
				overflow: hidden;
				display: block;
			}

.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck-media__placeholder__icon *, .ck-media__wrapper[data-oembed-url*="google.com/maps"] .ck-media__placeholder__icon *, .ck-media__wrapper[data-oembed-url*="goo.gl/maps"] .ck-media__placeholder__icon *, .ck-media__wrapper[data-oembed-url*="maps.google.com"] .ck-media__placeholder__icon *, .ck-media__wrapper[data-oembed-url*="maps.app.goo.gl"] .ck-media__placeholder__icon *, .ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder__icon *, .ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder__icon * {
			display: none;
		}

/* Disable all mouse interaction as long as the editor is not read–only.
   https://github.com/ckeditor/ckeditor5-media-embed/issues/58 */
.ck-editor__editable:not(.ck-read-only) .ck-media__wrapper > *:not(.ck-media__placeholder) {
	pointer-events: none;
}

/* Disable all mouse interaction when the widget is not selected (e.g. to avoid opening links by accident).
   https://github.com/ckeditor/ckeditor5-media-embed/issues/18 */
.ck-editor__editable:not(.ck-read-only) .ck-widget:not(.ck-widget_selected) .ck-media__placeholder {
	pointer-events: none;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-vertical-form .ck-button::after {
		content: "";
		width: 0;
		position: absolute;
		right: -1px;
		top: -1px;
		bottom: -1px;
		z-index: 1;
	}

.ck-vertical-form .ck-button:focus::after {
		display: none;
	}

@media screen and (max-width: 600px) {
			.ck.ck-responsive-form .ck-button::after {
				content: "";
				width: 0;
				position: absolute;
				right: -1px;
				top: -1px;
				bottom: -1px;
				z-index: 1;
			}

			.ck.ck-responsive-form .ck-button:focus::after {
				display: none;
			}
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-media-form {
	display: flex;
	align-items: flex-start;
	flex-direction: row;
	flex-wrap: nowrap;
	width: 400px;
}

.ck.ck-media-form .ck-labeled-field-view {
		display: inline-block;
		width: 100%;
	}

.ck.ck-media-form .ck-label {
		display: none;
	}

.ck.ck-media-form .ck-input {
		width: 100%;
	}

@media screen and (max-width: 600px) {

.ck.ck-media-form {
		flex-wrap: wrap;
}

		.ck.ck-media-form .ck-labeled-field-view {
			flex-basis: 100%;
		}

		.ck.ck-media-form .ck-button {
			flex-basis: 50%;
		}
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-mention-list-max-height: 300px;
}

.ck.ck-mentions {
	max-height: var(--ck-mention-list-max-height);

	overflow-y: auto;

	/* Prevent unnecessary horizontal scrollbar in Safari
	https://github.com/ckeditor/ckeditor5-mention/issues/41 */
	overflow-x: hidden;

	overscroll-behavior: contain;

	/* Prevent unnecessary vertical scrollbar in Safari
	https://github.com/ckeditor/ckeditor5-mention/issues/41 */
}

.ck.ck-mentions > .ck-list__item {
		overflow: hidden;
		flex-shrink: 0;
	}

div.ck.ck-balloon-panel.ck-mention-balloon {
	z-index: calc( var( --ck-z-dialog ) + 1 );
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-color-minimap-tracker-background: 208, 0%, 51%;
	--ck-color-minimap-iframe-outline: hsl(0deg 0% 75%);
	--ck-color-minimap-iframe-shadow: hsl(0deg 0% 0% / 11%);
	--ck-color-minimap-progress-background: hsl(0,0%,40%);
}

.ck.ck-minimap {
	position: absolute;
	user-select: none;
	background: var(--ck-color-base-background);
}

.ck.ck-minimap,
	.ck.ck-minimap iframe {
		width: 100%;
		height: 100%;
	}

.ck.ck-minimap iframe {
		border: 0;
		pointer-events: none;
		position: relative;
		outline: 1px solid var(--ck-color-minimap-iframe-outline);
		box-shadow: 0 2px 5px var(--ck-color-minimap-iframe-shadow);
		margin: 0;
	}

.ck.ck-minimap .ck.ck-minimap__position-tracker {
		position: absolute;
		width: 100%;
		top: 0;
		background: hsla( var(--ck-color-minimap-tracker-background), .2 );
		z-index: 1;
		transition: background 100ms ease-in-out;
	}

@media (prefers-reduced-motion: reduce) {

.ck.ck-minimap .ck.ck-minimap__position-tracker {
			transition: none;
	}
		}

.ck.ck-minimap .ck.ck-minimap__position-tracker:hover {
			background:hsla( var(--ck-color-minimap-tracker-background), .3 );
		}

.ck.ck-minimap .ck.ck-minimap__position-tracker.ck-minimap__position-tracker_dragging,
		.ck.ck-minimap .ck.ck-minimap__position-tracker.ck-minimap__position-tracker_dragging:hover {
			background:hsla( var(--ck-color-minimap-tracker-background), .4 );
		}

.ck.ck-minimap .ck.ck-minimap__position-tracker.ck-minimap__position-tracker_dragging::after, .ck.ck-minimap .ck.ck-minimap__position-tracker.ck-minimap__position-tracker_dragging:hover::after {
				opacity: 1;
			}

.ck.ck-minimap .ck.ck-minimap__position-tracker::after {
			content: attr(data-progress) "%";
			position: absolute;
			top: 5px;
			right: 5px;
			background: var(--ck-color-minimap-progress-background);
			color: var(--ck-color-base-background);
			border: 1px solid var(--ck-color-base-background);
			padding: 2px 4px;
			font-size: 10px;
			border-radius: 3px;
			opacity: 0;
			transition: opacity 100ms ease-in-out;
		}

@media (prefers-reduced-motion: reduce) {

.ck.ck-minimap .ck.ck-minimap__position-tracker::after {
				transition: none;
		}
			}


/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-content .page-break {
	position: relative;
	clear: both;
	padding: 5px 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.ck-content .page-break::after {
		content: '';
		position: absolute;
		border-bottom: 2px dashed hsl(0, 0%, 77%);
		width: 100%;
	}

.ck-content .page-break__label {
	position: relative;
	z-index: 1;
	padding: .3em .6em;
	display: block;
	text-transform: uppercase;
	border: 1px solid hsl(0, 0%, 77%);
	border-radius: 2px;
	font-family: Helvetica, Arial, Tahoma, Verdana, Sans-Serif;
	font-size: 0.75em;
	font-weight: bold;
	color: hsl(0, 0%, 20%);
	background: hsl(0, 0%, 100%);
	box-shadow: 2px 2px 1px hsla(0, 0%, 0%, 0.15);

	/* Disable the possibility to select the label text by the user. */
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}

/* Do not show the page break element inside the print preview window. */
@media print {
	.ck-content .page-break {
		padding: 0;
	}

		.ck-content .page-break::after {
			display: none;
		}

	/*
	 * From time to time placing page-break directly after a block element with margin causes appending a new blank page in pagination mode.
	 * Removing margin-bottom from the block element fixes that issue and the margin is not being moved to the next blank page.
	 *
	 * Keep this in sync with the pagination plugins.
	 */
	.ck-content *:has(+ .page-break) {
		margin-bottom: 0;
	}
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-show-blocks-border-color: hsl(0, 0%, 46%);
}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) address {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) address {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>ADDRESS</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) address {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>ADDRESS</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) address:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) address {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>ADDRESS</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) address {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>ADDRESS</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) aside {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) aside {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>ASIDE</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) aside {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>ASIDE</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) aside:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) aside {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>ASIDE</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) aside {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>ASIDE</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) blockquote {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) blockquote {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>BLOCKQUOTE</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) blockquote {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>BLOCKQUOTE</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) blockquote:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) blockquote {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>BLOCKQUOTE</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) blockquote {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>BLOCKQUOTE</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) details {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) details {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>DETAILS</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) details {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>DETAILS</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) details:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) details {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>DETAILS</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) details {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>DETAILS</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) div:not(.ck-widget, .ck-widget *) {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) div:not(.ck-widget, .ck-widget *) {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>DIV</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) div:not(.ck-widget, .ck-widget *) {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>DIV</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) div:not(.ck-widget, .ck-widget *):not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) div:not(.ck-widget, .ck-widget *) {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>DIV</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) div:not(.ck-widget, .ck-widget *) {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>DIV</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) footer {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) footer {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>FOOTER</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) footer {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>FOOTER</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) footer:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) footer {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>FOOTER</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) footer {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>FOOTER</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h1 {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h1 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H1</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h1 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H1</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h1:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h1 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H1</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h1 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H1</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h2 {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h2 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H2</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h2 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H2</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h2:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h2 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H2</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h2 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H2</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h3 {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h3 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H3</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h3 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H3</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h3:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h3 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H3</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h3 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H3</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h4 {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h4 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H4</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h4 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H4</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h4:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h4 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H4</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h4 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H4</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h5 {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h5 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H5</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h5 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H5</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h5:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h5 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H5</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h5 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H5</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h6 {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h6 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H6</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h6 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H6</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h6:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h6 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H6</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h6 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H6</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) header {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) header {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>HEADER</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) header {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>HEADER</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) header:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) header {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>HEADER</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) header {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>HEADER</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) main {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) main {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>MAIN</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) main {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>MAIN</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) main:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) main {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>MAIN</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) main {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>MAIN</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) nav {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) nav {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>NAV</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) nav {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>NAV</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) nav:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) nav {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>NAV</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) nav {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>NAV</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) pre {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) pre {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>PRE</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) pre {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>PRE</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) pre:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) pre {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>PRE</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) pre {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>PRE</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ol {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ol {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>OL</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ol {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>OL</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ol:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ol {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>OL</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ol {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>OL</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ul {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ul {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>UL</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ul {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>UL</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ul:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ul {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>UL</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ul {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>UL</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) p {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) p {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>P</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) p {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>P</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) p:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) p {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>P</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) p {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>P</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) section {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) section {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>SECTION</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) section {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>SECTION</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) section:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) section {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>SECTION</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) section {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>SECTION</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) :where(figure.image, figure.table) figcaption {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) :where(figure.image, figure.table) figcaption {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>FIGCAPTION</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) :where(figure.image, figure.table) figcaption {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>FIGCAPTION</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) :where(figure.image, figure.table) figcaption:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) :where(figure.image, figure.table) figcaption {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>FIGCAPTION</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) :where(figure.image, figure.table) figcaption {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>FIGCAPTION</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A visual style of focused element's border.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */

.ck-source-editing-area {
	position: relative;
	overflow: hidden;
}

.ck-source-editing-area::after,
.ck-source-editing-area textarea {
	padding: var(--ck-spacing-large);
	margin: 0;
	border: 1px solid transparent;
	line-height: var(--ck-line-height-base);
	font-size: var(--ck-font-size-normal);
	font-family: monospace;
	white-space: pre-wrap;
}

.ck-source-editing-area::after {
	content: attr(data-value) " ";
	visibility: hidden;
	display: block;
}

.ck-source-editing-area textarea {
	position: absolute;
	width: 100%;
	height: 100%;
	resize: none;
	outline: none;
	overflow: hidden;
	box-sizing: border-box;

	border-color: var(--ck-color-base-border);

	border-radius: 0;
}

.ck-rounded-corners .ck-source-editing-area textarea,
	.ck-source-editing-area textarea.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
		border-top-left-radius: 0;
		border-top-right-radius: 0;
	}

.ck-source-editing-area textarea:not([readonly]):focus {
		/* Disable native outline. */
		outline: none;
		border: var(--ck-focus-ring);
		box-shadow: var(--ck-inner-shadow), 0 0;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-character-grid {
	max-width: 100%;
}

.ck.ck-character-grid .ck-character-grid__tiles {
		display: grid;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-character-info {
	display: flex;
	justify-content: space-between;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Note: This file should contain the wireframe styles only. But since there are no such styles,
 * it acts as a message to the builder telling that it should look for the corresponding styles
 * **in the theme** when compiling the editor.
 */

.ck.ck-special-characters > .ck-dialog__content > div {
		width: 350px;
		max-width: 100%;
		height: 100%;

		display: grid;
		grid-column-gap: 0px;
		grid-row-gap: 0px;
		grid-template-columns: 1fr;
		grid-template-rows: auto 1fr auto;
	}

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-categories {
			grid-area: 1 / 1 / 2 / 2;
			padding: var(--ck-spacing-medium) var(--ck-spacing-large);
		}

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-categories > .ck-labeled-field-view {
				padding-top: var(--ck-spacing-standard);
				width: 100%;
			}

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-categories > .ck-labeled-field-view .ck.ck-labeled-field-view__status {
					background: var(--ck-color-base-error);
					color: var(--ck-color-base-background);
					padding: var(--ck-spacing-small) var(--ck-spacing-medium);
					min-width: var(--ck-table-properties-min-error-width);
					text-align: center;

					animation: ck-table-form-labeled-view-status-appear .15s ease both;

					/* The arrow pointing towards the field. */
				}

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-categories > .ck-labeled-field-view .ck.ck-labeled-field-view__status::after {
						border-color: transparent transparent var(--ck-color-base-error) transparent;
						border-width: 0 var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size);
						border-style: solid;
					}

@media (prefers-reduced-motion: reduce) {

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-categories > .ck-labeled-field-view .ck.ck-labeled-field-view__status {
						animation: none;
				}
					}

/* Hide the error balloon when the field is blurred. Makes the experience much more clear. */

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-categories > .ck-labeled-field-view .ck-input.ck-error:not(:focus) + .ck.ck-labeled-field-view__status {
					display: none;
				}

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-categories > .ck-labeled-field-view > .ck-label {
					font-size: var(--ck-font-size-tiny);
					text-align: center;
				}

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-categories .ck-dropdown {
				display: block;
				width: 100%;
			}

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-categories .ck-dropdown > button:not(:focus) {
						border: 1px solid var(--ck-color-base-border);
					}

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-categories .ck-dropdown > button > span {
						width: 100%;
					}

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-grid {
			grid-area: 2 / 1 / 3 / 2;
			max-height: 200px;
		}

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-info {
			grid-area: 3 / 1 / 4 / 2;
		}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-style-panel-columns: 3;
}

.ck.ck-style-panel .ck-style-grid {
	display: grid;
	grid-template-columns: repeat(var(--ck-style-panel-columns),auto);
	justify-content: start;
}

.ck.ck-style-panel .ck-style-grid .ck-style-grid__button {
		display: flex;
		justify-content: space-between;
		flex-direction: column;
	}

.ck.ck-style-panel .ck-style-grid .ck-style-grid__button .ck-style-grid__button__preview {
			display: flex;
			align-content: center;
			justify-content: flex-start;
			align-items: center;
			flex-grow: 1;
			flex-basis: 100%;
		}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/* Text alignment of the table header should match the editor settings and override the native browser styling,
	when content is available outside the editor. See https://github.com/ckeditor/ckeditor5/issues/6638 */

.ck-content[dir="rtl"] .table th {
		text-align: right;
	}

.ck-content[dir="ltr"] .table th {
		text-align: left;
	}

.ck-content figure.table:not(.layout-table) {
		display: table;
	}

.ck-content figure.table:not(.layout-table) > table {
			width: 100%;
			height: 100%;
		}

.ck-content .table:not(.layout-table) {
		/* Give the table widget some air and center it horizontally */
		/* The first value should be equal to --ck-spacing-large variable if used in the editor context
		to avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */
		margin: 0.9em auto;
	}

.ck-content table.table:not(.layout-table),
	.ck-content figure.table:not(.layout-table) > table {
		/* The table cells should have slight borders */
		border-collapse: collapse;
		border-spacing: 0;

		/* The outer border of the table should be slightly darker than the inner lines.
		Also see https://github.com/ckeditor/ckeditor5-table/issues/50. */
		border: 1px double hsl(0, 0%, 70%);
	}

/* The linter is disabled here because linter is confused when resolving the `table.table:not(.layout-table)`
			and `figure.table:not(.layout-table) > table` selectors combined with below selectors.
			There is no need to split it into two large structures with same code just to make linter happy. */

/* stylelint-disable no-descending-specificity */

.ck-content table.table:not(.layout-table) > thead > tr > th, .ck-content figure.table:not(.layout-table) > table > thead > tr > th, .ck-content table.table:not(.layout-table) > tbody > tr > th, .ck-content figure.table:not(.layout-table) > table > tbody > tr > th {
					font-weight: bold;
					background: hsla(0, 0%, 0%, 5%);
				}

.ck-content table.table:not(.layout-table) > thead > tr > td,
				.ck-content figure.table:not(.layout-table) > table > thead > tr > td,
				.ck-content table.table:not(.layout-table) > tbody > tr > td,
				.ck-content figure.table:not(.layout-table) > table > tbody > tr > td,
				.ck-content table.table:not(.layout-table) > thead > tr > th,
				.ck-content figure.table:not(.layout-table) > table > thead > tr > th,
				.ck-content table.table:not(.layout-table) > tbody > tr > th,
				.ck-content figure.table:not(.layout-table) > table > tbody > tr > th {
					/* stylelint-enable no-descending-specificity */
					min-width: 2em;
					padding: .4em;

					/* The border is inherited from .ck-editor__nested-editable styles, so theoretically it's not necessary here.
					However, the border is a content style, so it should use .ck-content (so it works outside the editor).
					Hence, the duplication. See https://github.com/ckeditor/ckeditor5/issues/6314 */
					border: 1px solid hsl(0, 0%, 75%);
				}

@media print {
		/**
		 * Sometimes Chrome incorrectly calculates the height of the last table row and some
		 * of the content overlaps the paragraph that is placed directly after the table. It affects
		 * the column split mode pagination calculation which causes mismatch between the print mode and
		 * the preview mode.
		 *
		 * This issue happens only if:
		 *
		 * 	* The table is inside a figure element.
		 * 	* The table has `display: table` style set.
		 * 	* The block element is placed directly after the table.
		 */
		.ck-content figure.table:not(.layout-table):has(> table) {
			display: block;
		}

		/**
		 * Expanding the table to the full height of the parent container is necessary because tables
		 * are rendered inside <figure> elements, which is kinda buggy in table height calculation.
		 * While setting `height: 100%` fixes the issue in the editing mode described here:
		 * https://github.com/ckeditor/ckeditor5/issues/6186
		 *
		 * it's causing another issue with the table height in the print preview mode here:
		 * https://github.com/ckeditor/ckeditor5/issues/16856
		 *
		 * For now, resetting the height to `initial` in the print mode works as a workaround.
		 */
		.ck-content figure.table:not(.layout-table) > table {
			height: initial;
		}
}

.ck-editor__editable .ck-table-bogus-paragraph {
	/*
	 * Use display:inline-block to force Chrome/Safari to limit text mutations to this element.
	 * See https://github.com/ckeditor/ckeditor5/issues/6062.
	 */
	display: inline-block;

	/*
	 * Inline HTML elements nested in the span should always be dimensioned in relation to the whole cell width.
	 * See https://github.com/ckeditor/ckeditor5/issues/9117.
	 */
	width: 100%;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck .ck-insert-table-dropdown__grid {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row {
			flex-wrap: wrap;
		}

.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar:first-of-type {
					/* 4 buttons out of 7 (h-alignment + v-alignment) = 0.57 */
					flex-grow: 0.57;
				}

.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar:last-of-type {
					/* 3 buttons out of 7 (h-alignment + v-alignment) = 0.43 */
					flex-grow: 0.43;
				}

.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar .ck-button {
					flex-grow: 1;
				}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-input-color {
	width: 100%;
	display: flex;
	flex-direction: row-reverse;
}

.ck.ck-input-color > input.ck.ck-input-text {
		min-width: auto;
		flex-grow: 1;
	}

.ck.ck-input-color > div.ck.ck-dropdown {
		min-width: auto;

		/* This dropdown has no arrow but a color preview instead. */
	}

.ck.ck-input-color > div.ck.ck-dropdown > .ck-input-color__button .ck-dropdown__arrow {
			display: none;
		}

.ck.ck-input-color .ck.ck-input-color__button {
		/* Resolving issue with misaligned buttons on Safari (see #10589) */
		display: flex;
	}

.ck.ck-input-color .ck.ck-input-color__button .ck.ck-input-color__button__preview {
			position: relative;
			overflow: hidden;
		}

.ck.ck-input-color .ck.ck-input-color__button .ck.ck-input-color__button__preview > .ck.ck-input-color__button__preview__no-color-indicator {
				position: absolute;
				display: block;
			}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-editor__editable.ck-editor__editable_inline > .ck-widget.ck-widget_with-selection-handle.layout-table:first-child {
				margin-top: var(--ck-spacing-large);
			}

/*
			* This value should match with the default margins of the block elements (like .media, .image or .table)
			* to avoid a content jumping when the fake selection container shows up (See https://github.com/ckeditor/ckeditor5/issues/9825).
			*/

.ck-editor__editable.ck-editor__editable_inline > .ck-widget.ck-widget_with-selection-handle.layout-table:last-child,
			
			.ck-editor__editable.ck-editor__editable_inline > .ck-widget.ck-widget_with-selection-handle.layout-table:nth-last-child(2):has( + .ck-fake-selection-container) {
				margin-bottom: var(--ck-spacing-large);
			}

.ck-editor__editable .table.layout-table {
		display: table;
		margin: 0;

		/* Widget type around overrides. */
	}

.ck-editor__editable .table.layout-table.ck-widget:hover {
				/* To prevent the widget outline from being cut off at the bottom
				when the next cell or table has a background color, for example. */
				z-index: var(--ck-z-default);
			}

.ck-editor__editable .table.layout-table.ck-widget:hover > .ck-widget__selection-handle {
				opacity: 0.75;
				visibility: visible;
			}

.ck-editor__editable .table.layout-table.ck-widget:hover > .ck-widget__selection-handle:hover {
					opacity: 1;
				}

/* Because of setting the opacity to 0.75 to the selection handle for the layout table,
			it overrides the similar selector in widget (specificity is higher),
			thats why we must override it here also. */

.ck-editor__editable .table.layout-table.ck-widget:has( .ck-widget.table:hover ) > .ck-widget__selection-handle {
				opacity: 0;
				visibility: hidden;
			}

.ck-editor__editable .table.layout-table.ck-widget.ck-widget_selected {
				/* To prevent the widget outline from being cut off at the bottom
				when the next cell or table has a background color, for example. */
				z-index: var(--ck-z-default);
			}

.ck-content table.table.layout-table,
	.ck-content figure.table.layout-table {
		/* Do not reserve space above and below the layout table. */
		margin-top: 0;
		margin-bottom: 0;
	}

.ck-content table.table.layout-table,
	.ck-content figure.table.layout-table > table {
		border-spacing: 0;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-form-default-width: 340px;
}

.ck.ck-form {
	padding: 0 0 var(--ck-spacing-large);
}

.ck.ck-form.ck-form_default-width {
		width: var(--ck-form-default-width);
	}

.ck.ck-form:focus {
		outline: none;
	}

.ck.ck-form .ck.ck-input-text,
	.ck.ck-form .ck.ck-input-number {
		min-width: 100%;
		width: 0;
	}

.ck.ck-form .ck.ck-dropdown {
		min-width: 100%;
	}

.ck.ck-form .ck.ck-dropdown .ck-dropdown__button:not(:focus) {
				border: 1px solid var(--ck-color-base-border);
			}

.ck.ck-form .ck.ck-dropdown .ck-dropdown__button .ck-button__label {
				width: 100%;
			}

/* Default `ck-responsive-form` customization when it lies next to `ck-form` class */

@media screen and (max-width: 600px) {

.ck.ck-form.ck-responsive-form .ck.ck-form__row.ck-form__row_with-submit {
					flex-direction: column;
					align-items: stretch;
					padding: 0;
			}
	}

@media screen and (max-width: 600px) {

.ck.ck-form.ck-responsive-form .ck.ck-form__row.ck-form__row_with-submit > .ck {
						margin: var(--ck-spacing-large) var(--ck-spacing-large) 0;
				}
	}

@media screen and (max-width: 600px) {

.ck.ck-form.ck-responsive-form .ck.ck-form__row.ck-form__row_with-submit .ck-button_with-text {
						justify-content: center;
				}
	}

@media screen and (max-width: 600px) {

.ck.ck-form.ck-responsive-form .ck.ck-form__row.ck-form__row_large-bottom-padding {
					padding-bottom: var(--ck-spacing-large);
			}
	}

[dir="ltr"] .ck.ck-form.ck-responsive-form > :not(:first-child) {
				margin-left: 0;
			}

[dir="rtl"] .ck.ck-form.ck-responsive-form > :not(:last-child) {
				margin-left: 0;
			}

/* End of `ck-responsive-form` customization */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-form__row.ck-table-form__action-row .ck-button-save,
		.ck.ck-form__row.ck-table-form__action-row .ck-button-cancel {
			justify-content: center;
		}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-table-form .ck-form__row.ck-table-form__border-row {
			flex-wrap: wrap;
		}

.ck.ck-table-form .ck-form__row.ck-table-form__background-row {
			flex-wrap: wrap;
		}

.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row {
			flex-wrap: wrap;
			align-items: center;
		}

.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-labeled-field-view {
				display: flex;
				flex-direction: column-reverse;
				align-items: center;
			}

.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-labeled-field-view .ck.ck-dropdown {
					flex-grow: 0;
				}

.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimension-operator {
				flex-grow: 0;
			}

/* Ignore labels that work as fieldset legends */

/* Fallback for table dimension operator */

.ck.ck-table-form .ck-form__row > *:not(.ck-label, .ck-table-form__dimension-operator) {
			flex-grow: 1;
		}

.ck.ck-table-form .ck.ck-labeled-field-view {
		/* Allow absolute positioning of the status (error) balloons. */
		position: relative;
	}

.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status {
			position: absolute;
			left: 50%;
			bottom: calc( -1 * var(--ck-table-properties-error-arrow-size) );
			transform: translate(-50%,100%);

			/* Make sure the balloon status stays on top of other form elements. */
			z-index: 1;

			/* The arrow pointing towards the field. */
		}

.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status::after {
				content: "";
				position: absolute;
				top: calc( -1 * var(--ck-table-properties-error-arrow-size) );
				left: 50%;
				transform: translateX( -50% );
			}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row {
			flex-wrap: wrap;
			flex-basis: 0;
			align-content: baseline;
		}

.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar .ck-toolbar__items {
				flex-wrap: nowrap;
			}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-color-selector-caption-background: hsl(0, 0%, 97%);
	--ck-color-selector-caption-text: hsl(0, 0%, 20%);
	--ck-color-selector-caption-highlighted-background: hsl(52deg 100% 50%);
}

/* Content styles */
.ck-content .table > figcaption {
	display: table-caption;
	caption-side: top;
	word-break: break-word;
	text-align: center;
	color: var(--ck-color-selector-caption-text);
	background-color: var(--ck-color-selector-caption-background);
	padding: .6em;
	font-size: .75em;
	outline-offset: -1px;

	/* Improve placeholder rendering in high-constrast mode (https://github.com/ckeditor/ckeditor5/issues/14907). */
}
@media (forced-colors: active) {
		.ck-content .table > figcaption {
		background-color: unset;
		color: unset;
		}
	}

/* Editing styles */
@media (forced-colors: none) {
		.ck.ck-editor__editable .table > figcaption.table__caption_highlighted {
			animation: ck-table-caption-highlight .6s ease-out;
		}
	}
.ck.ck-editor__editable .table > figcaption.ck-placeholder::before {
		padding-left: inherit;
		padding-right: inherit;

		/*
		 * Make sure the table caption placeholder doesn't overflow the placeholder area.
		 * See https://github.com/ckeditor/ckeditor5/issues/9162.
		 */
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}

@keyframes ck-table-caption-highlight {
	0% {
		background-color: var(--ck-color-selector-caption-highlighted-background);
	}

	100% {
		background-color: var(--ck-color-selector-caption-background);
	}
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-color-selector-column-resizer-hover: var(--ck-color-base-active);
	--ck-table-column-resizer-width: 7px;

	/* The offset used for absolute positioning of the resizer element, so that it is placed exactly above the cell border.
	   The value is: minus half the width of the resizer decreased additionaly by the half the width of the border (0.5px). */
	--ck-table-column-resizer-position-offset: calc(var(--ck-table-column-resizer-width) * -0.5 - 0.5px);
}

.ck-content .table .ck-table-resized {
	table-layout: fixed;
}

.ck-content .table td,
.ck-content .table th {
	/* To prevent text overflowing beyond its cell when columns are resized by resize handler
	(https://github.com/ckeditor/ckeditor5/pull/14379#issuecomment-1589460978). */
	overflow-wrap: break-word;
}

.ck.ck-editor__editable .table td,
.ck.ck-editor__editable .table th {
	/* The resizer element is placed inside each cell, so it must be positioned relatively to the cell. */
	position: relative;
}

.ck.ck-editor__editable .table .ck-table-column-resizer {
	position: absolute;
	top: 0;
	bottom: 0;
	right: var(--ck-table-column-resizer-position-offset);
	width: var(--ck-table-column-resizer-width);
	cursor: col-resize;
	user-select: none;
	z-index: var(--ck-z-default);
}

.ck.ck-editor__editable.ck-column-resize_disabled .table .ck-table-column-resizer {
	display: none;
}

/* The resizer elements, which are extended to an extremely high height, break the drag & drop feature in Chrome. To make it work again,
   all resizers must be hidden while the table is dragged. */
.ck.ck-editor__editable .table[draggable] .ck-table-column-resizer {
	display: none;
}

.ck.ck-editor__editable .table .ck-table-column-resizer:hover,
.ck.ck-editor__editable .table .ck-table-column-resizer__active {
	background-color: var(--ck-color-selector-column-resizer-hover);
	opacity: 0.25;
}

.ck.ck-editor__editable[dir=rtl] .table .ck-table-column-resizer {
	left: var(--ck-table-column-resizer-position-offset);
	right: unset;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/**
 * A class which hides an element in DOM.
 */

.ck-hidden {
	/* Override selector specificity. Otherwise, all elements with some display
	style defined will override this one, which is not a desired result. */
	display: none !important;
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-z-default: 1;
	--ck-z-panel: calc( var(--ck-z-default) + 999 );
	--ck-z-dialog: 9999;
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A class that disables all transitions of the element and its children.
 */
.ck-transitions-disabled,
.ck-transitions-disabled * {
	transition: none !important;
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	/* where 7.5(px) is the font size of the powered by label and 13(px) is the base font size. */
	--ck-powered-by-font-size: calc(var(--ck-font-size-base) * 7.5 / 13);
	/* where 10(px) is the line height of the powered by label and 13(px) is the base font size. */
	--ck-powered-by-line-height: calc(var(--ck-font-size-base) * 10 / 13);
	/* where -0.2(px) is the letter spacing of the powered by label and 13(px) is the base font size. */
	--ck-powered-by-letter-spacing: calc(var(--ck-font-size-base) * -0.2 / 13);
	--ck-powered-by-padding-vertical: 2px;
	--ck-powered-by-padding-horizontal: 4px;
	--ck-powered-by-text-color: hsl(0, 0%, 31%);
	--ck-powered-by-border-radius: var(--ck-border-radius);
	--ck-powered-by-background: hsl(0, 0%, 100%);
	--ck-powered-by-border-color: var(--ck-color-focus-border);

	--ck-powered-by-svg-width: 53;
	--ck-powered-by-svg-height: 10;
	--ck-powered-by-icon-width: calc(var(--ck-font-size-base) * var(--ck-powered-by-svg-width) / 13);
	--ck-powered-by-icon-height: calc(var(--ck-font-size-base) * var(--ck-powered-by-svg-height) / 13);
}
.ck.ck-balloon-panel.ck-powered-by-balloon {
	--ck-border-radius: var(--ck-powered-by-border-radius);

	box-shadow: none;
	background: var(--ck-powered-by-background);
	min-height: unset;
	z-index: calc( var(--ck-z-panel) - 1 );
}
.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by {
		line-height: var(--ck-powered-by-line-height);
	}
.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by a {
			cursor: pointer;
			display: flex;
			align-items: center;
			opacity: .66;
			filter: grayscale(80%);
			line-height: var(--ck-powered-by-line-height);
			padding: var(--ck-powered-by-padding-vertical) var(--ck-powered-by-padding-horizontal);
		}
.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by .ck-powered-by__label {
			font-size: var(--ck-powered-by-font-size);
			letter-spacing: var(--ck-powered-by-letter-spacing);
			padding-left: 2px;
			text-transform: uppercase;
			font-weight: bold;
			margin-right: 4px;
			cursor: pointer;
			line-height: normal;
			color: var(--ck-powered-by-text-color);

		}
.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by .ck-icon {
			display: block;
			cursor: pointer;
			width: var(--ck-powered-by-icon-width);
			height: var(--ck-powered-by-icon-height);
		}
.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by:hover a {
				filter: grayscale(0%);
				opacity: 1;
			}
.ck.ck-balloon-panel.ck-powered-by-balloon[class*="position_inside"] {
		border-color: transparent;
	}
.ck.ck-balloon-panel.ck-powered-by-balloon[class*="position_border"] {
		border: var(--ck-focus-ring);
		border-color: var(--ck-powered-by-border-color);
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	/* where 7.5(px) is the font size of the evaluation badge label and 13(px) is the base font size. */
	--ck-evaluation-badge-font-size: calc(var(--ck-font-size-base) * 7.5 / 13);
	/* where 7.5(px) is the line height of the evaluation badge label and 13(px) is the base font size. */
	--ck-evaluation-badge-line-height: calc(var(--ck-font-size-base) * 7.5 / 13);
	/* where -0.2(px) is the letter spacing of the evaluation badge label and 13(px) is the base font size. */
	--ck-evaluation-badge-letter-spacing: calc(var(--ck-font-size-base) * -0.2 / 13);
	--ck-evaluation-badge-padding-vertical: 2px;
	--ck-evaluation-badge-padding-horizontal: 4px;
	--ck-evaluation-badge-text-color: hsl(0, 0%, 31%);
	--ck-evaluation-badge-border-radius: var(--ck-border-radius);
	--ck-evaluation-badge-background: hsl(0, 0%, 100%);
	--ck-evaluation-badge-border-color: var(--ck-color-focus-border);
}
.ck.ck-balloon-panel.ck-evaluation-badge-balloon {
	--ck-border-radius: var(--ck-evaluation-badge-border-radius);

	box-shadow: none;
	background: var(--ck-evaluation-badge-background);
	min-height: unset;
	z-index: calc( var(--ck-z-panel) - 1 );
}
.ck.ck-balloon-panel.ck-evaluation-badge-balloon .ck.ck-evaluation-badge {
		line-height: var(--ck-evaluation-badge-line-height);
		padding: var(--ck-evaluation-badge-padding-vertical) var(--ck-evaluation-badge-padding-horizontal);
	}
.ck.ck-balloon-panel.ck-evaluation-badge-balloon .ck.ck-evaluation-badge .ck-evaluation-badge__label {
			display: block;
			padding: 0 2px;
			font-size: var(--ck-evaluation-badge-font-size);
			letter-spacing: var(--ck-evaluation-badge-letter-spacing);
			font-weight: bold;
			line-height: normal;
			text-transform: uppercase;
			color: var(--ck-evaluation-badge-text-color);
		}
.ck.ck-balloon-panel.ck-evaluation-badge-balloon[class*="position_inside"] {
		border-color: transparent;
	}
.ck.ck-balloon-panel.ck-evaluation-badge-balloon[class*="position_border"] {
		border: var(--ck-focus-ring);
		border-color: var(--ck-evaluation-badge-border-color);
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/**
 * Makes element unselectable.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-button,
a.ck.ck-button {
	-moz-user-select: none;
	-webkit-user-select: none;
	-ms-user-select: none;
	user-select: none;

	position: relative;
	display: inline-flex;
	align-items: center;
}

[dir="ltr"] .ck.ck-button, [dir="ltr"] a.ck.ck-button {
		justify-content: left;
	}

[dir="rtl"] .ck.ck-button, [dir="rtl"] a.ck.ck-button {
		justify-content: right;
	}

.ck.ck-button .ck-button__label, a.ck.ck-button .ck-button__label {
		display: none;
	}

.ck.ck-button.ck-button_with-text .ck-button__label, a.ck.ck-button.ck-button_with-text .ck-button__label {
			display: inline-block;
		}

/* Center the icon horizontally in a button without text. */

.ck.ck-button:not(.ck-button_with-text),  a.ck.ck-button:not(.ck-button_with-text)  {
		justify-content: center;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-button.ck-switchbutton .ck-button__toggle {
		display: block;
	}

.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner {
			display: block;
		}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-list-item-button {
	min-height: unset;
	width: 100%;
	border-radius: 0;
}

[dir="ltr"] .ck.ck-list-item-button {
		text-align: left;
	}

[dir="rtl"] .ck.ck-list-item-button {
		text-align: right;
	}

[dir="ltr"] .ck.ck-list-item-button.ck-list-item-button_toggleable {
			padding-left: var(--ck-spacing-small);
	}

[dir="rtl"] .ck.ck-list-item-button.ck-list-item-button_toggleable {
			padding-right: var(--ck-spacing-small);
	}

.ck.ck-list-item-button .ck-list-item-button__check-holder {
		display: inline-flex;
		width: .9em;
		height: .9em;
	}

[dir="ltr"] .ck.ck-list-item-button .ck-list-item-button__check-holder {
			margin-right: var(--ck-spacing-small);
	}

[dir="rtl"] .ck.ck-list-item-button .ck-list-item-button__check-holder {
			margin-left: var(--ck-spacing-small);
	}

.ck.ck-list-item-button .ck-list-item-button__check-icon {
		height: 100%;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-collapsible.ck-collapsible_collapsed > .ck-collapsible__children {
		display: none;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-color-grid {
	display: grid;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.color-picker-hex-input {
	width: max-content;
}

.color-picker-hex-input .ck.ck-input {
		min-width: unset;
	}

.ck.ck-color-picker__row {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content: space-between;
	margin: var(--ck-spacing-large) 0 0;
	width: unset;
}

.ck.ck-color-picker__row .ck.ck-labeled-field-view {
		padding-top: unset;
	}

.ck.ck-color-picker__row .ck.ck-input-text {
		width: unset;
	}

.ck.ck-color-picker__row .ck-color-picker__hash-view {
		padding-top: var(--ck-spacing-tiny);
		padding-right: var(--ck-spacing-medium);
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/* View fragment with color grids. */

.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__remove-color,
		.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker {
			display: flex;
			align-items: center;
		}

[dir="rtl"] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__remove-color, [dir="rtl"] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker {
				justify-content: flex-start;
	}

/* View fragment with a color picker. */

.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar {
			display: flex;
			flex-direction: row;
			justify-content: space-around;
		}

.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar .ck-button-save,
			.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar .ck-button-cancel {
				flex: 1
			}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-dialog .ck.ck-dialog__actions {
		display: flex;
		justify-content: flex-end;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-dialog-overlay {
	user-select: none;
	overscroll-behavior: none;

	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	top: 0;
}

.ck.ck-dialog-overlay.ck-dialog-overlay__transparent {
		pointer-events: none;
		animation: none;
		background: none;
	}

.ck.ck-dialog {
	overscroll-behavior: none;
	width: fit-content;
	position: absolute;
}

.ck.ck-dialog .ck.ck-form__header  {
		flex-shrink: 0;
	}

/* Modals should not be draggable. */

.ck.ck-dialog:not(.ck-dialog_modal) .ck.ck-form__header .ck-form__header__label {
			cursor: grab;
		}

.ck.ck-dialog-overlay.ck-dialog-overlay__transparent .ck.ck-dialog {
		pointer-events: all;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-dropdown-max-width: 75vw;
}

.ck.ck-dropdown {
	display: inline-block;
	position: relative;
}

.ck.ck-dropdown .ck-dropdown__arrow {
		pointer-events: none;
		z-index: var(--ck-z-default);
	}

/* Dropdown button should span horizontally, e.g. in vertical toolbars */

.ck.ck-dropdown .ck-button.ck-dropdown__button {
		width: 100%;
	}

.ck.ck-dropdown .ck-dropdown__panel {
		display: none;
		z-index: var(--ck-z-panel);
		max-width: var(--ck-dropdown-max-width);

		position: absolute;
	}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel-visible {
			display: inline-block;
		}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme {
			bottom: 100%;
		}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s {
			/*
			 * Using transform: translate3d( 0, 100%, 0 ) causes blurry dropdown on Chrome 67-78+ on non-retina displays.
			 * See https://github.com/ckeditor/ckeditor5/issues/1053.
			 */
			top: 100%;
			bottom: auto;
		}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se {
			left: 0px;
		}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw {
			right: 0px;
		}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n {
			/* Positioning panels relative to the center of the button */
			left: 50%;
			transform: translateX(-50%);
		}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw {
			/* Positioning panels relative to the middle-west of the button */
			left: 75%;
			transform: translateX(-75%);
		}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme {
			/* Positioning panels relative to the middle-east of the button */
			left: 25%;
			transform: translateX(-25%);
		}

/*
 * Toolbar dropdown panels should be always above the UI (eg. other dropdown panels) from the editor's content.
 * See https://github.com/ckeditor/ckeditor5/issues/7874
 */
.ck.ck-toolbar .ck-dropdown__panel {
	z-index: calc( var(--ck-z-panel) + 1 );
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-splitbutton {
	/* Enable font size inheritance, which allows fluid UI scaling. */
	font-size: inherit;
}

.ck.ck-splitbutton .ck-splitbutton__action:focus {
		z-index: calc(var(--ck-z-default) + 1);
	}


/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-toolbar-dropdown-max-width: 60vw;
}

.ck.ck-toolbar-dropdown > .ck-dropdown__panel {
	/* https://github.com/ckeditor/ckeditor5/issues/5586 */
	width: max-content;
	max-width: var(--ck-toolbar-dropdown-max-width);
}

.ck.ck-toolbar-dropdown > .ck-dropdown__panel .ck-button:focus {
			z-index: calc(var(--ck-z-default) + 1);
		}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-dropdown-menu-list__nested-menu__button > .ck-dropdown-menu-list__nested-menu__button__arrow {
	pointer-events: none;
	z-index: var(--ck-z-default);
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel {
	position: absolute;
	max-height: 314px; /* With the default settings, this is equal to 10 menu items. */
	overflow-y: auto;
	z-index: calc(var(--ck-z-panel) + 1);
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-dropdown-menu-list__nested-menu {
	display: block;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-aria-live-announcer {
	position: absolute;
	left: -10000px;
	top: -10000px;
}

.ck.ck-aria-live-region-list {
	list-style-type: none;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-form__row {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: flex-start;
	padding: var(--ck-spacing-standard) var(--ck-spacing-large) 0;
}

.ck.ck-form__row.ck-form__row_large-top-padding {
		padding-top: var(--ck-spacing-large);
	}

.ck.ck-form__row.ck-form__row_large-bottom-padding {
		padding-bottom: var(--ck-spacing-large);
	}

.ck.ck-form__row.ck-form__row_with-submit {
		flex-wrap: nowrap;
	}

.ck.ck-form__row.ck-form__row_with-submit > *:not(:first-child) {
			margin-inline-start: var(--ck-spacing-standard);
		}

.ck.ck-form__row > .ck.ck-form__row {
		padding: 0;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-form__header {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
}

.ck.ck-form__header h2.ck-form__header__label {
		flex-grow: 1;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-icon {
	vertical-align: middle;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-label {
	display: block;
}

.ck.ck-voice-label {
	display: none;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper {
		display: flex;
		position: relative;
	}

.ck.ck-labeled-field-view .ck.ck-label {
		display: block;
		position: absolute;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/**
 * Makes element unselectable.
 */

.ck.ck-list {
	-moz-user-select: none;
	-webkit-user-select: none;
	-ms-user-select: none;
	user-select: none;

	display: flex;
	flex-direction: column;
}

.ck.ck-list .ck-list__item,
	.ck.ck-list .ck-list__separator {
		display: block;
	}

/* Make sure that whatever child of the list item gets focus, it remains on the
	top. Thanks to that, styles like box-shadow, outline, etc. are not masked by
	adjacent list items. */

.ck.ck-list .ck-list__item > *:focus {
		position: relative;
		z-index: var(--ck-z-default);
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	/* Make sure the balloon arrow does not float over its children. */
	--ck-balloon-panel-arrow-z-index: calc(var(--ck-z-default) - 3);
}

.ck.ck-balloon-panel {
	display: none;
	position: absolute;

	z-index: var(--ck-z-panel);
}

.ck.ck-balloon-panel.ck-balloon-panel_with-arrow::before,
		.ck.ck-balloon-panel.ck-balloon-panel_with-arrow::after {
			content: "";
			position: absolute;
		}

.ck.ck-balloon-panel.ck-balloon-panel_with-arrow::before {
			z-index: var(--ck-balloon-panel-arrow-z-index);
		}

.ck.ck-balloon-panel.ck-balloon-panel_with-arrow::after {
			z-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);
		}

.ck.ck-balloon-panel[class*="arrow_n"]::before {
			z-index: var(--ck-balloon-panel-arrow-z-index);
		}

.ck.ck-balloon-panel[class*="arrow_n"]::after {
			z-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);
		}

.ck.ck-balloon-panel[class*="arrow_s"]::before {
			z-index: var(--ck-balloon-panel-arrow-z-index);
		}

.ck.ck-balloon-panel[class*="arrow_s"]::after {
			z-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);
		}

.ck.ck-balloon-panel.ck-balloon-panel_visible {
		display: block;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck .ck-balloon-rotator__navigation {
	display: flex;
	align-items: center;
	justify-content: center;
}

/* Buttons inside a toolbar should be centered when rotator bar is wider.
 * See: https://github.com/ckeditor/ckeditor5-ui/issues/495
 */
.ck .ck-balloon-rotator__content .ck-toolbar {
	justify-content: center;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck .ck-fake-panel {
	position: absolute;

	/* Fake panels should be placed under main balloon content. */
	z-index: calc(var(--ck-z-panel) - 1);
}

.ck .ck-fake-panel div {
	position: absolute;
}

.ck .ck-fake-panel div:nth-child( 1 ) {
	z-index: 2;
}

.ck .ck-fake-panel div:nth-child( 2 ) {
	z-index: 1;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-sticky-panel .ck-sticky-panel__content_sticky {
		z-index: var(--ck-z-panel); /* #315 */
		position: fixed;
		top: 0;
	}

.ck.ck-sticky-panel .ck-sticky-panel__content_sticky_bottom-limit {
		top: auto;
		position: absolute;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-autocomplete {
	position: relative;
}

.ck.ck-autocomplete > .ck-search__results {
		position: absolute;
		z-index: var(--ck-z-panel);
	}

.ck.ck-autocomplete > .ck-search__results.ck-search__results_n {
			bottom: 100%;
		}

.ck.ck-autocomplete > .ck-search__results.ck-search__results_s {
			top: 100%;
			bottom: auto;
		}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-search > .ck-labeled-field-view > .ck-labeled-field-view__input-wrapper > .ck-icon {
			position: absolute;
			top: 50%;
			transform: translateY(-50%);
		}

[dir="ltr"] .ck.ck-search > .ck-labeled-field-view > .ck-labeled-field-view__input-wrapper > .ck-icon {
				left: var(--ck-spacing-medium);
	}

[dir="rtl"] .ck.ck-search > .ck-labeled-field-view > .ck-labeled-field-view__input-wrapper > .ck-icon {
				right: var(--ck-spacing-medium);
	}

.ck.ck-search > .ck-labeled-field-view .ck-search__reset {
			position: absolute;
			top: 50%;
			transform: translateY(-50%);
		}

.ck.ck-search > .ck-search__results > .ck-search__info > span:first-child {
				display: block;
			}

/* Hide the filtered view when nothing was found */

.ck.ck-search > .ck-search__results > .ck-search__info:not(.ck-hidden) ~ * {
				display: none;
			}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-highlighted-text mark {
	background: var(--ck-color-highlight-background);
	vertical-align: initial;
	font-weight: inherit;
	line-height: inherit;
	font-size: inherit;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/**
 * Makes element unselectable.
 */

.ck.ck-balloon-panel.ck-tooltip {
	-moz-user-select: none;
	-webkit-user-select: none;
	-ms-user-select: none;
	user-select: none;

	z-index: calc( var(--ck-z-dialog) + 100 );
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-toolbar-spinner-size: 18px;
}

.ck.ck-spinner-container {
	display: block;
	position: relative;
}

.ck.ck-spinner {
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	margin: 0 auto;
	transform: translateY(-50%);
	z-index: 1;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/**
 * Makes element unselectable.
 */

.ck.ck-toolbar {
	-moz-user-select: none;
	-webkit-user-select: none;
	-ms-user-select: none;
	user-select: none;

	display: flex;
	flex-flow: row nowrap;
	align-items: center;
}

.ck.ck-toolbar > .ck-toolbar__items {
		display: flex;
		flex-flow: row wrap;
		align-items: center;
		flex-grow: 1;

	}

.ck.ck-toolbar .ck.ck-toolbar__separator {
		display: inline-block;

		/*
		 * A leading or trailing separator makes no sense (separates from nothing on one side).
		 * For instance, it can happen when toolbar items (also separators) are getting grouped one by one and
		 * moved to another toolbar in the dropdown.
		 */
	}

.ck.ck-toolbar .ck.ck-toolbar__separator:first-child,
		.ck.ck-toolbar .ck.ck-toolbar__separator:last-child {
			display: none;
		}

.ck.ck-toolbar .ck-toolbar__line-break {
		flex-basis: 100%;
	}

.ck.ck-toolbar.ck-toolbar_grouping > .ck-toolbar__items {
		flex-wrap: nowrap;
	}

.ck.ck-toolbar.ck-toolbar_vertical > .ck-toolbar__items {
		flex-direction: column;
	}

.ck.ck-toolbar.ck-toolbar_floating > .ck-toolbar__items {
		flex-wrap: nowrap;
	}

.ck.ck-toolbar > .ck.ck-toolbar__grouped-dropdown > .ck-dropdown__button .ck-dropdown__arrow {
			display: none;
		}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-block-toolbar-button {
	position: absolute;
	z-index: var(--ck-z-default);
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-menu-bar__menu > .ck-menu-bar__menu__button > .ck-menu-bar__menu__button__arrow {
		pointer-events: none;
		z-index: var(--ck-z-default);
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-menu-bar-menu-max-width: 75vw;
	--ck-menu-bar-nested-menu-horizontal-offset: 5px;
}

.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel {
	z-index: var(--ck-z-panel);
	max-width: var(--ck-menu-bar-menu-max-width);
	position: absolute;
}

.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ne,
	.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_nw {
		bottom: 100%;
	}

.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_se,
	.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_sw {
		top: 100%;
		bottom: auto;
	}

.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ne,
	.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_se {
		left: 0px;
	}

.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_nw,
	.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_sw {
		right: 0px;
	}

.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_es,
	.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_en {
		left: calc( 100% - var(--ck-menu-bar-nested-menu-horizontal-offset) );
	}

.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_es {
		top: 0px;
	}

.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_en {
		bottom: 0px;
	}

.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ws,
	.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_wn {
		right: calc( 100% - var(--ck-menu-bar-nested-menu-horizontal-offset) );
	}

.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ws {
		top: 0px;
	}

.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_wn {
		bottom: 0px;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-menu-bar__menu {
	display: block;
	position: relative;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-color-resizer: var(--ck-color-focus-border);
	--ck-color-resizer-tooltip-background: hsl(0, 0%, 15%);
	--ck-color-resizer-tooltip-text: hsl(0, 0%, 95%);

	--ck-resizer-border-radius: var(--ck-border-radius);
	--ck-resizer-tooltip-offset: 10px;
	--ck-resizer-tooltip-height: calc(var(--ck-spacing-small) * 2 + 10px);
}

.ck .ck-widget {
	/* This is neccessary for type around UI to be positioned properly. */
	position: relative;
}

.ck .ck-widget.ck-widget_with-selection-handle {
	/* Make the widget wrapper a relative positioning container for the drag handle. */
	position: relative;
}

.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle {
		position: absolute;
	}

.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon {
			/* Make sure the icon in not a subject to font-size or line-height to avoid
			unnecessary spacing around it. */
			display: block;
		}

/* Show the selection handle on mouse hover over the widget, but not for nested widgets. */

.ck .ck-widget.ck-widget_with-selection-handle:hover > .ck-widget__selection-handle {
		visibility: visible;
	}

/* Show the selection handle when the widget is selected, but not for nested widgets. */

.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected > .ck-widget__selection-handle {
		visibility: visible;
	}

.ck .ck-size-view {
	background: var(--ck-color-resizer-tooltip-background);
	color: var(--ck-color-resizer-tooltip-text);
	border: 1px solid var(--ck-color-resizer-tooltip-text);
	border-radius: var(--ck-resizer-border-radius);
	font-size: var(--ck-font-size-tiny);
	display: block;
	padding: 0 var(--ck-spacing-small);
	height: var(--ck-resizer-tooltip-height);
	line-height: var(--ck-resizer-tooltip-height);
}

.ck .ck-size-view.ck-orientation-top-left,
	.ck .ck-size-view.ck-orientation-top-right,
	.ck .ck-size-view.ck-orientation-bottom-right,
	.ck .ck-size-view.ck-orientation-bottom-left,
	.ck .ck-size-view.ck-orientation-above-center {
		position: absolute;
	}

.ck .ck-size-view.ck-orientation-top-left {
		top: var(--ck-resizer-tooltip-offset);
		left: var(--ck-resizer-tooltip-offset);
	}

.ck .ck-size-view.ck-orientation-top-right {
		top: var(--ck-resizer-tooltip-offset);
		right: var(--ck-resizer-tooltip-offset);
	}

.ck .ck-size-view.ck-orientation-bottom-right {
		bottom: var(--ck-resizer-tooltip-offset);
		right: var(--ck-resizer-tooltip-offset);
	}

.ck .ck-size-view.ck-orientation-bottom-left {
		bottom: var(--ck-resizer-tooltip-offset);
		left: var(--ck-resizer-tooltip-offset);
	}

/* Class applied if the widget is too small to contain the size label */

.ck .ck-size-view.ck-orientation-above-center {
		top: calc(var(--ck-resizer-tooltip-height) * -1);
		left: 50%;
		transform: translate(-50%);
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck .ck-widget_with-resizer {
	/* Make the widget wrapper a relative positioning container for the drag handle. */
	position: relative;
}

.ck .ck-widget__resizer {
	display: none;
	position: absolute;

	/* The wrapper itself should not interfere with the pointer device, only the handles should. */
	pointer-events: none;

	left: 0;
	top: 0;
}

.ck-focused .ck-widget_with-resizer.ck-widget_selected > .ck-widget__resizer {
		display: block;
	}

.ck .ck-widget__resizer__handle {
	position: absolute;

	/* Resizers are the only UI elements that should interfere with a pointer device. */
	pointer-events: all;
}

.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left,
	.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right {
		cursor: nwse-resize;
	}

.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right,
	.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left {
		cursor: nesw-resize;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
	 * Styles of the type around buttons
	 */

.ck .ck-widget .ck-widget__type-around__button {
		display: block;
		position: absolute;
		overflow: hidden;
		z-index: var(--ck-z-default);
	}

.ck .ck-widget .ck-widget__type-around__button svg {
			position: absolute;
			top: 50%;
			left: 50%;
			z-index: calc(var(--ck-z-default) + 2);
		}

.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_before {
			/* Place it in the middle of the outline */
			top: calc(-0.5 * var(--ck-widget-outline-thickness));
			left: min(10%, 30px);

			transform: translateY(-50%);
		}

.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_after {
			/* Place it in the middle of the outline */
			bottom: calc(-0.5 * var(--ck-widget-outline-thickness));
			right: min(10%, 30px);

			transform: translateY(50%);
		}

/*
	 * Styles for the buttons when:
	 * - the widget is selected,
	 * - or the button is being hovered (regardless of the widget state).
	 */

.ck .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button::after, .ck .ck-widget > .ck-widget__type-around > .ck-widget__type-around__button:hover::after {
			content: "";
			display: block;
			position: absolute;
			top: 1px;
			left: 1px;
			z-index: calc(var(--ck-z-default) + 1);
		}

/*
	 * Styles for the horizontal "fake caret" which is displayed when the user navigates using the keyboard.
	 */

.ck .ck-widget > .ck-widget__type-around > .ck-widget__type-around__fake-caret {
		display: none;
		position: absolute;
		left: 0;
		right: 0;
	}

/*
	 * When the widget is hovered the "fake caret" would normally be narrower than the
	 * extra outline displayed around the widget. Let's extend the "fake caret" to match
	 * the full width of the widget.
	 */

.ck .ck-widget:hover > .ck-widget__type-around > .ck-widget__type-around__fake-caret {
		left: calc( -1 * var(--ck-widget-outline-thickness) );
		right: calc( -1 * var(--ck-widget-outline-thickness) );
	}

/*
	 * Styles for the horizontal "fake caret" when it should be displayed before the widget (backward keyboard navigation).
	 */

.ck .ck-widget.ck-widget_type-around_show-fake-caret_before > .ck-widget__type-around > .ck-widget__type-around__fake-caret {
		top: calc( -1 * var(--ck-widget-outline-thickness) - 1px );
		display: block;
	}

/*
	 * Styles for the horizontal "fake caret" when it should be displayed after the widget (forward keyboard navigation).
	 */

.ck .ck-widget.ck-widget_type-around_show-fake-caret_after > .ck-widget__type-around > .ck-widget__type-around__fake-caret {
		bottom: calc( -1 * var(--ck-widget-outline-thickness) - 1px );
		display: block;
	}

/*
 * Integration with the read-only mode of the editor.
 */
.ck.ck-editor__editable.ck-read-only .ck-widget__type-around {
	display: none;
}

/*
 * Integration with the restricted editing mode (feature) of the editor.
 */
.ck.ck-editor__editable.ck-restricted-editing_mode_restricted .ck-widget__type-around {
	display: none;
}

/*
 * Integration with the #isEnabled property of the WidgetTypeAround plugin.
 */
.ck.ck-editor__editable.ck-widget__type-around_disabled .ck-widget__type-around {
	display: none;
}

/*# sourceMappingURL=ckeditor5.css.map */

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVuZG9ycy1ub2RlX21vZHVsZXNfaG90d2lyZWRfdHVyYm9fZGlzdF90dXJib19lczIwMTctZXNtX2pzLW5vZGVfbW9kdWxlc19zeW1mb255X3N0aW11bHVzLWJyLTdjMDEzYS5jc3MiLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7Ozs7OztFQVNFOztBQUVGO21DQUNtQztBQUNuQztDQUNDLGFBQWE7QUFDZDtBQUNBO0NBQ0MsU0FBUztDQUNULG1CQUFtQjtDQUNuQixXQUFXO0NBQ1gsWUFBWTtDQUNaLGdCQUFnQjtDQUNoQixVQUFVO0NBQ1Ysa0JBQWtCO0NBQ2xCLFVBQVU7QUFDWDtBQUNBO0NBQ0MsU0FBUztDQUNULFVBQVU7Q0FDVixTQUFTO0NBQ1QsVUFBVTtDQUNWLGdCQUFnQjtDQUNoQixxQkFBcUI7Q0FDckIsZUFBZTtDQUNmLGdCQUFnQjtBQUNqQjtBQUNBOztDQUVDLFdBQVc7Q0FDWCxjQUFjO0NBQ2QseUJBQXlCO0FBQzFCO0FBQ0E7Q0FDQyxXQUFXO0FBQ1o7QUFDQTtDQUNDLFdBQVc7Q0FDWCxZQUFZO0NBQ1osTUFBTTtDQUNOLE9BQU87Q0FDUCxrQkFBa0I7Q0FDbEIsVUFBVTtBQUNYOztBQUVBO0NBQ0MsWUFBWTtBQUNiOzs7QUFHQTttQ0FDbUM7QUFDbkM7Q0FDQywwQkFBMEI7Q0FDMUIsb0JBQW9CO0FBQ3JCOzs7QUFHQTttQ0FDbUM7QUFDbkM7Q0FDQyxxQkFBcUI7Q0FDckIsc0JBQXNCO0NBQ3RCLGtCQUFrQjtDQUNsQixrQkFBa0I7Q0FDbEIscUJBQXFCO0NBQ3JCLGdCQUFnQjtDQUNoQiw0QkFBNEI7QUFDN0I7O0FBRUE7Q0FDQyxTQUFTO0NBQ1QsaUJBQWlCO0NBQ2pCLGNBQWM7QUFDZjs7QUFFQTttQ0FDbUM7O0FBRW5DLGFBQWE7QUFDYjtDQUNDLGVBQWU7Q0FDZixNQUFNO0NBQ04sT0FBTztDQUNQLFdBQVc7Q0FDWCxZQUFZO0FBQ2I7Ozs7O0FDL0ZBOzs7Ozs7Ozs7RUFTRTtBQUNGO0NBQ0MsY0FBYztDQUNkLGVBQWU7Q0FDZixr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a0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQiw0QkFBNEI7Q0F3QjdCOztBQXRCQztHQUNDLGtCQUFrQjtHQUNsQixRQUFRO0dBQ1IsU0FBUztHQUNULHNDQUFzQztFQUN2Qzs7QUFFQTtHQUNDLDBDQUEwQztHQUMxQyxvREFBb0Q7R0FDcEQsb0JBQW9COztHQUVwQiwyQkFBMkI7RUFDNUI7O0FBRUE7R0FDQywwQ0FBMEM7R0FDMUMsdURBQXVEO0dBQ3ZELHFCQUFxQjs7R0FFckIsMEJBQTBCO0VBQzNCOztBQUdEOzs7O0dBSUU7O0FBR0Q7R0FDQyxXQUFXO0dBQ1gsY0FBYztHQUNkLGtCQUFrQjtHQUNsQixRQUFRO0dBQ1IsU0FBUztHQUNULHNDQUFzQztFQUN2Qzs7QUFHRDs7R0FFRTs7QUFDRjtFQUNDLGFBQWE7RUFDYixrQkFBa0I7RUFDbEIsT0FBTztFQUNQLFFBQVE7Q0FDVDs7QUFFQTs7OztHQUlFOztBQUNGO0VBQ0MscURBQXFEO0VBQ3JELHNEQUFzRDtDQUN2RDs7QUFFQTs7R0FFRTs7QUFDRjtFQUNDLDBEQUEwRDtFQUMxRCxjQUFjO0NBQ2Y7O0FBRUE7O0dBRUU7O0FBQ0Y7RUFDQyw2REFBNkQ7RUFDN0QsY0FBYztDQUNmOztBQUdEOztFQUVFO0FBQ0Y7Q0FDQyxhQUFhO0FBQ2Q7O0FBRUE7O0VBRUU7QUFDRjtDQUNDLGFBQWE7QUFDZDs7QUFFQTs7RUFFRTtBQUNGO0NBQ0MsYUFBYTtBQUNkOztBak93bVVBLHdDQUF3QyxDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2pxdWVyeS11aS90aGVtZXMvYmFzZS9jb3JlLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvanF1ZXJ5LXVpL3RoZW1lcy9iYXNlL2FjY29yZGlvbi5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2pxdWVyeS11aS90aGVtZXMvYmFzZS9hdXRvY29tcGxldGUuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9qcXVlcnktdWkvdGhlbWVzL2Jhc2UvYnV0dG9uLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvanF1ZXJ5LXVpL3RoZW1lcy9iYXNlL2NoZWNrYm94cmFkaW8uY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9qcXVlcnktdWkvdGhlbWVzL2Jhc2UvY29udHJvbGdyb3VwLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvanF1ZXJ5LXVpL3RoZW1lcy9iYXNlL2RhdGVwaWNrZXIuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9qcXVlcnktdWkvdGhlbWVzL2Jhc2UvZGlhbG9nLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvanF1ZXJ5LXVpL3RoZW1lcy9iYXNlL2RyYWdnYWJsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2pxdWVyeS11aS90aGVtZXMvYmFzZS9tZW51LmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvanF1ZXJ5LXVpL3RoZW1lcy9iYXNlL3Byb2dyZXNzYmFyLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvanF1ZXJ5LXVpL3RoZW1lcy9iYXNlL3Jlc2l6YWJsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2pxdWVyeS11aS90aGVtZXMvYmFzZS9zZWxlY3RhYmxlLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvanF1ZXJ5LXVpL3RoZW1lcy9iYXNlL3NlbGVjdG1lbnUuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9qcXVlcnktdWkvdGhlbWVzL2Jhc2Uvc29ydGFibGUuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9qcXVlcnktdWkvdGhlbWVzL2Jhc2Uvc2xpZGVyLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvanF1ZXJ5LXVpL3RoZW1lcy9iYXNlL3NwaW5uZXIuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9qcXVlcnktdWkvdGhlbWVzL2Jhc2UvdGFicy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2pxdWVyeS11aS90aGVtZXMvYmFzZS90b29sdGlwLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvanF1ZXJ5LXVpL3RoZW1lcy9iYXNlL2Jhc2UuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9qcXVlcnktdWkvdGhlbWVzL2Jhc2UvdGhlbWUuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9qcXVlcnktdWkvdGhlbWVzL2Jhc2UvYWxsLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvanF1ZXJ5LXVpL2Rpc3QvdGhlbWVzL2Jhc2UvanF1ZXJ5LXVpLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L2Rpc3QvY2tlZGl0b3I1LmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2luZGV4LmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9nbG9iYWxzL2dsb2JhbHMuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2dsb2JhbHMvX2NvbG9ycy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvZ2xvYmFscy9fZGlzYWJsZWQuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2dsb2JhbHMvX2ZvY3VzLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9nbG9iYWxzL19mb250cy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvZ2xvYmFscy9fcmVzZXQuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2dsb2JhbHMvX3JvdW5kZWQuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2dsb2JhbHMvX3NoYWRvdy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvZ2xvYmFscy9fc3BhY2luZy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L25vZGVfbW9kdWxlcy9AY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvbWl4aW5zL19yb3VuZGVkLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L25vZGVfbW9kdWxlcy9AY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvbWl4aW5zL19zaGFkb3cuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvbWl4aW5zL19yb3VuZGVkLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL21peGlucy9fc2hhZG93LmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvbWl4aW5zL19mb2N1cy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9taXhpbnMvX2Rpc2FibGVkLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9taXhpbnMvX2J1dHRvbi5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9ub2RlX21vZHVsZXMvQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9idXR0b24vc3dpdGNoYnV0dG9uLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2J1dHRvbi9saXN0aXRlbWJ1dHRvbi5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9jb2xsYXBzaWJsZS9jb2xsYXBzaWJsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9jb2xvcmdyaWQvY29sb3JncmlkLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L25vZGVfbW9kdWxlcy9AY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fbWVkaWFjb2xvcnMuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvY29sb3JzZWxlY3Rvci9jb2xvcnNlbGVjdG9yLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2RpYWxvZy9kaWFsb2cuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvbm9kZV9tb2R1bGVzL0Bja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19yd2QuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZGlhbG9nL2RpYWxvZ2FjdGlvbnMuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24uY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZHJvcGRvd24vbGlzdGRyb3Bkb3duLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2Ryb3Bkb3duL3NwbGl0YnV0dG9uLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2Ryb3Bkb3duL3Rvb2xiYXJkcm9wZG93bi5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9kcm9wZG93bi9tZW51L2Ryb3Bkb3dubWVudWJ1dHRvbi5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9kcm9wZG93bi9tZW51L2Ryb3Bkb3dubWVudWxpc3RpdGVtLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2Ryb3Bkb3duL21lbnUvZHJvcGRvd25tZW51bGlzdGl0ZW1idXR0b24uY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZHJvcGRvd24vbWVudS9kcm9wZG93bm1lbnVwYW5lbC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9lZGl0b3J1aS9hY2Nlc3NpYmlsaXR5aGVscC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9lZGl0b3J1aS9lZGl0b3J1aS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9mb3JtaGVhZGVyL2Zvcm1oZWFkZXIuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvaWNvbi9pY29uLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2lucHV0L2lucHV0LmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2xhYmVsL2xhYmVsLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2xhYmVsZWRmaWVsZC9sYWJlbGVkZmllbGR2aWV3LmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2xhYmVsZWRpbnB1dC9sYWJlbGVkaW5wdXQuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvbGlzdC9saXN0LmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL21lbnViYXIvbWVudWJhci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9tZW51YmFyL21lbnViYXJtZW51LmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL21lbnViYXIvbWVudWJhcm1lbnVidXR0b24uY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvbWVudWJhci9tZW51YmFybWVudWxpc3RpdGVtLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL21lbnViYXIvbWVudWJhcm1lbnVsaXN0aXRlbWJ1dHRvbi5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9tZW51YmFyL21lbnViYXJtZW51cGFuZWwuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvcGFuZWwvYmFsbG9vbnBhbmVsLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL3BhbmVsL2JhbGxvb25yb3RhdG9yLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL3BhbmVsL2Zha2VwYW5lbC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9wYW5lbC9zdGlja3lwYW5lbC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9mb3JtL2Zvcm0uY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvcmVzcG9uc2l2ZS1mb3JtL3Jlc3BvbnNpdmVmb3JtLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL3NlYXJjaC9zZWFyY2guY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvc3Bpbm5lci9zcGlubmVyLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL3RleHRhcmVhL3RleHRhcmVhLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL3Rvb2xiYXIvYmxvY2t0b29sYmFyLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL3Rvb2xiYXIvdG9vbGJhci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LWVkaXRvci1jbGFzc2ljL2NsYXNzaWNlZGl0b3IuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LWJvb2ttYXJrL2Jvb2ttYXJrLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1ib29rbWFyay9ib29rbWFya2Zvcm0uY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LWJvb2ttYXJrL2Jvb2ttYXJrdG9vbGJhci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9ub2RlX21vZHVsZXMvQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX3Vuc2VsZWN0YWJsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtY2xpcGJvYXJkL2NsaXBib2FyZC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtY29kZS1ibG9jay9jb2RlYmxvY2suY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LWVuZ2luZS9wbGFjZWhvbGRlci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtZmluZC1hbmQtcmVwbGFjZS9maW5kYW5kcmVwbGFjZWZvcm0uY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LWhlYWRpbmcvaGVhZGluZy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtaG9yaXpvbnRhbC1saW5lL2hvcml6b250YWxsaW5lLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1odG1sLWVtYmVkL2h0bWxlbWJlZC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtaW1hZ2UvaW1hZ2VpbnNlcnQuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LWltYWdlL2ltYWdldXBsb2FkLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1pbWFnZS9pbWFnZXVwbG9hZGljb24uY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LWltYWdlL2ltYWdldXBsb2FkbG9hZGVyLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1pbWFnZS9pbWFnZXVwbG9hZHByb2dyZXNzLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1pbWFnZS90ZXh0YWx0ZXJuYXRpdmVmb3JtLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1pbWFnZS9pbWFnZWN1c3RvbXJlc2l6ZWZvcm0uY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LWxpbmsvbGluay5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtbGluay9saW5rdG9vbGJhci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtbGluay9saW5rZm9ybS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtbGluay9saW5raW1hZ2UuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LWxpbmsvbGlua3Byb3BlcnRpZXMuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LWxpbmsvbGlua3Byb3ZpZGVyaXRlbXMuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LWxpc3QvbGlzdHByb3BlcnRpZXMuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LWxpc3QvbGlzdHN0eWxlcy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtbWVkaWEtZW1iZWQvbWVkaWFlbWJlZGVkaXRpbmcuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LW1lbnRpb24vbWVudGlvbi5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtcmVzdHJpY3RlZC1lZGl0aW5nL3Jlc3RyaWN0ZWRlZGl0aW5nLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1zcGVjaWFsLWNoYXJhY3RlcnMvY2hhcmFjdGVyZ3JpZC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtc3BlY2lhbC1jaGFyYWN0ZXJzL2NoYXJhY3RlcmluZm8uY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXNwZWNpYWwtY2hhcmFjdGVycy9zcGVjaWFsY2hhcmFjdGVycy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtc3R5bGUvc3R5bGUuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXN0eWxlL3N0eWxlZ3JpZC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtc3R5bGUvc3R5bGVncm91cC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtc3R5bGUvc3R5bGVwYW5lbC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdGFibGUvY29sb3JpbnB1dC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdGFibGUvZm9ybXJvdy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdGFibGUvaW5zZXJ0dGFibGUuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXRhYmxlL3RhYmxlY2VsbHByb3BlcnRpZXMuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXRhYmxlL3RhYmxlZWRpdGluZy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdGFibGUvdGFibGVmb3JtLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS10YWJsZS90YWJsZXByb3BlcnRpZXMuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXRhYmxlL3RhYmxlc2VsZWN0aW9uLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS10YWJsZS90YWJsZWxheW91dC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtd2lkZ2V0L3dpZGdldC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtd2lkZ2V0L3dpZGdldHJlc2l6ZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtd2lkZ2V0L3dpZGdldHR5cGVhcm91bmQuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWJhc2ljLXN0eWxlcy90aGVtZS9jb2RlLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1ibG9jay1xdW90ZS90aGVtZS9ibG9ja3F1b3RlLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1ja2JveC90aGVtZS9ja2JveGltYWdlZWRpdC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtY2xpcGJvYXJkL3RoZW1lL2NsaXBib2FyZC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtY29kZS1ibG9jay90aGVtZS9jb2RlYmxvY2suY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWVkaXRvci1jbGFzc2ljL3RoZW1lL2NsYXNzaWNlZGl0b3IuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWVkaXRvci1pbmxpbmUvdGhlbWUvaW5saW5lZWRpdG9yLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1lbW9qaS90aGVtZS9lbW9qaWdyaWQuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWVtb2ppL3RoZW1lL2Vtb2ppY2F0ZWdvcmllcy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtZW1vamkvdGhlbWUvZW1vaml0b25lLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1lbW9qaS90aGVtZS9lbW9qaXBpY2tlcmZvcm0uY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWVtb2ppL3RoZW1lL2Vtb2ppcGlja2VyLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1lbmdpbmUvdGhlbWUvcGxhY2Vob2xkZXIuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWVuZ2luZS90aGVtZS9yZW5kZXJlci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtZmluZC1hbmQtcmVwbGFjZS90aGVtZS9maW5kYW5kcmVwbGFjZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtZmluZC1hbmQtcmVwbGFjZS90aGVtZS9maW5kYW5kcmVwbGFjZWZvcm0uY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWZvbnQvdGhlbWUvZm9udHNpemUuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWZ1bGxzY3JlZW4vdGhlbWUvZnVsbHNjcmVlbi5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtaGVhZGluZy90aGVtZS9oZWFkaW5nLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1oaWdobGlnaHQvdGhlbWUvaGlnaGxpZ2h0LmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1ob3Jpem9udGFsLWxpbmUvdGhlbWUvaG9yaXpvbnRhbGxpbmUuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWh0bWwtZW1iZWQvdGhlbWUvaHRtbGVtYmVkLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1odG1sLXN1cHBvcnQvdGhlbWUvZGF0YWZpbHRlci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtaW1hZ2UvdGhlbWUvaW1hZ2VjYXB0aW9uLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1pbWFnZS90aGVtZS9pbWFnZWluc2VydC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtaW1hZ2UvdGhlbWUvaW1hZ2VyZXNpemUuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWltYWdlL3RoZW1lL2ltYWdlc3R5bGUuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWltYWdlL3RoZW1lL2ltYWdldXBsb2FkcHJvZ3Jlc3MuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWltYWdlL3RoZW1lL2ltYWdldXBsb2FkaWNvbi5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtaW1hZ2UvdGhlbWUvaW1hZ2V1cGxvYWRsb2FkZXIuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWltYWdlL3RoZW1lL2ltYWdlLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1pbWFnZS90aGVtZS9pbWFnZXBsYWNlaG9sZGVyLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1saW5rL3RoZW1lL2xpbmtwcm92aWRlcml0ZW1zLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1saW5rL3RoZW1lL2xpbmt0b29sYmFyLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1saW5rL3RoZW1lL2xpbmtpbWFnZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtbGluay90aGVtZS9saW5rZm9ybS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtbGlzdC90aGVtZS9kb2N1bWVudGxpc3QuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWxpc3QvdGhlbWUvbGlzdHN0eWxlcy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtbGlzdC90aGVtZS9saXN0LmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1saXN0L3RoZW1lL3RvZG9saXN0LmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1tZWRpYS1lbWJlZC90aGVtZS9tZWRpYWVtYmVkLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1tZWRpYS1lbWJlZC90aGVtZS9tZWRpYWVtYmVkZWRpdGluZy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9yZXNwb25zaXZlLWZvcm0vcmVzcG9uc2l2ZWZvcm0uY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LW1lZGlhLWVtYmVkL3RoZW1lL21lZGlhZm9ybS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtbWVudGlvbi90aGVtZS9tZW50aW9udWkuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LW1pbmltYXAvdGhlbWUvbWluaW1hcC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtcGFnZS1icmVhay90aGVtZS9wYWdlYnJlYWsuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXNob3ctYmxvY2tzL3RoZW1lL3Nob3dibG9ja3MuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXNvdXJjZS1lZGl0aW5nL3RoZW1lL3NvdXJjZWVkaXRpbmcuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvbm9kZV9tb2R1bGVzL0Bja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9taXhpbnMvX2ZvY3VzLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1zcGVjaWFsLWNoYXJhY3RlcnMvdGhlbWUvY2hhcmFjdGVyZ3JpZC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtc3BlY2lhbC1jaGFyYWN0ZXJzL3RoZW1lL2NoYXJhY3RlcmluZm8uY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXNwZWNpYWwtY2hhcmFjdGVycy90aGVtZS9zcGVjaWFsY2hhcmFjdGVycy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtc3R5bGUvdGhlbWUvc3R5bGVncmlkLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10YWJsZS90aGVtZS90YWJsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGFibGUvdGhlbWUvaW5zZXJ0dGFibGUuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRhYmxlL3RoZW1lL3RhYmxlY2VsbHByb3BlcnRpZXMuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRhYmxlL3RoZW1lL2NvbG9yaW5wdXQuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRhYmxlL3RoZW1lL3RhYmxlbGF5b3V0LmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2Zvcm0vZm9ybS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGFibGUvdGhlbWUvZm9ybXJvdy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGFibGUvdGhlbWUvdGFibGVmb3JtLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10YWJsZS90aGVtZS90YWJsZXByb3BlcnRpZXMuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRhYmxlL3RoZW1lL3RhYmxlY2FwdGlvbi5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGFibGUvdGhlbWUvdGFibGVjb2x1bW5yZXNpemUuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2dsb2JhbHMvZ2xvYmFscy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvZ2xvYmFscy9faGlkZGVuLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9nbG9iYWxzL196aW5kZXguY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2dsb2JhbHMvX3RyYW5zaXRpb24uY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2dsb2JhbHMvX3Bvd2VyZWRieS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvZ2xvYmFscy9fZXZhbHVhdGlvbmJhZGdlLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fdW5zZWxlY3RhYmxlLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9idXR0b24vc3dpdGNoYnV0dG9uLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2J1dHRvbi9saXN0aXRlbWJ1dHRvbi5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9jb2xsYXBzaWJsZS9jb2xsYXBzaWJsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9jb2xvcmdyaWQvY29sb3JncmlkLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2NvbG9ycGlja2VyL2NvbG9ycGlja2VyLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2NvbG9yc2VsZWN0b3IvY29sb3JzZWxlY3Rvci5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nYWN0aW9ucy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2Ryb3Bkb3duL2Ryb3Bkb3duLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2Ryb3Bkb3duL3NwbGl0YnV0dG9uLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2Ryb3Bkb3duL3Rvb2xiYXJkcm9wZG93bi5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9kcm9wZG93bi9tZW51L2Ryb3Bkb3dubWVudWJ1dHRvbi5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9kcm9wZG93bi9tZW51L2Ryb3Bkb3dubWVudXBhbmVsLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2Ryb3Bkb3duL21lbnUvZHJvcGRvd25tZW51LmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2FyaWFsaXZlYW5ub3VuY2VyL2FyaWFsaXZlYW5ub3VuY2VyLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2Zvcm1yb3cvZm9ybXJvdy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9mb3JtaGVhZGVyL2Zvcm1oZWFkZXIuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvaWNvbi9pY29uLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2xhYmVsL2xhYmVsLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2xhYmVsZWRmaWVsZC9sYWJlbGVkZmllbGR2aWV3LmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2xpc3QvbGlzdC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9wYW5lbC9iYWxsb29ucGFuZWwuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvcGFuZWwvYmFsbG9vbnJvdGF0b3IuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvcGFuZWwvZmFrZXBhbmVsLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL3BhbmVsL3N0aWNreXBhbmVsLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvc2VhcmNoL3NlYXJjaC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9oaWdobGlnaHRlZHRleHQvaGlnaGxpZ2h0ZWR0ZXh0LmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL3Rvb2x0aXAvdG9vbHRpcC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9zcGlubmVyL3NwaW5uZXIuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvdG9vbGJhci90b29sYmFyLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL3Rvb2xiYXIvYmxvY2t0b29sYmFyLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL21lbnViYXIvbWVudWJhcm1lbnVidXR0b24uY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvbWVudWJhci9tZW51YmFybWVudXBhbmVsLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL21lbnViYXIvbWVudWJhcm1lbnUuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXdpZGdldC90aGVtZS93aWRnZXQuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXdpZGdldC90aGVtZS93aWRnZXRyZXNpemUuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXdpZGdldC90aGVtZS93aWRnZXR0eXBlYXJvdW5kLmNzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIGpRdWVyeSBVSSBDU1MgRnJhbWV3b3JrIDEuMTQuMlxuICogaHR0cHM6Ly9qcXVlcnl1aS5jb21cbiAqXG4gKiBDb3B5cmlnaHQgT3BlbkpTIEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9yc1xuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLlxuICogaHR0cHM6Ly9qcXVlcnkub3JnL2xpY2Vuc2VcbiAqXG4gKiBodHRwczovL2FwaS5qcXVlcnl1aS5jb20vY2F0ZWdvcnkvdGhlbWluZy9cbiAqL1xuXG4vKiBMYXlvdXQgaGVscGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWktaGVscGVyLWhpZGRlbiB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG4udWktaGVscGVyLWhpZGRlbi1hY2Nlc3NpYmxlIHtcblx0Ym9yZGVyOiAwO1xuXHRjbGlwOiByZWN0KDAgMCAwIDApO1xuXHRoZWlnaHQ6IDFweDtcblx0bWFyZ2luOiAtMXB4O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRwYWRkaW5nOiAwO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHdpZHRoOiAxcHg7XG59XG4udWktaGVscGVyLXJlc2V0IHtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRib3JkZXI6IDA7XG5cdG91dGxpbmU6IDA7XG5cdGxpbmUtaGVpZ2h0OiAxLjM7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0Zm9udC1zaXplOiAxMDAlO1xuXHRsaXN0LXN0eWxlOiBub25lO1xufVxuLnVpLWhlbHBlci1jbGVhcmZpeDpiZWZvcmUsXG4udWktaGVscGVyLWNsZWFyZml4OmFmdGVyIHtcblx0Y29udGVudDogXCJcIjtcblx0ZGlzcGxheTogdGFibGU7XG5cdGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG59XG4udWktaGVscGVyLWNsZWFyZml4OmFmdGVyIHtcblx0Y2xlYXI6IGJvdGg7XG59XG4udWktaGVscGVyLXpmaXgge1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0b3BhY2l0eTogMDtcbn1cblxuLnVpLWZyb250IHtcblx0ei1pbmRleDogMTAwO1xufVxuXG5cbi8qIEludGVyYWN0aW9uIEN1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLXN0YXRlLWRpc2FibGVkIHtcblx0Y3Vyc29yOiBkZWZhdWx0ICFpbXBvcnRhbnQ7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG5cbi8qIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS1pY29uIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRtYXJnaW4tdG9wOiAtLjI1ZW07XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dGV4dC1pbmRlbnQ6IC05OTk5OXB4O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuXG4udWktd2lkZ2V0LWljb24tYmxvY2sge1xuXHRsZWZ0OiA1MCU7XG5cdG1hcmdpbi1sZWZ0OiAtOHB4O1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuLyogTWlzYyB2aXN1YWxzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogT3ZlcmxheXMgKi9cbi51aS13aWRnZXQtb3ZlcmxheSB7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xufVxuIiwiLyohXG4gKiBqUXVlcnkgVUkgQWNjb3JkaW9uIDEuMTQuMlxuICogaHR0cHM6Ly9qcXVlcnl1aS5jb21cbiAqXG4gKiBDb3B5cmlnaHQgT3BlbkpTIEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9yc1xuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLlxuICogaHR0cHM6Ly9qcXVlcnkub3JnL2xpY2Vuc2VcbiAqXG4gKiBodHRwczovL2FwaS5qcXVlcnl1aS5jb20vYWNjb3JkaW9uLyN0aGVtaW5nXG4gKi9cbi51aS1hY2NvcmRpb24gLnVpLWFjY29yZGlvbi1oZWFkZXIge1xuXHRkaXNwbGF5OiBibG9jaztcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG1hcmdpbjogMnB4IDAgMCAwO1xuXHRwYWRkaW5nOiAuNWVtIC41ZW0gLjVlbSAuN2VtO1xuXHRmb250LXNpemU6IDEwMCU7XG59XG4udWktYWNjb3JkaW9uIC51aS1hY2NvcmRpb24tY29udGVudCB7XG5cdHBhZGRpbmc6IDFlbSAyLjJlbTtcblx0Ym9yZGVyLXRvcDogMDtcblx0b3ZlcmZsb3c6IGF1dG87XG59XG4iLCIvKiFcbiAqIGpRdWVyeSBVSSBBdXRvY29tcGxldGUgMS4xNC4yXG4gKiBodHRwczovL2pxdWVyeXVpLmNvbVxuICpcbiAqIENvcHlyaWdodCBPcGVuSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4gKiBodHRwczovL2pxdWVyeS5vcmcvbGljZW5zZVxuICpcbiAqIGh0dHBzOi8vYXBpLmpxdWVyeXVpLmNvbS9hdXRvY29tcGxldGUvI3RoZW1pbmdcbiAqL1xuLnVpLWF1dG9jb21wbGV0ZSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG59XG4iLCIvKiFcbiAqIGpRdWVyeSBVSSBCdXR0b24gMS4xNC4yXG4gKiBodHRwczovL2pxdWVyeXVpLmNvbVxuICpcbiAqIENvcHlyaWdodCBPcGVuSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4gKiBodHRwczovL2pxdWVyeS5vcmcvbGljZW5zZVxuICpcbiAqIGh0dHBzOi8vYXBpLmpxdWVyeXVpLmNvbS9idXR0b24vI3RoZW1pbmdcbiAqL1xuLnVpLWJ1dHRvbiB7XG5cdHBhZGRpbmc6IC40ZW0gMWVtO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcblx0bWFyZ2luLXJpZ2h0OiAuMWVtO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi51aS1idXR0b24sXG4udWktYnV0dG9uOmxpbmssXG4udWktYnV0dG9uOnZpc2l0ZWQsXG4udWktYnV0dG9uOmhvdmVyLFxuLnVpLWJ1dHRvbjphY3RpdmUge1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi8qIHRvIG1ha2Ugcm9vbSBmb3IgdGhlIGljb24sIGEgd2lkdGggbmVlZHMgdG8gYmUgc2V0IGhlcmUgKi9cbi51aS1idXR0b24taWNvbi1vbmx5IHtcblx0d2lkdGg6IDJlbTtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0dGV4dC1pbmRlbnQ6IC05OTk5cHg7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8qIG5vIGljb24gc3VwcG9ydCBmb3IgaW5wdXQgZWxlbWVudHMgKi9cbmlucHV0LnVpLWJ1dHRvbi51aS1idXR0b24taWNvbi1vbmx5IHtcblx0dGV4dC1pbmRlbnQ6IDA7XG59XG5cbi8qIGJ1dHRvbiBpY29uIGVsZW1lbnQocykgKi9cbi51aS1idXR0b24taWNvbi1vbmx5IC51aS1pY29uIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDUwJTtcblx0bGVmdDogNTAlO1xuXHRtYXJnaW4tdG9wOiAtOHB4O1xuXHRtYXJnaW4tbGVmdDogLThweDtcbn1cblxuLnVpLWJ1dHRvbi51aS1pY29uLW5vdGV4dCAudWktaWNvbiB7XG5cdHBhZGRpbmc6IDA7XG5cdHdpZHRoOiAyLjFlbTtcblx0aGVpZ2h0OiAyLjFlbTtcblx0dGV4dC1pbmRlbnQ6IC05OTk5cHg7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbn1cblxuaW5wdXQudWktYnV0dG9uLnVpLWljb24tbm90ZXh0IC51aS1pY29uIHtcblx0d2lkdGg6IGF1dG87XG5cdGhlaWdodDogYXV0bztcblx0dGV4dC1pbmRlbnQ6IDA7XG5cdHdoaXRlLXNwYWNlOiBub3JtYWw7XG5cdHBhZGRpbmc6IC40ZW0gMWVtO1xufVxuXG4vKiB3b3JrYXJvdW5kcyAqL1xuLyogU3VwcG9ydDogRmlyZWZveCA1IC0gMTI1KyAqL1xuaW5wdXQudWktYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuYnV0dG9uLnVpLWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG5cdGJvcmRlcjogMDtcblx0cGFkZGluZzogMDtcbn1cbiIsIi8qIVxuICogalF1ZXJ5IFVJIENoZWNrYm94cmFkaW8gMS4xNC4yXG4gKiBodHRwczovL2pxdWVyeXVpLmNvbVxuICpcbiAqIENvcHlyaWdodCBPcGVuSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4gKiBodHRwczovL2pxdWVyeS5vcmcvbGljZW5zZVxuICpcbiAqIGh0dHBzOi8vYXBpLmpxdWVyeXVpLmNvbS9jaGVja2JveHJhZGlvLyN0aGVtaW5nXG4gKi9cblxuLnVpLWNoZWNrYm94cmFkaW8tbGFiZWwgLnVpLWljb24tYmFja2dyb3VuZCB7XG5cdGJveC1zaGFkb3c6IGluc2V0IDFweCAxcHggMXB4ICNjY2M7XG5cdGJvcmRlci1yYWRpdXM6IC4xMmVtO1xuXHRib3JkZXI6IG5vbmU7XG59XG4udWktY2hlY2tib3hyYWRpby1yYWRpby1sYWJlbCAudWktaWNvbi1iYWNrZ3JvdW5kIHtcblx0d2lkdGg6IDE2cHg7XG5cdGhlaWdodDogMTZweDtcblx0Ym9yZGVyLXJhZGl1czogMWVtO1xuXHRvdmVyZmxvdzogdmlzaWJsZTtcblx0Ym9yZGVyOiBub25lO1xufVxuLnVpLWNoZWNrYm94cmFkaW8tcmFkaW8tbGFiZWwudWktY2hlY2tib3hyYWRpby1jaGVja2VkIC51aS1pY29uLFxuLnVpLWNoZWNrYm94cmFkaW8tcmFkaW8tbGFiZWwudWktY2hlY2tib3hyYWRpby1jaGVja2VkOmhvdmVyIC51aS1pY29uIHtcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZTtcblx0d2lkdGg6IDhweDtcblx0aGVpZ2h0OiA4cHg7XG5cdGJvcmRlci13aWR0aDogNHB4O1xuXHRib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuLnVpLWNoZWNrYm94cmFkaW8tZGlzYWJsZWQge1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbiIsIi8qIVxuICogalF1ZXJ5IFVJIENvbnRyb2xncm91cCAxLjE0LjJcbiAqIGh0dHBzOi8vanF1ZXJ5dWkuY29tXG4gKlxuICogQ29weXJpZ2h0IE9wZW5KUyBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnNcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cbiAqIGh0dHBzOi8vanF1ZXJ5Lm9yZy9saWNlbnNlXG4gKlxuICogaHR0cHM6Ly9hcGkuanF1ZXJ5dWkuY29tL2NvbnRyb2xncm91cC8jdGhlbWluZ1xuICovXG5cbi51aS1jb250cm9sZ3JvdXAge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4udWktY29udHJvbGdyb3VwID4gLnVpLWNvbnRyb2xncm91cC1pdGVtIHtcblx0ZmxvYXQ6IGxlZnQ7XG5cdG1hcmdpbi1sZWZ0OiAwO1xuXHRtYXJnaW4tcmlnaHQ6IDA7XG59XG4udWktY29udHJvbGdyb3VwID4gLnVpLWNvbnRyb2xncm91cC1pdGVtOmZvY3VzLFxuLnVpLWNvbnRyb2xncm91cCA+IC51aS1jb250cm9sZ3JvdXAtaXRlbS51aS12aXN1YWwtZm9jdXMge1xuXHR6LWluZGV4OiA5OTk5O1xufVxuLnVpLWNvbnRyb2xncm91cC12ZXJ0aWNhbCA+IC51aS1jb250cm9sZ3JvdXAtaXRlbSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRmbG9hdDogbm9uZTtcblx0d2lkdGg6IDEwMCU7XG5cdG1hcmdpbi10b3A6IDA7XG5cdG1hcmdpbi1ib3R0b206IDA7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG59XG4udWktY29udHJvbGdyb3VwLXZlcnRpY2FsIC51aS1jb250cm9sZ3JvdXAtaXRlbSB7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4udWktY29udHJvbGdyb3VwIC51aS1jb250cm9sZ3JvdXAtbGFiZWwge1xuXHRwYWRkaW5nOiAuNGVtIDFlbTtcbn1cbi51aS1jb250cm9sZ3JvdXAgLnVpLWNvbnRyb2xncm91cC1sYWJlbCBzcGFuIHtcblx0Zm9udC1zaXplOiA4MCU7XG59XG4udWktY29udHJvbGdyb3VwLWhvcml6b250YWwgLnVpLWNvbnRyb2xncm91cC1sYWJlbCArIC51aS1jb250cm9sZ3JvdXAtaXRlbSB7XG5cdGJvcmRlci1sZWZ0OiBub25lO1xufVxuLnVpLWNvbnRyb2xncm91cC12ZXJ0aWNhbCAudWktY29udHJvbGdyb3VwLWxhYmVsICsgLnVpLWNvbnRyb2xncm91cC1pdGVtIHtcblx0Ym9yZGVyLXRvcDogbm9uZTtcbn1cbi51aS1jb250cm9sZ3JvdXAtaG9yaXpvbnRhbCAudWktY29udHJvbGdyb3VwLWxhYmVsLnVpLXdpZGdldC1jb250ZW50IHtcblx0Ym9yZGVyLXJpZ2h0OiBub25lO1xufVxuLnVpLWNvbnRyb2xncm91cC12ZXJ0aWNhbCAudWktY29udHJvbGdyb3VwLWxhYmVsLnVpLXdpZGdldC1jb250ZW50IHtcblx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuLyogU3Bpbm5lciBzcGVjaWZpYyBzdHlsZSBmaXhlcyAqL1xuLnVpLWNvbnRyb2xncm91cC12ZXJ0aWNhbCAudWktc3Bpbm5lci1pbnB1dCB7XG5cdHdpZHRoOiBjYWxjKCAxMDAlIC0gMi40ZW0gKTtcbn1cbi51aS1jb250cm9sZ3JvdXAtdmVydGljYWwgLnVpLXNwaW5uZXIgLnVpLXNwaW5uZXItdXAge1xuXHRib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbn1cblxuIiwiLyohXG4gKiBqUXVlcnkgVUkgRGF0ZXBpY2tlciAxLjE0LjJcbiAqIGh0dHBzOi8vanF1ZXJ5dWkuY29tXG4gKlxuICogQ29weXJpZ2h0IE9wZW5KUyBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnNcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cbiAqIGh0dHBzOi8vanF1ZXJ5Lm9yZy9saWNlbnNlXG4gKlxuICogaHR0cHM6Ly9hcGkuanF1ZXJ5dWkuY29tL2RhdGVwaWNrZXIvI3RoZW1pbmdcbiAqL1xuLnVpLWRhdGVwaWNrZXIge1xuXHR3aWR0aDogMTdlbTtcblx0cGFkZGluZzogLjJlbSAuMmVtIDA7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG4udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1oZWFkZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHBhZGRpbmc6IC4yZW0gMDtcbn1cbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXByZXYsXG4udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1uZXh0IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDJweDtcblx0d2lkdGg6IDEuOGVtO1xuXHRoZWlnaHQ6IDEuOGVtO1xufVxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItcHJldi1ob3Zlcixcbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLW5leHQtaG92ZXIge1xuXHR0b3A6IDFweDtcbn1cbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXByZXYge1xuXHRsZWZ0OiAycHg7XG59XG4udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1uZXh0IHtcblx0cmlnaHQ6IDJweDtcbn1cbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXByZXYtaG92ZXIge1xuXHRsZWZ0OiAxcHg7XG59XG4udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1uZXh0LWhvdmVyIHtcblx0cmlnaHQ6IDFweDtcbn1cbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXByZXYgc3Bhbixcbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLW5leHQgc3BhbiB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGxlZnQ6IDUwJTtcblx0bWFyZ2luLWxlZnQ6IC04cHg7XG5cdHRvcDogNTAlO1xuXHRtYXJnaW4tdG9wOiAtOHB4O1xufVxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItdGl0bGUge1xuXHRtYXJnaW46IDAgMi4zZW07XG5cdGxpbmUtaGVpZ2h0OiAxLjhlbTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItdGl0bGUgc2VsZWN0IHtcblx0Zm9udC1zaXplOiAxZW07XG5cdG1hcmdpbjogMXB4IDA7XG59XG4udWktZGF0ZXBpY2tlciBzZWxlY3QudWktZGF0ZXBpY2tlci1tb250aCxcbi51aS1kYXRlcGlja2VyIHNlbGVjdC51aS1kYXRlcGlja2VyLXllYXIge1xuXHR3aWR0aDogNDUlO1xufVxuLnVpLWRhdGVwaWNrZXIgdGFibGUge1xuXHR3aWR0aDogMTAwJTtcblx0Zm9udC1zaXplOiAuOWVtO1xuXHRib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuXHRtYXJnaW46IDAgMCAuNGVtO1xufVxuLnVpLWRhdGVwaWNrZXIgdGgge1xuXHRwYWRkaW5nOiAuN2VtIC4zZW07XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdGJvcmRlcjogMDtcbn1cbi51aS1kYXRlcGlja2VyIHRkIHtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAxcHg7XG59XG4udWktZGF0ZXBpY2tlciB0ZCBzcGFuLFxuLnVpLWRhdGVwaWNrZXIgdGQgYSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwYWRkaW5nOiAuMmVtO1xuXHR0ZXh0LWFsaWduOiByaWdodDtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSB7XG5cdGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG5cdG1hcmdpbjogLjdlbSAwIDAgMDtcblx0cGFkZGluZzogMCAuMmVtO1xuXHRib3JkZXItbGVmdDogMDtcblx0Ym9yZGVyLXJpZ2h0OiAwO1xuXHRib3JkZXItYm90dG9tOiAwO1xufVxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSBidXR0b24ge1xuXHRmbG9hdDogcmlnaHQ7XG5cdG1hcmdpbjogLjVlbSAuMmVtIC40ZW07XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0cGFkZGluZzogLjJlbSAuNmVtIC4zZW0gLjZlbTtcblx0d2lkdGg6IGF1dG87XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSBidXR0b24udWktZGF0ZXBpY2tlci1jdXJyZW50IHtcblx0ZmxvYXQ6IGxlZnQ7XG59XG5cbi8qIHdpdGggbXVsdGlwbGUgY2FsZW5kYXJzICovXG4udWktZGF0ZXBpY2tlci51aS1kYXRlcGlja2VyLW11bHRpIHtcblx0d2lkdGg6IGF1dG87XG59XG4udWktZGF0ZXBpY2tlci1tdWx0aSAudWktZGF0ZXBpY2tlci1ncm91cCB7XG5cdGZsb2F0OiBsZWZ0O1xufVxuLnVpLWRhdGVwaWNrZXItbXVsdGkgLnVpLWRhdGVwaWNrZXItZ3JvdXAgdGFibGUge1xuXHR3aWR0aDogOTUlO1xuXHRtYXJnaW46IDAgYXV0byAuNGVtO1xufVxuLnVpLWRhdGVwaWNrZXItbXVsdGktMiAudWktZGF0ZXBpY2tlci1ncm91cCB7XG5cdHdpZHRoOiA1MCU7XG59XG4udWktZGF0ZXBpY2tlci1tdWx0aS0zIC51aS1kYXRlcGlja2VyLWdyb3VwIHtcblx0d2lkdGg6IDMzLjMlO1xufVxuLnVpLWRhdGVwaWNrZXItbXVsdGktNCAudWktZGF0ZXBpY2tlci1ncm91cCB7XG5cdHdpZHRoOiAyNSU7XG59XG4udWktZGF0ZXBpY2tlci1tdWx0aSAudWktZGF0ZXBpY2tlci1ncm91cC1sYXN0IC51aS1kYXRlcGlja2VyLWhlYWRlcixcbi51aS1kYXRlcGlja2VyLW11bHRpIC51aS1kYXRlcGlja2VyLWdyb3VwLW1pZGRsZSAudWktZGF0ZXBpY2tlci1oZWFkZXIge1xuXHRib3JkZXItbGVmdC13aWR0aDogMDtcbn1cbi51aS1kYXRlcGlja2VyLW11bHRpIC51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUge1xuXHRjbGVhcjogbGVmdDtcbn1cbi51aS1kYXRlcGlja2VyLXJvdy1icmVhayB7XG5cdGNsZWFyOiBib3RoO1xuXHR3aWR0aDogMTAwJTtcblx0Zm9udC1zaXplOiAwO1xufVxuXG4vKiBSVEwgc3VwcG9ydCAqL1xuLnVpLWRhdGVwaWNrZXItcnRsIHtcblx0ZGlyZWN0aW9uOiBydGw7XG59XG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItcHJldiB7XG5cdHJpZ2h0OiAycHg7XG5cdGxlZnQ6IGF1dG87XG59XG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItbmV4dCB7XG5cdGxlZnQ6IDJweDtcblx0cmlnaHQ6IGF1dG87XG59XG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItcHJldjpob3ZlciB7XG5cdHJpZ2h0OiAxcHg7XG5cdGxlZnQ6IGF1dG87XG59XG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItbmV4dDpob3ZlciB7XG5cdGxlZnQ6IDFweDtcblx0cmlnaHQ6IGF1dG87XG59XG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSB7XG5cdGNsZWFyOiByaWdodDtcbn1cbi51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIGJ1dHRvbiB7XG5cdGZsb2F0OiBsZWZ0O1xufVxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUgYnV0dG9uLnVpLWRhdGVwaWNrZXItY3VycmVudCxcbi51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1ncm91cCB7XG5cdGZsb2F0OiByaWdodDtcbn1cbi51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1ncm91cC1sYXN0IC51aS1kYXRlcGlja2VyLWhlYWRlcixcbi51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1ncm91cC1taWRkbGUgLnVpLWRhdGVwaWNrZXItaGVhZGVyIHtcblx0Ym9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuXHRib3JkZXItbGVmdC13aWR0aDogMXB4O1xufVxuXG4vKiBJY29ucyAqL1xuLnVpLWRhdGVwaWNrZXIgLnVpLWljb24ge1xuXHRkaXNwbGF5OiBibG9jaztcblx0dGV4dC1pbmRlbnQ6IC05OTk5OXB4O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRsZWZ0OiAuNWVtO1xuXHR0b3A6IC4zZW07XG59XG4iLCIvKiFcbiAqIGpRdWVyeSBVSSBEaWFsb2cgMS4xNC4yXG4gKiBodHRwczovL2pxdWVyeXVpLmNvbVxuICpcbiAqIENvcHlyaWdodCBPcGVuSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4gKiBodHRwczovL2pxdWVyeS5vcmcvbGljZW5zZVxuICpcbiAqIGh0dHBzOi8vYXBpLmpxdWVyeXVpLmNvbS9kaWFsb2cvI3RoZW1pbmdcbiAqL1xuLnVpLWRpYWxvZyB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHRwYWRkaW5nOiAuMmVtO1xuXHRvdXRsaW5lOiAwO1xufVxuLnVpLWRpYWxvZyAudWktZGlhbG9nLXRpdGxlYmFyIHtcblx0cGFkZGluZzogLjRlbSAxZW07XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi51aS1kaWFsb2cgLnVpLWRpYWxvZy10aXRsZSB7XG5cdGZsb2F0OiBsZWZ0O1xuXHRtYXJnaW46IC4xZW0gMDtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0d2lkdGg6IDkwJTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4udWktZGlhbG9nIC51aS1kaWFsb2ctdGl0bGViYXItY2xvc2Uge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHJpZ2h0OiAuM2VtO1xuXHR0b3A6IDUwJTtcblx0d2lkdGg6IDIwcHg7XG5cdG1hcmdpbjogLTEwcHggMCAwIDA7XG5cdHBhZGRpbmc6IDFweDtcblx0aGVpZ2h0OiAyMHB4O1xufVxuLnVpLWRpYWxvZyAudWktZGlhbG9nLWNvbnRlbnQge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGJvcmRlcjogMDtcblx0cGFkZGluZzogLjVlbSAxZW07XG5cdGJhY2tncm91bmQ6IG5vbmU7XG5cdG92ZXJmbG93OiBhdXRvO1xufVxuLnVpLWRpYWxvZyAudWktZGlhbG9nLWJ1dHRvbnBhbmUge1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRib3JkZXItd2lkdGg6IDFweCAwIDAgMDtcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZTtcblx0bWFyZ2luLXRvcDogLjVlbTtcblx0cGFkZGluZzogLjNlbSAxZW0gLjVlbSAuNGVtO1xufVxuLnVpLWRpYWxvZyAudWktZGlhbG9nLWJ1dHRvbnBhbmUgLnVpLWRpYWxvZy1idXR0b25zZXQge1xuXHRmbG9hdDogcmlnaHQ7XG59XG4udWktZGlhbG9nIC51aS1kaWFsb2ctYnV0dG9ucGFuZSBidXR0b24ge1xuXHRtYXJnaW46IC41ZW0gLjRlbSAuNWVtIDA7XG5cdGN1cnNvcjogcG9pbnRlcjtcbn1cbi51aS1kaWFsb2cgLnVpLXJlc2l6YWJsZS1uIHtcblx0aGVpZ2h0OiAycHg7XG5cdHRvcDogMDtcbn1cbi51aS1kaWFsb2cgLnVpLXJlc2l6YWJsZS1lIHtcblx0d2lkdGg6IDJweDtcblx0cmlnaHQ6IDA7XG59XG4udWktZGlhbG9nIC51aS1yZXNpemFibGUtcyB7XG5cdGhlaWdodDogMnB4O1xuXHRib3R0b206IDA7XG59XG4udWktZGlhbG9nIC51aS1yZXNpemFibGUtdyB7XG5cdHdpZHRoOiAycHg7XG5cdGxlZnQ6IDA7XG59XG4udWktZGlhbG9nIC51aS1yZXNpemFibGUtc2UsXG4udWktZGlhbG9nIC51aS1yZXNpemFibGUtc3csXG4udWktZGlhbG9nIC51aS1yZXNpemFibGUtbmUsXG4udWktZGlhbG9nIC51aS1yZXNpemFibGUtbncge1xuXHR3aWR0aDogN3B4O1xuXHRoZWlnaHQ6IDdweDtcbn1cbi51aS1kaWFsb2cgLnVpLXJlc2l6YWJsZS1zZSB7XG5cdHJpZ2h0OiAwO1xuXHRib3R0b206IDA7XG59XG4udWktZGlhbG9nIC51aS1yZXNpemFibGUtc3cge1xuXHRsZWZ0OiAwO1xuXHRib3R0b206IDA7XG59XG4udWktZGlhbG9nIC51aS1yZXNpemFibGUtbmUge1xuXHRyaWdodDogMDtcblx0dG9wOiAwO1xufVxuLnVpLWRpYWxvZyAudWktcmVzaXphYmxlLW53IHtcblx0bGVmdDogMDtcblx0dG9wOiAwO1xufVxuLnVpLWRyYWdnYWJsZSAudWktZGlhbG9nLXRpdGxlYmFyIHtcblx0Y3Vyc29yOiBtb3ZlO1xufVxuIiwiLyohXG4gKiBqUXVlcnkgVUkgRHJhZ2dhYmxlIDEuMTQuMlxuICogaHR0cHM6Ly9qcXVlcnl1aS5jb21cbiAqXG4gKiBDb3B5cmlnaHQgT3BlbkpTIEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9yc1xuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLlxuICogaHR0cHM6Ly9qcXVlcnkub3JnL2xpY2Vuc2VcbiAqL1xuLnVpLWRyYWdnYWJsZS1oYW5kbGUge1xuXHR0b3VjaC1hY3Rpb246IG5vbmU7XG59XG4iLCIvKiFcbiAqIGpRdWVyeSBVSSBNZW51IDEuMTQuMlxuICogaHR0cHM6Ly9qcXVlcnl1aS5jb21cbiAqXG4gKiBDb3B5cmlnaHQgT3BlbkpTIEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9yc1xuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLlxuICogaHR0cHM6Ly9qcXVlcnkub3JnL2xpY2Vuc2VcbiAqXG4gKiBodHRwczovL2FwaS5qcXVlcnl1aS5jb20vbWVudS8jdGhlbWluZ1xuICovXG4udWktbWVudSB7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdHBhZGRpbmc6IDA7XG5cdG1hcmdpbjogMDtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG91dGxpbmU6IDA7XG59XG4udWktbWVudSAudWktbWVudSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi51aS1tZW51IC51aS1tZW51LWl0ZW0ge1xuXHRtYXJnaW46IDA7XG5cdGN1cnNvcjogcG9pbnRlcjtcbn1cbi51aS1tZW51IC51aS1tZW51LWl0ZW0td3JhcHBlciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0cGFkZGluZzogM3B4IDFlbSAzcHggLjRlbTtcbn1cbi51aS1tZW51IC51aS1tZW51LWRpdmlkZXIge1xuXHRtYXJnaW46IDVweCAwO1xuXHRoZWlnaHQ6IDA7XG5cdGZvbnQtc2l6ZTogMDtcblx0bGluZS1oZWlnaHQ6IDA7XG5cdGJvcmRlci13aWR0aDogMXB4IDAgMCAwO1xufVxuLnVpLW1lbnUgLnVpLXN0YXRlLWZvY3VzLFxuLnVpLW1lbnUgLnVpLXN0YXRlLWFjdGl2ZSB7XG5cdG1hcmdpbjogLTFweDtcbn1cblxuLyogaWNvbiBzdXBwb3J0ICovXG4udWktbWVudS1pY29ucyB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi51aS1tZW51LWljb25zIC51aS1tZW51LWl0ZW0td3JhcHBlciB7XG5cdHBhZGRpbmctbGVmdDogMmVtO1xufVxuXG4vKiBsZWZ0LWFsaWduZWQgKi9cbi51aS1tZW51IC51aS1pY29uIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGJvdHRvbTogMDtcblx0bGVmdDogLjJlbTtcblx0bWFyZ2luOiBhdXRvIDA7XG59XG5cbi8qIHJpZ2h0LWFsaWduZWQgKi9cbi51aS1tZW51IC51aS1tZW51LWljb24ge1xuXHRsZWZ0OiBhdXRvO1xuXHRyaWdodDogMDtcbn1cbiIsIi8qIVxuICogalF1ZXJ5IFVJIFByb2dyZXNzYmFyIDEuMTQuMlxuICogaHR0cHM6Ly9qcXVlcnl1aS5jb21cbiAqXG4gKiBDb3B5cmlnaHQgT3BlbkpTIEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9yc1xuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLlxuICogaHR0cHM6Ly9qcXVlcnkub3JnL2xpY2Vuc2VcbiAqXG4gKiBodHRwczovL2FwaS5qcXVlcnl1aS5jb20vcHJvZ3Jlc3NiYXIvI3RoZW1pbmdcbiAqL1xuLnVpLXByb2dyZXNzYmFyIHtcblx0aGVpZ2h0OiAyZW07XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG4udWktcHJvZ3Jlc3NiYXIgLnVpLXByb2dyZXNzYmFyLXZhbHVlIHtcblx0bWFyZ2luOiAtMXB4O1xuXHRoZWlnaHQ6IDEwMCU7XG59XG4udWktcHJvZ3Jlc3NiYXIgLnVpLXByb2dyZXNzYmFyLW92ZXJsYXkge1xuXHRiYWNrZ3JvdW5kOiB1cmwoXCJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhLQUFvQUlBQkFBQUFBUC8vL3lIL0MwNUZWRk5EUVZCRk1pNHdBd0VBQUFBaCtRUUpBUUFCQUN3QUFBQUFLQUFvQUFBQ2tZd05xWHJkQzUyRFMwNmE3TUZaSSs0RkhCQ0tvRGVXS1hxeW1QcUdxeHZKclhaYk14N1R0Yyt3OVhnVTJGQjNsT3lRUldFVDJJRkdpVTltMWZyRFZweFpaYzZiZkh3djRjMVlYUDZrMVZkeTI5MkZiNlVrdXZGdFhwdldTekErSHljWEpIVVhpR1lJaU1nMlI2VzQ1OWduV0dmSE5kaklxRFdWcWVtSDJla3BPYmtwT2xwcFdVcVppcXI2ZWRxcVdRQUFJZmtFQ1FFQUFRQXNBQUFBQUNnQUtBQUFBcFNNZ1puR2ZhcWNnMUUydXV6RG1tSFVCUjhRaWw5NWhpUEtxV24zYXF0THNTMTh5N0cxU3pOZW93V0JFTnRRZCtUMUprdFAwNW56UFRkSlpsUjZ2VXhOV1dqVit2VVdoV05rV0Z3eGw5VnBaUmVkWWNmbElPTGFmYWEyOFhkc0gveW5sY2MxdVBWRFp4UUlSMEsyNStjSUNDbW9xQ2U1bUdoWk9mZVlTVWg1eUpjSnlya1pXV3BhUjhkb0oybzROWXE2MmxBQUFDSDVCQWtCQUFFQUxBQUFBQUFvQUNnQUFBS1ZESTRZeTIyWm5JTlJOcW9zdzBCdjdpMWd5SFVrRmo3b1NhV2x1M292QzhHeE5zbzVmbHV6M3FMVmhCVmVUL0x6N1pUSHl4TDVkRGFsUVdQVk9zUVd0Um51d1hhRlRqOWpWVmg4cG1hOUpqWjR6WVNqNVpPeW1hN3V1b2xmZmgrSVI1YVc5N2NIdUJVWEtHS1hsS2puK0RpSFdNY1lKYWg0TjBsWUNNbEpPWGlwR1JyNXFkZ29TVHJxV1NxNldGbDJ5cG9hVUFBQUlma0VDUUVBQVFBc0FBQUFBQ2dBS0FBQUFwYUViNkhMZ2QvaU83Rk5XdGNGV2UrdWZPREdqUmZvaUoyYWtTaGJ1ZWIwd3RJNTB6bTAycGJ2d2ZXRU1XQlExektHbExJaHNraUVQbTlSNnZSWHhWNFp6V1QyeUhPR3BXTXlvcmJsS2xOcDhIbUhFYi9sQ1hqY1c3Ym10WFA4WHQyMjlPVldSMWZvZDJlV3FOZkh1TWpYQ1BrSUdOaWxlT2lJbVZtQ09FbW9TZm4zeVhsSldtb0hHaHFwNmlsWXVXWXBtVHFLVWdBQUlma0VDUUVBQVFBc0FBQUFBQ2dBS0FBQUFwaUVINmtiNThiaVEzRk5XdE1GV1czZU5WY29qdUZHZnFuWnFTZWJ1UzA2dzVWODAvWDAycEtlOHpGd1A2RUZXT1QxbERGazhyR0VSaDFUVE5Pb2NRNjFIbTRYbTJWZXhVSHB6anltVmlIckZiaUVMc2VmVnJuNlhLZm50MlE5Ry8rWGRpZTQ5OVhIZDJnNGg3aW9PR2hYR0pib0dBblhTQm5vQndLWXlmaW91YlpKMkhuMFJ1UlphZmxaT2lsNTZacDZpaW9LU1hwVUFBQWgrUVFKQVFBQkFDd0FBQUFBS0FBb0FBQUNrb1FScVJ2bnh1STdrVTFhMVVVNWJkNXRuU2VPWlhobW41bFdLM3FOVFd2UmRReFA4cXZhQysveWFZUXpYTzdCTXZhVUVtSlJkM1RzaU1BZ3N3bU5ZclNnWmRZclRYNnRTSEdaTzczZXp1QXcydXh1UStCYmVaZk14c2V4WTM1Ky9RZTRKMWluVjBnNHgzV0h1TWhJbDJqWE9LVDJRK1ZVNWZnb1NVSTUyVmZaeWZrSkdraGE2am1ZK2FhWWRpcnErbFFBQUNINUJBa0JBQUVBTEFBQUFBQW9BQ2dBQUFLV0JJS3BZZTBMM1lOS1RvcXN3VWx2em5pZ2Q0d2lSNEtoWnJLdDlVcHFpcDYxaTlFM3ZNdnhSZEhsYkVGaUVYZms5WUFSWXhPWlpENlZRMnBVdW5CbXRSWG8xTGY4aE1WVmNObDhKYWZWMzhhTTIvRnU1VjE2Qm42M3I2eHQ5N2owOStNWFNGaTRCbmlHRmFlM2h6Ykg5K2hZQnprcHVVaDVhWm1IdWFuWk9aZ0l1dmJHaU5lb21DbmF4eGFwMnVwYUNac3ErMWtBQUNINUJBa0JBQUVBTEFBQUFBQW9BQ2dBQUFLWGpJOEJ5NXpmNGtPeFRWclhOVmx2MVgwZDhJR1pHS0xuTnBZdG04THI5Y3FWZXVPU3ZmT1c3OUQ5YURIaXpOaERKaWRGWmhOeWRFYWhPYURINm5vbXRKanAxdHV0S29OV2t2QTZKcWZSVkxIVS9RVWZhdTlsMng3RzU0ZDFmbDk5NXhjSUdBZFhxTWZCTmFkb1lyaEgrTWcyS0JscFZwYmx1Q2lYbU1uWjJTaDRHQnFKK2NrSU9xcUo2TG1LU2xsWm1zb3E2d3BRQUFBaCtRUUpBUUFCQUN3QUFBQUFLQUFvQUFBQ2xZeC9vTHZveHVKRGtVMWExWVVaYko1OW5TZDJaWGhXcWJSYTIvZ0Y4R3UyRFkzaXFzN3lycSt4QllFa1l2RlNNOGFTU09iRStaZ1JsMUJIRlpOcjdwUkNhdlo1QlcyMTQyaFkzQU4veld0c21mMTJwOVh4eEZsMmxwTG4xcnNlenRmWFpqZElXSWYyczVkSXR3allLQmdvOXlnNXBIZ3pKWFRFZUdsWnVlbnB5UG1wR1FvS09Xa1ltU3BhU25xS2lsZUkyRkFBQUNINUJBa0JBQUVBTEFBQUFBQW9BQ2dBQUFLVmpCK2d1K2pHNGtPUlRWclZoUmxzbm4yZEozWmxlRmFwdEZyYitDWG1POU9vemVMNVZmUDk5SHZBV2hwaVVkY3drcEJIMzgyNUF3WWRVOHhUcWxMR2h0Q29zQXJLTXB2ZmExbU1SYWU5VnZXWmZlQjJYZlBrZUxtbTE4bFVjQmorcDVkbk44alhaM1lJR0VoWXVPVW40NWFvQ0RrcDE2aGw1SWpZSnZqV0tjbm9HUXBxeVBscE9ocjNhRWxhcXJxNTZCcTdWQUFBT3c9PVwiKTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRvcGFjaXR5OiAwLjI1O1xufVxuLnVpLXByb2dyZXNzYmFyLWluZGV0ZXJtaW5hdGUgLnVpLXByb2dyZXNzYmFyLXZhbHVlIHtcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbiIsIi8qIVxuICogalF1ZXJ5IFVJIFJlc2l6YWJsZSAxLjE0LjJcbiAqIGh0dHBzOi8vanF1ZXJ5dWkuY29tXG4gKlxuICogQ29weXJpZ2h0IE9wZW5KUyBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnNcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cbiAqIGh0dHBzOi8vanF1ZXJ5Lm9yZy9saWNlbnNlXG4gKi9cbi51aS1yZXNpemFibGUge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4udWktcmVzaXphYmxlLWhhbmRsZSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0Zm9udC1zaXplOiAwLjFweDtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHRvdWNoLWFjdGlvbjogbm9uZTtcbn1cbi51aS1yZXNpemFibGUtZGlzYWJsZWQgLnVpLXJlc2l6YWJsZS1oYW5kbGUsXG4udWktcmVzaXphYmxlLWF1dG9oaWRlIC51aS1yZXNpemFibGUtaGFuZGxlIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cbi51aS1yZXNpemFibGUtbiB7XG5cdGN1cnNvcjogbi1yZXNpemU7XG5cdGhlaWdodDogN3B4O1xuXHR3aWR0aDogMTAwJTtcblx0dG9wOiAtNXB4O1xuXHRsZWZ0OiAwO1xufVxuLnVpLXJlc2l6YWJsZS1zIHtcblx0Y3Vyc29yOiBzLXJlc2l6ZTtcblx0aGVpZ2h0OiA3cHg7XG5cdHdpZHRoOiAxMDAlO1xuXHRib3R0b206IC01cHg7XG5cdGxlZnQ6IDA7XG59XG4udWktcmVzaXphYmxlLWUge1xuXHRjdXJzb3I6IGUtcmVzaXplO1xuXHR3aWR0aDogN3B4O1xuXHRyaWdodDogLTVweDtcblx0dG9wOiAwO1xuXHRoZWlnaHQ6IDEwMCU7XG59XG4udWktcmVzaXphYmxlLXcge1xuXHRjdXJzb3I6IHctcmVzaXplO1xuXHR3aWR0aDogN3B4O1xuXHRsZWZ0OiAtNXB4O1xuXHR0b3A6IDA7XG5cdGhlaWdodDogMTAwJTtcbn1cbi51aS1yZXNpemFibGUtc2Uge1xuXHRjdXJzb3I6IHNlLXJlc2l6ZTtcblx0d2lkdGg6IDEycHg7XG5cdGhlaWdodDogMTJweDtcblx0cmlnaHQ6IDFweDtcblx0Ym90dG9tOiAxcHg7XG59XG4udWktcmVzaXphYmxlLXN3IHtcblx0Y3Vyc29yOiBzdy1yZXNpemU7XG5cdHdpZHRoOiA5cHg7XG5cdGhlaWdodDogOXB4O1xuXHRsZWZ0OiAtNXB4O1xuXHRib3R0b206IC01cHg7XG59XG4udWktcmVzaXphYmxlLW53IHtcblx0Y3Vyc29yOiBudy1yZXNpemU7XG5cdHdpZHRoOiA5cHg7XG5cdGhlaWdodDogOXB4O1xuXHRsZWZ0OiAtNXB4O1xuXHR0b3A6IC01cHg7XG59XG4udWktcmVzaXphYmxlLW5lIHtcblx0Y3Vyc29yOiBuZS1yZXNpemU7XG5cdHdpZHRoOiA5cHg7XG5cdGhlaWdodDogOXB4O1xuXHRyaWdodDogLTVweDtcblx0dG9wOiAtNXB4O1xufVxuIiwiLyohXG4gKiBqUXVlcnkgVUkgU2VsZWN0YWJsZSAxLjE0LjJcbiAqIGh0dHBzOi8vanF1ZXJ5dWkuY29tXG4gKlxuICogQ29weXJpZ2h0IE9wZW5KUyBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnNcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cbiAqIGh0dHBzOi8vanF1ZXJ5Lm9yZy9saWNlbnNlXG4gKi9cbi51aS1zZWxlY3RhYmxlIHtcblx0dG91Y2gtYWN0aW9uOiBub25lO1xufVxuLnVpLXNlbGVjdGFibGUtaGVscGVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiAxMDA7XG5cdGJvcmRlcjogMXB4IGRvdHRlZCBibGFjaztcbn1cbiIsIi8qIVxuICogalF1ZXJ5IFVJIFNlbGVjdG1lbnUgMS4xNC4yXG4gKiBodHRwczovL2pxdWVyeXVpLmNvbVxuICpcbiAqIENvcHlyaWdodCBPcGVuSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4gKiBodHRwczovL2pxdWVyeS5vcmcvbGljZW5zZVxuICpcbiAqIGh0dHBzOi8vYXBpLmpxdWVyeXVpLmNvbS9zZWxlY3RtZW51LyN0aGVtaW5nXG4gKi9cbi51aS1zZWxlY3RtZW51LW1lbnUge1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IDA7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHRkaXNwbGF5OiBub25lO1xufVxuLnVpLXNlbGVjdG1lbnUtbWVudSAudWktbWVudSB7XG5cdG92ZXJmbG93OiBhdXRvO1xuXHRvdmVyZmxvdy14OiBoaWRkZW47XG5cdHBhZGRpbmctYm90dG9tOiAxcHg7XG59XG4udWktc2VsZWN0bWVudS1tZW51IC51aS1tZW51IC51aS1zZWxlY3RtZW51LW9wdGdyb3VwIHtcblx0Zm9udC1zaXplOiAxZW07XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRsaW5lLWhlaWdodDogMS41O1xuXHRwYWRkaW5nOiAycHggMC40ZW07XG5cdG1hcmdpbjogMC41ZW0gMCAwIDA7XG5cdGhlaWdodDogYXV0bztcblx0Ym9yZGVyOiAwO1xufVxuLnVpLXNlbGVjdG1lbnUtb3BlbiB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuLnVpLXNlbGVjdG1lbnUtdGV4dCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXJnaW4tcmlnaHQ6IDIwcHg7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLnVpLXNlbGVjdG1lbnUtYnV0dG9uLnVpLWJ1dHRvbiB7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdHdpZHRoOiAxNGVtO1xufVxuLnVpLXNlbGVjdG1lbnUtaWNvbi51aS1pY29uIHtcblx0ZmxvYXQ6IHJpZ2h0O1xuXHRtYXJnaW4tdG9wOiAwO1xufVxuIiwiLyohXG4gKiBqUXVlcnkgVUkgU29ydGFibGUgMS4xNC4yXG4gKiBodHRwczovL2pxdWVyeXVpLmNvbVxuICpcbiAqIENvcHlyaWdodCBPcGVuSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4gKiBodHRwczovL2pxdWVyeS5vcmcvbGljZW5zZVxuICovXG4udWktc29ydGFibGUtaGFuZGxlIHtcblx0dG91Y2gtYWN0aW9uOiBub25lO1xufVxuIiwiLyohXG4gKiBqUXVlcnkgVUkgU2xpZGVyIDEuMTQuMlxuICogaHR0cHM6Ly9qcXVlcnl1aS5jb21cbiAqXG4gKiBDb3B5cmlnaHQgT3BlbkpTIEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9yc1xuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLlxuICogaHR0cHM6Ly9qcXVlcnkub3JnL2xpY2Vuc2VcbiAqXG4gKiBodHRwczovL2FwaS5qcXVlcnl1aS5jb20vc2xpZGVyLyN0aGVtaW5nXG4gKi9cbi51aS1zbGlkZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG59XG4udWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiAyO1xuXHR3aWR0aDogMS4yZW07XG5cdGhlaWdodDogMS4yZW07XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0dG91Y2gtYWN0aW9uOiBub25lO1xufVxuLnVpLXNsaWRlciAudWktc2xpZGVyLXJhbmdlIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiAxO1xuXHRmb250LXNpemU6IC43ZW07XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRib3JkZXI6IDA7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IDAgMDtcbn1cblxuLnVpLXNsaWRlci1ob3Jpem9udGFsIHtcblx0aGVpZ2h0OiAuOGVtO1xufVxuLnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItaGFuZGxlIHtcblx0dG9wOiAtLjNlbTtcblx0bWFyZ2luLWxlZnQ6IC0uNmVtO1xufVxuLnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItcmFuZ2Uge1xuXHR0b3A6IDA7XG5cdGhlaWdodDogMTAwJTtcbn1cbi51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLXJhbmdlLW1pbiB7XG5cdGxlZnQ6IDA7XG59XG4udWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1yYW5nZS1tYXgge1xuXHRyaWdodDogMDtcbn1cblxuLnVpLXNsaWRlci12ZXJ0aWNhbCB7XG5cdHdpZHRoOiAuOGVtO1xuXHRoZWlnaHQ6IDEwMHB4O1xufVxuLnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLWhhbmRsZSB7XG5cdGxlZnQ6IC0uM2VtO1xuXHRtYXJnaW4tbGVmdDogMDtcblx0bWFyZ2luLWJvdHRvbTogLS42ZW07XG59XG4udWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItcmFuZ2Uge1xuXHRsZWZ0OiAwO1xuXHR3aWR0aDogMTAwJTtcbn1cbi51aS1zbGlkZXItdmVydGljYWwgLnVpLXNsaWRlci1yYW5nZS1taW4ge1xuXHRib3R0b206IDA7XG59XG4udWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItcmFuZ2UtbWF4IHtcblx0dG9wOiAwO1xufVxuIiwiLyohXG4gKiBqUXVlcnkgVUkgU3Bpbm5lciAxLjE0LjJcbiAqIGh0dHBzOi8vanF1ZXJ5dWkuY29tXG4gKlxuICogQ29weXJpZ2h0IE9wZW5KUyBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnNcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cbiAqIGh0dHBzOi8vanF1ZXJ5Lm9yZy9saWNlbnNlXG4gKlxuICogaHR0cHM6Ly9hcGkuanF1ZXJ5dWkuY29tL3NwaW5uZXIvI3RoZW1pbmdcbiAqL1xuLnVpLXNwaW5uZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0cGFkZGluZzogMDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi51aS1zcGlubmVyLWlucHV0IHtcblx0Ym9yZGVyOiBub25lO1xuXHRiYWNrZ3JvdW5kOiBub25lO1xuXHRjb2xvcjogaW5oZXJpdDtcblx0cGFkZGluZzogLjIyMmVtIDA7XG5cdG1hcmdpbjogLjJlbSAwO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRtYXJnaW4tbGVmdDogLjRlbTtcblx0bWFyZ2luLXJpZ2h0OiAyZW07XG59XG4udWktc3Bpbm5lci1idXR0b24ge1xuXHR3aWR0aDogMS42ZW07XG5cdGhlaWdodDogNTAlO1xuXHRmb250LXNpemU6IC41ZW07XG5cdHBhZGRpbmc6IDA7XG5cdG1hcmdpbjogMDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGN1cnNvcjogZGVmYXVsdDtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHJpZ2h0OiAwO1xufVxuLyogbW9yZSBzcGVjaWZpY2l0eSByZXF1aXJlZCBoZXJlIHRvIG92ZXJyaWRlIGRlZmF1bHQgYm9yZGVycyAqL1xuLnVpLXNwaW5uZXIgYS51aS1zcGlubmVyLWJ1dHRvbiB7XG5cdGJvcmRlci10b3Atc3R5bGU6IG5vbmU7XG5cdGJvcmRlci1ib3R0b20tc3R5bGU6IG5vbmU7XG5cdGJvcmRlci1yaWdodC1zdHlsZTogbm9uZTtcbn1cbi51aS1zcGlubmVyLXVwIHtcblx0dG9wOiAwO1xufVxuLnVpLXNwaW5uZXItZG93biB7XG5cdGJvdHRvbTogMDtcbn1cbiIsIi8qIVxuICogalF1ZXJ5IFVJIFRhYnMgMS4xNC4yXG4gKiBodHRwczovL2pxdWVyeXVpLmNvbVxuICpcbiAqIENvcHlyaWdodCBPcGVuSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4gKiBodHRwczovL2pxdWVyeS5vcmcvbGljZW5zZVxuICpcbiAqIGh0dHBzOi8vYXBpLmpxdWVyeXVpLmNvbS90YWJzLyN0aGVtaW5nXG4gKi9cbi51aS10YWJzIHtcblx0cG9zaXRpb246IHJlbGF0aXZlOy8qIHBvc2l0aW9uOiByZWxhdGl2ZSBwcmV2ZW50cyBJRSBzY3JvbGwgYnVnIChlbGVtZW50IHdpdGggcG9zaXRpb246IHJlbGF0aXZlIGluc2lkZSBjb250YWluZXIgd2l0aCBvdmVyZmxvdzogYXV0byBhcHBlYXIgYXMgXCJmaXhlZFwiKSAqL1xuXHRwYWRkaW5nOiAuMmVtO1xufVxuLnVpLXRhYnMgLnVpLXRhYnMtbmF2IHtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAuMmVtIC4yZW0gMDtcbn1cbi51aS10YWJzIC51aS10YWJzLW5hdiBsaSB7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdGZsb2F0OiBsZWZ0O1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHRvcDogMDtcblx0bWFyZ2luOiAxcHggLjJlbSAwIDA7XG5cdGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG5cdHBhZGRpbmc6IDA7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4udWktdGFicyAudWktdGFicy1uYXYgLnVpLXRhYnMtYW5jaG9yIHtcblx0ZmxvYXQ6IGxlZnQ7XG5cdHBhZGRpbmc6IC41ZW0gMWVtO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4udWktdGFicyAudWktdGFicy1uYXYgbGkudWktdGFicy1hY3RpdmUge1xuXHRtYXJnaW4tYm90dG9tOiAtMXB4O1xuXHRwYWRkaW5nLWJvdHRvbTogMXB4O1xufVxuLnVpLXRhYnMgLnVpLXRhYnMtbmF2IGxpLnVpLXRhYnMtYWN0aXZlIC51aS10YWJzLWFuY2hvcixcbi51aS10YWJzIC51aS10YWJzLW5hdiBsaS51aS1zdGF0ZS1kaXNhYmxlZCAudWktdGFicy1hbmNob3IsXG4udWktdGFicyAudWktdGFicy1uYXYgbGkudWktdGFicy1sb2FkaW5nIC51aS10YWJzLWFuY2hvciB7XG5cdGN1cnNvcjogdGV4dDtcbn1cbi51aS10YWJzLWNvbGxhcHNpYmxlIC51aS10YWJzLW5hdiBsaS51aS10YWJzLWFjdGl2ZSAudWktdGFicy1hbmNob3Ige1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG4udWktdGFicyAudWktdGFicy1wYW5lbCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRib3JkZXItd2lkdGg6IDA7XG5cdHBhZGRpbmc6IDFlbSAxLjRlbTtcblx0YmFja2dyb3VuZDogbm9uZTtcbn1cbiIsIi8qIVxuICogalF1ZXJ5IFVJIFRvb2x0aXAgMS4xNC4yXG4gKiBodHRwczovL2pxdWVyeXVpLmNvbVxuICpcbiAqIENvcHlyaWdodCBPcGVuSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4gKiBodHRwczovL2pxdWVyeS5vcmcvbGljZW5zZVxuICpcbiAqIGh0dHBzOi8vYXBpLmpxdWVyeXVpLmNvbS90b29sdGlwLyN0aGVtaW5nXG4gKi9cbi51aS10b29sdGlwIHtcblx0cGFkZGluZzogOHB4O1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHotaW5kZXg6IDk5OTk7XG5cdG1heC13aWR0aDogMzAwcHg7XG59XG5ib2R5IC51aS10b29sdGlwIHtcblx0Ym9yZGVyLXdpZHRoOiAycHg7XG59XG4iLCIvKiFcbiAqIGpRdWVyeSBVSSBDU1MgRnJhbWV3b3JrIDEuMTQuMlxuICogaHR0cHM6Ly9qcXVlcnl1aS5jb21cbiAqXG4gKiBDb3B5cmlnaHQgT3BlbkpTIEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9yc1xuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLlxuICogaHR0cHM6Ly9qcXVlcnkub3JnL2xpY2Vuc2VcbiAqXG4gKiBodHRwczovL2FwaS5qcXVlcnl1aS5jb20vY2F0ZWdvcnkvdGhlbWluZy9cbiAqL1xuQGltcG9ydCB1cmwoXCJjb3JlLmNzc1wiKTtcblxuQGltcG9ydCB1cmwoXCJhY2NvcmRpb24uY3NzXCIpO1xuQGltcG9ydCB1cmwoXCJhdXRvY29tcGxldGUuY3NzXCIpO1xuQGltcG9ydCB1cmwoXCJidXR0b24uY3NzXCIpO1xuQGltcG9ydCB1cmwoXCJjaGVja2JveHJhZGlvLmNzc1wiKTtcbkBpbXBvcnQgdXJsKFwiY29udHJvbGdyb3VwLmNzc1wiKTtcbkBpbXBvcnQgdXJsKFwiZGF0ZXBpY2tlci5jc3NcIik7XG5AaW1wb3J0IHVybChcImRpYWxvZy5jc3NcIik7XG5AaW1wb3J0IHVybChcImRyYWdnYWJsZS5jc3NcIik7XG5AaW1wb3J0IHVybChcIm1lbnUuY3NzXCIpO1xuQGltcG9ydCB1cmwoXCJwcm9ncmVzc2Jhci5jc3NcIik7XG5AaW1wb3J0IHVybChcInJlc2l6YWJsZS5jc3NcIik7XG5AaW1wb3J0IHVybChcInNlbGVjdGFibGUuY3NzXCIpO1xuQGltcG9ydCB1cmwoXCJzZWxlY3RtZW51LmNzc1wiKTtcbkBpbXBvcnQgdXJsKFwic29ydGFibGUuY3NzXCIpO1xuQGltcG9ydCB1cmwoXCJzbGlkZXIuY3NzXCIpO1xuQGltcG9ydCB1cmwoXCJzcGlubmVyLmNzc1wiKTtcbkBpbXBvcnQgdXJsKFwidGFicy5jc3NcIik7XG5AaW1wb3J0IHVybChcInRvb2x0aXAuY3NzXCIpO1xuIiwiLyohXG4gKiBqUXVlcnkgVUkgQ1NTIEZyYW1ld29yayAxLjE0LjJcbiAqIGh0dHBzOi8vanF1ZXJ5dWkuY29tXG4gKlxuICogQ29weXJpZ2h0IE9wZW5KUyBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnNcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cbiAqIGh0dHBzOi8vanF1ZXJ5Lm9yZy9saWNlbnNlXG4gKlxuICogaHR0cHM6Ly9hcGkuanF1ZXJ5dWkuY29tL2NhdGVnb3J5L3RoZW1pbmcvXG4gKlxuICogVG8gdmlldyBhbmQgbW9kaWZ5IHRoaXMgdGhlbWUsIHZpc2l0IGh0dHBzOi8vanF1ZXJ5dWkuY29tL3RoZW1lcm9sbGVyL1xuICovXG5cblxuLyogQ29tcG9uZW50IGNvbnRhaW5lcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLXdpZGdldCB7XG5cdGZvbnQtZmFtaWx5OiBBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZi8qe2ZmRGVmYXVsdH0qLztcblx0Zm9udC1zaXplOiAxZW0vKntmc0RlZmF1bHR9Ki87XG59XG4udWktd2lkZ2V0IC51aS13aWRnZXQge1xuXHRmb250LXNpemU6IDFlbTtcbn1cbi51aS13aWRnZXQgaW5wdXQsXG4udWktd2lkZ2V0IHNlbGVjdCxcbi51aS13aWRnZXQgdGV4dGFyZWEsXG4udWktd2lkZ2V0IGJ1dHRvbiB7XG5cdGZvbnQtZmFtaWx5OiBBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZi8qe2ZmRGVmYXVsdH0qLztcblx0Zm9udC1zaXplOiAxZW07XG59XG4udWktd2lkZ2V0LnVpLXdpZGdldC1jb250ZW50IHtcblx0Ym9yZGVyOiAxcHggc29saWQgI2M1YzVjNS8qe2JvcmRlckNvbG9yRGVmYXVsdH0qLztcbn1cbi51aS13aWRnZXQtY29udGVudCB7XG5cdGJvcmRlcjogMXB4IHNvbGlkICNkZGRkZGQvKntib3JkZXJDb2xvckNvbnRlbnR9Ki87XG5cdGJhY2tncm91bmQ6ICNmZmZmZmYvKntiZ0NvbG9yQ29udGVudH0qLyAvKntiZ0ltZ1VybENvbnRlbnR9Ki8gLyp7YmdDb250ZW50WFBvc30qLyAvKntiZ0NvbnRlbnRZUG9zfSovIC8qe2JnQ29udGVudFJlcGVhdH0qLztcblx0Y29sb3I6ICMzMzMzMzMvKntmY0NvbnRlbnR9Ki87XG59XG4udWktd2lkZ2V0LWNvbnRlbnQgYSB7XG5cdGNvbG9yOiAjMzMzMzMzLyp7ZmNDb250ZW50fSovO1xufVxuLnVpLXdpZGdldC1oZWFkZXIge1xuXHRib3JkZXI6IDFweCBzb2xpZCAjZGRkZGRkLyp7Ym9yZGVyQ29sb3JIZWFkZXJ9Ki87XG5cdGJhY2tncm91bmQ6ICNlOWU5ZTkvKntiZ0NvbG9ySGVhZGVyfSovIC8qe2JnSW1nVXJsSGVhZGVyfSovIC8qe2JnSGVhZGVyWFBvc30qLyAvKntiZ0hlYWRlcllQb3N9Ki8gLyp7YmdIZWFkZXJSZXBlYXR9Ki87XG5cdGNvbG9yOiAjMzMzMzMzLyp7ZmNIZWFkZXJ9Ki87XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLnVpLXdpZGdldC1oZWFkZXIgYSB7XG5cdGNvbG9yOiAjMzMzMzMzLyp7ZmNIZWFkZXJ9Ki87XG59XG5cbi8qIEludGVyYWN0aW9uIHN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWktc3RhdGUtZGVmYXVsdCxcbi51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZGVmYXVsdCxcbi51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1kZWZhdWx0LFxuLnVpLWJ1dHRvbixcblxuLyogV2UgdXNlIGh0bWwgaGVyZSBiZWNhdXNlIHdlIG5lZWQgYSBncmVhdGVyIHNwZWNpZmljaXR5IHRvIG1ha2Ugc3VyZSBkaXNhYmxlZFxud29ya3MgcHJvcGVybHkgd2hlbiBjbGlja2VkIG9yIGhvdmVyZWQgKi9cbmh0bWwgLnVpLWJ1dHRvbi51aS1zdGF0ZS1kaXNhYmxlZDpob3Zlcixcbmh0bWwgLnVpLWJ1dHRvbi51aS1zdGF0ZS1kaXNhYmxlZDphY3RpdmUge1xuXHRib3JkZXI6IDFweCBzb2xpZCAjYzVjNWM1Lyp7Ym9yZGVyQ29sb3JEZWZhdWx0fSovO1xuXHRiYWNrZ3JvdW5kOiAjZjZmNmY2Lyp7YmdDb2xvckRlZmF1bHR9Ki8gLyp7YmdJbWdVcmxEZWZhdWx0fSovIC8qe2JnRGVmYXVsdFhQb3N9Ki8gLyp7YmdEZWZhdWx0WVBvc30qLyAvKntiZ0RlZmF1bHRSZXBlYXR9Ki87XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWwvKntmd0RlZmF1bHR9Ki87XG5cdGNvbG9yOiAjNDU0NTQ1Lyp7ZmNEZWZhdWx0fSovO1xufVxuLnVpLXN0YXRlLWRlZmF1bHQgYSxcbi51aS1zdGF0ZS1kZWZhdWx0IGE6bGluayxcbi51aS1zdGF0ZS1kZWZhdWx0IGE6dmlzaXRlZCxcbmEudWktYnV0dG9uLFxuYTpsaW5rLnVpLWJ1dHRvbixcbmE6dmlzaXRlZC51aS1idXR0b24sXG4udWktYnV0dG9uIHtcblx0Y29sb3I6ICM0NTQ1NDUvKntmY0RlZmF1bHR9Ki87XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi51aS1zdGF0ZS1ob3Zlcixcbi51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtaG92ZXIsXG4udWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtaG92ZXIsXG4udWktc3RhdGUtZm9jdXMsXG4udWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWZvY3VzLFxuLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWZvY3VzLFxuLnVpLWJ1dHRvbjpob3Zlcixcbi51aS1idXR0b246Zm9jdXMge1xuXHRib3JkZXI6IDFweCBzb2xpZCAjY2NjY2NjLyp7Ym9yZGVyQ29sb3JIb3Zlcn0qLztcblx0YmFja2dyb3VuZDogI2VkZWRlZC8qe2JnQ29sb3JIb3Zlcn0qLyAvKntiZ0ltZ1VybEhvdmVyfSovIC8qe2JnSG92ZXJYUG9zfSovIC8qe2JnSG92ZXJZUG9zfSovIC8qe2JnSG92ZXJSZXBlYXR9Ki87XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWwvKntmd0RlZmF1bHR9Ki87XG5cdGNvbG9yOiAjMmIyYjJiLyp7ZmNIb3Zlcn0qLztcbn1cbi51aS1zdGF0ZS1ob3ZlciBhLFxuLnVpLXN0YXRlLWhvdmVyIGE6aG92ZXIsXG4udWktc3RhdGUtaG92ZXIgYTpsaW5rLFxuLnVpLXN0YXRlLWhvdmVyIGE6dmlzaXRlZCxcbi51aS1zdGF0ZS1mb2N1cyBhLFxuLnVpLXN0YXRlLWZvY3VzIGE6aG92ZXIsXG4udWktc3RhdGUtZm9jdXMgYTpsaW5rLFxuLnVpLXN0YXRlLWZvY3VzIGE6dmlzaXRlZCxcbmEudWktYnV0dG9uOmhvdmVyLFxuYS51aS1idXR0b246Zm9jdXMge1xuXHRjb2xvcjogIzJiMmIyYi8qe2ZjSG92ZXJ9Ki87XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLnVpLXZpc3VhbC1mb2N1cyB7XG5cdGJveC1zaGFkb3c6IDAgMCAzcHggMXB4IHJnYig5NCwgMTU4LCAyMTQpO1xufVxuLnVpLXN0YXRlLWFjdGl2ZSxcbi51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtYWN0aXZlLFxuLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWFjdGl2ZSxcbmEudWktYnV0dG9uOmFjdGl2ZSxcbi51aS1idXR0b246YWN0aXZlLFxuLnVpLWJ1dHRvbi51aS1zdGF0ZS1hY3RpdmU6aG92ZXIge1xuXHRib3JkZXI6IDFweCBzb2xpZCAjMDAzZWZmLyp7Ym9yZGVyQ29sb3JBY3RpdmV9Ki87XG5cdGJhY2tncm91bmQ6ICMwMDdmZmYvKntiZ0NvbG9yQWN0aXZlfSovIC8qe2JnSW1nVXJsQWN0aXZlfSovIC8qe2JnQWN0aXZlWFBvc30qLyAvKntiZ0FjdGl2ZVlQb3N9Ki8gLyp7YmdBY3RpdmVSZXBlYXR9Ki87XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWwvKntmd0RlZmF1bHR9Ki87XG5cdGNvbG9yOiAjZmZmZmZmLyp7ZmNBY3RpdmV9Ki87XG59XG4udWktaWNvbi1iYWNrZ3JvdW5kLFxuLnVpLXN0YXRlLWFjdGl2ZSAudWktaWNvbi1iYWNrZ3JvdW5kIHtcblx0Ym9yZGVyOiAjMDAzZWZmLyp7Ym9yZGVyQ29sb3JBY3RpdmV9Ki87XG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYvKntmY0FjdGl2ZX0qLztcbn1cbi51aS1zdGF0ZS1hY3RpdmUgYSxcbi51aS1zdGF0ZS1hY3RpdmUgYTpsaW5rLFxuLnVpLXN0YXRlLWFjdGl2ZSBhOnZpc2l0ZWQge1xuXHRjb2xvcjogI2ZmZmZmZi8qe2ZjQWN0aXZlfSovO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi8qIEludGVyYWN0aW9uIEN1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLXN0YXRlLWhpZ2hsaWdodCxcbi51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtaGlnaGxpZ2h0LFxuLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWhpZ2hsaWdodCB7XG5cdGJvcmRlcjogMXB4IHNvbGlkICNkYWQ1NWUvKntib3JkZXJDb2xvckhpZ2hsaWdodH0qLztcblx0YmFja2dyb3VuZDogI2ZmZmE5MC8qe2JnQ29sb3JIaWdobGlnaHR9Ki8gLyp7YmdJbWdVcmxIaWdobGlnaHR9Ki8gLyp7YmdIaWdobGlnaHRYUG9zfSovIC8qe2JnSGlnaGxpZ2h0WVBvc30qLyAvKntiZ0hpZ2hsaWdodFJlcGVhdH0qLztcblx0Y29sb3I6ICM3Nzc2MjAvKntmY0hpZ2hsaWdodH0qLztcbn1cbi51aS1zdGF0ZS1jaGVja2VkIHtcblx0Ym9yZGVyOiAxcHggc29saWQgI2RhZDU1ZS8qe2JvcmRlckNvbG9ySGlnaGxpZ2h0fSovO1xuXHRiYWNrZ3JvdW5kOiAjZmZmYTkwLyp7YmdDb2xvckhpZ2hsaWdodH0qLztcbn1cbi51aS1zdGF0ZS1oaWdobGlnaHQgYSxcbi51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtaGlnaGxpZ2h0IGEsXG4udWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtaGlnaGxpZ2h0IGEge1xuXHRjb2xvcjogIzc3NzYyMC8qe2ZjSGlnaGxpZ2h0fSovO1xufVxuLnVpLXN0YXRlLWVycm9yLFxuLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1lcnJvcixcbi51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1lcnJvciB7XG5cdGJvcmRlcjogMXB4IHNvbGlkICNmMWE4OTkvKntib3JkZXJDb2xvckVycm9yfSovO1xuXHRiYWNrZ3JvdW5kOiAjZmRkZmRmLyp7YmdDb2xvckVycm9yfSovIC8qe2JnSW1nVXJsRXJyb3J9Ki8gLyp7YmdFcnJvclhQb3N9Ki8gLyp7YmdFcnJvcllQb3N9Ki8gLyp7YmdFcnJvclJlcGVhdH0qLztcblx0Y29sb3I6ICM1ZjNmM2YvKntmY0Vycm9yfSovO1xufVxuLnVpLXN0YXRlLWVycm9yIGEsXG4udWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWVycm9yIGEsXG4udWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZXJyb3IgYSB7XG5cdGNvbG9yOiAjNWYzZjNmLyp7ZmNFcnJvcn0qLztcbn1cbi51aS1zdGF0ZS1lcnJvci10ZXh0LFxuLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1lcnJvci10ZXh0LFxuLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWVycm9yLXRleHQge1xuXHRjb2xvcjogIzVmM2YzZi8qe2ZjRXJyb3J9Ki87XG59XG4udWktcHJpb3JpdHktcHJpbWFyeSxcbi51aS13aWRnZXQtY29udGVudCAudWktcHJpb3JpdHktcHJpbWFyeSxcbi51aS13aWRnZXQtaGVhZGVyIC51aS1wcmlvcml0eS1wcmltYXJ5IHtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4udWktcHJpb3JpdHktc2Vjb25kYXJ5LFxuLnVpLXdpZGdldC1jb250ZW50IC51aS1wcmlvcml0eS1zZWNvbmRhcnksXG4udWktd2lkZ2V0LWhlYWRlciAudWktcHJpb3JpdHktc2Vjb25kYXJ5IHtcblx0b3BhY2l0eTogLjc7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG4udWktc3RhdGUtZGlzYWJsZWQsXG4udWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWRpc2FibGVkLFxuLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWRpc2FibGVkIHtcblx0b3BhY2l0eTogLjM1O1xuXHRiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuXG4vKiBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIHN0YXRlcyBhbmQgaW1hZ2VzICovXG4udWktaWNvbiB7XG5cdHdpZHRoOiAxNnB4O1xuXHRoZWlnaHQ6IDE2cHg7XG59XG4udWktaWNvbixcbi51aS13aWRnZXQtY29udGVudCAudWktaWNvbiB7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImltYWdlcy91aS1pY29uc180NDQ0NDRfMjU2eDI0MC5wbmdcIikvKntpY29uc0NvbnRlbnR9Ki87XG59XG4udWktd2lkZ2V0LWhlYWRlciAudWktaWNvbiB7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImltYWdlcy91aS1pY29uc180NDQ0NDRfMjU2eDI0MC5wbmdcIikvKntpY29uc0hlYWRlcn0qLztcbn1cbi51aS1zdGF0ZS1ob3ZlciAudWktaWNvbixcbi51aS1zdGF0ZS1mb2N1cyAudWktaWNvbixcbi51aS1idXR0b246aG92ZXIgLnVpLWljb24sXG4udWktYnV0dG9uOmZvY3VzIC51aS1pY29uIHtcblx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiaW1hZ2VzL3VpLWljb25zXzU1NTU1NV8yNTZ4MjQwLnBuZ1wiKS8qe2ljb25zSG92ZXJ9Ki87XG59XG4udWktc3RhdGUtYWN0aXZlIC51aS1pY29uLFxuLnVpLWJ1dHRvbjphY3RpdmUgLnVpLWljb24ge1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJpbWFnZXMvdWktaWNvbnNfZmZmZmZmXzI1NngyNDAucG5nXCIpLyp7aWNvbnNBY3RpdmV9Ki87XG59XG4udWktc3RhdGUtaGlnaGxpZ2h0IC51aS1pY29uLFxuLnVpLWJ1dHRvbiAudWktc3RhdGUtaGlnaGxpZ2h0LnVpLWljb24ge1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJpbWFnZXMvdWktaWNvbnNfNzc3NjIwXzI1NngyNDAucG5nXCIpLyp7aWNvbnNIaWdobGlnaHR9Ki87XG59XG4udWktc3RhdGUtZXJyb3IgLnVpLWljb24sXG4udWktc3RhdGUtZXJyb3ItdGV4dCAudWktaWNvbiB7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImltYWdlcy91aS1pY29uc19jYzAwMDBfMjU2eDI0MC5wbmdcIikvKntpY29uc0Vycm9yfSovO1xufVxuLnVpLWJ1dHRvbiAudWktaWNvbiB7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImltYWdlcy91aS1pY29uc183Nzc3NzdfMjU2eDI0MC5wbmdcIikvKntpY29uc0RlZmF1bHR9Ki87XG59XG5cbi8qIHBvc2l0aW9uaW5nICovXG4vKiBUaHJlZSBjbGFzc2VzIG5lZWRlZCB0byBvdmVycmlkZSBgLnVpLWJ1dHRvbjpob3ZlciAudWktaWNvbmAgKi9cbi51aS1pY29uLWJsYW5rLnVpLWljb24tYmxhbmsudWktaWNvbi1ibGFuayB7XG5cdGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4udWktaWNvbi1jYXJldC0xLW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7IH1cbi51aS1pY29uLWNhcmV0LTEtbmUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAwOyB9XG4udWktaWNvbi1jYXJldC0xLWUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAwOyB9XG4udWktaWNvbi1jYXJldC0xLXNlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggMDsgfVxuLnVpLWljb24tY2FyZXQtMS1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY1cHggMDsgfVxuLnVpLWljb24tY2FyZXQtMS1zdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IDA7IH1cbi51aS1pY29uLWNhcmV0LTEtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IDA7IH1cbi51aS1pY29uLWNhcmV0LTEtbncgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggMDsgfVxuLnVpLWljb24tY2FyZXQtMi1uLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggMDsgfVxuLnVpLWljb24tY2FyZXQtMi1lLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggMDsgfVxuLnVpLWljb24tdHJpYW5nbGUtMS1uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTZweDsgfVxuLnVpLWljb24tdHJpYW5nbGUtMS1uZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xNnB4OyB9XG4udWktaWNvbi10cmlhbmdsZS0xLWUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMTZweDsgfVxuLnVpLWljb24tdHJpYW5nbGUtMS1zZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0xNnB4OyB9XG4udWktaWNvbi10cmlhbmdsZS0xLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjVweCAtMTZweDsgfVxuLnVpLWljb24tdHJpYW5nbGUtMS1zdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xNnB4OyB9XG4udWktaWNvbi10cmlhbmdsZS0xLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMTZweDsgfVxuLnVpLWljb24tdHJpYW5nbGUtMS1udyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMTZweDsgfVxuLnVpLWljb24tdHJpYW5nbGUtMi1uLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTE2cHg7IH1cbi51aS1pY29uLXRyaWFuZ2xlLTItZS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0xNnB4OyB9XG4udWktaWNvbi1hcnJvdy0xLW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0zMnB4OyB9XG4udWktaWNvbi1hcnJvdy0xLW5lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTMycHg7IH1cbi51aS1pY29uLWFycm93LTEtZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0zMnB4OyB9XG4udWktaWNvbi1hcnJvdy0xLXNlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTMycHg7IH1cbi51aS1pY29uLWFycm93LTEtcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NXB4IC0zMnB4OyB9XG4udWktaWNvbi1hcnJvdy0xLXN3IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTMycHg7IH1cbi51aS1pY29uLWFycm93LTEtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0zMnB4OyB9XG4udWktaWNvbi1hcnJvdy0xLW53IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0zMnB4OyB9XG4udWktaWNvbi1hcnJvdy0yLW4tcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtMzJweDsgfVxuLnVpLWljb24tYXJyb3ctMi1uZS1zdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtMzJweDsgfVxuLnVpLWljb24tYXJyb3ctMi1lLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTMycHg7IH1cbi51aS1pY29uLWFycm93LTItc2UtbncgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTMycHg7IH1cbi51aS1pY29uLWFycm93c3RvcC0xLW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTMycHg7IH1cbi51aS1pY29uLWFycm93c3RvcC0xLWUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA4cHggLTMycHg7IH1cbi51aS1pY29uLWFycm93c3RvcC0xLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjI0cHggLTMycHg7IH1cbi51aS1pY29uLWFycm93c3RvcC0xLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjQwcHggLTMycHg7IH1cbi51aS1pY29uLWFycm93dGhpY2stMS1uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IC00OHB4OyB9XG4udWktaWNvbi1hcnJvd3RoaWNrLTEtbmUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtNDhweDsgfVxuLnVpLWljb24tYXJyb3d0aGljay0xLWUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtNDhweDsgfVxuLnVpLWljb24tYXJyb3d0aGljay0xLXNlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTQ4cHg7IH1cbi51aS1pY29uLWFycm93dGhpY2stMS1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTQ4cHg7IH1cbi51aS1pY29uLWFycm93dGhpY2stMS1zdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC00OHB4OyB9XG4udWktaWNvbi1hcnJvd3RoaWNrLTEtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC00OHB4OyB9XG4udWktaWNvbi1hcnJvd3RoaWNrLTEtbncgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTQ4cHg7IH1cbi51aS1pY29uLWFycm93dGhpY2stMi1uLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTQ4cHg7IH1cbi51aS1pY29uLWFycm93dGhpY2stMi1uZS1zdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtNDhweDsgfVxuLnVpLWljb24tYXJyb3d0aGljay0yLWUtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtNDhweDsgfVxuLnVpLWljb24tYXJyb3d0aGljay0yLXNlLW53IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC00OHB4OyB9XG4udWktaWNvbi1hcnJvd3RoaWNrc3RvcC0xLW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTQ4cHg7IH1cbi51aS1pY29uLWFycm93dGhpY2tzdG9wLTEtZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtNDhweDsgfVxuLnVpLWljb24tYXJyb3d0aGlja3N0b3AtMS1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIyNHB4IC00OHB4OyB9XG4udWktaWNvbi1hcnJvd3RoaWNrc3RvcC0xLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjQwcHggLTQ4cHg7IH1cbi51aS1pY29uLWFycm93cmV0dXJudGhpY2stMS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNjRweDsgfVxuLnVpLWljb24tYXJyb3dyZXR1cm50aGljay0xLW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtNjRweDsgfVxuLnVpLWljb24tYXJyb3dyZXR1cm50aGljay0xLWUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtNjRweDsgfVxuLnVpLWljb24tYXJyb3dyZXR1cm50aGljay0xLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtNjRweDsgfVxuLnVpLWljb24tYXJyb3dyZXR1cm4tMS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTY0cHg7IH1cbi51aS1pY29uLWFycm93cmV0dXJuLTEtbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC02NHB4OyB9XG4udWktaWNvbi1hcnJvd3JldHVybi0xLWUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtNjRweDsgfVxuLnVpLWljb24tYXJyb3dyZXR1cm4tMS1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC02NHB4OyB9XG4udWktaWNvbi1hcnJvd3JlZnJlc2gtMS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC02NHB4OyB9XG4udWktaWNvbi1hcnJvd3JlZnJlc2gtMS1uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC02NHB4OyB9XG4udWktaWNvbi1hcnJvd3JlZnJlc2gtMS1lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC02NHB4OyB9XG4udWktaWNvbi1hcnJvd3JlZnJlc2gtMS1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC02NHB4OyB9XG4udWktaWNvbi1hcnJvdy00IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtODBweDsgfVxuLnVpLWljb24tYXJyb3ctNC1kaWFnIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTgwcHg7IH1cbi51aS1pY29uLWV4dGxpbmsgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtODBweDsgfVxuLnVpLWljb24tbmV3d2luIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTgwcHg7IH1cbi51aS1pY29uLXJlZnJlc2ggeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtODBweDsgfVxuLnVpLWljb24tc2h1ZmZsZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC04MHB4OyB9XG4udWktaWNvbi10cmFuc2Zlci1lLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtODBweDsgfVxuLnVpLWljb24tdHJhbnNmZXJ0aGljay1lLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTgwcHg7IH1cbi51aS1pY29uLWZvbGRlci1jb2xsYXBzZWQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC05NnB4OyB9XG4udWktaWNvbi1mb2xkZXItb3BlbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC05NnB4OyB9XG4udWktaWNvbi1kb2N1bWVudCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC05NnB4OyB9XG4udWktaWNvbi1kb2N1bWVudC1iIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTk2cHg7IH1cbi51aS1pY29uLW5vdGUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtOTZweDsgfVxuLnVpLWljb24tbWFpbC1jbG9zZWQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtOTZweDsgfVxuLnVpLWljb24tbWFpbC1vcGVuIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTk2cHg7IH1cbi51aS1pY29uLXN1aXRjYXNlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC05NnB4OyB9XG4udWktaWNvbi1jb21tZW50IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC05NnB4OyB9XG4udWktaWNvbi1wZXJzb24geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTk2cHg7IH1cbi51aS1pY29uLXByaW50IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC05NnB4OyB9XG4udWktaWNvbi10cmFzaCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtOTZweDsgfVxuLnVpLWljb24tbG9ja2VkIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IC05NnB4OyB9XG4udWktaWNvbi11bmxvY2tlZCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtOTZweDsgfVxuLnVpLWljb24tYm9va21hcmsgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjI0cHggLTk2cHg7IH1cbi51aS1pY29uLXRhZyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yNDBweCAtOTZweDsgfVxuLnVpLWljb24taG9tZSB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTExMnB4OyB9XG4udWktaWNvbi1mbGFnIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTExMnB4OyB9XG4udWktaWNvbi1jYWxlbmRhciB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0xMTJweDsgfVxuLnVpLWljb24tY2FydCB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0xMTJweDsgfVxuLnVpLWljb24tcGVuY2lsIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTExMnB4OyB9XG4udWktaWNvbi1jbG9jayB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xMTJweDsgfVxuLnVpLWljb24tZGlzayB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0xMTJweDsgfVxuLnVpLWljb24tY2FsY3VsYXRvciB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMTEycHg7IH1cbi51aS1pY29uLXpvb21pbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtMTEycHg7IH1cbi51aS1pY29uLXpvb21vdXQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTExMnB4OyB9XG4udWktaWNvbi1zZWFyY2ggeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTExMnB4OyB9XG4udWktaWNvbi13cmVuY2ggeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTExMnB4OyB9XG4udWktaWNvbi1nZWFyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IC0xMTJweDsgfVxuLnVpLWljb24taGVhcnQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA4cHggLTExMnB4OyB9XG4udWktaWNvbi1zdGFyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIyNHB4IC0xMTJweDsgfVxuLnVpLWljb24tbGluayB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yNDBweCAtMTEycHg7IH1cbi51aS1pY29uLWNhbmNlbCB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTEyOHB4OyB9XG4udWktaWNvbi1wbHVzIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTEyOHB4OyB9XG4udWktaWNvbi1wbHVzdGhpY2sgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMTI4cHg7IH1cbi51aS1pY29uLW1pbnVzIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTEyOHB4OyB9XG4udWktaWNvbi1taW51c3RoaWNrIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTEyOHB4OyB9XG4udWktaWNvbi1jbG9zZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xMjhweDsgfVxuLnVpLWljb24tY2xvc2V0aGljayB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0xMjhweDsgfVxuLnVpLWljb24ta2V5IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0xMjhweDsgfVxuLnVpLWljb24tbGlnaHRidWxiIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC0xMjhweDsgfVxuLnVpLWljb24tc2Npc3NvcnMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTEyOHB4OyB9XG4udWktaWNvbi1jbGlwYm9hcmQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTEyOHB4OyB9XG4udWktaWNvbi1jb3B5IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC0xMjhweDsgfVxuLnVpLWljb24tY29udGFjdCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAtMTI4cHg7IH1cbi51aS1pY29uLWltYWdlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC0xMjhweDsgfVxuLnVpLWljb24tdmlkZW8geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjI0cHggLTEyOHB4OyB9XG4udWktaWNvbi1zY3JpcHQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjQwcHggLTEyOHB4OyB9XG4udWktaWNvbi1hbGVydCB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTE0NHB4OyB9XG4udWktaWNvbi1pbmZvIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTE0NHB4OyB9XG4udWktaWNvbi1ub3RpY2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMTQ0cHg7IH1cbi51aS1pY29uLWhlbHAgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMTQ0cHg7IH1cbi51aS1pY29uLWNoZWNrIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTE0NHB4OyB9XG4udWktaWNvbi1idWxsZXQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTQ0cHg7IH1cbi51aS1pY29uLXJhZGlvLW9uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTE0NHB4OyB9XG4udWktaWNvbi1yYWRpby1vZmYgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTE0NHB4OyB9XG4udWktaWNvbi1waW4tdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtMTQ0cHg7IH1cbi51aS1pY29uLXBpbi1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0xNDRweDsgfVxuLnVpLWljb24tcGxheSB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTE2MHB4OyB9XG4udWktaWNvbi1wYXVzZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xNjBweDsgfVxuLnVpLWljb24tc2Vlay1uZXh0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTE2MHB4OyB9XG4udWktaWNvbi1zZWVrLXByZXYgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMTYwcHg7IH1cbi51aS1pY29uLXNlZWstZW5kIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTE2MHB4OyB9XG4udWktaWNvbi1zZWVrLXN0YXJ0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTE2MHB4OyB9XG4vKiB1aS1pY29uLXNlZWstZmlyc3QgaXMgZGVwcmVjYXRlZCwgdXNlIHVpLWljb24tc2Vlay1zdGFydCBpbnN0ZWFkICovXG4udWktaWNvbi1zZWVrLWZpcnN0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTE2MHB4OyB9XG4udWktaWNvbi1zdG9wIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTE2MHB4OyB9XG4udWktaWNvbi1lamVjdCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMTYwcHg7IH1cbi51aS1pY29uLXZvbHVtZS1vZmYgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTE2MHB4OyB9XG4udWktaWNvbi12b2x1bWUtb24geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTE2MHB4OyB9XG4udWktaWNvbi1wb3dlciB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTE3NnB4OyB9XG4udWktaWNvbi1zaWduYWwtZGlhZyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xNzZweDsgfVxuLnVpLWljb24tc2lnbmFsIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTE3NnB4OyB9XG4udWktaWNvbi1iYXR0ZXJ5LTAgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMTc2cHg7IH1cbi51aS1pY29uLWJhdHRlcnktMSB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0xNzZweDsgfVxuLnVpLWljb24tYmF0dGVyeS0yIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTE3NnB4OyB9XG4udWktaWNvbi1iYXR0ZXJ5LTMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMTc2cHg7IH1cbi51aS1pY29uLWNpcmNsZS1wbHVzIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTkycHg7IH1cbi51aS1pY29uLWNpcmNsZS1taW51cyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xOTJweDsgfVxuLnVpLWljb24tY2lyY2xlLWNsb3NlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTE5MnB4OyB9XG4udWktaWNvbi1jaXJjbGUtdHJpYW5nbGUtZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0xOTJweDsgfVxuLnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMTkycHg7IH1cbi51aS1pY29uLWNpcmNsZS10cmlhbmdsZS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTE5MnB4OyB9XG4udWktaWNvbi1jaXJjbGUtdHJpYW5nbGUtbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0xOTJweDsgfVxuLnVpLWljb24tY2lyY2xlLWFycm93LWUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTE5MnB4OyB9XG4udWktaWNvbi1jaXJjbGUtYXJyb3ctcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtMTkycHg7IH1cbi51aS1pY29uLWNpcmNsZS1hcnJvdy13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0xOTJweDsgfVxuLnVpLWljb24tY2lyY2xlLWFycm93LW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTE5MnB4OyB9XG4udWktaWNvbi1jaXJjbGUtem9vbWluIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC0xOTJweDsgfVxuLnVpLWljb24tY2lyY2xlLXpvb21vdXQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTE5MnB4OyB9XG4udWktaWNvbi1jaXJjbGUtY2hlY2sgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA4cHggLTE5MnB4OyB9XG4udWktaWNvbi1jaXJjbGVzbWFsbC1wbHVzIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMjA4cHg7IH1cbi51aS1pY29uLWNpcmNsZXNtYWxsLW1pbnVzIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTIwOHB4OyB9XG4udWktaWNvbi1jaXJjbGVzbWFsbC1jbG9zZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0yMDhweDsgfVxuLnVpLWljb24tc3F1YXJlc21hbGwtcGx1cyB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0yMDhweDsgfVxuLnVpLWljb24tc3F1YXJlc21hbGwtbWludXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMjA4cHg7IH1cbi51aS1pY29uLXNxdWFyZXNtYWxsLWNsb3NlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTIwOHB4OyB9XG4udWktaWNvbi1ncmlwLWRvdHRlZC12ZXJ0aWNhbCB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTIyNHB4OyB9XG4udWktaWNvbi1ncmlwLWRvdHRlZC1ob3Jpem9udGFsIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTIyNHB4OyB9XG4udWktaWNvbi1ncmlwLXNvbGlkLXZlcnRpY2FsIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTIyNHB4OyB9XG4udWktaWNvbi1ncmlwLXNvbGlkLWhvcml6b250YWwgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMjI0cHg7IH1cbi51aS1pY29uLWdyaXBzbWFsbC1kaWFnb25hbC1zZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0yMjRweDsgfVxuLnVpLWljb24tZ3JpcC1kaWFnb25hbC1zZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0yMjRweDsgfVxuXG5cbi8qIE1pc2MgdmlzdWFsc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIENvcm5lciByYWRpdXMgKi9cbi51aS1jb3JuZXItYWxsLFxuLnVpLWNvcm5lci10b3AsXG4udWktY29ybmVyLWxlZnQsXG4udWktY29ybmVyLXRsIHtcblx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4Lyp7Y29ybmVyUmFkaXVzfSovO1xufVxuLnVpLWNvcm5lci1hbGwsXG4udWktY29ybmVyLXRvcCxcbi51aS1jb3JuZXItcmlnaHQsXG4udWktY29ybmVyLXRyIHtcblx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDNweC8qe2Nvcm5lclJhZGl1c30qLztcbn1cbi51aS1jb3JuZXItYWxsLFxuLnVpLWNvcm5lci1ib3R0b20sXG4udWktY29ybmVyLWxlZnQsXG4udWktY29ybmVyLWJsIHtcblx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4Lyp7Y29ybmVyUmFkaXVzfSovO1xufVxuLnVpLWNvcm5lci1hbGwsXG4udWktY29ybmVyLWJvdHRvbSxcbi51aS1jb3JuZXItcmlnaHQsXG4udWktY29ybmVyLWJyIHtcblx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDNweC8qe2Nvcm5lclJhZGl1c30qLztcbn1cblxuLyogT3ZlcmxheXMgKi9cbi51aS13aWRnZXQtb3ZlcmxheSB7XG5cdGJhY2tncm91bmQ6ICNhYWFhYWEvKntiZ0NvbG9yT3ZlcmxheX0qLyAvKntiZ0ltZ1VybE92ZXJsYXl9Ki8gLyp7YmdPdmVybGF5WFBvc30qLyAvKntiZ092ZXJsYXlZUG9zfSovIC8qe2JnT3ZlcmxheVJlcGVhdH0qLztcblx0b3BhY2l0eTogLjMvKntvcGFjaXR5T3ZlcmxheX0qLztcbn1cbi51aS13aWRnZXQtc2hhZG93IHtcblx0Ym94LXNoYWRvdzogMC8qe29mZnNldExlZnRTaGFkb3d9Ki8gMC8qe29mZnNldFRvcFNoYWRvd30qLyA1cHgvKnt0aGlja25lc3NTaGFkb3d9Ki8gIzY2NjY2Ni8qe2JnQ29sb3JTaGFkb3d9Ki87XG59XG4iLCIvKiFcbiAqIGpRdWVyeSBVSSBDU1MgRnJhbWV3b3JrIDEuMTQuMlxuICogaHR0cHM6Ly9qcXVlcnl1aS5jb21cbiAqXG4gKiBDb3B5cmlnaHQgT3BlbkpTIEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9yc1xuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLlxuICogaHR0cHM6Ly9qcXVlcnkub3JnL2xpY2Vuc2VcbiAqXG4gKiBodHRwczovL2FwaS5qcXVlcnl1aS5jb20vY2F0ZWdvcnkvdGhlbWluZy9cbiAqL1xuQGltcG9ydCBcImJhc2UuY3NzXCI7XG5AaW1wb3J0IFwidGhlbWUuY3NzXCI7XG4iLCIvKiEgalF1ZXJ5IFVJIC0gdjEuMTQuMiAtIDIwMjYtMDEtMjhcbiogaHR0cHM6Ly9qcXVlcnl1aS5jb21cbiogSW5jbHVkZXM6IGNvcmUuY3NzLCBhY2NvcmRpb24uY3NzLCBhdXRvY29tcGxldGUuY3NzLCBtZW51LmNzcywgYnV0dG9uLmNzcywgY29udHJvbGdyb3VwLmNzcywgY2hlY2tib3hyYWRpby5jc3MsIGRhdGVwaWNrZXIuY3NzLCBkaWFsb2cuY3NzLCBkcmFnZ2FibGUuY3NzLCByZXNpemFibGUuY3NzLCBwcm9ncmVzc2Jhci5jc3MsIHNlbGVjdGFibGUuY3NzLCBzZWxlY3RtZW51LmNzcywgc2xpZGVyLmNzcywgc29ydGFibGUuY3NzLCBzcGlubmVyLmNzcywgdGFicy5jc3MsIHRvb2x0aXAuY3NzLCB0aGVtZS5jc3NcbiogVG8gdmlldyBhbmQgbW9kaWZ5IHRoaXMgdGhlbWUsIHZpc2l0IGh0dHBzOi8vanF1ZXJ5dWkuY29tL3RoZW1lcm9sbGVyLz9mZkRlZmF1bHQ9QXJpYWwlMkNIZWx2ZXRpY2ElMkNzYW5zLXNlcmlmJmZzRGVmYXVsdD0xZW0mZndEZWZhdWx0PW5vcm1hbCZjb3JuZXJSYWRpdXM9M3B4JmJnQ29sb3JIZWFkZXI9ZTllOWU5JmJnVGV4dHVyZUhlYWRlcj1mbGF0JmJvcmRlckNvbG9ySGVhZGVyPWRkZGRkZCZmY0hlYWRlcj0zMzMzMzMmaWNvbkNvbG9ySGVhZGVyPTQ0NDQ0NCZiZ0NvbG9yQ29udGVudD1mZmZmZmYmYmdUZXh0dXJlQ29udGVudD1mbGF0JmJvcmRlckNvbG9yQ29udGVudD1kZGRkZGQmZmNDb250ZW50PTMzMzMzMyZpY29uQ29sb3JDb250ZW50PTQ0NDQ0NCZiZ0NvbG9yRGVmYXVsdD1mNmY2ZjYmYmdUZXh0dXJlRGVmYXVsdD1mbGF0JmJvcmRlckNvbG9yRGVmYXVsdD1jNWM1YzUmZmNEZWZhdWx0PTQ1NDU0NSZpY29uQ29sb3JEZWZhdWx0PTc3Nzc3NyZiZ0NvbG9ySG92ZXI9ZWRlZGVkJmJnVGV4dHVyZUhvdmVyPWZsYXQmYm9yZGVyQ29sb3JIb3Zlcj1jY2NjY2MmZmNIb3Zlcj0yYjJiMmImaWNvbkNvbG9ySG92ZXI9NTU1NTU1JmJnQ29sb3JBY3RpdmU9MDA3ZmZmJmJnVGV4dHVyZUFjdGl2ZT1mbGF0JmJvcmRlckNvbG9yQWN0aXZlPTAwM2VmZiZmY0FjdGl2ZT1mZmZmZmYmaWNvbkNvbG9yQWN0aXZlPWZmZmZmZiZiZ0NvbG9ySGlnaGxpZ2h0PWZmZmE5MCZiZ1RleHR1cmVIaWdobGlnaHQ9ZmxhdCZib3JkZXJDb2xvckhpZ2hsaWdodD1kYWQ1NWUmZmNIaWdobGlnaHQ9Nzc3NjIwJmljb25Db2xvckhpZ2hsaWdodD03Nzc2MjAmYmdDb2xvckVycm9yPWZkZGZkZiZiZ1RleHR1cmVFcnJvcj1mbGF0JmJvcmRlckNvbG9yRXJyb3I9ZjFhODk5JmZjRXJyb3I9NWYzZjNmJmljb25Db2xvckVycm9yPWNjMDAwMCZiZ0NvbG9yT3ZlcmxheT1hYWFhYWEmYmdUZXh0dXJlT3ZlcmxheT1mbGF0JmJnSW1nT3BhY2l0eU92ZXJsYXk9MCZvcGFjaXR5T3ZlcmxheT0zMCZiZ0NvbG9yU2hhZG93PTY2NjY2NiZiZ1RleHR1cmVTaGFkb3c9ZmxhdCZiZ0ltZ09wYWNpdHlTaGFkb3c9MCZvcGFjaXR5U2hhZG93PTMwJnRoaWNrbmVzc1NoYWRvdz01cHgmb2Zmc2V0VG9wU2hhZG93PTBweCZvZmZzZXRMZWZ0U2hhZG93PTBweCZjb3JuZXJSYWRpdXNTaGFkb3c9OHB4XG4qIENvcHlyaWdodCBPcGVuSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzOyBMaWNlbnNlZCBNSVQgKi9cblxuLyogTGF5b3V0IGhlbHBlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLWhlbHBlci1oaWRkZW4ge1xuXHRkaXNwbGF5OiBub25lO1xufVxuLnVpLWhlbHBlci1oaWRkZW4tYWNjZXNzaWJsZSB7XG5cdGJvcmRlcjogMDtcblx0Y2xpcDogcmVjdCgwIDAgMCAwKTtcblx0aGVpZ2h0OiAxcHg7XG5cdG1hcmdpbjogLTFweDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0cGFkZGluZzogMDtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR3aWR0aDogMXB4O1xufVxuLnVpLWhlbHBlci1yZXNldCB7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblx0Ym9yZGVyOiAwO1xuXHRvdXRsaW5lOiAwO1xuXHRsaW5lLWhlaWdodDogMS4zO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdGZvbnQtc2l6ZTogMTAwJTtcblx0bGlzdC1zdHlsZTogbm9uZTtcbn1cbi51aS1oZWxwZXItY2xlYXJmaXg6YmVmb3JlLFxuLnVpLWhlbHBlci1jbGVhcmZpeDphZnRlciB7XG5cdGNvbnRlbnQ6IFwiXCI7XG5cdGRpc3BsYXk6IHRhYmxlO1xuXHRib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xufVxuLnVpLWhlbHBlci1jbGVhcmZpeDphZnRlciB7XG5cdGNsZWFyOiBib3RoO1xufVxuLnVpLWhlbHBlci16Zml4IHtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdG9wYWNpdHk6IDA7XG59XG5cbi51aS1mcm9udCB7XG5cdHotaW5kZXg6IDEwMDtcbn1cblxuXG4vKiBJbnRlcmFjdGlvbiBDdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS1zdGF0ZS1kaXNhYmxlZCB7XG5cdGN1cnNvcjogZGVmYXVsdCAhaW1wb3J0YW50O1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuXG4vKiBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWktaWNvbiB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0bWFyZ2luLXRvcDogLS4yNWVtO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHRleHQtaW5kZW50OiAtOTk5OTlweDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cblxuLnVpLXdpZGdldC1pY29uLWJsb2NrIHtcblx0bGVmdDogNTAlO1xuXHRtYXJnaW4tbGVmdDogLThweDtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi8qIE1pc2MgdmlzdWFsc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIE92ZXJsYXlzICovXG4udWktd2lkZ2V0LW92ZXJsYXkge1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcbn1cbi51aS1hY2NvcmRpb24gLnVpLWFjY29yZGlvbi1oZWFkZXIge1xuXHRkaXNwbGF5OiBibG9jaztcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG1hcmdpbjogMnB4IDAgMCAwO1xuXHRwYWRkaW5nOiAuNWVtIC41ZW0gLjVlbSAuN2VtO1xuXHRmb250LXNpemU6IDEwMCU7XG59XG4udWktYWNjb3JkaW9uIC51aS1hY2NvcmRpb24tY29udGVudCB7XG5cdHBhZGRpbmc6IDFlbSAyLjJlbTtcblx0Ym9yZGVyLXRvcDogMDtcblx0b3ZlcmZsb3c6IGF1dG87XG59XG4udWktYXV0b2NvbXBsZXRlIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cbi51aS1tZW51IHtcblx0bGlzdC1zdHlsZTogbm9uZTtcblx0cGFkZGluZzogMDtcblx0bWFyZ2luOiAwO1xuXHRkaXNwbGF5OiBibG9jaztcblx0b3V0bGluZTogMDtcbn1cbi51aS1tZW51IC51aS1tZW51IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xufVxuLnVpLW1lbnUgLnVpLW1lbnUtaXRlbSB7XG5cdG1hcmdpbjogMDtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuLnVpLW1lbnUgLnVpLW1lbnUtaXRlbS13cmFwcGVyIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRwYWRkaW5nOiAzcHggMWVtIDNweCAuNGVtO1xufVxuLnVpLW1lbnUgLnVpLW1lbnUtZGl2aWRlciB7XG5cdG1hcmdpbjogNXB4IDA7XG5cdGhlaWdodDogMDtcblx0Zm9udC1zaXplOiAwO1xuXHRsaW5lLWhlaWdodDogMDtcblx0Ym9yZGVyLXdpZHRoOiAxcHggMCAwIDA7XG59XG4udWktbWVudSAudWktc3RhdGUtZm9jdXMsXG4udWktbWVudSAudWktc3RhdGUtYWN0aXZlIHtcblx0bWFyZ2luOiAtMXB4O1xufVxuXG4vKiBpY29uIHN1cHBvcnQgKi9cbi51aS1tZW51LWljb25zIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnVpLW1lbnUtaWNvbnMgLnVpLW1lbnUtaXRlbS13cmFwcGVyIHtcblx0cGFkZGluZy1sZWZ0OiAyZW07XG59XG5cbi8qIGxlZnQtYWxpZ25lZCAqL1xuLnVpLW1lbnUgLnVpLWljb24ge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0Ym90dG9tOiAwO1xuXHRsZWZ0OiAuMmVtO1xuXHRtYXJnaW46IGF1dG8gMDtcbn1cblxuLyogcmlnaHQtYWxpZ25lZCAqL1xuLnVpLW1lbnUgLnVpLW1lbnUtaWNvbiB7XG5cdGxlZnQ6IGF1dG87XG5cdHJpZ2h0OiAwO1xufVxuLnVpLWJ1dHRvbiB7XG5cdHBhZGRpbmc6IC40ZW0gMWVtO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcblx0bWFyZ2luLXJpZ2h0OiAuMWVtO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi51aS1idXR0b24sXG4udWktYnV0dG9uOmxpbmssXG4udWktYnV0dG9uOnZpc2l0ZWQsXG4udWktYnV0dG9uOmhvdmVyLFxuLnVpLWJ1dHRvbjphY3RpdmUge1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi8qIHRvIG1ha2Ugcm9vbSBmb3IgdGhlIGljb24sIGEgd2lkdGggbmVlZHMgdG8gYmUgc2V0IGhlcmUgKi9cbi51aS1idXR0b24taWNvbi1vbmx5IHtcblx0d2lkdGg6IDJlbTtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0dGV4dC1pbmRlbnQ6IC05OTk5cHg7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8qIG5vIGljb24gc3VwcG9ydCBmb3IgaW5wdXQgZWxlbWVudHMgKi9cbmlucHV0LnVpLWJ1dHRvbi51aS1idXR0b24taWNvbi1vbmx5IHtcblx0dGV4dC1pbmRlbnQ6IDA7XG59XG5cbi8qIGJ1dHRvbiBpY29uIGVsZW1lbnQocykgKi9cbi51aS1idXR0b24taWNvbi1vbmx5IC51aS1pY29uIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDUwJTtcblx0bGVmdDogNTAlO1xuXHRtYXJnaW4tdG9wOiAtOHB4O1xuXHRtYXJnaW4tbGVmdDogLThweDtcbn1cblxuLnVpLWJ1dHRvbi51aS1pY29uLW5vdGV4dCAudWktaWNvbiB7XG5cdHBhZGRpbmc6IDA7XG5cdHdpZHRoOiAyLjFlbTtcblx0aGVpZ2h0OiAyLjFlbTtcblx0dGV4dC1pbmRlbnQ6IC05OTk5cHg7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbn1cblxuaW5wdXQudWktYnV0dG9uLnVpLWljb24tbm90ZXh0IC51aS1pY29uIHtcblx0d2lkdGg6IGF1dG87XG5cdGhlaWdodDogYXV0bztcblx0dGV4dC1pbmRlbnQ6IDA7XG5cdHdoaXRlLXNwYWNlOiBub3JtYWw7XG5cdHBhZGRpbmc6IC40ZW0gMWVtO1xufVxuXG4vKiB3b3JrYXJvdW5kcyAqL1xuLyogU3VwcG9ydDogRmlyZWZveCA1IC0gMTI1KyAqL1xuaW5wdXQudWktYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuYnV0dG9uLnVpLWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG5cdGJvcmRlcjogMDtcblx0cGFkZGluZzogMDtcbn1cbi51aS1jb250cm9sZ3JvdXAge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4udWktY29udHJvbGdyb3VwID4gLnVpLWNvbnRyb2xncm91cC1pdGVtIHtcblx0ZmxvYXQ6IGxlZnQ7XG5cdG1hcmdpbi1sZWZ0OiAwO1xuXHRtYXJnaW4tcmlnaHQ6IDA7XG59XG4udWktY29udHJvbGdyb3VwID4gLnVpLWNvbnRyb2xncm91cC1pdGVtOmZvY3VzLFxuLnVpLWNvbnRyb2xncm91cCA+IC51aS1jb250cm9sZ3JvdXAtaXRlbS51aS12aXN1YWwtZm9jdXMge1xuXHR6LWluZGV4OiA5OTk5O1xufVxuLnVpLWNvbnRyb2xncm91cC12ZXJ0aWNhbCA+IC51aS1jb250cm9sZ3JvdXAtaXRlbSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRmbG9hdDogbm9uZTtcblx0d2lkdGg6IDEwMCU7XG5cdG1hcmdpbi10b3A6IDA7XG5cdG1hcmdpbi1ib3R0b206IDA7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG59XG4udWktY29udHJvbGdyb3VwLXZlcnRpY2FsIC51aS1jb250cm9sZ3JvdXAtaXRlbSB7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4udWktY29udHJvbGdyb3VwIC51aS1jb250cm9sZ3JvdXAtbGFiZWwge1xuXHRwYWRkaW5nOiAuNGVtIDFlbTtcbn1cbi51aS1jb250cm9sZ3JvdXAgLnVpLWNvbnRyb2xncm91cC1sYWJlbCBzcGFuIHtcblx0Zm9udC1zaXplOiA4MCU7XG59XG4udWktY29udHJvbGdyb3VwLWhvcml6b250YWwgLnVpLWNvbnRyb2xncm91cC1sYWJlbCArIC51aS1jb250cm9sZ3JvdXAtaXRlbSB7XG5cdGJvcmRlci1sZWZ0OiBub25lO1xufVxuLnVpLWNvbnRyb2xncm91cC12ZXJ0aWNhbCAudWktY29udHJvbGdyb3VwLWxhYmVsICsgLnVpLWNvbnRyb2xncm91cC1pdGVtIHtcblx0Ym9yZGVyLXRvcDogbm9uZTtcbn1cbi51aS1jb250cm9sZ3JvdXAtaG9yaXpvbnRhbCAudWktY29udHJvbGdyb3VwLWxhYmVsLnVpLXdpZGdldC1jb250ZW50IHtcblx0Ym9yZGVyLXJpZ2h0OiBub25lO1xufVxuLnVpLWNvbnRyb2xncm91cC12ZXJ0aWNhbCAudWktY29udHJvbGdyb3VwLWxhYmVsLnVpLXdpZGdldC1jb250ZW50IHtcblx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuLyogU3Bpbm5lciBzcGVjaWZpYyBzdHlsZSBmaXhlcyAqL1xuLnVpLWNvbnRyb2xncm91cC12ZXJ0aWNhbCAudWktc3Bpbm5lci1pbnB1dCB7XG5cdHdpZHRoOiBjYWxjKCAxMDAlIC0gMi40ZW0gKTtcbn1cbi51aS1jb250cm9sZ3JvdXAtdmVydGljYWwgLnVpLXNwaW5uZXIgLnVpLXNwaW5uZXItdXAge1xuXHRib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbn1cblxuLnVpLWNoZWNrYm94cmFkaW8tbGFiZWwgLnVpLWljb24tYmFja2dyb3VuZCB7XG5cdGJveC1zaGFkb3c6IGluc2V0IDFweCAxcHggMXB4ICNjY2M7XG5cdGJvcmRlci1yYWRpdXM6IC4xMmVtO1xuXHRib3JkZXI6IG5vbmU7XG59XG4udWktY2hlY2tib3hyYWRpby1yYWRpby1sYWJlbCAudWktaWNvbi1iYWNrZ3JvdW5kIHtcblx0d2lkdGg6IDE2cHg7XG5cdGhlaWdodDogMTZweDtcblx0Ym9yZGVyLXJhZGl1czogMWVtO1xuXHRvdmVyZmxvdzogdmlzaWJsZTtcblx0Ym9yZGVyOiBub25lO1xufVxuLnVpLWNoZWNrYm94cmFkaW8tcmFkaW8tbGFiZWwudWktY2hlY2tib3hyYWRpby1jaGVja2VkIC51aS1pY29uLFxuLnVpLWNoZWNrYm94cmFkaW8tcmFkaW8tbGFiZWwudWktY2hlY2tib3hyYWRpby1jaGVja2VkOmhvdmVyIC51aS1pY29uIHtcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZTtcblx0d2lkdGg6IDhweDtcblx0aGVpZ2h0OiA4cHg7XG5cdGJvcmRlci13aWR0aDogNHB4O1xuXHRib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuLnVpLWNoZWNrYm94cmFkaW8tZGlzYWJsZWQge1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi51aS1kYXRlcGlja2VyIHtcblx0d2lkdGg6IDE3ZW07XG5cdHBhZGRpbmc6IC4yZW0gLjJlbSAwO1xuXHRkaXNwbGF5OiBub25lO1xufVxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItaGVhZGVyIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRwYWRkaW5nOiAuMmVtIDA7XG59XG4udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1wcmV2LFxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAycHg7XG5cdHdpZHRoOiAxLjhlbTtcblx0aGVpZ2h0OiAxLjhlbTtcbn1cbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXByZXYtaG92ZXIsXG4udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1uZXh0LWhvdmVyIHtcblx0dG9wOiAxcHg7XG59XG4udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1wcmV2IHtcblx0bGVmdDogMnB4O1xufVxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dCB7XG5cdHJpZ2h0OiAycHg7XG59XG4udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1wcmV2LWhvdmVyIHtcblx0bGVmdDogMXB4O1xufVxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dC1ob3ZlciB7XG5cdHJpZ2h0OiAxcHg7XG59XG4udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1wcmV2IHNwYW4sXG4udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1uZXh0IHNwYW4ge1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiA1MCU7XG5cdG1hcmdpbi1sZWZ0OiAtOHB4O1xuXHR0b3A6IDUwJTtcblx0bWFyZ2luLXRvcDogLThweDtcbn1cbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXRpdGxlIHtcblx0bWFyZ2luOiAwIDIuM2VtO1xuXHRsaW5lLWhlaWdodDogMS44ZW07XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXRpdGxlIHNlbGVjdCB7XG5cdGZvbnQtc2l6ZTogMWVtO1xuXHRtYXJnaW46IDFweCAwO1xufVxuLnVpLWRhdGVwaWNrZXIgc2VsZWN0LnVpLWRhdGVwaWNrZXItbW9udGgsXG4udWktZGF0ZXBpY2tlciBzZWxlY3QudWktZGF0ZXBpY2tlci15ZWFyIHtcblx0d2lkdGg6IDQ1JTtcbn1cbi51aS1kYXRlcGlja2VyIHRhYmxlIHtcblx0d2lkdGg6IDEwMCU7XG5cdGZvbnQtc2l6ZTogLjllbTtcblx0Ym9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcblx0bWFyZ2luOiAwIDAgLjRlbTtcbn1cbi51aS1kYXRlcGlja2VyIHRoIHtcblx0cGFkZGluZzogLjdlbSAuM2VtO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRib3JkZXI6IDA7XG59XG4udWktZGF0ZXBpY2tlciB0ZCB7XG5cdGJvcmRlcjogMDtcblx0cGFkZGluZzogMXB4O1xufVxuLnVpLWRhdGVwaWNrZXIgdGQgc3Bhbixcbi51aS1kYXRlcGlja2VyIHRkIGEge1xuXHRkaXNwbGF5OiBibG9jaztcblx0cGFkZGluZzogLjJlbTtcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUge1xuXHRiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuXHRtYXJnaW46IC43ZW0gMCAwIDA7XG5cdHBhZGRpbmc6IDAgLjJlbTtcblx0Ym9yZGVyLWxlZnQ6IDA7XG5cdGJvcmRlci1yaWdodDogMDtcblx0Ym9yZGVyLWJvdHRvbTogMDtcbn1cbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUgYnV0dG9uIHtcblx0ZmxvYXQ6IHJpZ2h0O1xuXHRtYXJnaW46IC41ZW0gLjJlbSAuNGVtO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdHBhZGRpbmc6IC4yZW0gLjZlbSAuM2VtIC42ZW07XG5cdHdpZHRoOiBhdXRvO1xuXHRvdmVyZmxvdzogdmlzaWJsZTtcbn1cbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUgYnV0dG9uLnVpLWRhdGVwaWNrZXItY3VycmVudCB7XG5cdGZsb2F0OiBsZWZ0O1xufVxuXG4vKiB3aXRoIG11bHRpcGxlIGNhbGVuZGFycyAqL1xuLnVpLWRhdGVwaWNrZXIudWktZGF0ZXBpY2tlci1tdWx0aSB7XG5cdHdpZHRoOiBhdXRvO1xufVxuLnVpLWRhdGVwaWNrZXItbXVsdGkgLnVpLWRhdGVwaWNrZXItZ3JvdXAge1xuXHRmbG9hdDogbGVmdDtcbn1cbi51aS1kYXRlcGlja2VyLW11bHRpIC51aS1kYXRlcGlja2VyLWdyb3VwIHRhYmxlIHtcblx0d2lkdGg6IDk1JTtcblx0bWFyZ2luOiAwIGF1dG8gLjRlbTtcbn1cbi51aS1kYXRlcGlja2VyLW11bHRpLTIgLnVpLWRhdGVwaWNrZXItZ3JvdXAge1xuXHR3aWR0aDogNTAlO1xufVxuLnVpLWRhdGVwaWNrZXItbXVsdGktMyAudWktZGF0ZXBpY2tlci1ncm91cCB7XG5cdHdpZHRoOiAzMy4zJTtcbn1cbi51aS1kYXRlcGlja2VyLW11bHRpLTQgLnVpLWRhdGVwaWNrZXItZ3JvdXAge1xuXHR3aWR0aDogMjUlO1xufVxuLnVpLWRhdGVwaWNrZXItbXVsdGkgLnVpLWRhdGVwaWNrZXItZ3JvdXAtbGFzdCAudWktZGF0ZXBpY2tlci1oZWFkZXIsXG4udWktZGF0ZXBpY2tlci1tdWx0aSAudWktZGF0ZXBpY2tlci1ncm91cC1taWRkbGUgLnVpLWRhdGVwaWNrZXItaGVhZGVyIHtcblx0Ym9yZGVyLWxlZnQtd2lkdGg6IDA7XG59XG4udWktZGF0ZXBpY2tlci1tdWx0aSAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIHtcblx0Y2xlYXI6IGxlZnQ7XG59XG4udWktZGF0ZXBpY2tlci1yb3ctYnJlYWsge1xuXHRjbGVhcjogYm90aDtcblx0d2lkdGg6IDEwMCU7XG5cdGZvbnQtc2l6ZTogMDtcbn1cblxuLyogUlRMIHN1cHBvcnQgKi9cbi51aS1kYXRlcGlja2VyLXJ0bCB7XG5cdGRpcmVjdGlvbjogcnRsO1xufVxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLXByZXYge1xuXHRyaWdodDogMnB4O1xuXHRsZWZ0OiBhdXRvO1xufVxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLW5leHQge1xuXHRsZWZ0OiAycHg7XG5cdHJpZ2h0OiBhdXRvO1xufVxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLXByZXY6aG92ZXIge1xuXHRyaWdodDogMXB4O1xuXHRsZWZ0OiBhdXRvO1xufVxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLW5leHQ6aG92ZXIge1xuXHRsZWZ0OiAxcHg7XG5cdHJpZ2h0OiBhdXRvO1xufVxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUge1xuXHRjbGVhcjogcmlnaHQ7XG59XG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSBidXR0b24ge1xuXHRmbG9hdDogbGVmdDtcbn1cbi51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIGJ1dHRvbi51aS1kYXRlcGlja2VyLWN1cnJlbnQsXG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItZ3JvdXAge1xuXHRmbG9hdDogcmlnaHQ7XG59XG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItZ3JvdXAtbGFzdCAudWktZGF0ZXBpY2tlci1oZWFkZXIsXG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItZ3JvdXAtbWlkZGxlIC51aS1kYXRlcGlja2VyLWhlYWRlciB7XG5cdGJvcmRlci1yaWdodC13aWR0aDogMDtcblx0Ym9yZGVyLWxlZnQtd2lkdGg6IDFweDtcbn1cblxuLyogSWNvbnMgKi9cbi51aS1kYXRlcGlja2VyIC51aS1pY29uIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHRleHQtaW5kZW50OiAtOTk5OTlweDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0bGVmdDogLjVlbTtcblx0dG9wOiAuM2VtO1xufVxuLnVpLWRpYWxvZyB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHRwYWRkaW5nOiAuMmVtO1xuXHRvdXRsaW5lOiAwO1xufVxuLnVpLWRpYWxvZyAudWktZGlhbG9nLXRpdGxlYmFyIHtcblx0cGFkZGluZzogLjRlbSAxZW07XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi51aS1kaWFsb2cgLnVpLWRpYWxvZy10aXRsZSB7XG5cdGZsb2F0OiBsZWZ0O1xuXHRtYXJnaW46IC4xZW0gMDtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0d2lkdGg6IDkwJTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4udWktZGlhbG9nIC51aS1kaWFsb2ctdGl0bGViYXItY2xvc2Uge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHJpZ2h0OiAuM2VtO1xuXHR0b3A6IDUwJTtcblx0d2lkdGg6IDIwcHg7XG5cdG1hcmdpbjogLTEwcHggMCAwIDA7XG5cdHBhZGRpbmc6IDFweDtcblx0aGVpZ2h0OiAyMHB4O1xufVxuLnVpLWRpYWxvZyAudWktZGlhbG9nLWNvbnRlbnQge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGJvcmRlcjogMDtcblx0cGFkZGluZzogLjVlbSAxZW07XG5cdGJhY2tncm91bmQ6IG5vbmU7XG5cdG92ZXJmbG93OiBhdXRvO1xufVxuLnVpLWRpYWxvZyAudWktZGlhbG9nLWJ1dHRvbnBhbmUge1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRib3JkZXItd2lkdGg6IDFweCAwIDAgMDtcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZTtcblx0bWFyZ2luLXRvcDogLjVlbTtcblx0cGFkZGluZzogLjNlbSAxZW0gLjVlbSAuNGVtO1xufVxuLnVpLWRpYWxvZyAudWktZGlhbG9nLWJ1dHRvbnBhbmUgLnVpLWRpYWxvZy1idXR0b25zZXQge1xuXHRmbG9hdDogcmlnaHQ7XG59XG4udWktZGlhbG9nIC51aS1kaWFsb2ctYnV0dG9ucGFuZSBidXR0b24ge1xuXHRtYXJnaW46IC41ZW0gLjRlbSAuNWVtIDA7XG5cdGN1cnNvcjogcG9pbnRlcjtcbn1cbi51aS1kaWFsb2cgLnVpLXJlc2l6YWJsZS1uIHtcblx0aGVpZ2h0OiAycHg7XG5cdHRvcDogMDtcbn1cbi51aS1kaWFsb2cgLnVpLXJlc2l6YWJsZS1lIHtcblx0d2lkdGg6IDJweDtcblx0cmlnaHQ6IDA7XG59XG4udWktZGlhbG9nIC51aS1yZXNpemFibGUtcyB7XG5cdGhlaWdodDogMnB4O1xuXHRib3R0b206IDA7XG59XG4udWktZGlhbG9nIC51aS1yZXNpemFibGUtdyB7XG5cdHdpZHRoOiAycHg7XG5cdGxlZnQ6IDA7XG59XG4udWktZGlhbG9nIC51aS1yZXNpemFibGUtc2UsXG4udWktZGlhbG9nIC51aS1yZXNpemFibGUtc3csXG4udWktZGlhbG9nIC51aS1yZXNpemFibGUtbmUsXG4udWktZGlhbG9nIC51aS1yZXNpemFibGUtbncge1xuXHR3aWR0aDogN3B4O1xuXHRoZWlnaHQ6IDdweDtcbn1cbi51aS1kaWFsb2cgLnVpLXJlc2l6YWJsZS1zZSB7XG5cdHJpZ2h0OiAwO1xuXHRib3R0b206IDA7XG59XG4udWktZGlhbG9nIC51aS1yZXNpemFibGUtc3cge1xuXHRsZWZ0OiAwO1xuXHRib3R0b206IDA7XG59XG4udWktZGlhbG9nIC51aS1yZXNpemFibGUtbmUge1xuXHRyaWdodDogMDtcblx0dG9wOiAwO1xufVxuLnVpLWRpYWxvZyAudWktcmVzaXphYmxlLW53IHtcblx0bGVmdDogMDtcblx0dG9wOiAwO1xufVxuLnVpLWRyYWdnYWJsZSAudWktZGlhbG9nLXRpdGxlYmFyIHtcblx0Y3Vyc29yOiBtb3ZlO1xufVxuLnVpLWRyYWdnYWJsZS1oYW5kbGUge1xuXHR0b3VjaC1hY3Rpb246IG5vbmU7XG59XG4udWktcmVzaXphYmxlIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnVpLXJlc2l6YWJsZS1oYW5kbGUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGZvbnQtc2l6ZTogMC4xcHg7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR0b3VjaC1hY3Rpb246IG5vbmU7XG59XG4udWktcmVzaXphYmxlLWRpc2FibGVkIC51aS1yZXNpemFibGUtaGFuZGxlLFxuLnVpLXJlc2l6YWJsZS1hdXRvaGlkZSAudWktcmVzaXphYmxlLWhhbmRsZSB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG4udWktcmVzaXphYmxlLW4ge1xuXHRjdXJzb3I6IG4tcmVzaXplO1xuXHRoZWlnaHQ6IDdweDtcblx0d2lkdGg6IDEwMCU7XG5cdHRvcDogLTVweDtcblx0bGVmdDogMDtcbn1cbi51aS1yZXNpemFibGUtcyB7XG5cdGN1cnNvcjogcy1yZXNpemU7XG5cdGhlaWdodDogN3B4O1xuXHR3aWR0aDogMTAwJTtcblx0Ym90dG9tOiAtNXB4O1xuXHRsZWZ0OiAwO1xufVxuLnVpLXJlc2l6YWJsZS1lIHtcblx0Y3Vyc29yOiBlLXJlc2l6ZTtcblx0d2lkdGg6IDdweDtcblx0cmlnaHQ6IC01cHg7XG5cdHRvcDogMDtcblx0aGVpZ2h0OiAxMDAlO1xufVxuLnVpLXJlc2l6YWJsZS13IHtcblx0Y3Vyc29yOiB3LXJlc2l6ZTtcblx0d2lkdGg6IDdweDtcblx0bGVmdDogLTVweDtcblx0dG9wOiAwO1xuXHRoZWlnaHQ6IDEwMCU7XG59XG4udWktcmVzaXphYmxlLXNlIHtcblx0Y3Vyc29yOiBzZS1yZXNpemU7XG5cdHdpZHRoOiAxMnB4O1xuXHRoZWlnaHQ6IDEycHg7XG5cdHJpZ2h0OiAxcHg7XG5cdGJvdHRvbTogMXB4O1xufVxuLnVpLXJlc2l6YWJsZS1zdyB7XG5cdGN1cnNvcjogc3ctcmVzaXplO1xuXHR3aWR0aDogOXB4O1xuXHRoZWlnaHQ6IDlweDtcblx0bGVmdDogLTVweDtcblx0Ym90dG9tOiAtNXB4O1xufVxuLnVpLXJlc2l6YWJsZS1udyB7XG5cdGN1cnNvcjogbnctcmVzaXplO1xuXHR3aWR0aDogOXB4O1xuXHRoZWlnaHQ6IDlweDtcblx0bGVmdDogLTVweDtcblx0dG9wOiAtNXB4O1xufVxuLnVpLXJlc2l6YWJsZS1uZSB7XG5cdGN1cnNvcjogbmUtcmVzaXplO1xuXHR3aWR0aDogOXB4O1xuXHRoZWlnaHQ6IDlweDtcblx0cmlnaHQ6IC01cHg7XG5cdHRvcDogLTVweDtcbn1cbi51aS1wcm9ncmVzc2JhciB7XG5cdGhlaWdodDogMmVtO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuLnVpLXByb2dyZXNzYmFyIC51aS1wcm9ncmVzc2Jhci12YWx1ZSB7XG5cdG1hcmdpbjogLTFweDtcblx0aGVpZ2h0OiAxMDAlO1xufVxuLnVpLXByb2dyZXNzYmFyIC51aS1wcm9ncmVzc2Jhci1vdmVybGF5IHtcblx0YmFja2dyb3VuZDogdXJsKFwiZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoS0FBb0FJQUJBQUFBQVAvLy95SC9DMDVGVkZORFFWQkZNaTR3QXdFQUFBQWgrUVFKQVFBQkFDd0FBQUFBS0FBb0FBQUNrWXdOcVhyZEM1MkRTMDZhN01GWkkrNEZIQkNLb0RlV0tYcXltUHFHcXh2SnJYWmJNeDdUdGMrdzlYZ1UyRkIzbE95UVJXRVQySUZHaVU5bTFmckRWcHhaWmM2YmZId3Y0YzFZWFA2azFWZHkyOTJGYjZVa3V2RnRYcHZXU3pBK0h5Y1hKSFVYaUdZSWlNZzJSNlc0NTlnbldHZkhOZGpJcURXVnFlbUgyZWtwT2JrcE9scHBXVXFaaXFyNmVkcXFXUUFBSWZrRUNRRUFBUUFzQUFBQUFDZ0FLQUFBQXBTTWdabkdmYXFjZzFFMnV1ekRtbUhVQlI4UWlsOTVoaVBLcVduM2FxdExzUzE4eTdHMVN6TmVvd1dCRU50UWQrVDFKa3RQMDVuelBUZEpabFI2dlV4TldXalYrdlVXaFdOa1dGd3hsOVZwWlJlZFljZmxJT0xhZmFhMjhYZHNIL3lubGNjMXVQVkRaeFFJUjBLMjUrY0lDQ21vcUNlNW1HaFpPZmVZU1VoNXlKY0p5cmtaV1dwYVI4ZG9KMm80TllxNjJsQUFBQ0g1QkFrQkFBRUFMQUFBQUFBb0FDZ0FBQUtWREk0WXkyMlpuSU5STnFvc3cwQnY3aTFneUhVa0ZqN29TYVdsdTNvdkM4R3hOc281Zmx1ejNxTFZoQlZlVC9MejdaVEh5eEw1ZERhbFFXUFZPc1FXdFJudXdYYUZUajlqVlZoOHBtYTlKalo0ellTajVaT3ltYTd1dW9sZmZoK0lSNWFXOTdjSHVCVVhLR0tYbEtqbitEaUhXTWNZSmFoNE4wbFlDTWxKT1hpcEdScjVxZGdvU1RycVdTcTZXRmwyeXBvYVVBQUFJZmtFQ1FFQUFRQXNBQUFBQUNnQUtBQUFBcGFFYjZITGdkL2lPN0ZOV3RjRldlK3VmT0RHalJmb2lKMmFrU2hidWViMHd0STUwem0wMnBidndmV0VNV0JRMXpLR2xMSWhza2lFUG05UjZ2Ulh4VjRaeldUMnlIT0dwV015b3JibEtsTnA4SG1IRWIvbENYamNXN2JtdFhQOFh0MjI5T1ZXUjFmb2QyZVdxTmZIdU1qWENQa0lHTmlsZU9pSW1WbUNPRW1vU2ZuM3lYbEpXbW9IR2hxcDZpbFl1V1lwbVRxS1VnQUFJZmtFQ1FFQUFRQXNBQUFBQUNnQUtBQUFBcGlFSDZrYjU4YmlRM0ZOV3RNRldXM2VOVmNvanVGR2ZxblpxU2VidVMwNnc1VjgwL1gwMnBLZTh6RndQNkVGV09UMWxERms4ckdFUmgxVFROT29jUTYxSG00WG0yVmV4VUhwemp5bVZpSHJGYmlFTHNlZlZybjZYS2ZudDJROUcvK1hkaWU0OTlYSGQyZzRoN2lvT0doWEdKYm9HQW5YU0Jub0J3S1l5ZmlvdWJaSjJIbjBSdVJaYWZsWk9pbDU2WnA2aWlvS1NYcFVBQUFoK1FRSkFRQUJBQ3dBQUFBQUtBQW9BQUFDa29RUnFSdm54dUk3a1UxYTFVVTViZDV0blNlT1pYaG1uNWxXSzNxTlRXdlJkUXhQOHF2YUMrL3lhWVF6WE83Qk12YVVFbUpSZDNUc2lNQWdzd21OWXJTZ1pkWXJUWDZ0U0hHWk83M2V6dUF3MnV4dVErQmJlWmZNeHNleFkzNSsvUWU0SjFpblYwZzR4M1dIdU1oSWwyalhPS1QyUStWVTVmZ29TVUk1MlZmWnlma0pHa2hhNmptWSthYVlkaXJxK2xRQUFDSDVCQWtCQUFFQUxBQUFBQUFvQUNnQUFBS1dCSUtwWWUwTDNZTktUb3Fzd1VsdnpuaWdkNHdpUjRLaFpyS3Q5VXBxaXA2MWk5RTN2TXZ4UmRIbGJFRmlFWGZrOVlBUll4T1paRDZWUTJwVXVuQm10UlhvMUxmOGhNVlZjTmw4SmFmVjM4YU0yL0Z1NVYxNkJuNjNyNnh0OTdqMDkrTVhTRmk0Qm5pR0ZhZTNoemJIOStoWUJ6a3B1VWg1YVptSHVhblpPWmdJdXZiR2lOZW9tQ25heHhhcDJ1cGFDWnNxKzFrQUFDSDVCQWtCQUFFQUxBQUFBQUFvQUNnQUFBS1hqSThCeTV6ZjRrT3hUVnJYTlZsdjFYMGQ4SUdaR0tMbk5wWXRtOExyOWNxVmV1T1N2Zk9XNzlEOWFESGl6TmhESmlkRlpoTnlkRWFoT2FESDZub210SmpwMXR1dEtvTldrdkE2SnFmUlZMSFUvUVVmYXU5bDJ4N0c1NGQxZmw5OTV4Y0lHQWRYcU1mQk5hZG9ZcmhIK01nMktCbHBWcGJsdUNpWG1NbloyU2g0R0JxSitja0lPcXFKNkxtS1NsbFptc29xNndwUUFBQWgrUVFKQVFBQkFDd0FBQUFBS0FBb0FBQUNsWXgvb0x2b3h1SkRrVTFhMVlVWmJKNTluU2QyWlhoV3FiUmEyL2dGOEd1MkRZM2lxczd5cnEreEJZRWtZdkZTTThhU1NPYkUrWmdSbDFCSEZaTnI3cFJDYXZaNUJXMjE0MmhZM0FOL3pXdHNtZjEycDlYeHhGbDJscExuMXJzZXp0ZlhaamRJV0lmMnM1ZEl0d2pZS0Jnbzl5ZzVwSGd6SlhURWVHbFp1ZW5weVBtcEdRb0tPV2tZbVNwYVNucUtpbGVJMkZBQUFDSDVCQWtCQUFFQUxBQUFBQUFvQUNnQUFBS1ZqQitndStqRzRrT1JUVnJWaFJsc25uMmRKM1psZUZhcHRGcmIrQ1htTzlPb3plTDVWZlA5OUh2QVdocGlVZGN3a3BCSDM4MjVBd1lkVTh4VHFsTEdodENvc0FyS01wdmZhMW1NUmFlOVZ2V1pmZUIyWGZQa2VMbW0xOGxVY0JqK3A1ZG5OOGpYWjNZSUdFaFl1T1VuNDVhb0NEa3AxNmhsNUlqWUp2aldLY25vR1FwcXlQbHBPaHIzYUVsYXFycTU2QnE3VkFBQU93PT1cIik7XG5cdGhlaWdodDogMTAwJTtcblx0b3BhY2l0eTogMC4yNTtcbn1cbi51aS1wcm9ncmVzc2Jhci1pbmRldGVybWluYXRlIC51aS1wcm9ncmVzc2Jhci12YWx1ZSB7XG5cdGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4udWktc2VsZWN0YWJsZSB7XG5cdHRvdWNoLWFjdGlvbjogbm9uZTtcbn1cbi51aS1zZWxlY3RhYmxlLWhlbHBlciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0ei1pbmRleDogMTAwO1xuXHRib3JkZXI6IDFweCBkb3R0ZWQgYmxhY2s7XG59XG4udWktc2VsZWN0bWVudS1tZW51IHtcblx0cGFkZGluZzogMDtcblx0bWFyZ2luOiAwO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0ZGlzcGxheTogbm9uZTtcbn1cbi51aS1zZWxlY3RtZW51LW1lbnUgLnVpLW1lbnUge1xuXHRvdmVyZmxvdzogYXV0bztcblx0b3ZlcmZsb3cteDogaGlkZGVuO1xuXHRwYWRkaW5nLWJvdHRvbTogMXB4O1xufVxuLnVpLXNlbGVjdG1lbnUtbWVudSAudWktbWVudSAudWktc2VsZWN0bWVudS1vcHRncm91cCB7XG5cdGZvbnQtc2l6ZTogMWVtO1xuXHRmb250LXdlaWdodDogYm9sZDtcblx0bGluZS1oZWlnaHQ6IDEuNTtcblx0cGFkZGluZzogMnB4IDAuNGVtO1xuXHRtYXJnaW46IDAuNWVtIDAgMCAwO1xuXHRoZWlnaHQ6IGF1dG87XG5cdGJvcmRlcjogMDtcbn1cbi51aS1zZWxlY3RtZW51LW9wZW4ge1xuXHRkaXNwbGF5OiBibG9jaztcbn1cbi51aS1zZWxlY3RtZW51LXRleHQge1xuXHRkaXNwbGF5OiBibG9jaztcblx0bWFyZ2luLXJpZ2h0OiAyMHB4O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbi51aS1zZWxlY3RtZW51LWJ1dHRvbi51aS1idXR0b24ge1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHR3aWR0aDogMTRlbTtcbn1cbi51aS1zZWxlY3RtZW51LWljb24udWktaWNvbiB7XG5cdGZsb2F0OiByaWdodDtcblx0bWFyZ2luLXRvcDogMDtcbn1cbi51aS1zbGlkZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG59XG4udWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiAyO1xuXHR3aWR0aDogMS4yZW07XG5cdGhlaWdodDogMS4yZW07XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0dG91Y2gtYWN0aW9uOiBub25lO1xufVxuLnVpLXNsaWRlciAudWktc2xpZGVyLXJhbmdlIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiAxO1xuXHRmb250LXNpemU6IC43ZW07XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRib3JkZXI6IDA7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IDAgMDtcbn1cblxuLnVpLXNsaWRlci1ob3Jpem9udGFsIHtcblx0aGVpZ2h0OiAuOGVtO1xufVxuLnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItaGFuZGxlIHtcblx0dG9wOiAtLjNlbTtcblx0bWFyZ2luLWxlZnQ6IC0uNmVtO1xufVxuLnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItcmFuZ2Uge1xuXHR0b3A6IDA7XG5cdGhlaWdodDogMTAwJTtcbn1cbi51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLXJhbmdlLW1pbiB7XG5cdGxlZnQ6IDA7XG59XG4udWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1yYW5nZS1tYXgge1xuXHRyaWdodDogMDtcbn1cblxuLnVpLXNsaWRlci12ZXJ0aWNhbCB7XG5cdHdpZHRoOiAuOGVtO1xuXHRoZWlnaHQ6IDEwMHB4O1xufVxuLnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLWhhbmRsZSB7XG5cdGxlZnQ6IC0uM2VtO1xuXHRtYXJnaW4tbGVmdDogMDtcblx0bWFyZ2luLWJvdHRvbTogLS42ZW07XG59XG4udWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItcmFuZ2Uge1xuXHRsZWZ0OiAwO1xuXHR3aWR0aDogMTAwJTtcbn1cbi51aS1zbGlkZXItdmVydGljYWwgLnVpLXNsaWRlci1yYW5nZS1taW4ge1xuXHRib3R0b206IDA7XG59XG4udWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItcmFuZ2UtbWF4IHtcblx0dG9wOiAwO1xufVxuLnVpLXNvcnRhYmxlLWhhbmRsZSB7XG5cdHRvdWNoLWFjdGlvbjogbm9uZTtcbn1cbi51aS1zcGlubmVyIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHBhZGRpbmc6IDA7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4udWktc3Bpbm5lci1pbnB1dCB7XG5cdGJvcmRlcjogbm9uZTtcblx0YmFja2dyb3VuZDogbm9uZTtcblx0Y29sb3I6IGluaGVyaXQ7XG5cdHBhZGRpbmc6IC4yMjJlbSAwO1xuXHRtYXJnaW46IC4yZW0gMDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0bWFyZ2luLWxlZnQ6IC40ZW07XG5cdG1hcmdpbi1yaWdodDogMmVtO1xufVxuLnVpLXNwaW5uZXItYnV0dG9uIHtcblx0d2lkdGg6IDEuNmVtO1xuXHRoZWlnaHQ6IDUwJTtcblx0Zm9udC1zaXplOiAuNWVtO1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IDA7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRyaWdodDogMDtcbn1cbi8qIG1vcmUgc3BlY2lmaWNpdHkgcmVxdWlyZWQgaGVyZSB0byBvdmVycmlkZSBkZWZhdWx0IGJvcmRlcnMgKi9cbi51aS1zcGlubmVyIGEudWktc3Bpbm5lci1idXR0b24ge1xuXHRib3JkZXItdG9wLXN0eWxlOiBub25lO1xuXHRib3JkZXItYm90dG9tLXN0eWxlOiBub25lO1xuXHRib3JkZXItcmlnaHQtc3R5bGU6IG5vbmU7XG59XG4udWktc3Bpbm5lci11cCB7XG5cdHRvcDogMDtcbn1cbi51aS1zcGlubmVyLWRvd24ge1xuXHRib3R0b206IDA7XG59XG4udWktdGFicyB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTsvKiBwb3NpdGlvbjogcmVsYXRpdmUgcHJldmVudHMgSUUgc2Nyb2xsIGJ1ZyAoZWxlbWVudCB3aXRoIHBvc2l0aW9uOiByZWxhdGl2ZSBpbnNpZGUgY29udGFpbmVyIHdpdGggb3ZlcmZsb3c6IGF1dG8gYXBwZWFyIGFzIFwiZml4ZWRcIikgKi9cblx0cGFkZGluZzogLjJlbTtcbn1cbi51aS10YWJzIC51aS10YWJzLW5hdiB7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogLjJlbSAuMmVtIDA7XG59XG4udWktdGFicyAudWktdGFicy1uYXYgbGkge1xuXHRsaXN0LXN0eWxlOiBub25lO1xuXHRmbG9hdDogbGVmdDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR0b3A6IDA7XG5cdG1hcmdpbjogMXB4IC4yZW0gMCAwO1xuXHRib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnVpLXRhYnMgLnVpLXRhYnMtbmF2IC51aS10YWJzLWFuY2hvciB7XG5cdGZsb2F0OiBsZWZ0O1xuXHRwYWRkaW5nOiAuNWVtIDFlbTtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLnVpLXRhYnMgLnVpLXRhYnMtbmF2IGxpLnVpLXRhYnMtYWN0aXZlIHtcblx0bWFyZ2luLWJvdHRvbTogLTFweDtcblx0cGFkZGluZy1ib3R0b206IDFweDtcbn1cbi51aS10YWJzIC51aS10YWJzLW5hdiBsaS51aS10YWJzLWFjdGl2ZSAudWktdGFicy1hbmNob3IsXG4udWktdGFicyAudWktdGFicy1uYXYgbGkudWktc3RhdGUtZGlzYWJsZWQgLnVpLXRhYnMtYW5jaG9yLFxuLnVpLXRhYnMgLnVpLXRhYnMtbmF2IGxpLnVpLXRhYnMtbG9hZGluZyAudWktdGFicy1hbmNob3Ige1xuXHRjdXJzb3I6IHRleHQ7XG59XG4udWktdGFicy1jb2xsYXBzaWJsZSAudWktdGFicy1uYXYgbGkudWktdGFicy1hY3RpdmUgLnVpLXRhYnMtYW5jaG9yIHtcblx0Y3Vyc29yOiBwb2ludGVyO1xufVxuLnVpLXRhYnMgLnVpLXRhYnMtcGFuZWwge1xuXHRkaXNwbGF5OiBibG9jaztcblx0Ym9yZGVyLXdpZHRoOiAwO1xuXHRwYWRkaW5nOiAxZW0gMS40ZW07XG5cdGJhY2tncm91bmQ6IG5vbmU7XG59XG4udWktdG9vbHRpcCB7XG5cdHBhZGRpbmc6IDhweDtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiA5OTk5O1xuXHRtYXgtd2lkdGg6IDMwMHB4O1xufVxuYm9keSAudWktdG9vbHRpcCB7XG5cdGJvcmRlci13aWR0aDogMnB4O1xufVxuLyogQ29tcG9uZW50IGNvbnRhaW5lcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLXdpZGdldCB7XG5cdGZvbnQtZmFtaWx5OiBBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtcblx0Zm9udC1zaXplOiAxZW07XG59XG4udWktd2lkZ2V0IC51aS13aWRnZXQge1xuXHRmb250LXNpemU6IDFlbTtcbn1cbi51aS13aWRnZXQgaW5wdXQsXG4udWktd2lkZ2V0IHNlbGVjdCxcbi51aS13aWRnZXQgdGV4dGFyZWEsXG4udWktd2lkZ2V0IGJ1dHRvbiB7XG5cdGZvbnQtZmFtaWx5OiBBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjtcblx0Zm9udC1zaXplOiAxZW07XG59XG4udWktd2lkZ2V0LnVpLXdpZGdldC1jb250ZW50IHtcblx0Ym9yZGVyOiAxcHggc29saWQgI2M1YzVjNTtcbn1cbi51aS13aWRnZXQtY29udGVudCB7XG5cdGJvcmRlcjogMXB4IHNvbGlkICNkZGRkZGQ7XG5cdGJhY2tncm91bmQ6ICNmZmZmZmY7XG5cdGNvbG9yOiAjMzMzMzMzO1xufVxuLnVpLXdpZGdldC1jb250ZW50IGEge1xuXHRjb2xvcjogIzMzMzMzMztcbn1cbi51aS13aWRnZXQtaGVhZGVyIHtcblx0Ym9yZGVyOiAxcHggc29saWQgI2RkZGRkZDtcblx0YmFja2dyb3VuZDogI2U5ZTllOTtcblx0Y29sb3I6ICMzMzMzMzM7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLnVpLXdpZGdldC1oZWFkZXIgYSB7XG5cdGNvbG9yOiAjMzMzMzMzO1xufVxuXG4vKiBJbnRlcmFjdGlvbiBzdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLXN0YXRlLWRlZmF1bHQsXG4udWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWRlZmF1bHQsXG4udWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZGVmYXVsdCxcbi51aS1idXR0b24sXG5cbi8qIFdlIHVzZSBodG1sIGhlcmUgYmVjYXVzZSB3ZSBuZWVkIGEgZ3JlYXRlciBzcGVjaWZpY2l0eSB0byBtYWtlIHN1cmUgZGlzYWJsZWRcbndvcmtzIHByb3Blcmx5IHdoZW4gY2xpY2tlZCBvciBob3ZlcmVkICovXG5odG1sIC51aS1idXR0b24udWktc3RhdGUtZGlzYWJsZWQ6aG92ZXIsXG5odG1sIC51aS1idXR0b24udWktc3RhdGUtZGlzYWJsZWQ6YWN0aXZlIHtcblx0Ym9yZGVyOiAxcHggc29saWQgI2M1YzVjNTtcblx0YmFja2dyb3VuZDogI2Y2ZjZmNjtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0Y29sb3I6ICM0NTQ1NDU7XG59XG4udWktc3RhdGUtZGVmYXVsdCBhLFxuLnVpLXN0YXRlLWRlZmF1bHQgYTpsaW5rLFxuLnVpLXN0YXRlLWRlZmF1bHQgYTp2aXNpdGVkLFxuYS51aS1idXR0b24sXG5hOmxpbmsudWktYnV0dG9uLFxuYTp2aXNpdGVkLnVpLWJ1dHRvbixcbi51aS1idXR0b24ge1xuXHRjb2xvcjogIzQ1NDU0NTtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLnVpLXN0YXRlLWhvdmVyLFxuLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1ob3Zlcixcbi51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1ob3Zlcixcbi51aS1zdGF0ZS1mb2N1cyxcbi51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZm9jdXMsXG4udWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZm9jdXMsXG4udWktYnV0dG9uOmhvdmVyLFxuLnVpLWJ1dHRvbjpmb2N1cyB7XG5cdGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XG5cdGJhY2tncm91bmQ6ICNlZGVkZWQ7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdGNvbG9yOiAjMmIyYjJiO1xufVxuLnVpLXN0YXRlLWhvdmVyIGEsXG4udWktc3RhdGUtaG92ZXIgYTpob3Zlcixcbi51aS1zdGF0ZS1ob3ZlciBhOmxpbmssXG4udWktc3RhdGUtaG92ZXIgYTp2aXNpdGVkLFxuLnVpLXN0YXRlLWZvY3VzIGEsXG4udWktc3RhdGUtZm9jdXMgYTpob3Zlcixcbi51aS1zdGF0ZS1mb2N1cyBhOmxpbmssXG4udWktc3RhdGUtZm9jdXMgYTp2aXNpdGVkLFxuYS51aS1idXR0b246aG92ZXIsXG5hLnVpLWJ1dHRvbjpmb2N1cyB7XG5cdGNvbG9yOiAjMmIyYjJiO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi51aS12aXN1YWwtZm9jdXMge1xuXHRib3gtc2hhZG93OiAwIDAgM3B4IDFweCByZ2IoOTQsIDE1OCwgMjE0KTtcbn1cbi51aS1zdGF0ZS1hY3RpdmUsXG4udWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWFjdGl2ZSxcbi51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1hY3RpdmUsXG5hLnVpLWJ1dHRvbjphY3RpdmUsXG4udWktYnV0dG9uOmFjdGl2ZSxcbi51aS1idXR0b24udWktc3RhdGUtYWN0aXZlOmhvdmVyIHtcblx0Ym9yZGVyOiAxcHggc29saWQgIzAwM2VmZjtcblx0YmFja2dyb3VuZDogIzAwN2ZmZjtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0Y29sb3I6ICNmZmZmZmY7XG59XG4udWktaWNvbi1iYWNrZ3JvdW5kLFxuLnVpLXN0YXRlLWFjdGl2ZSAudWktaWNvbi1iYWNrZ3JvdW5kIHtcblx0Ym9yZGVyOiAjMDAzZWZmO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xufVxuLnVpLXN0YXRlLWFjdGl2ZSBhLFxuLnVpLXN0YXRlLWFjdGl2ZSBhOmxpbmssXG4udWktc3RhdGUtYWN0aXZlIGE6dmlzaXRlZCB7XG5cdGNvbG9yOiAjZmZmZmZmO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi8qIEludGVyYWN0aW9uIEN1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLXN0YXRlLWhpZ2hsaWdodCxcbi51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtaGlnaGxpZ2h0LFxuLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWhpZ2hsaWdodCB7XG5cdGJvcmRlcjogMXB4IHNvbGlkICNkYWQ1NWU7XG5cdGJhY2tncm91bmQ6ICNmZmZhOTA7XG5cdGNvbG9yOiAjNzc3NjIwO1xufVxuLnVpLXN0YXRlLWNoZWNrZWQge1xuXHRib3JkZXI6IDFweCBzb2xpZCAjZGFkNTVlO1xuXHRiYWNrZ3JvdW5kOiAjZmZmYTkwO1xufVxuLnVpLXN0YXRlLWhpZ2hsaWdodCBhLFxuLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1oaWdobGlnaHQgYSxcbi51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1oaWdobGlnaHQgYSB7XG5cdGNvbG9yOiAjNzc3NjIwO1xufVxuLnVpLXN0YXRlLWVycm9yLFxuLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1lcnJvcixcbi51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1lcnJvciB7XG5cdGJvcmRlcjogMXB4IHNvbGlkICNmMWE4OTk7XG5cdGJhY2tncm91bmQ6ICNmZGRmZGY7XG5cdGNvbG9yOiAjNWYzZjNmO1xufVxuLnVpLXN0YXRlLWVycm9yIGEsXG4udWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWVycm9yIGEsXG4udWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZXJyb3IgYSB7XG5cdGNvbG9yOiAjNWYzZjNmO1xufVxuLnVpLXN0YXRlLWVycm9yLXRleHQsXG4udWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWVycm9yLXRleHQsXG4udWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZXJyb3ItdGV4dCB7XG5cdGNvbG9yOiAjNWYzZjNmO1xufVxuLnVpLXByaW9yaXR5LXByaW1hcnksXG4udWktd2lkZ2V0LWNvbnRlbnQgLnVpLXByaW9yaXR5LXByaW1hcnksXG4udWktd2lkZ2V0LWhlYWRlciAudWktcHJpb3JpdHktcHJpbWFyeSB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLnVpLXByaW9yaXR5LXNlY29uZGFyeSxcbi51aS13aWRnZXQtY29udGVudCAudWktcHJpb3JpdHktc2Vjb25kYXJ5LFxuLnVpLXdpZGdldC1oZWFkZXIgLnVpLXByaW9yaXR5LXNlY29uZGFyeSB7XG5cdG9wYWNpdHk6IC43O1xuXHRmb250LXdlaWdodDogbm9ybWFsO1xufVxuLnVpLXN0YXRlLWRpc2FibGVkLFxuLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1kaXNhYmxlZCxcbi51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1kaXNhYmxlZCB7XG5cdG9wYWNpdHk6IC4zNTtcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cblxuLyogSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBzdGF0ZXMgYW5kIGltYWdlcyAqL1xuLnVpLWljb24ge1xuXHR3aWR0aDogMTZweDtcblx0aGVpZ2h0OiAxNnB4O1xufVxuLnVpLWljb24sXG4udWktd2lkZ2V0LWNvbnRlbnQgLnVpLWljb24ge1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJpbWFnZXMvdWktaWNvbnNfNDQ0NDQ0XzI1NngyNDAucG5nXCIpO1xufVxuLnVpLXdpZGdldC1oZWFkZXIgLnVpLWljb24ge1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJpbWFnZXMvdWktaWNvbnNfNDQ0NDQ0XzI1NngyNDAucG5nXCIpO1xufVxuLnVpLXN0YXRlLWhvdmVyIC51aS1pY29uLFxuLnVpLXN0YXRlLWZvY3VzIC51aS1pY29uLFxuLnVpLWJ1dHRvbjpob3ZlciAudWktaWNvbixcbi51aS1idXR0b246Zm9jdXMgLnVpLWljb24ge1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJpbWFnZXMvdWktaWNvbnNfNTU1NTU1XzI1NngyNDAucG5nXCIpO1xufVxuLnVpLXN0YXRlLWFjdGl2ZSAudWktaWNvbixcbi51aS1idXR0b246YWN0aXZlIC51aS1pY29uIHtcblx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiaW1hZ2VzL3VpLWljb25zX2ZmZmZmZl8yNTZ4MjQwLnBuZ1wiKTtcbn1cbi51aS1zdGF0ZS1oaWdobGlnaHQgLnVpLWljb24sXG4udWktYnV0dG9uIC51aS1zdGF0ZS1oaWdobGlnaHQudWktaWNvbiB7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImltYWdlcy91aS1pY29uc183Nzc2MjBfMjU2eDI0MC5wbmdcIik7XG59XG4udWktc3RhdGUtZXJyb3IgLnVpLWljb24sXG4udWktc3RhdGUtZXJyb3ItdGV4dCAudWktaWNvbiB7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImltYWdlcy91aS1pY29uc19jYzAwMDBfMjU2eDI0MC5wbmdcIik7XG59XG4udWktYnV0dG9uIC51aS1pY29uIHtcblx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiaW1hZ2VzL3VpLWljb25zXzc3Nzc3N18yNTZ4MjQwLnBuZ1wiKTtcbn1cblxuLyogcG9zaXRpb25pbmcgKi9cbi8qIFRocmVlIGNsYXNzZXMgbmVlZGVkIHRvIG92ZXJyaWRlIGAudWktYnV0dG9uOmhvdmVyIC51aS1pY29uYCAqL1xuLnVpLWljb24tYmxhbmsudWktaWNvbi1ibGFuay51aS1pY29uLWJsYW5rIHtcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi51aS1pY29uLWNhcmV0LTEtbiB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgMDsgfVxuLnVpLWljb24tY2FyZXQtMS1uZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IDA7IH1cbi51aS1pY29uLWNhcmV0LTEtZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IDA7IH1cbi51aS1pY29uLWNhcmV0LTEtc2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAwOyB9XG4udWktaWNvbi1jYXJldC0xLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjVweCAwOyB9XG4udWktaWNvbi1jYXJldC0xLXN3IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggMDsgfVxuLnVpLWljb24tY2FyZXQtMS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggMDsgfVxuLnVpLWljb24tY2FyZXQtMS1udyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAwOyB9XG4udWktaWNvbi1jYXJldC0yLW4tcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAwOyB9XG4udWktaWNvbi1jYXJldC0yLWUtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAwOyB9XG4udWktaWNvbi10cmlhbmdsZS0xLW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xNnB4OyB9XG4udWktaWNvbi10cmlhbmdsZS0xLW5lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTE2cHg7IH1cbi51aS1pY29uLXRyaWFuZ2xlLTEtZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0xNnB4OyB9XG4udWktaWNvbi10cmlhbmdsZS0xLXNlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTE2cHg7IH1cbi51aS1pY29uLXRyaWFuZ2xlLTEtcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NXB4IC0xNnB4OyB9XG4udWktaWNvbi10cmlhbmdsZS0xLXN3IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTE2cHg7IH1cbi51aS1pY29uLXRyaWFuZ2xlLTEtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0xNnB4OyB9XG4udWktaWNvbi10cmlhbmdsZS0xLW53IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0xNnB4OyB9XG4udWktaWNvbi10cmlhbmdsZS0yLW4tcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtMTZweDsgfVxuLnVpLWljb24tdHJpYW5nbGUtMi1lLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTE2cHg7IH1cbi51aS1pY29uLWFycm93LTEtbiB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTMycHg7IH1cbi51aS1pY29uLWFycm93LTEtbmUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMzJweDsgfVxuLnVpLWljb24tYXJyb3ctMS1lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTMycHg7IH1cbi51aS1pY29uLWFycm93LTEtc2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMzJweDsgfVxuLnVpLWljb24tYXJyb3ctMS1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY1cHggLTMycHg7IH1cbi51aS1pY29uLWFycm93LTEtc3cgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMzJweDsgfVxuLnVpLWljb24tYXJyb3ctMS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTMycHg7IH1cbi51aS1pY29uLWFycm93LTEtbncgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTMycHg7IH1cbi51aS1pY29uLWFycm93LTItbi1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC0zMnB4OyB9XG4udWktaWNvbi1hcnJvdy0yLW5lLXN3IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0zMnB4OyB9XG4udWktaWNvbi1hcnJvdy0yLWUtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtMzJweDsgfVxuLnVpLWljb24tYXJyb3ctMi1zZS1udyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtMzJweDsgfVxuLnVpLWljb24tYXJyb3dzdG9wLTEtbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAtMzJweDsgfVxuLnVpLWljb24tYXJyb3dzdG9wLTEtZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtMzJweDsgfVxuLnVpLWljb24tYXJyb3dzdG9wLTEtcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMjRweCAtMzJweDsgfVxuLnVpLWljb24tYXJyb3dzdG9wLTEtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yNDBweCAtMzJweDsgfVxuLnVpLWljb24tYXJyb3d0aGljay0xLW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggLTQ4cHg7IH1cbi51aS1pY29uLWFycm93dGhpY2stMS1uZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC00OHB4OyB9XG4udWktaWNvbi1hcnJvd3RoaWNrLTEtZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC00OHB4OyB9XG4udWktaWNvbi1hcnJvd3RoaWNrLTEtc2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtNDhweDsgfVxuLnVpLWljb24tYXJyb3d0aGljay0xLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtNDhweDsgfVxuLnVpLWljb24tYXJyb3d0aGljay0xLXN3IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTQ4cHg7IH1cbi51aS1pY29uLWFycm93dGhpY2stMS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTQ4cHg7IH1cbi51aS1pY29uLWFycm93dGhpY2stMS1udyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtNDhweDsgfVxuLnVpLWljb24tYXJyb3d0aGljay0yLW4tcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtNDhweDsgfVxuLnVpLWljb24tYXJyb3d0aGljay0yLW5lLXN3IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC00OHB4OyB9XG4udWktaWNvbi1hcnJvd3RoaWNrLTItZS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC00OHB4OyB9XG4udWktaWNvbi1hcnJvd3RoaWNrLTItc2UtbncgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTQ4cHg7IH1cbi51aS1pY29uLWFycm93dGhpY2tzdG9wLTEtbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAtNDhweDsgfVxuLnVpLWljb24tYXJyb3d0aGlja3N0b3AtMS1lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC00OHB4OyB9XG4udWktaWNvbi1hcnJvd3RoaWNrc3RvcC0xLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjI0cHggLTQ4cHg7IH1cbi51aS1pY29uLWFycm93dGhpY2tzdG9wLTEtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yNDBweCAtNDhweDsgfVxuLnVpLWljb24tYXJyb3dyZXR1cm50aGljay0xLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC02NHB4OyB9XG4udWktaWNvbi1hcnJvd3JldHVybnRoaWNrLTEtbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC02NHB4OyB9XG4udWktaWNvbi1hcnJvd3JldHVybnRoaWNrLTEtZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC02NHB4OyB9XG4udWktaWNvbi1hcnJvd3JldHVybnRoaWNrLTEtcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC02NHB4OyB9XG4udWktaWNvbi1hcnJvd3JldHVybi0xLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtNjRweDsgfVxuLnVpLWljb24tYXJyb3dyZXR1cm4tMS1uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTY0cHg7IH1cbi51aS1pY29uLWFycm93cmV0dXJuLTEtZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC02NHB4OyB9XG4udWktaWNvbi1hcnJvd3JldHVybi0xLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTY0cHg7IH1cbi51aS1pY29uLWFycm93cmVmcmVzaC0xLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTY0cHg7IH1cbi51aS1pY29uLWFycm93cmVmcmVzaC0xLW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTY0cHg7IH1cbi51aS1pY29uLWFycm93cmVmcmVzaC0xLWUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTY0cHg7IH1cbi51aS1pY29uLWFycm93cmVmcmVzaC0xLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTY0cHg7IH1cbi51aS1pY29uLWFycm93LTQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC04MHB4OyB9XG4udWktaWNvbi1hcnJvdy00LWRpYWcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtODBweDsgfVxuLnVpLWljb24tZXh0bGluayB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC04MHB4OyB9XG4udWktaWNvbi1uZXd3aW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtODBweDsgfVxuLnVpLWljb24tcmVmcmVzaCB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC04MHB4OyB9XG4udWktaWNvbi1zaHVmZmxlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTgwcHg7IH1cbi51aS1pY29uLXRyYW5zZmVyLWUtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC04MHB4OyB9XG4udWktaWNvbi10cmFuc2ZlcnRoaWNrLWUtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtODBweDsgfVxuLnVpLWljb24tZm9sZGVyLWNvbGxhcHNlZCB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTk2cHg7IH1cbi51aS1pY29uLWZvbGRlci1vcGVuIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTk2cHg7IH1cbi51aS1pY29uLWRvY3VtZW50IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTk2cHg7IH1cbi51aS1pY29uLWRvY3VtZW50LWIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtOTZweDsgfVxuLnVpLWljb24tbm90ZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC05NnB4OyB9XG4udWktaWNvbi1tYWlsLWNsb3NlZCB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC05NnB4OyB9XG4udWktaWNvbi1tYWlsLW9wZW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtOTZweDsgfVxuLnVpLWljb24tc3VpdGNhc2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTk2cHg7IH1cbi51aS1pY29uLWNvbW1lbnQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTk2cHg7IH1cbi51aS1pY29uLXBlcnNvbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtOTZweDsgfVxuLnVpLWljb24tcHJpbnQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTk2cHg7IH1cbi51aS1pY29uLXRyYXNoIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC05NnB4OyB9XG4udWktaWNvbi1sb2NrZWQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTk2cHg7IH1cbi51aS1pY29uLXVubG9ja2VkIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC05NnB4OyB9XG4udWktaWNvbi1ib29rbWFyayB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMjRweCAtOTZweDsgfVxuLnVpLWljb24tdGFnIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTI0MHB4IC05NnB4OyB9XG4udWktaWNvbi1ob21lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTEycHg7IH1cbi51aS1pY29uLWZsYWcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMTEycHg7IH1cbi51aS1pY29uLWNhbGVuZGFyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTExMnB4OyB9XG4udWktaWNvbi1jYXJ0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTExMnB4OyB9XG4udWktaWNvbi1wZW5jaWwgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMTEycHg7IH1cbi51aS1pY29uLWNsb2NrIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTExMnB4OyB9XG4udWktaWNvbi1kaXNrIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTExMnB4OyB9XG4udWktaWNvbi1jYWxjdWxhdG9yIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0xMTJweDsgfVxuLnVpLWljb24tem9vbWluIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC0xMTJweDsgfVxuLnVpLWljb24tem9vbW91dCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtMTEycHg7IH1cbi51aS1pY29uLXNlYXJjaCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtMTEycHg7IH1cbi51aS1pY29uLXdyZW5jaCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtMTEycHg7IH1cbi51aS1pY29uLWdlYXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTExMnB4OyB9XG4udWktaWNvbi1oZWFydCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtMTEycHg7IH1cbi51aS1pY29uLXN0YXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjI0cHggLTExMnB4OyB9XG4udWktaWNvbi1saW5rIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTI0MHB4IC0xMTJweDsgfVxuLnVpLWljb24tY2FuY2VsIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTI4cHg7IH1cbi51aS1pY29uLXBsdXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMTI4cHg7IH1cbi51aS1pY29uLXBsdXN0aGljayB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0xMjhweDsgfVxuLnVpLWljb24tbWludXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMTI4cHg7IH1cbi51aS1pY29uLW1pbnVzdGhpY2sgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMTI4cHg7IH1cbi51aS1pY29uLWNsb3NlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTEyOHB4OyB9XG4udWktaWNvbi1jbG9zZXRoaWNrIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTEyOHB4OyB9XG4udWktaWNvbi1rZXkgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTEyOHB4OyB9XG4udWktaWNvbi1saWdodGJ1bGIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTEyOHB4OyB9XG4udWktaWNvbi1zY2lzc29ycyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtMTI4cHg7IH1cbi51aS1pY29uLWNsaXBib2FyZCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtMTI4cHg7IH1cbi51aS1pY29uLWNvcHkgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTEyOHB4OyB9XG4udWktaWNvbi1jb250YWN0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IC0xMjhweDsgfVxuLnVpLWljb24taW1hZ2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA4cHggLTEyOHB4OyB9XG4udWktaWNvbi12aWRlbyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMjRweCAtMTI4cHg7IH1cbi51aS1pY29uLXNjcmlwdCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yNDBweCAtMTI4cHg7IH1cbi51aS1pY29uLWFsZXJ0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTQ0cHg7IH1cbi51aS1pY29uLWluZm8geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMTQ0cHg7IH1cbi51aS1pY29uLW5vdGljZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0xNDRweDsgfVxuLnVpLWljb24taGVscCB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0xNDRweDsgfVxuLnVpLWljb24tY2hlY2sgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMTQ0cHg7IH1cbi51aS1pY29uLWJ1bGxldCB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xNDRweDsgfVxuLnVpLWljb24tcmFkaW8tb24geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMTQ0cHg7IH1cbi51aS1pY29uLXJhZGlvLW9mZiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMTQ0cHg7IH1cbi51aS1pY29uLXBpbi13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC0xNDRweDsgfVxuLnVpLWljb24tcGluLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTE0NHB4OyB9XG4udWktaWNvbi1wbGF5IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTYwcHg7IH1cbi51aS1pY29uLXBhdXNlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTE2MHB4OyB9XG4udWktaWNvbi1zZWVrLW5leHQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMTYwcHg7IH1cbi51aS1pY29uLXNlZWstcHJldiB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0xNjBweDsgfVxuLnVpLWljb24tc2Vlay1lbmQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMTYwcHg7IH1cbi51aS1pY29uLXNlZWstc3RhcnQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTYwcHg7IH1cbi8qIHVpLWljb24tc2Vlay1maXJzdCBpcyBkZXByZWNhdGVkLCB1c2UgdWktaWNvbi1zZWVrLXN0YXJ0IGluc3RlYWQgKi9cbi51aS1pY29uLXNlZWstZmlyc3QgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTYwcHg7IH1cbi51aS1pY29uLXN0b3AgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMTYwcHg7IH1cbi51aS1pY29uLWVqZWN0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0xNjBweDsgfVxuLnVpLWljb24tdm9sdW1lLW9mZiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtMTYwcHg7IH1cbi51aS1pY29uLXZvbHVtZS1vbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtMTYwcHg7IH1cbi51aS1pY29uLXBvd2VyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTc2cHg7IH1cbi51aS1pY29uLXNpZ25hbC1kaWFnIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTE3NnB4OyB9XG4udWktaWNvbi1zaWduYWwgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMTc2cHg7IH1cbi51aS1pY29uLWJhdHRlcnktMCB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0xNzZweDsgfVxuLnVpLWljb24tYmF0dGVyeS0xIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTE3NnB4OyB9XG4udWktaWNvbi1iYXR0ZXJ5LTIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTc2cHg7IH1cbi51aS1pY29uLWJhdHRlcnktMyB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0xNzZweDsgfVxuLnVpLWljb24tY2lyY2xlLXBsdXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xOTJweDsgfVxuLnVpLWljb24tY2lyY2xlLW1pbnVzIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTE5MnB4OyB9XG4udWktaWNvbi1jaXJjbGUtY2xvc2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMTkycHg7IH1cbi51aS1pY29uLWNpcmNsZS10cmlhbmdsZS1lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTE5MnB4OyB9XG4udWktaWNvbi1jaXJjbGUtdHJpYW5nbGUtcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0xOTJweDsgfVxuLnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTkycHg7IH1cbi51aS1pY29uLWNpcmNsZS10cmlhbmdsZS1uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTE5MnB4OyB9XG4udWktaWNvbi1jaXJjbGUtYXJyb3ctZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMTkycHg7IH1cbi51aS1pY29uLWNpcmNsZS1hcnJvdy1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC0xOTJweDsgfVxuLnVpLWljb24tY2lyY2xlLWFycm93LXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTE5MnB4OyB9XG4udWktaWNvbi1jaXJjbGUtYXJyb3ctbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtMTkycHg7IH1cbi51aS1pY29uLWNpcmNsZS16b29taW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTE5MnB4OyB9XG4udWktaWNvbi1jaXJjbGUtem9vbW91dCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAtMTkycHg7IH1cbi51aS1pY29uLWNpcmNsZS1jaGVjayB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtMTkycHg7IH1cbi51aS1pY29uLWNpcmNsZXNtYWxsLXBsdXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0yMDhweDsgfVxuLnVpLWljb24tY2lyY2xlc21hbGwtbWludXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMjA4cHg7IH1cbi51aS1pY29uLWNpcmNsZXNtYWxsLWNsb3NlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTIwOHB4OyB9XG4udWktaWNvbi1zcXVhcmVzbWFsbC1wbHVzIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTIwOHB4OyB9XG4udWktaWNvbi1zcXVhcmVzbWFsbC1taW51cyB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0yMDhweDsgfVxuLnVpLWljb24tc3F1YXJlc21hbGwtY2xvc2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMjA4cHg7IH1cbi51aS1pY29uLWdyaXAtZG90dGVkLXZlcnRpY2FsIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMjI0cHg7IH1cbi51aS1pY29uLWdyaXAtZG90dGVkLWhvcml6b250YWwgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMjI0cHg7IH1cbi51aS1pY29uLWdyaXAtc29saWQtdmVydGljYWwgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMjI0cHg7IH1cbi51aS1pY29uLWdyaXAtc29saWQtaG9yaXpvbnRhbCB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0yMjRweDsgfVxuLnVpLWljb24tZ3JpcHNtYWxsLWRpYWdvbmFsLXNlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTIyNHB4OyB9XG4udWktaWNvbi1ncmlwLWRpYWdvbmFsLXNlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTIyNHB4OyB9XG5cblxuLyogTWlzYyB2aXN1YWxzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogQ29ybmVyIHJhZGl1cyAqL1xuLnVpLWNvcm5lci1hbGwsXG4udWktY29ybmVyLXRvcCxcbi51aS1jb3JuZXItbGVmdCxcbi51aS1jb3JuZXItdGwge1xuXHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG59XG4udWktY29ybmVyLWFsbCxcbi51aS1jb3JuZXItdG9wLFxuLnVpLWNvcm5lci1yaWdodCxcbi51aS1jb3JuZXItdHIge1xuXHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4O1xufVxuLnVpLWNvcm5lci1hbGwsXG4udWktY29ybmVyLWJvdHRvbSxcbi51aS1jb3JuZXItbGVmdCxcbi51aS1jb3JuZXItYmwge1xuXHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XG59XG4udWktY29ybmVyLWFsbCxcbi51aS1jb3JuZXItYm90dG9tLFxuLnVpLWNvcm5lci1yaWdodCxcbi51aS1jb3JuZXItYnIge1xuXHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogM3B4O1xufVxuXG4vKiBPdmVybGF5cyAqL1xuLnVpLXdpZGdldC1vdmVybGF5IHtcblx0YmFja2dyb3VuZDogI2FhYWFhYTtcblx0b3BhY2l0eTogLjM7XG59XG4udWktd2lkZ2V0LXNoYWRvdyB7XG5cdGJveC1zaGFkb3c6IDBweCAwcHggNXB4ICM2NjY2NjY7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKiBSZXNldCAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stY29sb3ItYmFzZS1mb3JlZ3JvdW5kOiBcdFx0XHRcdFx0XHRcdFx0aHNsKDAsIDAlLCA5OCUpO1xuXHQtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0XHRcdGhzbCgwLCAwJSwgMTAwJSk7XG5cdC0tY2stY29sb3ItYmFzZS1ib3JkZXI6IFx0XHRcdFx0XHRcdFx0XHRcdGhzbCgyMjAsIDYlLCA4MSUpO1xuXHQtLWNrLWNvbG9yLWJhc2UtYWN0aW9uOiBcdFx0XHRcdFx0XHRcdFx0XHRoc2woMTA0LCA1MC4yJSwgNDIuNSUpO1xuXHQtLWNrLWNvbG9yLWJhc2UtZm9jdXM6IFx0XHRcdFx0XHRcdFx0XHRcdFx0aHNsKDIwOSwgOTIlLCA3MCUpO1xuXHQtLWNrLWNvbG9yLWJhc2UtdGV4dDogXHRcdFx0XHRcdFx0XHRcdFx0XHRoc2woMCwgMCUsIDIwJSk7XG5cdC0tY2stY29sb3ItYmFzZS1hY3RpdmU6IFx0XHRcdFx0XHRcdFx0XHRcdGhzbCgyMTguMSwgMTAwJSwgNTglKTtcblx0LS1jay1jb2xvci1iYXNlLWFjdGl2ZS1mb2N1czpcdFx0XHRcdFx0XHRcdFx0aHNsKDIxOC4yLCAxMDAlLCA1Mi41JSk7XG5cdC0tY2stY29sb3ItYmFzZS1lcnJvcjpcdFx0XHRcdFx0XHRcdFx0XHRcdGhzbCgxNSwgMTAwJSwgNDMlKTtcblxuXHQvKiAtLSBHZW5lcmljIGNvbG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLWZvY3VzLWJvcmRlci1jb29yZGluYXRlczogXHRcdFx0XHRcdFx0MjE4LCA4MS44JSwgNTYuOSU7XG5cdC0tY2stY29sb3ItZm9jdXMtYm9yZGVyOiBcdFx0XHRcdFx0XHRcdFx0XHRoc2wodmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyLWNvb3JkaW5hdGVzKSk7XG5cdC0tY2stY29sb3ItZm9jdXMtb3V0ZXItc2hhZG93Olx0XHRcdFx0XHRcdFx0XHRoc2woMjEyLjQsIDg5LjMlLCA4OSUpO1xuXHQtLWNrLWNvbG9yLWZvY3VzLWRpc2FibGVkLXNoYWRvdzpcdFx0XHRcdFx0XHRcdGhzbGEoMjA5LCA5MCUsIDcyJSwuMyk7XG5cdC0tY2stY29sb3ItZm9jdXMtZXJyb3Itc2hhZG93Olx0XHRcdFx0XHRcdFx0XHRoc2xhKDksMTAwJSw1NiUsLjMpO1xuXHQtLWNrLWNvbG9yLXRleHQ6IFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLXRleHQpO1xuXHQtLWNrLWNvbG9yLXNoYWRvdy1kcm9wOiBcdFx0XHRcdFx0XHRcdFx0XHRoc2xhKDAsIDAlLCAwJSwgMC4xNSk7XG5cdC0tY2stY29sb3Itc2hhZG93LWRyb3AtYWN0aXZlOlx0XHRcdFx0XHRcdFx0XHRoc2xhKDAsIDAlLCAwJSwgMC4yKTtcblx0LS1jay1jb2xvci1zaGFkb3ctaW5uZXI6IFx0XHRcdFx0XHRcdFx0XHRcdGhzbGEoMCwgMCUsIDAlLCAwLjEpO1xuXG5cdC8qIC0tIEJ1dHRvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0dHJhbnNwYXJlbnQ7XG5cdC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtaG92ZXItYmFja2dyb3VuZDogXHRcdFx0XHRoc2woMCwgMCUsIDk0LjElKTtcblx0LS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1hY3RpdmUtYmFja2dyb3VuZDogXHRcdFx0XHRoc2woMCwgMCUsIDk0LjElKTtcblx0LS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1kaXNhYmxlZC1iYWNrZ3JvdW5kOiBcdFx0XHRcdHRyYW5zcGFyZW50O1xuXG5cdC0tY2stY29sb3ItYnV0dG9uLW9uLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdFx0aHNsKDIxMiwgMTAwJSwgOTcuMSUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1vbi1ob3Zlci1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRoc2woMjExLjcsIDEwMCUsIDkyLjklKTtcblx0LS1jay1jb2xvci1idXR0b24tb24tYWN0aXZlLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRoc2woMjExLjcsIDEwMCUsIDkyLjklKTtcblx0LS1jay1jb2xvci1idXR0b24tb24tZGlzYWJsZWQtYmFja2dyb3VuZDogXHRcdFx0XHRcdGhzbCgyMTEsIDE1JSwgOTUlKTtcblx0LS1jay1jb2xvci1idXR0b24tb24tY29sb3I6XHRcdFx0XHRcdFx0XHRcdFx0aHNsKDIxOC4xLCAxMDAlLCA1OCUpO1xuXG5cblx0LS1jay1jb2xvci1idXR0b24tYWN0aW9uLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYWN0aW9uKTtcblx0LS1jay1jb2xvci1idXR0b24tYWN0aW9uLWhvdmVyLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRoc2woMTA0LCA1My4yJSwgNDAuMiUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24tYWN0aXZlLWJhY2tncm91bmQ6IFx0XHRcdFx0aHNsKDEwNCwgNTMuMiUsIDQwLjIlKTtcblx0LS1jay1jb2xvci1idXR0b24tYWN0aW9uLWRpc2FibGVkLWJhY2tncm91bmQ6IFx0XHRcdFx0aHNsKDEwNCwgNDQlLCA1OCUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24tdGV4dDogXHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cblx0LS1jay1jb2xvci1idXR0b24tc2F2ZTogXHRcdFx0XHRcdFx0XHRcdFx0aHNsKDEyMCwgMTAwJSwgMjclKTtcblx0LS1jay1jb2xvci1idXR0b24tY2FuY2VsOiBcdFx0XHRcdFx0XHRcdFx0XHRoc2woMTUsIDEwMCUsIDQzJSk7XG5cblx0LS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLW9mZi1iYWNrZ3JvdW5kOlx0XHRcdFx0XHRoc2woMCwgMCUsIDU3LjYlKTtcblx0LS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLW9mZi1ob3Zlci1iYWNrZ3JvdW5kOlx0XHRcdFx0aHNsKDAsIDAlLCA0OSUpO1xuXHQtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24tb24tYmFja2dyb3VuZDpcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1idXR0b24tYWN0aW9uLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24tb24taG92ZXItYmFja2dyb3VuZDpcdFx0XHRcdGhzbCgxMDQsIDUzLjIlLCA0MC4yJSk7XG5cdC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1pbm5lci1iYWNrZ3JvdW5kOlx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24taW5uZXItc2hhZG93Olx0XHRcdFx0XHRcdGhzbGEoMCwgMCUsIDAlLCAwLjEpO1xuXG5cdC8qIC0tIERyb3Bkb3duIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItZHJvcGRvd24tcGFuZWwtYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0LS1jay1jb2xvci1kcm9wZG93bi1wYW5lbC1ib3JkZXI6IFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXG5cdC8qIC0tIERpYWxvZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItZGlhbG9nLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jdXN0b20tYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3ItZGlhbG9nLWZvcm0taGVhZGVyLWJvcmRlcjogXHRcdFx0XHRcdFx0dmFyKC0tY2stY3VzdG9tLWJvcmRlcik7XG5cblx0LyogLS0gSW5wdXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1pbnB1dC1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0LS1jay1jb2xvci1pbnB1dC1ib3JkZXI6IFx0XHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0LS1jay1jb2xvci1pbnB1dC1lcnJvci1ib3JkZXI6XHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtZXJyb3IpO1xuXHQtLWNrLWNvbG9yLWlucHV0LXRleHQ6IFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS10ZXh0KTtcblx0LS1jay1jb2xvci1pbnB1dC1kaXNhYmxlZC1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRoc2woMCwgMCUsIDk1JSk7XG5cdC0tY2stY29sb3ItaW5wdXQtZGlzYWJsZWQtYm9yZGVyOiBcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0LS1jay1jb2xvci1pbnB1dC1kaXNhYmxlZC10ZXh0OiBcdFx0XHRcdFx0XHRcdGhzbCgwLCAwJSwgNDYlKTtcblxuXHQvKiAtLSBMaXN0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLWxpc3QtYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3ItbGlzdC1idXR0b24taG92ZXItYmFja2dyb3VuZDogXHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWhvdmVyLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLWxpc3QtYnV0dG9uLW9uLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1vbi1jb2xvcik7XG5cdC0tY2stY29sb3ItbGlzdC1idXR0b24tb24tYmFja2dyb3VuZC1mb2N1czogXHRcdFx0XHR2YXIoLS1jay1jb2xvci1idXR0b24tb24tY29sb3IpO1xuXHQtLWNrLWNvbG9yLWxpc3QtYnV0dG9uLW9uLXRleHQ6XHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cblx0LyogLS0gUGFuZWwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1wYW5lbC1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0LS1jay1jb2xvci1wYW5lbC1ib3JkZXI6IFx0XHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblxuXHQvKiAtLSBUb29sYmFyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLXRvb2xiYXItYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3ItdG9vbGJhci1ib3JkZXI6IFx0XHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblxuXHQvKiAtLSBUb29sdGlwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLXRvb2x0aXAtYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtdGV4dCk7XG5cdC0tY2stY29sb3ItdG9vbHRpcC10ZXh0OiBcdFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXG5cdC8qIC0tIEVuZ2luZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItZW5naW5lLXBsYWNlaG9sZGVyLXRleHQ6IFx0XHRcdFx0XHRcdGhzbCgwLCAwJSwgNDQlKTtcblxuXHQvKiAtLSBVcGxvYWQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLXVwbG9hZC1iYXItYmFja2dyb3VuZDpcdFx0IFx0XHRcdFx0XHRoc2woMjA5LCA5MiUsIDcwJSk7XG5cblx0LyogLS0gTGluayAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItbGluay1kZWZhdWx0Olx0XHRcdFx0XHRcdFx0XHRcdGhzbCgyNDAsIDEwMCUsIDQ3JSk7XG5cdC0tY2stY29sb3ItbGluay1zZWxlY3RlZC1iYWNrZ3JvdW5kOlx0XHRcdFx0XHRcdGhzbGEoMjAxLCAxMDAlLCA1NiUsIDAuMSk7XG5cdC0tY2stY29sb3ItbGluay1mYWtlLXNlbGVjdGlvbjpcdFx0XHRcdFx0XHRcdFx0aHNsYSgyMDEsIDEwMCUsIDU2JSwgMC4zKTtcblxuXHQvKiAtLSBTZWFyY2ggcmVzdWx0IGhpZ2hsaWdodCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1oaWdobGlnaHQtYmFja2dyb3VuZDpcdFx0XHRcdFx0XHRcdGhzbCg2MCwgMTAwJSwgNTAlKTtcblxuXHQvKiAtLSBHZW5lcmljIGNvbG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1saWdodC1yZWQ6XHRcdFx0XHRcdFx0XHRcdFx0XHRoc2woMCwgMTAwJSwgOTAlKTtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC8qKlxuXHQgKiBBbiBvcGFjaXR5IHZhbHVlIG9mIGRpc2FibGVkIFVJIGl0ZW0uXG5cdCAqL1xuXHQtLWNrLWRpc2FibGVkLW9wYWNpdHk6IC41O1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LyoqXG5cdCAqIFRoZSBnZW9tZXRyeSBvZiB0aGUgb2YgZm9jdXNlZCBlbGVtZW50J3Mgb3V0ZXIgc2hhZG93LlxuXHQgKi9cblx0LS1jay1mb2N1cy1vdXRlci1zaGFkb3ctZ2VvbWV0cnk6IDAgMCAwIDNweDtcblxuXHQvKipcblx0ICogQSB2aXN1YWwgc3R5bGUgb2YgZm9jdXNlZCBlbGVtZW50J3Mgb3V0ZXIgc2hhZG93LlxuXHQgKi9cblx0LS1jay1mb2N1cy1vdXRlci1zaGFkb3c6IHZhcigtLWNrLWZvY3VzLW91dGVyLXNoYWRvdy1nZW9tZXRyeSkgdmFyKC0tY2stY29sb3ItZm9jdXMtb3V0ZXItc2hhZG93KTtcblxuXHQvKipcblx0ICogQSB2aXN1YWwgc3R5bGUgb2YgZm9jdXNlZCBlbGVtZW50J3Mgb3V0ZXIgc2hhZG93ICh3aGVuIGRpc2FibGVkKS5cblx0ICovXG5cdC0tY2stZm9jdXMtZGlzYWJsZWQtb3V0ZXItc2hhZG93OiB2YXIoLS1jay1mb2N1cy1vdXRlci1zaGFkb3ctZ2VvbWV0cnkpIHZhcigtLWNrLWNvbG9yLWZvY3VzLWRpc2FibGVkLXNoYWRvdyk7XG5cblx0LyoqXG5cdCAqIEEgdmlzdWFsIHN0eWxlIG9mIGZvY3VzZWQgZWxlbWVudCdzIG91dGVyIHNoYWRvdyAod2hlbiBoYXMgZXJyb3JzKS5cblx0ICovXG5cdC0tY2stZm9jdXMtZXJyb3Itb3V0ZXItc2hhZG93OiB2YXIoLS1jay1mb2N1cy1vdXRlci1zaGFkb3ctZ2VvbWV0cnkpIHZhcigtLWNrLWNvbG9yLWZvY3VzLWVycm9yLXNoYWRvdyk7XG5cblx0LyoqXG5cdCAqIEEgdmlzdWFsIHN0eWxlIG9mIGZvY3VzZWQgZWxlbWVudCdzIGJvcmRlciBvciBvdXRsaW5lLlxuXHQgKi9cblx0LS1jay1mb2N1cy1yaW5nOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stZm9udC1zaXplLWJhc2U6IDEzcHg7XG5cdC0tY2stbGluZS1oZWlnaHQtYmFzZTogMS44NDYxNTtcblx0LS1jay1mb250LWZhY2U6IEhlbHZldGljYSwgQXJpYWwsIFRhaG9tYSwgVmVyZGFuYSwgU2Fucy1TZXJpZjtcblxuXHQtLWNrLWZvbnQtc2l6ZS10aW55OiAwLjdlbTtcblx0LS1jay1mb250LXNpemUtc21hbGw6IDAuNzVlbTtcblx0LS1jay1mb250LXNpemUtbm9ybWFsOiAxZW07XG5cdC0tY2stZm9udC1zaXplLWJpZzogMS40ZW07XG5cdC0tY2stZm9udC1zaXplLWxhcmdlOiAxLjhlbTtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC8qIFRoaXMgaXMgc3VwZXItaW1wb3J0YW50LiBUaGlzIGlzICoqbWFudWFsbHkqKiBhZGp1c3RlZCBzbyBhIGJ1dHRvbiB3aXRob3V0IGFuIGljb25cblx0aXMgbmV2ZXIgc21hbGxlciB0aGFuIGEgYnV0dG9uIHdpdGggaWNvbiwgYWRkaXRpb25hbGx5IG1ha2luZyBzdXJlIHRoYXQgdGV4dC1sZXNzIGJ1dHRvbnNcblx0YXJlIHBlcmZlY3Qgc3F1YXJlcy4gVGhlIHZhbHVlIGlzIGFsc28gc2hhcmVkIGJ5IG90aGVyIGNvbXBvbmVudHMgd2hpY2ggc2hvdWxkIHN0YXkgXCJpbi1saW5lXCJcblx0d2l0aCBidXR0b25zLiAqL1xuXHQtLWNrLXVpLWNvbXBvbmVudC1taW4taGVpZ2h0OiAyLjNlbTtcbn1cbi8qKlxuICogUmVzZXRzIGFuIGVsZW1lbnQsIGlnbm9yaW5nIGl0cyBjaGlsZHJlbi5cbiAqL1xuLmNrLmNrLXJlc2V0LFxuLmNrLmNrLXJlc2V0X2FsbCxcbi5jay1yZXNldF9hbGwgKjpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSB7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdHdpZHRoOiBhdXRvO1xuXHRoZWlnaHQ6IGF1dG87XG5cdHBvc2l0aW9uOiBzdGF0aWM7XG5cblx0LyogRG8gbm90IGluY2x1ZGUgaW5oZXJpdGFibGUgcnVsZXMgaGVyZS4gKi9cblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRib3JkZXI6IDA7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdHRyYW5zaXRpb246IG5vbmU7XG5cblx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy8xMDUgKi9cblx0d29yZC13cmFwOiBicmVhay13b3JkO1xufVxuLyoqXG4gKiBSZXNldHMgYW4gZWxlbWVudCBBTkQgaXRzIGNoaWxkcmVuLlxuICovXG4uY2suY2stcmVzZXRfYWxsLFxuLmNrLXJlc2V0X2FsbCAqOm5vdCguY2stcmVzZXRfYWxsLWV4Y2x1ZGVkICopIHtcblx0LyogVGhlc2UgYXJlIHJ1bGUgaW5oZXJpdGVkIGJ5IGFsbCBjaGlsZHJlbiBlbGVtZW50cy4gKi9cblx0Ym9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcblx0Zm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgdmFyKC0tY2stZm9udC1zaXplLWJhc2UpL3ZhcigtLWNrLWxpbmUtaGVpZ2h0LWJhc2UpIHZhcigtLWNrLWZvbnQtZmFjZSk7XG5cdGNvbG9yOiB2YXIoLS1jay1jb2xvci10ZXh0KTtcblx0dGV4dC1hbGlnbjogbGVmdDtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0Y3Vyc29yOiBhdXRvO1xuXHRmbG9hdDogbm9uZTtcbn1cbi5jay1yZXNldF9hbGwgLmNrLXJ0bCAqOm5vdCguY2stcmVzZXRfYWxsLWV4Y2x1ZGVkICopIHtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0fVxuLmNrLXJlc2V0X2FsbCBpZnJhbWU6bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKikge1xuXHRcdC8qIEZvciBJRSAqL1xuXHRcdHZlcnRpY2FsLWFsaWduOiBpbmhlcml0O1xuXHR9XG4uY2stcmVzZXRfYWxsIHRleHRhcmVhOm5vdCguY2stcmVzZXRfYWxsLWV4Y2x1ZGVkICopIHtcblx0XHR3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG5cdH1cbi5jay1yZXNldF9hbGwgdGV4dGFyZWE6bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKiksXG5cdC5jay1yZXNldF9hbGwgaW5wdXRbdHlwZT1cInRleHRcIl06bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKiksXG5cdC5jay1yZXNldF9hbGwgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOm5vdCguY2stcmVzZXRfYWxsLWV4Y2x1ZGVkICopIHtcblx0XHRjdXJzb3I6IHRleHQ7XG5cdH1cbi5jay1yZXNldF9hbGwgdGV4dGFyZWFbZGlzYWJsZWRdOm5vdCguY2stcmVzZXRfYWxsLWV4Y2x1ZGVkICopLFxuXHQuY2stcmVzZXRfYWxsIGlucHV0W3R5cGU9XCJ0ZXh0XCJdW2Rpc2FibGVkXTpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSxcblx0LmNrLXJlc2V0X2FsbCBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl1bZGlzYWJsZWRdOm5vdCguY2stcmVzZXRfYWxsLWV4Y2x1ZGVkICopIHtcblx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cdH1cbi5jay1yZXNldF9hbGwgZmllbGRzZXQ6bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKikge1xuXHRcdHBhZGRpbmc6IDEwcHg7XG5cdFx0Ym9yZGVyOiAycHggZ3Jvb3ZlIGhzbCgyNTUsIDclLCA4OCUpO1xuXHR9XG4uY2stcmVzZXRfYWxsIGJ1dHRvbjpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKTo6LW1vei1mb2N1cy1pbm5lciB7XG5cdFx0LyogU2VlIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNTUxNzc0NC9yZW1vdmUtZXh0cmEtYnV0dG9uLXNwYWNpbmctcGFkZGluZy1pbi1maXJlZm94ICovXG5cdFx0cGFkZGluZzogMDtcblx0XHRib3JkZXI6IDBcblx0fVxuLyoqXG4gKiBEZWZhdWx0IFVJIHJ1bGVzIGZvciBSVEwgbGFuZ3VhZ2VzLlxuICovXG4uY2tbZGlyPVwicnRsXCJdLFxuLmNrW2Rpcj1cInJ0bFwiXSAuY2sge1xuXHR0ZXh0LWFsaWduOiByaWdodDtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIERlZmF1bHQgYm9yZGVyLXJhZGl1cyB2YWx1ZS5cbiAqL1xuOnJvb3R7XG5cdC0tY2stYm9yZGVyLXJhZGl1czogMnB4O1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LyoqXG5cdCAqIEEgdmlzdWFsIHN0eWxlIG9mIGVsZW1lbnQncyBpbm5lciBzaGFkb3cgKGkuZS4gaW5wdXQpLlxuXHQgKi9cblx0LS1jay1pbm5lci1zaGFkb3c6IDJweCAycHggM3B4IHZhcigtLWNrLWNvbG9yLXNoYWRvdy1pbm5lcikgaW5zZXQ7XG5cblx0LyoqXG5cdCAqIEEgdmlzdWFsIHN0eWxlIG9mIGVsZW1lbnQncyBkcm9wIHNoYWRvdyAoaS5lLiBwYW5lbCkuXG5cdCAqL1xuXHQtLWNrLWRyb3Atc2hhZG93OiAwIDFweCAycHggMXB4IHZhcigtLWNrLWNvbG9yLXNoYWRvdy1kcm9wKTtcblxuXHQvKipcblx0ICogQSB2aXN1YWwgc3R5bGUgb2YgZWxlbWVudCdzIGFjdGl2ZSBzaGFkb3cgKGkuZS4gY29tbWVudCBvciBzdWdnZXN0aW9uKS5cblx0ICovXG5cdC0tY2stZHJvcC1zaGFkb3ctYWN0aXZlOiAwIDNweCA2cHggMXB4IHZhcigtLWNrLWNvbG9yLXNoYWRvdy1kcm9wLWFjdGl2ZSk7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLXNwYWNpbmctdW5pdDogXHRcdFx0XHRcdFx0MC42ZW07XG5cdC0tY2stc3BhY2luZy1sYXJnZTogXHRcdFx0XHRcdGNhbGModmFyKC0tY2stc3BhY2luZy11bml0KSAqIDEuNSk7XG5cdC0tY2stc3BhY2luZy1zdGFuZGFyZDogXHRcdFx0XHRcdHZhcigtLWNrLXNwYWNpbmctdW5pdCk7XG5cdC0tY2stc3BhY2luZy1tZWRpdW06IFx0XHRcdFx0XHRjYWxjKHZhcigtLWNrLXNwYWNpbmctdW5pdCkgKiAwLjgpO1xuXHQtLWNrLXNwYWNpbmctc21hbGw6IFx0XHRcdFx0XHRjYWxjKHZhcigtLWNrLXNwYWNpbmctdW5pdCkgKiAwLjUpO1xuXHQtLWNrLXNwYWNpbmctdGlueTogXHRcdFx0XHRcdFx0Y2FsYyh2YXIoLS1jay1zcGFjaW5nLXVuaXQpICogMC4zKTtcblx0LS1jay1zcGFjaW5nLWV4dHJhLXRpbnk6IFx0XHRcdFx0Y2FsYyh2YXIoLS1jay1zcGFjaW5nLXVuaXQpICogMC4xNik7XG59XG5cbi8qIENvbXBvbmVudHMgKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgaGVscGVyIHRvIGNvbWJpbmUgbXVsdGlwbGUgc2hhZG93cy5cbiAqL1xuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG4uY2suY2stYXV0b2NvbXBsZXRlID4gLmNrLXNlYXJjaF9fcmVzdWx0cyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHRcdG1heC1oZWlnaHQ6IDIwMHB4O1xuXHRcdG92ZXJmbG93LXk6IGF1dG87XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1kcm9wZG93bi1wYW5lbC1ib3JkZXIpO1xuXHRcdG1pbi13aWR0aDogYXV0bztcblx0fVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stYXV0b2NvbXBsZXRlID4gLmNrLXNlYXJjaF9fcmVzdWx0cyxcblx0LmNrLmNrLWF1dG9jb21wbGV0ZSA+IC5jay1zZWFyY2hfX3Jlc3VsdHMuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0fVxuLmNrLmNrLWF1dG9jb21wbGV0ZSA+IC5jay1zZWFyY2hfX3Jlc3VsdHMge1xuXHRcdGJveC1zaGFkb3c6IHZhcigtLWNrLWRyb3Atc2hhZG93KSwgMCAwO1xuXHR9XG4uY2suY2stYXV0b2NvbXBsZXRlID4gLmNrLXNlYXJjaF9fcmVzdWx0cy5jay1zZWFyY2hfX3Jlc3VsdHNfbiB7XG5cdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cblx0XHRcdC8qIFByZXZlbnQgZHVwbGljYXRlZCBib3JkZXJzIGJldHdlZW4gdGhlIGlucHV0IGFuZCB0aGUgcmVzdWx0cyBwYW5lLiAqL1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogLTFweDtcblx0XHR9XG4uY2suY2stYXV0b2NvbXBsZXRlID4gLmNrLXNlYXJjaF9fcmVzdWx0cy5jay1zZWFyY2hfX3Jlc3VsdHNfcyB7XG5cdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cblx0XHRcdC8qIFByZXZlbnQgZHVwbGljYXRlZCBib3JkZXJzIGJldHdlZW4gdGhlIGlucHV0IGFuZCB0aGUgcmVzdWx0cyBwYW5lLiAqL1xuXHRcdFx0bWFyZ2luLXRvcDogLTFweDtcblx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSB2aXN1YWwgc3R5bGUgb2YgZm9jdXNlZCBlbGVtZW50J3MgYm9yZGVyLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIGhlbHBlciB0byBjb21iaW5lIG11bHRpcGxlIHNoYWRvd3MuXG4gKi9cbi8qKlxuICogR2l2ZXMgYW4gZWxlbWVudCBhIGRyb3Agc2hhZG93IHNvIGl0IGxvb2tzIGxpa2UgYSBmbG9hdGluZyBwYW5lbC5cbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBjbGFzcyB3aGljaCBpbmRpY2F0ZXMgdGhhdCBhbiBlbGVtZW50IGhvbGRpbmcgaXQgaXMgZGlzYWJsZWQuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogSW1wbGVtZW50cyBhIGJ1dHRvbiBvZiBnaXZlbiBiYWNrZ3JvdW5kIGNvbG9yLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSAkYmFja2dyb3VuZCAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbiAqIEBwYXJhbSB7U3RyaW5nfSAkYm9yZGVyIC0gQm9yZGVyIGNvbG9yIG9mIHRoZSBidXR0b24uXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4uY2suY2stYnV0dG9uLFxuYS5jay5jay1idXR0b24ge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1iYWNrZ3JvdW5kKTtcblx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctdGlueSk7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHQvKiBBIHZlcnkgaW1wb3J0YW50IHBpZWNlIG9mIHN0eWxpbmcuIEdvIHRvIHZhcmlhYmxlIGRlY2xhcmF0aW9uIHRvIGxlYXJuIG1vcmUuICovXG5cdG1pbi13aWR0aDogdmFyKC0tY2stdWktY29tcG9uZW50LW1pbi1oZWlnaHQpO1xuXHRtaW4taGVpZ2h0OiB2YXIoLS1jay11aS1jb21wb25lbnQtbWluLWhlaWdodCk7XG5cblx0LyogTm9ybWFsaXplIHRoZSBoZWlnaHQgb2YgdGhlIGxpbmUuIFJlbW92aW5nIHRoaXMgd2lsbCBicmVhayBjb25zaXN0ZW50IGhlaWdodFxuXHRhbW9uZyB0ZXh0IGFuZCB0ZXh0LWxlc3MgYnV0dG9ucyAod2l0aCBpY29ucykuICovXG5cdGxpbmUtaGVpZ2h0OiAxO1xuXG5cdC8qIEVuYWJsZSBmb250IHNpemUgaW5oZXJpdGFuY2UsIHdoaWNoIGFsbG93cyBmbHVpZCBVSSBzY2FsaW5nLiAqL1xuXHRmb250LXNpemU6IGluaGVyaXQ7XG5cblx0LyogQXZvaWQgZmxpY2tlcmluZyB3aGVuIHRoZSBmb3VjcyBib3JkZXIgc2hvd3MgdXAuICovXG5cdGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG5cdC8qIEFwcGx5IHNvbWUgc21vb3RoIHRyYW5zaXRpb24gdG8gdGhlIGJveC1zaGFkb3cgYW5kIGJvcmRlci4gKi9cblx0dHJhbnNpdGlvbjogYm94LXNoYWRvdyAuMnMgZWFzZS1pbi1vdXQsIGJvcmRlciAuMnMgZWFzZS1pbi1vdXQ7XG5cblx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy8xODkgKi9cblx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuLmNrLmNrLWJ1dHRvbjpub3QoLmNrLWRpc2FibGVkKTpob3ZlciwgYS5jay5jay1idXR0b246bm90KC5jay1kaXNhYmxlZCk6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtaG92ZXItYmFja2dyb3VuZCk7XG5cdFx0fVxuLmNrLmNrLWJ1dHRvbjpub3QoLmNrLWRpc2FibGVkKTphY3RpdmUsIGEuY2suY2stYnV0dG9uOm5vdCguY2stZGlzYWJsZWQpOmFjdGl2ZSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1hY3RpdmUtYmFja2dyb3VuZCk7XG5cdFx0fVxuLyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy85OCAqL1xuLmNrLmNrLWJ1dHRvbi5jay1kaXNhYmxlZCwgYS5jay5jay1idXR0b24uY2stZGlzYWJsZWQge1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWRpc2FibGVkLWJhY2tncm91bmQpO1xuXHR9XG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1idXR0b24sXG5cdC5jay1yb3VuZGVkLWNvcm5lcnMgYS5jay5jay1idXR0b24sXG5cdC5jay5jay1idXR0b24uY2stcm91bmRlZC1jb3JuZXJzLFxuXHRhLmNrLmNrLWJ1dHRvbi5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHR9XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuLmNrLmNrLWJ1dHRvbixcbmEuY2suY2stYnV0dG9uIHtcblx0XHR0cmFuc2l0aW9uOiBub25lO1xufVxuXHR9XG4uY2suY2stYnV0dG9uOmFjdGl2ZSxcblx0YS5jay5jay1idXR0b246YWN0aXZlLFxuXHQuY2suY2stYnV0dG9uOmZvY3VzLFxuXHRhLmNrLmNrLWJ1dHRvbjpmb2N1cyB7XG5cdFx0LyogRGlzYWJsZSBuYXRpdmUgb3V0bGluZS4gKi9cblx0XHRvdXRsaW5lOiBub25lO1xuXHRcdGJvcmRlcjogdmFyKC0tY2stZm9jdXMtcmluZyk7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0tY2stZm9jdXMtb3V0ZXItc2hhZG93KSwgMCAwO1xuXHR9XG4vKiBBbGxvdyBpY29uIGNvbG9yaW5nIHVzaW5nIHRoZSB0ZXh0IFwiY29sb3JcIiBwcm9wZXJ0eS4gKi9cbi5jay5jay1idXR0b24gLmNrLWJ1dHRvbl9faWNvbiB1c2UsXG5cdFx0YS5jay5jay1idXR0b24gLmNrLWJ1dHRvbl9faWNvbiB1c2UsXG5cdFx0LmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19pY29uIHVzZSAqLFxuXHRcdGEuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2ljb24gdXNlICoge1xuXHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0fVxuLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCwgYS5jay5jay1idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdC8qIEVuYWJsZSBmb250IHNpemUgaW5oZXJpdGFuY2UsIHdoaWNoIGFsbG93cyBmbHVpZCBVSSBzY2FsaW5nLiAqL1xuXHRcdGZvbnQtc2l6ZTogaW5oZXJpdDtcblx0XHRmb250LXdlaWdodDogaW5oZXJpdDtcblx0XHRjb2xvcjogaW5oZXJpdDtcblx0XHRjdXJzb3I6IGluaGVyaXQ7XG5cblx0XHQvKiBNdXN0IGJlIGNvbnNpc3RlbnQgd2l0aCAuY2staWNvbidzIHZlcnRpY2FsIGFsaWduLiBPdGhlcndpc2UsIGJ1dHRvbnMgd2l0aCBhbmRcblx0XHR3aXRob3V0IGxhYmVscyAoYnV0IHdpdGggaWNvbnMpIGhhdmUgZGlmZmVyZW50IHNpemVzIGluIENocm9tZSAqL1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCwgW2Rpcj1cImx0clwiXSBhLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwsIFtkaXI9XCJydGxcIl0gYS5jay5jay1idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdH1cbi5jay5jay1idXR0b24gLmNrLWJ1dHRvbl9fa2V5c3Ryb2tlLCBhLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19rZXlzdHJva2Uge1xuXHRcdGNvbG9yOiBpbmhlcml0O1xuXG5cdFx0b3BhY2l0eTogLjU7XG5cdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19rZXlzdHJva2UsIFtkaXI9XCJsdHJcIl0gYS5jay5jay1idXR0b24gLmNrLWJ1dHRvbl9fa2V5c3Ryb2tlIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2tleXN0cm9rZSwgW2Rpcj1cInJ0bFwiXSBhLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19rZXlzdHJva2Uge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0fVxuLyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy83MCAqL1xuLmNrLmNrLWJ1dHRvbi5jay1kaXNhYmxlZDphY3RpdmUsXG5cdFx0YS5jay5jay1idXR0b24uY2stZGlzYWJsZWQ6YWN0aXZlLFxuXHRcdC5jay5jay1idXR0b24uY2stZGlzYWJsZWQ6Zm9jdXMsXG5cdFx0YS5jay5jay1idXR0b24uY2stZGlzYWJsZWQ6Zm9jdXMge1xuXHRcdFx0LyogVGhlIGRpc2FibGVkIGJ1dHRvbiBzaG91bGQgaGF2ZSBhIHNsaWdodGx5IGxlc3MgdmlzaWJsZSBzaGFkb3cgd2hlbiBmb2N1c2VkLiAqL1xuXHRcdFx0Ym94LXNoYWRvdzogdmFyKC0tY2stZm9jdXMtZGlzYWJsZWQtb3V0ZXItc2hhZG93KSwgMCAwO1xuXHRcdH1cbi5jay5jay1idXR0b24uY2stZGlzYWJsZWQgLmNrLWJ1dHRvbl9faWNvbiwgYS5jay5jay1idXR0b24uY2stZGlzYWJsZWQgLmNrLWJ1dHRvbl9faWNvbiB7XG5cdFx0XHRvcGFjaXR5OiB2YXIoLS1jay1kaXNhYmxlZC1vcGFjaXR5KTtcblx0XHR9XG4vKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvaXNzdWVzLzk4ICovXG4uY2suY2stYnV0dG9uLmNrLWRpc2FibGVkIC5jay1idXR0b25fX2xhYmVsLCBhLmNrLmNrLWJ1dHRvbi5jay1kaXNhYmxlZCAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRvcGFjaXR5OiB2YXIoLS1jay1kaXNhYmxlZC1vcGFjaXR5KTtcblx0XHR9XG4uY2suY2stYnV0dG9uLmNrLWRpc2FibGVkIC5jay1idXR0b25fX2tleXN0cm9rZSwgYS5jay5jay1idXR0b24uY2stZGlzYWJsZWQgLmNrLWJ1dHRvbl9fa2V5c3Ryb2tlIHtcblx0XHRcdG9wYWNpdHk6IC4zO1xuXHRcdH1cbi5jay5jay1idXR0b24uY2stYnV0dG9uX3dpdGgtdGV4dCwgYS5jay5jay1idXR0b24uY2stYnV0dG9uX3dpdGgtdGV4dCB7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy10aW55KSB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG5cdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWJ1dHRvbi5jay1idXR0b25fd2l0aC10ZXh0IC5jay1idXR0b25fX2ljb24sIFtkaXI9XCJsdHJcIl0gYS5jay5jay1idXR0b24uY2stYnV0dG9uX3dpdGgtdGV4dCAuY2stYnV0dG9uX19pY29uIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWJ1dHRvbi5jay1idXR0b25fd2l0aC10ZXh0IC5jay1idXR0b25fX2ljb24sIFtkaXI9XCJydGxcIl0gYS5jay5jay1idXR0b24uY2stYnV0dG9uX3dpdGgtdGV4dCAuY2stYnV0dG9uX19pY29uIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0fVxuLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cbi5jay5jay1idXR0b24uY2stYnV0dG9uX3dpdGgta2V5c3Ryb2tlIC5jay1idXR0b25fX2xhYmVsLCBhLmNrLmNrLWJ1dHRvbi5jay1idXR0b25fd2l0aC1rZXlzdHJva2UgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0ZmxleC1ncm93OiAxO1xuXHRcdH1cbi8qIEEgc3R5bGUgb2YgdGhlIGJ1dHRvbiB3aGljaCBpcyBjdXJyZW50bHkgb24sIGUuZy4gaXRzIGZlYXR1cmUgaXMgYWN0aXZlLiAqL1xuLmNrLmNrLWJ1dHRvbi5jay1vbiwgYS5jay5jay1idXR0b24uY2stb24ge1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1vbi1iYWNrZ3JvdW5kKTtcblxuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1idXR0b24tb24tY29sb3IpO1xuXHR9XG4uY2suY2stYnV0dG9uLmNrLW9uOm5vdCguY2stZGlzYWJsZWQpOmhvdmVyLCBhLmNrLmNrLWJ1dHRvbi5jay1vbjpub3QoLmNrLWRpc2FibGVkKTpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1idXR0b24tb24taG92ZXItYmFja2dyb3VuZCk7XG5cdFx0fVxuLmNrLmNrLWJ1dHRvbi5jay1vbjpub3QoLmNrLWRpc2FibGVkKTphY3RpdmUsIGEuY2suY2stYnV0dG9uLmNrLW9uOm5vdCguY2stZGlzYWJsZWQpOmFjdGl2ZSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1idXR0b24tb24tYWN0aXZlLWJhY2tncm91bmQpO1xuXHRcdH1cbi8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvOTggKi9cbi5jay5jay1idXR0b24uY2stb24uY2stZGlzYWJsZWQsIGEuY2suY2stYnV0dG9uLmNrLW9uLmNrLWRpc2FibGVkIHtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1idXR0b24tb24tZGlzYWJsZWQtYmFja2dyb3VuZCk7XG5cdH1cbi5jay5jay1idXR0b24uY2stYnV0dG9uLXNhdmUsIGEuY2suY2stYnV0dG9uLmNrLWJ1dHRvbi1zYXZlIHtcblx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYnV0dG9uLXNhdmUpO1xuXHR9XG4uY2suY2stYnV0dG9uLmNrLWJ1dHRvbi1jYW5jZWwsIGEuY2suY2stYnV0dG9uLmNrLWJ1dHRvbi1jYW5jZWwge1xuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1idXR0b24tY2FuY2VsKTtcblx0fVxuLyogQSBzdHlsZSBvZiB0aGUgYnV0dG9uIHdoaWNoIGhhbmRsZXMgdGhlIHByaW1hcnkgYWN0aW9uLiAqL1xuLmNrLmNrLWJ1dHRvbi1hY3Rpb24sXG5hLmNrLmNrLWJ1dHRvbi1hY3Rpb24ge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1idXR0b24tYWN0aW9uLWJhY2tncm91bmQpO1xuXG5cdGNvbG9yOiB2YXIoLS1jay1jb2xvci1idXR0b24tYWN0aW9uLXRleHQpO1xufVxuLmNrLmNrLWJ1dHRvbi1hY3Rpb246bm90KC5jay1kaXNhYmxlZCk6aG92ZXIsIGEuY2suY2stYnV0dG9uLWFjdGlvbjpub3QoLmNrLWRpc2FibGVkKTpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1idXR0b24tYWN0aW9uLWhvdmVyLWJhY2tncm91bmQpO1xuXHRcdH1cbi5jay5jay1idXR0b24tYWN0aW9uOm5vdCguY2stZGlzYWJsZWQpOmFjdGl2ZSwgYS5jay5jay1idXR0b24tYWN0aW9uOm5vdCguY2stZGlzYWJsZWQpOmFjdGl2ZSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1idXR0b24tYWN0aW9uLWFjdGl2ZS1iYWNrZ3JvdW5kKTtcblx0XHR9XG4vKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvaXNzdWVzLzk4ICovXG4uY2suY2stYnV0dG9uLWFjdGlvbi5jay1kaXNhYmxlZCwgYS5jay5jay1idXR0b24tYWN0aW9uLmNrLWRpc2FibGVkIHtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1idXR0b24tYWN0aW9uLWRpc2FibGVkLWJhY2tncm91bmQpO1xuXHR9XG4uY2suY2stYnV0dG9uLWJvbGQsXG5hLmNrLmNrLWJ1dHRvbi1ib2xkIHtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIGNsYXNzIHdoaWNoIGluZGljYXRlcyB0aGF0IGFuIGVsZW1lbnQgaG9sZGluZyBpdCBpcyBkaXNhYmxlZC5cbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qIE5vdGU6IFRvIGF2b2lkIHJlbmRlcmluZyBpc3N1ZXMgKGFsaWFzaW5nKSBidXQgdG8gcHJlc2VydmUgdGhlIHJlc3BvbnNpdmUgbmF0dXJlXG5vZiB0aGUgY29tcG9uZW50LCBmbG9hdGluZ+KAk3BvaW50IG51bWJlcnMgaGF2ZSBiZWVuIHVzZWQgd2hpY2gsIGZvciB0aGUgZGVmYXVsdCBmb250IHNpemVcbihzZWU6IC0tY2stZm9udC1zaXplLWJhc2UpLCB3aWxsIGdlbmVyYXRlIHNpbXBsZSBpbnRlZ2Vycy4gKi9cbjpyb290IHtcblx0LyogMzRweCBhdCAxM3B4IGZvbnQtc2l6ZSAqL1xuXHQtLWNrLXN3aXRjaC1idXR0b24tdG9nZ2xlLXdpZHRoOiAyLjYxNTM4NDYxNTRlbTtcblx0LyogMTRweCBhdCAxM3B4IGZvbnQtc2l6ZSAqL1xuXHQtLWNrLXN3aXRjaC1idXR0b24tdG9nZ2xlLWlubmVyLXNpemU6IGNhbGMoMS4wNzY5MjMwNzY5ZW0gKyAxcHgpO1xuXHQtLWNrLXN3aXRjaC1idXR0b24tdHJhbnNsYXRpb246IGNhbGMoXG5cdFx0dmFyKC0tY2stc3dpdGNoLWJ1dHRvbi10b2dnbGUtd2lkdGgpIC1cblx0XHR2YXIoLS1jay1zd2l0Y2gtYnV0dG9uLXRvZ2dsZS1pbm5lci1zaXplKSAtXG5cdFx0MnB4IC8qIEJvcmRlciAqL1xuXHQpO1xuXHQtLWNrLXN3aXRjaC1idXR0b24taW5uZXItaG92ZXItc2hhZG93OiAwIDAgMCA1cHggdmFyKC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1pbm5lci1zaGFkb3cpO1xufVxuLyogVW5saWtlIGEgcmVndWxhciBidXR0b24sIHRoZSBzd2l0Y2ggYnV0dG9uIHRleHQgY29sb3IgYW5kIGJhY2tncm91bmQgc2hvdWxkIG5ldmVyIGNoYW5nZS5cblx0ICogQ2hhbmdpbmcgdG9nZ2xlIHN3aXRjaCAoYmFja2dyb3VuZCwgb3V0bGluZSkgaXMgZW5vdWdoIHRvIGNhcnJ5IHRoZSBpbmZvcm1hdGlvbiBhYm91dCB0aGVcblx0ICogc3RhdGUgb2YgdGhlIGVudGlyZSBjb21wb25lbnQgKGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzEyNTE5KVxuXHQgKi9cbi5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uLCAuY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbjpob3ZlciwgLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b246Zm9jdXMsIC5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uOmFjdGl2ZSwgLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24uY2stb246aG92ZXIsIC5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uLmNrLW9uOmZvY3VzLCAuY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbi5jay1vbjphY3RpdmUge1xuXHRcdGNvbG9yOiBpbmhlcml0O1xuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdC8qIFNlcGFyYXRlIHRoZSBsYWJlbCBmcm9tIHRoZSBzd2l0Y2ggKi9cblx0XHRcdG1hcmdpbi1yaWdodDogY2FsYygyICogdmFyKC0tY2stc3BhY2luZy1sYXJnZSkpO1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdC8qIFNlcGFyYXRlIHRoZSBsYWJlbCBmcm9tIHRoZSBzd2l0Y2ggKi9cblx0XHRcdG1hcmdpbi1sZWZ0OiBjYWxjKDIgKiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSk7XG5cdH1cbi5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIC5jay1idXR0b25fX3RvZ2dsZSB7XG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHRcdC8qIEFwcGx5IHNvbWUgc21vb3RoIHRyYW5zaXRpb24gdG8gdGhlIGJveC1zaGFkb3cgYW5kIGJvcmRlci4gKi9cblx0XHQvKiBHZW50bHkgYW5pbWF0ZSB0aGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGUgdG9nZ2xlIHN3aXRjaCAqL1xuXHRcdHRyYW5zaXRpb246IGJhY2tncm91bmQgNDAwbXMgZWFzZSwgYm94LXNoYWRvdyAuMnMgZWFzZS1pbi1vdXQsIG91dGxpbmUgLjJzIGVhc2UtaW4tb3V0O1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRcdHdpZHRoOiB2YXIoLS1jay1zd2l0Y2gtYnV0dG9uLXRvZ2dsZS13aWR0aCk7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1vZmYtYmFja2dyb3VuZCk7XG5cdH1cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24gLmNrLWJ1dHRvbl9fdG9nZ2xlLFxuXHQuY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbiAuY2stYnV0dG9uX190b2dnbGUuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbiAuY2stYnV0dG9uX190b2dnbGUge1xuXHRcdFx0LyogTWFrZSBzdXJlIHRoZSB0b2dnbGUgaXMgYWx3YXlzIHRvIHRoZSByaWdodCBhcyBmYXIgYXMgcG9zc2libGUuICovXG5cdFx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbiAuY2stYnV0dG9uX190b2dnbGUge1xuXHRcdFx0LyogTWFrZSBzdXJlIHRoZSB0b2dnbGUgaXMgYWx3YXlzIHRvIHRoZSBsZWZ0IGFzIGZhciBhcyBwb3NzaWJsZS4gKi9cblx0XHRcdG1hcmdpbi1yaWdodDogYXV0bztcblx0fVxuLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24gLmNrLWJ1dHRvbl9fdG9nZ2xlIC5jay1idXR0b25fX3RvZ2dsZV9faW5uZXIge1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHRcdFx0d2lkdGg6IHZhcigtLWNrLXN3aXRjaC1idXR0b24tdG9nZ2xlLWlubmVyLXNpemUpO1xuXHRcdFx0aGVpZ2h0OiB2YXIoLS1jay1zd2l0Y2gtYnV0dG9uLXRvZ2dsZS1pbm5lci1zaXplKTtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24taW5uZXItYmFja2dyb3VuZCk7XG5cblx0XHRcdC8qIEdlbnRseSBhbmltYXRlIHRoZSBpbm5lciBwYXJ0IG9mIHRoZSB0b2dnbGUgc3dpdGNoICovXG5cdFx0XHR0cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTtcblx0XHR9XG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIC5jay1idXR0b25fX3RvZ2dsZSAuY2stYnV0dG9uX190b2dnbGVfX2lubmVyLFxuXHQuY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbiAuY2stYnV0dG9uX190b2dnbGUgLmNrLWJ1dHRvbl9fdG9nZ2xlX19pbm5lci5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiBjYWxjKC41ICogdmFyKC0tY2stYm9yZGVyLXJhZGl1cykpO1xuXHR9XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24gLmNrLWJ1dHRvbl9fdG9nZ2xlIC5jay1idXR0b25fX3RvZ2dsZV9faW5uZXIge1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHRcdH1cblx0XHRcdH1cbi5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIC5jay1idXR0b25fX3RvZ2dsZTpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLW9mZi1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0XHR9XG4uY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbiAuY2stYnV0dG9uX190b2dnbGU6aG92ZXIgLmNrLWJ1dHRvbl9fdG9nZ2xlX19pbm5lciB7XG5cdFx0XHRcdGJveC1zaGFkb3c6IHZhcigtLWNrLXN3aXRjaC1idXR0b24taW5uZXItaG92ZXItc2hhZG93KTtcblx0XHRcdH1cbi5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uLmNrLWRpc2FibGVkIC5jay1idXR0b25fX3RvZ2dsZSB7XG5cdFx0b3BhY2l0eTogdmFyKC0tY2stZGlzYWJsZWQtb3BhY2l0eSk7XG5cdH1cbi8qIE92ZXJyaWRpbmcgZGVmYXVsdCAuY2stYnV0dG9uOmZvY3VzIHN0eWxlcyArIGFuIG91dGxpbmUgYXJvdW5kIHRoZSB0b29nbGUgKi9cbi5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uOmZvY3VzIHtcblx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0fVxuLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b246Zm9jdXMgLmNrLWJ1dHRvbl9fdG9nZ2xlIHtcblx0XHRcdGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpLCAwIDAgMCA1cHggdmFyKC0tY2stY29sb3ItZm9jdXMtb3V0ZXItc2hhZG93KTtcblx0XHRcdG91dGxpbmUtb2Zmc2V0OiAxcHg7XG5cdFx0XHRvdXRsaW5lOiB2YXIoLS1jay1mb2N1cy1yaW5nKTtcblx0XHR9XG4vKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eSAqL1xuLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24uY2stb24gLmNrLWJ1dHRvbl9fdG9nZ2xlIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24tb24tYmFja2dyb3VuZCk7XG5cdFx0fVxuLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24uY2stb24gLmNrLWJ1dHRvbl9fdG9nZ2xlOmhvdmVyIHtcblx0XHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1vbi1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0XHRcdH1cbi8qXG5cdFx0XHRcdCogTW92ZSB0aGUgdG9nZ2xlIHN3aXRjaCB0byB0aGUgcmlnaHQuIEl0IHdpbGwgYmUgYW5pbWF0ZWQuXG5cdFx0XHRcdCovXG5bZGlyPVwibHRyXCJdIC5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uLmNrLW9uIC5jay1idXR0b25fX3RvZ2dsZSAuY2stYnV0dG9uX190b2dnbGVfX2lubmVyIHtcblx0XHRcdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoIHZhciggLS1jay1zd2l0Y2gtYnV0dG9uLXRyYW5zbGF0aW9uICkgKTtcblx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbi5jay1vbiAuY2stYnV0dG9uX190b2dnbGUgLmNrLWJ1dHRvbl9fdG9nZ2xlX19pbm5lciB7XG5cdFx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKCBjYWxjKCAtMSAqIHZhciggLS1jay1zd2l0Y2gtYnV0dG9uLXRyYW5zbGF0aW9uICkgKSApO1xuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi5jay5jay1idXR0b24uY2stbGlzdC1pdGVtLWJ1dHRvbiB7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctdGlueSkgY2FsYygyICogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkpO1xufVxuLmNrLmNrLWJ1dHRvbi5jay1saXN0LWl0ZW0tYnV0dG9uLFxuXHQuY2suY2stYnV0dG9uLmNrLWxpc3QtaXRlbS1idXR0b24uY2stb24ge1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWxpc3QtYmFja2dyb3VuZCk7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLXRleHQpO1xuXHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1idXR0b24uY2stbGlzdC1pdGVtLWJ1dHRvbjpoYXMoLmNrLWxpc3QtaXRlbS1idXR0b25fX2NoZWNrLWhvbGRlcikge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stYnV0dG9uLmNrLWxpc3QtaXRlbS1idXR0b246aGFzKC5jay1saXN0LWl0ZW0tYnV0dG9uX19jaGVjay1ob2xkZXIpIHtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG4vKlxuXHQgKiBgLmNrLW9uYCBjbGFzcyBhbmQgYmFja2dyb3VuZCBzdHlsaW5nIGlzIG92ZXJyaWRkZW4gZm9yIGBjay1idXR0b25gIGluIG1hbnkgcGxhY2VzLlxuXHQgKiBUaGlzIGlzIGEgd29ya2Fyb3VuZCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgYmFja2dyb3VuZCBpcyBub3Qgb3ZlcnJpZGRlbiBhbmQgdXNlcyBzaW1pbGFyXG5cdCAqIHNlbGVjdG9yIHNwZWNpZmljaXR5IGFzIHRoZSBvdGhlciBvdmVycmlkZXMuXG5cdCAqL1xuLmNrLmNrLWJ1dHRvbi5jay1saXN0LWl0ZW0tYnV0dG9uOmhvdmVyOm5vdCguY2stZGlzYWJsZWQpLFxuXHQuY2suY2stYnV0dG9uLmNrLWxpc3QtaXRlbS1idXR0b24uY2stYnV0dG9uLmNrLW9uOmhvdmVyLFxuXHQuY2suY2stYnV0dG9uLmNrLWxpc3QtaXRlbS1idXR0b24uY2stb246bm90KC5jay1saXN0LWl0ZW0tYnV0dG9uX3RvZ2dsZWFibGUpLFxuXHQuY2suY2stYnV0dG9uLmNrLWxpc3QtaXRlbS1idXR0b24uY2stb246aG92ZXIge1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWxpc3QtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQpO1xuXHR9XG4uY2suY2stYnV0dG9uLmNrLWxpc3QtaXRlbS1idXR0b246aG92ZXI6bm90KC5jay1kaXNhYmxlZCk6bm90KC5jay1kaXNhYmxlZCksIC5jay5jay1idXR0b24uY2stbGlzdC1pdGVtLWJ1dHRvbi5jay1idXR0b24uY2stb246aG92ZXI6bm90KC5jay1kaXNhYmxlZCksIC5jay5jay1idXR0b24uY2stbGlzdC1pdGVtLWJ1dHRvbi5jay1vbjpub3QoLmNrLWxpc3QtaXRlbS1idXR0b25fdG9nZ2xlYWJsZSk6bm90KC5jay1kaXNhYmxlZCksIC5jay5jay1idXR0b24uY2stbGlzdC1pdGVtLWJ1dHRvbi5jay1vbjpob3Zlcjpub3QoLmNrLWRpc2FibGVkKSB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItdGV4dCk7XG5cdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1jb2xsYXBzaWJsZS1hcnJvdy1zaXplOiBjYWxjKDAuNSAqIHZhcigtLWNrLWljb24tc2l6ZSkpO1xufVxuLmNrLmNrLWNvbGxhcHNpYmxlID4gLmNrLmNrLWJ1dHRvbiB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHRjb2xvcjogaW5oZXJpdDtcblx0fVxuLmNrLmNrLWNvbGxhcHNpYmxlID4gLmNrLmNrLWJ1dHRvbjpmb2N1cyB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHR9XG4uY2suY2stY29sbGFwc2libGUgPiAuY2suY2stYnV0dG9uOmFjdGl2ZSwgLmNrLmNrLWNvbGxhcHNpYmxlID4gLmNrLmNrLWJ1dHRvbjpub3QoOmZvY3VzKSwgLmNrLmNrLWNvbGxhcHNpYmxlID4gLmNrLmNrLWJ1dHRvbjpob3Zlcjpub3QoOmZvY3VzKSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdH1cbi5jay5jay1jb2xsYXBzaWJsZSA+IC5jay5jay1idXR0b24gPiAuY2staWNvbiB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRcdHdpZHRoOiB2YXIoLS1jay1jb2xsYXBzaWJsZS1hcnJvdy1zaXplKTtcblx0XHR9XG4uY2suY2stY29sbGFwc2libGUgPiAuY2stY29sbGFwc2libGVfX2NoaWxkcmVuIHtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdH1cbi5jay5jay1jb2xsYXBzaWJsZS5jay1jb2xsYXBzaWJsZV9jb2xsYXBzZWQgPiAuY2suY2stYnV0dG9uIC5jay1pY29uIHtcblx0XHRcdHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG5cdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1jb2xvci1ncmlkLXRpbGUtc2l6ZTogMjRweDtcblxuXHQvKiBOb3QgdXNpbmcgZ2xvYmFsIGNvbG9ycyBoZXJlIGJlY2F1c2UgdGhlc2UgbWF5IGNoYW5nZSBidXQgc29tZSBjb2xvcnMgaW4gYSBwYWxsZXR0ZVxuXHQgKiByZXF1aXJlIHNwZWNpYWwgdHJlYXRtZW50LiBGb3IgaW5zdGFuY2UsIHRoaXMgZW5zdXJlcyBubyBtYXR0ZXIgd2hhdCB0aGUgVUkgdGV4dCBjb2xvciBpcyxcblx0ICogdGhlIGNoZWNrIGljb24gd2lsbCBsb29rIGdvb2Qgb24gdGhlIGJsYWNrIGNvbG9yIHRpbGUuICovXG5cdC0tY2stY29sb3ItY29sb3ItZ3JpZC1jaGVjay1pY29uOiBoc2woMjEyLCA4MSUsIDQ2JSk7XG59XG4uY2suY2stY29sb3ItZ3JpZCB7XG5cdGdyaWQtZ2FwOiA1cHg7XG5cdHBhZGRpbmc6IDhweDtcbn1cbi5jay5jay1jb2xvci1ncmlkX190aWxlIHtcblx0dHJhbnNpdGlvbjogLjJzIGVhc2UgYm94LXNoYWRvdztcbn1cbkBtZWRpYSAoZm9yY2VkLWNvbG9yczogbm9uZSkge1xuXHRcdC5jay5jay1jb2xvci1ncmlkX190aWxlIHtcblx0XHR3aWR0aDogdmFyKC0tY2stY29sb3ItZ3JpZC10aWxlLXNpemUpO1xuXHRcdGhlaWdodDogdmFyKC0tY2stY29sb3ItZ3JpZC10aWxlLXNpemUpO1xuXHRcdG1pbi13aWR0aDogdmFyKC0tY2stY29sb3ItZ3JpZC10aWxlLXNpemUpO1xuXHRcdG1pbi1oZWlnaHQ6IHZhcigtLWNrLWNvbG9yLWdyaWQtdGlsZS1zaXplKTtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdGJvcmRlcjogMDtcblx0XHR9XG5cblx0XHQuY2suY2stY29sb3ItZ3JpZF9fdGlsZS5jay1vbixcblx0XHQuY2suY2stY29sb3ItZ3JpZF9fdGlsZTpmb2N1czpub3QoIC5jay1kaXNhYmxlZCApLFxuXHRcdC5jay5jay1jb2xvci1ncmlkX190aWxlOmhvdmVyOm5vdCggLmNrLWRpc2FibGVkICkge1xuXHRcdFx0LyogRGlzYWJsZSB0aGUgZGVmYXVsdCAuY2stYnV0dG9uJ3MgYm9yZGVyIHJpbmcuICovXG5cdFx0XHRib3JkZXI6IDA7XG5cdFx0fVxuXG5cdFx0LmNrLmNrLWNvbG9yLWdyaWRfX3RpbGUuY2stY29sb3Itc2VsZWN0b3JfX2NvbG9yLXRpbGVfYm9yZGVyZWQge1xuXHRcdFx0Ym94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHR9XG5cblx0XHQuY2suY2stY29sb3ItZ3JpZF9fdGlsZS5jay1vbiB7XG5cdFx0XHRib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKSwgMCAwIDAgMnB4IHZhcigtLWNrLWNvbG9yLWJhc2UtdGV4dCk7XG5cdFx0fVxuXG5cdFx0LmNrLmNrLWNvbG9yLWdyaWRfX3RpbGU6Zm9jdXM6bm90KCAuY2stZGlzYWJsZWQgKSxcblx0XHQuY2suY2stY29sb3ItZ3JpZF9fdGlsZTpob3Zlcjpub3QoIC5jay1kaXNhYmxlZCApIHtcblx0XHRcdGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpLCAwIDAgMCAycHggdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0XHR9XG5cdH1cbi8qXG5cdCAqIEluIGhpZ2ggY29udHJhc3QgbW9kZSwgdGhlIGNvbG9ycyBhcmUgcmVwbGFjZWQgd2l0aCB0ZXh0IGxhYmVscy5cblx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE0OTA3LlxuXHQgKi9cbkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG5cdFx0LmNrLmNrLWNvbG9yLWdyaWRfX3RpbGUge1xuXHRcdHdpZHRoOiB1bnNldDtcblx0XHRoZWlnaHQ6IHVuc2V0O1xuXHRcdG1pbi13aWR0aDogdW5zZXQ7XG5cdFx0bWluLWhlaWdodDogdW5zZXQ7XG5cdFx0cGFkZGluZzogMCB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG5cblx0XHQuY2suY2stY29sb3ItZ3JpZF9fdGlsZSAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0fVxuXHR9XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuLmNrLmNrLWNvbG9yLWdyaWRfX3RpbGUge1xuXHRcdHRyYW5zaXRpb246IG5vbmU7XG59XG5cdH1cbi5jay5jay1jb2xvci1ncmlkX190aWxlLmNrLWRpc2FibGVkIHtcblx0XHRjdXJzb3I6IHVuc2V0O1xuXHRcdHRyYW5zaXRpb246IHVuc2V0O1xuXHR9XG4uY2suY2stY29sb3ItZ3JpZF9fdGlsZSAuY2suY2staWNvbiB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItY29sb3ItZ3JpZC1jaGVjay1pY29uKTtcblx0fVxuLmNrLmNrLWNvbG9yLWdyaWRfX3RpbGUuY2stb24gLmNrLmNrLWljb24ge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0fVxuLmNrLmNrLWNvbG9yLWdyaWRfX2xhYmVsIHtcblx0cGFkZGluZzogMCB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyogVmlldyBmcmFnbWVudCB3aXRoIGNvbG9yIGdyaWRzLiAqL1xuLmNrLmNrLWNvbG9yLXNlbGVjdG9yIC5jay1jb2xvci1ncmlkcy1mcmFnbWVudCAuY2stYnV0dG9uLmNrLWNvbG9yLXNlbGVjdG9yX19yZW1vdmUtY29sb3IsXG5cdFx0LmNrLmNrLWNvbG9yLXNlbGVjdG9yIC5jay1jb2xvci1ncmlkcy1mcmFnbWVudCAuY2stYnV0dG9uLmNrLWNvbG9yLXNlbGVjdG9yX19jb2xvci1waWNrZXIge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0fVxuLmNrLmNrLWNvbG9yLXNlbGVjdG9yIC5jay1jb2xvci1ncmlkcy1mcmFnbWVudCAuY2stYnV0dG9uLmNrLWNvbG9yLXNlbGVjdG9yX19jb2xvci1waWNrZXIge1xuXHRcdFx0cGFkZGluZzogY2FsYyh2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSAvIDIpIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHRcdH1cbi5jay5jay1jb2xvci1zZWxlY3RvciAuY2stY29sb3ItZ3JpZHMtZnJhZ21lbnQgLmNrLWJ1dHRvbi5jay1jb2xvci1zZWxlY3Rvcl9fY29sb3ItcGlja2VyOm5vdCg6Zm9jdXMpIHtcblx0XHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRcdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWNvbG9yLXNlbGVjdG9yIC5jay1jb2xvci1ncmlkcy1mcmFnbWVudCAuY2stYnV0dG9uLmNrLWNvbG9yLXNlbGVjdG9yX19jb2xvci1waWNrZXIgLmNrLmNrLWljb24ge1xuXHRcdFx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWNvbG9yLXNlbGVjdG9yIC5jay1jb2xvci1ncmlkcy1mcmFnbWVudCAuY2stYnV0dG9uLmNrLWNvbG9yLXNlbGVjdG9yX19jb2xvci1waWNrZXIgLmNrLmNrLWljb24ge1xuXHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0fVxuLmNrLmNrLWNvbG9yLXNlbGVjdG9yIC5jay1jb2xvci1ncmlkcy1mcmFnbWVudCBsYWJlbC5jay5jay1jb2xvci1ncmlkX19sYWJlbCB7XG5cdFx0XHRmb250LXdlaWdodDogdW5zZXQ7XG5cdFx0fVxuLyogVmlldyBmcmFnbWVudCB3aXRoIGEgY29sb3IgcGlja2VyLiAqL1xuLmNrLmNrLWNvbG9yLXNlbGVjdG9yIC5jay1jb2xvci1waWNrZXItZnJhZ21lbnQgLmNrLmNrLWNvbG9yLXBpY2tlciB7XG5cdFx0XHRwYWRkaW5nOiA4cHg7XG5cdFx0fVxuLmNrLmNrLWNvbG9yLXNlbGVjdG9yIC5jay1jb2xvci1waWNrZXItZnJhZ21lbnQgLmNrLmNrLWNvbG9yLXBpY2tlciAuaGV4LWNvbG9yLXBpY2tlciB7XG5cdFx0XHRcdGhlaWdodDogMTAwcHg7XG5cdFx0XHRcdG1pbi13aWR0aDogMTgwcHg7XG5cdFx0XHR9XG4uY2suY2stY29sb3Itc2VsZWN0b3IgLmNrLWNvbG9yLXBpY2tlci1mcmFnbWVudCAuY2suY2stY29sb3ItcGlja2VyIC5oZXgtY29sb3ItcGlja2VyOjpwYXJ0KHNhdHVyYXRpb24pIHtcblx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKSB2YXIoLS1jay1ib3JkZXItcmFkaXVzKSAwIDA7XG5cdFx0XHRcdH1cbi5jay5jay1jb2xvci1zZWxlY3RvciAuY2stY29sb3ItcGlja2VyLWZyYWdtZW50IC5jay5jay1jb2xvci1waWNrZXIgLmhleC1jb2xvci1waWNrZXI6OnBhcnQoaHVlKSB7XG5cdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMCAwIHZhcigtLWNrLWJvcmRlci1yYWRpdXMpIHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHRcdFx0XHR9XG4uY2suY2stY29sb3Itc2VsZWN0b3IgLmNrLWNvbG9yLXBpY2tlci1mcmFnbWVudCAuY2suY2stY29sb3ItcGlja2VyIC5oZXgtY29sb3ItcGlja2VyOjpwYXJ0KHNhdHVyYXRpb24tcG9pbnRlciksXG5cdFx0XHRcdC5jay5jay1jb2xvci1zZWxlY3RvciAuY2stY29sb3ItcGlja2VyLWZyYWdtZW50IC5jay5jay1jb2xvci1waWNrZXIgLmhleC1jb2xvci1waWNrZXI6OnBhcnQoaHVlLXBvaW50ZXIpIHtcblx0XHRcdFx0XHR3aWR0aDogMTVweDtcblx0XHRcdFx0XHRoZWlnaHQ6IDE1cHg7XG5cdFx0XHRcdH1cbi5jay5jay1jb2xvci1zZWxlY3RvciAuY2stY29sb3ItcGlja2VyLWZyYWdtZW50IC5jay5jay1jb2xvci1zZWxlY3Rvcl9hY3Rpb24tYmFyIHtcblx0XHRcdHBhZGRpbmc6IDAgOHB4IDhweDtcblx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIGhlbHBlciB0byBjb21iaW5lIG11bHRpcGxlIHNoYWRvd3MuXG4gKi9cbi8qKlxuICogR2l2ZXMgYW4gZWxlbWVudCBhIGRyb3Agc2hhZG93IHNvIGl0IGxvb2tzIGxpa2UgYSBmbG9hdGluZyBwYW5lbC5cbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1kaWFsb2ctb3ZlcmxheS1iYWNrZ3JvdW5kLWNvbG9yOiBoc2xhKCAwLCAwJSwgMCUsIC41ICk7XG5cdC0tY2stZGlhbG9nLWRyb3Atc2hhZG93OiAwcHggMHB4IDZweCAycHggaHNsKDBkZWcgMCUgMCUgLyAxNSUpO1xuXHQtLWNrLWRpYWxvZy1tYXgtd2lkdGg6IDEwMHZ3O1xuXHQtLWNrLWRpYWxvZy1tYXgtaGVpZ2h0OiA5MHZoO1xuXHQtLWNrLWNvbG9yLWRpYWxvZy1iYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLWRpYWxvZy1mb3JtLWhlYWRlci1ib3JkZXI6IHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcbn1cbi5jay5jay1kaWFsb2ctb3ZlcmxheSB7XG5cdGFuaW1hdGlvbjogY2stZGlhbG9nLWZhZGUtaW4gLjNzO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1kaWFsb2ctb3ZlcmxheS1iYWNrZ3JvdW5kLWNvbG9yKTtcblx0ei1pbmRleDogdmFyKC0tY2stei1kaWFsb2cpO1xufVxuLmNrLmNrLWRpYWxvZyB7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG5cblx0LS1jay1kcm9wLXNoYWRvdzogdmFyKC0tY2stZGlhbG9nLWRyb3Atc2hhZG93KTtcblxuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1kaWFsb2ctYmFja2dyb3VuZCk7XG5cdG1heC1oZWlnaHQ6IHZhcigtLWNrLWRpYWxvZy1tYXgtaGVpZ2h0KTtcblx0bWF4LXdpZHRoOiB2YXIoLS1jay1kaWFsb2ctbWF4LXdpZHRoKTtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xufVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stZGlhbG9nLFxuXHQuY2suY2stZGlhbG9nLmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdH1cbi5jay5jay1kaWFsb2cge1xuXHRib3gtc2hhZG93OiB2YXIoLS1jay1kcm9wLXNoYWRvdyksIDAgMDtcbn1cbi5jay5jay1kaWFsb2cgLmNrLmNrLWZvcm1fX2hlYWRlciB7XG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWRpYWxvZy1mb3JtLWhlYWRlci1ib3JkZXIpO1xuXHR9XG4uY2stZGlhbG9nLXNjcm9sbC1sb2NrZWQge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuQGtleWZyYW1lcyBjay1kaWFsb2ctZmFkZS1pbiB7XG5cdDAlIHtcblx0XHRiYWNrZ3JvdW5kOiBoc2xhKCAwLCAwJSwgMCUsIDAgKTtcblx0fVxuXG5cdDEwMCUge1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWRpYWxvZy1vdmVybGF5LWJhY2tncm91bmQtY29sb3IpO1xuXHR9XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLmNrLmNrLWRpYWxvZyAuY2suY2stZGlhbG9nX19hY3Rpb25zIHtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0fVxuLmNrLmNrLWRpYWxvZyAuY2suY2stZGlhbG9nX19hY3Rpb25zID4gKiArICoge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgY2xhc3Mgd2hpY2ggaW5kaWNhdGVzIHRoYXQgYW4gZWxlbWVudCBob2xkaW5nIGl0IGlzIGRpc2FibGVkLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIGhlbHBlciB0byBjb21iaW5lIG11bHRpcGxlIHNoYWRvd3MuXG4gKi9cbi8qKlxuICogR2l2ZXMgYW4gZWxlbWVudCBhIGRyb3Agc2hhZG93IHNvIGl0IGxvb2tzIGxpa2UgYSBmbG9hdGluZyBwYW5lbC5cbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1kcm9wZG93bi1hcnJvdy1zaXplOiBjYWxjKDAuNSAqIHZhcigtLWNrLWljb24tc2l6ZSkpO1xufVxuLmNrLmNrLWRyb3Bkb3duIHtcblx0LyogRW5hYmxlIGZvbnQgc2l6ZSBpbmhlcml0YW5jZSwgd2hpY2ggYWxsb3dzIGZsdWlkIFVJIHNjYWxpbmcuICovXG5cdGZvbnQtc2l6ZTogaW5oZXJpdDtcbn1cbi5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX2Fycm93IHtcblx0XHR3aWR0aDogdmFyKC0tY2stZHJvcGRvd24tYXJyb3ctc2l6ZSk7XG5cdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fYXJyb3cge1xuXHRcdFx0cmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXG5cdFx0XHQvKiBBIHNwYWNlIHRvIGFjY29tbW9kYXRlIHRoZSB0cmlhbmdsZS4gKi9cblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX2Fycm93IHtcblx0XHRcdGxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXG5cdFx0XHQvKiBBIHNwYWNlIHRvIGFjY29tbW9kYXRlIHRoZSB0cmlhbmdsZS4gKi9cblx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0fVxuLmNrLmNrLWRyb3Bkb3duLmNrLWRpc2FibGVkIC5jay1kcm9wZG93bl9fYXJyb3cge1xuXHRcdG9wYWNpdHk6IHZhcigtLWNrLWRpc2FibGVkLW9wYWNpdHkpO1xuXHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1kcm9wZG93biAuY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b246bm90KC5jay1idXR0b25fd2l0aC10ZXh0KSB7XG5cdFx0XHRcdC8qIE1ha2Ugc3VyZSBkcm9wZG93bnMgd2l0aCBqdXN0IGFuIGljb24gaGF2ZSB0aGUgcmlnaHQgaW5uZXIgc3BhY2luZyAqL1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdFx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stZHJvcGRvd24gLmNrLWJ1dHRvbi5jay1kcm9wZG93bl9fYnV0dG9uOm5vdCguY2stYnV0dG9uX3dpdGgtdGV4dCkge1xuXHRcdFx0XHQvKiBNYWtlIHN1cmUgZHJvcGRvd25zIHdpdGgganVzdCBhbiBpY29uIGhhdmUgdGhlIHJpZ2h0IGlubmVyIHNwYWNpbmcgKi9cblx0XHRcdFx0cGFkZGluZy1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0XHR9XG4vKiAjMjMgKi9cbi5jay5jay1kcm9wZG93biAuY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0d2lkdGg6IDdlbTtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHR9XG4vKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvaXNzdWVzLzcwICovXG4uY2suY2stZHJvcGRvd24gLmNrLWJ1dHRvbi5jay1kcm9wZG93bl9fYnV0dG9uLmNrLWRpc2FibGVkIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdG9wYWNpdHk6IHZhcigtLWNrLWRpc2FibGVkLW9wYWNpdHkpO1xuXHRcdH1cbi8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzgxNiAqL1xuLmNrLmNrLWRyb3Bkb3duIC5jay1idXR0b24uY2stZHJvcGRvd25fX2J1dHRvbi5jay1vbiB7XG5cdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdFx0fVxuLmNrLmNrLWRyb3Bkb3duIC5jay1idXR0b24uY2stZHJvcGRvd25fX2J1dHRvbi5jay1kcm9wZG93bl9fYnV0dG9uX2xhYmVsLXdpZHRoX2F1dG8gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0fVxuLyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvODY5OSAqL1xuLmNrLmNrLWRyb3Bkb3duIC5jay1idXR0b24uY2stZHJvcGRvd25fX2J1dHRvbi5jay1vZmY6YWN0aXZlLFxuXHRcdC5jay5jay1kcm9wZG93biAuY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b24uY2stb246YWN0aXZlIHtcblx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0fVxuLmNrLmNrLWRyb3Bkb3duIC5jay1idXR0b24uY2stZHJvcGRvd25fX2J1dHRvbi5jay1vZmY6YWN0aXZlOmZvY3VzLCAuY2suY2stZHJvcGRvd24gLmNrLWJ1dHRvbi5jay1kcm9wZG93bl9fYnV0dG9uLmNrLW9uOmFjdGl2ZTpmb2N1cyB7XG5cdFx0XHRcdGJveC1zaGFkb3c6IHZhcigtLWNrLWZvY3VzLW91dGVyLXNoYWRvdyksIDAgMDtcblx0XHRcdH1cbi5jay5jay1kcm9wZG93bl9fcGFuZWwge1xuXHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWRyb3Bkb3duLXBhbmVsLWJhY2tncm91bmQpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1kcm9wZG93bi1wYW5lbC1ib3JkZXIpO1xuXHRib3R0b206IDA7XG5cblx0LyogTWFrZSBzdXJlIHRoZSBwYW5lbCBpcyBhdCBsZWFzdCBhcyB3aWRlIGFzIHRoZSBkcm9wLWRvd24ncyBidXR0b24uICovXG5cdG1pbi13aWR0aDogMTAwJTtcbn1cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLWRyb3Bkb3duX19wYW5lbCxcblx0LmNrLmNrLWRyb3Bkb3duX19wYW5lbC5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHR9XG4uY2suY2stZHJvcGRvd25fX3BhbmVsIHtcblx0Ym94LXNoYWRvdzogdmFyKC0tY2stZHJvcC1zaGFkb3cpLCAwIDA7XG5cblx0LyogRGlzYWJsZWQgY29ybmVyIGJvcmRlciByYWRpdXMgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSAuZHJvcGRvd25fX2J1dHRvblxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy84MTYgKi9cbn1cbi5jay5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX3NlIHtcblx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHR9XG4uY2suY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9zdyB7XG5cdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdH1cbi5jay5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX25lIHtcblx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHR9XG4uY2suY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9udyB7XG5cdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdH1cbi5jay5jay1kcm9wZG93bl9fcGFuZWw6Zm9jdXMge1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cbi5jay5jay1kcm9wZG93biA+IC5jay1kcm9wZG93bl9fcGFuZWwgPiAuY2stbGlzdCB7XG5cdC8qIERpc2FibGVkIHJhZGl1cyBvZiB0b3AtbGVmdCBib3JkZXIgdG8gYmUgY29uc2lzdGVudCB3aXRoIC5kcm9wZG93bl9fYnV0dG9uXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzgxNiAqL1xuXHRib3JkZXItcmFkaXVzOiAwO1xufVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stZHJvcGRvd24gPiAuY2stZHJvcGRvd25fX3BhbmVsID4gLmNrLWxpc3QsXG5cdC5jay5jay1kcm9wZG93biA+IC5jay1kcm9wZG93bl9fcGFuZWwgPiAuY2stbGlzdC5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdH1cbi8qIE1ha2Ugc3VyZSB0aGUgYnV0dG9uIGJlbG9uZ2luZyB0byB0aGUgZmlyc3QvbGFzdCBjaGlsZCBvZiB0aGUgbGlzdCBnb2VzIHdlbGwgd2l0aCB0aGVcblx0Ym9yZGVyIHJhZGl1cyBvZiB0aGUgZW50aXJlIHBhbmVsLiAqL1xuLmNrLmNrLWRyb3Bkb3duID4gLmNrLWRyb3Bkb3duX19wYW5lbCA+IC5jay1saXN0IC5jay1saXN0X19pdGVtOmZpcnN0LWNoaWxkID4gLmNrLWJ1dHRvbiB7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHRcdH1cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLWRyb3Bkb3duID4gLmNrLWRyb3Bkb3duX19wYW5lbCA+IC5jay1saXN0IC5jay1saXN0X19pdGVtOmZpcnN0LWNoaWxkID4gLmNrLWJ1dHRvbixcblx0LmNrLmNrLWRyb3Bkb3duID4gLmNrLWRyb3Bkb3duX19wYW5lbCA+IC5jay1saXN0IC5jay1saXN0X19pdGVtOmZpcnN0LWNoaWxkID4gLmNrLWJ1dHRvbi5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHRcdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblx0fVxuLmNrLmNrLWRyb3Bkb3duID4gLmNrLWRyb3Bkb3duX19wYW5lbCA+IC5jay1saXN0IC5jay1saXN0X19pdGVtOmxhc3QtY2hpbGQgPiAuY2stYnV0dG9uIHtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0fVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stZHJvcGRvd24gPiAuY2stZHJvcGRvd25fX3BhbmVsID4gLmNrLWxpc3QgLmNrLWxpc3RfX2l0ZW06bGFzdC1jaGlsZCA+IC5jay1idXR0b24sXG5cdC5jay5jay1kcm9wZG93biA+IC5jay1kcm9wZG93bl9fcGFuZWwgPiAuY2stbGlzdCAuY2stbGlzdF9faXRlbTpsYXN0LWNoaWxkID4gLmNrLWJ1dHRvbi5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHRcdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLXNwbGl0LWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kOiBoc2woMCwgMCUsIDkyJSk7XG5cdC0tY2stY29sb3Itc3BsaXQtYnV0dG9uLWhvdmVyLWJvcmRlcjogaHNsKDAsIDAlLCA3MCUpO1xufVxuLypcblx0ICogTm90ZTogY2stcm91bmRlZCBhbmQgY2stZGlyIG1peGlucyBkb24ndCBnbyB0b2dldGhlciAoYmVjYXVzZSB0aGV5IGJvdGggdXNlIEBuZXN0KS5cblx0ICovXG5bZGlyPVwibHRyXCJdIC5jay5jay1zcGxpdGJ1dHRvbjpob3ZlciA+IC5jay1zcGxpdGJ1dHRvbl9fYWN0aW9uLCBbZGlyPVwibHRyXCJdIC5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9vcGVuID4gLmNrLXNwbGl0YnV0dG9uX19hY3Rpb24ge1xuXHRcdFx0LyogRG9uJ3Qgcm91bmQgdGhlIGFjdGlvbiBidXR0b24gb24gdGhlIHJpZ2h0IHNpZGUgKi9cblx0XHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB1bnNldDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB1bnNldDtcblx0XHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1zcGxpdGJ1dHRvbjpob3ZlciA+IC5jay1zcGxpdGJ1dHRvbl9fYWN0aW9uLCBbZGlyPVwicnRsXCJdIC5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9vcGVuID4gLmNrLXNwbGl0YnV0dG9uX19hY3Rpb24ge1xuXHRcdFx0LyogRG9uJ3Qgcm91bmQgdGhlIGFjdGlvbiBidXR0b24gb24gdGhlIGxlZnQgc2lkZSAqL1xuXHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdW5zZXQ7XG5cdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB1bnNldDtcblx0XHR9XG4uY2suY2stc3BsaXRidXR0b24gPiAuY2stc3BsaXRidXR0b25fX2Fycm93IHtcblx0XHQvKiBJdCdzIGEgdGV4dC1sZXNzIGJ1dHRvbiBhbmQgc2luY2UgdGhlIGljb24gaXMgcG9zaXRpb25lZCBhYnNvbHV0ZWx5IGluIHN1Y2ggc2l0dWF0aW9uLFxuXHRcdGl0IG11c3QgZ2V0IHNvbWUgYXJiaXRyYXJ5IG1pbi13aWR0aC4gKi9cblx0XHRtaW4td2lkdGg6IHVuc2V0O1xuXHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1zcGxpdGJ1dHRvbiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3cge1xuXHRcdFx0LyogRG9uJ3Qgcm91bmQgdGhlIGFycm93IGJ1dHRvbiBvbiB0aGUgbGVmdCBzaWRlICovXG5cdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB1bnNldDtcblx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHVuc2V0O1xuXHRcdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLXNwbGl0YnV0dG9uID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdyB7XG5cdFx0XHQvKiBEb24ndCByb3VuZCB0aGUgYXJyb3cgYnV0dG9uIG9uIHRoZSByaWdodCBzaWRlICovXG5cdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdW5zZXQ7XG5cdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdW5zZXQ7XG5cdFx0fVxuLmNrLmNrLXNwbGl0YnV0dG9uID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdyBzdmcge1xuXHRcdFx0d2lkdGg6IHZhcigtLWNrLWRyb3Bkb3duLWFycm93LXNpemUpO1xuXHRcdH1cbi8qIE1ha2Ugc3VyZSB0aGUgZGl2aWRlciBzdHJldGNoZXMgMTAwJSBoZWlnaHQgb2YgdGhlIGJ1dHRvblxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xMDkzNiAqL1xuLmNrLmNrLXNwbGl0YnV0dG9uID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpub3QoOmZvY3VzKSB7XG5cdFx0Ym9yZGVyLXRvcC13aWR0aDogMHB4O1xuXHRcdGJvcmRlci1ib3R0b20td2lkdGg6IDBweDtcblx0fVxuLyogRG9uJ3Qgcm91bmQgdGhlIGJvdHRvbSBsZWZ0IGFuZCByaWdodCBjb3JuZXJzIG9mIHRoZSBidXR0b25zIHdoZW4gXCJvcGVuXCJcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvODE2ICovXG4uY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fb3BlbiB7XG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0fVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fb3Blbixcblx0LmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX29wZW4uY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0fVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fb3BlbiA+IC5jay1zcGxpdGJ1dHRvbl9fYWN0aW9uLCAuY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fb3Blbi5jay1yb3VuZGVkLWNvcm5lcnMgPiAuY2stc3BsaXRidXR0b25fX2FjdGlvbiB7XG5cdFx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHR9XG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9vcGVuID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdywgLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX29wZW4uY2stcm91bmRlZC1jb3JuZXJzID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdyB7XG5cdFx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHRcdFx0fVxuLyogV2hlbiB0aGUgc3BsaXQgYnV0dG9uIGlzIFwib3BlblwiICh0aGUgYXJyb3cgaXMgb24pIG9yIGJlaW5nIGhvdmVyZWQsIGl0IHNob3VsZCBnZXQgc29tZSBzdHlsaW5nXG5cdGFzIGEgd2hvbGUuIFRoZSBiYWNrZ3JvdW5kIG9mIGJvdGggYnV0dG9ucyBzaG91bGQgc3RhbmQgb3V0IGFuZCB0aGVyZSBzaG91bGQgYmUgYSB2aXN1YWxcblx0c2VwYXJhdGlvbiBiZXR3ZWVuIGJvdGggYnV0dG9ucy4gKi9cbi8qIFdoZW4gdGhlIHNwbGl0IGJ1dHRvbiBob3ZlcmVkIGFzIGEgd2hvbGUsIG5vdCBhcyBpbmRpdmlkdWFsIGJ1dHRvbnMuICovXG4uY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fb3BlbiA+IC5jay1idXR0b246bm90KC5jay1vbik6bm90KC5jay1kaXNhYmxlZCk6bm90KDpob3ZlciksIC5jay5jay1zcGxpdGJ1dHRvbjpob3ZlciA+IC5jay1idXR0b246bm90KC5jay1vbik6bm90KC5jay1kaXNhYmxlZCk6bm90KDpob3Zlcikge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itc3BsaXQtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQpO1xuXHRcdH1cbi8qIFNwbGl0YnV0dG9uIHNlcGFyYXRvciBuZWVkcyB0byBiZSBzZXQgd2l0aCB0aGUgOjphZnRlciBwc2V1ZG9zZWxlY3RvclxuXHRcdHRvIGRpc3BsYXkgcHJvcGVybHkgdGhlIGJvcmRlcnMgb24gZm9jdXMgKi9cbi5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9vcGVuID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpub3QoLmNrLWRpc2FibGVkKTo6YWZ0ZXIsIC5jay5jay1zcGxpdGJ1dHRvbjpob3ZlciA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCk6OmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0d2lkdGg6IDFweDtcblx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLXNwbGl0LWJ1dHRvbi1ob3Zlci1ib3JkZXIpO1xuXHRcdH1cbi8qIE1ha2Ugc3VyZSB0aGUgZGl2aWRlciBiZXR3ZWVuIHRoZSBidXR0b25zIGxvb2tzIGZpbmUgd2hlbiB0aGUgYnV0dG9uIGlzIGZvY3VzZWQgKi9cbi5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9vcGVuID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpmb2N1czo6YWZ0ZXIsIC5jay5jay1zcGxpdGJ1dHRvbjpob3ZlciA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6Zm9jdXM6OmFmdGVyIHtcblx0XHRcdC0tY2stY29sb3Itc3BsaXQtYnV0dG9uLWhvdmVyLWJvcmRlcjogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0XHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9vcGVuID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpub3QoLmNrLWRpc2FibGVkKTo6YWZ0ZXIsIFtkaXI9XCJsdHJcIl0gLmNrLmNrLXNwbGl0YnV0dG9uOmhvdmVyID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpub3QoLmNrLWRpc2FibGVkKTo6YWZ0ZXIge1xuXHRcdFx0XHRsZWZ0OiAtMXB4O1xuXHRcdFx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fb3BlbiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCk6OmFmdGVyLCBbZGlyPVwicnRsXCJdIC5jay5jay1zcGxpdGJ1dHRvbjpob3ZlciA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCk6OmFmdGVyIHtcblx0XHRcdFx0cmlnaHQ6IC0xcHg7XG5cdFx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLmNrLmNrLXRvb2xiYXItZHJvcGRvd24gLmNrLXRvb2xiYXIge1xuXHRib3JkZXI6IDA7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBjbGFzcyB3aGljaCBpbmRpY2F0ZXMgdGhhdCBhbiBlbGVtZW50IGhvbGRpbmcgaXQgaXMgZGlzYWJsZWQuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgYSBidXR0b24gb2YgZ2l2ZW4gYmFja2dyb3VuZCBjb2xvci5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gJGJhY2tncm91bmQgLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4gKiBAcGFyYW0ge1N0cmluZ30gJGJvcmRlciAtIEJvcmRlciBjb2xvciBvZiB0aGUgYnV0dG9uLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIEFsbCBtZW51IGJ1dHRvbnMuXG4gKi9cbi5jay5jay1idXR0b24uY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uIHtcblx0d2lkdGg6IDEwMCU7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctdGlueSkgY2FsYygyICogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkpO1xuXHRib3JkZXItcmFkaXVzOiAwO1xufVxuLmNrLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b246Zm9jdXMge1xuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0fVxuLmNrLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b246Zm9jdXM6bm90KC5jay1vbikge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtaG92ZXItYmFja2dyb3VuZCk7XG5cdFx0fVxuLmNrLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b24gPiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0ZmxleC1ncm93OiAxO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdH1cbi5jay5jay1idXR0b24uY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uLmNrLWRpc2FibGVkID4gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdG9wYWNpdHk6IHZhcigtLWNrLWRpc2FibGVkLW9wYWNpdHkpO1xuXHR9XG4vKiBTcGFjaW5nIGluIGJ1dHRvbnMgdGhhdCBtaXNzIHRoZSBpY29uLiAqL1xuLmNrLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b24uY2staWNvbi1zcGFjaW5nOm5vdCg6aGFzKC5jay1idXR0b25fX2ljb24pKSA+IC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1jay1pY29uLXNpemUpIC0gdmFyKC0tY2stc3BhY2luZy1zbWFsbCkpO1xuXHR9XG4uY2suY2stYnV0dG9uLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbiA+IC5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b25fX2Fycm93IHtcblx0XHR3aWR0aDogdmFyKC0tY2stZHJvcGRvd24tYXJyb3ctc2l6ZSk7XG5cdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b24gPiAuY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uX19hcnJvdyB7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuXG5cdFx0XHQvKiBOdWRnZSB0aGUgYXJyb3cgZ2VudGx5IHRvIHRoZSByaWdodCBiZWNhdXNlIGl0cyBjZW50ZXIgb2YgZ3Jhdml0eSBpcyB0byB0aGUgbGVmdCAqL1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBjYWxjKC0xICogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkpO1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1idXR0b24uY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uID4gLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbl9fYXJyb3cge1xuXHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuXG5cdFx0XHQvKiBOdWRnZSB0aGUgYXJyb3cgZ2VudGx5IHRvIHRoZSBsZWZ0IGJlY2F1c2UgaXRzIGNlbnRlciBvZiBncmF2aXR5IGlzIHRvIHRoZSByaWdodCAoYWZ0ZXIgcm90YXRpb24pLiAqL1xuXHRcdFx0bWFyZ2luLWxlZnQ6IGNhbGMoLTEgKiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSk7XG5cdH1cbi5jay5jay1idXR0b24uY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uLmNrLWRpc2FibGVkID4gLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbl9fYXJyb3cge1xuXHRcdG9wYWNpdHk6IHZhcigtLWNrLWRpc2FibGVkLW9wYWNpdHkpO1xuXHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1idXR0b24uY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uOm5vdCguY2stYnV0dG9uX3dpdGgtdGV4dCkge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1idXR0b24uY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uID4gLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbl9fYXJyb3cge1xuXHRcdFx0cmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXG5cdFx0XHQvKiBBIHNwYWNlIHRvIGFjY29tbW9kYXRlIHRoZSB0cmlhbmdsZS4gKi9cblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1idXR0b24uY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uOm5vdCguY2stYnV0dG9uX3dpdGgtdGV4dCkge1xuXHRcdFx0cGFkZGluZy1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stYnV0dG9uLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbiA+IC5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b25fX2Fycm93IHtcblx0XHRcdGxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXG5cdFx0XHQvKiBBIHNwYWNlIHRvIGFjY29tbW9kYXRlIHRoZSB0cmlhbmdsZS4gKi9cblx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1kcm9wZG93bi1tZW51LW1lbnUtaXRlbS1taW4td2lkdGg6IDE4ZW07XG59XG4uY2suY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9faXRlbSB7XG5cdG1pbi13aWR0aDogdmFyKC0tY2stZHJvcGRvd24tbWVudS1tZW51LWl0ZW0tbWluLXdpZHRoKTtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogTGlzdCBpdGVtIGJ1dHRvbnMuXG4gKi9cbi5jay1idXR0b24uY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9faXRlbV9fYnV0dG9uIHtcblx0Ym9yZGVyLXJhZGl1czogMDtcbn1cbi5jay1idXR0b24uY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9faXRlbV9fYnV0dG9uID4gLmNrLXNwaW5uZXItY29udGFpbmVyLFxuXHQuY2stYnV0dG9uLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2l0ZW1fX2J1dHRvbiA+IC5jay1zcGlubmVyLWNvbnRhaW5lciAuY2stc3Bpbm5lciB7XG5cdFx0LyogVGhlc2Ugc3R5bGVzIGNvcnJlc3BvbmQgdG8gLmNrLWljb24gc28gdGhhdCB0aGUgc3Bpbm5lciBzZWFtbGVzc2x5IHJlcGxhY2VzIHRoZSBpY29uLiAqL1xuXHRcdC0tY2stdG9vbGJhci1zcGlubmVyLXNpemU6IDIwcHg7XG5cdH1cbi5jay1idXR0b24uY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9faXRlbV9fYnV0dG9uID4gLmNrLXNwaW5uZXItY29udGFpbmVyIHtcblx0XHQvKiBUaGVzZSBtYXJnaW5zIGFyZSB0aGUgc2FtZSBhcyBmb3IgLmNrLWljb24uICovXG5cdFx0bWFyZ2luLWxlZnQ6IGNhbGMoLTEgKiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSk7XG5cdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuLypcblx0ICogSG92ZXJlZCBpdGVtcyBhdXRvbWF0aWNhbGx5IGdldCBmb2N1c2VkLiBEZWZhdWx0IGZvY3VzIHN0eWxlcyBsb29rIG9kZFxuXHQgKiB3aGlsZSBtb3ZpbmcgYWNyb3NzIGEgaHVnZSBsaXN0IG9mIGl0ZW1zIHNvIGxldCdzIGdldCByaWQgb2YgdGhlbVxuXHQgKi9cbi5jay1idXR0b24uY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9faXRlbV9fYnV0dG9uOmZvY3VzIHtcblx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdH1cbi5jay1idXR0b24uY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9faXRlbV9fYnV0dG9uOmZvY3VzOm5vdCguY2stb24pIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWhvdmVyLWJhY2tncm91bmQpO1xuXHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgaGVscGVyIHRvIGNvbWJpbmUgbXVsdGlwbGUgc2hhZG93cy5cbiAqL1xuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG46cm9vdCB7XG5cdC0tY2stZHJvcGRvd24tbWVudS1tZW51LXBhbmVsLW1heC13aWR0aDogNzV2dztcbn1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWRyb3Bkb3duLW1lbnVfX25lc3RlZC1tZW51X19wYW5lbCB7XG5cdGJveC1zaGFkb3c6IHZhcigtLWNrLWRyb3Atc2hhZG93KSwgMCAwO1xuXG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWRyb3Bkb3duLXBhbmVsLWJhY2tncm91bmQpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1kcm9wZG93bi1wYW5lbC1ib3JkZXIpO1xuXHRib3R0b206IDA7XG5cdGhlaWdodDogZml0LWNvbnRlbnQ7XG5cdG1heC13aWR0aDogdmFyKC0tY2stZHJvcGRvd24tbWVudS1tZW51LXBhbmVsLW1heC13aWR0aCk7XG5cblx0LyogUmVzZXQgYmFsbG9vbiBzdHlsaW5nICovXG59XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1kcm9wZG93bi1tZW51X19uZXN0ZWQtbWVudV9fcGFuZWw6OmFmdGVyLFxuXHQuY2suY2stYmFsbG9vbi1wYW5lbC5jay1kcm9wZG93bi1tZW51X19uZXN0ZWQtbWVudV9fcGFuZWw6OmJlZm9yZSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuLyogQ29ybmVyIGJvcmRlciByYWRpdXMgY29uc2lzdGVudCB3aXRoIHRoZSBidXR0b24uICovXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1kcm9wZG93bi1tZW51X19uZXN0ZWQtbWVudV9fcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9lcyxcblx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stZHJvcGRvd24tbWVudV9fbmVzdGVkLW1lbnVfX3BhbmVsLmNrLWJhbGxvb24tcGFuZWxfc2Uge1xuXHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWRyb3Bkb3duLW1lbnVfX25lc3RlZC1tZW51X19wYW5lbC5jay1iYWxsb29uLXBhbmVsX3dzLFxuXHQuY2suY2stYmFsbG9vbi1wYW5lbC5jay1kcm9wZG93bi1tZW51X19uZXN0ZWQtbWVudV9fcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9zdyB7XG5cdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWRyb3Bkb3duLW1lbnVfX25lc3RlZC1tZW51X19wYW5lbC5jay1iYWxsb29uLXBhbmVsX2VuLFxuXHQuY2suY2stYmFsbG9vbi1wYW5lbC5jay1kcm9wZG93bi1tZW51X19uZXN0ZWQtbWVudV9fcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9uZSB7XG5cdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stZHJvcGRvd24tbWVudV9fbmVzdGVkLW1lbnVfX3BhbmVsLmNrLWJhbGxvb24tcGFuZWxfd24sXG5cdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWRyb3Bkb3duLW1lbnVfX25lc3RlZC1tZW51X19wYW5lbC5jay1iYWxsb29uLXBhbmVsX253IHtcblx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stZHJvcGRvd24tbWVudV9fbmVzdGVkLW1lbnVfX3BhbmVsOmZvY3VzIHtcblx0XHRvdXRsaW5lOiBub25lO1xuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSB2aXN1YWwgc3R5bGUgb2YgZm9jdXNlZCBlbGVtZW50J3MgYm9yZGVyLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIGhlbHBlciB0byBjb21iaW5lIG11bHRpcGxlIHNoYWRvd3MuXG4gKi9cbi8qKlxuICogR2l2ZXMgYW4gZWxlbWVudCBhIGRyb3Agc2hhZG93IHNvIGl0IGxvb2tzIGxpa2UgYSBmbG9hdGluZyBwYW5lbC5cbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2ctbWF4LXdpZHRoOiA2MDBweDtcblx0LS1jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nLW1heC1oZWlnaHQ6IDQwMHB4O1xuXHQtLWNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2ctYm9yZGVyLWNvbG9yOiBoc2woMjIwLCA2JSwgODElKTtcblx0LS1jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nLWNvZGUtYmFja2dyb3VuZC1jb2xvcjogaHNsKDBkZWcgMCUgOTIuOTQlKTtcblx0LS1jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nLWtiZC1zaGFkb3ctY29sb3I6IGhzbCgwZGVnIDAlIDYxJSk7XG59XG4uY2suY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZyAuY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZ19fY29udGVudCB7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRtYXgtd2lkdGg6IHZhcigtLWNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2ctbWF4LXdpZHRoKTtcblx0bWF4LWhlaWdodDogdmFyKC0tY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZy1tYXgtaGVpZ2h0KTtcblx0b3ZlcmZsb3c6IGF1dG87XG5cdHVzZXItc2VsZWN0OiB0ZXh0O1xuXG5cdGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuLmNrLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2cgLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2dfX2NvbnRlbnQ6Zm9jdXMge1xuXHRcdC8qIERpc2FibGUgbmF0aXZlIG91dGxpbmUuICovXG5cdFx0b3V0bGluZTogbm9uZTtcblx0XHRib3JkZXI6IHZhcigtLWNrLWZvY3VzLXJpbmcpO1xuXHRcdGJveC1zaGFkb3c6IHZhcigtLWNrLWZvY3VzLW91dGVyLXNoYWRvdyksIDAgMDtcblx0fVxuLmNrLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2cgLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2dfX2NvbnRlbnQgKiB7XG5cdFx0d2hpdGUtc3BhY2U6IG5vcm1hbDtcblx0fVxuLyogSGlkZSB0aGUgbWFpbiBsYWJlbCBvZiB0aGUgY29udGVudCBjb250YWluZXIuICovXG4uY2suY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZyAuY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZ19fY29udGVudCAuY2stbGFiZWwge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbi5jay5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nIC5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nX19jb250ZW50IGgzIHtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRmb250LXNpemU6IDEuMmVtO1xuXHR9XG4uY2suY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZyAuY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZ19fY29udGVudCBoNCB7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0Zm9udC1zaXplOiAxZW07XG5cdH1cbi5jay5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nIC5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nX19jb250ZW50IHAsXG5cdC5jay5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nIC5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nX19jb250ZW50IGgzLFxuXHQuY2suY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZyAuY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZ19fY29udGVudCBoNCxcblx0LmNrLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2cgLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2dfX2NvbnRlbnQgdGFibGUge1xuXHRcdG1hcmdpbjogMWVtIDA7XG5cdH1cbi5jay5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nIC5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nX19jb250ZW50IGRsIHtcblx0XHRkaXNwbGF5OiBncmlkO1xuXHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogMmZyIDFmcjtcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZy1ib3JkZXItY29sb3IpO1xuXHRcdGJvcmRlci1ib3R0b206IG5vbmU7XG5cdH1cbi5jay5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nIC5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nX19jb250ZW50IGRsIGR0LCAuY2suY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZyAuY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZ19fY29udGVudCBkbCBkZCB7XG5cdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZy1ib3JkZXItY29sb3IpO1xuXHRcdFx0cGFkZGluZzogLjRlbSAwO1xuXHRcdH1cbi5jay5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nIC5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nX19jb250ZW50IGRsIGR0IHtcblx0XHRcdGdyaWQtY29sdW1uLXN0YXJ0OiAxO1xuXHRcdH1cbi5jay5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nIC5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nX19jb250ZW50IGRsIGRkIHtcblx0XHRcdGdyaWQtY29sdW1uLXN0YXJ0OiAyO1xuXHRcdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0fVxuLmNrLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2cgLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2dfX2NvbnRlbnQga2JkLCAuY2suY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZyAuY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZ19fY29udGVudCBjb2RlIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZy1jb2RlLWJhY2tncm91bmQtY29sb3IpO1xuXHRcdHBhZGRpbmc6IC40ZW07XG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRsaW5lLWhlaWdodDogMTtcblx0XHRib3JkZXItcmFkaXVzOiAycHg7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdGZvbnQtc2l6ZTogLjllbTtcblx0fVxuLmNrLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2cgLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2dfX2NvbnRlbnQgY29kZSB7XG5cdFx0Zm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcblx0fVxuLmNrLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2cgLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2dfX2NvbnRlbnQga2JkIHtcblx0XHRtaW4td2lkdGg6IDEuOGVtO1xuXHRcdGJveC1zaGFkb3c6IDBweCAxcHggMXB4IHZhcigtLWNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2cta2JkLXNoYWRvdy1jb2xvcik7XG5cdFx0bWFyZ2luOiAwIDFweDtcblx0fVxuLmNrLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2cgLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2dfX2NvbnRlbnQga2JkICsga2JkIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAycHg7XG5cdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBjbGFzcyB3aGljaCBpbmRpY2F0ZXMgdGhhdCBhbiBlbGVtZW50IGhvbGRpbmcgaXQgaXMgZGlzYWJsZWQuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgaGVscGVyIHRvIGNvbWJpbmUgbXVsdGlwbGUgc2hhZG93cy5cbiAqL1xuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIHZpc3VhbCBzdHlsZSBvZiBmb2N1c2VkIGVsZW1lbnQncyBib3JkZXIuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgYSBidXR0b24gb2YgZ2l2ZW4gYmFja2dyb3VuZCBjb2xvci5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gJGJhY2tncm91bmQgLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4gKiBAcGFyYW0ge1N0cmluZ30gJGJvcmRlciAtIEJvcmRlciBjb2xvciBvZiB0aGUgYnV0dG9uLlxuICovXG46cm9vdCB7XG5cdC0tY2stY29sb3ItZWRpdGFibGUtYmx1ci1zZWxlY3Rpb246IGhzbCgwLCAwJSwgODUlKTtcbn1cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlOm5vdCguY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUpIHtcblx0Ym9yZGVyLXJhZGl1czogMDtcbn1cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLWVkaXRvcl9fZWRpdGFibGU6bm90KC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZSksXG5cdC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLXJvdW5kZWQtY29ybmVyczpub3QoLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlKSB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdH1cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWZvY3VzZWQ6bm90KC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZSkge1xuXHRcdC8qIERpc2FibGUgbmF0aXZlIG91dGxpbmUuICovXG5cdFx0b3V0bGluZTogbm9uZTtcblx0XHRib3JkZXI6IHZhcigtLWNrLWZvY3VzLXJpbmcpO1xuXHRcdGJveC1zaGFkb3c6IHZhcigtLWNrLWlubmVyLXNoYWRvdyksIDAgMDtcblx0fVxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lIHtcblx0b3ZlcmZsb3c6IGF1dG87XG5cdHBhZGRpbmc6IDAgdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lW2Rpcj1cImx0clwiXSB7XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0fVxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lW2Rpcj1cInJ0bFwiXSB7XG5cdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdH1cbi8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvMTE2ICovXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUgPiAqOmZpcnN0LWNoaWxkIHtcblx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0fVxuLyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvODQ3ICovXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUgPiAqOmxhc3QtY2hpbGQge1xuXHRcdC8qXG5cdFx0ICogVGhpcyB2YWx1ZSBzaG91bGQgbWF0Y2ggd2l0aCB0aGUgZGVmYXVsdCBtYXJnaW5zIG9mIHRoZSBibG9jayBlbGVtZW50cyAobGlrZSAubWVkaWEgb3IgLmltYWdlKVxuXHRcdCAqIHRvIGF2b2lkIGEgY29udGVudCBqdW1waW5nIHdoZW4gdGhlIGZha2Ugc2VsZWN0aW9uIGNvbnRhaW5lciBzaG93cyB1cCAoU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzk4MjUpLlxuXHRcdCAqL1xuXHRcdG1hcmdpbi1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHR9XG4vKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy82NTE3ICovXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stYmx1cnJlZCA6OnNlbGVjdGlvbiB7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItZWRpdGFibGUtYmx1ci1zZWxlY3Rpb24pO1xuXHR9XG4vKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvaXNzdWVzLzExMSAqL1xuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stdG9vbGJhci1jb250YWluZXJbY2xhc3MqPVwiYXJyb3dfblwiXTo6YWZ0ZXIge1xuXHRcdGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJhY2tncm91bmQpO1xuXHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay10b29sYmFyLWNvbnRhaW5lcltjbGFzcyo9XCJhcnJvd19zXCJdOjphZnRlciB7XG5cdFx0Ym9yZGVyLXRvcC1jb2xvcjogdmFyKC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZCk7XG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWZvcm0taGVhZGVyLWhlaWdodDogNDRweDtcbn1cbi5jay5jay1mb3JtX19oZWFkZXIge1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0aGVpZ2h0OiB2YXIoLS1jay1mb3JtLWhlYWRlci1oZWlnaHQpO1xuXHRsaW5lLWhlaWdodDogdmFyKC0tY2stZm9ybS1oZWFkZXItaGVpZ2h0KTtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcbn1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWZvcm1fX2hlYWRlciA+IC5jay1pY29uIHtcblx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1mb3JtX19oZWFkZXIgPiAuY2staWNvbiB7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHR9XG4uY2suY2stZm9ybV9faGVhZGVyIC5jay1mb3JtX19oZWFkZXJfX2xhYmVsIHtcblx0XHQtLWNrLWZvbnQtc2l6ZS1iYXNlOiAxNXB4O1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHR9XG4vKiBQYWRkaW5nIHdoZW4gYmFjayBidXR0b24gaXMgaGlkZGVuICovXG4uY2suY2stZm9ybV9faGVhZGVyOmhhcyguY2stYnV0dG9uLWJhY2suY2staGlkZGVuKSB7XG5cdFx0cGFkZGluZy1pbmxpbmU6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHR9XG4vKiBQYWRkaW5nIHdoZW4gYmFjayBidXR0b24gaXMgdmlzaWJsZSAqL1xuLmNrLmNrLWZvcm1fX2hlYWRlcjpoYXMoLmNrLWJ1dHRvbi1iYWNrOm5vdCguY2staGlkZGVuKSkge1xuXHRcdHBhZGRpbmctaW5saW5lOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuLmNrLmNrLWZvcm1fX2hlYWRlciA+IC5jay1idXR0b24tYmFjayB7XG5cdFx0bWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWljb24tc2l6ZTogY2FsYyh2YXIoLS1jay1saW5lLWhlaWdodC1iYXNlKSAqIHZhcigtLWNrLWZvbnQtc2l6ZS1ub3JtYWwpKTtcblx0LS1jay1pY29uLWZvbnQtc2l6ZTogLjgzMzMzNTA2OTRlbTtcbn1cbi5jay5jay1pY29uIHtcblx0d2lkdGg6IHZhcigtLWNrLWljb24tc2l6ZSk7XG5cdGhlaWdodDogdmFyKC0tY2staWNvbi1zaXplKTtcblxuXHQvKiBNdWx0aXBsaWVkIGJ5IHRoZSBoZWlnaHQgb2YgdGhlIGxpbmUgaW4gXCJweFwiIHNob3VsZCBnaXZlIFNWRyBcInZpZXdwb3J0XCIgZGltZW5zaW9ucyAqL1xuXHRmb250LXNpemU6IHZhcigtLWNrLWljb24tZm9udC1zaXplKTtcblxuXHQvKiBJbmhlcml0IGN1cnNvciBzdHlsZSAoIzUpLiAqL1xuXHRjdXJzb3I6IGluaGVyaXQ7XG59XG4uY2suY2staWNvbiAqIHtcblx0XHQvKiBJbmhlcml0IGN1cnNvciBzdHlsZSAoIzUpLiAqL1xuXHRcdGN1cnNvcjogaW5oZXJpdDtcblx0fVxuLyogQWxsb3dzIGR5bmFtaWMgY29sb3Jpbmcgb2YgYW4gaWNvbiBieSBpbmhlcml0aW5nIGl0cyBjb2xvciBmcm9tIHRoZSBwYXJlbnQuICovXG4uY2suY2staWNvbi5jay1pY29uX2luaGVyaXQtY29sb3Ige1xuXHRcdGNvbG9yOiBpbmhlcml0O1xuXHR9XG4uY2suY2staWNvbi5jay1pY29uX2luaGVyaXQtY29sb3IgKiB7XG5cdFx0XHRjb2xvcjogaW5oZXJpdDtcblx0XHR9XG4uY2suY2staWNvbi5jay1pY29uX2luaGVyaXQtY29sb3IgKjpub3QoW2ZpbGxdKSB7XG5cdFx0XHRcdC8qIE5lZWRlZCBieSBGRi4gKi9cblx0XHRcdFx0ZmlsbDogY3VycmVudENvbG9yO1xuXHRcdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSB2aXN1YWwgc3R5bGUgb2YgZm9jdXNlZCBlbGVtZW50J3MgYm9yZGVyLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIGhlbHBlciB0byBjb21iaW5lIG11bHRpcGxlIHNoYWRvd3MuXG4gKi9cbi8qKlxuICogR2l2ZXMgYW4gZWxlbWVudCBhIGRyb3Agc2hhZG93IHNvIGl0IGxvb2tzIGxpa2UgYSBmbG9hdGluZyBwYW5lbC5cbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWlucHV0LXdpZHRoOiAxOGVtO1xuXG5cdC8qIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkuICovXG5cdC0tY2staW5wdXQtdGV4dC13aWR0aDogdmFyKC0tY2staW5wdXQtd2lkdGgpO1xufVxuLmNrLmNrLWlucHV0IHtcblx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1pbnB1dC1iYWNrZ3JvdW5kKTtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItaW5wdXQtYm9yZGVyKTtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1leHRyYS10aW55KSB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdG1pbi13aWR0aDogdmFyKC0tY2staW5wdXQtd2lkdGgpO1xuXG5cdC8qIFRoaXMgaXMgaW1wb3J0YW50IHRvIHN0YXkgb2YgdGhlIHNhbWUgaGVpZ2h0IGFzIHN1cnJvdW5kaW5nIGJ1dHRvbnMgKi9cblx0bWluLWhlaWdodDogdmFyKC0tY2stdWktY29tcG9uZW50LW1pbi1oZWlnaHQpO1xuXG5cdC8qIEFwcGx5IHNvbWUgc21vb3RoIHRyYW5zaXRpb24gdG8gdGhlIGJveC1zaGFkb3cgYW5kIGJvcmRlci4gKi9cblx0dHJhbnNpdGlvbjogYm94LXNoYWRvdyAuMXMgZWFzZS1pbi1vdXQsIGJvcmRlciAuMXMgZWFzZS1pbi1vdXQ7XG59XG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1pbnB1dCxcblx0LmNrLmNrLWlucHV0LmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdH1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4uY2suY2staW5wdXQge1xuXHRcdHRyYW5zaXRpb246IG5vbmU7XG59XG5cdH1cbi5jay5jay1pbnB1dDpmb2N1cyB7XG5cdFx0LyogRGlzYWJsZSBuYXRpdmUgb3V0bGluZS4gKi9cblx0XHRvdXRsaW5lOiBub25lO1xuXHRcdGJvcmRlcjogdmFyKC0tY2stZm9jdXMtcmluZyk7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0tY2stZm9jdXMtb3V0ZXItc2hhZG93KSwgMCAwO1xuXHR9XG4uY2suY2staW5wdXRbcmVhZG9ubHldIHtcblx0XHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1pbnB1dC1kaXNhYmxlZC1ib3JkZXIpO1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWlucHV0LWRpc2FibGVkLWJhY2tncm91bmQpO1xuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1pbnB1dC1kaXNhYmxlZC10ZXh0KTtcblx0fVxuLmNrLmNrLWlucHV0W3JlYWRvbmx5XTpmb2N1cyB7XG5cdFx0XHQvKiBUaGUgcmVhZC1vbmx5IGlucHV0IHNob3VsZCBoYXZlIGEgc2xpZ2h0bHkgbGVzcyB2aXNpYmxlIHNoYWRvdyB3aGVuIGZvY3VzZWQuICovXG5cdFx0XHRib3gtc2hhZG93OiB2YXIoLS1jay1mb2N1cy1kaXNhYmxlZC1vdXRlci1zaGFkb3cpLCAwIDA7XG5cdFx0fVxuLmNrLmNrLWlucHV0LmNrLWVycm9yIHtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLWlucHV0LWVycm9yLWJvcmRlcik7XG5cdFx0YW5pbWF0aW9uOiBjay1pbnB1dC1zaGFrZSAuM3MgZWFzZSBib3RoO1xuXHR9XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuLmNrLmNrLWlucHV0LmNrLWVycm9yIHtcblx0XHRcdGFuaW1hdGlvbjogbm9uZTtcblx0fVxuXHRcdH1cbi5jay5jay1pbnB1dC5jay1lcnJvcjpmb2N1cyB7XG5cdFx0XHRib3gtc2hhZG93OiB2YXIoLS1jay1mb2N1cy1lcnJvci1vdXRlci1zaGFkb3cpLCAwIDA7XG5cdFx0fVxuQGtleWZyYW1lcyBjay1pbnB1dC1zaGFrZSB7XG5cdDIwJSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0ycHgpO1xuXHR9XG5cblx0NDAlIHtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMnB4KTtcblx0fVxuXG5cdDYwJSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xcHgpO1xuXHR9XG5cblx0ODAlIHtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMXB4KTtcblx0fVxufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi5jay5jay1sYWJlbCB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cbjpyb290IHtcblx0LS1jay1sYWJlbGVkLWZpZWxkLXZpZXctdHJhbnNpdGlvbjogLjFzIGN1YmljLWJlemllcigwLCAwLCAwLjI0LCAwLjk1KTtcblx0LS1jay1sYWJlbGVkLWZpZWxkLWVtcHR5LXVuZm9jdXNlZC1tYXgtd2lkdGg6IDEwMCUgLSAyICogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHQtLWNrLWxhYmVsZWQtZmllbGQtbGFiZWwtZGVmYXVsdC1wb3NpdGlvbi14OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdC0tY2stbGFiZWxlZC1maWVsZC1sYWJlbC1kZWZhdWx0LXBvc2l0aW9uLXk6IGNhbGMoMC42ICogdmFyKC0tY2stZm9udC1zaXplLWJhc2UpKTtcblx0LS1jay1jb2xvci1sYWJlbGVkLWZpZWxkLWxhYmVsLWJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG59XG4uY2suY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0Ym9yZGVyLXJhZGl1czogMDtcbn1cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyxcblx0LmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHR9XG4uY2suY2stbGFiZWxlZC1maWVsZC12aWV3ID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cbi5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLmNrLWxhYmVsIHtcblx0XHRcdHRvcDogMHB4O1xuXG5cdFx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblxuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGFiZWxlZC1maWVsZC1sYWJlbC1iYWNrZ3JvdW5kKTtcblx0XHRcdHBhZGRpbmc6IDAgY2FsYyguNSAqIHZhcigtLWNrLWZvbnQtc2l6ZS10aW55KSk7XG5cdFx0XHRsaW5lLWhlaWdodDogaW5pdGlhbDtcblx0XHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cblx0XHRcdC8qIFByZXZlbnQgb3ZlcmZsb3cgd2hlbiB0aGUgbGFiZWwgaXMgbG9uZ2VyIHRoYW4gdGhlIGlucHV0ICovXG5cdFx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cblx0XHRcdG1heC13aWR0aDogMTAwJTtcblxuXHRcdFx0dHJhbnNpdGlvbjpcblx0XHRcdFx0dHJhbnNmb3JtIHZhcigtLWNrLWxhYmVsZWQtZmllbGQtdmlldy10cmFuc2l0aW9uKSxcblx0XHRcdFx0cGFkZGluZyB2YXIoLS1jay1sYWJlbGVkLWZpZWxkLXZpZXctdHJhbnNpdGlvbiksXG5cdFx0XHRcdGJhY2tncm91bmQgdmFyKC0tY2stbGFiZWxlZC1maWVsZC12aWV3LXRyYW5zaXRpb24pO1xuXHRcdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2suY2stbGFiZWwge1xuXHRcdFx0XHRsZWZ0OiAwcHg7XG5cdFx0XHRcdHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcblx0XHRcdFx0LyogQnkgZGVmYXVsdCwgZGlzcGxheSB0aGUgbGFiZWwgc2NhbGVkIGRvd24gYWJvdmUgdGhlIGZpZWxkLiAqL1xuXHRcdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSksIC02cHgpIHNjYWxlKC43NSk7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2suY2stbGFiZWwge1xuXHRcdFx0XHRyaWdodDogMHB4O1xuXHRcdFx0XHR0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDA7XG5cdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKGNhbGMoLTEgKiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSkpLCAtNnB4KSBzY2FsZSguNzUpO1xuXHR9XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2suY2stbGFiZWwge1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHRcdH1cblx0XHRcdH1cbi5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stZXJyb3IgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLmNrLWxhYmVsIHtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWVycm9yKTtcblx0XHR9XG4uY2suY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLWVycm9yIC5jay1pbnB1dDpub3QoW3JlYWRvbmx5XSkgKyAuY2suY2stbGFiZWwge1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtZXJyb3IpO1xuXHRcdH1cbi5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLWxhYmVsZWQtZmllbGQtdmlld19fc3RhdHVzIHtcblx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS1zbWFsbCk7XG5cdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cblx0XHQvKiBMZXQgdGhlIGluZm8gd3JhcCB0byB0aGUgbmV4dCBsaW5lIHRvIGF2b2lkIHN0cmV0Y2hpbmcgdGhlIGxheW91dCBob3Jpem9udGFsbHkuXG5cdFx0VGhlIHN0YXR1cyBjb3VsZCBiZSB2ZXJ5IGxvbmcuICovXG5cdFx0d2hpdGUtc3BhY2U6IG5vcm1hbDtcblx0fVxuLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXMuY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXNfZXJyb3Ige1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtZXJyb3IpO1xuXHRcdH1cbi8qIERpc2FibGVkIGZpZWxkcyBhbmQgZmllbGRzIHRoYXQgaGF2ZSBubyBmb2N1cyBzaG91bGQgZmFkZSBvdXQuICovXG4uY2suY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLWRpc2FibGVkID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay5jay1sYWJlbCxcblx0LmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZW1wdHk6bm90KC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZm9jdXNlZCkgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLmNrLWxhYmVsIHtcblx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItaW5wdXQtZGlzYWJsZWQtdGV4dCk7XG5cdH1cbi8qIEZpZWxkcyB0aGF0IGFyZSBkaXNhYmxlZCBvciBub3QgZm9jdXNlZCBhbmQgd2l0aG91dCBhIHBsYWNlaG9sZGVyIHNob3VsZCBoYXZlIGZ1bGwtc2l6ZWQgbGFiZWxzLiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cbi5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stZGlzYWJsZWQuY2stbGFiZWxlZC1maWVsZC12aWV3X2VtcHR5Om5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3X3BsYWNlaG9sZGVyKSA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2suY2stbGFiZWwsXG5cdC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stbGFiZWxlZC1maWVsZC12aWV3X2VtcHR5Om5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3X2ZvY3VzZWQpOm5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3X3BsYWNlaG9sZGVyKTpub3QoLmNrLWVycm9yKSA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2suY2stbGFiZWwge1xuXG5cdFx0LyogQ29tcGVuc2F0ZSBmb3IgdGhlIGRlZmF1bHQgdHJhbnNsYXRlIHBvc2l0aW9uLiAqL1xuXHRcdG1heC13aWR0aDogY2FsYyh2YXIoLS1jay1sYWJlbGVkLWZpZWxkLWVtcHR5LXVuZm9jdXNlZC1tYXgtd2lkdGgpKTtcblxuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdHBhZGRpbmc6IDA7XG5cdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1kaXNhYmxlZC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZW1wdHk6bm90KC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfcGxhY2Vob2xkZXIpID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay5jay1sYWJlbCwgW2Rpcj1cImx0clwiXSAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLWxhYmVsZWQtZmllbGQtdmlld19lbXB0eTpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlld19mb2N1c2VkKTpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlld19wbGFjZWhvbGRlcik6bm90KC5jay1lcnJvcikgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLmNrLWxhYmVsIHtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLWNrLWxhYmVsZWQtZmllbGQtbGFiZWwtZGVmYXVsdC1wb3NpdGlvbi14KSwgdmFyKC0tY2stbGFiZWxlZC1maWVsZC1sYWJlbC1kZWZhdWx0LXBvc2l0aW9uLXkpKSBzY2FsZSgxKTtcblx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLWRpc2FibGVkLmNrLWxhYmVsZWQtZmllbGQtdmlld19lbXB0eTpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlld19wbGFjZWhvbGRlcikgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLmNrLWxhYmVsLCBbZGlyPVwicnRsXCJdIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stbGFiZWxlZC1maWVsZC12aWV3X2VtcHR5Om5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3X2ZvY3VzZWQpOm5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3X3BsYWNlaG9sZGVyKTpub3QoLmNrLWVycm9yKSA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2suY2stbGFiZWwge1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoY2FsYygtMSAqIHZhcigtLWNrLWxhYmVsZWQtZmllbGQtbGFiZWwtZGVmYXVsdC1wb3NpdGlvbi14KSksIHZhcigtLWNrLWxhYmVsZWQtZmllbGQtbGFiZWwtZGVmYXVsdC1wb3NpdGlvbi15KSkgc2NhbGUoMSk7XG5cdH1cbi8qLS0tLS0tIERyb3Bkb3duVmlldyBpbnRlZ3JhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogTWFrZSBzdXJlIGRyb3Bkb3duJyBiYWNrZ3JvdW5kIGNvbG9yIGluIGFueSBvZiBkcm9wZG93bidzIHN0YXRlIGRvZXMgbm90IGNvbGxpZGUgd2l0aCBsYWJlbGVkIGZpZWxkLiAqL1xuLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2stZHJvcGRvd24gPiAuY2suY2stYnV0dG9uIHtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0fVxuLyogV2hlbiB0aGUgZHJvcGRvd24gaXMgXCJlbXB0eVwiLCB0aGUgbGFiZWxlZCBmaWVsZCBsYWJlbCByZXBsYWNlcyBpdHMgbGFiZWwuICovXG4uY2suY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLWxhYmVsZWQtZmllbGQtdmlld19lbXB0eSA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2stZHJvcGRvd24gPiAuY2stYnV0dG9uID4gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cbi8qIE1ha2Ugc3VyZSB0aGUgbGFiZWwgb2YgdGhlIGVtcHR5LCB1bmZvY3VzZWQgaW5wdXQgZG9lcyBub3QgY292ZXIgdGhlIGRyb3Bkb3duIGFycm93LiAqL1xuLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZW1wdHk6bm90KC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZm9jdXNlZCk6bm90KC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfcGxhY2Vob2xkZXIpID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay1kcm9wZG93biArIC5jay1sYWJlbCB7XG5cdFx0bWF4LXdpZHRoOiBjYWxjKHZhcigtLWNrLWxhYmVsZWQtZmllbGQtZW1wdHktdW5mb2N1c2VkLW1heC13aWR0aCkgLSB2YXIoLS1jay1kcm9wZG93bi1hcnJvdy1zaXplKSAtIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpKTtcblx0fVxuLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZnVsbC13aWR0aCB7XG5cdFx0ZmxleC1ncm93OiAxO1xuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLmNrLmNrLWxhYmVsZWQtaW5wdXQgLmNrLWxhYmVsZWQtaW5wdXRfX3N0YXR1cyB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLXNtYWxsKTtcblx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cblx0LyogTGV0IHRoZSBpbmZvIHdyYXAgdG8gdGhlIG5leHQgbGluZSB0byBhdm9pZCBzdHJldGNoaW5nIHRoZSBsYXlvdXQgaG9yaXpvbnRhbGx5LlxuXHRUaGUgc3RhdHVzIGNvdWxkIGJlIHZlcnkgbG9uZy4gKi9cblx0d2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cbi5jay5jay1sYWJlbGVkLWlucHV0IC5jay1sYWJlbGVkLWlucHV0X19zdGF0dXNfZXJyb3Ige1xuXHRjb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1lcnJvcik7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBjbGFzcyB3aGljaCBpbmRpY2F0ZXMgdGhhdCBhbiBlbGVtZW50IGhvbGRpbmcgaXQgaXMgZGlzYWJsZWQuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBoZWxwZXIgdG8gY29tYmluZSBtdWx0aXBsZSBzaGFkb3dzLlxuICovXG4vKipcbiAqIEdpdmVzIGFuIGVsZW1lbnQgYSBkcm9wIHNoYWRvdyBzbyBpdCBsb29rcyBsaWtlIGEgZmxvYXRpbmcgcGFuZWwuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4uY2suY2stbGlzdCB7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG5cblx0bGlzdC1zdHlsZS10eXBlOiBub25lO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saXN0LWJhY2tncm91bmQpO1xuXG5cdC8qIEEgc3BhY2luZyBhdCB0aGUgYmVnaW5uaW5nIGFuZCBlbmQgb2YgdGhlIGxpc3QgKi9cblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkgMDtcbn1cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLWxpc3QsXG5cdC5jay5jay1saXN0LmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdH1cbi5jay5jay1saXN0X19pdGVtIHtcblx0Y3Vyc29yOiBkZWZhdWx0O1xuXG5cdC8qIEFsbW9zdCBhcyB3aWRlIGFzIG1lbnUgYmFyIGl0ZW1zLiAqL1xuXHRtaW4td2lkdGg6IDE1ZW07XG59XG4uY2suY2stbGlzdF9faXRlbSA+IC5jay1idXR0b246bm90KC5jay1saXN0LWl0ZW0tYnV0dG9uKSB7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy10aW55KSBjYWxjKDIgKiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSk7XG5cdFx0bWluLWhlaWdodDogdW5zZXQ7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stbGlzdF9faXRlbSA+IC5jay1idXR0b246bm90KC5jay1saXN0LWl0ZW0tYnV0dG9uKSB7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1saXN0X19pdGVtID4gLmNrLWJ1dHRvbjpub3QoLmNrLWxpc3QtaXRlbS1idXR0b24pIHtcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHR9XG4uY2suY2stbGlzdF9faXRlbSA+IC5jay1idXR0b246bm90KC5jay1saXN0LWl0ZW0tYnV0dG9uKSAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LWhlYWRpbmcvaXNzdWVzLzYzICovXG5cdFx0XHRsaW5lLWhlaWdodDogY2FsYyh2YXIoLS1jay1saW5lLWhlaWdodC1iYXNlKSAqIHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSk7XG5cdFx0fVxuLmNrLmNrLWxpc3RfX2l0ZW0gPiAuY2stYnV0dG9uOm5vdCguY2stbGlzdC1pdGVtLWJ1dHRvbik6YWN0aXZlIHtcblx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0fVxuLmNrLmNrLWxpc3RfX2l0ZW0gPiAuY2stYnV0dG9uLmNrLW9uOm5vdCguY2stbGlzdC1pdGVtLWJ1dHRvbikge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGlzdC1idXR0b24tb24tYmFja2dyb3VuZCk7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItbGlzdC1idXR0b24tb24tdGV4dCk7XG5cdFx0fVxuLmNrLmNrLWxpc3RfX2l0ZW0gPiAuY2stYnV0dG9uLmNrLW9uOm5vdCguY2stbGlzdC1pdGVtLWJ1dHRvbik6YWN0aXZlIHtcblx0XHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRcdH1cbi5jay5jay1saXN0X19pdGVtID4gLmNrLWJ1dHRvbi5jay1vbjpub3QoLmNrLWxpc3QtaXRlbS1idXR0b24pOmhvdmVyOm5vdCguY2stZGlzYWJsZWQpIHtcblx0XHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGlzdC1idXR0b24tb24tYmFja2dyb3VuZC1mb2N1cyk7XG5cdFx0XHR9XG4uY2suY2stbGlzdF9faXRlbSA+IC5jay1idXR0b24uY2stb246bm90KC5jay1saXN0LWl0ZW0tYnV0dG9uKTpmb2N1czpub3QoLmNrLWRpc2FibGVkKSB7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHRcdH1cbi5jay5jay1saXN0X19pdGVtID4gLmNrLWJ1dHRvbjpub3QoLmNrLWxpc3QtaXRlbS1idXR0b24pOmhvdmVyOm5vdCguY2stZGlzYWJsZWQpIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWxpc3QtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQpO1xuXHRcdH1cbi8qIEl0J3MgdW5uZWNlc3NhcnkgdG8gY2hhbmdlIHRoZSBiYWNrZ3JvdW5kL3RleHQgb2YgYSBzd2l0Y2ggdG9nZ2xlOyBpdCBoYXMgZGlmZmVyZW50IHdheXNcblx0b2YgY29udmV5aW5nIGl0cyBzdGF0ZSAobGlrZSB0aGUgc3dpdGNoZXIpICovXG4uY2suY2stbGlzdF9faXRlbSA+IC5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uLmNrLW9uIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWxpc3QtYmFja2dyb3VuZCk7XG5cdFx0XHRjb2xvcjogaW5oZXJpdDtcblx0XHR9XG4uY2suY2stbGlzdF9faXRlbSA+IC5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uLmNrLW9uOmhvdmVyOm5vdCguY2stZGlzYWJsZWQpIHtcblx0XHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGlzdC1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG5cdFx0XHRcdGNvbG9yOiBpbmhlcml0O1xuXHRcdFx0fVxuLmNrLWxpc3QgLmNrLWxpc3RfX2dyb3VwIHtcblx0cGFkZGluZy10b3A6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblxuXHQvKiBMaXN0cyBjb21lIHdpdGggYW4gaW5uZXIgdmVydGljYWwgcGFkZGluZy4gRG9uJ3QgZHVwbGljYXRlIGl0LiAqL1xufVxuLmNrLWxpc3QgLmNrLWxpc3RfX2dyb3VwOmZpcnN0LWNoaWxkIHtcblx0XHRwYWRkaW5nLXRvcDogMDtcblx0fVxuLyogVGhlIGdyb3VwIHNob3VsZCBoYXZlIGEgYm9yZGVyIHdoZW4gaXQncyBub3QgdGhlIGZpcnN0IGl0ZW0uICovXG4qOm5vdCguY2staGlkZGVuKSB+IC5jay1saXN0IC5jay1saXN0X19ncm91cCB7XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0fVxuLmNrLWxpc3QgLmNrLWxpc3RfX2dyb3VwID4gLmNrLWxhYmVsIHtcblx0XHRmb250LXNpemU6IDExcHg7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIDA7XG5cdH1cbi5jay5jay1saXN0X19zZXBhcmF0b3Ige1xuXHRoZWlnaHQ6IDFweDtcblx0d2lkdGg6IDEwMCU7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblxuXHQvKiBHaXZlIHRoZSBzZXBhcmF0b3Igc29tZSBhaXIgKi9cblx0bWFyZ2luOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSAwO1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi5jay5jay1tZW51LWJhciB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtd3JhcDogd3JhcDtcblx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0Z2FwOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItdG9vbGJhci1ib3JkZXIpO1xuXHR3aWR0aDogMTAwJTtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4uY2suY2stbWVudS1iYXJfX21lbnUge1xuXHQvKiBFbmFibGUgZm9udCBzaXplIGluaGVyaXRhbmNlLCB3aGljaCBhbGxvd3MgZmx1aWQgVUkgc2NhbGluZy4gKi9cblx0Zm9udC1zaXplOiBpbmhlcml0O1xufVxuLmNrLmNrLW1lbnUtYmFyX19tZW51LmNrLW1lbnUtYmFyX19tZW51X3RvcC1sZXZlbCB7XG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBjbGFzcyB3aGljaCBpbmRpY2F0ZXMgdGhhdCBhbiBlbGVtZW50IGhvbGRpbmcgaXQgaXMgZGlzYWJsZWQuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgYSBidXR0b24gb2YgZ2l2ZW4gYmFja2dyb3VuZCBjb2xvci5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gJGJhY2tncm91bmQgLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4gKiBAcGFyYW0ge1N0cmluZ30gJGJvcmRlciAtIEJvcmRlciBjb2xvciBvZiB0aGUgYnV0dG9uLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcblx0ICogQWxsIG1lbnUgYnV0dG9ucy5cblx0ICovXG4uY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2stbWVudS1iYXJfX21lbnVfX2J1dHRvbiB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uID4gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0ZmxleC1ncm93OiAxO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdH1cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uLmNrLWRpc2FibGVkID4gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0b3BhY2l0eTogdmFyKC0tY2stZGlzYWJsZWQtb3BhY2l0eSk7XG5cdFx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2stbWVudS1iYXJfX21lbnVfX2J1dHRvbjpub3QoLmNrLWJ1dHRvbl93aXRoLXRleHQpIHtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHRcdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b246bm90KC5jay1idXR0b25fd2l0aC10ZXh0KSB7XG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdFx0fVxuLypcblx0ICogVG9wLWxldmVsIG1lbnUgYnV0dG9ucyBvbmx5LlxuXHQgKi9cbi5jay5jay1tZW51LWJhcl9fbWVudS5jay1tZW51LWJhcl9fbWVudV90b3AtbGV2ZWwgPiAuY2stbWVudS1iYXJfX21lbnVfX2J1dHRvbiB7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkgdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdG1pbi1oZWlnaHQ6IHVuc2V0O1xuXHR9XG4uY2suY2stbWVudS1iYXJfX21lbnUuY2stbWVudS1iYXJfX21lbnVfdG9wLWxldmVsID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0d2lkdGg6IHVuc2V0O1xuXHRcdFx0bGluZS1oZWlnaHQ6IHVuc2V0O1xuXG5cdFx0XHQvKlxuXHRcdFx0ICogVG9wLWxldmVsIGJ1dHRvbnMgZG9uJ3QgdXNlIGVsbGlwc2lzIGFuZCBvdmVyZmxvdzogaGlkZGVuIGNsaXBzIGRlc2NlbmRlcnMuXG5cdFx0XHQgKiAgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE3NDIyLlxuXHRcdFx0ICovXG5cdFx0XHRvdmVyZmxvdzogdmlzaWJsZTtcblx0XHR9XG4uY2suY2stbWVudS1iYXJfX21lbnUuY2stbWVudS1iYXJfX21lbnVfdG9wLWxldmVsID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b24uY2stb24ge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHRcdH1cbi5jay5jay1tZW51LWJhcl9fbWVudS5jay1tZW51LWJhcl9fbWVudV90b3AtbGV2ZWwgPiAuY2stbWVudS1iYXJfX21lbnVfX2J1dHRvbiAuY2staWNvbiB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cbi8qXG5cdCAqIFN1Yi1tZW51IGJ1dHRvbnMuXG5cdCAqL1xuLmNrLmNrLW1lbnUtYmFyX19tZW51Om5vdCguY2stbWVudS1iYXJfX21lbnVfdG9wLWxldmVsKSAuY2stbWVudS1iYXJfX21lbnVfX2J1dHRvbiB7XG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0fVxuLmNrLmNrLW1lbnUtYmFyX19tZW51Om5vdCguY2stbWVudS1iYXJfX21lbnVfdG9wLWxldmVsKSAuY2stbWVudS1iYXJfX21lbnVfX2J1dHRvbiA+IC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uX19hcnJvdyB7XG5cdFx0XHR3aWR0aDogdmFyKC0tY2stZHJvcGRvd24tYXJyb3ctc2l6ZSk7XG5cdFx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stbWVudS1iYXJfX21lbnU6bm90KC5jay1tZW51LWJhcl9fbWVudV90b3AtbGV2ZWwpIC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b25fX2Fycm93IHtcblx0XHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcblxuXHRcdFx0XHQvKiBBIHNwYWNlIHRvIGFjY29tbW9kYXRlIHRoZSB0cmlhbmdsZS4gKi9cblx0XHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXG5cdFx0XHRcdC8qIE51ZGdlIHRoZSBhcnJvdyBnZW50bHkgdG8gdGhlIHJpZ2h0IGJlY2F1c2UgaXRzIGNlbnRlciBvZiBncmF2aXR5IGlzIHRvIHRoZSBsZWZ0ICovXG5cdFx0XHRcdG1hcmdpbi1yaWdodDogY2FsYygtMSAqIHZhcigtLWNrLXNwYWNpbmctc21hbGwpKTtcblx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stbWVudS1iYXJfX21lbnU6bm90KC5jay1tZW51LWJhcl9fbWVudV90b3AtbGV2ZWwpIC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b25fX2Fycm93IHtcblx0XHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuXG5cdFx0XHRcdGxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXG5cdFx0XHRcdC8qIEEgc3BhY2UgdG8gYWNjb21tb2RhdGUgdGhlIHRyaWFuZ2xlLiAqL1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXG5cdFx0XHRcdC8qIE51ZGdlIHRoZSBhcnJvdyBnZW50bHkgdG8gdGhlIGxlZnQgYmVjYXVzZSBpdHMgY2VudGVyIG9mIGdyYXZpdHkgaXMgdG8gdGhlIHJpZ2h0IChhZnRlciByb3RhdGlvbikuICovXG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiBjYWxjKC0xICogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkpO1xuXHR9XG4uY2suY2stbWVudS1iYXJfX21lbnU6bm90KC5jay1tZW51LWJhcl9fbWVudV90b3AtbGV2ZWwpIC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uLmNrLWRpc2FibGVkID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b25fX2Fycm93IHtcblx0XHRcdG9wYWNpdHk6IHZhcigtLWNrLWRpc2FibGVkLW9wYWNpdHkpO1xuXHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stbWVudS1iYXItbWVudS1pdGVtLW1pbi13aWR0aDogMThlbTtcbn1cbi5jay5jay1tZW51LWJhcl9fbWVudSAuY2suY2stbWVudS1iYXJfX21lbnVfX2l0ZW0ge1xuXHRtaW4td2lkdGg6IHZhcigtLWNrLW1lbnUtYmFyLW1lbnUtaXRlbS1taW4td2lkdGgpO1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuXHQgKiBMaXN0IGl0ZW0gYnV0dG9ucy5cblx0ICovXG4uY2suY2stbWVudS1iYXJfX21lbnUgLmNrLWJ1dHRvbi5jay1tZW51LWJhcl9fbWVudV9faXRlbV9fYnV0dG9uIHtcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHR9XG4uY2suY2stbWVudS1iYXJfX21lbnUgLmNrLWJ1dHRvbi5jay1tZW51LWJhcl9fbWVudV9faXRlbV9fYnV0dG9uID4gLmNrLXNwaW5uZXItY29udGFpbmVyLFxuXHRcdC5jay5jay1tZW51LWJhcl9fbWVudSAuY2stYnV0dG9uLmNrLW1lbnUtYmFyX19tZW51X19pdGVtX19idXR0b24gPiAuY2stc3Bpbm5lci1jb250YWluZXIgLmNrLXNwaW5uZXIge1xuXHRcdFx0LyogVGhlc2Ugc3R5bGVzIGNvcnJlc3BvbmQgdG8gLmNrLWljb24gc28gdGhhdCB0aGUgc3Bpbm5lciBzZWFtbGVzc2x5IHJlcGxhY2VzIHRoZSBpY29uLiAqL1xuXHRcdFx0LS1jay10b29sYmFyLXNwaW5uZXItc2l6ZTogMjBweDtcblx0XHR9XG4uY2suY2stbWVudS1iYXJfX21lbnUgLmNrLWJ1dHRvbi5jay1tZW51LWJhcl9fbWVudV9faXRlbV9fYnV0dG9uID4gLmNrLXNwaW5uZXItY29udGFpbmVyIHtcblx0XHRcdC8qIFRoaXMgZW5zdXJlcyBtYXJnaW5zIGNvcnJlc3BvbmRpbmcgdG8gdGhlIC5jay1pY29uLiAqL1xuXHRcdFx0Zm9udC1zaXplOiB2YXIoLS1jay1pY29uLWZvbnQtc2l6ZSk7XG5cdFx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stbWVudS1iYXJfX21lbnUgLmNrLWJ1dHRvbi5jay1tZW51LWJhcl9fbWVudV9faXRlbV9fYnV0dG9uID4gLmNrLXNwaW5uZXItY29udGFpbmVyIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLW1lbnUtYmFyX19tZW51IC5jay1idXR0b24uY2stbWVudS1iYXJfX21lbnVfX2l0ZW1fX2J1dHRvbiA+IC5jay1zcGlubmVyLWNvbnRhaW5lciB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgaGVscGVyIHRvIGNvbWJpbmUgbXVsdGlwbGUgc2hhZG93cy5cbiAqL1xuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIHZpc3VhbCBzdHlsZSBvZiBmb2N1c2VkIGVsZW1lbnQncyBib3JkZXIuXG4gKi9cbjpyb290IHtcblx0LS1jay1tZW51LWJhci1tZW51LXBhbmVsLW1heC13aWR0aDogNzV2dztcbn1cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwge1xuXHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWRyb3Bkb3duLXBhbmVsLWJhY2tncm91bmQpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1kcm9wZG93bi1wYW5lbC1ib3JkZXIpO1xuXHRib3R0b206IDA7XG5cdGhlaWdodDogZml0LWNvbnRlbnQ7XG5cdG1heC13aWR0aDogdmFyKC0tY2stbWVudS1iYXItbWVudS1wYW5lbC1tYXgtd2lkdGgpO1xufVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLFxuXHQuY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdH1cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwge1xuXHRib3gtc2hhZG93OiB2YXIoLS1jay1kcm9wLXNoYWRvdyksIDAgMDtcblxuXHQvKiBDb3JuZXIgYm9yZGVyIHJhZGl1cyBjb25zaXN0ZW50IHdpdGggdGhlIGJ1dHRvbi4gKi9cbn1cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX2VzLFxuXHQuY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9zZSB7XG5cdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0fVxuLmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fd3MsXG5cdC5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX3N3IHtcblx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0fVxuLmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fZW4sXG5cdC5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX25lIHtcblx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHR9XG4uY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl93bixcblx0LmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fbncge1xuXHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG4uY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsOmZvY3VzIHtcblx0XHRvdXRsaW5lOiBub25lO1xuXHR9XG4uY2suY2stbWVudS1iYXIgLmNrLWxpc3QtaXRlbS1idXR0b246Zm9jdXMsXG5cdFx0LmNrLmNrLW1lbnUtYmFyIC5jay1saXN0LWl0ZW0tYnV0dG9uOmFjdGl2ZSB7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHR9XG4uY2suY2stbWVudS1iYXIuY2stbWVudS1iYXJfZm9jdXMtYm9yZGVyLWVuYWJsZWQgLmNrLWxpc3QtaXRlbS1idXR0b246Zm9jdXMsXG5cdFx0LmNrLmNrLW1lbnUtYmFyLmNrLW1lbnUtYmFyX2ZvY3VzLWJvcmRlci1lbmFibGVkIC5jay1saXN0LWl0ZW0tYnV0dG9uOmFjdGl2ZSB7XG5cdFx0XHQvKiBGaXggdHJ1bmNhdGVkIHNoYWRvd3MgZHVlIHRvIHJlbmRlcmluZyBvcmRlci4gKi9cblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdHotaW5kZXg6IDI7XG5cblx0XHRcdC8qIERpc2FibGUgbmF0aXZlIG91dGxpbmUuICovXG5cblx0XHRcdG91dGxpbmU6IG5vbmU7XG5cblx0XHRcdGJvcmRlcjogdmFyKC0tY2stZm9jdXMtcmluZyk7XG5cdFx0XHRib3gtc2hhZG93OiB2YXIoLS1jay1mb2N1cy1vdXRlci1zaGFkb3cpLCAwIDA7XG5cdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBoZWxwZXIgdG8gY29tYmluZSBtdWx0aXBsZSBzaGFkb3dzLlxuICovXG4vKipcbiAqIEdpdmVzIGFuIGVsZW1lbnQgYSBkcm9wIHNoYWRvdyBzbyBpdCBsb29rcyBsaWtlIGEgZmxvYXRpbmcgcGFuZWwuXG4gKi9cbjpyb290IHtcblx0LS1jay1iYWxsb29uLWJvcmRlci13aWR0aDogMXB4O1xuXHQtLWNrLWJhbGxvb24tYXJyb3ctb2Zmc2V0OiAycHg7XG5cdC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQ6IDEwcHg7XG5cdC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoOiA4cHg7XG5cdC0tY2stYmFsbG9vbi1hcnJvdy1kcm9wLXNoYWRvdzogMCAycHggMnB4IHZhcigtLWNrLWNvbG9yLXNoYWRvdy1kcm9wKTtcbn1cbi5jay5jay1iYWxsb29uLXBhbmVsIHtcblx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHRtaW4taGVpZ2h0OiAxNXB4O1xuXG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJhY2tncm91bmQpO1xuXHRib3JkZXI6IHZhcigtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1jay1jb2xvci1wYW5lbC1ib3JkZXIpO1xufVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stYmFsbG9vbi1wYW5lbCxcblx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwge1xuXHRib3gtc2hhZG93OiB2YXIoLS1jay1kcm9wLXNoYWRvdyksIDAgMDtcbn1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfd2l0aC1hcnJvdzo6YmVmb3JlLFxuXHRcdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfd2l0aC1hcnJvdzo6YWZ0ZXIge1xuXHRcdFx0d2lkdGg6IDA7XG5cdFx0XHRoZWlnaHQ6IDA7XG5cdFx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X25cIl06OmJlZm9yZSxcblx0XHQuY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd19uXCJdOjphZnRlciB7XG5cdFx0XHRib3JkZXItd2lkdGg6IDAgdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkgdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKTtcblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd19uXCJdOjpiZWZvcmUge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS1jay1jb2xvci1wYW5lbC1ib3JkZXIpIHRyYW5zcGFyZW50O1xuXHRcdFx0bWFyZ2luLXRvcDogY2FsYyggLTEgKiB2YXIoLS1jay1iYWxsb29uLWJvcmRlci13aWR0aCkgKTtcblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd19uXCJdOjphZnRlciB7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJhY2tncm91bmQpIHRyYW5zcGFyZW50O1xuXHRcdFx0bWFyZ2luLXRvcDogY2FsYyggdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1vZmZzZXQpIC0gdmFyKC0tY2stYmFsbG9vbi1ib3JkZXItd2lkdGgpICk7XG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWxbY2xhc3MqPVwiYXJyb3dfc1wiXTo6YmVmb3JlLFxuXHRcdC5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X3NcIl06OmFmdGVyIHtcblx0XHRcdGJvcmRlci13aWR0aDogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkgMCB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X3NcIl06OmJlZm9yZSB7XG5cdFx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJvcmRlcikgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRmaWx0ZXI6IGRyb3Atc2hhZG93KHZhcigtLWNrLWJhbGxvb24tYXJyb3ctZHJvcC1zaGFkb3cpKTtcblx0XHRcdG1hcmdpbi1ib3R0b206IGNhbGMoIC0xICogdmFyKC0tY2stYmFsbG9vbi1ib3JkZXItd2lkdGgpICk7XG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWxbY2xhc3MqPVwiYXJyb3dfc1wiXTo6YWZ0ZXIge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1jb2xvci1wYW5lbC1iYWNrZ3JvdW5kKSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcblx0XHRcdG1hcmdpbi1ib3R0b206IGNhbGMoIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctb2Zmc2V0KSAtIHZhcigtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoKSApO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X2VcIl06OmJlZm9yZSxcblx0XHQuY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd19lXCJdOjphZnRlciB7XG5cdFx0XHRib3JkZXItd2lkdGg6IHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkgMCB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KTtcblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd19lXCJdOjpiZWZvcmUge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS1jay1jb2xvci1wYW5lbC1ib3JkZXIpO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBjYWxjKCAtMSAqIHZhcigtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoKSApO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X2VcIl06OmFmdGVyIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdmFyKC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZCk7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGNhbGMoIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctb2Zmc2V0KSAtIHZhcigtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoKSApO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X3dcIl06OmJlZm9yZSxcblx0XHQuY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd193XCJdOjphZnRlciB7XG5cdFx0XHRib3JkZXItd2lkdGg6IHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkgdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkgMDtcblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd193XCJdOjpiZWZvcmUge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB2YXIoLS1jay1jb2xvci1wYW5lbC1ib3JkZXIpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuXHRcdFx0bWFyZ2luLWxlZnQ6IGNhbGMoIC0xICogdmFyKC0tY2stYmFsbG9vbi1ib3JkZXItd2lkdGgpICk7XG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWxbY2xhc3MqPVwiYXJyb3dfd1wiXTo6YWZ0ZXIge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB2YXIoLS1jay1jb2xvci1wYW5lbC1iYWNrZ3JvdW5kKSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcblx0XHRcdG1hcmdpbi1sZWZ0OiBjYWxjKCB2YXIoLS1jay1iYWxsb29uLWFycm93LW9mZnNldCkgLSB2YXIoLS1jay1iYWxsb29uLWJvcmRlci13aWR0aCkgKTtcblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X246OmJlZm9yZSxcblx0XHQuY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X246OmFmdGVyIHtcblx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdG1hcmdpbi1sZWZ0OiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHR0b3A6IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfbnc6OmJlZm9yZSxcblx0XHQuY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X253OjphZnRlciB7XG5cdFx0XHRsZWZ0OiBjYWxjKDIgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdHRvcDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19uZTo6YmVmb3JlLFxuXHRcdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfbmU6OmFmdGVyIHtcblx0XHRcdHJpZ2h0OiBjYWxjKDIgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdHRvcDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zOjpiZWZvcmUsXG5cdFx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zOjphZnRlciB7XG5cdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHRtYXJnaW4tbGVmdDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0Ym90dG9tOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X3N3OjpiZWZvcmUsXG5cdFx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zdzo6YWZ0ZXIge1xuXHRcdFx0bGVmdDogY2FsYygyICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHRib3R0b206IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfc2U6OmJlZm9yZSxcblx0XHQuY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X3NlOjphZnRlciB7XG5cdFx0XHRyaWdodDogY2FsYygyICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHRib3R0b206IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfc21lOjpiZWZvcmUsXG5cdFx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zbWU6OmFmdGVyIHtcblx0XHRcdHJpZ2h0OiAyNSU7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGNhbGMoMiAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0Ym90dG9tOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X3Ntdzo6YmVmb3JlLFxuXHRcdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfc213OjphZnRlciB7XG5cdFx0XHRsZWZ0OiAyNSU7XG5cdFx0XHRtYXJnaW4tbGVmdDogY2FsYygyICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHRib3R0b206IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfbm1lOjpiZWZvcmUsXG5cdFx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19ubWU6OmFmdGVyIHtcblx0XHRcdHJpZ2h0OiAyNSU7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGNhbGMoMiAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0dG9wOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X25tdzo6YmVmb3JlLFxuXHRcdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfbm13OjphZnRlciB7XG5cdFx0XHRsZWZ0OiAyNSU7XG5cdFx0XHRtYXJnaW4tbGVmdDogY2FsYygyICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHR0b3A6IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfZTo6YmVmb3JlLFxuXHRcdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfZTo6YWZ0ZXIge1xuXHRcdFx0cmlnaHQ6IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdFx0bWFyZ2luLXRvcDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd193OjpiZWZvcmUsXG5cdFx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd193OjphZnRlciB7XG5cdFx0XHRsZWZ0OiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHRcdG1hcmdpbi10b3A6IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdHRvcDogNTAlO1xuXHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4uY2sgLmNrLWJhbGxvb24tcm90YXRvcl9fbmF2aWdhdGlvbiB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXRvb2xiYXItYmFja2dyb3VuZCk7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci10b29sYmFyLWJvcmRlcik7XG5cdHBhZGRpbmc6IDAgdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cblx0LyogTGV0J3Mga2VlcCBzaW1pbGFyIGFwcGVhcmFuY2UgdG8gYGNrLXRvb2xiYXJgLiAqL1xufVxuLmNrIC5jay1iYWxsb29uLXJvdGF0b3JfX25hdmlnYXRpb24gPiAqIHtcblx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdG1hcmdpbi1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG4vKiBHaXZlcyBjb3VudGVyIG1vcmUgYnJlYXRoIHRoYW4gYnV0dG9ucy4gKi9cbi5jayAuY2stYmFsbG9vbi1yb3RhdG9yX19uYXZpZ2F0aW9uIC5jay1iYWxsb29uLXJvdGF0b3JfX2NvdW50ZXIge1xuXHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHQvKiBXZSBuZWVkIHRvIHVzZSBzbWFsbGVyIG1hcmdpbiBiZWNhdXNlIG9mIHByZXZpb3VzIGJ1dHRvbidzIHJpZ2h0IG1hcmdpbi4gKi9cblx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cbi8qIERpc2FibGUgZGVmYXVsdCBhbm5vdGF0aW9uIHNoYWRvdyBpbnNpZGUgcm90YXRvciB3aXRoIGZha2UgcGFuZWxzLiAqL1xuLmNrIC5jay1iYWxsb29uLXJvdGF0b3JfX2NvbnRlbnQgLmNrLmNrLWFubm90YXRpb24td3JhcHBlciB7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgaGVscGVyIHRvIGNvbWJpbmUgbXVsdGlwbGUgc2hhZG93cy5cbiAqL1xuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG46cm9vdCB7XG5cdC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC1ob3Jpem9udGFsOiA2cHg7XG5cdC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC12ZXJ0aWNhbDogNnB4O1xufVxuLyogTGV0J3MgdXNlIGAuY2stYmFsbG9vbi1wYW5lbGAgYXBwZWFyYW5jZS4gU2VlOiBiYWxsb29ucGFuZWwuY3NzLiAqL1xuLmNrIC5jay1mYWtlLXBhbmVsIGRpdiB7XG5cdGJveC1zaGFkb3c6IHZhcigtLWNrLWRyb3Atc2hhZG93KSwgMCAwO1xuXG5cdG1pbi1oZWlnaHQ6IDE1cHg7XG5cblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLXBhbmVsLWJvcmRlcik7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG59XG4uY2sgLmNrLWZha2UtcGFuZWwgZGl2Om50aC1jaGlsZCggMSApIHtcblx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtaG9yaXpvbnRhbCk7XG5cdG1hcmdpbi10b3A6IHZhcigtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtdmVydGljYWwpO1xufVxuLmNrIC5jay1mYWtlLXBhbmVsIGRpdjpudGgtY2hpbGQoIDIgKSB7XG5cdG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtaG9yaXpvbnRhbCkgKiAyKTtcblx0bWFyZ2luLXRvcDogY2FsYyh2YXIoLS1jay1iYWxsb29uLWZha2UtcGFuZWwtb2Zmc2V0LXZlcnRpY2FsKSAqIDIpO1xufVxuLmNrIC5jay1mYWtlLXBhbmVsIGRpdjpudGgtY2hpbGQoIDMgKSB7XG5cdG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtaG9yaXpvbnRhbCkgKiAzKTtcblx0bWFyZ2luLXRvcDogY2FsYyh2YXIoLS1jay1iYWxsb29uLWZha2UtcGFuZWwtb2Zmc2V0LXZlcnRpY2FsKSAqIDMpO1xufVxuLyogSWYgYmFsbG9vbiBpcyBwb3NpdGlvbmVkIGFib3ZlIGVsZW1lbnQsIHdlIG5lZWQgdG8gbW92ZSBmYWtlIHBhbmVsIHRvIHRoZSB0b3AuICovXG4uY2sgLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfcyArIC5jay1mYWtlLXBhbmVsLFxuLmNrIC5jay1iYWxsb29uLXBhbmVsX2Fycm93X3NlICsgLmNrLWZha2UtcGFuZWwsXG4uY2sgLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfc3cgKyAuY2stZmFrZS1wYW5lbCB7XG5cdC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC12ZXJ0aWNhbDogLTZweDtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIGhlbHBlciB0byBjb21iaW5lIG11bHRpcGxlIHNoYWRvd3MuXG4gKi9cbi8qKlxuICogR2l2ZXMgYW4gZWxlbWVudCBhIGRyb3Agc2hhZG93IHNvIGl0IGxvb2tzIGxpa2UgYSBmbG9hdGluZyBwYW5lbC5cbiAqL1xuLmNrLmNrLXN0aWNreS1wYW5lbCAuY2stc3RpY2t5LXBhbmVsX19jb250ZW50X3N0aWNreSB7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0tY2stZHJvcC1zaGFkb3cpLCAwIDA7XG5cblx0XHRib3JkZXItd2lkdGg6IDAgMXB4IDFweDtcblx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLmNrLXZlcnRpY2FsLWZvcm0gPiAuY2stYnV0dG9uOm50aC1sYXN0LWNoaWxkKDIpOjphZnRlciB7XG5cdGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcbn1cbi5jay5jay1yZXNwb25zaXZlLWZvcm0ge1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcbn1cbi5jay5jay1yZXNwb25zaXZlLWZvcm06Zm9jdXMge1xuXHRcdC8qIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNDc3MyAqL1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLXJlc3BvbnNpdmUtZm9ybSA+IDpub3QoOmZpcnN0LWNoaWxkKSB7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stcmVzcG9uc2l2ZS1mb3JtID4gOm5vdCg6bGFzdC1jaGlsZCkge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdH1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4uY2suY2stcmVzcG9uc2l2ZS1mb3JtIHtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdHdpZHRoOiBjYWxjKC44ICogdmFyKC0tY2staW5wdXQtd2lkdGgpKTtcbn1cblxuXHRcdC5jay5jay1yZXNwb25zaXZlLWZvcm0gLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0XHRtYXJnaW46IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIDA7XG5cdFx0fVxuXG5cdFx0XHQuY2suY2stcmVzcG9uc2l2ZS1mb3JtIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLWlucHV0LXRleHQsXG5cdFx0XHQuY2suY2stcmVzcG9uc2l2ZS1mb3JtIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLWlucHV0LW51bWJlciB7XG5cdFx0XHRcdG1pbi13aWR0aDogMDtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHR9XG5cblx0XHRcdC8qIExldCB0aGUgbG9uZyBlcnJvciBtZXNzYWdlcyB3cmFwIGluIHRoZSBuYXJyb3cgZm9ybS4gKi9cblx0XHRcdC5jay5jay1yZXNwb25zaXZlLWZvcm0gLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2stbGFiZWxlZC1maWVsZC12aWV3X19lcnJvciB7XG5cdFx0XHRcdHdoaXRlLXNwYWNlOiBub3JtYWw7XG5cdFx0XHR9XG5cblx0XHQvKiBTdHlsZXMgZm9yIHR3byBsYXN0IGJ1dHRvbnMgaW4gdGhlIGZvcm0gKHNhdmUmY2FuY2VsLCBlZGl0JnVubGluaywgZXRjLikuICovXG5cdFx0XHQuY2suY2stcmVzcG9uc2l2ZS1mb3JtID4gLmNrLWJ1dHRvbjpudGgtbGFzdC1jaGlsZCgyKTo6YWZ0ZXIge1xuXHRcdFx0XHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0XHR9XG5cblx0XHQuY2suY2stcmVzcG9uc2l2ZS1mb3JtID4gLmNrLWJ1dHRvbjpudGgtbGFzdC1jaGlsZCgxKSxcblx0XHQuY2suY2stcmVzcG9uc2l2ZS1mb3JtID4gLmNrLWJ1dHRvbjpudGgtbGFzdC1jaGlsZCgyKSB7XG5cdFx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHR9XG5cblx0XHRcdC5jay5jay1yZXNwb25zaXZlLWZvcm0gPiAuY2stYnV0dG9uOm50aC1sYXN0LWNoaWxkKDEpOm5vdCg6Zm9jdXMpLCAuY2suY2stcmVzcG9uc2l2ZS1mb3JtID4gLmNrLWJ1dHRvbjpudGgtbGFzdC1jaGlsZCgyKTpub3QoOmZvY3VzKSB7XG5cdFx0XHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0XHR9XG5cblx0XHRcdFtkaXI9XCJsdHJcIl0gLmNrLmNrLXJlc3BvbnNpdmUtZm9ybSA+IC5jay1idXR0b246bnRoLWxhc3QtY2hpbGQoMSksIFtkaXI9XCJsdHJcIl0gLmNrLmNrLXJlc3BvbnNpdmUtZm9ybSA+IC5jay1idXR0b246bnRoLWxhc3QtY2hpbGQoMikge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0fVxuXG5cdFx0XHRbZGlyPVwicnRsXCJdIC5jay5jay1yZXNwb25zaXZlLWZvcm0gPiAuY2stYnV0dG9uOm50aC1sYXN0LWNoaWxkKDEpLCBbZGlyPVwicnRsXCJdIC5jay5jay1yZXNwb25zaXZlLWZvcm0gPiAuY2stYnV0dG9uOm50aC1sYXN0LWNoaWxkKDIpIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdH1cblxuXHRcdFx0XHRbZGlyPVwicnRsXCJdIC5jay5jay1yZXNwb25zaXZlLWZvcm0gPiAuY2stYnV0dG9uOm50aC1sYXN0LWNoaWxkKDEpOmxhc3Qtb2YtdHlwZSwgW2Rpcj1cInJ0bFwiXSAuY2suY2stcmVzcG9uc2l2ZS1mb3JtID4gLmNrLWJ1dHRvbjpudGgtbGFzdC1jaGlsZCgyKTpsYXN0LW9mLXR5cGUge1xuXHRcdFx0XHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRcdFx0fVxuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1zZWFyY2gtZmllbGQtdmlldy1ob3Jpem9udGFsLXNwYWNpbmc6IGNhbGModmFyKC0tY2staWNvbi1zaXplKSArIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKSk7XG59XG4uY2suY2stc2VhcmNoID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2staW5wdXQge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0fVxuLmNrLmNrLXNlYXJjaCA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stc2VhcmNoX19xdWVyeV93aXRoLWljb24ge1xuXHRcdFx0LS1jay1sYWJlbGVkLWZpZWxkLWxhYmVsLWRlZmF1bHQtcG9zaXRpb24teDogdmFyKC0tY2stc2VhcmNoLWZpZWxkLXZpZXctaG9yaXpvbnRhbC1zcGFjaW5nKTtcblx0XHR9XG4uY2suY2stc2VhcmNoID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1zZWFyY2hfX3F1ZXJ5X3dpdGgtaWNvbiA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2staWNvbiB7XG5cdFx0XHRcdG9wYWNpdHk6IC41O1xuXHRcdFx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHRcdH1cbi5jay5jay1zZWFyY2ggPiAuY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLXNlYXJjaF9fcXVlcnlfd2l0aC1pY29uIC5jay1pbnB1dCB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stc2VhcmNoID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1zZWFyY2hfX3F1ZXJ5X3dpdGgtaWNvbiAuY2staW5wdXQge1xuXHRcdFx0XHRcdHBhZGRpbmctbGVmdDogdmFyKC0tY2stc2VhcmNoLWZpZWxkLXZpZXctaG9yaXpvbnRhbC1zcGFjaW5nKTtcblx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stc2VhcmNoID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1zZWFyY2hfX3F1ZXJ5X3dpdGgtaWNvbiAuY2staW5wdXQ6bm90KC5jay1pbnB1dC10ZXh0X2VtcHR5KSB7XG5cdFx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLWNrLXNlYXJjaC1maWVsZC12aWV3LWhvcml6b250YWwtc3BhY2luZyk7XG5cdFx0XHRcdFx0fVxuLmNrLmNrLXNlYXJjaCA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stc2VhcmNoX19xdWVyeV93aXRoLXJlc2V0IHtcblx0XHRcdC0tY2stbGFiZWxlZC1maWVsZC1lbXB0eS11bmZvY3VzZWQtbWF4LXdpZHRoOiAxMDAlIC0gMiAqIHZhcigtLWNrLXNlYXJjaC1maWVsZC12aWV3LWhvcml6b250YWwtc3BhY2luZyk7XG5cdFx0fVxuLmNrLmNrLXNlYXJjaCA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stc2VhcmNoX19xdWVyeV93aXRoLXJlc2V0LmNrLWxhYmVsZWQtZmllbGQtdmlld19lbXB0eSB7XG5cdFx0XHRcdC0tY2stbGFiZWxlZC1maWVsZC1lbXB0eS11bmZvY3VzZWQtbWF4LXdpZHRoOiAxMDAlIC0gdmFyKC0tY2stc2VhcmNoLWZpZWxkLXZpZXctaG9yaXpvbnRhbC1zcGFjaW5nKSAtIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRcdH1cbi5jay5jay1zZWFyY2ggPiAuY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLXNlYXJjaF9fcXVlcnlfd2l0aC1yZXNldCAuY2stc2VhcmNoX19yZXNldCB7XG5cdFx0XHRcdG1pbi13aWR0aDogYXV0bztcblx0XHRcdFx0bWluLWhlaWdodDogYXV0bztcblxuXHRcdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdFx0XHRvcGFjaXR5OiAuNTtcblx0XHRcdFx0cGFkZGluZzogMDtcblx0XHRcdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLXNlYXJjaCA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stc2VhcmNoX19xdWVyeV93aXRoLXJlc2V0IC5jay1zZWFyY2hfX3Jlc2V0IHtcblx0XHRcdFx0XHRyaWdodDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1zZWFyY2ggPiAuY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLXNlYXJjaF9fcXVlcnlfd2l0aC1yZXNldCAuY2stc2VhcmNoX19yZXNldCB7XG5cdFx0XHRcdFx0bGVmdDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHR9XG4uY2suY2stc2VhcmNoID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1zZWFyY2hfX3F1ZXJ5X3dpdGgtcmVzZXQgLmNrLXNlYXJjaF9fcmVzZXQ6aG92ZXIge1xuXHRcdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHRcdH1cbi5jay5jay1zZWFyY2ggPiAuY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLXNlYXJjaF9fcXVlcnlfd2l0aC1yZXNldCAuY2staW5wdXQge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLXNlYXJjaCA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stc2VhcmNoX19xdWVyeV93aXRoLXJlc2V0IC5jay1pbnB1dDpub3QoLmNrLWlucHV0LXRleHRfZW1wdHkpIHtcblx0XHRcdFx0XHRcdHBhZGRpbmctcmlnaHQ6IHZhcigtLWNrLXNlYXJjaC1maWVsZC12aWV3LWhvcml6b250YWwtc3BhY2luZyk7XG5cdFx0XHRcdFx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stc2VhcmNoID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1zZWFyY2hfX3F1ZXJ5X3dpdGgtcmVzZXQgLmNrLWlucHV0IHtcblx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jay1zZWFyY2gtZmllbGQtdmlldy1ob3Jpem9udGFsLXNwYWNpbmcpO1xuXHR9XG4uY2suY2stc2VhcmNoID4gLmNrLXNlYXJjaF9fcmVzdWx0cyB7XG5cdFx0bWluLXdpZHRoOiAxMDAlO1xuXHR9XG4uY2suY2stc2VhcmNoID4gLmNrLXNlYXJjaF9fcmVzdWx0cyA+IC5jay1zZWFyY2hfX2luZm8ge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0fVxuLmNrLmNrLXNlYXJjaCA+IC5jay1zZWFyY2hfX3Jlc3VsdHMgPiAuY2stc2VhcmNoX19pbmZvICoge1xuXHRcdFx0XHR3aGl0ZS1zcGFjZTogbm9ybWFsO1xuXHRcdFx0fVxuLmNrLmNrLXNlYXJjaCA+IC5jay1zZWFyY2hfX3Jlc3VsdHMgPiAuY2stc2VhcmNoX19pbmZvID4gc3BhbjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0fVxuLmNrLmNrLXNlYXJjaCA+IC5jay1zZWFyY2hfX3Jlc3VsdHMgPiAuY2stc2VhcmNoX19pbmZvID4gc3BhbjpsYXN0LWNoaWxkIHtcblx0XHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay10b29sYmFyLXNwaW5uZXItc2l6ZTogMThweDtcbn1cbi5jay5jay1zcGlubmVyLWNvbnRhaW5lciB7XG5cdHdpZHRoOiB2YXIoLS1jay10b29sYmFyLXNwaW5uZXItc2l6ZSk7XG5cdGhlaWdodDogdmFyKC0tY2stdG9vbGJhci1zcGlubmVyLXNpemUpO1xuXHRhbmltYXRpb246IDEuNXMgaW5maW5pdGUgY2stc3Bpbm5lci1yb3RhdGUgbGluZWFyO1xufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jay5jay1zcGlubmVyLWNvbnRhaW5lciB7XG5cdFx0YW5pbWF0aW9uLWR1cmF0aW9uOiAzcztcbn1cblx0fVxuLmNrLmNrLXNwaW5uZXIge1xuXHR3aWR0aDogdmFyKC0tY2stdG9vbGJhci1zcGlubmVyLXNpemUpO1xuXHRoZWlnaHQ6IHZhcigtLWNrLXRvb2xiYXItc3Bpbm5lci1zaXplKTtcblx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jay1jb2xvci10ZXh0KTtcblx0Ym9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5Aa2V5ZnJhbWVzIGNrLXNwaW5uZXItcm90YXRlIHtcblx0dG8ge1xuXHRcdHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZylcblx0fVxufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBUaGlzIGZpeGVzIGEgcHJvYmxlbSBpbiBGaXJlZm94IHdoZW4gdGhlIGluaXRpYWwgaGVpZ2h0IG9mIHRoZSBjb21wbGVtZW50IGRvZXMgbm90IG1hdGNoIHRoZSBudW1iZXIgb2Ygcm93cy5cbiAqIFRoaXMgYnVnIGlzIGVzcGVjaWFsbHkgdmlzaWJsZSB3aGVuIHJvd3M9MS5cbiAqL1xuLmNrLXRleHRhcmVhIHtcblx0b3ZlcmZsb3cteDogaGlkZGVuXG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLWJsb2NrLXRvb2xiYXItYnV0dG9uOiB2YXIoLS1jay1jb2xvci10ZXh0KTtcblx0LS1jay1ibG9jay10b29sYmFyLWJ1dHRvbi1zaXplOiB2YXIoLS1jay1mb250LXNpemUtbm9ybWFsKTtcbn1cbi5jay5jay1ibG9jay10b29sYmFyLWJ1dHRvbiB7XG5cdGNvbG9yOiB2YXIoLS1jay1jb2xvci1ibG9jay10b29sYmFyLWJ1dHRvbik7XG5cdGZvbnQtc2l6ZTogdmFyKC0tY2stYmxvY2stdG9vbGJhci1zaXplKTtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4uY2suY2stdG9vbGJhciB7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG5cblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItdG9vbGJhci1iYWNrZ3JvdW5kKTtcblx0cGFkZGluZzogMCB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItdG9vbGJhci1ib3JkZXIpO1xufVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stdG9vbGJhcixcblx0LmNrLmNrLXRvb2xiYXIuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0fVxuLmNrLmNrLXRvb2xiYXIgLmNrLmNrLXRvb2xiYXJfX3NlcGFyYXRvciB7XG5cdFx0aGVpZ2h0OiB2YXIoLS1jay1pY29uLXNpemUpO1xuXHRcdHdpZHRoOiAxcHg7XG5cdFx0bWluLXdpZHRoOiAxcHg7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItdG9vbGJhci1ib3JkZXIpO1xuXG5cdFx0Lypcblx0XHQgKiBUaGVzZSBtYXJnaW5zIG1ha2UgdGhlIHNlcGFyYXRvcnMgbG9vayBiZXR0ZXIgaW4gYmFsbG9vbiB0b29sYmFycyAod2hlbiBhbGlnbmVkIHdpdGggdGhlIFwidGlwXCIpLlxuXHRcdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy83NDkzLlxuXHRcdCAqL1xuXHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdG1hcmdpbi1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG4uY2suY2stdG9vbGJhciAuY2stdG9vbGJhcl9fbGluZS1icmVhayB7XG5cdFx0aGVpZ2h0OiAwO1xuXHR9XG4uY2suY2stdG9vbGJhciA+IC5jay10b29sYmFyX19pdGVtcyA+ICo6bm90KC5jay10b29sYmFyX19saW5lLWJyZWFrKSB7XG5cdFx0XHQvKiAoIzExKSBTZXBhcmF0ZSB0b29sYmFyIGl0ZW1zLiAqL1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG4vKiBEb24ndCBkaXNwbGF5IGEgc2VwYXJhdG9yIGFmdGVyIGFuIGVtcHR5IGl0ZW1zIGNvbnRhaW5lciwgZm9yIGluc3RhbmNlLFxuXHRcdHdoZW4gYWxsIGl0ZW1zIHdlcmUgZ3JvdXBlZCAqL1xuLmNrLmNrLXRvb2xiYXIgPiAuY2stdG9vbGJhcl9faXRlbXM6ZW1wdHkgKyAuY2suY2stdG9vbGJhcl9fc2VwYXJhdG9yIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuLmNrLmNrLXRvb2xiYXIgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAqOm5vdCguY2stdG9vbGJhcl9fbGluZS1icmVhayksXG5cdC5jay5jay10b29sYmFyID4gLmNrLmNrLXRvb2xiYXJfX2dyb3VwZWQtZHJvcGRvd24ge1xuXHRcdC8qIE1ha2Ugc3VyZSBpdGVtcyB3cmFwcGVkIHRvIHRoZSBuZXh0IGxpbmUgaGF2ZSB2LXNwYWNpbmcgKi9cblx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHRtYXJnaW4tYm90dG9tOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl92ZXJ0aWNhbCB7XG5cdFx0LyogSXRlbXMgaW4gYSB2ZXJ0aWNhbCB0b29sYmFyIHNwYW4gdGhlIGVudGlyZSB3aWR0aC4gKi9cblx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0LyogU3BlY2lmaWNpdHkgbWF0dGVycyBoZXJlLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy8xNjguICovXG5cdH1cbi5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfdmVydGljYWwgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2sge1xuXHRcdFx0LyogSXRlbXMgaW4gYSB2ZXJ0aWNhbCB0b29sYmFyIHNob3VsZCBzcGFuIHRoZSBob3Jpem9udGFsIHNwYWNlLiAqL1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cblx0XHRcdC8qIEl0ZW1zIGluIGEgdmVydGljYWwgdG9vbGJhciBzaG91bGQgaGF2ZSBubyBtYXJnaW4uICovXG5cdFx0XHRtYXJnaW46IDA7XG5cblx0XHRcdC8qIEl0ZW1zIGluIGEgdmVydGljYWwgdG9vbGJhciBzcGFuIHRoZSBlbnRpcmUgd2lkdGggc28gcm91bmRlZCBjb3JuZXJzIGFyZSBwb2ludGxlc3MuICovXG5cdFx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHRcdH1cbi5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfY29tcGFjdCB7XG5cdFx0LyogTm8gc3BhY2luZyBhcm91bmQgaXRlbXMuICovXG5cdFx0cGFkZGluZzogMDtcblx0fVxuLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl9jb21wYWN0ID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gKiB7XG5cdFx0XHQvKiBDb21wYWN0IHRvb2xiYXIgaXRlbXMgaGF2ZSBubyBzcGFjaW5nIGJldHdlZW4gdGhlbS4gKi9cblx0XHRcdG1hcmdpbjogMDtcblxuXHRcdFx0LyogXCJNaWRkbGVcIiBjaGlsZHJlbiBzaG91bGQgaGF2ZSBubyByb3VuZGVkIGNvcm5lcnMuICovXG5cdFx0fVxuLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl9jb21wYWN0ID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gKjpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpIHtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHRcdH1cbi8qXG5cdFx0ICogRHJvcGRvd24gYnV0dG9uIGhhcyBhc3ltbWV0cmljIHBhZGRpbmcgdG8gZml0IHRoZSBhcnJvdy5cblx0XHQgKiBUaGlzIGJ1dHRvbiBoYXMgbm8gYXJyb3cgc28gbGV0J3MgcmV2ZXJ0IHRoYXQgcGFkZGluZyBiYWNrIHRvIG5vcm1hbC5cblx0XHQgKi9cbi5jay5jay10b29sYmFyID4gLmNrLmNrLXRvb2xiYXJfX2dyb3VwZWQtZHJvcGRvd24gPiAuY2suY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b24ge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpO1xuXHRcdH1cbi8qIEEgZHJvcC1kb3duIGNvbnRhaW5pbmcgdGhlIG5lc3RlZCB0b29sYmFyIHdpdGggY29uZmlndXJlZCBpdGVtcy4gKi9cbi8qIFByZXZlbnQgZW1wdHkgc3BhY2UgaW4gdGhlIHBhbmVsIHdoZW4gdGhlIGRyb3Bkb3duIGxhYmVsIGlzIHZpc2libGUgYW5kIGxvbmcgYnV0IHRoZSB0b29sYmFyIGhhcyBmZXcgaXRlbXMuICovXG4uY2suY2stdG9vbGJhciAuY2stdG9vbGJhcl9fbmVzdGVkLXRvb2xiYXItZHJvcGRvd24gPiAuY2stZHJvcGRvd25fX3BhbmVsIHtcblx0XHRcdG1pbi13aWR0aDogYXV0bztcblx0XHR9XG4uY2suY2stdG9vbGJhciAuY2stdG9vbGJhcl9fbmVzdGVkLXRvb2xiYXItZHJvcGRvd24gPiAuY2stYnV0dG9uID4gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0bWF4LXdpZHRoOiA3ZW07XG5cdFx0XHR3aWR0aDogYXV0bztcblx0XHR9XG4uY2suY2stdG9vbGJhcjpmb2N1cyB7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0fVxuLmNrLXRvb2xiYXItY29udGFpbmVyIC5jay5jay10b29sYmFyIHtcblx0XHRib3JkZXI6IDA7XG5cdH1cbi8qIHN0eWxlbGludC1kaXNhYmxlICovXG4vKlxuICogU3R5bGVzIGZvciBSVEwgdG9vbGJhcnMuXG4gKlxuICogTm90ZTogSW4gc29tZSBjYXNlcyAoZS5nLiBhIGRlY291cGxlZCBlZGl0b3IpLCB0aGUgdG9vbGJhciBoYXMgaXRzIG93biBcImRpclwiXG4gKiBiZWNhdXNlIGl0cyBwYXJlbnQgaXMgbm90IGNvbnRyb2xsZWQgYnkgdGhlIGVkaXRvciBmcmFtZXdvcmsuXG4gKi9cbltkaXI9XCJydGxcIl0gLmNrLmNrLXRvb2xiYXIgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2ssIC5jay5jay10b29sYmFyW2Rpcj1cInJ0bFwiXSA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jayB7XG5cdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay10b29sYmFyOm5vdCguY2stdG9vbGJhcl9jb21wYWN0KSA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jaywgLmNrLmNrLXRvb2xiYXJbZGlyPVwicnRsXCJdOm5vdCguY2stdG9vbGJhcl9jb21wYWN0KSA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jayB7XG5cdFx0LyogKCMxMSkgU2VwYXJhdGUgdG9vbGJhciBpdGVtcy4gKi9cblx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLXRvb2xiYXIgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2s6bGFzdC1jaGlsZCwgLmNrLmNrLXRvb2xiYXJbZGlyPVwicnRsXCJdID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrOmxhc3QtY2hpbGQge1xuXHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHR9XG4vKiBObyByb3VuZGVkIGNvcm5lcnMgb24gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIGZpcnN0IGNoaWxkLiAqL1xuW2Rpcj1cInJ0bFwiXSAuY2suY2stdG9vbGJhci5jay10b29sYmFyX2NvbXBhY3QgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2s6Zmlyc3QtY2hpbGQsIC5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfY29tcGFjdFtkaXI9XCJydGxcIl0gPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2s6Zmlyc3QtY2hpbGQge1xuXHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0fVxuLyogTm8gcm91bmRlZCBjb3JuZXJzIG9uIHRoZSBsZWZ0IHNpZGUgb2YgdGhlIGxhc3QgY2hpbGQuICovXG5bZGlyPVwicnRsXCJdIC5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfY29tcGFjdCA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jazpsYXN0LWNoaWxkLCAuY2suY2stdG9vbGJhci5jay10b29sYmFyX2NvbXBhY3RbZGlyPVwicnRsXCJdID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrOmxhc3QtY2hpbGQge1xuXHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblx0XHR9XG4vKiBTZXBhcmF0ZSB0aGUgdGhlIHNlcGFyYXRvciBmb3JtIHRoZSBncm91cGluZyBkcm9wZG93biB3aGVuIHNvbWUgaXRlbXMgYXJlIGdyb3VwZWQuICovXG5bZGlyPVwicnRsXCJdIC5jay5jay10b29sYmFyID4gLmNrLmNrLXRvb2xiYXJfX3NlcGFyYXRvciwgLmNrLmNrLXRvb2xiYXJbZGlyPVwicnRsXCJdID4gLmNrLmNrLXRvb2xiYXJfX3NlcGFyYXRvciB7XG5cdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG4vKiBTb21lIHNwYWNpbmcgYmV0d2VlbiB0aGUgaXRlbXMgYW5kIHRoZSBzZXBhcmF0b3IgYmVmb3JlIHRoZSBncm91cGVkIGl0ZW1zIGRyb3Bkb3duLiAqL1xuW2Rpcj1cInJ0bFwiXSAuY2suY2stdG9vbGJhci5jay10b29sYmFyX2dyb3VwaW5nID4gLmNrLXRvb2xiYXJfX2l0ZW1zOm5vdCg6ZW1wdHkpOm5vdCg6b25seS1jaGlsZCksIC5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfZ3JvdXBpbmdbZGlyPVwicnRsXCJdID4gLmNrLXRvb2xiYXJfX2l0ZW1zOm5vdCg6ZW1wdHkpOm5vdCg6b25seS1jaGlsZCkge1xuXHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuLypcbiAqIFN0eWxlcyBmb3IgTFRSIHRvb2xiYXJzLlxuICpcbiAqIE5vdGU6IEluIHNvbWUgY2FzZXMgKGUuZy4gYSBkZWNvdXBsZWQgZWRpdG9yKSwgdGhlIHRvb2xiYXIgaGFzIGl0cyBvd24gXCJkaXJcIlxuICogYmVjYXVzZSBpdHMgcGFyZW50IGlzIG5vdCBjb250cm9sbGVkIGJ5IHRoZSBlZGl0b3IgZnJhbWV3b3JrLlxuICovXG5bZGlyPVwibHRyXCJdIC5jay5jay10b29sYmFyID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrOmxhc3QtY2hpbGQsIC5jay5jay10b29sYmFyW2Rpcj1cImx0clwiXSA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jazpsYXN0LWNoaWxkIHtcblx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdH1cbi8qIE5vIHJvdW5kZWQgY29ybmVycyBvbiB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgZmlyc3QgY2hpbGQuICovXG5bZGlyPVwibHRyXCJdIC5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfY29tcGFjdCA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jazpmaXJzdC1jaGlsZCwgLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl9jb21wYWN0W2Rpcj1cImx0clwiXSA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jazpmaXJzdC1jaGlsZCB7XG5cdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHRcdH1cbi8qIE5vIHJvdW5kZWQgY29ybmVycyBvbiB0aGUgbGVmdCBzaWRlIG9mIHRoZSBsYXN0IGNoaWxkLiAqL1xuW2Rpcj1cImx0clwiXSAuY2suY2stdG9vbGJhci5jay10b29sYmFyX2NvbXBhY3QgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2s6bGFzdC1jaGlsZCwgLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl9jb21wYWN0W2Rpcj1cImx0clwiXSA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jazpsYXN0LWNoaWxkIHtcblx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHRcdH1cbi8qIFNlcGFyYXRlIHRoZSB0aGUgc2VwYXJhdG9yIGZvcm0gdGhlIGdyb3VwaW5nIGRyb3Bkb3duIHdoZW4gc29tZSBpdGVtcyBhcmUgZ3JvdXBlZC4gKi9cbltkaXI9XCJsdHJcIl0gLmNrLmNrLXRvb2xiYXIgPiAuY2suY2stdG9vbGJhcl9fc2VwYXJhdG9yLCAuY2suY2stdG9vbGJhcltkaXI9XCJsdHJcIl0gPiAuY2suY2stdG9vbGJhcl9fc2VwYXJhdG9yIHtcblx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG4vKiBTb21lIHNwYWNpbmcgYmV0d2VlbiB0aGUgaXRlbXMgYW5kIHRoZSBzZXBhcmF0b3IgYmVmb3JlIHRoZSBncm91cGVkIGl0ZW1zIGRyb3Bkb3duLiAqL1xuW2Rpcj1cImx0clwiXSAuY2suY2stdG9vbGJhci5jay10b29sYmFyX2dyb3VwaW5nID4gLmNrLXRvb2xiYXJfX2l0ZW1zOm5vdCg6ZW1wdHkpOm5vdCg6b25seS1jaGlsZCksIC5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfZ3JvdXBpbmdbZGlyPVwibHRyXCJdID4gLmNrLXRvb2xiYXJfX2l0ZW1zOm5vdCg6ZW1wdHkpOm5vdCg6b25seS1jaGlsZCkge1xuXHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLXRvb2x0aXAge1xuXHQtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoOiAwcHg7XG5cdC0tY2stYmFsbG9vbi1hcnJvdy1vZmZzZXQ6IDBweDtcblx0LS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGg6IDRweDtcblx0LS1jay1iYWxsb29uLWFycm93LWhlaWdodDogNHB4O1xuXHQtLWNrLXRvb2x0aXAtdGV4dC1wYWRkaW5nOiA0cHg7XG5cdC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItdG9vbHRpcC1iYWNrZ3JvdW5kKTtcblxuXHRwYWRkaW5nOiAwIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblxuXHQvKiBSZXNldCBiYWxsb29uIHBhbmVsIHN0eWxlcyAqL1xuXHRib3gtc2hhZG93OiBub25lO1xufVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stdG9vbHRpcCAuY2stdG9vbHRpcF9fdGV4dCB7XG5cdFx0Zm9udC1zaXplOiAuOWVtO1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjU7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLXRvb2x0aXAtdGV4dCk7XG5cdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLXRvb2x0aXAuY2stdG9vbHRpcF9tdWx0aS1saW5lIC5jay10b29sdGlwX190ZXh0IHtcblx0XHR3aGl0ZS1zcGFjZTogYnJlYWstc3BhY2VzO1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRwYWRkaW5nOiB2YXIoLS1jay10b29sdGlwLXRleHQtcGFkZGluZykgMDtcblx0XHRtYXgtd2lkdGg6IDIwMHB4O1xuXHR9XG4vKiBIaWRlIHRoZSBkZWZhdWx0IHNoYWRvdyBvZiB0aGUgLmNrLWJhbGxvb24tcGFuZWwgdGlwICovXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay10b29sdGlwOjpiZWZvcmUge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuLyogRWRpdG9yICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG4uY2suY2stZWRpdG9yX190b3AgLmNrLXN0aWNreS1wYW5lbCAuY2stc3RpY2t5LXBhbmVsX19jb250ZW50IHtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRcdGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG5cdFx0fVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stZWRpdG9yX190b3AgLmNrLXN0aWNreS1wYW5lbCAuY2stc3RpY2t5LXBhbmVsX19jb250ZW50LFxuXHQuY2suY2stZWRpdG9yX190b3AgLmNrLXN0aWNreS1wYW5lbCAuY2stc3RpY2t5LXBhbmVsX19jb250ZW50LmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdFx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG4uY2suY2stZWRpdG9yX190b3AgLmNrLXN0aWNreS1wYW5lbCAuY2stc3RpY2t5LXBhbmVsX19jb250ZW50LmNrLXN0aWNreS1wYW5lbF9fY29udGVudF9zdGlja3kge1xuXHRcdFx0XHRib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XG5cdFx0XHR9XG4uY2suY2stZWRpdG9yX190b3AgLmNrLXN0aWNreS1wYW5lbCAuY2stc3RpY2t5LXBhbmVsX19jb250ZW50IC5jay1tZW51LWJhciB7XG5cdFx0XHRcdGJvcmRlcjogMDtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRcdH1cbi5jay5jay1lZGl0b3JfX3RvcCAuY2stc3RpY2t5LXBhbmVsIC5jay1zdGlja3ktcGFuZWxfX2NvbnRlbnQgLmNrLXRvb2xiYXIge1xuXHRcdFx0XHRib3JkZXI6IDA7XG5cdFx0XHR9XG4vKiBOb3RlOiBVc2UgY2stZWRpdG9yX19tYWluIHRvIG1ha2Ugc3VyZSB0aGVzZSBzdHlsZXMgZG9uJ3QgYXBwbHkgdG8gb3RoZXIgZWRpdG9yIHR5cGVzICovXG4uY2suY2stZWRpdG9yX19tYWluID4gLmNrLWVkaXRvcl9fZWRpdGFibGUge1xuXHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvaXNzdWVzLzExMyAqL1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXG5cdGJvcmRlci1yYWRpdXM6IDA7XG59XG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1lZGl0b3JfX21haW4gPiAuY2stZWRpdG9yX19lZGl0YWJsZSxcblx0LmNrLmNrLWVkaXRvcl9fbWFpbiA+IC5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0fVxuLmNrLmNrLWVkaXRvcl9fbWFpbiA+IC5jay1lZGl0b3JfX2VkaXRhYmxlOm5vdCguY2stZm9jdXNlZCkge1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHR9XG5cbi8qIFBsdWdpbnMgKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stYm9va21hcmstaWNvbi1ob3Zlci1maWxsLWNvbG9yOiB2YXIoLS1jay1jb2xvci13aWRnZXQtaG92ZXItYm9yZGVyKTtcblx0LS1jay1ib29rbWFyay1pY29uLXNlbGVjdGVkLWZpbGwtY29sb3I6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdC0tY2stYm9va21hcmstaWNvbi1hbmltYXRpb24tZHVyYXRpb246IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1kdXJhdGlvbik7XG5cdC0tY2stYm9va21hcmstaWNvbi1hbmltYXRpb24tY3VydmU6IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSk7XG59XG4uY2sgLmNrLWJvb2ttYXJrLmNrLXdpZGdldCB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdH1cbi5jayAuY2stYm9va21hcmsuY2std2lkZ2V0IC5jay1ib29rbWFya19faWNvbiAuY2staWNvbl9fZmlsbCB7XG5cdFx0XHR0cmFuc2l0aW9uOiBmaWxsIHZhcigtLWNrLWJvb2ttYXJrLWljb24tYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1jay1ib29rbWFyay1pY29uLWFuaW1hdGlvbi1jdXJ2ZSk7XG5cdFx0fVxuLmNrIC5jay1ib29rbWFyay5jay13aWRnZXQ6aG92ZXIgLmNrLWJvb2ttYXJrX19pY29uIC5jay1pY29uX19maWxsIHtcblx0XHRcdFx0ZmlsbDogdmFyKC0tY2stYm9va21hcmstaWNvbi1ob3Zlci1maWxsLWNvbG9yKTtcblx0XHRcdH1cbi5jayAuY2stYm9va21hcmsuY2std2lkZ2V0LmNrLXdpZGdldF9zZWxlY3RlZCAuY2stYm9va21hcmtfX2ljb24gLmNrLWljb25fX2ZpbGwge1xuXHRcdFx0XHRmaWxsOiB2YXIoLS1jay1ib29rbWFyay1pY29uLXNlbGVjdGVkLWZpbGwtY29sb3IpO1xuXHRcdFx0fVxuLmNrIC5jay1ib29rbWFyay5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkLFxuXHRcdC5jayAuY2stYm9va21hcmsuY2std2lkZ2V0LmNrLXdpZGdldF9zZWxlY3RlZDpob3ZlciB7XG5cdFx0XHRvdXRsaW5lOiBub25lO1xuXHRcdH1cbi5jayAuY2stYm9va21hcmsuY2std2lkZ2V0IC5jay1ib29rbWFya19faWNvbiB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdC8qIFRvIG1ha2UgaXQgYWxpZ24gd2l0aCB0ZXh0IGJhc2VsaW5lLiAqL1xuXHRcdFx0dG9wOiAtMC4xZW07XG5cdFx0fVxuLmNrIC5jay1ib29rbWFyay5jay13aWRnZXQgLmNrLWJvb2ttYXJrX19pY29uIC5jay1pY29uIHtcblx0XHRcdFx0aGVpZ2h0OiAxLjJlbTtcblx0XHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0XHR9XG4vKlxuICogQ2xhc3NlcyB1c2VkIGJ5IHRoZSBcImZha2UgdmlzdWFsIHNlbGVjdGlvblwiIGRpc3BsYXllZCBpbiB0aGUgY29udGVudCB3aGVuIGFuIGlucHV0XG4gKiBpbiB0aGUgYm9va21hcmsgVUkgaGFzIGZvY3VzICh0aGUgYnJvd3NlciBkb2VzIG5vdCByZW5kZXIgdGhlIG5hdGl2ZSBzZWxlY3Rpb24gaW4gdGhpcyBzdGF0ZSkuXG4gKi9cbi5jayAuY2stZmFrZS1ib29rbWFyay1zZWxlY3Rpb24ge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saW5rLWZha2Utc2VsZWN0aW9uKTtcbn1cbi8qIEEgY29sbGFwc2VkIGZha2UgdmlzdWFsIHNlbGVjdGlvbi4gKi9cbi5jayAuY2stZmFrZS1ib29rbWFyay1zZWxlY3Rpb25fY29sbGFwc2VkIHtcblx0aGVpZ2h0OiAxMDAlO1xuXHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLXRleHQpO1xuXHRtYXJnaW4tcmlnaHQ6IC0xcHg7XG5cdG91dGxpbmU6IHNvbGlkIDFweCBoc2xhKDAsIDAlLCAxMDAlLCAuNSk7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1ib29rbWFyay1mb3JtLXdpZHRoOiAzNDBweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG5cdDpyb290IHtcblx0XHQtLWNrLWJvb2ttYXJrLWZvcm0td2lkdGg6IDMwMHB4O1xuXHR9XG5cdH1cbi5jay5jay1ib29rbWFyay1mb3JtIHtcblx0d2lkdGg6IHZhcigtLWNrLWJvb2ttYXJrLWZvcm0td2lkdGgpO1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIE1ha2VzIGVsZW1lbnQgdW5zZWxlY3RhYmxlLlxuICovXG4uY2suY2stYm9va21hcmstYmFsbG9vbiAuY2suY2stdG9vbGJhciA+IC5jay10b29sYmFyX19pdGVtcyB7XG5cdFx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0XHR9XG4uY2suY2stYm9va21hcmstdG9vbGJhcl9fcHJldmlldyB7XG5cdHBhZGRpbmc6IDAgdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRtYXgtd2lkdGg6IHZhcigtLWNrLWlucHV0LXdpZHRoKTtcblx0bWluLXdpZHRoOiAzZW07XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cblx0LW1vei11c2VyLXNlbGVjdDogbm9uZTtcblxuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuXG5cdC1tcy11c2VyLXNlbGVjdDogbm9uZTtcblxuXHR1c2VyLXNlbGVjdDogbm9uZTtcblx0Y3Vyc29yOiBkZWZhdWx0O1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC13aWR0aDogMTJweDtcblx0LS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LWhlaWdodDogOHB4O1xuXHQtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcjogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcbn1cbi8qXG5cdCAqIFZlcnRpY2FsIGRyb3AgdGFyZ2V0IChpbiB0ZXh0KS5cblx0ICovXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuY2suY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LXBvc2l0aW9uIHNwYW4ge1xuXHRcdFx0Ym90dG9tOiBjYWxjKC0uNSAqIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3QtaGVpZ2h0KSk7XG5cdFx0XHR0b3A6IGNhbGMoLS41ICogdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC1oZWlnaHQpKTtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcik7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtY29sb3IpO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IC0xcHg7XG5cblx0XHRcdC8qIFRoZSB0cmlhbmdsZSBhYm92ZSB0aGUgbWFya2VyICovXG5cdFx0fVxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmNrLmNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1wb3NpdGlvbiBzcGFuOjphZnRlciB7XG5cdFx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0XHR3aWR0aDogMDtcblx0XHRcdFx0aGVpZ2h0OiAwO1xuXG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdFx0dG9wOiBjYWxjKC0uNSAqIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3QtaGVpZ2h0KSk7XG5cblx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXHRcdFx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcikgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdGJvcmRlci13aWR0aDogY2FsYyh2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LWhlaWdodCkpIGNhbGMoLjUgKiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LXdpZHRoKSkgMCBjYWxjKC41ICogdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC13aWR0aCkpO1xuXHRcdFx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdFx0fVxuLypcblx0ICogU3R5bGVzIG9mIHRoZSB3aWRnZXQgdGhhdCBpdCBhIGRyb3AgdGFyZ2V0LlxuXHQgKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5jay13aWRnZXQuY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LXJhbmdlIHtcblx0XHRvdXRsaW5lOiB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpIHNvbGlkIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcikgIWltcG9ydGFudDtcblx0fVxuLypcblx0ICogU3R5bGVzIG9mIHRoZSB3aWRnZXQgYmVpbmcgZHJhZ2dlZCAoaXRzIHByZXZpZXcpLlxuXHQgKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5jay13aWRnZXQ6LXdlYmtpdC1kcmFnIHtcblx0XHR6b29tOiAwLjY7XG5cdFx0b3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuXHR9XG4uY2suY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWxpbmUge1xuXHRoZWlnaHQ6IDA7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcik7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcik7XG5cdG1hcmdpbi10b3A6IC0xcHg7XG59XG4uY2suY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWxpbmU6OmJlZm9yZSB7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogY2FsYygtLjUgKiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LXdpZHRoKSk7XG5cdFx0d2lkdGg6IDA7XG5cdFx0aGVpZ2h0OiAwO1xuXHRcdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1saW5lOjpiZWZvcmUge1xuXHRcdFx0bGVmdDogLTFweDtcblxuXHRcdFx0Ym9yZGVyLXdpZHRoOiBjYWxjKC41ICogdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC13aWR0aCkpIDAgY2FsYyguNSAqIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3Qtd2lkdGgpKSB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LWhlaWdodCk7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcik7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1saW5lOjpiZWZvcmUge1xuXHRcdFx0cmlnaHQ6IC0xcHg7XG5cblx0XHRcdGJvcmRlci13aWR0aDpjYWxjKC41ICogdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC13aWR0aCkpIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3QtaGVpZ2h0KSBjYWxjKC41ICogdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC13aWR0aCkpIDA7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcikgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stY29sb3ItY29kZS1ibG9jay1sYWJlbC1iYWNrZ3JvdW5kOiBoc2woMCwgMCUsIDQ2JSk7XG59XG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSBwcmVbZGF0YS1sYW5ndWFnZV06OmFmdGVyIHtcblx0dG9wOiAtMXB4O1xuXHRyaWdodDogMTBweDtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItY29kZS1ibG9jay1sYWJlbC1iYWNrZ3JvdW5kKTtcblxuXHRmb250LXNpemU6IDEwcHg7XG5cdGZvbnQtZmFtaWx5OiB2YXIoLS1jay1mb250LWZhY2UpO1xuXHRsaW5lLWhlaWdodDogMTZweDtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy10aW55KSB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdGNvbG9yOiBoc2woMCwgMCUsIDEwMCUpO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmNrLmNrLWNvZGUtYmxvY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbCB7XG5cdC8qIFRoZXJlIGNvdWxkIGJlIGRvemVucyBvZiBsYW5ndWFnZXMgYXZhaWxhYmxlLiBVc2Ugc2Nyb2xsIHRvIHByZXZlbnQgYSAxMGU2cHggZHJvcGRvd24uICovXG5cdG1heC1oZWlnaHQ6IDI1MHB4O1xuXHRvdmVyZmxvdy15OiBhdXRvO1xuXHRvdmVyZmxvdy14OiBoaWRkZW47XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qIFNlZSBja2VkaXRvci9ja2VkaXRvcjUjOTM2LiAqL1xuQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHtcblx0XHQuY2suY2stcGxhY2Vob2xkZXIsIC5jayAuY2stcGxhY2Vob2xkZXIge1xuXHRcdC8qXG5cdFx0ICogVGhpcyBpcyBuZWVkZWQgZm9yIEVkZ2Ugb24gV2luZG93cyB0byB1c2UgdGhlIHJpZ2h0IGNvbG9yIGZvciB0aGUgcGxhY2Vob2xkZXIgY29udGVudCAoOjpiZWZvcmUpLlxuXHRcdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNDkwNy5cblx0XHQgKi9cblx0XHRmb3JjZWQtY29sb3ItYWRqdXN0OiBwcmVzZXJ2ZS1wYXJlbnQtY29sb3I7XG5cdFx0fVxuXHR9XG4uY2suY2stcGxhY2Vob2xkZXI6OmJlZm9yZSwgLmNrIC5jay1wbGFjZWhvbGRlcjo6YmVmb3JlIHtcblx0XHRjdXJzb3I6IHRleHQ7XG5cdH1cbkBtZWRpYSAoZm9yY2VkLWNvbG9yczogbm9uZSkge1xuXHRcdC5jay5jay1wbGFjZWhvbGRlcjo6YmVmb3JlLCAuY2sgLmNrLXBsYWNlaG9sZGVyOjpiZWZvcmUge1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWVuZ2luZS1wbGFjZWhvbGRlci10ZXh0KTtcblx0XHR9XG5cdH1cbkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG5cdFx0LmNrLmNrLXBsYWNlaG9sZGVyOjpiZWZvcmUsIC5jayAuY2stcGxhY2Vob2xkZXI6OmJlZm9yZSB7XG5cdFx0XHQvKlxuXHRcdFx0ICogSW4gdGhlIGhpZ2ggY29udHJhc3QgbW9kZSB0aGVyZSBpcyBubyB0ZWxsaW5nIGJldHdlZW4gcmVndWxhciBhbmQgcGxhY2Vob2xkZXIgdGV4dC4gVXNpbmdcblx0XHRcdCAqIGl0YWxpYyB0ZXh0IHRvIGFkZHJlc3MgdGhhdCBpc3N1ZS4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE0OTA3LlxuXHRcdFx0ICovXG5cdFx0XHRmb250LXN0eWxlOiBpdGFsaWM7XG5cblx0XHRcdC8qXG5cdFx0XHQgKiBXaXRob3V0IHRoaXMgbWFyZ2luLCB0aGUgY2FyZXQgd2lsbCBub3Qgc2hvdyB1cCBhbmQgYmxpbmsgd2hlbiB0aGUgdXNlciBwdXRzIHRoZSBzZWxlY3Rpb25cblx0XHRcdCAqIGluIHRoZSBwbGFjZWhvbGRlciAoRWRnZSBvbiBXaW5kb3dzKS4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE0OTA3LlxuXHRcdFx0ICovXG5cdFx0XHRtYXJnaW4tbGVmdDogMXB4O1xuXHRcdH1cblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSB7XG5cdHdpZHRoOiA0MDBweDtcblxuXHQvKlxuXHQgKiBUaGUgPGZvcm0+IG5lZWRzIHRhYmluZGV4PVwiLTFcIiBmb3IgcHJvcGVyIEVzYyBoYW5kbGluZyBhZnRlciBiZWluZyBjbGlja2VkXG5cdCAqIGJ1dCB0aGUgc2lkZSBlZmZlY3QgaXMgdGhhdCB0aGlzIGNyZWF0ZXMgYSBuYXN0eSBmb2N1cyBvdXRsaW5lIGluIHNvbWUgYnJvd3NlcnMuXG5cdCAqL1xufVxuLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybTpmb2N1cyB7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0fVxuLyogR2VuZXJpYyBzdHlsZXMgZm9yIHRoZSBmb3JtIGlucHV0cyBhbmQgYWN0aW9ucy4gKi9cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzLFxuXHQuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMge1xuXHRcdGZsZXg6IDEgMSBhdXRvO1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0YWxpZ24tY29udGVudDogc3RyZXRjaDtcblxuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdG1hcmdpbjogMDtcblxuXHR9XG4uY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0cyA+IC5jay1idXR0b24sIC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9fYWN0aW9ucyA+IC5jay1idXR0b24ge1xuXHRcdFx0ZmxleDogMCAwIGF1dG87XG5cdFx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0cyA+ICogKyAqLCBbZGlyPVwibHRyXCJdIC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9fYWN0aW9ucyA+ICogKyAqIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdFx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0cyA+ICogKyAqLCBbZGlyPVwicnRsXCJdIC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9fYWN0aW9ucyA+ICogKyAqIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdH1cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcsIC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9fYWN0aW9ucyAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRcdGZsZXg6IDEgMSBhdXRvO1xuXHRcdH1cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLWlucHV0LCAuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMgLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2staW5wdXQge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0bWluLXdpZHRoOiA1MHB4O1xuXHRcdFx0fVxuLyogU3R5bGVzIHNwZWNpZmljIGZvciBpbnB1dHMgYXJlYS4gKi9cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzIHtcblx0XHQvKiBUbyBkaXNwbGF5IGFsbCBjb250cm9scyBpbiBsaW5lIHdoZW4gdGhlcmUncyBhbiBlcnJvciB1bmRlciB0aGUgaW5wdXQgKi9cblx0XHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblx0fVxuLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dHMgPiAuY2stYnV0dG9uLXByZXYgPiAuY2staWNvbiB7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG5cdFx0fVxuLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dHMgPiAuY2stYnV0dG9uLW5leHQgPiAuY2staWNvbiB7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuXHRcdH1cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzIC5jay1yZXN1bHRzLWNvdW50ZXIge1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0cyAuY2stcmVzdWx0cy1jb3VudGVyIHtcblx0XHRcdFx0cmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzIC5jay1yZXN1bHRzLWNvdW50ZXIge1xuXHRcdFx0XHRsZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0fVxuLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dHMgPiAuY2stbGFiZWxlZC1maWVsZC1yZXBsYWNlIHtcblx0XHRcdGZsZXg6IDAgMCAxMDAlO1xuXHRcdFx0cGFkZGluZy10b3A6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dHMgPiAuY2stbGFiZWxlZC1maWVsZC1yZXBsYWNlIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dHMgPiAuY2stbGFiZWxlZC1maWVsZC1yZXBsYWNlIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHR9XG4vKiBTdHlsZXMgc3BlY2lmaWMgZm9yIGFjdGlvbnMgYXJlYS4gKi9cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9fYWN0aW9ucyB7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cdFx0bWFyZ2luLXRvcDogY2FsYyggLTEgKiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSApO1xuXHR9XG4uY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMgPiAuY2stYnV0dG9uLWZpbmQge1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cblx0XHRcdC8qIEJlZWYgdGhlIGZpbmQgYnV0dG9uIHVwIGEgbGl0dGxlLiBJdCdzIHRoZSBtYWluIGFjdGlvbiBidXR0b24gaW4gdGhlIGZvcm0gKi9cblx0XHR9XG4uY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMgPiAuY2stYnV0dG9uLWZpbmQgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHRcdH1cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLXN3aXRjaGJ1dHRvbiB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHR9XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuXHQuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIHtcblx0XHR3aWR0aDogMzAwcHg7XG5cblx0XHQvKiBEb24ndCBsZXQgdGhlIGZvcm0gb3ZlcmZsb3cgZnJvbSB0aGUgZGlhbG9nIChodHRwczovL2dpdGh1Yi5jb20vY2tzb3VyY2UvY2tlZGl0b3I1LWNvbW1lcmNpYWwvaXNzdWVzLzU5MTMpICovXG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xuXG5cdFx0LyogU3R5bGVzIHNwZWNpZmljIGZvciBpbnB1dHMgYXJlYS4gKi9cblx0fVxuXHRcdC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0uY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dCB7XG5cdFx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0fVxuXG5cdFx0XHQuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXQgLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0XHRcdGZsZXg6IDEgMCBhdXRvO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHR9XG5cblx0XHRcdC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0uY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dCA+IC5jay1idXR0b24ge1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHR9XG5cblx0XHRcdFx0LmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybS5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0ID4gLmNrLWJ1dHRvbjpmaXJzdC1vZi10eXBlIHtcblx0XHRcdFx0XHRmbGV4OiAxIDEgYXV0bztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0W2Rpcj1cImx0clwiXSAuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXQgPiAuY2stYnV0dG9uOmZpcnN0LW9mLXR5cGUge1xuXHRcdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdH1cblxuXHRcdFx0XHRcdFtkaXI9XCJydGxcIl0gLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybS5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0ID4gLmNrLWJ1dHRvbjpmaXJzdC1vZi10eXBlIHtcblx0XHRcdFx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0fVxuXG5cdFx0XHRcdFx0LmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybS5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0ID4gLmNrLWJ1dHRvbjpmaXJzdC1vZi10eXBlIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRcdH1cblxuXHRcdC8qIFN0eWxlcyBzcGVjaWZpYyBmb3IgYWN0aW9ucyBhcmVhLiAqL1xuXHRcdC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0uY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19hY3Rpb25zID4gOm5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3KSB7XG5cdFx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0XHRmbGV4OiAxIDEgYXV0bztcblx0XHR9XG5cblx0XHRcdC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0uY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19hY3Rpb25zID4gOm5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3KSA+IC5jay1idXR0b24ge1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHR9XG5cblx0XHRcdFx0LmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybS5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMgPiA6bm90KC5jay1sYWJlbGVkLWZpZWxkLXZpZXcpID4gLmNrLWJ1dHRvbjpmaXJzdC1vZi10eXBlIHtcblx0XHRcdFx0XHRmbGV4OiAxIDEgYXV0bztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0W2Rpcj1cImx0clwiXSAuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9fYWN0aW9ucyA+IDpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlldykgPiAuY2stYnV0dG9uOmZpcnN0LW9mLXR5cGUge1xuXHRcdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdH1cblxuXHRcdFx0XHRcdFtkaXI9XCJydGxcIl0gLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybS5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMgPiA6bm90KC5jay1sYWJlbGVkLWZpZWxkLXZpZXcpID4gLmNrLWJ1dHRvbjpmaXJzdC1vZi10eXBlIHtcblx0XHRcdFx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0fVxuXG5cdFx0XHRcdC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0uY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19hY3Rpb25zID4gOm5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3KSA+IC5jay1idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0fVxuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyogUmVzaXplIGRyb3Bkb3duJ3MgYnV0dG9uIGxhYmVsLiAqL1xuLmNrLmNrLWRyb3Bkb3duLmNrLWhlYWRpbmctZHJvcGRvd24gLmNrLWRyb3Bkb3duX19idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdHdpZHRoOiA4ZW07XG5cdH1cbi5jay5jay1kcm9wZG93bi5jay1oZWFkaW5nLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwgLmNrLWxpc3RfX2l0ZW0ge1xuXHRcdG1pbi13aWR0aDogMThlbTtcblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBOb3RlOiBUaGlzIGZpbGUgc2hvdWxkIGNvbnRhaW4gdGhlIHdpcmVmcmFtZSBzdHlsZXMgb25seS4gQnV0IHNpbmNlIHRoZXJlIGFyZSBubyBzdWNoIHN0eWxlcyxcbiAqIGl0IGFjdHMgYXMgYSBtZXNzYWdlIHRvIHRoZSBidWlsZGVyIHRlbGxpbmcgdGhhdCBpdCBzaG91bGQgbG9vayBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgc3R5bGVzXG4gKiAqKmluIHRoZSB0aGVtZSoqIHdoZW4gY29tcGlsaW5nIHRoZSBlZGl0b3IuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2staHRtbC1lbWJlZC1jb250ZW50LXdpZHRoOiBjYWxjKDEwMCUgLSAxLjUgKiB2YXIoLS1jay1pY29uLXNpemUpKTtcblx0LS1jay1odG1sLWVtYmVkLXNvdXJjZS1oZWlnaHQ6IDEwZW07XG5cdC0tY2staHRtbC1lbWJlZC11bmZvY3VzZWQtb3V0bGluZS13aWR0aDogMXB4O1xuXHQtLWNrLWh0bWwtZW1iZWQtY29udGVudC1taW4taGVpZ2h0OiBjYWxjKHZhcigtLWNrLWljb24tc2l6ZSkgKyB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSk7XG5cblx0LS1jay1odG1sLWVtYmVkLXNvdXJjZS1kaXNhYmxlZC1iYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWZvcmVncm91bmQpO1xuXHQtLWNrLWh0bWwtZW1iZWQtc291cmNlLWRpc2FibGVkLWNvbG9yOiBoc2woMGRlZyAwJSA0NSUpO1xufVxuLyogVGhlIGZlYXR1cmUgY29udGFpbmVyLiAqL1xuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZCB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLWJhc2UpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWZvcmVncm91bmQpO1xufVxuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZDpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCk6bm90KDpob3Zlcikge1xuXHRcdG91dGxpbmU6IHZhcigtLWNrLWh0bWwtZW1iZWQtdW5mb2N1c2VkLW91dGxpbmUtd2lkdGgpIGRhc2hlZCB2YXIoLS1jay1jb2xvci13aWRnZXQtYmx1cnJlZC1ib3JkZXIpO1xuXHR9XG4vKiBIVE1MIGVtYmVkIHdpZGdldCBpdHNlbGYgc2hvdWxkIHJlc3BlY3QgVUkgbGFuZ3VhZ2UgZGlyZWN0aW9uICovXG4uY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkW2Rpcj1cImx0clwiXSB7XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0fVxuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZFtkaXI9XCJydGxcIl0ge1xuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHR9XG4vKiAtLS0tLSBFbWJlZCBsYWJlbCBpbiB0aGUgdXBwZXIgbGVmdCBjb3JuZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQ6OmJlZm9yZSB7XG5cdFx0Y29udGVudDogYXR0cihkYXRhLWh0bWwtZW1iZWQtbGFiZWwpO1xuXHRcdHRvcDogY2FsYygtMSAqIHZhcigtLWNrLWh0bWwtZW1iZWQtdW5mb2N1c2VkLW91dGxpbmUtd2lkdGgpKTtcblx0XHRsZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRiYWNrZ3JvdW5kOiBoc2woMGRlZyAwJSA2MCUpO1xuXHRcdHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tY3VydmUpO1xuXHRcdHBhZGRpbmc6IGNhbGModmFyKC0tY2stc3BhY2luZy10aW55KSArIHZhcigtLWNrLWh0bWwtZW1iZWQtdW5mb2N1c2VkLW91dGxpbmUtd2lkdGgpKSB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSB2YXIoLS1jay1zcGFjaW5nLXRpbnkpO1xuXHRcdGJvcmRlci1yYWRpdXM6IDAgMCB2YXIoLS1jay1ib3JkZXItcmFkaXVzKSB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS10aW55KTtcblx0XHRmb250LWZhbWlseTogdmFyKC0tY2stZm9udC1mYWNlKTtcblx0fVxuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZFtkaXI9XCJydGxcIl06OmJlZm9yZSB7XG5cdFx0bGVmdDogYXV0bztcblx0XHRyaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdH1cbi8qIE1ha2Ugc3BhY2UgZm9yIGxhYmVsIGJ1dCBpdCBvbmx5IGNvbGxpZGVzIGluIExUUiBsYW5ndWFnZXMgKi9cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWRbZGlyPVwibHRyXCJdIC5jay13aWRnZXRfX3R5cGUtYXJvdW5kIC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24uY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uX2JlZm9yZSB7XG5cdFx0bWFyZ2luLWxlZnQ6IDUwcHg7XG5cdH1cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWJsdXJyZWQgLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZC5jay13aWRnZXRfc2VsZWN0ZWQ6OmJlZm9yZSB7XG5cdFx0dG9wOiAwcHg7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy10aW55KSB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGU6bm90KC5jay1ibHVycmVkKSAuY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkLmNrLXdpZGdldF9zZWxlY3RlZDo6YmVmb3JlIHtcblx0XHR0b3A6IDA7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy10aW55KSB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHR9XG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkOm5vdCguY2std2lkZ2V0X3NlbGVjdGVkKTpob3Zlcjo6YmVmb3JlIHtcblx0XHR0b3A6IDBweDtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpIHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG4vKiAtLS0tLSBFbWViZWQgaW50ZXJuYWxzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZCAucmF3LWh0bWwtZW1iZWRfX2NvbnRlbnQtd3JhcHBlciB7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdH1cbi8qIFRoZSBzd2l0Y2ggbW9kZSBidXR0b24gd3JhcHBlci4gKi9cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQgLnJhdy1odG1sLWVtYmVkX19idXR0b25zLXdyYXBwZXIge1xuXHRcdHRvcDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0cmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHR9XG4uY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkIC5yYXctaHRtbC1lbWJlZF9fYnV0dG9ucy13cmFwcGVyIC5jay1idXR0b24ucmF3LWh0bWwtZW1iZWRfX3NhdmUtYnV0dG9uIHtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1idXR0b24tc2F2ZSk7XG5cdFx0fVxuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZCAucmF3LWh0bWwtZW1iZWRfX2J1dHRvbnMtd3JhcHBlciAuY2stYnV0dG9uLnJhdy1odG1sLWVtYmVkX19jYW5jZWwtYnV0dG9uIHtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1idXR0b24tY2FuY2VsKTtcblx0XHR9XG4uY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkIC5yYXctaHRtbC1lbWJlZF9fYnV0dG9ucy13cmFwcGVyIC5jay1idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuXHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0fVxuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZFtkaXI9XCJydGxcIl0gLnJhdy1odG1sLWVtYmVkX19idXR0b25zLXdyYXBwZXIge1xuXHRcdGxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdHJpZ2h0OiBhdXRvO1xuXHR9XG4vKiBUaGUgZWRpdCBzb3VyY2UgZWxlbWVudC4gKi9cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQgLnJhdy1odG1sLWVtYmVkX19zb3VyY2Uge1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0aGVpZ2h0OiB2YXIoLS1jay1odG1sLWVtYmVkLXNvdXJjZS1oZWlnaHQpO1xuXHRcdHdpZHRoOiB2YXIoLS1jay1odG1sLWVtYmVkLWNvbnRlbnQtd2lkdGgpO1xuXHRcdHJlc2l6ZTogbm9uZTtcblx0XHRtaW4td2lkdGg6IDA7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHRmb250LWZhbWlseTogbW9ub3NwYWNlO1xuXHRcdHRhYi1zaXplOiA0O1xuXHRcdHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcblx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKTsgLyogU2FmYXJpIG5lZWRzIHRoaXMuICovXG5cblx0XHQvKiBIVE1MIGNvZGUgaXMgZGlyZWN0aW9u4oCTYWdub3N0aWMuICovXG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRkaXJlY3Rpb246IGx0cjtcblx0fVxuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZCAucmF3LWh0bWwtZW1iZWRfX3NvdXJjZVtkaXNhYmxlZF0ge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2staHRtbC1lbWJlZC1zb3VyY2UtZGlzYWJsZWQtYmFja2dyb3VuZCk7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2staHRtbC1lbWJlZC1zb3VyY2UtZGlzYWJsZWQtY29sb3IpO1xuXG5cdFx0XHQvKiBTYWZhcmkgbmVlZHMgdGhpcyBmb3IgdGhlIHByb3BlciB0ZXh0IGNvbG9yIGluIGRpc2FibGVkIGlucHV0IChodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy84MzIwKS4gKi9cblx0XHRcdC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB2YXIoLS1jay1odG1sLWVtYmVkLXNvdXJjZS1kaXNhYmxlZC1jb2xvcik7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cbi8qIFRoZSBwcmV2aWV3IGRhdGEgY29udGFpbmVyLiAqL1xuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZCAucmF3LWh0bWwtZW1iZWRfX3ByZXZpZXcge1xuXHRcdG1pbi1oZWlnaHQ6IHZhcigtLWNrLWh0bWwtZW1iZWQtY29udGVudC1taW4taGVpZ2h0KTtcblx0XHR3aWR0aDogdmFyKC0tY2staHRtbC1lbWJlZC1jb250ZW50LXdpZHRoKTtcblxuXHRcdC8qIERpc2FibGUgYWxsIG1vdXNlIGludGVyYWN0aW9uIGFzIGxvbmcgYXMgdGhlIGVkaXRvciBpcyBub3QgcmVhZOKAk29ubHkuICovXG5cdH1cbi5jay1lZGl0b3JfX2VkaXRhYmxlOm5vdCguY2stcmVhZC1vbmx5KSAuY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkIC5yYXctaHRtbC1lbWJlZF9fcHJldmlldyB7XG5cdFx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHR9XG4uY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkIC5yYXctaHRtbC1lbWJlZF9fcHJldmlldy1jb250ZW50IHtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtZm9yZWdyb3VuZCk7XG5cdH1cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQgLnJhdy1odG1sLWVtYmVkX19wcmV2aWV3LWNvbnRlbnQgPiAqIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xuXHRcdH1cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQgLnJhdy1odG1sLWVtYmVkX19wcmV2aWV3LXBsYWNlaG9sZGVyIHtcblx0XHRjb2xvcjogdmFyKC0tY2staHRtbC1lbWJlZC1zb3VyY2UtZGlzYWJsZWQtY29sb3IpXG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWltYWdlLWluc2VydC1pbnNlcnQtYnktdXJsLXdpZHRoOiAyNTBweDtcbn1cbi5jay5jay1pbWFnZS1pbnNlcnQtdXJsIHtcblx0LS1jay1pbnB1dC13aWR0aDogMTAwJTtcbn1cbi5jay5jay1pbWFnZS1pbnNlcnQtdXJsIC5jay1pbWFnZS1pbnNlcnQtdXJsX19hY3Rpb24tcm93IHtcblx0XHRncmlkLWNvbHVtbi1nYXA6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHR9XG4uY2suY2staW1hZ2UtaW5zZXJ0LXVybCAuY2staW1hZ2UtaW5zZXJ0LXVybF9fYWN0aW9uLXJvdyAuY2stYnV0dG9uLXNhdmUsXG5cdFx0LmNrLmNrLWltYWdlLWluc2VydC11cmwgLmNrLWltYWdlLWluc2VydC11cmxfX2FjdGlvbi1yb3cgLmNrLWJ1dHRvbi1jYW5jZWwge1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0XHRtaW4td2lkdGg6IGF1dG87XG5cdFx0fVxuLmNrLmNrLWltYWdlLWluc2VydC11cmwgLmNrLWltYWdlLWluc2VydC11cmxfX2FjdGlvbi1yb3cgLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItdGV4dCk7XG5cdFx0fVxuLmNrLmNrLWltYWdlLWluc2VydC1mb3JtID4gLmNrLmNrLWJ1dHRvbiB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWltYWdlLWluc2VydC1mb3JtID4gLmNrLmNrLWJ1dHRvbiB7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1pbWFnZS1pbnNlcnQtZm9ybSA+IC5jay5jay1idXR0b24ge1xuXHRcdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdH1cbi5jay5jay1pbWFnZS1pbnNlcnQtZm9ybSA+IC5jay5jay1jb2xsYXBzaWJsZSB7XG5cblx0XHRtaW4td2lkdGg6IHZhcigtLWNrLWltYWdlLWluc2VydC1pbnNlcnQtYnktdXJsLXdpZHRoKTtcblx0fVxuLmNrLmNrLWltYWdlLWluc2VydC1mb3JtID4gLmNrLmNrLWNvbGxhcHNpYmxlOm5vdCg6Zmlyc3QtY2hpbGQpIHtcblx0XHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0fVxuLmNrLmNrLWltYWdlLWluc2VydC1mb3JtID4gLmNrLmNrLWNvbGxhcHNpYmxlOm5vdCg6bGFzdC1jaGlsZCkge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHR9XG4vKiBUaGlzIGlzIHRoZSBjYXNlIHdoZW4gdGhlcmUgYXJlIG5vIG90aGVyIGludGVncmF0aW9ucyBjb25maWd1cmVkIHRoYW4gaW5zZXJ0IGJ5IFVSTCAqL1xuLmNrLmNrLWltYWdlLWluc2VydC1mb3JtID4gLmNrLmNrLWltYWdlLWluc2VydC11cmwge1xuXHRcdG1pbi13aWR0aDogdmFyKC0tY2staW1hZ2UtaW5zZXJ0LWluc2VydC1ieS11cmwtd2lkdGgpO1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHR9XG4uY2suY2staW1hZ2UtaW5zZXJ0LWZvcm06Zm9jdXMge1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLWltYWdlLXVwbG9hZC1pY29uOiBoc2woMCwgMCUsIDEwMCUpO1xuXHQtLWNrLWNvbG9yLWltYWdlLXVwbG9hZC1pY29uLWJhY2tncm91bmQ6IGhzbCgxMjAsIDEwMCUsIDI3JSk7XG5cblx0LyogTWF0Y2ggdGhlIGljb24gc2l6ZSB3aXRoIHRoZSBsaW5rZWQgaW1hZ2UgaW5kaWNhdG9yIGJyb3VnaHQgYnkgdGhlIGxpbmsgaW1hZ2UgZmVhdHVyZS4gKi9cblx0LS1jay1pbWFnZS11cGxvYWQtaWNvbi1zaXplOiAyMDtcblx0LS1jay1pbWFnZS11cGxvYWQtaWNvbi13aWR0aDogMnB4O1xuXHQtLWNrLWltYWdlLXVwbG9hZC1pY29uLWlzLXZpc2libGU6IGNsYW1wKDBweCwgMTAwJSAtIDUwcHgsIDFweCk7XG59XG4uY2staW1hZ2UtdXBsb2FkLWNvbXBsZXRlLWljb24ge1xuXHRvcGFjaXR5OiAwO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1pbWFnZS11cGxvYWQtaWNvbi1iYWNrZ3JvdW5kKTtcblx0YW5pbWF0aW9uLW5hbWU6IGNrLXVwbG9hZC1jb21wbGV0ZS1pY29uLXNob3csIGNrLXVwbG9hZC1jb21wbGV0ZS1pY29uLWhpZGU7XG5cdGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzLCBmb3J3YXJkcztcblx0YW5pbWF0aW9uLWR1cmF0aW9uOiA1MDBtcywgNTAwbXM7XG5cblx0LyogVG8gbWFrZSBhbmltYXRpb24gc2NhbGFibGUuICovXG5cdGZvbnQtc2l6ZTogY2FsYygxcHggKiB2YXIoLS1jay1pbWFnZS11cGxvYWQtaWNvbi1zaXplKSk7XG5cblx0LyogSGlkZSBjb21wbGV0ZWQgdXBsb2FkIGljb24gYWZ0ZXIgMyBzZWNvbmRzLiAqL1xuXHRhbmltYXRpb24tZGVsYXk6IDBtcywgMzAwMG1zO1xuXG5cdC8qXG5cdCAqIFVzZSBDU1MgbWF0aCB0byBzaW11bGF0ZSBjb250YWluZXIgcXVlcmllcy5cblx0ICogaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS90aGUtcmF2ZW4tdGVjaG5pcXVlLW9uZS1zdGVwLWNsb3Nlci10by1jb250YWluZXItcXVlcmllcy8jd2hhdC1hYm91dC1zaG93aW5nLWFuZC1oaWRpbmctdGhpbmdzXG5cdCAqL1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHR3aWR0aDogY2FsYyh2YXIoLS1jay1pbWFnZS11cGxvYWQtaWNvbi1pcy12aXNpYmxlKSAqIHZhcigtLWNrLWltYWdlLXVwbG9hZC1pY29uLXNpemUpKTtcblx0aGVpZ2h0OiBjYWxjKHZhcigtLWNrLWltYWdlLXVwbG9hZC1pY29uLWlzLXZpc2libGUpICogdmFyKC0tY2staW1hZ2UtdXBsb2FkLWljb24tc2l6ZSkpO1xuXG5cdC8qIFRoaXMgaXMgY2hlY2sgaWNvbiBlbGVtZW50IG1hZGUgZnJvbSBib3JkZXItd2lkdGggbWl4ZWQgd2l0aCBhbmltYXRpb25zLiAqL1xufVxuLmNrLWltYWdlLXVwbG9hZC1jb21wbGV0ZS1pY29uOjphZnRlciB7XG5cdFx0LyogQmVjYXVzZSBvZiBib3JkZXIgdHJhbnNmb3JtYXRpb24gd2UgbmVlZCB0byBcImhhcmQgY29kZVwiIGxlZnQgcG9zaXRpb24uICovXG5cdFx0bGVmdDogMjUlO1xuXG5cdFx0dG9wOiA1MCU7XG5cdFx0b3BhY2l0eTogMDtcblx0XHRoZWlnaHQ6IDA7XG5cdFx0d2lkdGg6IDA7XG5cblx0XHR0cmFuc2Zvcm06IHNjYWxlWCgtMSkgcm90YXRlKDEzNWRlZyk7XG5cdFx0dHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG5cdFx0Ym9yZGVyLXRvcDogdmFyKC0tY2staW1hZ2UtdXBsb2FkLWljb24td2lkdGgpIHNvbGlkIHZhcigtLWNrLWNvbG9yLWltYWdlLXVwbG9hZC1pY29uKTtcblx0XHRib3JkZXItcmlnaHQ6IHZhcigtLWNrLWltYWdlLXVwbG9hZC1pY29uLXdpZHRoKSBzb2xpZCB2YXIoLS1jay1jb2xvci1pbWFnZS11cGxvYWQtaWNvbik7XG5cblx0XHRhbmltYXRpb24tbmFtZTogY2stdXBsb2FkLWNvbXBsZXRlLWljb24tY2hlY2s7XG5cdFx0YW5pbWF0aW9uLWR1cmF0aW9uOiA1MDBtcztcblx0XHRhbmltYXRpb24tZGVsYXk6IDUwMG1zO1xuXHRcdGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzO1xuXG5cdFx0LyogIzEwOTUuIFdoaWxlIHJlc2V0IGlzIG5vdCBwcm92aWRpbmcgcHJvcGVyIGJveC1zaXppbmcgZm9yIHBzZXVkb2VsZW1lbnRzLCB3ZSBuZWVkIHRvIGhhbmRsZSBpdC4gKi9cblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHR9XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuLmNrLWltYWdlLXVwbG9hZC1jb21wbGV0ZS1pY29uIHtcblx0XHRhbmltYXRpb24tZHVyYXRpb246IDBtcztcbn1cblxuXHRcdC5jay1pbWFnZS11cGxvYWQtY29tcGxldGUtaWNvbjo6YWZ0ZXIge1xuXHRcdFx0YW5pbWF0aW9uOiBub25lO1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdHdpZHRoOiAwLjNlbTtcblx0XHRcdGhlaWdodDogMC40NWVtO1xuXHRcdH1cblx0fVxuQGtleWZyYW1lcyBjay11cGxvYWQtY29tcGxldGUtaWNvbi1zaG93IHtcblx0ZnJvbSB7XG5cdFx0b3BhY2l0eTogMDtcblx0fVxuXG5cdHRvIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG59XG5Aa2V5ZnJhbWVzIGNrLXVwbG9hZC1jb21wbGV0ZS1pY29uLWhpZGUge1xuXHRmcm9tIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG5cblx0dG8ge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cbn1cbkBrZXlmcmFtZXMgY2stdXBsb2FkLWNvbXBsZXRlLWljb24tY2hlY2sge1xuXHQwJSB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHR3aWR0aDogMDtcblx0XHRoZWlnaHQ6IDA7XG5cdH1cblx0MzMlIHtcblx0XHR3aWR0aDogMC4zZW07XG5cdFx0aGVpZ2h0OiAwO1xuXHR9XG5cdDEwMCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0d2lkdGg6IDAuM2VtO1xuXHRcdGhlaWdodDogMC40NWVtO1xuXHR9XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXI6IGhzbCgwLCAwJSwgNzAlKTtcblx0LS1jay11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyLXNpemU6IDMycHg7XG5cdC0tY2stdXBsb2FkLXBsYWNlaG9sZGVyLWltYWdlLWFzcGVjdC1yYXRpbzogMi44O1xufVxuLmNrIC5jay1pbWFnZS11cGxvYWQtcGxhY2Vob2xkZXIge1xuXHQvKiBXZSBuZWVkIHRvIGNvbnRyb2wgdGhlIGZ1bGwgd2lkdGggb2YgdGhlIFNWRyBncmF5IGJhY2tncm91bmQuICovXG5cdHdpZHRoOiAxMDAlO1xuXHRtYXJnaW46IDA7XG59XG4uY2sgLmNrLWltYWdlLXVwbG9hZC1wbGFjZWhvbGRlci5pbWFnZS1pbmxpbmUge1xuXHRcdHdpZHRoOiBjYWxjKCAyICogdmFyKC0tY2stdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlci1zaXplKSAqIHZhcigtLWNrLXVwbG9hZC1wbGFjZWhvbGRlci1pbWFnZS1hc3BlY3QtcmF0aW8pICk7XG5cdH1cbi5jayAuY2staW1hZ2UtdXBsb2FkLXBsYWNlaG9sZGVyIGltZyB7XG5cdFx0Lypcblx0XHQgKiBUaGlzIGlzIGFuIGFyYml0cmFyeSBhc3BlY3QgZm9yIGEgMXgxIHB4IEdJRiB0byBkaXNwbGF5IHRvIHRoZSB1c2VyLiBOb3QgdG9vIHRhbGwsIG5vdCB0b28gc2hvcnQuXG5cdFx0ICogVGhlcmUncyBub3RoaW5nIHNwZWNpYWwgYWJvdXQgdGhpcyBudW1iZXIgZXhjZXB0IHRoYXQgaXQgc2hvdWxkIG1ha2UgdGhlIGltYWdlIHBsYWNlaG9sZGVyIGxvb2sgbGlrZVxuXHRcdCAqIGEgcmVhbCBpbWFnZSBkdXJpbmcgdGhpcyBzaG9ydCBwZXJpb2QgYWZ0ZXIgdGhlIHVwbG9hZCBzdGFydGVkIGFuZCBiZWZvcmUgdGhlIGltYWdlIHdhcyByZWFkIGZyb20gdGhlXG5cdFx0ICogZmlsZSBzeXN0ZW0gKGFuZCBhIHJpY2ggcHJldmlldyB3YXMgbG9hZGVkKS5cblx0XHQgKi9cblx0XHRhc3BlY3QtcmF0aW86IHZhcigtLWNrLXVwbG9hZC1wbGFjZWhvbGRlci1pbWFnZS1hc3BlY3QtcmF0aW8pO1xuXHR9XG4uY2sgLmNrLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXIge1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xufVxuLmNrIC5jay11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyOjpiZWZvcmUge1xuXHRcdHdpZHRoOiB2YXIoLS1jay11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyLXNpemUpO1xuXHRcdGhlaWdodDogdmFyKC0tY2stdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlci1zaXplKTtcblx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0Ym9yZGVyLXRvcDogM3B4IHNvbGlkIHZhcigtLWNrLWNvbG9yLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXIpO1xuXHRcdGJvcmRlci1yaWdodDogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRcdGFuaW1hdGlvbjogY2stdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlciAxcyBsaW5lYXIgaW5maW5pdGU7XG5cdH1cbkBrZXlmcmFtZXMgY2stdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlciB7XG5cdHRvIHtcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZSggMzYwZGVnICk7XG5cdH1cbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKiBTaG93aW5nIGFuaW1hdGlvbi4gKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZS5jay1hcHBlYXIsIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZS1pbmxpbmUuY2stYXBwZWFyIHtcblx0XHRcdGFuaW1hdGlvbjogZmFkZUluIDcwMG1zO1xuXHRcdH1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuaW1hZ2UuY2stYXBwZWFyLCAuY2suY2stZWRpdG9yX19lZGl0YWJsZSAuaW1hZ2UtaW5saW5lLmNrLWFwcGVhciB7XG5cdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHRcdGFuaW1hdGlvbjogbm9uZTtcblx0XHR9XG5cdFx0XHR9XG4vKiBVcGxvYWQgcHJvZ3Jlc3MgYmFyLiAqL1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlIC5jay1wcm9ncmVzcy1iYXIsXG5cdC5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZS1pbmxpbmUgLmNrLXByb2dyZXNzLWJhciB7XG5cdFx0aGVpZ2h0OiAycHg7XG5cdFx0d2lkdGg6IDA7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItdXBsb2FkLWJhci1iYWNrZ3JvdW5kKTtcblx0XHR0cmFuc2l0aW9uOiB3aWR0aCAxMDBtcztcblx0fVxuQGtleWZyYW1lcyBmYWRlSW4ge1xuXHRmcm9tIHsgb3BhY2l0eTogMDsgfVxuXHR0byAgIHsgb3BhY2l0eTogMTsgfVxufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stdGV4dC1hbHRlcm5hdGl2ZS1mb3JtLXdpZHRoOiAzNDBweDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG5cdDpyb290IHtcblx0XHQtLWNrLXRleHQtYWx0ZXJuYXRpdmUtZm9ybS13aWR0aDogMzAwcHg7XG5cdH1cblx0fVxuLmNrLmNrLXRleHQtYWx0ZXJuYXRpdmUtZm9ybS5jay1yZXNwb25zaXZlLWZvcm0ge1xuXHRcdHdpZHRoOiB2YXIoLS1jay10ZXh0LWFsdGVybmF0aXZlLWZvcm0td2lkdGgpO1xuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1pbWFnZS1jdXN0b20tcmVzaXplLWZvcm0td2lkdGg6IDM0MHB4O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcblx0OnJvb3Qge1xuXHRcdC0tY2staW1hZ2UtY3VzdG9tLXJlc2l6ZS1mb3JtLXdpZHRoOiAzMDBweDtcblx0fVxuXHR9XG4uY2suY2staW1hZ2UtY3VzdG9tLXJlc2l6ZS1mb3JtLmNrLXJlc3BvbnNpdmUtZm9ybSB7XG5cdFx0d2lkdGg6IHZhcigtLWNrLWltYWdlLWN1c3RvbS1yZXNpemUtZm9ybS13aWR0aCk7XG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKiBDbGFzcyBhZGRlZCB0byBzcGFuIGVsZW1lbnQgc3Vycm91bmRpbmcgY3VycmVudGx5IHNlbGVjdGVkIGxpbmsuICovXG4uY2sgLmNrLWxpbmtfc2VsZWN0ZWQge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saW5rLXNlbGVjdGVkLWJhY2tncm91bmQpO1xuXG5cdC8qIEdpdmUgbGlua2VkIGlubGluZSBpbWFnZXMgc29tZSBvdXRsaW5lIHRvIGxldCB0aGUgdXNlciBrbm93IHRoZXkgYXJlIGFsc28gcGFydCBvZiB0aGUgbGluay4gKi9cbn1cbi5jayAuY2stbGlua19zZWxlY3RlZCBzcGFuLmltYWdlLWlubGluZSB7XG5cdFx0b3V0bGluZTogdmFyKC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzKSBzb2xpZCB2YXIoLS1jay1jb2xvci1saW5rLXNlbGVjdGVkLWJhY2tncm91bmQpO1xuXHR9XG4vKlxuICogQ2xhc3NlcyB1c2VkIGJ5IHRoZSBcImZha2UgdmlzdWFsIHNlbGVjdGlvblwiIGRpc3BsYXllZCBpbiB0aGUgY29udGVudCB3aGVuIGFuIGlucHV0XG4gKiBpbiB0aGUgbGluayBVSSBoYXMgZm9jdXMgKHRoZSBicm93c2VyIGRvZXMgbm90IHJlbmRlciB0aGUgbmF0aXZlIHNlbGVjdGlvbiBpbiB0aGlzIHN0YXRlKS5cbiAqL1xuLmNrIC5jay1mYWtlLWxpbmstc2VsZWN0aW9uIHtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGluay1mYWtlLXNlbGVjdGlvbik7XG59XG4vKiBBIGNvbGxhcHNlZCBmYWtlIHZpc3VhbCBzZWxlY3Rpb24uICovXG4uY2sgLmNrLWZha2UtbGluay1zZWxlY3Rpb25fY29sbGFwc2VkIHtcblx0aGVpZ2h0OiAxMDAlO1xuXHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLXRleHQpO1xuXHRtYXJnaW4tcmlnaHQ6IC0xcHg7XG5cdG91dGxpbmU6IHNvbGlkIDFweCBoc2xhKDAsIDAlLCAxMDAlLCAuNSk7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1saW5rLWJvb2ttYXJrLWljb24tc2l6ZTogY2FsYyggdmFyKC0tY2staWNvbi1zaXplKSAqIDAuNyk7IC8qIDAuNyA9IDE0LzIwIGNhdXNlIGRlZmF1bHQgdGhlIGljb24gc2l6ZSBpcyAyMHB4ICovXG59XG4uY2suY2stdG9vbGJhci5jay1saW5rLXRvb2xiYXIgPiAuY2stdG9vbGJhcl9faXRlbXMge1xuXHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHR9XG5hLmNrLmNrLWJ1dHRvbi5jay1saW5rLXRvb2xiYXJfX3ByZXZpZXcge1xuXHRwYWRkaW5nOiAwIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWxpbmstZGVmYXVsdCk7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5hLmNrLmNrLWJ1dHRvbi5jay1saW5rLXRvb2xiYXJfX3ByZXZpZXcgLmNrLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXG5cdFx0LyogTWF0Y2ggdGhlIGJveCBtb2RlbCBvZiB0aGUgbGluayBlZGl0b3IgZm9ybSdzIGlucHV0IHNvIHRoZSBiYWxsb29uXG5cdFx0ZG9lcyBub3QgY2hhbmdlIHdpZHRoIHdoZW4gbW92aW5nIGJldHdlZW4gYWN0aW9ucyBhbmQgdGhlIGZvcm0uICovXG5cdFx0bWF4LXdpZHRoOiB2YXIoLS1jay1pbnB1dC13aWR0aCk7XG5cdH1cbmEuY2suY2stYnV0dG9uLmNrLWxpbmstdG9vbGJhcl9fcHJldmlldyxcblx0YS5jay5jay1idXR0b24uY2stbGluay10b29sYmFyX19wcmV2aWV3OmhvdmVyLFxuXHRhLmNrLmNrLWJ1dHRvbi5jay1saW5rLXRvb2xiYXJfX3ByZXZpZXc6Zm9jdXMsXG5cdGEuY2suY2stYnV0dG9uLmNrLWxpbmstdG9vbGJhcl9fcHJldmlldzphY3RpdmUge1xuXHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdH1cbmEuY2suY2stYnV0dG9uLmNrLWxpbmstdG9vbGJhcl9fcHJldmlldzphY3RpdmUge1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdH1cbmEuY2suY2stYnV0dG9uLmNrLWxpbmstdG9vbGJhcl9fcHJldmlldzpob3Zlcixcblx0YS5jay5jay1idXR0b24uY2stbGluay10b29sYmFyX19wcmV2aWV3OmZvY3VzIHtcblx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0fVxuYS5jay5jay1idXR0b24uY2stbGluay10b29sYmFyX19wcmV2aWV3LmNrLWJ1dHRvbl93aXRoLXRleHQgLmNrLmNrLWljb24uY2stYnV0dG9uX19pY29uIHtcblx0XHR3aWR0aDogdmFyKC0tY2stbGluay1ib29rbWFyay1pY29uLXNpemUpO1xuXHRcdGhlaWdodDogdmFyKC0tY2stbGluay1ib29rbWFyay1pY29uLXNpemUpO1xuXHR9XG5bZGlyPVwibHRyXCJdIGEuY2suY2stYnV0dG9uLmNrLWxpbmstdG9vbGJhcl9fcHJldmlldy5jay1idXR0b25fd2l0aC10ZXh0IC5jay5jay1pY29uLmNrLWJ1dHRvbl9faWNvbiB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctdGlueSk7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cbltkaXI9XCJydGxcIl0gYS5jay5jay1idXR0b24uY2stbGluay10b29sYmFyX19wcmV2aWV3LmNrLWJ1dHRvbl93aXRoLXRleHQgLmNrLmNrLWljb24uY2stYnV0dG9uX19pY29uIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuYS5jay5jay1idXR0b24uY2stbGluay10b29sYmFyX19wcmV2aWV3OmhhcyggLmNrLWljb24gKSB7XG5cdFx0cGFkZGluZy1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLWV4dHJhLXRpbnkgKTtcblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWxpbmstcGFuZWwtd2lkdGg6IDM0MHB4O1xuXHQvKiBUaGUgaGVpZ2h0IG9mIHRoZSB0ZXh0IGluc2lkZSB0aGUgbGluayBwcm92aWRlcnMgbGlzdCBidXR0b24uICovXG5cdC0tY2stbGluay1wcm92aWRlci1saXN0LWl0ZW0tdGV4dC1oZWlnaHQ6IGNhbGModmFyKC0tY2stbGluZS1oZWlnaHQtYmFzZSkgKiB2YXIoLS1jay1mb250LXNpemUtYmFzZSkpO1xuXHQvKiBUaGUgaGVpZ2h0IG9mIHRoZSBsaW5rIHByb3ZpZGVycyBsaXN0IGl0ZW0gY29udGFpbmVkIHBhZGRpbmdzLiAqL1xuXHQtLWNrLWxpbmstcHJvdmlkZXItbGlzdC1pdGVtLWhlaWdodDogY2FsYyh2YXIoLS1jay1saW5rLXByb3ZpZGVyLWxpc3QtaXRlbS10ZXh0LWhlaWdodCkgKyB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSArIHZhcigtLWNrLXNwYWNpbmctc21hbGwpKTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG5cdDpyb290IHtcblx0XHQtLWNrLWxpbmstcGFuZWwtd2lkdGg6IDMwMHB4O1xuXHR9XG5cdH1cbi8qIEdlbmVyaWMgY2xhc3MgdGhhdCB3cmFwcyBlYWNoIGxpbmsgYmFsbG9vbiB2aWV3LiAqL1xuLmNrLmNrLWZvcm0uY2stbGluay1mb3JtIHtcblx0d2lkdGg6IHZhcigtLWNrLWxpbmstcGFuZWwtd2lkdGgpO1xuXHRwYWRkaW5nLWJvdHRvbTogMDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4uY2suY2stZm9ybS5jay1saW5rLWZvcm0uY2stcmVzcG9uc2l2ZS1mb3JtIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0fVxuXHR9XG4uY2suY2stZm9ybS5jay1saW5rLWZvcm0gLmNrLWxpbmstZm9ybV9fcHJvdmlkZXJzLWxpc3Qge1xuXHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cblx0XHQvKiBUaGUgbGlzdCBzaG91bGQgYmUgc2Nyb2xsYWJsZSB3aGVuIHRoZXJlIGFyZSBtb3JlIHRoYW4gNCBpdGVtcy4gKi9cblx0fVxuLmNrLmNrLWZvcm0uY2stbGluay1mb3JtIC5jay1saW5rLWZvcm1fX3Byb3ZpZGVycy1saXN0OmhhcyguY2stbGlzdF9faXRlbTpudGgtY2hpbGQobiArIDUpKSB7XG5cdFx0XHRvdmVyZmxvdzogYXV0bztcblx0XHRcdC8qIFNjcm9sbCBzaG91bGQgYXBwZWFyIHdoZW4gdGhlcmUgYXJlIG1vcmUgdGhhbiA1IGl0ZW0gb24gdGhlIGxpc3QuXG5cdFx0XHQqIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIC0gaXMgYSBmb3JtIHBhZGRpbmcuXG5cdFx0XHQqIDFweCAtIGlzIGEgYm9yZGVyIHdpZHRoLiAqL1xuXHRcdFx0bWF4LWhlaWdodDogY2FsYyh2YXIoLS1jay1saW5rLXByb3ZpZGVyLWxpc3QtaXRlbS1oZWlnaHQpICogNCArIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpICsgMXB4KTtcblx0XHR9XG4uY2suY2stZm9ybS5jay1saW5rLWZvcm0gLmNrLWxpbmstZm9ybV9fcHJvdmlkZXJzLWxpc3QgLmNrLWxpbmtfX2J1dHRvbiB7XG5cdFx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0fVxuLmNrLmNrLWZvcm0uY2stbGluay1mb3JtIC5jay1saW5rLWZvcm1fX3Byb3ZpZGVycy1saXN0IC5jay1saW5rX19idXR0b24gPiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LyogTWF0Y2ggdGhlIGljb24gc2l6ZSB3aXRoIHRoZSB1cGxvYWQgaW5kaWNhdG9yIGJyb3VnaHQgYnkgdGhlIGltYWdlIHVwbG9hZCBmZWF0dXJlLiAqL1xuXHQtLWNrLWxpbmstaW1hZ2UtaW5kaWNhdG9yLWljb24tc2l6ZTogMjA7XG5cdC0tY2stbGluay1pbWFnZS1pbmRpY2F0b3ItaWNvbi1pcy12aXNpYmxlOiBjbGFtcCgwcHgsIDEwMCUgLSA1MHB4LCAxcHgpO1xufVxuLyogTGlua2VkIGltYWdlIGluZGljYXRvciAqL1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgZmlndXJlLmltYWdlID4gYTo6YWZ0ZXIsIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlIGEgc3Bhbi5pbWFnZS1pbmxpbmU6OmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6IFwiXCI7XG5cblx0XHRcdC8qXG5cdFx0XHQgKiBTbWFsbGVyIGltYWdlcyBzaG91bGQgaGF2ZSB0aGUgaWNvbiBjbG9zZXIgdG8gdGhlIGJvcmRlci5cblx0XHRcdCAqIE1hdGNoIHRoZSBpY29uIHBvc2l0aW9uIHdpdGggdGhlIHVwbG9hZCBpbmRpY2F0b3IgYnJvdWdodCBieSB0aGUgaW1hZ2UgdXBsb2FkIGZlYXR1cmUuXG5cdFx0XHQgKi9cblx0XHRcdHRvcDogbWluKHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKSwgNiUpO1xuXHRcdFx0cmlnaHQ6IG1pbih2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSksIDYlKTtcblxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogaHNsYSgwLCAwJSwgMCUsIC40KTtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjJhV1YzUW05NFBTSXdJREFnTWpBZ01qQWlJSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SStQSEJoZEdnZ1ptbHNiRDBpSTJabVppSWdaRDBpYlRFeExqQTNOeUF4TlNBdU9Ua3hMVEV1TkRFMllTNDNOUzQzTlNBd0lERWdNU0F4TGpJeU9TNDRObXd0TVM0eE5EZ2dNUzQyTkdFdU56UTRMamMwT0NBd0lEQWdNUzB1TWpFM0xqSXdOaUExTGpJMU1TQTFMakkxTVNBd0lEQWdNUzA0TGpVd015MDFMamsxTlM0M05ERXVOelF4SURBZ01DQXhJQzR4TWkwdU1qYzBiREV1TVRRM0xURXVOak01WVM0M05TNDNOU0F3SURFZ01TQXhMakl5T0M0NE5rdzBMamt6TXlBeE1DNDNiQzR3TURZdU1EQXpZVE11TnpVZ015NDNOU0F3SURBZ01DQTJMakV6TWlBMExqSTVOR3d1TURBMkxqQXdOSHB0TlM0ME9UUXROUzR6TXpWaExqYzBPQzQzTkRnZ01DQXdJREV0TGpFeUxqSTNOR3d0TVM0eE5EY2dNUzQyTXpsaExqYzFMamMxSURBZ01TQXhMVEV1TWpJNExTNDRObXd1T0RZdE1TNHlNMkV6TGpjMUlETXVOelVnTUNBd0lEQXROaTR4TkRRdE5DNHpNREZzTFM0NE5pQXhMakl5T1dFdU56VXVOelVnTUNBd0lERXRNUzR5TWprdExqZzJiREV1TVRRNExURXVOalJoTGpjME9DNDNORGdnTUNBd0lERWdMakl4TnkwdU1qQTJJRFV1TWpVeElEVXVNalV4SURBZ01DQXhJRGd1TlRBeklEVXVPVFUxZW0wdE5DNDFOak10TWk0MU16SmhMamMxTGpjMUlEQWdNQ0F4SUM0eE9EUWdNUzR3TkRWc0xUTXVNVFUxSURRdU5UQTFZUzQzTlM0M05TQXdJREVnTVMweExqSXlPUzB1T0Rac015NHhOVFV0TkM0MU1EWmhMamMxTGpjMUlEQWdNQ0F4SURFdU1EUTFMUzR4T0RSNklpOCtQQzl6ZG1jK1wiKTtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogMTRweDtcblx0XHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAxMDAlO1xuXG5cdFx0XHQvKlxuXHRcdFx0KiBVc2UgQ1NTIG1hdGggdG8gc2ltdWxhdGUgY29udGFpbmVyIHF1ZXJpZXMuXG5cdFx0XHQqIGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vdGhlLXJhdmVuLXRlY2huaXF1ZS1vbmUtc3RlcC1jbG9zZXItdG8tY29udGFpbmVyLXF1ZXJpZXMvI3doYXQtYWJvdXQtc2hvd2luZy1hbmQtaGlkaW5nLXRoaW5nc1xuXHRcdFx0Ki9cblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHR3aWR0aDogY2FsYyh2YXIoLS1jay1saW5rLWltYWdlLWluZGljYXRvci1pY29uLWlzLXZpc2libGUpICogdmFyKC0tY2stbGluay1pbWFnZS1pbmRpY2F0b3ItaWNvbi1zaXplKSk7XG5cdFx0XHRoZWlnaHQ6IGNhbGModmFyKC0tY2stbGluay1pbWFnZS1pbmRpY2F0b3ItaWNvbi1pcy12aXNpYmxlKSAqIHZhcigtLWNrLWxpbmstaW1hZ2UtaW5kaWNhdG9yLWljb24tc2l6ZSkpO1xuXHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWxpbmstcHJvcGVydGllcy13aWR0aDogMzQwcHg7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuXHQ6cm9vdCB7XG5cdFx0LS1jay1saW5rLXByb3BlcnRpZXMtd2lkdGg6IDMwMHB4O1xuXHR9XG5cdH1cbi5jay5jay1saW5rLXByb3BlcnRpZXMge1xuXHR3aWR0aDogdmFyKC0tY2stbGluay1wcm9wZXJ0aWVzLXdpZHRoKTtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWxpbmstcHJvdmlkZXJzLXdpZHRoOiAzNDBweDtcblx0LS1jay1saW5rLWxpc3Qtdmlldy1tYXgtaGVpZ2h0OiAyNDBweDtcblx0LS1jay1saW5rLWxpc3Qtdmlldy1pY29uLXNpemU6IGNhbGMoIHZhcigtLWNrLWljb24tc2l6ZSkgKiAwLjgpOyAvKiAwLjggPSAxNi8yMCBjYXVzZSBkZWZhdWx0IHRoZSBpY29uIHNpemUgaXMgMjBweCAqL1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcblx0OnJvb3Qge1xuXHRcdC0tY2stbGluay1wcm92aWRlcnMtd2lkdGg6IDMwMHB4O1xuXHR9XG5cdH1cbi5jay5jay1saW5rLXByb3ZpZGVycyB7XG5cdHdpZHRoOiB2YXIoLS1jay1saW5rLXByb3ZpZGVycy13aWR0aCk7XG59XG4uY2suY2stbGluay1wcm92aWRlcnMgLmNrLWZvcm1fX2hlYWRlcl9fbGFiZWwge1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdH1cbi5jay5jay1saW5rLXByb3ZpZGVycyA+IC5jay1saW5rLXByb3ZpZGVyc19fbGlzdCB7XG5cdFx0bWF4LWhlaWdodDogbWluKCB2YXIoLS1jay1saW5rLWxpc3Qtdmlldy1tYXgtaGVpZ2h0KSwgNDB2aCApO1xuXHR9XG4uY2suY2stbGluay1wcm92aWRlcnMgPiAuY2stbGluay1wcm92aWRlcnNfX2xpc3QgLmNrLWJ1dHRvbiA+IC5jay1pY29uIHtcblx0XHRcdFx0d2lkdGg6IHZhcigtLWNrLWxpbmstbGlzdC12aWV3LWljb24tc2l6ZSk7XG5cdFx0XHRcdGhlaWdodDogdmFyKC0tY2stbGluay1saXN0LXZpZXctaWNvbi1zaXplKTtcblx0XHRcdH1cbi5jay5jay1saW5rLXByb3ZpZGVycyA+IC5jay1saW5rLXByb3ZpZGVyc19fbGlzdCAuY2stYnV0dG9uID4gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRcdH1cbi5jay5jay1saW5rLXByb3ZpZGVycyAuY2stbGlua19fZW1wdHktbGlzdC1pbmZvIHtcblx0XHRwYWRkaW5nOiBjYWxjKCAyICogdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgKSB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qIFdoZW4gdGhlcmUgYXJlIG5vIGxpc3Qgc3R5bGVzIGFuZCB0aGVyZSBpcyBubyBjb2xsYXBzaWJsZS4gKi9cbi5jay5jay1saXN0LXByb3BlcnRpZXMuY2stbGlzdC1wcm9wZXJ0aWVzX3dpdGhvdXQtc3R5bGVzIHtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0fVxuLmNrLmNrLWxpc3QtcHJvcGVydGllcy5jay1saXN0LXByb3BlcnRpZXNfd2l0aG91dC1zdHlsZXMgPiAqIHtcblx0XHRcdG1pbi13aWR0aDogMTRlbTtcblx0XHR9XG4uY2suY2stbGlzdC1wcm9wZXJ0aWVzLmNrLWxpc3QtcHJvcGVydGllc193aXRob3V0LXN0eWxlcyA+ICogKyAqIHtcblx0XHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHR9XG4vKlxuXHQgKiBXaGVuIHRoZSBudW1iZXJlZCBsaXN0IHByb3BlcnR5IGZpZWxkcyAoc3RhcnQgYXQsIHJldmVyc2VkKSBzaG91bGQgYmUgZGlzcGxheWVkLFxuXHQgKiBtb3JlIGhvcml6b250YWwgc3BhY2UgaXMgbmVlZGVkLiBSZWNvbmZpZ3VyZSB0aGUgc3R5bGUgZ3JpZCB0byBjcmVhdGUgdGhhdCBzcGFjZS5cblx0ICovXG4uY2suY2stbGlzdC1wcm9wZXJ0aWVzLmNrLWxpc3QtcHJvcGVydGllc193aXRoLW51bWJlcmVkLXByb3BlcnRpZXMgPiAuY2stbGlzdC1zdHlsZXMtbGlzdCB7XG5cdFx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCggNCwgYXV0byApO1xuXHRcdH1cbi8qIFdoZW4gbGlzdCBzdHlsZXMgYXJlIHJlbmRlcmVkIGFuZCBwcm9wZXJ0eSBmaWVsZHMgYXJlIGluIGEgY29sbGFwc2libGUuICovXG4uY2suY2stbGlzdC1wcm9wZXJ0aWVzLmNrLWxpc3QtcHJvcGVydGllc193aXRoLW51bWJlcmVkLXByb3BlcnRpZXMgPiAuY2stY29sbGFwc2libGUge1xuXHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHR9XG4uY2suY2stbGlzdC1wcm9wZXJ0aWVzLmNrLWxpc3QtcHJvcGVydGllc193aXRoLW51bWJlcmVkLXByb3BlcnRpZXMgPiAuY2stY29sbGFwc2libGUgPiAuY2stY29sbGFwc2libGVfX2NoaWxkcmVuID4gKiB7XG5cdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdH1cbi5jay5jay1saXN0LXByb3BlcnRpZXMuY2stbGlzdC1wcm9wZXJ0aWVzX3dpdGgtbnVtYmVyZWQtcHJvcGVydGllcyA+IC5jay1jb2xsYXBzaWJsZSA+IC5jay1jb2xsYXBzaWJsZV9fY2hpbGRyZW4gPiAqICsgKiB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdFx0XHR9XG4uY2suY2stbGlzdC1wcm9wZXJ0aWVzIC5jay5jay1udW1iZXJlZC1saXN0LXByb3BlcnRpZXNfX3N0YXJ0LWluZGV4IC5jay1pbnB1dCB7XG5cdFx0bWluLXdpZHRoOiBhdXRvO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG4uY2suY2stbGlzdC1wcm9wZXJ0aWVzIC5jay5jay1udW1iZXJlZC1saXN0LXByb3BlcnRpZXNfX3JldmVyc2VkLW9yZGVyIHtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdFx0cGFkZGluZy1yaWdodDogMDtcblx0XHRtYXJnaW4tYm90dG9tOiBjYWxjKC0xICogdmFyKC0tY2stc3BhY2luZy10aW55KSk7XG5cdH1cbi5jay5jay1saXN0LXByb3BlcnRpZXMgLmNrLmNrLW51bWJlcmVkLWxpc3QtcHJvcGVydGllc19fcmV2ZXJzZWQtb3JkZXI6YWN0aXZlLCAuY2suY2stbGlzdC1wcm9wZXJ0aWVzIC5jay5jay1udW1iZXJlZC1saXN0LXByb3BlcnRpZXNfX3JldmVyc2VkLW9yZGVyOmhvdmVyIHtcblx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWxpc3Qtc3R5bGUtYnV0dG9uLXNpemU6IDQ0cHg7XG59XG4uY2suY2stbGlzdC1zdHlsZXMtbGlzdCB7XG5cdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KCAzLCBhdXRvICk7XG5cdHJvdy1nYXA6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0Y29sdW1uLWdhcDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcbn1cbi5jay5jay1saXN0LXN0eWxlcy1saXN0IC5jay1idXR0b24ge1xuXHRcdC8qIE1ha2UgdGhlIGJ1dHRvbiBsb29rIGxpa2UgYSB0aHVtYm5haWwgKHRoZSBpY29uIFwidGFrZXMgaXQgYWxsXCIpLiAqL1xuXHRcdHdpZHRoOiB2YXIoLS1jay1saXN0LXN0eWxlLWJ1dHRvbi1zaXplKTtcblx0XHRoZWlnaHQ6IHZhcigtLWNrLWxpc3Qtc3R5bGUtYnV0dG9uLXNpemUpO1xuXHRcdHBhZGRpbmc6IDA7XG5cblx0XHQvKlxuXHRcdCAqIEJ1dHRvbnMgYXJlIGFsaWduZWQgYnkgdGhlIGdyaWQgc28gZGlzYWJsZSBkZWZhdWx0IGJ1dHRvbiBtYXJnaW5zIHRvIG5vdCBjb2xsaWRlIHdpdGggdGhlXG5cdFx0ICogZ2FwcyBpbiB0aGUgZ3JpZC5cblx0XHQgKi9cblx0XHRtYXJnaW46IDA7XG5cblx0XHQvKlxuXHRcdCAqIE1ha2Ugc3VyZSB0aGUgYnV0dG9uIGJvcmRlciAod2hpY2ggaXMgZGlzcGxheWVkIG9uIGZvY3VzLCBCVFcpIGRvZXMgbm90IHN0ZWFsIHBpeGVsc1xuXHRcdCAqIGZyb20gdGhlIGJ1dHRvbiBkaW1lbnNpb25zIGFuZCwgYXMgYSByZXN1bHQsIGRlY3JlYXNlIHRoZSBzaXplIG9mIHRoZSBpY29uXG5cdFx0ICogKHdoaWNoIGJlY29tZXMgYmx1cnJ5IGFzIGl0IHNjYWxlcyBkb3duKS5cblx0XHQgKi9cblx0XHRib3gtc2l6aW5nOiBjb250ZW50LWJveDtcblx0fVxuLmNrLmNrLWxpc3Qtc3R5bGVzLWxpc3QgLmNrLWJ1dHRvbiAuY2staWNvbiB7XG5cdFx0XHR3aWR0aDogdmFyKC0tY2stbGlzdC1zdHlsZS1idXR0b24tc2l6ZSk7XG5cdFx0XHRoZWlnaHQ6IHZhcigtLWNrLWxpc3Qtc3R5bGUtYnV0dG9uLXNpemUpO1xuXHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stbWVkaWEtZW1iZWQtcGxhY2Vob2xkZXItaWNvbi1zaXplOiAzZW07XG5cblx0LS1jay1jb2xvci1tZWRpYS1lbWJlZC1wbGFjZWhvbGRlci11cmwtdGV4dDogaHNsKDAsIDAlLCA0NiUpO1xuXHQtLWNrLWNvbG9yLW1lZGlhLWVtYmVkLXBsYWNlaG9sZGVyLXVybC10ZXh0LWhvdmVyOiB2YXIoLS1jay1jb2xvci1iYXNlLXRleHQpO1xufVxuLmNrLW1lZGlhX193cmFwcGVyIHtcblx0bWFyZ2luOiAwIGF1dG87XG59XG4uY2stbWVkaWFfX3dyYXBwZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlciB7XG5cdFx0cGFkZGluZzogY2FsYyggMyAqIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpICk7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1mb3JlZ3JvdW5kKTtcblx0fVxuLmNrLW1lZGlhX193cmFwcGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiB7XG5cdFx0XHRtaW4td2lkdGg6IHZhcigtLWNrLW1lZGlhLWVtYmVkLXBsYWNlaG9sZGVyLWljb24tc2l6ZSk7XG5cdFx0XHRoZWlnaHQ6IHZhcigtLWNrLW1lZGlhLWVtYmVkLXBsYWNlaG9sZGVyLWljb24tc2l6ZSk7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdFx0fVxuLmNrLW1lZGlhX193cmFwcGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiAuY2staWNvbiB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHR9XG4uY2stbWVkaWFfX3dyYXBwZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX191cmxfX3RleHQge1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLW1lZGlhLWVtYmVkLXBsYWNlaG9sZGVyLXVybC10ZXh0KTtcblx0XHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRmb250LXN0eWxlOiBpdGFsaWM7XG5cdFx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHR9XG4uY2stbWVkaWFfX3dyYXBwZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX191cmxfX3RleHQ6aG92ZXIge1xuXHRcdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItbWVkaWEtZW1iZWQtcGxhY2Vob2xkZXItdXJsLXRleHQtaG92ZXIpO1xuXHRcdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdFx0fVxuLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJvcGVuLnNwb3RpZnkuY29tXCJdIHtcblx0XHRtYXgtd2lkdGg6IDMwMHB4O1xuXHRcdG1heC1oZWlnaHQ6IDM4MHB4O1xuXHR9XG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cImdvb2dsZS5jb20vbWFwc1wiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uLFxuXHQuY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cImdvby5nbC9tYXBzXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24sXG5cdC5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwibWFwcy5nb29nbGUuY29tXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24sXG5cdC5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwibWFwcy5hcHAuZ29vLmdsXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24ge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGRwWkhSb1BTSXlOVEF1TXpjNElpQm9aV2xuYUhROUlqSTFOQzR4TmpjaUlIWnBaWGRDYjNnOUlqQWdNQ0EyTmk0eU5EWWdOamN1TWpRNElqNDhaeUIwY21GdWMyWnZjbTA5SW5SeVlXNXpiR0YwWlNndE1UY3lMalV6TVNBdE1qRTRMalExTlNrZ2MyTmhiR1VvTGprNE1ERXlLU0krUEhKbFkzUWdjbms5SWpVdU1qTTRJaUJ5ZUQwaU5TNHlNemdpSUhrOUlqSXpNUzR6T1RraUlIZzlJakUzTmk0d016RWlJR2hsYVdkb2REMGlOakF1TURrNUlpQjNhV1IwYUQwaU5qQXVNRGs1SWlCbWFXeHNQU0lqTXpSaE5qWTRJaUJ3WVdsdWRDMXZjbVJsY2owaWJXRnlhMlZ5Y3lCemRISnZhMlVnWm1sc2JDSXZQanh3WVhSb0lHUTlJazB5TURZdU5EYzNJREkyTUM0NWJDMHlPQzQ1T0RjZ01qZ3VPVGczWVRVdU1qRTRJRFV1TWpFNElEQWdNQ0F3SURNdU56Z2dNUzQyTVdnME9TNDJNakZqTVM0Mk9UUWdNQ0F6TGpFNUxTNDNPVGdnTkM0eE5EWXRNaTR3TXpkNklpQm1hV3hzUFNJak5XTTRPR00xSWk4K1BIQmhkR2dnWkQwaVRUSXlOaTQzTkRJZ01qSXlMams0T0dNdE9TNHlOallnTUMweE5pNDNOemNnTnk0eE55MHhOaTQzTnpjZ01UWXVNREUwTGpBd055QXlMamMyTWk0Mk5qTWdOUzQwTnpRZ01pNHdPVE1nTnk0NE56VXVORE11TnpBekxqZ3pJREV1TkRBNElERXVNVGtnTWk0eE1EY3VNek16TGpVd01pNDJOU0F4TGpBd05TNDVOU0F4TGpVd09DNHpORE11TkRjM0xqWTNNeTQ1TlRjdU9UZzRJREV1TkRRZ01TNHpNU0F4TGpjMk9TQXlMalVnTXk0MU1ESWdNeTQyTXpjZ05TNHhOamd1TnpreklERXVNamMxSURFdU5qZ3pJREl1TmpRZ01pNDBOallnTXk0NU9TQXlMak0yTXlBMExqQTVOQ0EwTGpBd055QTRMakE1TWlBMExqWWdNVE11T1RFMGRpNHdNVEpqTGpFNE1pNDBNVEl1TlRFMkxqWTJOaTQ0TnprdU5qWTNMalF3TXkwdU1EQXhMamMyT0MwdU16RTBMamt6TFM0M09Ua3VOakF6TFRVdU56VTJJREl1TWpNNExUa3VOekk1SURRdU5UZzFMVEV6TGpjNU5DNDNPREl0TVM0ek5TQXhMalkzTXkweUxqY3hOU0F5TGpRMk5TMHpMams1SURFdU1UTTNMVEV1TmpZMklESXVNekk0TFRNdU5DQXpMall6T0MwMUxqRTJPUzR6TVRVdExqUTRNaTQyTkRVdExqazJNaTQ1T0RndE1TNDBNemt1TXkwdU5UQXpMall4TnkweExqQXdOaTQ1TlMweExqVXdPQzR6TlRrdExqY3VOell0TVM0ME1EUWdNUzR4T1MweUxqRXdOeUF4TGpReU5pMHlMalF3TWlBeUxUVXVNVEUwSURJdU1EQTBMVGN1T0RjMUlEQXRPQzQ0TkRRdE55NDFNVEV0TVRZdU1ERTBMVEUyTGpjM05pMHhOaTR3TVRSNklpQm1hV3hzUFNJalpHUTBZak5sSWlCd1lXbHVkQzF2Y21SbGNqMGliV0Z5YTJWeWN5QnpkSEp2YTJVZ1ptbHNiQ0l2UGp4bGJHeHBjSE5sSUhKNVBTSTFMalUyTkNJZ2NuZzlJalV1T0RJNElpQmplVDBpTWpNNUxqQXdNaUlnWTNnOUlqSXlOaTQzTkRJaUlHWnBiR3c5SWlNNE1ESmtNamNpSUhCaGFXNTBMVzl5WkdWeVBTSnRZWEpyWlhKeklITjBjbTlyWlNCbWFXeHNJaTgrUEhCaGRHZ2daRDBpVFRFNU1DNHpNREVnTWpNM0xqSTRNMk10TkM0Mk55QXdMVGd1TkRVM0lETXVPRFV6TFRndU5EVTNJRGd1TmpBMmN6TXVOemcySURndU5qQTNJRGd1TkRVM0lEZ3VOakEzWXpNdU1EUXpJREFnTkM0NE1EWXRMamsxT0NBMkxqTXpOeTB5TGpVeE5pQXhMalV6TFRFdU5UVTNJREl1TURnM0xUTXVPVEV6SURJdU1EZzNMVFl1TWprZ01DMHVNell5TFM0d01qTXRMamN5TWkwdU1EWTBMVEV1TURjNWFDMDRMakkxTjNZekxqQTBNMmcwTGpnMVl5MHVNVGszTGpjMU9TMHVOVE14SURFdU5EVXRNUzR3TlRnZ01TNDVPRFl0TGprME1pNDVOVGd0TWk0d01qZ2dNUzQxTkRndE15NDVNREVnTVM0MU5EZ3RNaTQ0TnpZZ01DMDFMakl3T0MweUxqTTNNaTAxTGpJd09DMDFMakk1T1NBd0xUSXVPVEkySURJdU16TXlMVFV1TWprNUlEVXVNakE0TFRVdU1qazVJREV1TXprNUlEQWdNaTQyTVRndU5EQTNJRE11TlRnMElERXVNamt6YkRJdU16Z3hMVEl1TXpoak1DMHVNREF5TFM0d01ETXRMakF3TkMwdU1EQTBMUzR3TURVdE1TNDFPRGd0TVM0MU1qUXRNeTQyTWkweUxqSXhOUzAxTGprMU5TMHlMakl4TlhwdE5DNDBNeUExTGpZMmJDNHdNRE11TURBMmRpMHVNREF6ZWlJZ1ptbHNiRDBpSTJabVppSWdjR0ZwYm5RdGIzSmtaWEk5SW0xaGNtdGxjbk1nYzNSeWIydGxJR1pwYkd3aUx6NDhjR0YwYUNCa1BTSk5NakUxTGpFNE5DQXlOVEV1T1RJNWJDMDNMams0SURjdU9UYzVJREk0TGpRM055QXlPQzQwTnpWakxqSTROeTB1TmpRNUxqUTBPUzB4TGpNMk5pNDBORGt0TWk0eE1qTjJMVE14TGpFMk5XTXRMalEyT1M0Mk56VXRMamt6TkNBeExqTTBPUzB4TGpNNE1pQXlMakF3TlMwdU56a3lJREV1TWpjMUxURXVOamd5SURJdU5qUXRNaTQwTmpVZ015NDVPUzB5TGpNME55QTBMakEyTlMwekxqazRNaUE0TGpBek9DMDBMalU0TlNBeE15NDNPVFF0TGpFMk1pNDBPRFV0TGpVeU55NDNPVGd0TGprekxqYzVPUzB1TXpZekxTNHdNREV0TGpZNU55MHVNalUxTFM0NE56a3RMalkyTjNZdExqQXhNbU10TGpVNU15MDFMamd5TWkweUxqSXpOeTA1TGpneUxUUXVOaTB4TXk0NU1UUXRMamM0TXkweExqTTFMVEV1TmpjekxUSXVOekUxTFRJdU5EWTJMVE11T1RrdE1TNHhNemN0TVM0Mk5qWXRNaTR6TWpjdE15NDBMVE11TmpNM0xUVXVNVFk1YkMwdU1EQXlMUzR3TURONklpQm1hV3hzUFNJall6TmpNMk16SWk4K1BIQmhkR2dnWkQwaVRUSXhNaTQ1T0RNZ01qUTRMalE1Tld3dE16WXVPVFV5SURNMkxqazFNM1l1T0RFeVlUVXVNakkzSURVdU1qSTNJREFnTUNBd0lEVXVNak00SURVdU1qTTRhREV1TURFMWJETTFMalkyTmkwek5TNDJOalpoTVRNMkxqSTNOU0F4TXpZdU1qYzFJREFnTUNBd0xUSXVOelkwTFRNdU9TQXpOeTQxTnpVZ016Y3VOVGMxSURBZ01DQXdMUzQ1T0RrdE1TNDBOR010TGpJNU9TMHVOVEF6TFM0Mk1UWXRNUzR3TURZdExqazFMVEV1TlRBNExTNHdPRE10TGpFMk1pMHVNVGMyTFM0ek1qWXRMakkyTkMwdU5EZzVlaUlnWm1sc2JEMGlJMlprWkdNMFppSWdjR0ZwYm5RdGIzSmtaWEk5SW0xaGNtdGxjbk1nYzNSeWIydGxJR1pwYkd3aUx6NDhjR0YwYUNCa1BTSk5NakV4TGprNU9DQXlOakV1TURnemJDMDJMakUxTWlBMkxqRTFNU0F5TkM0eU5qUWdNalF1TWpZMGFDNDNPREZoTlM0eU1qY2dOUzR5TWpjZ01DQXdJREFnTlM0eU16a3ROUzR5TXpoMkxURXVNRFExZWlJZ1ptbHNiRDBpSTJabVppSWdjR0ZwYm5RdGIzSmtaWEk5SW0xaGNtdGxjbk1nYzNSeWIydGxJR1pwYkd3aUx6NDhMMmMrUEM5emRtYyspO1xuXHR9XG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cImZhY2Vib29rLmNvbVwiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIHtcblx0XHRiYWNrZ3JvdW5kOiBoc2woMjIwLCA0NiUsIDQ4JSk7XG5cdH1cbi5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwiZmFjZWJvb2suY29tXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiB7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpVlZSR0xUZ2lQejQ4YzNabklIZHBaSFJvUFNJeE1ESTBjSGdpSUdobGFXZG9kRDBpTVRBeU5IQjRJaUIyYVdWM1FtOTRQU0l3SURBZ01UQXlOQ0F4TURJMElpQjJaWEp6YVc5dVBTSXhMakVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lQaUFnSUNBZ0lDQWdQSFJwZEd4bFBrWnBiR3dnTVR3dmRHbDBiR1UrSUNBZ0lEeGtaWE5qUGtOeVpXRjBaV1FnZDJsMGFDQlRhMlYwWTJndVBDOWtaWE5qUGlBZ0lDQThaR1ZtY3o0OEwyUmxabk0rSUNBZ0lEeG5JR2xrUFNKUVlXZGxMVEVpSUhOMGNtOXJaVDBpYm05dVpTSWdjM1J5YjJ0bExYZHBaSFJvUFNJeElpQm1hV3hzUFNKdWIyNWxJaUJtYVd4c0xYSjFiR1U5SW1WMlpXNXZaR1FpUGlBZ0lDQWdJQ0FnUEdjZ2FXUTlJbVpNYjJkdlgxZG9hWFJsSWlCbWFXeHNQU0lqUmtaR1JrWkZJajRnSUNBZ0lDQWdJQ0FnSUNBOGNHRjBhQ0JrUFNKTk9UWTNMalE0TkN3d0lFdzFOaTQxTVRjc01DQkRNalV1TXpBMExEQWdNQ3d5TlM0ek1EUWdNQ3cxTmk0MU1UY2dUREFzT1RZM0xqUTRNeUJETUN3NU9UZ3VOamswSURJMUxqSTVOeXd4TURJMElEVTJMalV5TWl3eE1ESTBJRXcxTkRjc01UQXlOQ0JNTlRRM0xEWXlPQ0JNTkRFMExEWXlPQ0JNTkRFMExEUTNNeUJNTlRRM0xEUTNNeUJNTlRRM0xETTFPUzR3TWprZ1F6VTBOeXd5TWpZdU56WTNJRFl5Tnk0M056TXNNVFUwTGpjME55QTNORFV1TnpVMkxERTFOQzQzTkRjZ1F6Z3dNaTR5Tmprc01UVTBMamMwTnlBNE5UQXVPRFF5TERFMU9DNDVOVFVnT0RZMUxERTJNQzQ0TXpZZ1REZzJOU3d5T1RrZ1REYzRNeTR6T0RRc01qazVMakF6TnlCRE56RTVMak01TVN3eU9Ua3VNRE0zSURjd055d3pNamt1TlRJNUlEY3dOeXd6TnpRdU1qY3pJRXczTURjc05EY3pJRXc0TmpBdU5EZzNMRFEzTXlCTU9EUXdMalV3TVN3Mk1qZ2dURGN3Tnl3Mk1qZ2dURGN3Tnl3eE1ESTBJRXc1TmpjdU5EZzBMREV3TWpRZ1F6azVPQzQyT1Rjc01UQXlOQ0F4TURJMExEazVPQzQyT1RjZ01UQXlOQ3c1TmpjdU5EZzBJRXd4TURJMExEVTJMalV4TlNCRE1UQXlOQ3d5TlM0ek1ETWdPVGs0TGpZNU55d3dJRGsyTnk0ME9EUXNNQ0lnYVdROUlrWnBiR3d0TVNJK1BDOXdZWFJvUGlBZ0lDQWdJQ0FnUEM5blBpQWdJQ0E4TDJjK1BDOXpkbWMrKTtcblx0XHR9XG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cImZhY2Vib29rLmNvbVwiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybF9fdGV4dCB7XG5cdFx0XHRjb2xvcjogaHNsKDIyMCwgMTAwJSwgOTAlKTtcblx0XHR9XG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cImZhY2Vib29rLmNvbVwiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybF9fdGV4dDpob3ZlciB7XG5cdFx0XHRcdGNvbG9yOiBoc2woMCwgMCUsIDEwMCUpO1xuXHRcdFx0fVxuLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJpbnN0YWdyYW0uY29tXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIge1xuXHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgtMTM1ZGVnLGhzbCgyNDYsIDEwMCUsIDM5JSksaHNsKDMwMiwgMTAwJSwgMzYlKSxoc2woMCwgMTAwJSwgNDglKSk7XG5cdH1cbi5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwiaW5zdGFncmFtLmNvbVwiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24ge1xuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaVZWUkdMVGdpUHo0OGMzWm5JSGRwWkhSb1BTSTFNRFJ3ZUNJZ2FHVnBaMmgwUFNJMU1EUndlQ0lnZG1sbGQwSnZlRDBpTUNBd0lEVXdOQ0ExTURRaUlIWmxjbk5wYjI0OUlqRXVNU0lnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JaUI0Yld4dWN6cDRiR2x1YXowaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1UazVPUzk0YkdsdWF5SStJQ0FnSUNBZ0lDQThkR2wwYkdVK1oyeDVjR2d0Ykc5bmIxOU5ZWGt5TURFMlBDOTBhWFJzWlQ0Z0lDQWdQR1JsYzJNK1EzSmxZWFJsWkNCM2FYUm9JRk5yWlhSamFDNDhMMlJsYzJNK0lDQWdJRHhrWldaelBpQWdJQ0FnSUNBZ1BIQnZiSGxuYjI0Z2FXUTlJbkJoZEdndE1TSWdjRzlwYm5SelBTSXdJREF1TVRVNUlEVXdNeTQ0TkRFZ01DNHhOVGtnTlRBekxqZzBNU0ExTURNdU9UUWdNQ0ExTURNdU9UUWlQand2Y0c5c2VXZHZiajRnSUNBZ1BDOWtaV1p6UGlBZ0lDQThaeUJwWkQwaVoyeDVjR2d0Ykc5bmIxOU5ZWGt5TURFMklpQnpkSEp2YTJVOUltNXZibVVpSUhOMGNtOXJaUzEzYVdSMGFEMGlNU0lnWm1sc2JEMGlibTl1WlNJZ1ptbHNiQzF5ZFd4bFBTSmxkbVZ1YjJSa0lqNGdJQ0FnSUNBZ0lEeG5JR2xrUFNKSGNtOTFjQzB6SWo0Z0lDQWdJQ0FnSUNBZ0lDQThiV0Z6YXlCcFpEMGliV0Z6YXkweUlpQm1hV3hzUFNKM2FHbDBaU0krSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHgxYzJVZ2VHeHBibXM2YUhKbFpqMGlJM0JoZEdndE1TSStQQzkxYzJVK0lDQWdJQ0FnSUNBZ0lDQWdQQzl0WVhOclBpQWdJQ0FnSUNBZ0lDQWdJRHhuSUdsa1BTSkRiR2x3TFRJaVBqd3ZaejRnSUNBZ0lDQWdJQ0FnSUNBOGNHRjBhQ0JrUFNKTk1qVXhMamt5TVN3d0xqRTFPU0JETVRnekxqVXdNeXd3TGpFMU9TQXhOelF1T1RJMExEQXVORFE1SURFME9DNHdOVFFzTVM0Mk56VWdRekV5TVM0eU5Dd3lMamc1T0NBeE1ESXVPVEkzTERjdU1UVTNJRGcyTGprd015d3hNeTR6T0RVZ1F6Y3dMak16Tnl3eE9TNDRNaklnTlRZdU1qZzRMREk0TGpRek5pQTBNaTR5T0RJc05ESXVORFF4SUVNeU9DNHlOemNzTlRZdU5EUTNJREU1TGpZMk15dzNNQzQwT1RZZ01UTXVNakkyTERnM0xqQTJNaUJETmk0NU9UZ3NNVEF6TGpBNE5pQXlMamN6T1N3eE1qRXVNems1SURFdU5URTJMREUwT0M0eU1UTWdRekF1TWprc01UYzFMakE0TXlBd0xERTRNeTQyTmpJZ01Dd3lOVEl1TURnZ1F6QXNNekl3TGpRNU55QXdMakk1TERNeU9TNHdOellnTVM0MU1UWXNNelUxTGprME5pQkRNaTQzTXprc016Z3lMamMySURZdU9UazRMRFF3TVM0d056TWdNVE11TWpJMkxEUXhOeTR3T1RjZ1F6RTVMalkyTXl3ME16TXVOall6SURJNExqSTNOeXcwTkRjdU56RXlJRFF5TGpJNE1pdzBOakV1TnpFNElFTTFOaTR5T0Rnc05EYzFMamN5TXlBM01DNHpNemNzTkRnMExqTXpOeUE0Tmk0NU1ETXNORGt3TGpjM05TQkRNVEF5TGpreU55dzBPVGN1TURBeUlERXlNUzR5TkN3MU1ERXVNall4SURFME9DNHdOVFFzTlRBeUxqUTROQ0JETVRjMExqa3lOQ3cxTURNdU56RWdNVGd6TGpVd015dzFNRFFnTWpVeExqa3lNU3cxTURRZ1F6TXlNQzR6TXpnc05UQTBJRE15T0M0NU1UY3NOVEF6TGpjeElETTFOUzQzT0Rjc05UQXlMalE0TkNCRE16Z3lMall3TVN3MU1ERXVNall4SURRd01DNDVNVFFzTkRrM0xqQXdNaUEwTVRZdU9UTTRMRFE1TUM0M056VWdRelF6TXk0MU1EUXNORGcwTGpNek55QTBORGN1TlRVekxEUTNOUzQzTWpNZ05EWXhMalUxT1N3ME5qRXVOekU0SUVNME56VXVOVFkwTERRME55NDNNVElnTkRnMExqRTNPQ3cwTXpNdU5qWXpJRFE1TUM0Mk1UWXNOREUzTGpBNU55QkRORGsyTGpnME15dzBNREV1TURjeklEVXdNUzR4TURJc016Z3lMamMySURVd01pNHpNalVzTXpVMUxqazBOaUJETlRBekxqVTFNU3d6TWprdU1EYzJJRFV3TXk0NE5ERXNNekl3TGpRNU55QTFNRE11T0RReExESTFNaTR3T0NCRE5UQXpMamcwTVN3eE9ETXVOall5SURVd015NDFOVEVzTVRjMUxqQTRNeUExTURJdU16STFMREUwT0M0eU1UTWdRelV3TVM0eE1ESXNNVEl4TGpNNU9TQTBPVFl1T0RRekxERXdNeTR3T0RZZ05Ea3dMall4Tml3NE55NHdOaklnUXpRNE5DNHhOemdzTnpBdU5EazJJRFEzTlM0MU5qUXNOVFl1TkRRM0lEUTJNUzQxTlRrc05ESXVORFF4SUVNME5EY3VOVFV6TERJNExqUXpOaUEwTXpNdU5UQTBMREU1TGpneU1pQTBNVFl1T1RNNExERXpMak00TlNCRE5EQXdMamt4TkN3M0xqRTFOeUF6T0RJdU5qQXhMREl1T0RrNElETTFOUzQzT0Rjc01TNDJOelVnUXpNeU9DNDVNVGNzTUM0ME5Ea2dNekl3TGpNek9Dd3dMakUxT1NBeU5URXVPVEl4TERBdU1UVTVJRm9nVFRJMU1TNDVNakVzTkRVdU5UVWdRek14T1M0eE9EWXNORFV1TlRVZ016STNMakUxTkN3ME5TNDRNRGNnTXpVekxqY3hPQ3cwTnk0d01Ua2dRek0zT0M0eU9DdzBPQzR4TXprZ016a3hMall4T1N3MU1pNHlORE1nTkRBd0xqUTVOaXcxTlM0Mk9UTWdRelF4TWk0eU5UVXNOakF1TWpZeklEUXlNQzQyTkRjc05qVXVOekl5SURReU9TNDBOaklzTnpRdU5UTTRJRU0wTXpndU1qYzRMRGd6TGpNMU15QTBORE11TnpNM0xEa3hMamMwTlNBME5EZ3VNekEzTERFd015NDFNRFFnUXpRMU1TNDNOVGNzTVRFeUxqTTRNU0EwTlRVdU9EWXhMREV5TlM0M01pQTBOVFl1T1RneExERTFNQzR5T0RJZ1F6UTFPQzR4T1RNc01UYzJMamcwTmlBME5UZ3VORFVzTVRnMExqZ3hOQ0EwTlRndU5EVXNNalV5TGpBNElFTTBOVGd1TkRVc016RTVMak0wTlNBME5UZ3VNVGt6TERNeU55NHpNVE1nTkRVMkxqazRNU3d6TlRNdU9EYzNJRU0wTlRVdU9EWXhMRE0zT0M0ME16a2dORFV4TGpjMU55d3pPVEV1TnpjNElEUTBPQzR6TURjc05EQXdMalkxTlNCRE5EUXpMamN6Tnl3ME1USXVOREUwSURRek9DNHlOemdzTkRJd0xqZ3dOaUEwTWprdU5EWXlMRFF5T1M0Mk1qRWdRelF5TUM0Mk5EY3NORE00TGpRek55QTBNVEl1TWpVMUxEUTBNeTQ0T1RZZ05EQXdMalE1Tml3ME5EZ3VORFkySUVNek9URXVOakU1TERRMU1TNDVNVFlnTXpjNExqSTRMRFExTmk0d01pQXpOVE11TnpFNExEUTFOeTR4TkNCRE16STNMakUxT0N3ME5UZ3VNelV5SURNeE9TNHhPVEVzTkRVNExqWXdPU0F5TlRFdU9USXhMRFExT0M0Mk1Ea2dRekU0TkM0Mk5TdzBOVGd1TmpBNUlERTNOaTQyT0RRc05EVTRMak0xTWlBeE5UQXVNVEl6TERRMU55NHhOQ0JETVRJMUxqVTJNU3cwTlRZdU1ESWdNVEV5TGpJeU1pdzBOVEV1T1RFMklERXdNeTR6TkRVc05EUTRMalEyTmlCRE9URXVOVGcyTERRME15NDRPVFlnT0RNdU1UazBMRFF6T0M0ME16Y2dOelF1TXpjNUxEUXlPUzQyTWpFZ1F6WTFMalUyTkN3ME1qQXVPREEySURZd0xqRXdOQ3cwTVRJdU5ERTBJRFUxTGpVek5DdzBNREF1TmpVMUlFTTFNaTR3T0RRc016a3hMamMzT0NBME55NDVPQ3d6TnpndU5ETTVJRFEyTGpnMkxETTFNeTQ0TnpjZ1F6UTFMalkwT0N3ek1qY3VNekV6SURRMUxqTTVNU3d6TVRrdU16UTFJRFExTGpNNU1Td3lOVEl1TURnZ1F6UTFMak01TVN3eE9EUXVPREUwSURRMUxqWTBPQ3d4TnpZdU9EUTJJRFEyTGpnMkxERTFNQzR5T0RJZ1F6UTNMams0TERFeU5TNDNNaUExTWk0d09EUXNNVEV5TGpNNE1TQTFOUzQxTXpRc01UQXpMalV3TkNCRE5qQXVNVEEwTERreExqYzBOU0EyTlM0MU5qTXNPRE11TXpVeklEYzBMak0zT1N3M05DNDFNemdnUXpnekxqRTVOQ3cyTlM0M01qSWdPVEV1TlRnMkxEWXdMakkyTXlBeE1ETXVNelExTERVMUxqWTVNeUJETVRFeUxqSXlNaXcxTWk0eU5ETWdNVEkxTGpVMk1TdzBPQzR4TXprZ01UVXdMakV5TXl3ME55NHdNVGtnUXpFM05pNDJPRGNzTkRVdU9EQTNJREU0TkM0Mk5UVXNORFV1TlRVZ01qVXhMamt5TVN3ME5TNDFOU0JhSWlCcFpEMGlSbWxzYkMweElpQm1hV3hzUFNJalJrWkdSa1pHSWlCdFlYTnJQU0oxY213b0kyMWhjMnN0TWlraVBqd3ZjR0YwYUQ0Z0lDQWdJQ0FnSUR3dlp6NGdJQ0FnSUNBZ0lEeHdZWFJvSUdROUlrMHlOVEV1T1RJeExETXpOaTR3TlRNZ1F6SXdOUzQxTkRNc016TTJMakExTXlBeE5qY3VPVFEzTERJNU9DNDBOVGNnTVRZM0xqazBOeXd5TlRJdU1EZ2dRekUyTnk0NU5EY3NNakExTGpjd01pQXlNRFV1TlRRekxERTJPQzR4TURZZ01qVXhMamt5TVN3eE5qZ3VNVEEySUVNeU9UZ3VNams0TERFMk9DNHhNRFlnTXpNMUxqZzVOQ3d5TURVdU56QXlJRE16TlM0NE9UUXNNalV5TGpBNElFTXpNelV1T0RrMExESTVPQzQwTlRjZ01qazRMakk1T0N3ek16WXVNRFV6SURJMU1TNDVNakVzTXpNMkxqQTFNeUJhSUUweU5URXVPVEl4TERFeU1pNDNNVFVnUXpFNE1DNDBOelFzTVRJeUxqY3hOU0F4TWpJdU5UVTJMREU0TUM0Mk16TWdNVEl5TGpVMU5pd3lOVEl1TURnZ1F6RXlNaTQxTlRZc016SXpMalV5TmlBeE9EQXVORGMwTERNNE1TNDBORFFnTWpVeExqa3lNU3d6T0RFdU5EUTBJRU16TWpNdU16WTNMRE00TVM0ME5EUWdNemd4TGpJNE5Td3pNak11TlRJMklETTRNUzR5T0RVc01qVXlMakE0SUVNek9ERXVNamcxTERFNE1DNDJNek1nTXpJekxqTTJOeXd4TWpJdU56RTFJREkxTVM0NU1qRXNNVEl5TGpjeE5TQmFJaUJwWkQwaVJtbHNiQzAwSWlCbWFXeHNQU0lqUmtaR1JrWkdJajQ4TDNCaGRHZytJQ0FnSUNBZ0lDQThjR0YwYUNCa1BTSk5OREUyTGpZeU55d3hNVGN1TmpBMElFTTBNVFl1TmpJM0xERXpOQzR6SURRd015NHdPVElzTVRRM0xqZ3pOQ0F6T0RZdU16azJMREUwTnk0NE16UWdRek0yT1M0M01ERXNNVFEzTGpnek5DQXpOVFl1TVRZMkxERXpOQzR6SURNMU5pNHhOallzTVRFM0xqWXdOQ0JETXpVMkxqRTJOaXd4TURBdU9UQTRJRE0yT1M0M01ERXNPRGN1TXpjeklETTROaTR6T1RZc09EY3VNemN6SUVNME1ETXVNRGt5TERnM0xqTTNNeUEwTVRZdU5qSTNMREV3TUM0NU1EZ2dOREUyTGpZeU55d3hNVGN1TmpBMElpQnBaRDBpUm1sc2JDMDFJaUJtYVd4c1BTSWpSa1pHUmtaR0lqNDhMM0JoZEdnK0lDQWdJRHd2Wno0OEwzTjJaejQ9KTtcblx0XHR9XG4vKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eSAqL1xuLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJpbnN0YWdyYW0uY29tXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9fdXJsX190ZXh0IHtcblx0XHRcdGNvbG9yOiBoc2woMzAyLCAxMDAlLCA5NCUpO1xuXHRcdH1cbi5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwiaW5zdGFncmFtLmNvbVwiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybF9fdGV4dDpob3ZlciB7XG5cdFx0XHRcdGNvbG9yOiBoc2woMCwgMCUsIDEwMCUpO1xuXHRcdFx0fVxuLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJ0d2l0dGVyLmNvbVwiXSAuY2suY2stbWVkaWFfX3BsYWNlaG9sZGVyIHtcblx0XHQvKiBVc2UgZ3JhZGllbnQgdG8gY29udHJhc3Qgd2l0aCBmb2N1c2VkIHdpZGdldCAoY2tlZGl0b3IvY2tlZGl0b3I1LW1lZGlhLWVtYmVkIzIyKS4gKi9cblx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoIHRvIHJpZ2h0LCBoc2woMjAxLCA4NSUsIDcwJSksIGhzbCgyMDEsIDg1JSwgMzUlKSApO1xuXHR9XG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cInR3aXR0ZXIuY29tXCJdIC5jay5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiB7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejQ4YzNabklIWmxjbk5wYjI0OUlqRXVNU0lnYVdROUlsZG9hWFJsSWlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhodGJHNXpPbmhzYVc1clBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1TDNoc2FXNXJJaUI0UFNJd2NIZ2lJSGs5SWpCd2VDSWdkbWxsZDBKdmVEMGlNQ0F3SURRd01DQTBNREFpSUhOMGVXeGxQU0psYm1GaWJHVXRZbUZqYTJkeWIzVnVaRHB1WlhjZ01DQXdJRFF3TUNBME1EQTdJaUI0Yld3NmMzQmhZMlU5SW5CeVpYTmxjblpsSWo0OGMzUjViR1VnZEhsd1pUMGlkR1Y0ZEM5amMzTWlQaTV6ZERCN1ptbHNiRG9qUmtaR1JrWkdPMzA4TDNOMGVXeGxQanh3WVhSb0lHTnNZWE56UFNKemREQWlJR1E5SWswME1EQXNNakF3WXpBc01URXdMalV0T0RrdU5Td3lNREF0TWpBd0xESXdNRk13TERNeE1DNDFMREFzTWpBd1V6ZzVMalVzTUN3eU1EQXNNRk0wTURBc09Ea3VOU3cwTURBc01qQXdlaUJOTVRZekxqUXNNekExTGpWak9EZ3VOeXd3TERFek55NHlMVGN6TGpVc01UTTNMakl0TVRNM0xqSmpNQzB5TGpFc01DMDBMakl0TUM0eExUWXVNbU01TGpRdE5pNDRMREUzTGpZdE1UVXVNeXd5TkM0eExUSTFZeTA0TGpZc015NDRMVEUzTGprc05pNDBMVEkzTGpjc055NDJZekV3TFRZc01UY3VOaTB4TlM0MExESXhMakl0TWpZdU4yTXRPUzR6TERVdU5TMHhPUzQyTERrdU5TMHpNQzQyTERFeExqZGpMVGd1T0MwNUxqUXRNakV1TXkweE5TNHlMVE0xTGpJdE1UVXVNbU10TWpZdU5pd3dMVFE0TGpJc01qRXVOaTAwT0M0eUxEUTRMakpqTUN3ekxqZ3NNQzQwTERjdU5Td3hMak1zTVRGakxUUXdMakV0TWkwM05TNDJMVEl4TGpJdE9Ua3VOQzAxTUM0MFl5MDBMakVzTnk0eExUWXVOU3d4TlM0MExUWXVOU3d5TkM0eVl6QXNNVFl1Tnl3NExqVXNNekV1TlN3eU1TNDFMRFF3TGpGakxUY3VPUzB3TGpJdE1UVXVNeTB5TGpRdE1qRXVPQzAyWXpBc01DNHlMREFzTUM0MExEQXNNQzQyWXpBc01qTXVOQ3d4Tmk0MkxEUXlMamdzTXpndU55dzBOeTR6WXkwMExERXVNUzA0TGpNc01TNDNMVEV5TGpjc01TNDNZeTB6TGpFc01DMDJMakV0TUM0ekxUa3VNUzB3TGpsak5pNHhMREU1TGpJc01qTXVPU3d6TXk0eExEUTFMRE16TGpWakxURTJMalVzTVRJdU9TMHpOeTR6TERJd0xqWXROVGt1T1N3eU1DNDJZeTB6TGprc01DMDNMamN0TUM0eUxURXhMalV0TUM0M1F6RXhNQzQ0TERJNU55NDFMREV6Tmk0eUxETXdOUzQxTERFMk15NDBMRE13TlM0MUlpOCtQQzl6ZG1jKyk7XG5cdFx0fVxuLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJ0d2l0dGVyLmNvbVwiXSAuY2suY2stbWVkaWFfX3BsYWNlaG9sZGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybF9fdGV4dCB7XG5cdFx0XHRjb2xvcjogaHNsKDIwMSwgMTAwJSwgODYlKTtcblx0XHR9XG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cInR3aXR0ZXIuY29tXCJdIC5jay5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9fdXJsX190ZXh0OmhvdmVyIHtcblx0XHRcdFx0Y29sb3I6IGhzbCgwLCAwJSwgMTAwJSk7XG5cdFx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLW1lbnRpb24tYmFja2dyb3VuZDogaHNsYSgzNDEsIDEwMCUsIDMwJSwgMC4xKTtcblx0LS1jay1jb2xvci1tZW50aW9uLXRleHQ6IGhzbCgzNDEsIDEwMCUsIDMwJSk7XG59XG4uY2stY29udGVudCAubWVudGlvbiB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLW1lbnRpb24tYmFja2dyb3VuZCk7XG5cdGNvbG9yOiB2YXIoLS1jay1jb2xvci1tZW50aW9uLXRleHQpO1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uLWJhY2tncm91bmQ6IGhzbGEoMzEsIDEwMCUsIDY1JSwgLjIpO1xuXHQtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24taG92ZXItYmFja2dyb3VuZDogaHNsYSgzMSwgMTAwJSwgNjUlLCAuMzUpO1xuXHQtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24tYnJhY2tldHM6IGhzbGEoMzEsIDEwMCUsIDQwJSwgLjQpO1xuXHQtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1zZWxlY3RlZC1leGNlcHRpb24tYmFja2dyb3VuZDogaHNsYSgzMSwgMTAwJSwgNjUlLCAuNSk7XG5cdC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLXNlbGVjdGVkLWV4Y2VwdGlvbi1icmFja2V0czogaHNsYSgzMSwgMTAwJSwgNDAlLCAuNik7XG59XG4uY2stZWRpdG9yX19lZGl0YWJsZSAucmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbiB7XG5cdHRyYW5zaXRpb246IC4ycyBlYXNlLWluLW91dCBiYWNrZ3JvdW5kO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uLWJhY2tncm91bmQpO1xuXHRib3JkZXI6IDFweCBzb2xpZDtcblx0Ym9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoXG5cdFx0dG8gcmlnaHQsXG5cdFx0dmFyKC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbi1icmFja2V0cykgMCUsXG5cdFx0dmFyKC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbi1icmFja2V0cykgNXB4LFxuXHRcdGhzbGEoMCwgMCUsIDAlLCAwKSA2cHgsXG5cdFx0aHNsYSgwLCAwJSwgMCUsIDApIGNhbGMoMTAwJSAtIDZweCksXG5cdFx0dmFyKC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbi1icmFja2V0cykgY2FsYygxMDAlIC0gNXB4KSxcblx0XHR2YXIoLS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uLWJyYWNrZXRzKSAxMDAlXG5cdCkgMTtcbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4uY2stZWRpdG9yX19lZGl0YWJsZSAucmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbiB7XG5cdFx0dHJhbnNpdGlvbjogbm9uZTtcbn1cblx0fVxuLmNrLWVkaXRvcl9fZWRpdGFibGUgLnJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24ucmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbl9zZWxlY3RlZCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLXNlbGVjdGVkLWV4Y2VwdGlvbi1iYWNrZ3JvdW5kKTtcblx0XHRib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudChcblx0XHRcdHRvIHJpZ2h0LFxuXHRcdFx0dmFyKC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLXNlbGVjdGVkLWV4Y2VwdGlvbi1icmFja2V0cykgMCUsXG5cdFx0XHR2YXIoLS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctc2VsZWN0ZWQtZXhjZXB0aW9uLWJyYWNrZXRzKSA1cHgsXG5cdFx0XHR2YXIoLS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctc2VsZWN0ZWQtZXhjZXB0aW9uLWJyYWNrZXRzKSBjYWxjKDEwMCUgLSA1cHgpLFxuXHRcdFx0dmFyKC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLXNlbGVjdGVkLWV4Y2VwdGlvbi1icmFja2V0cykgMTAwJVxuXHRcdCkgMTtcblx0fVxuLmNrLWVkaXRvcl9fZWRpdGFibGUgLnJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24ucmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbl9jb2xsYXBzZWQge1xuXHRcdC8qIEVtcHR5IGV4Y2VwdGlvbiBzaG91bGQgaGF2ZSB0aGUgc2FtZSB3aWR0aCBhcyBleGNlcHRpb24gd2l0aCBhdCBsZWFzdCAxIGNoYXIgKi9cblx0XHRwYWRkaW5nLWxlZnQ6IDFjaDtcblx0fVxuLmNrLXJlc3RyaWN0ZWQtZWRpdGluZ19tb2RlX3Jlc3RyaWN0ZWQge1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG5cblx0LyogV2UgYWxzbyBoYXZlIHRvIG92ZXJyaWRlIGFsbCBlbGVtZW50cyBpbnNpZGUgdGhlIHJlc3RyaWN0ZWQgZWRpdGFibGUgdG8gcHJldmVudCBjdXJzb3Igc3dpdGNoaW5nIGJldHdlZW4gZGVmYXVsdCBhbmQgdGV4dFxuXHRkdXJpbmcgdGhlIHBvaW50ZXIgbW92ZW1lbnQuICovXG59XG4uY2stcmVzdHJpY3RlZC1lZGl0aW5nX21vZGVfcmVzdHJpY3RlZCAqIHtcblx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cdH1cbi5jay1yZXN0cmljdGVkLWVkaXRpbmdfbW9kZV9yZXN0cmljdGVkIC5yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uIHtcblx0XHRjdXJzb3I6IHRleHQ7XG5cdH1cbi5jay1yZXN0cmljdGVkLWVkaXRpbmdfbW9kZV9yZXN0cmljdGVkIC5yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uICoge1xuXHRcdFx0Y3Vyc29yOiB0ZXh0O1xuXHRcdH1cbi5jay1yZXN0cmljdGVkLWVkaXRpbmdfbW9kZV9yZXN0cmljdGVkIC5yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24taG92ZXItYmFja2dyb3VuZCk7XG5cdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cbjpyb290IHtcblx0LS1jay1jaGFyYWN0ZXItZ3JpZC10aWxlLXNpemU6IDI0cHg7XG59XG4uY2suY2stY2hhcmFjdGVyLWdyaWQge1xuXHRvdmVyZmxvdy15OiBhdXRvO1xuXHRvdmVyZmxvdy14OiBoaWRkZW47XG59XG4uY2suY2stY2hhcmFjdGVyLWdyaWQgLmNrLWNoYXJhY3Rlci1ncmlkX190aWxlcyB7XG5cdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgodmFyKC0tY2stY2hhcmFjdGVyLWdyaWQtdGlsZS1zaXplKSwgMWZyKSk7XG5cdFx0bWFyZ2luOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHRncmlkLWdhcDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdH1cbi5jay5jay1jaGFyYWN0ZXItZ3JpZCAuY2stY2hhcmFjdGVyLWdyaWRfX3RpbGUge1xuXHRcdHdpZHRoOiB2YXIoLS1jay1jaGFyYWN0ZXItZ3JpZC10aWxlLXNpemUpO1xuXHRcdGhlaWdodDogdmFyKC0tY2stY2hhcmFjdGVyLWdyaWQtdGlsZS1zaXplKTtcblx0XHRtaW4td2lkdGg6IHZhcigtLWNrLWNoYXJhY3Rlci1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0bWluLWhlaWdodDogdmFyKC0tY2stY2hhcmFjdGVyLWdyaWQtdGlsZS1zaXplKTtcblx0XHRmb250LXNpemU6IDEuNWVtO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0dHJhbnNpdGlvbjogLjJzIGVhc2UgYm94LXNoYWRvdztcblx0XHRib3JkZXI6IDA7XG5cdH1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4uY2suY2stY2hhcmFjdGVyLWdyaWQgLmNrLWNoYXJhY3Rlci1ncmlkX190aWxlIHtcblx0XHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdH1cblx0XHR9XG4uY2suY2stY2hhcmFjdGVyLWdyaWQgLmNrLWNoYXJhY3Rlci1ncmlkX190aWxlOmZvY3VzOm5vdCggLmNrLWRpc2FibGVkICksXG5cdFx0LmNrLmNrLWNoYXJhY3Rlci1ncmlkIC5jay1jaGFyYWN0ZXItZ3JpZF9fdGlsZTpob3Zlcjpub3QoIC5jay1kaXNhYmxlZCApIHtcblx0XHRcdC8qIERpc2FibGUgdGhlIGRlZmF1bHQgLmNrLWJ1dHRvbidzIGJvcmRlciByaW5nLiAqL1xuXHRcdFx0Ym9yZGVyOiAwO1xuXHRcdFx0Ym94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCksIDAgMCAwIDJweCB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHRcdH1cbi8qIE1ha2Ugc3VyZSB0aGUgZ2x5cGggaXMgcmVuZGVyZWQgaW4gdGhlIGNlbnRlciBvZiB0aGUgYnV0dG9uICovXG4uY2suY2stY2hhcmFjdGVyLWdyaWQgLmNrLWNoYXJhY3Rlci1ncmlkX190aWxlIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1jay1jaGFyYWN0ZXItZ3JpZC10aWxlLXNpemUpO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4uY2suY2stY2hhcmFjdGVyLWluZm8ge1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcbn1cbi5jay5jay1jaGFyYWN0ZXItaW5mbyA+ICoge1xuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1jay1mb250LXNpemUtc21hbGwpO1xuXHR9XG4uY2suY2stY2hhcmFjdGVyLWluZm8gLmNrLWNoYXJhY3Rlci1pbmZvX19uYW1lIHtcblx0XHRtYXgtd2lkdGg6IDI4MHB4O1xuXHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdH1cbi5jay5jay1jaGFyYWN0ZXItaW5mbyAuY2stY2hhcmFjdGVyLWluZm9fX2NvZGUge1xuXHRcdG9wYWNpdHk6IC42O1xuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4uY2suY2stc3BlY2lhbC1jaGFyYWN0ZXJzLW5hdmlnYXRpb24gPiAuY2stbGFiZWwge1xuXHRcdG1heC13aWR0aDogMTYwcHg7XG5cdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0fVxuLmNrLmNrLXNwZWNpYWwtY2hhcmFjdGVycy1uYXZpZ2F0aW9uID4gLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwge1xuXHRcdC8qIFRoZXJlIGNvdWxkIGJlIGRvemVucyBvZiBjYXRlZ29yaWVzIGF2YWlsYWJsZS4gVXNlIHNjcm9sbCB0byBwcmV2ZW50IGEgMTBlNnB4IGRyb3Bkb3duLiAqL1xuXHRcdG1heC1oZWlnaHQ6IDI1MHB4O1xuXHRcdG92ZXJmbG93LXk6IGF1dG87XG5cdFx0b3ZlcmZsb3cteDogaGlkZGVuO1xuXHR9XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuLmNrLmNrLXNwZWNpYWwtY2hhcmFjdGVycy1uYXZpZ2F0aW9uIHtcblx0XHRtYXgtd2lkdGg6IDE5MHB4O1xufVxuXG5cdFx0LmNrLmNrLXNwZWNpYWwtY2hhcmFjdGVycy1uYXZpZ2F0aW9uID4gLmNrLWZvcm1fX2hlYWRlcl9fbGFiZWwge1xuXHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdH1cblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi5jay5jay1kcm9wZG93bi5jay1zdHlsZS1kcm9wZG93bi5jay1zdHlsZS1kcm9wZG93bl9tdWx0aXBsZS1hY3RpdmUgPiAuY2stYnV0dG9uID4gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRmb250LXN0eWxlOiBpdGFsaWM7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLXN0eWxlLXBhbmVsLWJ1dHRvbi13aWR0aDogMTIwcHg7XG5cdC0tY2stc3R5bGUtcGFuZWwtYnV0dG9uLWhlaWdodDogODBweDtcblx0LS1jay1zdHlsZS1wYW5lbC1idXR0b24tbGFiZWwtYmFja2dyb3VuZDogaHNsKDAsIDAlLCA5NC4xJSk7XG5cdC0tY2stc3R5bGUtcGFuZWwtYnV0dG9uLWhvdmVyLWxhYmVsLWJhY2tncm91bmQ6IGhzbCgwLCAwJSwgOTIuMSUpO1xuXHQtLWNrLXN0eWxlLXBhbmVsLWJ1dHRvbi1ob3Zlci1ib3JkZXItY29sb3I6IGhzbCgwLCAwJSwgNzAlKTtcbn1cbi5jay5jay1zdHlsZS1wYW5lbCAuY2stc3R5bGUtZ3JpZCB7XG5cdHJvdy1nYXA6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRjb2x1bW4tZ2FwOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcbn1cbi5jay5jay1zdHlsZS1wYW5lbCAuY2stc3R5bGUtZ3JpZCAuY2stc3R5bGUtZ3JpZF9fYnV0dG9uIHtcblx0XHQtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWhvdmVyLWJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdFx0LS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1hY3RpdmUtYmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblxuXHRcdHBhZGRpbmc6IDA7XG5cdFx0d2lkdGg6IHZhcigtLWNrLXN0eWxlLXBhbmVsLWJ1dHRvbi13aWR0aCk7XG5cdFx0aGVpZ2h0OiB2YXIoLS1jay1zdHlsZS1wYW5lbC1idXR0b24taGVpZ2h0KTtcblxuXHRcdC8qIExldCBkZWZhdWx0IC5jay1idXR0b24gOmZvY3VzIHN0eWxlcyBhcHBseSAqL1xuXHR9XG4uY2suY2stc3R5bGUtcGFuZWwgLmNrLXN0eWxlLWdyaWQgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbjpub3QoOmZvY3VzKSB7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0fVxuLmNrLmNrLXN0eWxlLXBhbmVsIC5jay1zdHlsZS1ncmlkIC5jay1zdHlsZS1ncmlkX19idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0aGVpZ2h0OiAyMnB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDIycHg7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdHBhZGRpbmc6IDAgdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdFx0ZmxleC1zaHJpbms6IDA7XG5cdFx0fVxuLmNrLmNrLXN0eWxlLXBhbmVsIC5jay1zdHlsZS1ncmlkIC5jay1zdHlsZS1ncmlkX19idXR0b24gLmNrLXN0eWxlLWdyaWRfX2J1dHRvbl9fcHJldmlldyB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHRvcGFjaXR5OiAuOTtcblxuXHRcdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHRcdGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdFx0fVxuLmNrLmNrLXN0eWxlLXBhbmVsIC5jay1zdHlsZS1ncmlkIC5jay1zdHlsZS1ncmlkX19idXR0b24uY2stZGlzYWJsZWQge1xuXHRcdFx0LS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1kaXNhYmxlZC1iYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWZvcmVncm91bmQpO1xuXG5cdFx0XHQvKiBMZXQgZGVmYXVsdCAuY2stYnV0dG9uIDpmb2N1cyBzdHlsZXMgYXBwbHkgKi9cblx0XHR9XG4uY2suY2stc3R5bGUtcGFuZWwgLmNrLXN0eWxlLWdyaWQgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbi5jay1kaXNhYmxlZDpub3QoOmZvY3VzKSB7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stc3R5bGUtcGFuZWwtYnV0dG9uLWxhYmVsLWJhY2tncm91bmQpO1xuXHRcdFx0fVxuLmNrLmNrLXN0eWxlLXBhbmVsIC5jay1zdHlsZS1ncmlkIC5jay1zdHlsZS1ncmlkX19idXR0b24uY2stZGlzYWJsZWQgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbl9fcHJldmlldyB7XG5cdFx0XHRcdG9wYWNpdHk6IC40O1xuXG5cdFx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1mb3JlZ3JvdW5kKTtcblx0XHRcdFx0ZmlsdGVyOiBzYXR1cmF0ZSguMyk7XG5cdFx0XHR9XG4uY2suY2stc3R5bGUtcGFuZWwgLmNrLXN0eWxlLWdyaWQgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbi5jay1vbiB7XG5cdFx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtYWN0aXZlKTtcblx0XHR9XG4uY2suY2stc3R5bGUtcGFuZWwgLmNrLXN0eWxlLWdyaWQgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbi5jay1vbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRcdGJveC1zaGFkb3c6IDAgLTFweCAwIHZhcigtLWNrLWNvbG9yLWJhc2UtYWN0aXZlKTtcblx0XHRcdFx0ei1pbmRleDogMTsgLyogU3RheSBvbiB0b3Agb2YgdGhlIHByZXZpZXcgd2l0aCB0aGUgc2hhZG93LiAqL1xuXHRcdFx0fVxuLmNrLmNrLXN0eWxlLXBhbmVsIC5jay1zdHlsZS1ncmlkIC5jay1zdHlsZS1ncmlkX19idXR0b24uY2stb246aG92ZXIge1xuXHRcdFx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtYWN0aXZlLWZvY3VzKTtcblx0XHRcdH1cbi5jay5jay1zdHlsZS1wYW5lbCAuY2stc3R5bGUtZ3JpZCAuY2stc3R5bGUtZ3JpZF9fYnV0dG9uOm5vdCguY2stb24pIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stc3R5bGUtcGFuZWwtYnV0dG9uLWxhYmVsLWJhY2tncm91bmQpO1xuXHRcdFx0fVxuLmNrLmNrLXN0eWxlLXBhbmVsIC5jay1zdHlsZS1ncmlkIC5jay1zdHlsZS1ncmlkX19idXR0b246bm90KC5jay1vbik6aG92ZXIgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1zdHlsZS1wYW5lbC1idXR0b24taG92ZXItbGFiZWwtYmFja2dyb3VuZCk7XG5cdFx0XHR9XG4uY2suY2stc3R5bGUtcGFuZWwgLmNrLXN0eWxlLWdyaWQgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbjpob3Zlcjpub3QoLmNrLWRpc2FibGVkKTpub3QoLmNrLW9uKSB7XG5cdFx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLXN0eWxlLXBhbmVsLWJ1dHRvbi1ob3Zlci1ib3JkZXItY29sb3IpO1xuXHRcdH1cbi5jay5jay1zdHlsZS1wYW5lbCAuY2stc3R5bGUtZ3JpZCAuY2stc3R5bGUtZ3JpZF9fYnV0dG9uOmhvdmVyOm5vdCguY2stZGlzYWJsZWQpOm5vdCguY2stb24pIC5jay1zdHlsZS1ncmlkX19idXR0b25fX3ByZXZpZXcge1xuXHRcdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi5jay5jay1zdHlsZS1wYW5lbCAuY2stc3R5bGUtcGFuZWxfX3N0eWxlLWdyb3VwID4gLmNrLWxhYmVsIHtcblx0XHRtYXJnaW46IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIDA7XG5cdH1cbi5jay5jay1zdHlsZS1wYW5lbCAuY2stc3R5bGUtcGFuZWxfX3N0eWxlLWdyb3VwOmZpcnN0LWNoaWxkID4gLmNrLWxhYmVsIHtcblx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1zdHlsZS1wYW5lbC1tYXgtaGVpZ2h0OiA0NzBweDtcbn1cbi5jay5jay1zdHlsZS1wYW5lbCB7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRvdmVyZmxvdy15OiBhdXRvO1xuXHRtYXgtaGVpZ2h0OiB2YXIoLS1jay1zdHlsZS1wYW5lbC1tYXgtaGVpZ2h0KTtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG5bZGlyPVwibHRyXCJdIC5jay5jay1pbnB1dC1jb2xvciA+IC5jay5jay1pbnB1dC10ZXh0IHtcblx0XHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWlucHV0LWNvbG9yID4gLmNrLmNrLWlucHV0LXRleHQge1xuXHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdH1cbi8qIE1ha2Ugc3VyZSB0aGUgZm9jdXNlZCBpbnB1dCBpcyBhbHdheXMgb24gdG9wIG9mIHRoZSBkcm9wZG93biBidXR0b24gc28gaXRzXG5cdFx0ICAgb3V0bGluZSBhbmQgYm9yZGVyIGFyZSBuZXZlciBjcm9wcGVkIChhbHNvIHdoZW4gdGhlIGlucHV0IGlzIHJlYWQtb25seSkuICovXG4uY2suY2staW5wdXQtY29sb3IgPiAuY2suY2staW5wdXQtdGV4dDpmb2N1cyB7XG5cdFx0XHR6LWluZGV4OiAwO1xuXHRcdH1cbi5jay5jay1pbnB1dC1jb2xvciA+IC5jay5jay1kcm9wZG93biA+IC5jay5jay1idXR0b24uY2staW5wdXQtY29sb3JfX2J1dHRvbiB7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWlucHV0LWNvbG9yID4gLmNrLmNrLWRyb3Bkb3duID4gLmNrLmNrLWJ1dHRvbi5jay1pbnB1dC1jb2xvcl9fYnV0dG9uIHtcblx0XHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2staW5wdXQtY29sb3IgPiAuY2suY2stZHJvcGRvd24gPiAuY2suY2stYnV0dG9uLmNrLWlucHV0LWNvbG9yX19idXR0b246bm90KDpmb2N1cykge1xuXHRcdFx0XHRcdGJvcmRlci1sZWZ0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWlucHV0LWNvbG9yID4gLmNrLmNrLWRyb3Bkb3duID4gLmNrLmNrLWJ1dHRvbi5jay1pbnB1dC1jb2xvcl9fYnV0dG9uIHtcblx0XHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdFx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1pbnB1dC1jb2xvciA+IC5jay5jay1kcm9wZG93biA+IC5jay5jay1idXR0b24uY2staW5wdXQtY29sb3JfX2J1dHRvbjpub3QoOmZvY3VzKSB7XG5cdFx0XHRcdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdH1cbi5jay5jay1pbnB1dC1jb2xvciA+IC5jay5jay1kcm9wZG93biA+IC5jay5jay1idXR0b24uY2staW5wdXQtY29sb3JfX2J1dHRvbi5jay1kaXNhYmxlZCB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWlucHV0LWRpc2FibGVkLWJhY2tncm91bmQpO1xuXHRcdFx0fVxuLmNrLmNrLWlucHV0LWNvbG9yID4gLmNrLmNrLWRyb3Bkb3duID4gLmNrLmNrLWJ1dHRvbi5jay1pbnB1dC1jb2xvcl9fYnV0dG9uID4gLmNrLmNrLWlucHV0LWNvbG9yX19idXR0b25fX3ByZXZpZXcge1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdFx0XHRcdHdpZHRoOiAyMHB4O1xuXHRcdFx0XHRoZWlnaHQ6IDIwcHg7XG5cdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWlucHV0LWJvcmRlcik7XG5cdFx0XHR9XG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1pbnB1dC1jb2xvciA+IC5jay5jay1kcm9wZG93biA+IC5jay5jay1idXR0b24uY2staW5wdXQtY29sb3JfX2J1dHRvbiA+IC5jay5jay1pbnB1dC1jb2xvcl9fYnV0dG9uX19wcmV2aWV3LFxuXHQuY2suY2staW5wdXQtY29sb3IgPiAuY2suY2stZHJvcGRvd24gPiAuY2suY2stYnV0dG9uLmNrLWlucHV0LWNvbG9yX19idXR0b24gPiAuY2suY2staW5wdXQtY29sb3JfX2J1dHRvbl9fcHJldmlldy5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHR9XG4uY2suY2staW5wdXQtY29sb3IgPiAuY2suY2stZHJvcGRvd24gPiAuY2suY2stYnV0dG9uLmNrLWlucHV0LWNvbG9yX19idXR0b24gPiAuY2suY2staW5wdXQtY29sb3JfX2J1dHRvbl9fcHJldmlldyA+IC5jay5jay1pbnB1dC1jb2xvcl9fYnV0dG9uX19wcmV2aWV3X19uby1jb2xvci1pbmRpY2F0b3Ige1xuXHRcdFx0XHRcdHRvcDogLTMwJTtcblx0XHRcdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHRcdFx0aGVpZ2h0OiAxNTAlO1xuXHRcdFx0XHRcdHdpZHRoOiA4JTtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiBoc2woMCwgMTAwJSwgNTAlKTtcblx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiAycHg7XG5cdFx0XHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuXHRcdFx0XHRcdHRyYW5zZm9ybS1vcmlnaW46IDUwJTtcblx0XHRcdFx0fVxuLmNrLmNrLWlucHV0LWNvbG9yIC5jay5jay1pbnB1dC1jb2xvcl9fcmVtb3ZlLWNvbG9yIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRwYWRkaW5nOiBjYWxjKHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpIC8gMikgdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG4uY2suY2staW5wdXQtY29sb3IgLmNrLmNrLWlucHV0LWNvbG9yX19yZW1vdmUtY29sb3I6bm90KDpmb2N1cykge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWlucHV0LWJvcmRlcik7XG5cdFx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2staW5wdXQtY29sb3IgLmNrLmNrLWlucHV0LWNvbG9yX19yZW1vdmUtY29sb3Ige1xuXHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWlucHV0LWNvbG9yIC5jay5jay1pbnB1dC1jb2xvcl9fcmVtb3ZlLWNvbG9yIHtcblx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdH1cbi5jay5jay1pbnB1dC1jb2xvciAuY2suY2staW5wdXQtY29sb3JfX3JlbW92ZS1jb2xvciAuY2suY2staWNvbiB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWlucHV0LWNvbG9yIC5jay5jay1pbnB1dC1jb2xvcl9fcmVtb3ZlLWNvbG9yIC5jay5jay1pY29uIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyogSWdub3JlIGxhYmVscyB0aGF0IHdvcmsgYXMgZmllbGRzZXQgbGVnZW5kcyAqL1xuLmNrLmNrLWZvcm1fX3JvdyA+ICo6bm90KC5jay1sYWJlbCkgKyAqIHtcblx0XHRcdG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdH1cbi5jay5jay1mb3JtX19yb3cgPiAuY2stbGFiZWwge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdG1pbi13aWR0aDogMTAwJTtcblx0fVxuLmNrLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19hY3Rpb24tcm93IHtcblx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0fVxuLmNrLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19hY3Rpb24tcm93IC5jay1idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLXRleHQpO1xuXHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLXBhZGRpbmc6IDEwcHg7XG5cdC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWJveC1oZWlnaHQ6IDExcHg7XG5cdC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWJveC13aWR0aDogMTJweDtcblx0LS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LW1hcmdpbjogMXB4O1xufVxuLmNrIC5jay1pbnNlcnQtdGFibGUtZHJvcGRvd25fX2dyaWQge1xuXHQvKiBUaGUgd2lkdGggb2YgYSBjb250YWluZXIgc2hvdWxkIG1hdGNoIDEwIGl0ZW1zIGluIGEgcm93IHNvIHRoZXJlIHdpbGwgYmUgYSAxMHgxMCBncmlkLiAqL1xuXHR3aWR0aDogY2FsYyh2YXIoLS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LXdpZHRoKSAqIDEwICsgdmFyKC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWJveC1tYXJnaW4pICogMjAgKyB2YXIoLS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tcGFkZGluZykgKiAyKTtcblx0cGFkZGluZzogdmFyKC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLXBhZGRpbmcpIHZhcigtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1wYWRkaW5nKSAwO1xufVxuLmNrIC5jay1pbnNlcnQtdGFibGUtZHJvcGRvd25fX2xhYmVsLFxuLmNrW2Rpcj1ydGxdIC5jay1pbnNlcnQtdGFibGUtZHJvcGRvd25fX2xhYmVsIHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmNrIC5jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tZ3JpZC1ib3gge1xuXHRtaW4td2lkdGg6IHZhcigtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1ib3gtd2lkdGgpO1xuXHRtaW4taGVpZ2h0OiB2YXIoLS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LWhlaWdodCk7XG5cdG1hcmdpbjogdmFyKC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWJveC1tYXJnaW4pO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdGJvcmRlci1yYWRpdXM6IDFweDtcblx0b3V0bGluZTogbm9uZTtcblx0dHJhbnNpdGlvbjogbm9uZTtcbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4uY2sgLmNrLWluc2VydC10YWJsZS1kcm9wZG93bi1ncmlkLWJveCB7XG5cdFx0dHJhbnNpdGlvbjogbm9uZTtcbn1cblx0fVxuLmNrIC5jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tZ3JpZC1ib3g6Zm9jdXMge1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdH1cbi5jayAuY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWdyaWQtYm94LmNrLW9uIHtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItZm9jdXMtb3V0ZXItc2hhZG93KTtcblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi5jay5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybSB7XG5cdHdpZHRoOiAzMjBweDtcbn1cbi5jay5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtX19wYWRkaW5nLXJvdyB7XG5cdFx0XHRhbGlnbi1zZWxmOiBmbGV4LWVuZDtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHR3aWR0aDogMjUlO1xuXHRcdH1cbi5jay5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtX19hbGlnbm1lbnQtcm93IC5jay5jay10b29sYmFyIHtcblx0XHRcdFx0YmFja2dyb3VuZDogbm9uZTtcblxuXHRcdFx0XHQvKiBDb21wZW5zYXRlIGZvciBtaXNzaW5nIGlucHV0IGxhYmVsIHRoYXQgd291bGQgcHVzaCB0aGUgbWFyZ2luICh0b29sYmFyIGhhcyBubyBpbnB1dHMpLiAqL1xuXHRcdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stY29sb3Itc2VsZWN0b3ItZm9jdXNlZC1jZWxsLWJhY2tncm91bmQ6IGhzbGEoMjEyLCA5MCUsIDgwJSwgLjMpO1xuXHQtLWNrLXRhYmxlLWNvbnRlbnQtZGVmYXVsdC1ib3JkZXItY29sb3I6IGhzbCgwLCAwJSwgODMlKTtcbn1cbi8qIERhc2hlZCBvdXRsaW5lIGZvciB0YWJsZSB3aXRob3V0IGFueSBib3JkZXIuICovXG4uY2std2lkZ2V0LnRhYmxlIHRhYmxlW3N0eWxlKj1cImJvcmRlcjpub25lXCJdLFxuXHQuY2std2lkZ2V0LnRhYmxlIHRhYmxlW3N0eWxlKj1cImJvcmRlci1zdHlsZTpub25lXCJdIHtcblx0XHRvdXRsaW5lOiB2YXIoLS1jay10YWJsZS1jb250ZW50LWRlZmF1bHQtYm9yZGVyLWNvbG9yKSAxcHggZGFzaGVkO1xuXHR9XG4vKipcblx0XHQgKiBXaGlsZSBzZXR0aW5nIG91dGxpbmUgaXMgZmluZSwgdGhlIGJvcmRlciBzaG91bGQgbm90IGJlIG1vZGlmaWVkIGhlcmVcblx0XHQgKiBiZWNhdXNlIGl0IG92ZXJyaWRlcyB0aGUgZGVmYXVsdCB0YWJsZSBjZWxsIGJvcmRlciBjb2xvciB3aGljaCBpcyBub3QgZXhwZWN0ZWQuXG5cdFx0ICogU28gZG8gbm90IHVzZSBgQG1peGluIGNrLWZvY3VzLXJpbmc7YCBoZXJlLCBvciBhbnkgb3RoZXIgYm9yZGVyIHN0eWxlcy5cblx0XHQgKiBTZWUgbW9yZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTY5Nzlcblx0XHQgKi9cbi5jay13aWRnZXQudGFibGUgdGQuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUsIC5jay13aWRnZXQudGFibGUgdGguY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUge1xuXHRcdFx0b3V0bGluZTogdW5zZXQ7XG5cdFx0fVxuLmNrLXdpZGdldC50YWJsZSB0ZC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZS5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZV9mb2N1c2VkOm5vdCguY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZCksXG5cdFx0XHRcdC5jay13aWRnZXQudGFibGUgdGguY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGVfZm9jdXNlZDpub3QoLmNrLWVkaXRvcl9fZWRpdGFibGVfc2VsZWN0ZWQpLFxuXHRcdFx0XHQuY2std2lkZ2V0LnRhYmxlIHRkLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlOm5vdCguY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZCk6Zm9jdXMsXG5cdFx0XHRcdC5jay13aWRnZXQudGFibGUgdGguY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGU6bm90KC5jay1lZGl0b3JfX2VkaXRhYmxlX3NlbGVjdGVkKTpmb2N1cyB7XG5cdFx0XHRcdFx0LyogQSB2ZXJ5IHNsaWdodCBiYWNrZ3JvdW5kIHRvIGhpZ2hsaWdodCB0aGUgZm9jdXNlZCBjZWxsICovXG5cdFx0XHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itc2VsZWN0b3ItZm9jdXNlZC1jZWxsLWJhY2tncm91bmQpO1xuXHRcdFx0XHRcdG91dGxpbmU6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHRcdFx0XHRcdG91dGxpbmUtb2Zmc2V0OiAtMXB4OyAvKiBwcm9ncmVzc2l2ZSBlbmhhbmNlbWVudCAtIG5vIElFIHN1cHBvcnQgKi9cblx0XHRcdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLXRhYmxlLXByb3BlcnRpZXMtZXJyb3ItYXJyb3ctc2l6ZTogNnB4O1xuXHQtLWNrLXRhYmxlLXByb3BlcnRpZXMtbWluLWVycm9yLXdpZHRoOiAxNTBweDtcbn1cbi5jay5jay10YWJsZS1mb3JtIC5jay1mb3JtX19yb3cuY2stdGFibGUtZm9ybV9fYm9yZGVyLXJvdyAuY2stbGFiZWxlZC1maWVsZC12aWV3ID4gLmNrLWxhYmVsIHtcblx0XHRcdFx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS10aW55KTtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdH1cbi5jay5jay10YWJsZS1mb3JtIC5jay1mb3JtX19yb3cuY2stdGFibGUtZm9ybV9fYm9yZGVyLXJvdyAuY2stdGFibGUtZm9ybV9fYm9yZGVyLXN0eWxlLFxuXHRcdFx0LmNrLmNrLXRhYmxlLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19ib3JkZXItcm93IC5jay10YWJsZS1mb3JtX19ib3JkZXItd2lkdGgge1xuXHRcdFx0XHR3aWR0aDogODBweDtcblx0XHRcdFx0bWluLXdpZHRoOiA4MHB4O1xuXHRcdFx0XHRtYXgtd2lkdGg6IDgwcHg7XG5cdFx0XHR9XG4uY2suY2stdGFibGUtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbnMtcm93IHtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0fVxuLmNrLmNrLXRhYmxlLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19kaW1lbnNpb25zLXJvdyAuY2stdGFibGUtZm9ybV9fZGltZW5zaW9ucy1yb3dfX3dpZHRoLFxuXHRcdFx0LmNrLmNrLXRhYmxlLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19kaW1lbnNpb25zLXJvdyAuY2stdGFibGUtZm9ybV9fZGltZW5zaW9ucy1yb3dfX2hlaWdodCB7XG5cdFx0XHRcdG1hcmdpbjogMFxuXHRcdFx0fVxuLmNrLmNrLXRhYmxlLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19kaW1lbnNpb25zLXJvdyAuY2stdGFibGUtZm9ybV9fZGltZW5zaW9uLW9wZXJhdG9yIHtcblx0XHRcdFx0YWxpZ24tc2VsZjogZmxleC1lbmQ7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0aGVpZ2h0OiB2YXIoLS1jay11aS1jb21wb25lbnQtbWluLWhlaWdodCk7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1jay11aS1jb21wb25lbnQtbWluLWhlaWdodCk7XG5cdFx0XHRcdG1hcmdpbjogMCB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHRcdH1cbi5jay5jay10YWJsZS1mb3JtIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdHBhZGRpbmctdG9wOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0fVxuLmNrLmNrLXRhYmxlLWZvcm0gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXMge1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1lcnJvcik7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRcdG1pbi13aWR0aDogdmFyKC0tY2stdGFibGUtcHJvcGVydGllcy1taW4tZXJyb3Itd2lkdGgpO1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0XHRhbmltYXRpb246IGNrLXRhYmxlLWZvcm0tbGFiZWxlZC12aWV3LXN0YXR1cy1hcHBlYXIgLjE1cyBlYXNlIGJvdGg7XG5cdFx0fVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stdGFibGUtZm9ybSAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX3N0YXR1cyxcblx0LmNrLmNrLXRhYmxlLWZvcm0gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXMuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0fVxuLyogVGhlIGFycm93IHBvaW50aW5nIHRvd2FyZHMgdGhlIGZpZWxkLiAqL1xuLmNrLmNrLXRhYmxlLWZvcm0gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXM6OmFmdGVyIHtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS1jay1jb2xvci1iYXNlLWVycm9yKSB0cmFuc3BhcmVudDtcblx0XHRcdFx0Ym9yZGVyLXdpZHRoOiAwIHZhcigtLWNrLXRhYmxlLXByb3BlcnRpZXMtZXJyb3ItYXJyb3ctc2l6ZSkgdmFyKC0tY2stdGFibGUtcHJvcGVydGllcy1lcnJvci1hcnJvdy1zaXplKSB2YXIoLS1jay10YWJsZS1wcm9wZXJ0aWVzLWVycm9yLWFycm93LXNpemUpO1xuXHRcdFx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdFx0fVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jay5jay10YWJsZS1mb3JtIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19fc3RhdHVzIHtcblx0XHRcdFx0YW5pbWF0aW9uOiBub25lO1xuXHRcdH1cblx0XHRcdH1cbi8qIEhpZGUgdGhlIGVycm9yIGJhbGxvb24gd2hlbiB0aGUgZmllbGQgaXMgYmx1cnJlZC4gTWFrZXMgdGhlIGV4cGVyaWVuY2UgbXVjaCBtb3JlIGNsZWFyLiAqL1xuLmNrLmNrLXRhYmxlLWZvcm0gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2staW5wdXQuY2stZXJyb3I6bm90KDpmb2N1cykgKyAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXMge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5Aa2V5ZnJhbWVzIGNrLXRhYmxlLWZvcm0tbGFiZWxlZC12aWV3LXN0YXR1cy1hcHBlYXIge1xuXHQwJSB7XG5cdFx0b3BhY2l0eTogMDtcblx0fVxuXG5cdDEwMCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4uY2suY2stdGFibGUtcHJvcGVydGllcy1mb3JtIHtcblx0d2lkdGg6IDMyMHB4O1xufVxuLmNrLmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybV9fYWxpZ25tZW50LXJvdyB7XG5cdFx0XHRhbGlnbi1zZWxmOiBmbGV4LWVuZDtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0fVxuLmNrLmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybV9fYWxpZ25tZW50LXJvdyAuY2suY2stdG9vbGJhciB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cblx0XHRcdFx0LyogQ29tcGVuc2F0ZSBmb3IgbWlzc2luZyBpbnB1dCBsYWJlbCB0aGF0IHdvdWxkIHB1c2ggdGhlIG1hcmdpbiAodG9vbGJhciBoYXMgbm8gaW5wdXRzKS4gKi9cblx0XHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHR9XG4uY2suY2stdGFibGUtcHJvcGVydGllcy1mb3JtIC5jay1mb3JtX19yb3cuY2stdGFibGUtcHJvcGVydGllcy1mb3JtX19hbGlnbm1lbnQtcm93IC5jay5jay10b29sYmFyIC5jay10b29sYmFyX19pdGVtcyA+ICoge1xuXHRcdFx0XHRcdHdpZHRoOiA0MHB4O1xuXHRcdFx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLXRhYmxlLXNlbGVjdGVkLWNlbGwtYmFja2dyb3VuZDogaHNsYSgyMDgsIDkwJSwgODAlLCAuMyk7XG59XG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgdGFibGUgdGQuY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZCxcblx0LmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlIHRhYmxlIHRoLmNrLWVkaXRvcl9fZWRpdGFibGVfc2VsZWN0ZWQge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRjYXJldC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0Ym94LXNoYWRvdzogdW5zZXQ7XG5cblx0XHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy82NDQ2ICovXG5cdH1cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZSB0YWJsZSB0ZC5jay1lZGl0b3JfX2VkaXRhYmxlX3NlbGVjdGVkOmFmdGVyLCAuY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgdGFibGUgdGguY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZDphZnRlciB7XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stdGFibGUtc2VsZWN0ZWQtY2VsbC1iYWNrZ3JvdW5kKTtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogMDtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRyaWdodDogMDtcblx0XHRcdGJvdHRvbTogMDtcblx0XHR9XG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgdGFibGUgdGQuY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZCA6OnNlbGVjdGlvbixcblx0XHQuY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgdGFibGUgdGguY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZCA6OnNlbGVjdGlvbixcblx0XHQuY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgdGFibGUgdGQuY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZDpmb2N1cyxcblx0XHQuY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgdGFibGUgdGguY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZDpmb2N1cyB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHR9XG4vKlxuXHRcdCAqIFRvIHJlZHVjZSB0aGUgYW1vdW50IG9mIG5vaXNlLCBhbGwgd2lkZ2V0cyBpbiB0aGUgdGFibGUgc2VsZWN0aW9uIGhhdmUgbm8gb3V0bGluZSBhbmQgbm8gc2VsZWN0aW9uIGhhbmRsZS5cblx0XHQgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTQ5MS5cblx0XHQgKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZSB0YWJsZSB0ZC5jay1lZGl0b3JfX2VkaXRhYmxlX3NlbGVjdGVkIC5jay13aWRnZXQsIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZSB0YWJsZSB0aC5jay1lZGl0b3JfX2VkaXRhYmxlX3NlbGVjdGVkIC5jay13aWRnZXQge1xuXHRcdFx0b3V0bGluZTogdW5zZXQ7XG5cdFx0fVxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlIHRhYmxlIHRkLmNrLWVkaXRvcl9fZWRpdGFibGVfc2VsZWN0ZWQgLmNrLXdpZGdldCA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUsIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZSB0YWJsZSB0aC5jay1lZGl0b3JfX2VkaXRhYmxlX3NlbGVjdGVkIC5jay13aWRnZXQgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stdGFibGUtbGF5b3V0LXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tc2l6ZTogMTZweDtcblx0LS1jay10YWJsZS1sYXlvdXQtd2lkZ2V0LXR5cGUtYXJvdW5kLWljb24td2lkdGg6IDEwcHg7XG5cdC0tY2stdGFibGUtbGF5b3V0LXdpZGdldC10eXBlLWFyb3VuZC1pY29uLWhlaWdodDogOHB4O1xuXHQtLWNrLXRhYmxlLWxheW91dC13aWRnZXQtaGFuZGxlci1pY29uLXNpemU6IDEwcHg7XG5cdC0tY2stdGFibGUtbGF5b3V0LWRlZmF1bHQtYm9yZGVyLWNvbG9yOiBoc2woMCwgMCUsIDgzJSk7XG5cbn1cbi5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZS5sYXlvdXQtdGFibGUgPiB0YWJsZSB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGhlaWdodDogMTAwJTtcblxuXHRcdFx0LyogUmVzZXR0aW5nIGBib3JkZXItY29sbGFwc2VgIHByb3BlcnR5IHRvIHRoZSB1c2VyIGFnZW50IHN0eWxlcy4gKi9cblx0XHRcdGJvcmRlci1jb2xsYXBzZTogcmV2ZXJ0O1xuXG5cdFx0XHQvKiBUaGUgZGVmYXVsdCB0YWJsZSBsYXlvdXQgc3R5bGUgaW4gdGhlIGVkaXRpbmcgdmlldyB3aGVuIHRoZSBib3JkZXIgaXMgdW5zZXQuICovXG5cdFx0fVxuLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlLmxheW91dC10YWJsZSA+IHRhYmxlOm5vdChcblx0XHRcdFtzdHlsZSo9XCJib3JkZXI6XCJdLFxuXHRcdFx0W3N0eWxlKj1cImJvcmRlci10b3BcIl0sXG5cdFx0XHRbc3R5bGUqPVwiYm9yZGVyLWJvdHRvbVwiXSxcblx0XHRcdFtzdHlsZSo9XCJib3JkZXItbGVmdFwiXSxcblx0XHRcdFtzdHlsZSo9XCJib3JkZXItcmlnaHRcIl0sXG5cdFx0XHRbc3R5bGUqPVwiYm9yZGVyLXdpZHRoXCJdLFxuXHRcdFx0W3N0eWxlKj1cImJvcmRlci1zdHlsZVwiXSxcblx0XHRcdFtzdHlsZSo9XCJib3JkZXItY29sb3JcIl0pIHtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRcdFx0Ym9yZGVyLXdpZHRoOiAwO1xuXHRcdFx0XHRvdXRsaW5lOiBub25lO1xuXHRcdFx0fVxuLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlLmxheW91dC10YWJsZSA+IHRhYmxlID4gdGJvZHkgPiB0ciA+IHRkIHtcblx0XHRcdGJveC1zaGFkb3c6IHJldmVydDtcblx0XHRcdHBhZGRpbmc6IHJldmVydDtcblx0XHRcdG1pbi13aWR0aDogMmVtO1xuXHRcdFx0LyogVG8gbWFrZSB0aGUgY2FyZXQgdmlzaWJsZS4gKi9cblx0XHRcdHRleHQtaW5kZW50OiAxcHg7XG5cblx0XHRcdC8qIFJlc2V0cyB0aGUgYG1pbi13aWR0aGAgc3R5bGUgYXR0cmlidXRlIHRoYXQgd2FzIGFkZGVkIGJ5IHRoZSBjb250ZW50IHRhYmxlIHN0eWxlLiAqL1xuXHRcdH1cbi5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZS5sYXlvdXQtdGFibGUgPiB0YWJsZSA+IHRib2R5ID4gdHIgPiB0ZFtzdHlsZV49XCJ3aWR0aDpcIl0sXG5cdFx0XHQuY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUubGF5b3V0LXRhYmxlID4gdGFibGUgPiB0Ym9keSA+IHRyID4gdGRbc3R5bGUqPVwiIHdpZHRoOlwiXSxcblx0XHRcdC5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZS5sYXlvdXQtdGFibGUgPiB0YWJsZSA+IHRib2R5ID4gdHIgPiB0ZFtzdHlsZSo9XCI7d2lkdGg6XCJdLFxuXHRcdFx0LmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlLmxheW91dC10YWJsZSA+IHRhYmxlID4gdGJvZHkgPiB0ciA+IHRkW3N0eWxlKj1cIid3aWR0aDpcIl0ge1xuXHRcdFx0XHRtaW4td2lkdGg6IGF1dG87XG5cdFx0XHR9XG4vKiBSZW1vdmUgdGhlIGRlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmcm9tIHRoZSBmb2N1c2VkIHRhYmxlIGNlbGwuICovXG4uY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUubGF5b3V0LXRhYmxlID4gdGFibGUgPiB0Ym9keSA+IHRyID4gdGQ6Zm9jdXMge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRcdH1cbi8qIFRoZSBkZWZhdWx0IHRhYmxlIGxheW91dCBjZWxsIHN0eWxlIGluIHRoZSBlZGl0aW5nIHZpZXcgd2hlbiB0aGUgYm9yZGVyIGlzIHVuc2V0LlxuXHRcdFx0QnV0IGl0IG5lZWQgdG8gYmUgbW9yZSBzdHJpY3QgY2F1c2Ugb2Ygc3R5bGUgYXR0cmlidXRlcyBsaWtlIGBib3JkZXItY29sbGFwc2VgLCBgYm9yZGVyLXNwYWNpbmdgLCBldGMuICovXG4uY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUubGF5b3V0LXRhYmxlID4gdGFibGUgPiB0Ym9keSA+IHRyID4gdGQ6bm90KFxuXHRcdFx0W3N0eWxlKj1cImJvcmRlcjpcIl0sXG5cdFx0XHRbc3R5bGUqPVwiYm9yZGVyLXRvcFwiXSxcblx0XHRcdFtzdHlsZSo9XCJib3JkZXItYm90dG9tXCJdLFxuXHRcdFx0W3N0eWxlKj1cImJvcmRlci1sZWZ0XCJdLFxuXHRcdFx0W3N0eWxlKj1cImJvcmRlci1yaWdodFwiXSxcblx0XHRcdFtzdHlsZSo9XCJib3JkZXItd2lkdGhcIl0sXG5cdFx0XHRbc3R5bGUqPVwiYm9yZGVyLXN0eWxlXCJdLFxuXHRcdFx0W3N0eWxlKj1cImJvcmRlci1jb2xvclwiXSkge1xuXHRcdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdFx0XHQvKiBSZXNldHRpbmcgYGJvcmRlci13aWR0aGAgcHJvcGVydHkgdG8gdGhlIHVzZXIgYWdlbnQgc3R5bGVzLiAqL1xuXHRcdFx0XHRib3JkZXItd2lkdGg6IDA7XG5cdFx0XHRcdG91dGxpbmU6IHZhcigtLWNrLXRhYmxlLWxheW91dC1kZWZhdWx0LWJvcmRlci1jb2xvcikgMXB4IGRhc2hlZDtcblx0XHRcdFx0b3V0bGluZS1vZmZzZXQ6IC0xcHg7XG5cdFx0XHR9XG4uY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUubGF5b3V0LXRhYmxlID4gdGFibGUgPiB0Ym9keSA+IHRyID4gdGQ6bm90KFxuXHRcdFx0W3N0eWxlKj1cImJvcmRlcjpcIl0sXG5cdFx0XHRbc3R5bGUqPVwiYm9yZGVyLXRvcFwiXSxcblx0XHRcdFtzdHlsZSo9XCJib3JkZXItYm90dG9tXCJdLFxuXHRcdFx0W3N0eWxlKj1cImJvcmRlci1sZWZ0XCJdLFxuXHRcdFx0W3N0eWxlKj1cImJvcmRlci1yaWdodFwiXSxcblx0XHRcdFtzdHlsZSo9XCJib3JkZXItd2lkdGhcIl0sXG5cdFx0XHRbc3R5bGUqPVwiYm9yZGVyLXN0eWxlXCJdLFxuXHRcdFx0W3N0eWxlKj1cImJvcmRlci1jb2xvclwiXSk6Zm9jdXMge1xuXHRcdFx0XHRcdG91dGxpbmU6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcikgMXB4IHNvbGlkO1xuXHRcdFx0XHR9XG4vKiBSZXNldCB0aGUgYHdpZHRoYCBhbmQgYHRleHQtaW5kZW50YCBvZiB0aGUgYm9ndXMgcGFyYWdyYXBoIGJlY2F1c2UgPHRkPiBoYXMgMXB4IHRleHQgaW5kZW50LiAqL1xuLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlLmxheW91dC10YWJsZSA+IHRhYmxlID4gdGJvZHkgPiB0ciA+IHRkID4gLmNrLXRhYmxlLWJvZ3VzLXBhcmFncmFwaCB7XG5cdFx0XHRcdHdpZHRoOiBjYWxjKDEwMCUgLSAxcHgpO1xuXHRcdFx0XHR0ZXh0LWluZGVudDogMDtcblx0XHRcdH1cbi8qIFdpZGdldCB0eXBlIGFyb3VuZCBvdmVycmlkZXMuICovXG4uY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUubGF5b3V0LXRhYmxlLmNrLXdpZGdldCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kIHtcblx0XHRcdFx0LS1jay13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXNpemU6IHZhcigtLWNrLXRhYmxlLWxheW91dC13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXNpemUpO1xuXHRcdFx0fVxuLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlLmxheW91dC10YWJsZS5jay13aWRnZXQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24uY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uX2JlZm9yZSxcblx0XHRcdFx0XHQuY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUubGF5b3V0LXRhYmxlLmNrLXdpZGdldCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbi5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b25fYWZ0ZXIge1xuXHRcdFx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuXHRcdFx0XHRcdFx0LyogU2FtZSB2YWx1ZSBhcyBpbmxpbmUtaW1hZ2Ugd2lkZ2V0IGJlY2F1c2UgaXQgaXMgYWZ0ZXIgdGhlIGlubGluZS1pbWFnZSBpbiBIVE1MIHN0cnVjdHVyZSAqL1xuXHRcdFx0XHRcdFx0ei1pbmRleDogMjtcblx0XHRcdFx0XHR9XG4uY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUubGF5b3V0LXRhYmxlLmNrLXdpZGdldCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbi5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b25fYmVmb3JlIHtcblx0XHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay10YWJsZS1sYXlvdXQtd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1zaXplKTtcblx0XHRcdFx0XHRcdGxlZnQ6IG1pbigxMCUsIDMwcHgpO1xuXHRcdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMCAwIDEwMHB4IDEwMHB4O1xuXHRcdFx0XHRcdH1cbi5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZS5sYXlvdXQtdGFibGUuY2std2lkZ2V0ID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbl9iZWZvcmU6OmFmdGVyIHtcblx0XHRcdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMCAwIDEwMHB4IDEwMHB4O1xuXHRcdFx0XHRcdFx0fVxuLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlLmxheW91dC10YWJsZS5jay13aWRnZXQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24uY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uX2FmdGVyIHtcblx0XHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDEwMHB4IDEwMHB4IDAgMDtcblx0XHRcdFx0XHR9XG4uY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUubGF5b3V0LXRhYmxlLmNrLXdpZGdldCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbi5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b25fYWZ0ZXI6OmFmdGVyIHtcblx0XHRcdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMTAwcHggMTAwcHggMCAwO1xuXHRcdFx0XHRcdFx0fVxuLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlLmxheW91dC10YWJsZS5jay13aWRnZXQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24gc3ZnIHtcblx0XHRcdFx0XHRcdHdpZHRoOiB2YXIoLS1jay10YWJsZS1sYXlvdXQtd2lkZ2V0LXR5cGUtYXJvdW5kLWljb24td2lkdGgpO1xuXHRcdFx0XHRcdFx0aGVpZ2h0OiB2YXIoLS1jay10YWJsZS1sYXlvdXQtd2lkZ2V0LXR5cGUtYXJvdW5kLWljb24taGVpZ2h0KTtcblx0XHRcdFx0XHR9XG4uY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUubGF5b3V0LXRhYmxlLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0XHRcdFx0LS1jay13aWRnZXQtaGFuZGxlci1pY29uLXNpemU6IHZhcigtLWNrLXRhYmxlLWxheW91dC13aWRnZXQtaGFuZGxlci1pY29uLXNpemUpO1xuXG5cdFx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKGNhbGMoMHB4IC0gdmFyKC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzKSkpO1xuXHRcdFx0XHRcdC8qIFZhbHVlIGluY3JlYXNlZCBieSAxIGFzIGluIHNlbGVjdGVkIGlubGluZS1pbWFnZSB3aWRnZXRcblx0XHRcdFx0XHRiZWNhdXNlIGl0IGlzIGJlZm9yZSB0aGUgaW5saW5lLWltYWdlIGluIEhUTUwgc3RydWN0dXJlLiAqL1xuXHRcdFx0XHRcdHotaW5kZXg6IDM7XG5cdFx0XHRcdH1cbi8qIFNob3cgZmFrZSBjYXJldCBvbiBib3JkZXIgbm90IGFib3ZlLiAqL1xuLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlLmxheW91dC10YWJsZS5jay13aWRnZXQuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9iZWZvcmUgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19mYWtlLWNhcmV0IHtcblx0XHRcdFx0XHRcdHRvcDogMDtcblx0XHRcdFx0XHR9XG4vKiBTaG93IGZha2UgY2FyZXQgb24gYm9yZGVyIG5vdCBiZWxvdy4gKi9cbi5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZS5sYXlvdXQtdGFibGUuY2std2lkZ2V0LmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYWZ0ZXIgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19mYWtlLWNhcmV0IHtcblx0XHRcdFx0XHRcdGJvdHRvbTogMDtcblx0XHRcdFx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSB2aXN1YWwgc3R5bGUgb2YgZm9jdXNlZCBlbGVtZW50J3MgYm9yZGVyLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIGhlbHBlciB0byBjb21iaW5lIG11bHRpcGxlIHNoYWRvd3MuXG4gKi9cbi8qKlxuICogR2l2ZXMgYW4gZWxlbWVudCBhIGRyb3Agc2hhZG93IHNvIGl0IGxvb2tzIGxpa2UgYSBmbG9hdGluZyBwYW5lbC5cbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3M6IDNweDtcblx0LS1jay13aWRnZXQtaGFuZGxlci1pY29uLXNpemU6IDE2cHg7XG5cdC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWR1cmF0aW9uOiAyMDBtcztcblx0LS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tY3VydmU6IGVhc2U7XG5cblx0LS1jay1jb2xvci13aWRnZXQtYmx1cnJlZC1ib3JkZXI6IGhzbCgwLCAwJSwgODclKTtcblx0LS1jay1jb2xvci13aWRnZXQtaG92ZXItYm9yZGVyOiBoc2woNDMsIDEwMCUsIDYyJSk7XG5cdC0tY2stY29sb3Itd2lkZ2V0LWVkaXRhYmxlLWZvY3VzLWJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3Itd2lkZ2V0LWRyYWctaGFuZGxlci1pY29uLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xufVxuLmNrIC5jay13aWRnZXQge1xuXHRvdXRsaW5lLXdpZHRoOiB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpO1xuXHRvdXRsaW5lLXN0eWxlOiBzb2xpZDtcblx0b3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdHRyYW5zaXRpb246IG91dGxpbmUtY29sb3IgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tY3VydmUpO1xufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jayAuY2std2lkZ2V0IHtcblx0XHR0cmFuc2l0aW9uOiBub25lO1xufVxuXHR9XG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQsXG5cdC5jayAuY2std2lkZ2V0LmNrLXdpZGdldF9zZWxlY3RlZDpob3ZlciB7XG5cdFx0b3V0bGluZTogdmFyKC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzKSBzb2xpZCB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHR9XG4uY2sgLmNrLXdpZGdldDpob3ZlciB7XG5cdFx0b3V0bGluZS1jb2xvcjogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWhvdmVyLWJvcmRlcik7XG5cdH1cbi5jayAuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUge1xuXHRib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuXHQvKiBUaGUgOmZvY3VzIHN0eWxlIGlzIGFwcGxpZWQgYmVmb3JlIC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZV9mb2N1c2VkIGNsYXNzIGlzIHJlbmRlcmVkIGluIHRoZSB2aWV3LlxuXHRUaGVzZSBzdHlsZXMgc2hvdyBhIGRpZmZlcmVudCBib3JkZXIgZm9yIGEgYmxpbmsgb2YgYW4gZXllLCBzbyBgOmZvY3VzYCBuZWVkIHRvIGhhdmUgc2FtZSBzdHlsZXMgYXBwbGllZC4gKi9cbn1cbi5jayAuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGVfZm9jdXNlZCxcblx0LmNrIC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZTpmb2N1cyB7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0tY2staW5uZXItc2hhZG93KSwgMCAwO1xuXHR9XG5AbWVkaWEgKGZvcmNlZC1jb2xvcnM6IG5vbmUpIHtcblx0XHQuY2sgLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlX2ZvY3VzZWQsIC5jayAuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGU6Zm9jdXMge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWVkaXRhYmxlLWZvY3VzLWJhY2tncm91bmQpO1xuXHRcdH1cblx0fVxuLyoqXG5cdFx0ICogRm9jdXMgYm9yZGVyIHNob3VsZCBub3QgYmUgYXBwbGllZCB0byB0YWJsZSBjZWxscyBiZWNhdXNlIGl0IG92ZXJyaWRlcyB0aGUgZGVmYXVsdCB0YWJsZSBjZWxsIGJvcmRlciBjb2xvci5cblx0XHQgKiBJbiBvdGhlciB3b3JkcyAtIGluIHNvbWUgc2NlbmFyaW9zLCB0aGUgcGFydCBvZiB0aGUgdGFibGUgY2VsbCBib3JkZXIgaGFzIGZvY3VzIGNvbG9yIHN0eWxlLCB3aGljaCBpcyBub3QgZXhwZWN0ZWQgYmVoYXZpb3Jcblx0XHQgKiBiZWNhdXNlIGl0IHNob3VsZCBiZSB0aGUgc2FtZSBhcyB0aGUgdGFibGUgY2VsbCBib3JkZXIgY29sb3IuXG5cdFx0ICovXG4uY2sgLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlX2ZvY3VzZWQ6bm90KHRkLCB0aCksIC5jayAuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGU6Zm9jdXM6bm90KHRkLCB0aCkge1xuXHRcdFx0LyogRGlzYWJsZSBuYXRpdmUgb3V0bGluZS4gKi9cblx0XHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0XHRib3JkZXI6IHZhcigtLWNrLWZvY3VzLXJpbmcpO1xuXHRcdH1cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUgLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0cGFkZGluZzogNHB4O1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cblx0XHQvKiBCYWNrZ3JvdW5kIGFuZCBvcGFjaXR5IHdpbGwgYmUgYW5pbWF0ZWQgYXMgdGhlIGhhbmRsZXIgc2hvd3MgdXAgb3IgdGhlIHdpZGdldCBnZXRzIHNlbGVjdGVkLiAqL1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdG9wYWNpdHk6IDA7XG5cblx0XHQvKiBUcmFuc2l0aW9uOlxuXHRcdCAgICogYmFja2dyb3VuZC1jb2xvciBmb3IgdGhlIC5jay13aWRnZXRfc2VsZWN0ZWQgc3RhdGUgY2hhbmdlLFxuXHRcdCAgICogdmlzaWJpbGl0eSBmb3IgaGlkaW5nIHRoZSBoYW5kbGVyLFxuXHRcdCAgICogb3BhY2l0eSBmb3IgdGhlIHByb3BlciBsb29rIG9mIHRoZSBpY29uIHdoZW4gdGhlIGhhbmRsZXIgZGlzYXBwZWFycy4gKi9cblx0XHR0cmFuc2l0aW9uOlxuXHRcdFx0YmFja2dyb3VuZC1jb2xvciB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSksXG5cdFx0XHR2aXNpYmlsaXR5IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlKSxcblx0XHRcdG9wYWNpdHkgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tY3VydmUpO1xuXG5cdFx0LyogTWFrZSBvbmx5IHRvcCBjb3JuZXJzIHJvdW5kLiAqL1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpIHZhcigtLWNrLWJvcmRlci1yYWRpdXMpIDAgMDtcblxuXHRcdC8qIFBsYWNlIHRoZSBkcmFnIGhhbmRsZXIgb3V0c2lkZSB0aGUgd2lkZ2V0IHdyYXBwZXIuICovXG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcblx0XHRsZWZ0OiBjYWxjKDBweCAtIHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykpO1xuXHRcdHRvcDogMDtcblx0fVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUgLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHR9XG5cdFx0fVxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIC5jay1pY29uIHtcblx0XHRcdC8qIE1ha2Ugc3VyZSB0aGUgZGltZW5zaW9ucyBvZiB0aGUgaWNvbiBhcmUgaW5kZXBlbmRlbnQgb2YgdGhlIGZvbi1zaXplIG9mIHRoZSBjb250ZW50LiAqL1xuXHRcdFx0d2lkdGg6IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWljb24tc2l6ZSk7XG5cdFx0XHRoZWlnaHQ6IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWljb24tc2l6ZSk7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWRyYWctaGFuZGxlci1pY29uLWNvbG9yKTtcblxuXHRcdFx0LyogVGhlIFwic2VsZWN0ZWRcIiBwYXJ0IG9mIHRoZSBpY29uIGlzIGludmlzaWJsZSBieSBkZWZhdWx0ICovXG5cdFx0fVxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIC5jay1pY29uIC5jay1pY29uX19zZWxlY3RlZC1pbmRpY2F0b3Ige1xuXHRcdFx0XHRvcGFjaXR5OiAwO1xuXG5cdFx0XHRcdC8qIE5vdGU6IFRoZSBhbmltYXRpb24gaXMgbG9uZ2VyIG9uIHB1cnBvc2UuIFNpbXBseSBmZWVscyBiZXR0ZXIuICovXG5cdFx0XHRcdHRyYW5zaXRpb246IG9wYWNpdHkgMzAwbXMgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlKTtcblx0XHRcdH1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUgLmNrLWljb24gLmNrLWljb25fX3NlbGVjdGVkLWluZGljYXRvciB7XG5cdFx0XHRcdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0XHRcdH1cblx0XHRcdFx0fVxuLyogQWR2ZXJ0aXNlIHVzaW5nIHRoZSBsb29rIG9mIHRoZSBpY29uIHRoYXQgb25jZSBjbGlja2VkIHRoZSBoYW5kbGVyLCB0aGUgd2lkZ2V0IHdpbGwgYmUgc2VsZWN0ZWQuICovXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGU6aG92ZXIgLmNrLWljb24gLmNrLWljb25fX3NlbGVjdGVkLWluZGljYXRvciB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cbi8qIFNob3cgdGhlIHNlbGVjdGlvbiBoYW5kbGVyIG9uIG1vdXNlIGhvdmVyIG92ZXIgdGhlIHdpZGdldCwgYnV0IG5vdCBmb3IgbmVzdGVkIHdpZGdldHMuICovXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlOmhvdmVyID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci13aWRnZXQtaG92ZXItYm9yZGVyKTtcblx0fVxuLyogU2hvdyB0aGUgc2VsZWN0aW9uIGhhbmRsZXIgd2hlbiB0aGUgd2lkZ2V0IGlzIHNlbGVjdGVkLCBidXQgbm90IGZvciBuZXN0ZWQgd2lkZ2V0cy4gKi9cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUuY2std2lkZ2V0X3NlbGVjdGVkID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSwgLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZS5jay13aWRnZXRfc2VsZWN0ZWQ6aG92ZXIgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXG5cdFx0XHQvKiBXaGVuIHRoZSB3aWRnZXQgaXMgc2VsZWN0ZWQsIG5vdGlmeSB0aGUgdXNlciB1c2luZyB0aGUgcHJvcGVyIGxvb2sgb2YgdGhlIGljb24uICovXG5cdFx0fVxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZS5jay13aWRnZXRfc2VsZWN0ZWQgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIC5jay1pY29uIC5jay1pY29uX19zZWxlY3RlZC1pbmRpY2F0b3IsIC5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUuY2std2lkZ2V0X3NlbGVjdGVkOmhvdmVyID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSAuY2staWNvbiAuY2staWNvbl9fc2VsZWN0ZWQtaW5kaWNhdG9yIHtcblx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdH1cbi8qIEluIGEgUlRMIGVudmlyb25tZW50LCBhbGlnbiB0aGUgc2VsZWN0aW9uIGhhbmRsZXIgdG8gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIHdpZGdldCAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cbi5ja1tkaXI9XCJydGxcIl0gLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRsZWZ0OiBhdXRvO1xuXHRyaWdodDogY2FsYygwcHggLSB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpKTtcbn1cbi8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzY0MTUgKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLXJlYWQtb25seSAuY2std2lkZ2V0IHtcblx0LyogUHJldmVudCB0aGUgOmhvdmVyIG91dGxpbmUgZnJvbSBzaG93aW5nIHVwIGJlY2F1c2Ugb2YgdGhlIHVzZWQgb3V0bGluZS1jb2xvciB0cmFuc2l0aW9uLiAqL1xuXHR0cmFuc2l0aW9uOiBub25lO1xufVxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stcmVhZC1vbmx5IC5jay13aWRnZXQ6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpIHtcblx0XHQvKiBEaXNhYmxlIHZpc3VhbCBlZmZlY3RzIG9mIGhvdmVyL2FjdGl2ZSB3aWRnZXQgd2hlbiBDS0VkaXRvciBpcyBpbiByZWFkT25seSBtb2RlLlxuXHRcdCAqIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTI2MVxuXHRcdCAqXG5cdFx0ICogTGVhdmUgdGhlIHVuaXQgYmVjYXVzZSB0aGlzIGN1c3RvbSBwcm9wZXJ0eSBpcyB1c2VkIGluIGNhbGMoKSBieSBvdGhlciBmZWF0dXJlcy5cblx0XHQgKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzY3NzVcblx0XHQgKi9cblx0XHQtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzczogMHB4O1xuXHR9XG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1yZWFkLW9ubHkgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUsXG5cdFx0LmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stcmVhZC1vbmx5IC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXdpZGdldC1ibHVycmVkLWJvcmRlcik7XG5cdFx0fVxuLypcbiogSGlkZSB0aGUgb3V0bGluZSBvZiBhbGwgd2lkZ2V0IHBhcmVudHMgd2hlbiB0aGUgd2lkZ2V0IGlzIGJlaW5nIGhvdmVyZWQuXG4qL1xuLmNrIC5jay13aWRnZXQ6aGFzKCAuY2std2lkZ2V0LnRhYmxlOmhvdmVyICkge1xuXHRvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi8qIEhpZGUgdGhlIHNlbGVjdGlvbiBoYW5kbGUgb24gbW91c2UgaG92ZXIgb3ZlciB0aGUgd2lkZ2V0IG9mIGFsbCB0aGUgd2lkZ2V0IHBhcmVudHMuICovXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlOmhhcyggLmNrLXdpZGdldC50YWJsZTpob3ZlciApID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdG9wYWNpdHk6IDA7XG5cdHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi8qIFN0eWxlIHRoZSB3aWRnZXQgd2hlbiBpdCdzIHNlbGVjdGVkIGJ1dCB0aGUgZWRpdGFibGUgaXQgYmVsb25ncyB0byBsb3N0IGZvY3VzLiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWJsdXJyZWQgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQsXG5cdC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWJsdXJyZWQgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQ6aG92ZXIge1xuXHRcdG91dGxpbmUtY29sb3I6IHZhcigtLWNrLWNvbG9yLXdpZGdldC1ibHVycmVkLWJvcmRlcik7XG5cdH1cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWJsdXJyZWQgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUsXG5cdFx0XHQuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1ibHVycmVkIC5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkLmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGU6aG92ZXIgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlLFxuXHRcdFx0LmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stYmx1cnJlZCAuY2std2lkZ2V0LmNrLXdpZGdldF9zZWxlY3RlZC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZTpob3Zlcixcblx0XHRcdC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWJsdXJyZWQgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZTpob3ZlciA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGU6aG92ZXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci13aWRnZXQtYmx1cnJlZC1ib3JkZXIpO1xuXHRcdFx0fVxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgPiAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGU6Zmlyc3QtY2hpbGQsXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSBibG9ja3F1b3RlID4gLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlOmZpcnN0LWNoaWxkIHtcblx0LyogRG8gbm90IGNyb3Agc2VsZWN0aW9uIGhhbmRsZXIgaWYgYSB3aWRnZXQgaXMgYSBmaXJzdC1jaGlsZCBpbiB0aGUgYmxvY2txdW90ZSBvciBpbiB0aGUgcm9vdCBlZGl0YWJsZS5cblx0SW4gZmFjdCwgYW55dGhpbmcgd2l0aCBvdmVyZmxvdzogaGlkZGVuLlxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LWJsb2NrLXF1b3RlL2lzc3Vlcy8yOFxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXdpZGdldC9pc3N1ZXMvNDRcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS13aWRnZXQvaXNzdWVzLzY2ICovXG5cdG1hcmdpbi10b3A6IGNhbGMoMWVtICsgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItaWNvbi1zaXplKSk7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLXJlc2l6ZXItc2l6ZTogMTBweDtcblxuXHQvKiBTZXQgdGhlIHJlc2l6ZXIgd2l0aCBhIDUwJSBvZmZzZXQuICovXG5cdC0tY2stcmVzaXplci1vZmZzZXQ6IGNhbGMoICggdmFyKC0tY2stcmVzaXplci1zaXplKSAvIC0yICkgLSAycHgpO1xuXHQtLWNrLXJlc2l6ZXItYm9yZGVyLXdpZHRoOiAxcHg7XG59XG4uY2sgLmNrLXdpZGdldF9fcmVzaXplciB7XG5cdG91dGxpbmU6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1yZXNpemVyKTtcbn1cbi5jayAuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUge1xuXHR3aWR0aDogdmFyKC0tY2stcmVzaXplci1zaXplKTtcblx0aGVpZ2h0OiB2YXIoLS1jay1yZXNpemVyLXNpemUpO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHRib3JkZXI6IHZhcigtLWNrLXJlc2l6ZXItYm9yZGVyLXdpZHRoKSBzb2xpZCBoc2woMCwgMCUsIDEwMCUpO1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1yZXNpemVyLWJvcmRlci1yYWRpdXMpO1xufVxuLmNrIC5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS10b3AtbGVmdCB7XG5cdFx0dG9wOiB2YXIoLS1jay1yZXNpemVyLW9mZnNldCk7XG5cdFx0bGVmdDogdmFyKC0tY2stcmVzaXplci1vZmZzZXQpO1xuXHR9XG4uY2sgLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLXRvcC1yaWdodCB7XG5cdFx0dG9wOiB2YXIoLS1jay1yZXNpemVyLW9mZnNldCk7XG5cdFx0cmlnaHQ6IHZhcigtLWNrLXJlc2l6ZXItb2Zmc2V0KTtcblx0fVxuLmNrIC5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS1ib3R0b20tcmlnaHQge1xuXHRcdGJvdHRvbTogdmFyKC0tY2stcmVzaXplci1vZmZzZXQpO1xuXHRcdHJpZ2h0OiB2YXIoLS1jay1yZXNpemVyLW9mZnNldCk7XG5cdH1cbi5jayAuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUtYm90dG9tLWxlZnQge1xuXHRcdGJvdHRvbTogdmFyKC0tY2stcmVzaXplci1vZmZzZXQpO1xuXHRcdGxlZnQ6IHZhcigtLWNrLXJlc2l6ZXItb2Zmc2V0KTtcblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXNpemU6IDIwcHg7XG5cdC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1hY3RpdmU6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1ob3ZlcjogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWhvdmVyLWJvcmRlcik7XG5cdC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1ibHVycmVkLWVkaXRhYmxlOiB2YXIoLS1jay1jb2xvci13aWRnZXQtYmx1cnJlZC1ib3JkZXIpO1xuXHQtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tcmFkYXItc3RhcnQtYWxwaGE6IDA7XG5cdC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1yYWRhci1lbmQtYWxwaGE6IC4zO1xuXHQtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24taWNvbjogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcbn1cbi8qXG5cdCAqIFN0eWxlcyBvZiB0aGUgdHlwZSBhcm91bmQgYnV0dG9uc1xuXHQgKi9cbi5jayAuY2std2lkZ2V0IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24ge1xuXHRcdHdpZHRoOiB2YXIoLS1jay13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXNpemUpO1xuXHRcdGhlaWdodDogdmFyKC0tY2std2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1zaXplKTtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uKTtcblx0XHRib3JkZXItcmFkaXVzOiAxMDBweDtcblx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlKSwgYmFja2dyb3VuZCB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSk7XG5cblx0XHRvcGFjaXR5OiAwO1xuXG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdH1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4uY2sgLmNrLXdpZGdldCAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uIHtcblx0XHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdH1cblx0XHR9XG4uY2sgLmNrLXdpZGdldCAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uIHN2ZyB7XG5cdFx0XHR3aWR0aDogMTBweDtcblx0XHRcdGhlaWdodDogOHB4O1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwtNTAlKTtcblx0XHRcdHRyYW5zaXRpb246IHRyYW5zZm9ybSAuNXMgZWFzZTtcblx0XHRcdG1hcmdpbi10b3A6IDFweDtcblx0XHR9XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuLmNrIC5jay13aWRnZXQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiBzdmcge1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHRcdH1cblx0XHRcdH1cbi5jayAuY2std2lkZ2V0IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24gc3ZnICoge1xuXHRcdFx0XHRzdHJva2UtZGFzaGFycmF5OiAxMDtcblx0XHRcdFx0c3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XG5cblx0XHRcdFx0ZmlsbDogbm9uZTtcblx0XHRcdFx0c3Ryb2tlOiB2YXIoLS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLWljb24pO1xuXHRcdFx0XHRzdHJva2Utd2lkdGg6IDEuNXB4O1xuXHRcdFx0XHRzdHJva2UtbGluZWNhcDogcm91bmQ7XG5cdFx0XHRcdHN0cm9rZS1saW5lam9pbjogcm91bmQ7XG5cdFx0XHR9XG4uY2sgLmNrLXdpZGdldCAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uIHN2ZyBsaW5lIHtcblx0XHRcdFx0c3Ryb2tlLWRhc2hhcnJheTogNztcblx0XHRcdH1cbi5jayAuY2std2lkZ2V0IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b246aG92ZXIge1xuXHRcdFx0Lypcblx0XHRcdCAqIERpc3BsYXkgdGhlIFwic29uYXJcIiBhcm91bmQgdGhlIGJ1dHRvbiB3aGVuIGhvdmVyZWQuXG5cdFx0XHQgKi9cblx0XHRcdGFuaW1hdGlvbjogY2std2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1zb25hciAxcyBlYXNlIGluZmluaXRlO1xuXG5cdFx0XHQvKlxuXHRcdFx0ICogQW5pbWF0ZSBhY3RpdmUgYnV0dG9uJ3MgaWNvbi5cblx0XHRcdCAqL1xuXHRcdH1cbi5jayAuY2std2lkZ2V0IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b246aG92ZXIgc3ZnIHBvbHlsaW5lIHtcblx0XHRcdFx0XHRhbmltYXRpb246IGNrLXdpZGdldC10eXBlLWFyb3VuZC1hcnJvdy1kYXNoIDJzIGxpbmVhcjtcblx0XHRcdFx0fVxuLmNrIC5jay13aWRnZXQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbjpob3ZlciBzdmcgbGluZSB7XG5cdFx0XHRcdFx0YW5pbWF0aW9uOiBjay13aWRnZXQtdHlwZS1hcm91bmQtYXJyb3ctdGlwLWRhc2ggMnMgbGluZWFyO1xuXHRcdFx0XHR9XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuLmNrIC5jay13aWRnZXQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbjpob3ZlciB7XG5cdFx0XHRcdGFuaW1hdGlvbjogbm9uZTtcblx0XHR9XG5cdFx0XHRcdFx0LmNrIC5jay13aWRnZXQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbjpob3ZlciBzdmcgcG9seWxpbmUge1xuXHRcdFx0XHRcdFx0YW5pbWF0aW9uOiBub25lO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC5jayAuY2std2lkZ2V0IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b246aG92ZXIgc3ZnIGxpbmUge1xuXHRcdFx0XHRcdFx0YW5pbWF0aW9uOiBub25lO1xuXHRcdFx0XHRcdH1cblx0XHRcdH1cbi8qXG5cdCAqIFNob3cgdHlwZSBhcm91bmQgYnV0dG9ucyB3aGVuIHRoZSB3aWRnZXQgaXMgYmVpbmcgaG92ZXJlZC5cblx0ICovXG4uY2sgLmNrLXdpZGdldDpob3ZlciA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0cG9pbnRlci1ldmVudHM6IGF1dG87XG5cdFx0fVxuLypcblx0ICogU3R5bGVzIGZvciB0aGUgYnV0dG9ucyB3aGVuIHRoZSB3aWRnZXQgaXMgTk9UIHNlbGVjdGVkIChidXQgdGhlIGJ1dHRvbnMgYXJlIHZpc2libGVcblx0ICogYW5kIHN0aWxsIGNhbiBiZSBob3ZlcmVkKS5cblx0ICovXG4uY2sgLmNrLXdpZGdldDpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCkgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24ge1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24taG92ZXIpO1xuXHR9XG4vKlxuXHQgKiBTdHlsZXMgZm9yIHRoZSBidXR0b25zIHdoZW46XG5cdCAqIC0gdGhlIHdpZGdldCBpcyBzZWxlY3RlZCxcblx0ICogLSBvciB0aGUgYnV0dG9uIGlzIGJlaW5nIGhvdmVyZWQgKHJlZ2FyZGxlc3Mgb2YgdGhlIHdpZGdldCBzdGF0ZSkuXG5cdCAqL1xuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uLFxuXHQuY2sgLmNrLXdpZGdldCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbjpob3ZlciB7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1hY3RpdmUpO1xuXHR9XG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b246OmFmdGVyLCAuY2sgLmNrLXdpZGdldCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbjpob3Zlcjo6YWZ0ZXIge1xuXHRcdFx0d2lkdGg6IGNhbGModmFyKC0tY2std2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1zaXplKSAtIDJweCk7XG5cdFx0XHRoZWlnaHQ6IGNhbGModmFyKC0tY2std2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1zaXplKSAtIDJweCk7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAxMDBweDtcblx0XHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIGhzbGEoMCwwJSwxMDAlLDApIDAlLCBoc2xhKDAsMCUsMTAwJSwuMykgMTAwJSk7XG5cdFx0fVxuLypcblx0XHQqIFN0eWxlcyBvZiB0aGUgd2lkZ2V0IHdoZW4gdGhlIFwiZmFrZSBjYXJldFwiIGlzIGJsaW5raW5nIChlLmcuIHVwb24ga2V5Ym9hcmQgbmF2aWdhdGlvbikuXG5cdFx0KiBEZXNwaXRlIHRoZSB3aWRnZXQgYmVpbmcgcGh5c2ljYWxseSBzZWxlY3RlZCBpbiB0aGUgbW9kZWwsIGl0cyBvdXRsaW5lIHNob3VsZCBkaXNhcHBlYXIuXG5cdFx0Ki9cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF9zZWxlY3RlZC5jay13aWRnZXRfdHlwZS1hcm91bmRfc2hvdy1mYWtlLWNhcmV0X2JlZm9yZSxcblx0XHQuY2sgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9hZnRlciB7XG5cdFx0XHRvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHR9XG4vKlxuXHRcdCogU2hvdyB0eXBlIGFyb3VuZCBidXR0b25zIHdoZW4gdGhlIHdpZGdldCBnZXRzIHNlbGVjdGVkLlxuXHRcdCovXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24ge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuXHRcdH1cbi8qXG5cdCAqIFN0eWxlcyBmb3IgdGhlIFwiYmVmb3JlXCIgYnV0dG9uIHdoZW4gdGhlIHdpZGdldCBoYXMgYSBzZWxlY3Rpb24gaGFuZGxlLiBCZWNhdXNlIHNvbWUgc3BhY2Vcblx0ICogaXMgY29uc3VtZWQgYnkgdGhlIGhhbmRsZSwgdGhlIGJ1dHRvbiBtdXN0IGJlIG1vdmVkIHNsaWdodGx5IHRvIHRoZSByaWdodCB0byBsZXQgaXQgYnJlYXRoZS5cblx0ICovXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uX2JlZm9yZSB7XG5cdFx0bWFyZ2luLWxlZnQ6IDIwcHg7XG5cdH1cbi8qXG5cdCAqIFN0eWxlcyBmb3IgdGhlIGhvcml6b250YWwgXCJmYWtlIGNhcmV0XCIgd2hpY2ggaXMgZGlzcGxheWVkIHdoZW4gdGhlIHVzZXIgbmF2aWdhdGVzIHVzaW5nIHRoZSBrZXlib2FyZC5cblx0ICovXG4uY2sgLmNrLXdpZGdldCAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fZmFrZS1jYXJldCB7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0aGVpZ2h0OiAxcHg7XG5cdFx0YW5pbWF0aW9uOiBjay13aWRnZXQtdHlwZS1hcm91bmQtZmFrZS1jYXJldC1wdWxzZSBsaW5lYXIgMXMgaW5maW5pdGUgbm9ybWFsIGZvcndhcmRzO1xuXG5cdFx0Lypcblx0XHQgKiBUaGUgc2VtaS10cmFuc3BhcmVudC1vdXRsaW5lK2JhY2tncm91bmQgY29tYm8gaW1wcm92ZXMgdGhlIGNvbnRyYXN0XG5cdFx0ICogd2hlbiB0aGUgYmFja2dyb3VuZCB1bmRlcm5lYXRoIHRoZSBmYWtlIGNhcmV0IGlzIGRhcmsuXG5cdFx0ICovXG5cdFx0b3V0bGluZTogc29saWQgMXB4IGhzbGEoMCwgMCUsIDEwMCUsIC41KTtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLXRleHQpO1xuXHR9XG4vKlxuXHRcdCAqIFdoZW4gdGhlIFwiZmFrZSBjYXJldFwiIGlzIHZpc2libGUgd2Ugc2ltdWxhdGUgdGhhdCB0aGUgd2lkZ2V0IGlzIG5vdCBzZWxlY3RlZFxuXHRcdCAqIChkZXNwaXRlIGJlaW5nIHBoeXNpY2FsbHkgc2VsZWN0ZWQpLCBzbyB0aGUgb3V0bGluZSBjb2xvciBzaG91bGQgYmUgZm9yIHRoZVxuXHRcdCAqIHVuc2VsZWN0ZWQgd2lkZ2V0LlxuXHRcdCAqL1xuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9iZWZvcmUuY2std2lkZ2V0X3NlbGVjdGVkOmhvdmVyLCAuY2sgLmNrLXdpZGdldC5jay13aWRnZXRfdHlwZS1hcm91bmRfc2hvdy1mYWtlLWNhcmV0X2FmdGVyLmNrLXdpZGdldF9zZWxlY3RlZDpob3ZlciB7XG5cdFx0XHRvdXRsaW5lLWNvbG9yOiB2YXIoLS1jay1jb2xvci13aWRnZXQtaG92ZXItYm9yZGVyKTtcblx0XHR9XG4vKlxuXHRcdCAqIFN0eWxlcyBvZiB0aGUgdHlwZSBhcm91bmQgYnV0dG9ucyB3aGVuIHRoZSBcImZha2UgY2FyZXRcIiBpcyBibGlua2luZyAoZS5nLiB1cG9uIGtleWJvYXJkIG5hdmlnYXRpb24pLlxuXHRcdCAqIEluIHRoaXMgc3RhdGUsIHRoZSB0eXBlIGFyb3VuZCBidXR0b25zIHdvdWxkIGNvbGxpZGUgd2l0aCB0aGUgZmFrZSBjYXJldHMgc28gdGhleSBzaG91bGQgZGlzYXBwZWFyLlxuXHRcdCAqL1xuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9iZWZvcmUgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24sIC5jayAuY2std2lkZ2V0LmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYWZ0ZXIgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24ge1xuXHRcdFx0b3BhY2l0eTogMDtcblx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdH1cbi8qXG5cdFx0ICogRmFrZSBob3Jpem9udGFsIGNhcmV0IGludGVncmF0aW9uIHdpdGggdGhlIHNlbGVjdGlvbiBoYW5kbGUuIFdoZW4gdGhlIGNhcmV0IGlzIHZpc2libGUsIHNpbXBseVxuXHRcdCAqIGhpZGUgdGhlIGhhbmRsZSBiZWNhdXNlIGl0IGludGVyc2VjdHMgd2l0aCB0aGUgY2FyZXQgKGFuZCBkb2VzIG5vdCBtYWtlIG11Y2ggc2Vuc2UgYW55d2F5KS5cblx0XHQgKi9cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYmVmb3JlLmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUuY2std2lkZ2V0X3NlbGVjdGVkID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSwgLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9hZnRlci5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlLmNrLXdpZGdldF9zZWxlY3RlZCA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUsIC5jayAuY2std2lkZ2V0LmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYmVmb3JlLmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUuY2std2lkZ2V0X3NlbGVjdGVkOmhvdmVyID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSwgLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9hZnRlci5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlLmNrLXdpZGdldF9zZWxlY3RlZDpob3ZlciA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRcdFx0XHRcdG9wYWNpdHk6IDBcblx0XHRcdFx0fVxuLypcblx0XHQgKiBGYWtlIGhvcml6b250YWwgY2FyZXQgaW50ZWdyYXRpb24gd2l0aCB0aGUgcmVzaXplIFVJLiBXaGVuIHRoZSBjYXJldCBpcyB2aXNpYmxlLCBzaW1wbHlcblx0XHQgKiBoaWRlIHRoZSByZXNpemUgVUkgYmVjYXVzZSBpdCBjcmVhdGVzIHRvbyBtdWNoIG5vaXNlLiBJdCBjYW4gYmUgdmlzaWJsZSB3aGVuIHRoZSB1c2VyXG5cdFx0ICogaG92ZXJzIHRoZSB3aWRnZXQsIHRob3VnaC5cblx0XHQgKi9cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYmVmb3JlLmNrLXdpZGdldF9zZWxlY3RlZC5jay13aWRnZXRfd2l0aC1yZXNpemVyID4gLmNrLXdpZGdldF9fcmVzaXplciwgLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9hZnRlci5jay13aWRnZXRfc2VsZWN0ZWQuY2std2lkZ2V0X3dpdGgtcmVzaXplciA+IC5jay13aWRnZXRfX3Jlc2l6ZXIge1xuXHRcdFx0b3BhY2l0eTogMFxuXHRcdH1cbi8qXG4gKiBTdHlsZXMgZm9yIHRoZSBcImJlZm9yZVwiIGJ1dHRvbiB3aGVuIHRoZSB3aWRnZXQgaGFzIGEgc2VsZWN0aW9uIGhhbmRsZSBpbiBhbiBSVEwgZW52aXJvbm1lbnQuXG4gKiBUaGUgc2VsZWN0aW9uIGhhbmRsZXIgaXMgYWxpZ25lZCB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgd2lkZ2V0IHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8gY3JlYXRlXG4gKiBhZGRpdGlvbmFsIHNwYWNlIGZvciBpdCBuZXh0IHRvIHRoZSBcImJlZm9yZVwiIGJ1dHRvbi5cbiAqL1xuLmNrW2Rpcj1cInJ0bFwiXSAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUgLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uX2JlZm9yZSB7XG5cdG1hcmdpbi1sZWZ0OiAwO1xuXHRtYXJnaW4tcmlnaHQ6IDIwcHg7XG59XG4vKlxuICogSGlkZSB0eXBlIGFyb3VuZCBidXR0b25zIHdoZW4gdGhlIHdpZGdldCBpcyBzZWxlY3RlZCBhcyBhIGNoaWxkIG9mIGEgc2VsZWN0ZWRcbiAqIG5lc3RlZCBlZGl0YWJsZSAoZS5nLiBtdWxpdC1jZWxsIHRhYmxlIHNlbGVjdGlvbikuXG4gKlxuICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzcyNjMuXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG4uY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZCAuY2std2lkZ2V0LmNrLXdpZGdldF9zZWxlY3RlZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiwgLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfc2VsZWN0ZWQgLmNrLXdpZGdldDpob3ZlciA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiB7XG5cdFx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdFx0fVxuLypcbiAqIEhpZGUgdHlwZSBhcm91bmQgYnV0dG9ucyBvZiBhbGwgd2lkZ2V0IHBhcmVudHMgd2hlbiB0aGUgd2lkZ2V0IGlzIGJlaW5nIGhvdmVyZWQuXG4gKi9cbi5jayAuY2std2lkZ2V0OmhhcyggLmNrLXdpZGdldC50YWJsZTpob3ZlciApID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uIHtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHR9XG4vKlxuICogU3R5bGVzIGZvciB0aGUgYnV0dG9ucyB3aGVuIHRoZSB3aWRnZXQgaXMgc2VsZWN0ZWQgYnV0IHRoZSB1c2VyIGNsaWNrZWQgb3V0c2lkZSBvZiB0aGUgZWRpdG9yIChibHVycmVkIHRoZSBlZGl0b3IpLlxuICovXG4uY2stZWRpdG9yX19lZGl0YWJsZS5jay1ibHVycmVkIC5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uOm5vdCg6aG92ZXIpIHtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1ibHVycmVkLWVkaXRhYmxlKTtcbn1cbi5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWJsdXJyZWQgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b246bm90KDpob3Zlcikgc3ZnICoge1xuXHRcdHN0cm9rZTogaHNsKDAsMCUsNjAlKTtcblx0fVxuQGtleWZyYW1lcyBjay13aWRnZXQtdHlwZS1hcm91bmQtYXJyb3ctZGFzaCB7XG5cdDAlIHtcblx0XHRzdHJva2UtZGFzaG9mZnNldDogMTA7XG5cdH1cblx0MjAlLCAxMDAlIHtcblx0XHRzdHJva2UtZGFzaG9mZnNldDogMDtcblx0fVxufVxuQGtleWZyYW1lcyBjay13aWRnZXQtdHlwZS1hcm91bmQtYXJyb3ctdGlwLWRhc2gge1xuXHQwJSwgMjAlIHtcblx0XHRzdHJva2UtZGFzaG9mZnNldDogNztcblx0fVxuXHQ0MCUsIDEwMCUge1xuXHRcdHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xuXHR9XG59XG5Aa2V5ZnJhbWVzIGNrLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tc29uYXIge1xuXHQwJSB7XG5cdFx0Ym94LXNoYWRvdzogMCAwIDAgMCBoc2xhKHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlci1jb29yZGluYXRlcyksIHZhcigtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tcmFkYXItc3RhcnQtYWxwaGEpKTtcblx0fVxuXHQ1MCUge1xuXHRcdGJveC1zaGFkb3c6IDAgMCAwIDVweCBoc2xhKHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlci1jb29yZGluYXRlcyksIHZhcigtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tcmFkYXItZW5kLWFscGhhKSk7XG5cdH1cblx0MTAwJSB7XG5cdFx0Ym94LXNoYWRvdzogMCAwIDAgNXB4IGhzbGEodmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyLWNvb3JkaW5hdGVzKSwgdmFyKC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1yYWRhci1zdGFydC1hbHBoYSkpO1xuXHR9XG59XG5Aa2V5ZnJhbWVzIGNrLXdpZGdldC10eXBlLWFyb3VuZC1mYWtlLWNhcmV0LXB1bHNlIHtcblx0MCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cblx0NDklIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG5cdDUwJSB7XG5cdFx0b3BhY2l0eTogMDtcblx0fVxuXHQ5OSUge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cblx0MTAwJSB7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2stY29udGVudCBjb2RlIHtcblx0YmFja2dyb3VuZC1jb2xvcjogaHNsYSgwLCAwJSwgNzglLCAwLjMpO1xuXHRwYWRkaW5nOiAuMTVlbTtcblx0Ym9yZGVyLXJhZGl1czogMnB4O1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuY2stY29kZV9zZWxlY3RlZCAge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiBoc2xhKDAsIDAlLCA3OCUsIDAuNSk7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay1jb250ZW50IGJsb2NrcXVvdGUge1xuXHQvKiBTZWUgIzEyICovXG5cdG92ZXJmbG93OiBoaWRkZW47XG5cblx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1ibG9jay1xdW90ZS9pc3N1ZXMvMTUgKi9cblx0cGFkZGluZy1yaWdodDogMS41ZW07XG5cdHBhZGRpbmctbGVmdDogMS41ZW07XG5cblx0bWFyZ2luLWxlZnQ6IDA7XG5cdG1hcmdpbi1yaWdodDogMDtcblx0Zm9udC1zdHlsZTogaXRhbGljO1xuXHRib3JkZXItbGVmdDogc29saWQgNXB4IGhzbCgwLCAwJSwgODAlKTtcbn1cblxuLmNrLWNvbnRlbnRbZGlyPVwicnRsXCJdIGJsb2NrcXVvdGUge1xuXHRib3JkZXItbGVmdDogMDtcblx0Ym9yZGVyLXJpZ2h0OiBzb2xpZCA1cHggaHNsKDAsIDAlLCA4MCUpO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC8qIEJhc2VkIG9uIGRlZmF1bHQgQ0tCb3ggdGhlbWUgY29sb3JzICovXG5cdC0tY2staW1hZ2UtcHJvY2Vzc2luZy1oaWdobGlnaHQtY29sb3I6IGhzbCgyMjAsIDEwJSwgOTglKTtcblx0LS1jay1pbWFnZS1wcm9jZXNzaW5nLWJhY2tncm91bmQtY29sb3I6IGhzbCgyMjAsIDEwJSwgOTAlKTtcbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlLmltYWdlLXByb2Nlc3Npbmcge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlLmltYWdlLXByb2Nlc3Npbmc6YmVmb3JlIHtcblx0XHRcdFx0Y29udGVudDogJyc7XG5cblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IDA7XG5cdFx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRcdHotaW5kZXg6IDE7XG5cblx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblxuXHRcdFx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG5cdFx0XHRcdFx0OTBkZWcsXG5cdFx0XHRcdFx0dmFyKC0tY2staW1hZ2UtcHJvY2Vzc2luZy1iYWNrZ3JvdW5kLWNvbG9yKSxcblx0XHRcdFx0XHR2YXIoLS1jay1pbWFnZS1wcm9jZXNzaW5nLWhpZ2hsaWdodC1jb2xvciksXG5cdFx0XHRcdFx0dmFyKC0tY2staW1hZ2UtcHJvY2Vzc2luZy1iYWNrZ3JvdW5kLWNvbG9yKVxuXHRcdFx0XHQpO1xuXHRcdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMTAwJTtcblxuXHRcdFx0XHRhbmltYXRpb246IGNrLWltYWdlLXByb2Nlc3NpbmctYW5pbWF0aW9uIDJzIGxpbmVhciBpbmZpbml0ZTtcblx0XHRcdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlLmltYWdlLXByb2Nlc3NpbmcgaW1nIHtcblx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0fVxuXG5Aa2V5ZnJhbWVzIGNrLWltYWdlLXByb2Nlc3NpbmctYW5pbWF0aW9uIHtcblx0MCUge1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDIwMCUgMDtcblx0fVxuXHQxMDAlIHtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjAwJSAwO1xuXHR9XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG5cdCAqIFZlcnRpY2FsIGRyb3AgdGFyZ2V0IChpbiB0ZXh0KS5cblx0ICovXG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5jay5jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtcG9zaXRpb24ge1xuXHRcdGRpc3BsYXk6IGlubGluZTtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmNrLmNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1wb3NpdGlvbiBzcGFuIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHdpZHRoOiAwO1xuXHRcdH1cblxuLypcblx0ICogU3R5bGVzIG9mIHRoZSB3aWRnZXQgYmVpbmcgZHJhZ2dlZCAoaXRzIHByZXZpZXcpLlxuXHQgKi9cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmNrLXdpZGdldDotd2Via2l0LWRyYWcgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuY2std2lkZ2V0Oi13ZWJraXQtZHJhZyA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG4uY2suY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWxpbmUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2stY29udGVudCBwcmUge1xuXHRwYWRkaW5nOiAxZW07XG5cdGNvbG9yOiBoc2woMCwgMCUsIDIwLjglKTtcblx0YmFja2dyb3VuZDogaHNsYSgwLCAwJSwgNzglLCAwLjMpO1xuXHRib3JkZXI6IDFweCBzb2xpZCBoc2woMCwgMCUsIDc3JSk7XG5cdGJvcmRlci1yYWRpdXM6IDJweDtcblxuXHQvKiBDb2RlIGJsb2NrIGFyZSBsYW5ndWFnZSBkaXJlY3Rpb27igJNhZ25vc3RpYy4gKi9cblx0dGV4dC1hbGlnbjogbGVmdDtcblx0ZGlyZWN0aW9uOiBsdHI7XG5cblx0dGFiLXNpemU6IDQ7XG5cdHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcblxuXHQvKiBEb24ndCBpbmhlcml0IHRoZSBzdHlsZSwgZS5nLiB3aGVuIGluIGEgYmxvY2sgcXVvdGUuICovXG5cdGZvbnQtc3R5bGU6IG5vcm1hbDtcblxuXHQvKiBEb24ndCBsZXQgdGhlIGNvZGUgYmUgc3F1YXNoZWQgZS5nLiB3aGVuIGluIGEgdGFibGUgY2VsbC4gKi9cblx0bWluLXdpZHRoOiAyMDBweDtcbn1cblxuLmNrLWNvbnRlbnQgcHJlIGNvZGUge1xuXHRcdGJhY2tncm91bmQ6IHVuc2V0O1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSBwcmUge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIHByZVtkYXRhLWxhbmd1YWdlXTo6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6IGF0dHIoZGF0YS1sYW5ndWFnZSk7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1lZGl0b3Ige1xuXHQvKiBBbGwgdGhlIGVsZW1lbnRzIHdpdGhpbiBgLmNrLWVkaXRvcmAgYXJlIHBvc2l0aW9uZWQgcmVsYXRpdmVseSB0byBpdC5cblx0IElmIGFueSBlbGVtZW50IG5lZWRzIHRvIGJlIHBvc2l0aW9uZWQgd2l0aCByZXNwZWN0IHRvIHRoZSA8Ym9keT4sIGV0Yy4sXG5cdCBpdCBtdXN0IGxhbmQgb3V0c2lkZSBvZiB0aGUgYC5jay1lZGl0b3JgIGluIERPTS4gKi9cblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY2suY2stZWRpdG9yIC5jay1lZGl0b3JfX3RvcCAuY2stc3RpY2t5LXBhbmVsIC5jay10b29sYmFyIHtcblx0XHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LWVkaXRvci1jbGFzc2ljL2lzc3Vlcy82MiAqL1xuXHRcdHotaW5kZXg6IHZhcigtLWNrLXotcGFuZWwpO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1tZW51LWJhciB7XG5cdGJvcmRlcjogbm9uZTtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLXRvb2xiYXItYm9yZGVyKTtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWVtb2ppLWdyaWQtdGlsZS1zaXplOiAyN3B4O1xufVxuXG4uY2suY2stZW1vamkgLmNrLmNrLWVtb2ppX190aWxlcyB7XG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHRcdG1heC1oZWlnaHQ6IG1pbigyNjVweCwgNDB2aCk7XG5cblx0XHRvdmVyZmxvdy15OiBhdXRvO1xuXHRcdG92ZXJmbG93LXg6IGhpZGRlbjtcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHR9XG5cbi5jay5jay1lbW9qaSAuY2suY2stZW1vamlfX3RpbGVzIC5jay1lbW9qaV9fZ3JpZCB7XG5cdFx0XHRkaXNwbGF5OiBncmlkO1xuXHRcdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgodmFyKC0tY2stZW1vamktZ3JpZC10aWxlLXNpemUpLCAxZnIpKTtcblx0XHRcdG1hcmdpbjogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0XHRncmlkLWdhcDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0fVxuXG4uY2suY2stZW1vamkgLmNrLmNrLWVtb2ppX190aWxlcyAuY2stZW1vamlfX3RpbGUge1xuXHRcdFx0d2lkdGg6IHZhcigtLWNrLWVtb2ppLWdyaWQtdGlsZS1zaXplKTtcblx0XHRcdGhlaWdodDogdmFyKC0tY2stZW1vamktZ3JpZC10aWxlLXNpemUpO1xuXHRcdFx0bWluLXdpZHRoOiB2YXIoLS1jay1lbW9qaS1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0XHRtaW4taGVpZ2h0OiB2YXIoLS1jay1lbW9qaS1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0XHRmb250LXNpemU6IDEuNWVtO1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHRcdHRyYW5zaXRpb246IC4ycyBlYXNlIGJveC1zaGFkb3c7XG5cdFx0XHRib3JkZXI6IDA7XG5cdFx0fVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXG4uY2suY2stZW1vamkgLmNrLmNrLWVtb2ppX190aWxlcyAuY2stZW1vamlfX3RpbGUge1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHRcdH1cblx0XHRcdH1cblxuLmNrLmNrLWVtb2ppIC5jay5jay1lbW9qaV9fdGlsZXMgLmNrLWVtb2ppX190aWxlOmZvY3VzOm5vdCguY2stZGlzYWJsZWQpLFxuXHRcdFx0LmNrLmNrLWVtb2ppIC5jay5jay1lbW9qaV9fdGlsZXMgLmNrLWVtb2ppX190aWxlOmhvdmVyOm5vdCguY2stZGlzYWJsZWQpIHtcblx0XHRcdFx0LyogRGlzYWJsZSB0aGUgZGVmYXVsdCAuY2stYnV0dG9uJ3MgYm9yZGVyIHJpbmcuICovXG5cdFx0XHRcdGJvcmRlcjogMDtcblx0XHRcdFx0Ym94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCksIDAgMCAwIDJweCB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHRcdFx0fVxuXG4vKiBNYWtlIHN1cmUgdGhlIGdseXBoIGlzIHJlbmRlcmVkIGluIHRoZSBjZW50ZXIgb2YgdGhlIGJ1dHRvbiAqL1xuXG4uY2suY2stZW1vamkgLmNrLmNrLWVtb2ppX190aWxlcyAuY2stZW1vamlfX3RpbGUgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRsaW5lLWhlaWdodDogdmFyKC0tY2stZW1vamktZ3JpZC10aWxlLXNpemUpO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZW1vamlfX2NhdGVnb3JpZXMtbGlzdCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0bWFyZ2luOiAwIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xufVxuXG4uY2suY2stZW1vamlfX2NhdGVnb3JpZXMtbGlzdCA+IC5jay5jay1idXR0b24uY2stYnV0dG9uX3dpdGgtdGV4dCB7XG5cdFx0Ym9yZGVyLXdpZHRoOiAwO1xuXHRcdGJvcmRlci1ib3R0b20td2lkdGg6IDJweDtcblx0XHRib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcblx0XHRib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLWJpZyk7XG5cdFx0bWluLXdpZHRoOiB2YXIoLS1jay1mb250LXNpemUtYmlnKTtcblx0XHRtaW4taGVpZ2h0OiB2YXIoLS1jay1mb250LXNpemUtYmlnKTtcblx0fVxuXG4uY2suY2stZW1vamlfX2NhdGVnb3JpZXMtbGlzdCA+IC5jay5jay1idXR0b24uY2stYnV0dG9uX3dpdGgtdGV4dC5jay1lbW9qaV9fY2F0ZWdvcnktaXRlbS5jay1vbiB7XG5cdFx0XHRib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWFjdGl2ZSk7XG5cdFx0fVxuXG4uY2suY2stZW1vamlfX2NhdGVnb3JpZXMtbGlzdCA+IC5jay5jay1idXR0b24uY2stYnV0dG9uX3dpdGgtdGV4dCA+IHNwYW4ge1xuXHRcdFx0bWFyZ2luOiBhdXRvO1xuXHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWVtb2ppX19za2luLXRvbmUge1xuXHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG59XG5cbi5jay5jay1lbW9qaV9fc2tpbi10b25lID4gLmNrLmNrLWRyb3Bkb3duIC5jay5jay1saXN0X19pdGVtIHtcblx0XHRcdG1pbi13aWR0aDogMWVtO1xuXHRcdH1cblxuLmNrLmNrLWVtb2ppX19za2luLXRvbmUgPiAuY2suY2stZHJvcGRvd24gLmNrLWJ1dHRvbi5jay1kcm9wZG93bl9fYnV0dG9uIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0d2lkdGg6IGluaXRpYWw7XG5cdFx0XHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1mb3JtLmNrLWVtb2ppLXBpY2tlci1mb3JtIHtcblx0cGFkZGluZy1ib3R0b206IDA7XG5cblx0Lypcblx0ICogYC5jay1mb3JtYCBvdmVycmlkZXMgc3R5bGluZyBvZiBhbGwgZHJvcGRvd25zIGJ5IGFkZGluZyBib3JkZXIgYXJvdW5kIHRoZW0uXG5cdCAqIFRoZSBib3JkZXIgaXMgbm90IG5lZWRlZCBpbiB0aGUgZW1vamkgcGlja2VyIGZvcm0gc28gdHJ5IHRvIHJlbW92ZSBpdCBrZWVwaW5nXG5cdCAqIHNwZWNpZmljaXR5IGhpZ2ggZW5vdWdoIHRvIG92ZXJyaWRlIHRoZSBmb3JtIHN0eWxpbmcuXG5cdCAqL1xufVxuXG4uY2suY2stZm9ybS5jay1lbW9qaS1waWNrZXItZm9ybSAuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19idXR0b246bm90KDpmb2N1cykge1xuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWVtb2ppIHtcblx0d2lkdGg6IDMyMHB4O1xufVxuXG4uY2sgLmNrLmNrLWVtb2ppX19zZWFyY2gge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0cGFkZGluZy1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uY2sgLmNrLmNrLWVtb2ppX19zZWFyY2ggPiAuY2suY2stc2VhcmNoIHtcblx0XHRmbGV4OiAxO1xuXHR9XG5cbi8qXG4gKiBDbGFzc2VzIHVzZWQgYnkgdGhlIFwiZmFrZSB2aXN1YWwgc2VsZWN0aW9uXCIgZGlzcGxheWVkIGluIHRoZSBjb250ZW50IHdoZW4gYW4gaW5wdXRcbiAqIGluIHRoZSBlbW9qaSBwaWNrZXIgVUkgaGFzIGZvY3VzICh0aGUgYnJvd3NlciBkb2VzIG5vdCByZW5kZXIgdGhlIG5hdGl2ZSBzZWxlY3Rpb24gaW4gdGhpcyBzdGF0ZSkuXG4gKi9cbi5jayAuY2stZmFrZS1lbW9qaS1zZWxlY3Rpb24ge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saW5rLWZha2Utc2VsZWN0aW9uKTtcbn1cblxuLyogQSBjb2xsYXBzZWQgZmFrZSB2aXN1YWwgc2VsZWN0aW9uLiAqL1xuLmNrIC5jay1mYWtlLWVtb2ppLXNlbGVjdGlvbl9jb2xsYXBzZWQge1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtdGV4dCk7XG5cdG1hcmdpbi1yaWdodDogLTFweDtcblx0b3V0bGluZTogc29saWQgMXB4IGhzbGEoMCwgMCUsIDEwMCUsIC41KTtcbn1cblxuZGl2LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stZW1vamktcGlja2VyLWJhbGxvb24ge1xuXHR6LWluZGV4OiBjYWxjKCB2YXIoIC0tY2stei1kaWFsb2cgKSArIDEgKTtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyogU2VlIGNrZWRpdG9yL2NrZWRpdG9yNSM5MzYuICovXG4uY2suY2stcGxhY2Vob2xkZXIsXG4uY2sgLmNrLXBsYWNlaG9sZGVyIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmNrLmNrLXBsYWNlaG9sZGVyOjpiZWZvcmUsIC5jayAuY2stcGxhY2Vob2xkZXI6OmJlZm9yZSB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGxlZnQ6IDA7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0Y29udGVudDogYXR0cihkYXRhLXBsYWNlaG9sZGVyKTtcblxuXHRcdC8qIFNlZSBja2VkaXRvci9ja2VkaXRvcjUjNDY5LiAqL1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHR9XG5cbi8qIFNlZSBja2VkaXRvci9ja2VkaXRvcjUjMTk4Ny4gKi9cbi5jay5jay1yZWFkLW9ubHkgLmNrLXBsYWNlaG9sZGVyOjpiZWZvcmUge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuLypcbiAqIFJ1bGVzIGZvciB0aGUgYGNrLXBsYWNlaG9sZGVyYCBhcmUgbG9hZGVkIGJlZm9yZSB0aGUgcnVsZXMgZm9yIGBjay1yZXNldF9hbGxgIGluIHRoZSBiYXNlIENLRWRpdG9yIDUgRExMIGJ1aWxkLlxuICogVGhpcyBmaXggb3ZlcndyaXRlcyB0aGUgaW5jb3JyZWN0bHkgc2V0IGBwb3NpdGlvbjogc3RhdGljYCBmcm9tIGBjay1yZXNldF9hbGxgLlxuICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzExNDE4LlxuICovXG4uY2suY2stcmVzZXRfYWxsIC5jay1wbGFjZWhvbGRlciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyogRWxlbWVudHMgbWFya2VkIGJ5IHRoZSBSZW5kZXJlciBhcyBoaWRkZW4gc2hvdWxkIGJlIGludmlzaWJsZSBpbiB0aGUgZWRpdG9yLiAqL1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgc3BhbltkYXRhLWNrLXVuc2FmZS1lbGVtZW50XSB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay1maW5kLXJlc3VsdCB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWhpZ2hsaWdodC1iYWNrZ3JvdW5kKTtcblx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLXRleHQpO1xufVxuXG4uY2stZmluZC1yZXN1bHRfc2VsZWN0ZWQge1xuXHRiYWNrZ3JvdW5kOiBoc2woMjksIDEwMCUsIDYwJSk7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0ge1xuXHRtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzLCAuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cblx0XHQvKiBUaGUgaW5wdXRzIGFyZWEgc3R5bGVzICovXG5cdH1cblxuLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dHMuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dHMgLmNrLXJlc3VsdHMtY291bnRlciwgLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19hY3Rpb25zLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzIC5jay1yZXN1bHRzLWNvdW50ZXIge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyogVGhlIHZhbHVlcyBzaG91bGQgYmUgc3luY2hyb25pemVkIHdpdGggdGhlIFwiRk9OVF9TSVpFX1BSRVNFVF9VTklUU1wiIG9iamVjdCBpbiB0aGUgXCIvc3JjL2ZvbnRzaXplL3V0aWxzLmpzXCIgZmlsZS4gKi9cblxuLyogU3R5bGVzIHNob3VsZCBiZSBwcmVmaXhlZCB3aXRoIHRoZSBgLmNrLWNvbnRlbnRgIGNsYXNzLlxuU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzY2MzYgKi9cbi5jay1jb250ZW50IC50ZXh0LXRpbnkge1xuXHRcdGZvbnQtc2l6ZTogLjdlbTtcblx0fVxuLmNrLWNvbnRlbnQgLnRleHQtc21hbGwge1xuXHRcdGZvbnQtc2l6ZTogLjg1ZW07XG5cdH1cbi5jay1jb250ZW50IC50ZXh0LWJpZyB7XG5cdFx0Zm9udC1zaXplOiAxLjRlbTtcblx0fVxuLmNrLWNvbnRlbnQgLnRleHQtaHVnZSB7XG5cdFx0Zm9udC1zaXplOiAxLjhlbTtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKiBJbmNyZWFzZSB6LWluZGV4IG9mIGV2ZXJ5dGhpbmcgdG8gbWFrZSBzdXJlIG5vdGhpbmcgc3RpY2tzIGluIGZyb250IG9mIHRoZSBlZGl0b3IuXG5EaXNhYmxlIHNjcm9sbGJhcnMgdGhhdCBjYW4gYmUgcHJlc2VudCBkdWUgdG8gdGhlIHJlc3Qgb2YgdGhlIHdlYnNpdGUgY29udGVudC4gKi9cbmh0bWwuY2stZnVsbHNjcmVlbixcbmJvZHkuY2stZnVsbHNjcmVlbiB7XG5cdC0tY2stei1mdWxsc2NyZWVuOiAxMDAwMDtcblxuXHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdC0tY2stei1kZWZhdWx0OiBjYWxjKHZhcigtLWNrLXotZnVsbHNjcmVlbikgKyAxKTtcblx0LS1jay16LXBhbmVsOiBjYWxjKHZhcigtLWNrLXotZGVmYXVsdCkgKyA5OTkpO1xuXHQtLWNrLXotZGlhbG9nOiAxMDAwMDA7XG5cblx0LyogQ0tCb3ggd3JhcHBlcnMgaGF2ZSB6LWluZGV4IG9mIDk5OTksIGxldCdzIGJ1bXAgdGhlbSBvdmVyIHRoZSBkaWFsb2cncyB0byBlbnN1cmUgdmlzaWJpbGl0eSBsaWtlIG91dHNpZGUgZnVsbHNjcmVlbiBtb2RlLiAqL1xufVxuaHRtbC5jay1mdWxsc2NyZWVuIC5ja2JveC1yZXNldDpub3QoI24pPi5ja2JveC0tZGlhbG9nLCBib2R5LmNrLWZ1bGxzY3JlZW4gLmNrYm94LXJlc2V0Om5vdCgjbik+LmNrYm94LS1kaWFsb2cge1xuXHRcdC0tY2tib3gtei1pbmRleC1yb290OiBjYWxjKHZhcigtLWNrLXotZGlhbG9nKSArIDEpO1xuXHR9XG5odG1sLmNrLWZ1bGxzY3JlZW4gLmNrYm94Om5vdCgjbikgLmNrYm94LWltZy1lZGl0b3IsIGJvZHkuY2stZnVsbHNjcmVlbiAuY2tib3g6bm90KCNuKSAuY2tib3gtaW1nLWVkaXRvciB7XG5cdFx0LS1ja2JveC16LWluZGV4LXByZXZpZXc6IGNhbGModmFyKC0tY2stei1kaWFsb2cpICsgMSk7XG5cdH1cbmh0bWwuY2stZnVsbHNjcmVlbiAuY2stcGFnaW5hdGlvbi12aWV3LWxpbmUsIGJvZHkuY2stZnVsbHNjcmVlbiAuY2stcGFnaW5hdGlvbi12aWV3LWxpbmUge1xuXHRcdHotaW5kZXg6IGNhbGModmFyKC0tY2stei1mdWxsc2NyZWVuKSArIDEpO1xuXHR9XG5odG1sLmNrLWZ1bGxzY3JlZW4gLnBhZ2UtYnJlYWtfX2xhYmVsLCBib2R5LmNrLWZ1bGxzY3JlZW4gLnBhZ2UtYnJlYWtfX2xhYmVsIHtcblx0XHQvKiBOZWVkcyB0byBiZSBoaWdoZXIgdGhhbiBmb3IgLmNrLXBhZ2luYXRpb24tdmlldy1saW5lIHRvIGJlIGRpc3BsYXllZCBvbiB0b3Agb2YgdGhlIGxpbmUuICovXG5cdFx0ei1pbmRleDogY2FsYyh2YXIoLS1jay16LWZ1bGxzY3JlZW4pICsgMik7XG5cdH1cblxuLypcbkZ1bGxzY3JlZW4gbGF5b3V0OlxuXG48ZGl2IGNsYXNzPVwiY2sgY2stZnVsbHNjcmVlbl9fbWFpbi13cmFwcGVyXCI+XG5cdDxkaXYgY2xhc3M9XCJjayBjay1mdWxsc2NyZWVuX190b3Atd3JhcHBlciBjay1yZXNldF9hbGxcIj5cblx0XHQ8ZGl2IGNsYXNzPVwiY2sgY2stZnVsbHNjcmVlbl9fbWVudS1iYXJcIiBkYXRhLWNrLWZ1bGxzY3JlZW49XCJtZW51LWJhclwiPjwvZGl2PlxuXHRcdDxkaXYgY2xhc3M9XCJjayBjay1mdWxsc2NyZWVuX190b29sYmFyXCIgZGF0YS1jay1mdWxsc2NyZWVuPVwidG9vbGJhclwiPjwvZGl2PlxuXHQ8L2Rpdj5cblx0PGRpdiBjbGFzcz1cImNrIGNrLWZ1bGxzY3JlZW5fX2VkaXRhYmxlLXdyYXBwZXJcIj5cblx0XHQ8ZGl2IGNsYXNzPVwiY2sgY2stZnVsbHNjcmVlbl9fc2lkZWJhciBjay1mdWxsc2NyZWVuX19sZWZ0LXNpZGViYXJcIiBkYXRhLWNrLWZ1bGxzY3JlZW49XCJsZWZ0LXNpZGViYXJcIj48L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwiY2sgY2stZnVsbHNjcmVlbl9fZWRpdGFibGVcIiBkYXRhLWNrLWZ1bGxzY3JlZW49XCJlZGl0YWJsZVwiPjwvZGl2PlxuXHRcdDxkaXYgY2xhc3M9XCJjayBjay1mdWxsc2NyZWVuX19zaWRlYmFyIGNrLWZ1bGxzY3JlZW5fX3JpZ2h0LXNpZGViYXJcIiBkYXRhLWNrLWZ1bGxzY3JlZW49XCJyaWdodC1zaWRlYmFyXCI+PC9kaXY+XG5cdDwvZGl2PlxuXHQ8ZGl2IGNsYXNzPVwiY2sgY2stZnVsbHNjcmVlbl9fYm90dG9tLXdyYXBwZXJcIj5cblx0XHQ8ZGl2IGNsYXNzPVwiY2sgY2stZnVsbHNjcmVlbl9fYm9keS13cmFwcGVyXCIgZGF0YS1jay1mdWxsc2NyZWVuPVwiYm9keS13cmFwcGVyXCI+PC9kaXY+XG5cdDwvZGl2PlxuPC9kaXY+XG4qL1xuXG4uY2suY2stZnVsbHNjcmVlbl9fbWFpbi13cmFwcGVyIHtcblx0LyogYHBvc2l0aW9uOiBmaXhlZGAgcHJldmVudHMgdGhlIG92ZXJzY3JvbGwgb24gbWFjb3MgdGhhdCB3b3VsZCBoYXBwZW4gd2l0aCBgcG9zaXRpb246IGFic29sdXRlYC4gKi9cblx0cG9zaXRpb246IGZpeGVkO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHotaW5kZXg6IHZhcigtLWNrLXotZnVsbHNjcmVlbik7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtZm9yZWdyb3VuZCk7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5jay5jay1mdWxsc2NyZWVuX19tYWluLXdyYXBwZXIgLmNrLmNrLXJldmlzaW9uLWhpc3RvcnktdWlfX2NoYW5nZXMtbmF2aWdhdGlvbiB7XG5cdFx0bWFyZ2luLXRvcDogMHB4O1xuXHRcdG1hcmdpbi1ib3R0b206IDBweDtcblx0fVxuXG4vKiBJZiB0aGUgZnVsbHNjcmVlbiBjb250YWluZXIgaXMgbm90IGRpcmVjdGx5IGluIHRoZSBib2R5LCB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSBpdCdzIHBvc2l0aW9uZWQgYWJzb2x1dGVseS4gKi9cbjpub3QoYm9keT4gLmNrLWZ1bGxzY3JlZW5fX21haW4td3JhcHBlcikuY2stZnVsbHNjcmVlbl9fbWFpbi13cmFwcGVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xufVxuLmNrLWZ1bGxzY3JlZW5fX21haW4td3JhcHBlcjpub3QoYm9keT4gLmNrLWZ1bGxzY3JlZW5fX21haW4td3JhcHBlcikgLmNrLWZ1bGxzY3JlZW5fX3RvcC13cmFwcGVyIHtcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKSAwO1xuXHR9XG5cbi5jay1mdWxsc2NyZWVuX19tZW51LWJhciAuY2suY2stbWVudS1iYXIge1xuXHRib3JkZXI6IG5vbmU7XG59XG5cbi5jay5jay1mdWxsc2NyZWVuX190b29sYmFyIC5jay10b29sYmFyIHtcblx0Ym9yZGVyLWxlZnQ6IDA7XG5cdGJvcmRlci1yaWdodDogMDtcblx0Ym9yZGVyLXJhZGl1czogMDtcbn1cblxuLmNrLWZ1bGxzY3JlZW5fX21haW4td3JhcHBlciAuY2stZnVsbHNjcmVlbl9fZWRpdGFibGUtd3JhcHBlciB7XG5cdC0tY2stZnVsbHNjcmVlbi1lZGl0b3ItdG9wLW1hcmdpbjogMjhweDtcblx0LS1jay1mdWxsc2NyZWVuLWVkaXRvci1ib3R0b20tbWFyZ2luOiAyOHB4O1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cdG92ZXJmbG93OiBhdXRvO1xuXHRtYXgtaGVpZ2h0OiAxMDAlO1xufVxuXG4uY2stZnVsbHNjcmVlbl9fbWFpbi13cmFwcGVyIC5jay1mdWxsc2NyZWVuX19lZGl0YWJsZSB7XG5cdG1hcmdpbi10b3A6IHZhcigtLWNrLWZ1bGxzY3JlZW4tZWRpdG9yLXRvcC1tYXJnaW4pO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4uY2stZnVsbHNjcmVlbl9fbWFpbi13cmFwcGVyIC5jay1mdWxsc2NyZWVuX19lZGl0YWJsZTo6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGhlaWdodDogdmFyKC0tY2stZnVsbHNjcmVlbi1lZGl0b3ItYm90dG9tLW1hcmdpbik7XG5cdH1cblxuLmNrLWZ1bGxzY3JlZW5fX21haW4td3JhcHBlciAuY2stZnVsbHNjcmVlbl9fZWRpdGFibGUgLmNrLmNrLWVkaXRvcl9fZWRpdGFibGU6bm90KC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZSkge1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHQvKiBNYWtlIHN1cmUgdGhlIGJvcmRlciBpcyB0YWtlbiBpbnRvIGFjY291bnQuICovXG5cdHdpZHRoOiBjYWxjKDIxMG1tICsgMnB4KTtcblx0LyogTWFrZSBzdXJlIHRoZSBib3JkZXIgaXMgdGFrZW4gaW50byBhY2NvdW50LiAqL1xuXHRtYXgtd2lkdGg6IGNhbGMoMjEwbW0gKyAycHgpO1xuXHRtaW4taGVpZ2h0OiAyOTdtbTtcblx0aGVpZ2h0OiBmaXQtY29udGVudDtcblx0LyogUmVzZXQgbWFyZ2lucyB0aGF0IG1heSBiZSBwcmVzZW50IG9uIGVkaXRhYmxlLiBXZSBhZGQgdGhlbSBpbiBvdGhlciBwbGFjZXMuICovXG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMjBtbSAxMm1tO1xuXHRib3JkZXI6IDFweCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcikgc29saWQ7XG5cdGJhY2tncm91bmQ6IGhzbCgwLCAwJSwgMTAwJSk7XG5cdGJveC1zaGFkb3c6IDAgMnB4IDNweCBoc2xhKDAsIDAlLCAwJSwgMC4wNzgpO1xufVxuXG4uY2stZnVsbHNjcmVlbl9fbWFpbi13cmFwcGVyIC5jay1mdWxsc2NyZWVuX19lZGl0YWJsZSAuY2stc291cmNlLWVkaXRpbmctYXJlYSB7XG5cdHdpZHRoOiBjYWxjKDIxMG1tICsgMnB4KTtcbn1cblxuLmNrLWZ1bGxzY3JlZW5fX3NpZGViYXIge1xuXHR3aWR0aDogMzAwcHg7XG5cdG1hcmdpbi10b3A6IHZhcigtLWNrLWZ1bGxzY3JlZW4tZWRpdG9yLXRvcC1tYXJnaW4pO1xuXHRtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLmNrLWZ1bGxzY3JlZW5fX2xlZnQtc2lkZWJhciB7XG5cdGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuXHQtLWNrLXVzZXItYXZhdGFyLXNpemU6IDI4cHg7XG5cdHBvc2l0aW9uOiBzdGlja3k7XG5cdGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG5cdHRvcDogMDtcblx0aGVpZ2h0OiAxMDAlO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0bWFyZ2luLXRvcDogMHB4O1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uY2stZnVsbHNjcmVlbl9fbGVmdC1zaWRlYmFyID4gOmZpcnN0LWNoaWxkIHtcblx0XHQvKiBTZXQgbWluaW1hbCB3aWR0aCBpZiB0aGVyZSBpcyBhbnkgaXRlbSBpbiB0aGUgc2lkZWJhci4gKi9cblx0XHRtaW4td2lkdGg6IDMwMHB4O1xuXHRcdC8qIFdlIGhhdmUgdG8gdXNlIHBhZGRpbmctdG9wIGluc3RlYWQgb2YgbWFyZ2luLXRvcCBiZWNhdXNlIG1hcmdpbiBpcyBzY3JvbGxhYmxlLiAqL1xuXHRcdHBhZGRpbmctdG9wOiB2YXIoLS1jay1mdWxsc2NyZWVuLWVkaXRvci10b3AtbWFyZ2luKTtcblx0fVxuXG4uY2stZnVsbHNjcmVlbl9fbGVmdC1zaWRlYmFyIC5jay5jay1wcmVzZW5jZS1saXN0LS1jb2xsYXBzZWQge1xuXHQtLWNrLXVzZXItYXZhdGFyLXNpemU6IDMycHg7XG59XG5cbi5jay1mdWxsc2NyZWVuX19sZWZ0LXNpZGViYXIgLmNrLXVzZXIge1xuXHRmb250LXNpemU6IDAuODVlbTtcbn1cblxuLmNrLWZ1bGxzY3JlZW5fX2xlZnQtc2lkZWJhciAuY2stcHJlc2VuY2UtbGlzdF9fdXNlcnMtY291bnRlcl9fdGV4dCB7XG5cdGZvbnQtc2l6ZTogMC44NWVtO1xufVxuXG4uY2stZnVsbHNjcmVlbl9fbGVmdC1zaWRlYmFyLWl0ZW0ge1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdG1hcmdpbi1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblxuXHQvKiBGaXJzdCBoZWFkZXIgc2hvdWxkIG5vdCBoYXZlIHRvcCBwYWRkaW5nLiAqL1xufVxuXG4uY2stZnVsbHNjcmVlbl9fbGVmdC1zaWRlYmFyLWl0ZW06Zmlyc3QtY2hpbGQge1xuXHRcdHBhZGRpbmctdG9wOiAwO1xuXHR9XG5cbi5jay1mdWxsc2NyZWVuX19sZWZ0LXNpZGViYXItaXRlbTpsYXN0LWNoaWxkIHtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHR9XG5cbi5jay1mdWxsc2NyZWVuX19sZWZ0LXNpZGViYXItaGVhZGVyIHtcblx0LS1jay1mdWxsc2NyZWVuLXByZXNlbmNlLWxpc3QtaGVhZGVyLWZvbnQtc2l6ZTogMC44NzVlbTtcblx0Zm9udC1zaXplOiB2YXIoLS1jay1mdWxsc2NyZWVuLXByZXNlbmNlLWxpc3QtaGVhZGVyLWZvbnQtc2l6ZSk7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRjb2xvcjogdmFyKC0tY2stZG9jdW1lbnQtb3V0bGluZS1pdGVtLWRlZmF1bHQtY29sb3IpO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmNrLWZ1bGxzY3JlZW5fX2xlZnQtc2lkZWJhci0tc3RpY2t5IHtcblx0cG9zaXRpb246IHN0aWNreTtcblx0dG9wOiAwO1xufVxuXG4uY2stZnVsbHNjcmVlbl9fbGVmdC1zaWRlYmFyLS1zdGlja3kgPiA6Zmlyc3QtY2hpbGQge1xuXHRcdHBhZGRpbmctdG9wOiAwO1xuXHR9XG5cbi5jay1mdWxsc2NyZWVuX19wcmVzZW5jZS1saXN0IHtcblx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xufVxuXG4uY2stZnVsbHNjcmVlbl9fbGVmdC1zaWRlYmFyLWl0ZW0tLW5vLW1hcmdpbiB7XG5cdG1hcmdpbjogMDtcbn1cblxuLmNrLWZ1bGxzY3JlZW5fX2xlZnQtc2lkZWJhciAuY2suY2stZG9jdW1lbnQtb3V0bGluZSB7XG5cdHBhZGRpbmctdG9wOiAwO1xuXHRwYWRkaW5nLWxlZnQ6IDA7XG5cdHBhZGRpbmctcmlnaHQ6IDA7XG59XG5cbi5jay1mdWxsc2NyZWVuX19kb2N1bWVudC1vdXRsaW5lLXdyYXBwZXIge1xuXHRwYWRkaW5nLXRvcDogMDtcblx0b3ZlcmZsb3cteTogYXV0bztcbn1cblxuLmNrLWZ1bGxzY3JlZW5fX3NpZGViYXIuY2stZnVsbHNjcmVlbl9fcmlnaHQtc2lkZWJhciB7XG5cdG1hcmdpbi10b3A6IHZhcigtLWNrLWZ1bGxzY3JlZW4tZWRpdG9yLXRvcC1tYXJnaW4pO1xuXHRtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi5jay1mdWxsc2NyZWVuX19zaWRlYmFyLmNrLWZ1bGxzY3JlZW5fX3JpZ2h0LXNpZGViYXI+IDpmaXJzdC1jaGlsZCB7XG5cdFx0LyogU2V0IG1pbmltYWwgd2lkdGggaWYgdGhlcmUgaXMgYW55IGl0ZW0gaW4gdGhlIHNpZGViYXIuICovXG5cdFx0bWluLXdpZHRoOiAzMDBweDtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2staGVhZGluZ19oZWFkaW5nMSAuY2stYnV0dG9uX19sYWJlbCB7XG5cdGZvbnQtc2l6ZTogMjBweDtcbn1cblxuLmNrLmNrLWhlYWRpbmdfaGVhZGluZzIgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRmb250LXNpemU6IDE3cHg7XG59XG5cbi5jay5jay1oZWFkaW5nX2hlYWRpbmczIC5jay1idXR0b25fX2xhYmVsIHtcblx0Zm9udC1zaXplOiAxNHB4O1xufVxuXG4uY2tbY2xhc3MqPVwiY2staGVhZGluZ19oZWFkaW5nXCJdIHtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1oaWdobGlnaHQtbWFya2VyLXllbGxvdzogaHNsKDYwLCA5NyUsIDczJSk7XG5cdC0tY2staGlnaGxpZ2h0LW1hcmtlci1ncmVlbjogaHNsKDEyMCwgOTMlLCA2OCUpO1xuXHQtLWNrLWhpZ2hsaWdodC1tYXJrZXItcGluazogaHNsKDM0NSwgOTYlLCA3MyUpO1xuXHQtLWNrLWhpZ2hsaWdodC1tYXJrZXItYmx1ZTogaHNsKDIwMSwgOTclLCA3MiUpO1xuXHQtLWNrLWhpZ2hsaWdodC1wZW4tcmVkOiBoc2woMCwgODUlLCA0OSUpO1xuXHQtLWNrLWhpZ2hsaWdodC1wZW4tZ3JlZW46IGhzbCgxMTIsIDEwMCUsIDI3JSk7XG59XG5cbi5jay1jb250ZW50IC5tYXJrZXIteWVsbG93IHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1oaWdobGlnaHQtbWFya2VyLXllbGxvdyk7XG5cdH1cbi5jay1jb250ZW50IC5tYXJrZXItZ3JlZW4ge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWhpZ2hsaWdodC1tYXJrZXItZ3JlZW4pO1xuXHR9XG4uY2stY29udGVudCAubWFya2VyLXBpbmsge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWhpZ2hsaWdodC1tYXJrZXItcGluayk7XG5cdH1cbi5jay1jb250ZW50IC5tYXJrZXItYmx1ZSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2staGlnaGxpZ2h0LW1hcmtlci1ibHVlKTtcblx0fVxuXG4uY2stY29udGVudCAucGVuLXJlZCB7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWhpZ2hsaWdodC1wZW4tcmVkKTtcblxuXHRcdC8qIE92ZXJyaWRlIGRlZmF1bHQgeWVsbG93IGJhY2tncm91bmQgb2YgYDxtYXJrPmAgZnJvbSB1c2VyIGFnZW50IHN0eWxlc2hlZXQgKi9cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0fVxuLmNrLWNvbnRlbnQgLnBlbi1ncmVlbiB7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWhpZ2hsaWdodC1wZW4tZ3JlZW4pO1xuXG5cdFx0LyogT3ZlcnJpZGUgZGVmYXVsdCB5ZWxsb3cgYmFja2dyb3VuZCBvZiBgPG1hcms+YCBmcm9tIHVzZXIgYWdlbnQgc3R5bGVzaGVldCAqL1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cblxuLmNrLWVkaXRvcl9fZWRpdGFibGUgLmNrLWhvcml6b250YWwtbGluZSB7XG5cdC8qIE5lY2Vzc2FyeSB0byByZW5kZXIgcHJvcGVybHkgbmV4dCB0byBmbG9hdGVkIG9iamVjdHMsIGUuZy4gc2lkZSBpbWFnZSBjYXNlLiAqL1xuXHRkaXNwbGF5OiBmbG93LXJvb3Q7XG59XG5cbi5jay1jb250ZW50IGhyIHtcblx0bWFyZ2luOiAxNXB4IDA7XG5cdGhlaWdodDogNHB4O1xuXHRiYWNrZ3JvdW5kOiBoc2woMCwgMCUsIDg3JSk7XG5cdGJvcmRlcjogMDtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyogVGhlIGZlYXR1cmUgY29udGFpbmVyLiAqL1xuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZCB7XG5cdC8qIEdpdmUgdGhlIGVtYmVkIHNvbWUgYWlyLiAqL1xuXHQvKiBUaGUgZmlyc3QgdmFsdWUgc2hvdWxkIGJlIGVxdWFsIHRvIC0tY2stc3BhY2luZy1sYXJnZSB2YXJpYWJsZSBpZiB1c2VkIGluIHRoZSBlZGl0b3IgY29udGV4dFxuXHR0byBhdm9pZCB0aGUgY29udGVudCBqdW1waW5nIChTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTgyNSkuICovXG5cdG1hcmdpbjogMC45ZW0gYXV0bztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRkaXNwbGF5OiBmbG93LXJvb3Q7XG5cblx0LyogR2l2ZSB0aGUgaHRtbCBlbWJlZCBzb21lIG1pbmltYWwgd2lkdGggaW4gdGhlIGNvbnRlbnQgdG8gcHJldmVudCB0aGVtXG5cdGZyb20gYmVpbmcgXCJzcXVhc2hlZFwiIGluIHRpZ2h0IHNwYWNlcywgZS5nLiBpbiB0YWJsZSBjZWxscyAoaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvODMzMSkgKi9cblx0bWluLXdpZHRoOiAxNWVtO1xuXG5cdC8qIERvbid0IGluaGVyaXQgdGhlIHN0eWxlLCBlLmcuIHdoZW4gaW4gYSBibG9jayBxdW90ZS4gKi9cblx0Zm9udC1zdHlsZTogbm9ybWFsO1xuXG5cdC8qIC0tLS0tIEVtZWJlZCBsYWJlbCBpbiB0aGUgdXBwZXIgbGVmdCBjb3JuZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbn1cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQ6OmJlZm9yZSB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXG5cdFx0LyogTWFrZSBzdXJlIHRoZSBjb250ZW50IGRvZXMgbm90IGNvdmVyIHRoZSBsYWJlbC4gKi9cblx0XHR6LWluZGV4OiAxO1xuXHR9XG4vKiAtLS0tLSBFbWViZWQgaW50ZXJuYWxzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogVGhlIHN3aXRjaCBtb2RlIGJ1dHRvbiB3cmFwcGVyLiAqL1xuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZCAucmF3LWh0bWwtZW1iZWRfX2J1dHRvbnMtd3JhcHBlciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0fVxuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZCAucmF3LWh0bWwtZW1iZWRfX3ByZXZpZXcge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdH1cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQgLnJhdy1odG1sLWVtYmVkX19wcmV2aWV3LWNvbnRlbnQge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRtYXJnaW46IGF1dG87XG5cblx0XHQvKiBHaXZlcyBzcGFjaW5nIHRvIHRoZSBzbWFsbCByZW5kZXJhYmxlIGVsZW1lbnRzLCBzbyB0aGV5IGFsd2F5cyBjb3ZlciB0aGUgcGxhY2Vob2xkZXIuICovXG5cdFx0ZGlzcGxheTogdGFibGU7XG5cdFx0Ym9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcblx0XHRib3JkZXItc3BhY2luZzogN3B4O1xuXHR9XG4uY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkIC5yYXctaHRtbC1lbWJlZF9fcHJldmlldy1wbGFjZWhvbGRlciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGxlZnQ6IDA7XG5cdFx0dG9wOiAwO1xuXHRcdHJpZ2h0OiAwO1xuXHRcdGJvdHRvbTogMDtcblxuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2staHRtbC1vYmplY3QtZW1iZWQtdW5mb2N1c2VkLW91dGxpbmUtd2lkdGg6IDFweDtcbn1cblxuLmNrLXdpZGdldC5odG1sLW9iamVjdC1lbWJlZCB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLWJhc2UpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWZvcmVncm91bmQpO1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0LyogTGVhdmUgc3BhY2UgZm9yIGxhYmVsICovXG5cdHBhZGRpbmctdG9wOiBjYWxjKHZhcigtLWNrLWZvbnQtc2l6ZS10aW55KSArIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpKTtcblx0bWluLXdpZHRoOiBjYWxjKDc2cHggKyB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSk7XG59XG5cbi5jay13aWRnZXQuaHRtbC1vYmplY3QtZW1iZWQ6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpOm5vdCg6aG92ZXIpIHtcblx0XHRvdXRsaW5lOiB2YXIoLS1jay1odG1sLW9iamVjdC1lbWJlZC11bmZvY3VzZWQtb3V0bGluZS13aWR0aCkgZGFzaGVkIHZhcigtLWNrLWNvbG9yLXdpZGdldC1ibHVycmVkLWJvcmRlcik7XG5cdH1cblxuLmNrLXdpZGdldC5odG1sLW9iamVjdC1lbWJlZDo6YmVmb3JlIHtcblx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdGZvbnQtc3R5bGU6IG5vcm1hbDtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Y29udGVudDogYXR0cihkYXRhLWh0bWwtb2JqZWN0LWVtYmVkLWxhYmVsKTtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0YmFja2dyb3VuZDogaHNsKDBkZWcgMCUgNjAlKTtcblx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlKTtcblx0XHRwYWRkaW5nOiBjYWxjKHZhcigtLWNrLXNwYWNpbmctdGlueSkgKyB2YXIoLS1jay1odG1sLW9iamVjdC1lbWJlZC11bmZvY3VzZWQtb3V0bGluZS13aWR0aCkpIHZhcigtLWNrLXNwYWNpbmctc21hbGwpIHZhcigtLWNrLXNwYWNpbmctdGlueSk7XG5cdFx0Ym9yZGVyLXJhZGl1czogMCAwIHZhcigtLWNrLWJvcmRlci1yYWRpdXMpIHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLXRpbnkpO1xuXHRcdGZvbnQtZmFtaWx5OiB2YXIoLS1jay1mb250LWZhY2UpO1xuXHR9XG5cbi8qIE1ha2Ugc3BhY2UgZm9yIGxhYmVsLiAqL1xuXG4uY2std2lkZ2V0Lmh0bWwtb2JqZWN0LWVtYmVkIC5jay13aWRnZXRfX3R5cGUtYXJvdW5kIC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24uY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uX2JlZm9yZSB7XG5cdFx0bWFyZ2luLWxlZnQ6IDUwcHg7XG5cdH1cblxuLmNrLXdpZGdldC5odG1sLW9iamVjdC1lbWJlZCAuaHRtbC1vYmplY3QtZW1iZWRfX2NvbnRlbnQge1xuXHRcdC8qIERpc2FibGUgdXNlciBpbnRlcmFjdGlvbiB3aXRoIGVtYmVkIGNvbnRlbnQgKi9cblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0fVxuXG5kaXYuY2std2lkZ2V0Lmh0bWwtb2JqZWN0LWVtYmVkIHtcblx0bWFyZ2luOiAxZW0gYXV0bztcbn1cblxuc3Bhbi5jay13aWRnZXQuaHRtbC1vYmplY3QtZW1iZWQge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLWltYWdlLWNhcHRpb24tYmFja2dyb3VuZDogaHNsKDAsIDAlLCA5NyUpO1xuXHQtLWNrLWNvbG9yLWltYWdlLWNhcHRpb24tdGV4dDogaHNsKDAsIDAlLCAyMCUpO1xuXHQtLWNrLWNvbG9yLWltYWdlLWNhcHRpb24taGlnaGxpZ2h0ZWQtYmFja2dyb3VuZDogaHNsKDUyZGVnIDEwMCUgNTAlKTtcbn1cblxuLyogQ29udGVudCBzdHlsZXMgKi9cbi5jay1jb250ZW50IC5pbWFnZSA+IGZpZ2NhcHRpb24ge1xuXHRkaXNwbGF5OiB0YWJsZS1jYXB0aW9uO1xuXHRjYXB0aW9uLXNpZGU6IGJvdHRvbTtcblx0d29yZC1icmVhazogYnJlYWstd29yZDtcblx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWltYWdlLWNhcHRpb24tdGV4dCk7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLWltYWdlLWNhcHRpb24tYmFja2dyb3VuZCk7XG5cdHBhZGRpbmc6IC42ZW07XG5cdGZvbnQtc2l6ZTogLjc1ZW07XG5cdG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xuXG5cdC8qIEltcHJvdmUgcGxhY2Vob2xkZXIgcmVuZGVyaW5nIGluIGhpZ2gtY29uc3RyYXN0IG1vZGUgKGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE0OTA3KS4gKi9cbn1cbkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG4uY2stY29udGVudCAuaW1hZ2UgPiBmaWdjYXB0aW9uIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblx0XHRjb2xvcjogdW5zZXQ7XG59XG5cdH1cblxuLyogRWRpdGluZyBzdHlsZXMgKi9cbkBtZWRpYSAoZm9yY2VkLWNvbG9yczogbm9uZSkge1xuXHRcdC5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZSA+IGZpZ2NhcHRpb24uaW1hZ2VfX2NhcHRpb25faGlnaGxpZ2h0ZWQge1xuXHRcdGFuaW1hdGlvbjogY2staW1hZ2UtY2FwdGlvbi1oaWdobGlnaHQgLjZzIGVhc2Utb3V0O1xuXHRcdH1cblx0fVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZSA+IGZpZ2NhcHRpb24uaW1hZ2VfX2NhcHRpb25faGlnaGxpZ2h0ZWQge1xuXHRcdGFuaW1hdGlvbjogbm9uZTtcbn1cblx0fVxuXG5Aa2V5ZnJhbWVzIGNrLWltYWdlLWNhcHRpb24taGlnaGxpZ2h0IHtcblx0MCUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLWltYWdlLWNhcHRpb24taGlnaGxpZ2h0ZWQtYmFja2dyb3VuZCk7XG5cdH1cblxuXHQxMDAlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1pbWFnZS1jYXB0aW9uLWJhY2tncm91bmQpO1xuXHR9XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1pbWFnZS1pbnNlcnQtdXJsIHtcblx0d2lkdGg6IDQwMHB4O1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSAwO1xufVxuXG4uY2suY2staW1hZ2UtaW5zZXJ0LXVybCAuY2staW1hZ2UtaW5zZXJ0LXVybF9fYWN0aW9uLXJvdyB7XG5cdFx0ZGlzcGxheTogZ3JpZDtcblx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qIFByZXNlcnZlIGFzcGVjdCByYXRpbyBvZiB0aGUgcmVzaXplZCBpbWFnZSBhZnRlciBpbnRyb2R1Y2luZyBpbWFnZSBoZWlnaHQgYXR0cmlidXRlLiAqL1xuLmNrLWNvbnRlbnQgaW1nLmltYWdlX3Jlc2l6ZWQge1xuXHRoZWlnaHQ6IGF1dG87XG59XG5cbi5jay1jb250ZW50IC5pbWFnZS5pbWFnZV9yZXNpemVkIHtcblx0bWF4LXdpZHRoOiAxMDAlO1xuXHQvKlxuXHRUaGUgYDxmaWd1cmU+YCBlbGVtZW50IGZvciByZXNpemVkIGltYWdlcyBtdXN0IG5vdCB1c2UgYGRpc3BsYXk6dGFibGVgIGFzIGJyb3dzZXJzIGRvIG5vdCBzdXBwb3J0IGBtYXgtd2lkdGhgIGZvciBpdCB3ZWxsLlxuXHRTZWUgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDAxOTYwNC9jaHJvbWUtc2FmYXJpLWlnbm9yaW5nLW1heC13aWR0aC1pbi10YWJsZS8xNDQyMDY5MSMxNDQyMDY5MSBmb3IgbW9yZS5cblx0Rm9ydHVuYXRlbHksIHNpbmNlIHdlIGNvbnRyb2wgdGhlIHdpZHRoLCB0aGVyZSBpcyBubyByaXNrIHRoYXQgdGhlIGltYWdlIHdpbGwgbG9vayBiYWQuXG5cdCovXG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4uY2stY29udGVudCAuaW1hZ2UuaW1hZ2VfcmVzaXplZCBpbWcge1xuXHRcdC8qIEZvciByZXNpemVkIGltYWdlcyBpdCBpcyB0aGUgYDxmaWd1cmU+YCBlbGVtZW50IHRoYXQgZGV0ZXJtaW5lcyB0aGUgaW1hZ2Ugd2lkdGguICovXG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblxuLmNrLWNvbnRlbnQgLmltYWdlLmltYWdlX3Jlc2l6ZWQgPiBmaWdjYXB0aW9uIHtcblx0XHQvKiBUaGUgYDxmaWd1cmU+YCBlbGVtZW50IHVzZXMgYGRpc3BsYXk6YmxvY2tgLCBzbyBgPGZpZ2NhcHRpb24+YCBhbHNvIGhhcyB0by4gKi9cblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG4vKiBUaGUgcmVzaXplZCBpbmxpbmUgaW1hZ2UgbmVzdGVkIGluIHRoZSB0YWJsZSBzaG91bGQgcmVzcGVjdCBpdHMgcGFyZW50IHNpemUuXG5cdFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85MTE3LiAqL1xuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSB0ZCAuaW1hZ2UtaW5saW5lLmltYWdlX3Jlc2l6ZWQgaW1nLCAuY2suY2stZWRpdG9yX19lZGl0YWJsZSB0aCAuaW1hZ2UtaW5saW5lLmltYWdlX3Jlc2l6ZWQgaW1nIHtcblx0XHRcdG1heC13aWR0aDogMTAwJTtcblx0XHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWJ1dHRvbi5jay1idXR0b25fd2l0aC10ZXh0LmNrLXJlc2l6ZS1pbWFnZS1idXR0b24gLmNrLWJ1dHRvbl9faWNvbiB7XG5cdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG59XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWJ1dHRvbi5jay1idXR0b25fd2l0aC10ZXh0LmNrLXJlc2l6ZS1pbWFnZS1idXR0b24gLmNrLWJ1dHRvbl9faWNvbiB7XG5cdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcbn1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1idXR0b24uY2stcmVzaXplLWltYWdlLWJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdHdpZHRoOiA0ZW07XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1pbWFnZS1zdHlsZS1zcGFjaW5nOiAxLjVlbTtcblx0LS1jay1pbmxpbmUtaW1hZ2Utc3R5bGUtc3BhY2luZzogY2FsYyh2YXIoLS1jay1pbWFnZS1zdHlsZS1zcGFjaW5nKSAvIDIpO1xufVxuXG4vKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE2MzE3ICovXG5cbi8qIFByb3ZpZGVzIGEgbWluaW1hbCBzaWRlIG1hcmdpbiBmb3IgdGhlIGxlZnQgYW5kIHJpZ2h0IGFsaWduZWQgaW1hZ2VzLCBzbyB0aGF0IHRoZSB1c2VyIGhhcyBhIHZpc3VhbCBmZWVkYmFja1xuXHRcdGNvbmZpcm1pbmcgc3VjY2Vzc2Z1bCBhcHBsaWNhdGlvbiBvZiB0aGUgc3R5bGUgaWYgaW1hZ2Ugd2lkdGggZXhjZWVkcyB0aGUgZWRpdG9yJ3Mgc2l6ZS5cblx0XHRTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTM0MiAqL1xuXG4uY2stY29udGVudCAuaW1hZ2UuaW1hZ2Utc3R5bGUtYmxvY2stYWxpZ24tbGVmdCxcblx0XHQuY2stY29udGVudCAuaW1hZ2UuaW1hZ2Utc3R5bGUtYmxvY2stYWxpZ24tcmlnaHQge1xuXHRcdFx0bWF4LXdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1jay1pbWFnZS1zdHlsZS1zcGFjaW5nKSk7XG5cdFx0fVxuXG4vKiBBbGxvd3MgZGlzcGxheWluZyBtdWx0aXBsZSBmbG9hdGluZyBpbWFnZXMgaW4gdGhlIHNhbWUgbGluZS5cblx0XHRTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTE4MyNpc3N1ZWNvbW1lbnQtODA0OTg4MTMyICovXG5cbi5jay1jb250ZW50IC5pbWFnZS5pbWFnZS1zdHlsZS1hbGlnbi1sZWZ0LFxuXHRcdC5jay1jb250ZW50IC5pbWFnZS5pbWFnZS1zdHlsZS1hbGlnbi1yaWdodCB7XG5cdFx0XHRjbGVhcjogbm9uZTtcblx0XHR9XG5cbi5jay1jb250ZW50IC5pbWFnZS5pbWFnZS1zdHlsZS1zaWRlIHtcblx0XHRcdGZsb2F0OiByaWdodDtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1pbWFnZS1zdHlsZS1zcGFjaW5nKTtcblx0XHRcdG1heC13aWR0aDogNTAlO1xuXHRcdH1cblxuLmNrLWNvbnRlbnQgLmltYWdlLmltYWdlLXN0eWxlLWFsaWduLWxlZnQge1xuXHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLWltYWdlLXN0eWxlLXNwYWNpbmcpO1xuXHRcdH1cblxuLmNrLWNvbnRlbnQgLmltYWdlLmltYWdlLXN0eWxlLWFsaWduLXJpZ2h0IHtcblx0XHRcdGZsb2F0OiByaWdodDtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1pbWFnZS1zdHlsZS1zcGFjaW5nKTtcblx0XHR9XG5cbi5jay1jb250ZW50IC5pbWFnZS5pbWFnZS1zdHlsZS1ibG9jay1hbGlnbi1yaWdodCB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0XHR9XG5cbi5jay1jb250ZW50IC5pbWFnZS5pbWFnZS1zdHlsZS1ibG9jay1hbGlnbi1sZWZ0IHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xuXHRcdH1cblxuLmNrLWNvbnRlbnQgLmltYWdlLXN0eWxlLWFsaWduLWNlbnRlciB7XG5cdFx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdFx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xuXHR9XG5cbi5jay1jb250ZW50IC5pbWFnZS1zdHlsZS1hbGlnbi1sZWZ0IHtcblx0XHRmbG9hdDogbGVmdDtcblx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLWltYWdlLXN0eWxlLXNwYWNpbmcpO1xuXHR9XG5cbi5jay1jb250ZW50IC5pbWFnZS1zdHlsZS1hbGlnbi1yaWdodCB7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1pbWFnZS1zdHlsZS1zcGFjaW5nKTtcblx0fVxuXG4vKiBTaW11bGF0ZXMgbWFyZ2luIGNvbGxhcHNpbmcgd2l0aCB0aGUgcHJlY2VkaW5nIHBhcmFncmFwaCwgd2hpY2ggZG9lcyBub3Qgd29yayBmb3IgdGhlIGZsb2F0aW5nIGVsZW1lbnRzLiAqL1xuXG4uY2stY29udGVudCBwICsgLmltYWdlLmltYWdlLXN0eWxlLWFsaWduLWxlZnQsXG5cdC5jay1jb250ZW50IHAgKyAuaW1hZ2UuaW1hZ2Utc3R5bGUtYWxpZ24tcmlnaHQsXG5cdC5jay1jb250ZW50IHAgKyAuaW1hZ2UuaW1hZ2Utc3R5bGUtc2lkZSB7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0fVxuXG4uY2stY29udGVudCAuaW1hZ2UtaW5saW5lLmltYWdlLXN0eWxlLWFsaWduLWxlZnQsXG5cdFx0LmNrLWNvbnRlbnQgLmltYWdlLWlubGluZS5pbWFnZS1zdHlsZS1hbGlnbi1yaWdodCB7XG5cdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1pbmxpbmUtaW1hZ2Utc3R5bGUtc3BhY2luZyk7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiB2YXIoLS1jay1pbmxpbmUtaW1hZ2Utc3R5bGUtc3BhY2luZyk7XG5cdFx0fVxuXG4uY2stY29udGVudCAuaW1hZ2UtaW5saW5lLmltYWdlLXN0eWxlLWFsaWduLWxlZnQge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1pbmxpbmUtaW1hZ2Utc3R5bGUtc3BhY2luZyk7XG5cdFx0fVxuXG4uY2stY29udGVudCAuaW1hZ2UtaW5saW5lLmltYWdlLXN0eWxlLWFsaWduLXJpZ2h0IHtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1pbmxpbmUtaW1hZ2Utc3R5bGUtc3BhY2luZyk7XG5cdFx0fVxuXG4vKiBUaGUgYnV0dG9uIHNob3VsZCBkaXNwbGF5IGFzIGEgcmVndWxhciBkcm9wLWRvd24gaWYgdGhlIGFjdGlvbiBidXR0b25cblx0aXMgZm9yY2VkIHRvIGZpcmUgdGhlIHNhbWUgYWN0aW9uIGFzIHRoZSBhcnJvdyBidXR0b24uICovXG5cbi5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9mbGF0dGVuOmhvdmVyID4gLmNrLXNwbGl0YnV0dG9uX19hY3Rpb246bm90KC5jay1kaXNhYmxlZCksXG5cdFx0XHQuY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fZmxhdHRlbi5jay1zcGxpdGJ1dHRvbl9vcGVuID4gLmNrLXNwbGl0YnV0dG9uX19hY3Rpb246bm90KC5jay1kaXNhYmxlZCksXG5cdFx0XHQuY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fZmxhdHRlbjpob3ZlciA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCksXG5cdFx0XHQuY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fZmxhdHRlbi5jay1zcGxpdGJ1dHRvbl9vcGVuID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpub3QoLmNrLWRpc2FibGVkKSxcblx0XHRcdC5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9mbGF0dGVuOmhvdmVyID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpub3QoLmNrLWRpc2FibGVkKTpub3QoOmhvdmVyKSxcblx0XHRcdC5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9mbGF0dGVuLmNrLXNwbGl0YnV0dG9uX29wZW4gPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCguY2stZGlzYWJsZWQpOm5vdCg6aG92ZXIpIHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3ItYnV0dG9uLW9uLWJhY2tncm91bmQpO1xuXHRcdFx0fVxuXG4uY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fZmxhdHRlbjpob3ZlciA+IC5jay1zcGxpdGJ1dHRvbl9fYWN0aW9uOm5vdCguY2stZGlzYWJsZWQpOjphZnRlciwgLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX2ZsYXR0ZW4uY2stc3BsaXRidXR0b25fb3BlbiA+IC5jay1zcGxpdGJ1dHRvbl9fYWN0aW9uOm5vdCguY2stZGlzYWJsZWQpOjphZnRlciwgLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX2ZsYXR0ZW46aG92ZXIgPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCguY2stZGlzYWJsZWQpOjphZnRlciwgLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX2ZsYXR0ZW4uY2stc3BsaXRidXR0b25fb3BlbiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCk6OmFmdGVyLCAuY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fZmxhdHRlbjpob3ZlciA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCk6bm90KDpob3Zlcik6OmFmdGVyLCAuY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fZmxhdHRlbi5jay1zcGxpdGJ1dHRvbl9vcGVuID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpub3QoLmNrLWRpc2FibGVkKTpub3QoOmhvdmVyKTo6YWZ0ZXIge1xuXHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdH1cblxuLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX2ZsYXR0ZW4uY2stc3BsaXRidXR0b25fb3Blbjpob3ZlciA+IC5jay1zcGxpdGJ1dHRvbl9fYWN0aW9uOm5vdCguY2stZGlzYWJsZWQpLFxuXHRcdFx0LmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX2ZsYXR0ZW4uY2stc3BsaXRidXR0b25fb3Blbjpob3ZlciA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCksXG5cdFx0XHQuY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fZmxhdHRlbi5jay1zcGxpdGJ1dHRvbl9vcGVuOmhvdmVyID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpub3QoLmNrLWRpc2FibGVkKTpub3QoOmhvdmVyKSB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1vbi1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0XHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlLFxuXHQuY2suY2stZWRpdG9yX19lZGl0YWJsZSAuaW1hZ2UtaW5saW5lIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdH1cblxuLyogVXBsb2FkIHByb2dyZXNzIGJhci4gKi9cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlIC5jay1wcm9ncmVzcy1iYXIsXG5cdC5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZS1pbmxpbmUgLmNrLXByb2dyZXNzLWJhciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogMDtcblx0XHRsZWZ0OiAwO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay1pbWFnZS11cGxvYWQtY29tcGxldGUtaWNvbiB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cblx0Lypcblx0ICogU21hbGxlciBpbWFnZXMgc2hvdWxkIGhhdmUgdGhlIGljb24gY2xvc2VyIHRvIHRoZSBib3JkZXIuXG5cdCAqIE1hdGNoIHRoZSBpY29uIHBvc2l0aW9uIHdpdGggdGhlIGxpbmtlZCBpbWFnZSBpbmRpY2F0b3IgYnJvdWdodCBieSB0aGUgbGluayBpbWFnZSBmZWF0dXJlLlxuXHQgKi9cblx0dG9wOiBtaW4odmFyKC0tY2stc3BhY2luZy1tZWRpdW0pLCA2JSk7XG5cdHJpZ2h0OiBtaW4odmFyKC0tY2stc3BhY2luZy1tZWRpdW0pLCA2JSk7XG5cdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0ei1pbmRleDogMTtcbn1cblxuLmNrLWltYWdlLXVwbG9hZC1jb21wbGV0ZS1pY29uOjphZnRlciB7XG5cdFx0Y29udGVudDogXCJcIjtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrIC5jay11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xufVxuXG4uY2sgLmNrLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXI6OmJlZm9yZSB7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay1jb250ZW50IC5pbWFnZSB7XG5cdFx0ZGlzcGxheTogdGFibGU7XG5cdFx0Y2xlYXI6IGJvdGg7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0LyogTWFrZSBzdXJlIHRoZXJlIGlzIHNvbWUgc3BhY2UgYmV0d2VlbiB0aGUgY29udGVudCBhbmQgdGhlIGltYWdlLiBDZW50ZXIgaW1hZ2UgYnkgZGVmYXVsdC4gKi9cblx0XHQvKiBUaGUgZmlyc3QgdmFsdWUgc2hvdWxkIGJlIGVxdWFsIHRvIC0tY2stc3BhY2luZy1sYXJnZSB2YXJpYWJsZSBpZiB1c2VkIGluIHRoZSBlZGl0b3IgY29udGV4dFxuXHQgXHR0byBhdm9pZCB0aGUgY29udGVudCBqdW1waW5nIChTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTgyNSkuICovXG5cdFx0bWFyZ2luOiAwLjllbSBhdXRvO1xuXG5cdFx0LyogTWFrZSBzdXJlIHRoZSBjYXB0aW9uIHdpbGwgYmUgZGlzcGxheWVkIHByb3Blcmx5IChTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE4NzApLiAqL1xuXHRcdG1pbi13aWR0aDogNTBweDtcblx0fVxuXG4uY2stY29udGVudCAuaW1hZ2UgaW1nIHtcblx0XHRcdC8qIFByZXZlbnQgdW5uZWNlc3NhcnkgbWFyZ2lucyBjYXVzZWQgYnkgbGluZS1oZWlnaHQgKHNlZSAjNDQpLiAqL1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cblx0XHRcdC8qIENlbnRlciB0aGUgaW1hZ2UgaWYgaXRzIHdpZHRoIGlzIHNtYWxsZXIgdGhhbiB0aGUgY29udGVudCdzIHdpZHRoLiAqL1xuXHRcdFx0bWFyZ2luOiAwIGF1dG87XG5cblx0XHRcdC8qIE1ha2Ugc3VyZSB0aGUgaW1hZ2UgbmV2ZXIgZXhjZWVkcyB0aGUgc2l6ZSBvZiB0aGUgcGFyZW50IGNvbnRhaW5lciAoY2tlZGl0b3IvY2tlZGl0b3I1LXVpIzY3KS4gKi9cblx0XHRcdG1heC13aWR0aDogMTAwJTtcblxuXHRcdFx0LyogTWFrZSBzdXJlIHRoZSBpbWFnZSBpcyBuZXZlciBzbWFsbGVyIHRoYW4gdGhlIHBhcmVudCBjb250YWluZXIgKFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTMwMCkuICovXG5cdFx0XHRtaW4td2lkdGg6IDEwMCU7XG5cblx0XHRcdC8qIEtlZXAgcHJvcG9ydGlvbnMgb2YgdGhlIGJsb2NrIGltYWdlIGlmIHRoZSBoZWlnaHQgaXMgc2V0IGFuZCB0aGUgaW1hZ2UgaXMgd2lkZXIgdGhhbiB0aGUgZWRpdG9yIHdpZHRoLlxuXHRcdFx0U2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE0NTQyLiAqL1xuXHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdH1cblxuLmNrLWNvbnRlbnQgLmltYWdlLWlubGluZSB7XG5cdFx0Lypcblx0XHQgKiBOb3JtYWxseSwgdGhlIC5pbWFnZS1pbmxpbmUgd291bGQgaGF2ZSBcImRpc3BsYXk6IGlubGluZS1ibG9ja1wiIGFuZCBcImltZyB7IHdpZHRoOiAxMDAlIH1cIiAodG8gZm9sbG93IHRoZSB3cmFwcGVyIHdoaWxlIHJlc2l6aW5nKS5cblx0XHQgKiBVbmZvcnR1bmF0ZWx5LCB0b2dldGhlciB3aXRoIFwic3Jjc2V0XCIsIGl0IGdldHMgYXV0b21hdGljYWxseSBzdHJldGNoZWQgdXAgdG8gdGhlIHdpZHRoIG9mIHRoZSBlZGl0aW5nIHJvb3QuXG5cdFx0ICogVGhpcyBzdHJhbmdlIGJlaGF2aW9yIGRvZXMgbm90IGhhcHBlbiB3aXRoIGlubGluZS1mbGV4LlxuXHRcdCAqL1xuXHRcdGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXG5cdFx0LyogV2hpbGUgYmVpbmcgcmVzaXplZCwgZG9uJ3QgYWxsb3cgdGhlIGltYWdlIHRvIGV4Y2VlZCB0aGUgd2lkdGggb2YgdGhlIGVkaXRpbmcgcm9vdC4gKi9cblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cblx0XHQvKiBUaGlzIGlzIHJlcXVpcmVkIGJ5IFNhZmFyaSB0byByZXNpemUgaW1hZ2VzIGluIGEgc2Vuc2libGUgd2F5LiBXaXRob3V0IHRoaXMsIHRoZSBicm93c2VyIGJyZWFrcyB0aGUgcmF0aW8uICovXG5cdFx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cblx0XHQvKiBXaGVuIHRoZSBwaWN0dXJlIGlzIHByZXNlbnQgaXQgbXVzdCBhY3QgYXMgYSBmbGV4IGNvbnRhaW5lciB0byBsZXQgdGhlIGltZyByZXNpemUgcHJvcGVybHkgKi9cblx0fVxuXG4uY2stY29udGVudCAuaW1hZ2UtaW5saW5lIHBpY3R1cmUge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHR9XG5cbi8qIFdoZW4gdGhlIHBpY3R1cmUgaXMgcHJlc2VudCwgaXQgbXVzdCBhY3QgbGlrZSBhIHJlc2l6YWJsZSBpbWcuICovXG5cbi5jay1jb250ZW50IC5pbWFnZS1pbmxpbmUgcGljdHVyZSxcblx0XHQuY2stY29udGVudCAuaW1hZ2UtaW5saW5lIGltZyB7XG5cdFx0XHQvKiBUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgdGhlIGltZyB0byBzcGFuIHRoZSBlbnRpcmUgLmltYWdlLWlubGluZSB3cmFwcGVyIGFuZCB0byByZXNpemUgcHJvcGVybHkuICovXG5cdFx0XHRmbGV4LWdyb3c6IDE7XG5cdFx0XHRmbGV4LXNocmluazogMTtcblxuXHRcdFx0LyogUHJldmVudHMgb3ZlcmZsb3dpbmcgdGhlIGVkaXRpbmcgcm9vdCBib3VuZGFyaWVzIHdoZW4gYW4gaW5saW5lIGltYWdlIGlzIHZlcnkgd2lkZS4gKi9cblx0XHRcdG1heC13aWR0aDogMTAwJTtcblx0XHR9XG5cbi8qXG5cdCAqIEluaGVydGl0IHRoZSBjb250ZW50IHN0eWxlcyBwYWRkaW5nIG9mIHRoZSA8ZmlnY2FwdGlvbj4gaW4gY2FzZSB0aGUgaW50ZWdyYXRpb24gb3ZlcnJpZGVzIGB0ZXh0LWFsaWduOiBjZW50ZXJgXG5cdCAqIG9mIGAuaW1hZ2VgIChlLmcuIHRvIHRoZSBsZWZ0L3JpZ2h0KS4gVGhpcyBlbnN1cmVzIHRoZSBwbGFjZWhvbGRlciBzdGF5cyBhdCB0aGUgcGFkZGluZyBqdXN0IGxpa2UgdGhlIG5hdGl2ZVxuXHQgKiBjYXJldCBkb2VzLCBhbmQgbm90IGF0IHRoZSBlZGdlIG9mIDxmaWdjYXB0aW9uPi5cblx0ICovXG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZSA+IGZpZ2NhcHRpb24uY2stcGxhY2Vob2xkZXI6OmJlZm9yZSB7XG5cdFx0cGFkZGluZy1sZWZ0OiBpbmhlcml0O1xuXHRcdHBhZGRpbmctcmlnaHQ6IGluaGVyaXQ7XG5cblx0XHQvKlxuXHRcdCAqIE1ha2Ugc3VyZSB0aGUgaW1hZ2UgY2FwdGlvbiBwbGFjZWhvbGRlciBkb2Vzbid0IG92ZXJmbG93IHRoZSBwbGFjZWhvbGRlciBhcmVhLlxuXHRcdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85MTYyLlxuXHRcdCAqL1xuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0fVxuXG4vKlxuXHQgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTUxMTUuXG5cdCAqL1xuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuaW1hZ2Uge1xuXHRcdHotaW5kZXg6IDE7XG5cblx0XHQvKlxuXHRcdCAqIE1ha2Ugc3VyZSB0aGUgc2VsZWN0ZWQgaW1hZ2UgYWx3YXlzIHN0YXlzIG9uIHRvcCBvZiBpdHMgc2libGluZ3MuXG5cdFx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzkxMDguXG5cdFx0ICovXG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlLmNrLXdpZGdldF9zZWxlY3RlZCB7XG5cdFx0XHR6LWluZGV4OiAyO1xuXHRcdH1cblxuLypcblx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE1MTE1LlxuXHQgKi9cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlLWlubGluZSB7XG5cdFx0ei1pbmRleDogMTtcblxuXHRcdC8qXG5cdFx0ICogTWFrZSBzdXJlIHRoZSBzZWxlY3RlZCBpbmxpbmUgaW1hZ2UgYWx3YXlzIHN0YXlzIG9uIHRvcCBvZiBpdHMgc2libGluZ3MuXG5cdFx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzkxMDguXG5cdFx0ICovXG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlLWlubGluZS5jay13aWRnZXRfc2VsZWN0ZWQge1xuXHRcdFx0ei1pbmRleDogMjtcblxuXHRcdFx0Lypcblx0XHRcdCAqIE1ha2Ugc3VyZSB0aGUgbmF0aXZlIGJyb3dzZXIgc2VsZWN0aW9uIHN0eWxlIGlzIG5vdCBkaXNwbGF5ZWQuXG5cdFx0XHQgKiBJbmxpbmUgaW1hZ2Ugd2lkZ2V0cyBoYXZlIHRoZWlyIG93biBzdHlsZXMgZm9yIHRoZSBzZWxlY3RlZCBzdGF0ZSBhbmRcblx0XHRcdCAqIGxlYXZpbmcgdGhpcyB1cCB0byB0aGUgYnJvd3NlciBpcyBhc2tpbmcgZm9yIGEgdmlzdWFsIGNvbGxpc2lvbi5cblx0XHRcdCAqL1xuXHRcdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlLWlubGluZS5jay13aWRnZXRfc2VsZWN0ZWQgOjpzZWxlY3Rpb24ge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXG4vKiBLZWVwIHByb3BvcnRpb25zIG9mIHRoZSBpbmxpbmUgaW1hZ2UgaWYgdGhlIGhlaWdodCBpcyBzZXQgYW5kIHRoZSBpbWFnZSBpcyB3aWRlciB0aGFuIHRoZSBlZGl0b3Igd2lkdGguXG5cdFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNDU0Mi4gKi9cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlLWlubGluZSBpbWcge1xuXHRcdGhlaWdodDogYXV0bztcblx0fVxuXG4vKiBUaGUgaW5saW5lIGltYWdlIG5lc3RlZCBpbiB0aGUgdGFibGUgc2hvdWxkIGhhdmUgaXRzIG9yaWdpbmFsIHNpemUgaWYgbm90IHJlc2l6ZWQuXG5cdFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85MTE3LiAqL1xuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSB0ZCAuaW1hZ2UtaW5saW5lIGltZywgLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgdGggLmltYWdlLWlubGluZSBpbWcge1xuXHRcdFx0bWF4LXdpZHRoOiBub25lO1xuXHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgaW1nLmltYWdlX3BsYWNlaG9sZGVyIHtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTAwJTtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stbGluay1wcm92aWRlcnMgPiAuY2stbGluay1wcm92aWRlcnNfX2xpc3Qge1xuXHRcdG92ZXJmbG93LXg6IGhpZGRlbjtcblx0XHRvdmVyZmxvdy15OiBhdXRvO1xuXHRcdG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG5cdH1cblxuLmNrLmNrLWxpbmstcHJvdmlkZXJzID4gLmNrLWxpbmstcHJvdmlkZXJzX19saXN0IC5jay1idXR0b24gPiAuY2staWNvbiB7XG5cdFx0XHRcdGZsZXgtc2hyaW5rOiAwO1xuXHRcdFx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stbGluay10b29sYmFyX19wcmV2aWV3IHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uY2suY2stbGluay10b29sYmFyX19wcmV2aWV3IC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qIExpbmtlZCBpbWFnZSBpbmRpY2F0b3IgKi9cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgZmlndXJlLmltYWdlID4gYTo6YWZ0ZXIsIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlIGEgc3Bhbi5pbWFnZS1pbmxpbmU6OmFmdGVyIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdH1cblxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKiBHZW5lcmljIGNsYXNzIHRoYXQgd3JhcHMgZWFjaCBsaW5rIGJhbGxvb24gdmlldy4gKi9cbi5jay5jay1saW5rLWZvcm0gLmNrLWxpbmstZm9ybV9fcHJvdmlkZXJzLWxpc3Qge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0fVxuLmNrLmNrLWxpbmstZm9ybSAuY2stbGluay1mb3JtX19wcm92aWRlcnMtbGlzdCAuY2stbGlua19fYnV0dG9uID4gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRmbGV4LWdyb3c6IDE7XG5cdFx0XHR9XG4uY2suY2stbGluay1mb3JtIC5jay1saW5rX19pdGVtczplbXB0eSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2stZWRpdG9yX19lZGl0YWJsZSAuY2stbGlzdC1ib2d1cy1wYXJhZ3JhcGgge1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWxpc3Qtc3R5bGVzLWxpc3Qge1xuXHRkaXNwbGF5OiBncmlkO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2stY29udGVudCBvbCB7XG5cdGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDtcbn1cblxuLmNrLWNvbnRlbnQgb2wgb2wge1xuXHRcdGxpc3Qtc3R5bGUtdHlwZTogbG93ZXItbGF0aW47XG5cdH1cblxuLmNrLWNvbnRlbnQgb2wgb2wgb2wge1xuXHRcdFx0bGlzdC1zdHlsZS10eXBlOiBsb3dlci1yb21hbjtcblx0XHR9XG5cbi5jay1jb250ZW50IG9sIG9sIG9sIG9sIHtcblx0XHRcdFx0bGlzdC1zdHlsZS10eXBlOiB1cHBlci1sYXRpbjtcblx0XHRcdH1cblxuLmNrLWNvbnRlbnQgb2wgb2wgb2wgb2wgb2wge1xuXHRcdFx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogdXBwZXItcm9tYW47XG5cdFx0XHRcdH1cblxuLmNrLWNvbnRlbnQgdWwge1xuXHRsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG59XG5cbi5jay1jb250ZW50IHVsIHVsIHtcblx0XHRsaXN0LXN0eWxlLXR5cGU6IGNpcmNsZTtcblx0fVxuXG4uY2stY29udGVudCB1bCB1bCB1bCB7XG5cdFx0XHRsaXN0LXN0eWxlLXR5cGU6IHNxdWFyZTtcblx0XHR9XG5cbi5jay1jb250ZW50IHVsIHVsIHVsIHVsIHtcblx0XHRcdFx0bGlzdC1zdHlsZS10eXBlOiBzcXVhcmU7XG5cdFx0XHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemU6IDE2cHg7XG59XG5cbi8qXG4gKiBUby1kbyBsaXN0IGNvbnRlbnQgc3R5bGVzLlxuICovXG4uY2stY29udGVudCAudG9kby1saXN0IHtcblx0bGlzdC1zdHlsZTogbm9uZTtcbn1cbi5jay1jb250ZW50IC50b2RvLWxpc3QgbGkge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRtYXJnaW4tYm90dG9tOiA1cHg7XG5cdH1cbi5jay1jb250ZW50IC50b2RvLWxpc3QgbGkgLnRvZG8tbGlzdCB7XG5cdFx0XHRtYXJnaW4tdG9wOiA1cHg7XG5cdFx0fVxuLmNrLWNvbnRlbnQgLnRvZG8tbGlzdCAudG9kby1saXN0X19sYWJlbCA+IGlucHV0IHtcblx0XHRcdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdHdpZHRoOiB2YXIoLS1jay10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemUpO1xuXHRcdFx0aGVpZ2h0OiB2YXIoLS1jay10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemUpO1xuXHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRcdC8qIE5lZWRlZCBvbiBpT1MgKi9cblx0XHRcdGJvcmRlcjogMDtcblx0XHRcdC8qIExUUiBzdHlsZXMgKi9cblx0XHRcdGxlZnQ6IC0yNXB4O1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAtMTVweDtcblx0XHRcdHJpZ2h0OiAwO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHQvKiBSVEwgc3R5bGVzICovXG5cdFx0fVxuLmNrLWNvbnRlbnRbZGlyPXJ0bF0gLnRvZG8tbGlzdCAudG9kby1saXN0X19sYWJlbCA+IGlucHV0IHtcblx0XHRsZWZ0OiAwO1xuXHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHRyaWdodDogLTI1cHg7XG5cdFx0bWFyZ2luLWxlZnQ6IC0xNXB4O1xuXHR9XG4uY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gaW5wdXQ6OmJlZm9yZSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIGhzbCgwLCAwJSwgMjAlKTtcblx0XHRib3JkZXItcmFkaXVzOiAycHg7XG5cdFx0dHJhbnNpdGlvbjogMjUwbXMgZWFzZS1pbi1vdXQgYm94LXNoYWRvdztcblx0fVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jay1jb250ZW50IC50b2RvLWxpc3QgLnRvZG8tbGlzdF9fbGFiZWwgPiBpbnB1dDo6YmVmb3JlIHtcblx0XHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdH1cblx0XHR9XG4uY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gaW5wdXQ6OmFmdGVyIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Ym94LXNpemluZzogY29udGVudC1ib3g7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0Y29udGVudDogJyc7XG5cblx0XHQvKiBDYWxjdWxhdGUgdGljayBwb3NpdGlvbiwgc2l6ZSBhbmQgYm9yZGVyLXdpZHRoIHByb3BvcnRpb25hbCB0byB0aGUgY2hlY2ttYXJrIHNpemUuICovXG5cdFx0bGVmdDogY2FsYyggdmFyKC0tY2stdG9kby1saXN0LWNoZWNrbWFyay1zaXplKSAvIDMgKTtcblx0XHR0b3A6IGNhbGMoIHZhcigtLWNrLXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSkgLyA1LjMgKTtcblx0XHR3aWR0aDogY2FsYyggdmFyKC0tY2stdG9kby1saXN0LWNoZWNrbWFyay1zaXplKSAvIDUuMyApO1xuXHRcdGhlaWdodDogY2FsYyggdmFyKC0tY2stdG9kby1saXN0LWNoZWNrbWFyay1zaXplKSAvIDIuNiApO1xuXHRcdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRib3JkZXItd2lkdGg6IDAgY2FsYyggdmFyKC0tY2stdG9kby1saXN0LWNoZWNrbWFyay1zaXplKSAvIDggKSBjYWxjKCB2YXIoLS1jay10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemUpIC8gOCApIDA7XG5cdFx0dHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuXHR9XG4uY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gaW5wdXRbY2hlY2tlZF06OmJlZm9yZSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiBoc2woMTI2LCA2NCUsIDQxJSk7XG5cdFx0XHRib3JkZXItY29sb3I6IGhzbCgxMjYsIDY0JSwgNDElKTtcblx0XHR9XG4uY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gaW5wdXRbY2hlY2tlZF06OmFmdGVyIHtcblx0XHRcdGJvcmRlci1jb2xvcjogaHNsKDAsIDAlLCAxMDAlKTtcblx0XHR9XG4uY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsIC50b2RvLWxpc3RfX2xhYmVsX19kZXNjcmlwdGlvbiB7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdH1cbi5jay1jb250ZW50IC50b2RvLWxpc3QgLnRvZG8tbGlzdF9fbGFiZWwudG9kby1saXN0X19sYWJlbF93aXRob3V0LWRlc2NyaXB0aW9uIGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR9XG5cbi8qXG4gKiBUby1kbyBsaXN0IGVkaXRpbmcgdmlldyBzdHlsZXMuXG4gKi9cbi8qXG5cdCAqIFRvLWRvIGxpc3Qgc2hvdWxkIGJlIGludGVyYWN0aXZlIG9ubHkgZHVyaW5nIHRoZSBlZGl0aW5nXG5cdCAqIChodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8yMDkwKS5cblx0ICovXG4uY2stZWRpdG9yX19lZGl0YWJsZS5jay1jb250ZW50IC50b2RvLWxpc3QgLnRvZG8tbGlzdF9fbGFiZWwgPiBpbnB1dCxcblx0LmNrLWVkaXRvcl9fZWRpdGFibGUuY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gc3Bhbltjb250ZW50ZWRpdGFibGU9ZmFsc2VdID4gaW5wdXQge1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0fVxuLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gaW5wdXQ6aG92ZXI6OmJlZm9yZSwgLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gc3Bhbltjb250ZW50ZWRpdGFibGU9ZmFsc2VdID4gaW5wdXQ6aG92ZXI6OmJlZm9yZSB7XG5cdFx0XHRib3gtc2hhZG93OiAwIDAgMCA1cHggaHNsYSgwLCAwJSwgMCUsIDAuMSk7XG5cdFx0fVxuLypcblx0ICogRG9jdW1lbnQgTGlzdHMgLSBlZGl0aW5nIHZpZXcgaGFzIGFuIGFkZGl0aW9uYWwgc3BhbiBhcm91bmQgY2hlY2tib3guXG5cdCAqL1xuLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gc3Bhbltjb250ZW50ZWRpdGFibGU9ZmFsc2VdID4gaW5wdXQge1xuXHRcdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHdpZHRoOiB2YXIoLS1jay10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemUpO1xuXHRcdGhlaWdodDogdmFyKC0tY2stdG9kby1saXN0LWNoZWNrbWFyay1zaXplKTtcblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdC8qIE5lZWRlZCBvbiBpT1MgKi9cblx0XHRib3JkZXI6IDA7XG5cdFx0LyogTFRSIHN0eWxlcyAqL1xuXHRcdGxlZnQ6IC0yNXB4O1xuXHRcdG1hcmdpbi1yaWdodDogLTE1cHg7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0LyogUlRMIHN0eWxlcyAqL1xuXHR9XG4uY2stZWRpdG9yX19lZGl0YWJsZS5jay1jb250ZW50W2Rpcj1ydGxdIC50b2RvLWxpc3QgLnRvZG8tbGlzdF9fbGFiZWwgPiBzcGFuW2NvbnRlbnRlZGl0YWJsZT1mYWxzZV0gPiBpbnB1dCB7XG5cdFx0bGVmdDogMDtcblx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0cmlnaHQ6IC0yNXB4O1xuXHRcdG1hcmdpbi1sZWZ0OiAtMTVweDtcblx0fVxuLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gc3Bhbltjb250ZW50ZWRpdGFibGU9ZmFsc2VdID4gaW5wdXQ6OmJlZm9yZSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIGhzbCgwLCAwJSwgMjAlKTtcblx0XHRib3JkZXItcmFkaXVzOiAycHg7XG5cdFx0dHJhbnNpdGlvbjogMjUwbXMgZWFzZS1pbi1vdXQgYm94LXNoYWRvdztcblx0fVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWNvbnRlbnQgLnRvZG8tbGlzdCAudG9kby1saXN0X19sYWJlbCA+IHNwYW5bY29udGVudGVkaXRhYmxlPWZhbHNlXSA+IGlucHV0OjpiZWZvcmUge1xuXHRcdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0fVxuXHRcdH1cbi5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWNvbnRlbnQgLnRvZG8tbGlzdCAudG9kby1saXN0X19sYWJlbCA+IHNwYW5bY29udGVudGVkaXRhYmxlPWZhbHNlXSA+IGlucHV0OjphZnRlciB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdGNvbnRlbnQ6ICcnO1xuXG5cdFx0LyogQ2FsY3VsYXRlIHRpY2sgcG9zaXRpb24sIHNpemUgYW5kIGJvcmRlci13aWR0aCBwcm9wb3J0aW9uYWwgdG8gdGhlIGNoZWNrbWFyayBzaXplLiAqL1xuXHRcdGxlZnQ6IGNhbGMoIHZhcigtLWNrLXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSkgLyAzICk7XG5cdFx0dG9wOiBjYWxjKCB2YXIoLS1jay10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemUpIC8gNS4zICk7XG5cdFx0d2lkdGg6IGNhbGMoIHZhcigtLWNrLXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSkgLyA1LjMgKTtcblx0XHRoZWlnaHQ6IGNhbGMoIHZhcigtLWNrLXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSkgLyAyLjYgKTtcblx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0Ym9yZGVyLXdpZHRoOiAwIGNhbGMoIHZhcigtLWNrLXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSkgLyA4ICkgY2FsYyggdmFyKC0tY2stdG9kby1saXN0LWNoZWNrbWFyay1zaXplKSAvIDggKSAwO1xuXHRcdHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcblx0fVxuLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gc3Bhbltjb250ZW50ZWRpdGFibGU9ZmFsc2VdID4gaW5wdXRbY2hlY2tlZF06OmJlZm9yZSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiBoc2woMTI2LCA2NCUsIDQxJSk7XG5cdFx0XHRib3JkZXItY29sb3I6IGhzbCgxMjYsIDY0JSwgNDElKTtcblx0XHR9XG4uY2stZWRpdG9yX19lZGl0YWJsZS5jay1jb250ZW50IC50b2RvLWxpc3QgLnRvZG8tbGlzdF9fbGFiZWwgPiBzcGFuW2NvbnRlbnRlZGl0YWJsZT1mYWxzZV0gPiBpbnB1dFtjaGVja2VkXTo6YWZ0ZXIge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiBoc2woMCwgMCUsIDEwMCUpO1xuXHRcdH1cbi5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWNvbnRlbnQgLnRvZG8tbGlzdCAudG9kby1saXN0X19sYWJlbC50b2RvLWxpc3RfX2xhYmVsX3dpdGhvdXQtZGVzY3JpcHRpb24gaW5wdXRbdHlwZT1jaGVja2JveF0ge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLWNvbnRlbnQgLm1lZGlhIHtcblx0LyogRG9uJ3QgYWxsb3cgZmxvYXRlZCBjb250ZW50IG92ZXJsYXAgdGhlIG1lZGlhLlxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LW1lZGlhLWVtYmVkL2lzc3Vlcy81MyAqL1xuXHRjbGVhcjogYm90aDtcblxuXHQvKiBNYWtlIHN1cmUgdGhlcmUgaXMgc29tZSBzcGFjZSBiZXR3ZWVuIHRoZSBjb250ZW50IGFuZCB0aGUgbWVkaWEuICovXG5cdC8qIFRoZSBmaXJzdCB2YWx1ZSBzaG91bGQgYmUgZXF1YWwgdG8gLS1jay1zcGFjaW5nLWxhcmdlIHZhcmlhYmxlIGlmIHVzZWQgaW4gdGhlIGVkaXRvciBjb250ZXh0XG5cdHRvIGF2b2lkIHRoZSBjb250ZW50IGp1bXBpbmcgKFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85ODI1KS4gKi9cblx0bWFyZ2luOiAwLjllbSAwO1xuXG5cdC8qIE1ha2Ugc3VyZSBtZWRpYSBpcyBub3Qgb3ZlcnJpZGVuIHdpdGggQm9vdHN0cmFwIGRlZmF1bHQgYGZsZXhgIHZhbHVlLlxuXHRTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzEzNzMuICovXG5cdGRpc3BsYXk6IGJsb2NrO1xuXG5cdC8qIEdpdmUgdGhlIG1lZGlhIHNvbWUgbWluaW1hbCB3aWR0aCBpbiB0aGUgY29udGVudCB0byBwcmV2ZW50IHRoZW1cblx0ZnJvbSBiZWluZyBcInNxdWFzaGVkXCIgaW4gdGlnaHQgc3BhY2VzLCBlLmcuIGluIHRhYmxlIGNlbGxzICgjNDQpICovXG5cdG1pbi13aWR0aDogMTVlbTtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLW1lZGlhX193cmFwcGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHR9XG5cbi5jay1tZWRpYV9fd3JhcHBlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybCB7XG5cdFx0XHQvKiBPdGhlcndpc2UgdGhlIFVSTCB3aWxsIG92ZXJmbG93IHdoZW4gdGhlIGNvbnRlbnQgaXMgdmVyeSBuYXJyb3cuICovXG5cdFx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR9XG5cbi5jay1tZWRpYV9fd3JhcHBlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybCAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX191cmxfX3RleHQge1xuXHRcdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdH1cblxuLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJ0d2l0dGVyLmNvbVwiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uICosIC5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwiZ29vZ2xlLmNvbS9tYXBzXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24gKiwgLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJnb28uZ2wvbWFwc1wiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uICosIC5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwibWFwcy5nb29nbGUuY29tXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24gKiwgLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJtYXBzLmFwcC5nb28uZ2xcIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiAqLCAuY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cImZhY2Vib29rLmNvbVwiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uICosIC5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwiaW5zdGFncmFtLmNvbVwiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uICoge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cbi8qIERpc2FibGUgYWxsIG1vdXNlIGludGVyYWN0aW9uIGFzIGxvbmcgYXMgdGhlIGVkaXRvciBpcyBub3QgcmVhZOKAk29ubHkuXG4gICBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LW1lZGlhLWVtYmVkL2lzc3Vlcy81OCAqL1xuLmNrLWVkaXRvcl9fZWRpdGFibGU6bm90KC5jay1yZWFkLW9ubHkpIC5jay1tZWRpYV9fd3JhcHBlciA+ICo6bm90KC5jay1tZWRpYV9fcGxhY2Vob2xkZXIpIHtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8qIERpc2FibGUgYWxsIG1vdXNlIGludGVyYWN0aW9uIHdoZW4gdGhlIHdpZGdldCBpcyBub3Qgc2VsZWN0ZWQgKGUuZy4gdG8gYXZvaWQgb3BlbmluZyBsaW5rcyBieSBhY2NpZGVudCkuXG4gICBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LW1lZGlhLWVtYmVkL2lzc3Vlcy8xOCAqL1xuLmNrLWVkaXRvcl9fZWRpdGFibGU6bm90KC5jay1yZWFkLW9ubHkpIC5jay13aWRnZXQ6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIge1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLXZlcnRpY2FsLWZvcm0gLmNrLWJ1dHRvbjo6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0d2lkdGg6IDA7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHJpZ2h0OiAtMXB4O1xuXHRcdHRvcDogLTFweDtcblx0XHRib3R0b206IC0xcHg7XG5cdFx0ei1pbmRleDogMTtcblx0fVxuXG4uY2stdmVydGljYWwtZm9ybSAuY2stYnV0dG9uOmZvY3VzOjphZnRlciB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuXHRcdFx0LmNrLmNrLXJlc3BvbnNpdmUtZm9ybSAuY2stYnV0dG9uOjphZnRlciB7XG5cdFx0XHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0XHRcdHdpZHRoOiAwO1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHJpZ2h0OiAtMXB4O1xuXHRcdFx0XHR0b3A6IC0xcHg7XG5cdFx0XHRcdGJvdHRvbTogLTFweDtcblx0XHRcdFx0ei1pbmRleDogMTtcblx0XHRcdH1cblxuXHRcdFx0LmNrLmNrLXJlc3BvbnNpdmUtZm9ybSAuY2stYnV0dG9uOmZvY3VzOjphZnRlciB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHR9XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLW1lZGlhLWZvcm0ge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiBub3dyYXA7XG5cdHdpZHRoOiA0MDBweDtcbn1cblxuLmNrLmNrLW1lZGlhLWZvcm0gLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cbi5jay5jay1tZWRpYS1mb3JtIC5jay1sYWJlbCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG4uY2suY2stbWVkaWEtZm9ybSAuY2staW5wdXQge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG5cbi5jay5jay1tZWRpYS1mb3JtIHtcblx0XHRmbGV4LXdyYXA6IHdyYXA7XG59XG5cblx0XHQuY2suY2stbWVkaWEtZm9ybSAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRcdGZsZXgtYmFzaXM6IDEwMCU7XG5cdFx0fVxuXG5cdFx0LmNrLmNrLW1lZGlhLWZvcm0gLmNrLWJ1dHRvbiB7XG5cdFx0XHRmbGV4LWJhc2lzOiA1MCU7XG5cdFx0fVxuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1tZW50aW9uLWxpc3QtbWF4LWhlaWdodDogMzAwcHg7XG59XG5cbi5jay5jay1tZW50aW9ucyB7XG5cdG1heC1oZWlnaHQ6IHZhcigtLWNrLW1lbnRpb24tbGlzdC1tYXgtaGVpZ2h0KTtcblxuXHRvdmVyZmxvdy15OiBhdXRvO1xuXG5cdC8qIFByZXZlbnQgdW5uZWNlc3NhcnkgaG9yaXpvbnRhbCBzY3JvbGxiYXIgaW4gU2FmYXJpXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtbWVudGlvbi9pc3N1ZXMvNDEgKi9cblx0b3ZlcmZsb3cteDogaGlkZGVuO1xuXG5cdG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG5cblx0LyogUHJldmVudCB1bm5lY2Vzc2FyeSB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gU2FmYXJpXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtbWVudGlvbi9pc3N1ZXMvNDEgKi9cbn1cblxuLmNrLmNrLW1lbnRpb25zID4gLmNrLWxpc3RfX2l0ZW0ge1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0ZmxleC1zaHJpbms6IDA7XG5cdH1cblxuZGl2LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stbWVudGlvbi1iYWxsb29uIHtcblx0ei1pbmRleDogY2FsYyggdmFyKCAtLWNrLXotZGlhbG9nICkgKyAxICk7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1jb2xvci1taW5pbWFwLXRyYWNrZXItYmFja2dyb3VuZDogMjA4LCAwJSwgNTElO1xuXHQtLWNrLWNvbG9yLW1pbmltYXAtaWZyYW1lLW91dGxpbmU6IGhzbCgwZGVnIDAlIDc1JSk7XG5cdC0tY2stY29sb3ItbWluaW1hcC1pZnJhbWUtc2hhZG93OiBoc2woMGRlZyAwJSAwJSAvIDExJSk7XG5cdC0tY2stY29sb3ItbWluaW1hcC1wcm9ncmVzcy1iYWNrZ3JvdW5kOiBoc2woMCwwJSw0MCUpO1xufVxuXG4uY2suY2stbWluaW1hcCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG59XG5cbi5jay5jay1taW5pbWFwLFxuXHQuY2suY2stbWluaW1hcCBpZnJhbWUge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblx0fVxuXG4uY2suY2stbWluaW1hcCBpZnJhbWUge1xuXHRcdGJvcmRlcjogMDtcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0b3V0bGluZTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLW1pbmltYXAtaWZyYW1lLW91dGxpbmUpO1xuXHRcdGJveC1zaGFkb3c6IDAgMnB4IDVweCB2YXIoLS1jay1jb2xvci1taW5pbWFwLWlmcmFtZS1zaGFkb3cpO1xuXHRcdG1hcmdpbjogMDtcblx0fVxuXG4uY2suY2stbWluaW1hcCAuY2suY2stbWluaW1hcF9fcG9zaXRpb24tdHJhY2tlciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdHRvcDogMDtcblx0XHRiYWNrZ3JvdW5kOiBoc2xhKCB2YXIoLS1jay1jb2xvci1taW5pbWFwLXRyYWNrZXItYmFja2dyb3VuZCksIC4yICk7XG5cdFx0ei1pbmRleDogMTtcblx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDEwMG1zIGVhc2UtaW4tb3V0O1xuXHR9XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cbi5jay5jay1taW5pbWFwIC5jay5jay1taW5pbWFwX19wb3NpdGlvbi10cmFja2VyIHtcblx0XHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdH1cblx0XHR9XG5cbi5jay5jay1taW5pbWFwIC5jay5jay1taW5pbWFwX19wb3NpdGlvbi10cmFja2VyOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6aHNsYSggdmFyKC0tY2stY29sb3ItbWluaW1hcC10cmFja2VyLWJhY2tncm91bmQpLCAuMyApO1xuXHRcdH1cblxuLmNrLmNrLW1pbmltYXAgLmNrLmNrLW1pbmltYXBfX3Bvc2l0aW9uLXRyYWNrZXIuY2stbWluaW1hcF9fcG9zaXRpb24tdHJhY2tlcl9kcmFnZ2luZyxcblx0XHQuY2suY2stbWluaW1hcCAuY2suY2stbWluaW1hcF9fcG9zaXRpb24tdHJhY2tlci5jay1taW5pbWFwX19wb3NpdGlvbi10cmFja2VyX2RyYWdnaW5nOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6aHNsYSggdmFyKC0tY2stY29sb3ItbWluaW1hcC10cmFja2VyLWJhY2tncm91bmQpLCAuNCApO1xuXHRcdH1cblxuLmNrLmNrLW1pbmltYXAgLmNrLmNrLW1pbmltYXBfX3Bvc2l0aW9uLXRyYWNrZXIuY2stbWluaW1hcF9fcG9zaXRpb24tdHJhY2tlcl9kcmFnZ2luZzo6YWZ0ZXIsIC5jay5jay1taW5pbWFwIC5jay5jay1taW5pbWFwX19wb3NpdGlvbi10cmFja2VyLmNrLW1pbmltYXBfX3Bvc2l0aW9uLXRyYWNrZXJfZHJhZ2dpbmc6aG92ZXI6OmFmdGVyIHtcblx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdH1cblxuLmNrLmNrLW1pbmltYXAgLmNrLmNrLW1pbmltYXBfX3Bvc2l0aW9uLXRyYWNrZXI6OmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6IGF0dHIoZGF0YS1wcm9ncmVzcykgXCIlXCI7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDVweDtcblx0XHRcdHJpZ2h0OiA1cHg7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1taW5pbWFwLXByb2dyZXNzLWJhY2tncm91bmQpO1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRcdFx0cGFkZGluZzogMnB4IDRweDtcblx0XHRcdGZvbnQtc2l6ZTogMTBweDtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDEwMG1zIGVhc2UtaW4tb3V0O1xuXHRcdH1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblxuLmNrLmNrLW1pbmltYXAgLmNrLmNrLW1pbmltYXBfX3Bvc2l0aW9uLXRyYWNrZXI6OmFmdGVyIHtcblx0XHRcdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0XHR9XG5cdFx0XHR9XG5cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLWNvbnRlbnQgLnBhZ2UtYnJlYWsge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGNsZWFyOiBib3RoO1xuXHRwYWRkaW5nOiA1cHggMDtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5jay1jb250ZW50IC5wYWdlLWJyZWFrOjphZnRlciB7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGJvcmRlci1ib3R0b206IDJweCBkYXNoZWQgaHNsKDAsIDAlLCA3NyUpO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cbi5jay1jb250ZW50IC5wYWdlLWJyZWFrX19sYWJlbCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ei1pbmRleDogMTtcblx0cGFkZGluZzogLjNlbSAuNmVtO1xuXHRkaXNwbGF5OiBibG9jaztcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0Ym9yZGVyOiAxcHggc29saWQgaHNsKDAsIDAlLCA3NyUpO1xuXHRib3JkZXItcmFkaXVzOiAycHg7XG5cdGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIEFyaWFsLCBUYWhvbWEsIFZlcmRhbmEsIFNhbnMtU2VyaWY7XG5cdGZvbnQtc2l6ZTogMC43NWVtO1xuXHRmb250LXdlaWdodDogYm9sZDtcblx0Y29sb3I6IGhzbCgwLCAwJSwgMjAlKTtcblx0YmFja2dyb3VuZDogaHNsKDAsIDAlLCAxMDAlKTtcblx0Ym94LXNoYWRvdzogMnB4IDJweCAxcHggaHNsYSgwLCAwJSwgMCUsIDAuMTUpO1xuXG5cdC8qIERpc2FibGUgdGhlIHBvc3NpYmlsaXR5IHRvIHNlbGVjdCB0aGUgbGFiZWwgdGV4dCBieSB0aGUgdXNlci4gKi9cblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcblx0LW1vei11c2VyLXNlbGVjdDogbm9uZTtcblx0LW1zLXVzZXItc2VsZWN0OiBub25lO1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLyogRG8gbm90IHNob3cgdGhlIHBhZ2UgYnJlYWsgZWxlbWVudCBpbnNpZGUgdGhlIHByaW50IHByZXZpZXcgd2luZG93LiAqL1xuQG1lZGlhIHByaW50IHtcblx0LmNrLWNvbnRlbnQgLnBhZ2UtYnJlYWsge1xuXHRcdHBhZGRpbmc6IDA7XG5cdH1cblxuXHRcdC5jay1jb250ZW50IC5wYWdlLWJyZWFrOjphZnRlciB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblxuXHQvKlxuXHQgKiBGcm9tIHRpbWUgdG8gdGltZSBwbGFjaW5nIHBhZ2UtYnJlYWsgZGlyZWN0bHkgYWZ0ZXIgYSBibG9jayBlbGVtZW50IHdpdGggbWFyZ2luIGNhdXNlcyBhcHBlbmRpbmcgYSBuZXcgYmxhbmsgcGFnZSBpbiBwYWdpbmF0aW9uIG1vZGUuXG5cdCAqIFJlbW92aW5nIG1hcmdpbi1ib3R0b20gZnJvbSB0aGUgYmxvY2sgZWxlbWVudCBmaXhlcyB0aGF0IGlzc3VlIGFuZCB0aGUgbWFyZ2luIGlzIG5vdCBiZWluZyBtb3ZlZCB0byB0aGUgbmV4dCBibGFuayBwYWdlLlxuXHQgKlxuXHQgKiBLZWVwIHRoaXMgaW4gc3luYyB3aXRoIHRoZSBwYWdpbmF0aW9uIHBsdWdpbnMuXG5cdCAqL1xuXHQuY2stY29udGVudCAqOmhhcygrIC5wYWdlLWJyZWFrKSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stc2hvdy1ibG9ja3MtYm9yZGVyLWNvbG9yOiBoc2woMCwgMCUsIDQ2JSk7XG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBhZGRyZXNzIHtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdHBhZGRpbmctdG9wOiAxNXB4O1xuXHRcdC8qIEZpeCBmb3IgTXVsdGktcm9vdCBlZGl0b3Jcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTU5NjkgKi9cblx0fVxuXG5bZGlyPWx0cl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGFkZHJlc3Mge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5BRERSRVNTPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9cnRsXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgYWRkcmVzcyB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkFERFJFU1M8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBhZGRyZXNzOm5vdCguY2std2lkZ2V0X3NlbGVjdGVkKTpub3QoLmNrLXdpZGdldDpob3Zlcikge1xuXHRcdG91dGxpbmU6IDFweCBkYXNoZWQgdmFyKC0tY2stc2hvdy1ibG9ja3MtYm9yZGVyLWNvbG9yKTtcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBhZGRyZXNzIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+QUREUkVTUzwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBhZGRyZXNzIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+QUREUkVTUzwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGFzaWRlIHtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdHBhZGRpbmctdG9wOiAxNXB4O1xuXHRcdC8qIEZpeCBmb3IgTXVsdGktcm9vdCBlZGl0b3Jcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTU5NjkgKi9cblx0fVxuXG5bZGlyPWx0cl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGFzaWRlIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+QVNJREU8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1ydGxdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBhc2lkZSB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkFTSURFPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgYXNpZGU6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpOm5vdCguY2std2lkZ2V0OmhvdmVyKSB7XG5cdFx0b3V0bGluZTogMXB4IGRhc2hlZCB2YXIoLS1jay1zaG93LWJsb2Nrcy1ib3JkZXItY29sb3IpO1xuXHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGFzaWRlIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+QVNJREU8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgYXNpZGUge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5BU0lERTwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGJsb2NrcXVvdGUge1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0cGFkZGluZy10b3A6IDE1cHg7XG5cdFx0LyogRml4IGZvciBNdWx0aS1yb290IGVkaXRvclxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNTk2OSAqL1xuXHR9XG5cbltkaXI9bHRyXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgYmxvY2txdW90ZSB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkJMT0NLUVVPVEU8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1ydGxdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBibG9ja3F1b3RlIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+QkxPQ0tRVU9URTwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGJsb2NrcXVvdGU6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpOm5vdCguY2std2lkZ2V0OmhvdmVyKSB7XG5cdFx0b3V0bGluZTogMXB4IGRhc2hlZCB2YXIoLS1jay1zaG93LWJsb2Nrcy1ib3JkZXItY29sb3IpO1xuXHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGJsb2NrcXVvdGUge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5CTE9DS1FVT1RFPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGJsb2NrcXVvdGUge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5CTE9DS1FVT1RFPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgZGV0YWlscyB7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRwYWRkaW5nLXRvcDogMTVweDtcblx0XHQvKiBGaXggZm9yIE11bHRpLXJvb3QgZWRpdG9yXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE1OTY5ICovXG5cdH1cblxuW2Rpcj1sdHJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBkZXRhaWxzIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+REVUQUlMUzwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPXJ0bF0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGRldGFpbHMge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5ERVRBSUxTPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgZGV0YWlsczpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCk6bm90KC5jay13aWRnZXQ6aG92ZXIpIHtcblx0XHRvdXRsaW5lOiAxcHggZGFzaGVkIHZhcigtLWNrLXNob3ctYmxvY2tzLWJvcmRlci1jb2xvcik7XG5cdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgZGV0YWlscyB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkRFVEFJTFM8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgZGV0YWlscyB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkRFVEFJTFM8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBkaXY6bm90KC5jay13aWRnZXQsIC5jay13aWRnZXQgKikge1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0cGFkZGluZy10b3A6IDE1cHg7XG5cdFx0LyogRml4IGZvciBNdWx0aS1yb290IGVkaXRvclxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNTk2OSAqL1xuXHR9XG5cbltkaXI9bHRyXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgZGl2Om5vdCguY2std2lkZ2V0LCAuY2std2lkZ2V0ICopIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+RElWPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9cnRsXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgZGl2Om5vdCguY2std2lkZ2V0LCAuY2std2lkZ2V0ICopIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+RElWPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgZGl2Om5vdCguY2std2lkZ2V0LCAuY2std2lkZ2V0ICopOm5vdCguY2std2lkZ2V0X3NlbGVjdGVkKTpub3QoLmNrLXdpZGdldDpob3Zlcikge1xuXHRcdG91dGxpbmU6IDFweCBkYXNoZWQgdmFyKC0tY2stc2hvdy1ibG9ja3MtYm9yZGVyLWNvbG9yKTtcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBkaXY6bm90KC5jay13aWRnZXQsIC5jay13aWRnZXQgKikge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5ESVY8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgZGl2Om5vdCguY2std2lkZ2V0LCAuY2std2lkZ2V0ICopIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+RElWPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgZm9vdGVyIHtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdHBhZGRpbmctdG9wOiAxNXB4O1xuXHRcdC8qIEZpeCBmb3IgTXVsdGktcm9vdCBlZGl0b3Jcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTU5NjkgKi9cblx0fVxuXG5bZGlyPWx0cl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGZvb3RlciB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkZPT1RFUjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPXJ0bF0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGZvb3RlciB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkZPT1RFUjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGZvb3Rlcjpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCk6bm90KC5jay13aWRnZXQ6aG92ZXIpIHtcblx0XHRvdXRsaW5lOiAxcHggZGFzaGVkIHZhcigtLWNrLXNob3ctYmxvY2tzLWJvcmRlci1jb2xvcik7XG5cdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgZm9vdGVyIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+Rk9PVEVSPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGZvb3RlciB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkZPT1RFUjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGgxIHtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdHBhZGRpbmctdG9wOiAxNXB4O1xuXHRcdC8qIEZpeCBmb3IgTXVsdGktcm9vdCBlZGl0b3Jcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTU5NjkgKi9cblx0fVxuXG5bZGlyPWx0cl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGgxIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+SDE8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1ydGxdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoMSB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkgxPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDE6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpOm5vdCguY2std2lkZ2V0OmhvdmVyKSB7XG5cdFx0b3V0bGluZTogMXB4IGRhc2hlZCB2YXIoLS1jay1zaG93LWJsb2Nrcy1ib3JkZXItY29sb3IpO1xuXHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGgxIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+SDE8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDEge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5IMTwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGgyIHtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdHBhZGRpbmctdG9wOiAxNXB4O1xuXHRcdC8qIEZpeCBmb3IgTXVsdGktcm9vdCBlZGl0b3Jcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTU5NjkgKi9cblx0fVxuXG5bZGlyPWx0cl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGgyIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+SDI8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1ydGxdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoMiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkgyPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDI6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpOm5vdCguY2std2lkZ2V0OmhvdmVyKSB7XG5cdFx0b3V0bGluZTogMXB4IGRhc2hlZCB2YXIoLS1jay1zaG93LWJsb2Nrcy1ib3JkZXItY29sb3IpO1xuXHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGgyIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+SDI8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDIge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5IMjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGgzIHtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdHBhZGRpbmctdG9wOiAxNXB4O1xuXHRcdC8qIEZpeCBmb3IgTXVsdGktcm9vdCBlZGl0b3Jcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTU5NjkgKi9cblx0fVxuXG5bZGlyPWx0cl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGgzIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+SDM8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1ydGxdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoMyB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkgzPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDM6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpOm5vdCguY2std2lkZ2V0OmhvdmVyKSB7XG5cdFx0b3V0bGluZTogMXB4IGRhc2hlZCB2YXIoLS1jay1zaG93LWJsb2Nrcy1ib3JkZXItY29sb3IpO1xuXHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGgzIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+SDM8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDMge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5IMzwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGg0IHtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdHBhZGRpbmctdG9wOiAxNXB4O1xuXHRcdC8qIEZpeCBmb3IgTXVsdGktcm9vdCBlZGl0b3Jcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTU5NjkgKi9cblx0fVxuXG5bZGlyPWx0cl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGg0IHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+SDQ8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1ydGxdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoNCB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkg0PC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDQ6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpOm5vdCguY2std2lkZ2V0OmhvdmVyKSB7XG5cdFx0b3V0bGluZTogMXB4IGRhc2hlZCB2YXIoLS1jay1zaG93LWJsb2Nrcy1ib3JkZXItY29sb3IpO1xuXHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGg0IHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+SDQ8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDQge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5INDwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGg1IHtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdHBhZGRpbmctdG9wOiAxNXB4O1xuXHRcdC8qIEZpeCBmb3IgTXVsdGktcm9vdCBlZGl0b3Jcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTU5NjkgKi9cblx0fVxuXG5bZGlyPWx0cl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGg1IHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+SDU8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1ydGxdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoNSB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkg1PC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDU6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpOm5vdCguY2std2lkZ2V0OmhvdmVyKSB7XG5cdFx0b3V0bGluZTogMXB4IGRhc2hlZCB2YXIoLS1jay1zaG93LWJsb2Nrcy1ib3JkZXItY29sb3IpO1xuXHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGg1IHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+SDU8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDUge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5INTwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGg2IHtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdHBhZGRpbmctdG9wOiAxNXB4O1xuXHRcdC8qIEZpeCBmb3IgTXVsdGktcm9vdCBlZGl0b3Jcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTU5NjkgKi9cblx0fVxuXG5bZGlyPWx0cl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGg2IHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+SDY8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1ydGxdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoNiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkg2PC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDY6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpOm5vdCguY2std2lkZ2V0OmhvdmVyKSB7XG5cdFx0b3V0bGluZTogMXB4IGRhc2hlZCB2YXIoLS1jay1zaG93LWJsb2Nrcy1ib3JkZXItY29sb3IpO1xuXHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGg2IHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+SDY8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDYge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5INjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGhlYWRlciB7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRwYWRkaW5nLXRvcDogMTVweDtcblx0XHQvKiBGaXggZm9yIE11bHRpLXJvb3QgZWRpdG9yXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE1OTY5ICovXG5cdH1cblxuW2Rpcj1sdHJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoZWFkZXIge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5IRUFERVI8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1ydGxdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoZWFkZXIge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5IRUFERVI8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoZWFkZXI6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpOm5vdCguY2std2lkZ2V0OmhvdmVyKSB7XG5cdFx0b3V0bGluZTogMXB4IGRhc2hlZCB2YXIoLS1jay1zaG93LWJsb2Nrcy1ib3JkZXItY29sb3IpO1xuXHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGhlYWRlciB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkhFQURFUjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoZWFkZXIge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5IRUFERVI8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBtYWluIHtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdHBhZGRpbmctdG9wOiAxNXB4O1xuXHRcdC8qIEZpeCBmb3IgTXVsdGktcm9vdCBlZGl0b3Jcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTU5NjkgKi9cblx0fVxuXG5bZGlyPWx0cl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIG1haW4ge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5NQUlOPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9cnRsXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgbWFpbiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPk1BSU48L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBtYWluOm5vdCguY2std2lkZ2V0X3NlbGVjdGVkKTpub3QoLmNrLXdpZGdldDpob3Zlcikge1xuXHRcdG91dGxpbmU6IDFweCBkYXNoZWQgdmFyKC0tY2stc2hvdy1ibG9ja3MtYm9yZGVyLWNvbG9yKTtcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBtYWluIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+TUFJTjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBtYWluIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+TUFJTjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIG5hdiB7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRwYWRkaW5nLXRvcDogMTVweDtcblx0XHQvKiBGaXggZm9yIE11bHRpLXJvb3QgZWRpdG9yXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE1OTY5ICovXG5cdH1cblxuW2Rpcj1sdHJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBuYXYge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5OQVY8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1ydGxdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBuYXYge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5OQVY8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBuYXY6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpOm5vdCguY2std2lkZ2V0OmhvdmVyKSB7XG5cdFx0b3V0bGluZTogMXB4IGRhc2hlZCB2YXIoLS1jay1zaG93LWJsb2Nrcy1ib3JkZXItY29sb3IpO1xuXHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIG5hdiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPk5BVjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBuYXYge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5OQVY8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBwcmUge1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0cGFkZGluZy10b3A6IDE1cHg7XG5cdFx0LyogRml4IGZvciBNdWx0aS1yb290IGVkaXRvclxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNTk2OSAqL1xuXHR9XG5cbltkaXI9bHRyXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgcHJlIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+UFJFPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9cnRsXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgcHJlIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+UFJFPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgcHJlOm5vdCguY2std2lkZ2V0X3NlbGVjdGVkKTpub3QoLmNrLXdpZGdldDpob3Zlcikge1xuXHRcdG91dGxpbmU6IDFweCBkYXNoZWQgdmFyKC0tY2stc2hvdy1ibG9ja3MtYm9yZGVyLWNvbG9yKTtcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBwcmUge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5QUkU8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgcHJlIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+UFJFPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgb2wge1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0cGFkZGluZy10b3A6IDE1cHg7XG5cdFx0LyogRml4IGZvciBNdWx0aS1yb290IGVkaXRvclxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNTk2OSAqL1xuXHR9XG5cbltkaXI9bHRyXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgb2wge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5PTDwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPXJ0bF0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIG9sIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+T0w8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBvbDpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCk6bm90KC5jay13aWRnZXQ6aG92ZXIpIHtcblx0XHRvdXRsaW5lOiAxcHggZGFzaGVkIHZhcigtLWNrLXNob3ctYmxvY2tzLWJvcmRlci1jb2xvcik7XG5cdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgb2wge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5PTDwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBvbCB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPk9MPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgdWwge1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0cGFkZGluZy10b3A6IDE1cHg7XG5cdFx0LyogRml4IGZvciBNdWx0aS1yb290IGVkaXRvclxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNTk2OSAqL1xuXHR9XG5cbltkaXI9bHRyXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgdWwge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5VTDwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPXJ0bF0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIHVsIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+VUw8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSB1bDpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCk6bm90KC5jay13aWRnZXQ6aG92ZXIpIHtcblx0XHRvdXRsaW5lOiAxcHggZGFzaGVkIHZhcigtLWNrLXNob3ctYmxvY2tzLWJvcmRlci1jb2xvcik7XG5cdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgdWwge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5VTDwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSB1bCB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPlVMPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgcCB7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRwYWRkaW5nLXRvcDogMTVweDtcblx0XHQvKiBGaXggZm9yIE11bHRpLXJvb3QgZWRpdG9yXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE1OTY5ICovXG5cdH1cblxuW2Rpcj1sdHJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBwIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+UDwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPXJ0bF0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIHAge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5QPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgcDpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCk6bm90KC5jay13aWRnZXQ6aG92ZXIpIHtcblx0XHRvdXRsaW5lOiAxcHggZGFzaGVkIHZhcigtLWNrLXNob3ctYmxvY2tzLWJvcmRlci1jb2xvcik7XG5cdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgcCB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPlA8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgcCB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPlA8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBzZWN0aW9uIHtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdHBhZGRpbmctdG9wOiAxNXB4O1xuXHRcdC8qIEZpeCBmb3IgTXVsdGktcm9vdCBlZGl0b3Jcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTU5NjkgKi9cblx0fVxuXG5bZGlyPWx0cl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIHNlY3Rpb24ge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5TRUNUSU9OPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9cnRsXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgc2VjdGlvbiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPlNFQ1RJT048L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBzZWN0aW9uOm5vdCguY2std2lkZ2V0X3NlbGVjdGVkKTpub3QoLmNrLXdpZGdldDpob3Zlcikge1xuXHRcdG91dGxpbmU6IDFweCBkYXNoZWQgdmFyKC0tY2stc2hvdy1ibG9ja3MtYm9yZGVyLWNvbG9yKTtcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBzZWN0aW9uIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+U0VDVElPTjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBzZWN0aW9uIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+U0VDVElPTjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIDp3aGVyZShmaWd1cmUuaW1hZ2UsIGZpZ3VyZS50YWJsZSkgZmlnY2FwdGlvbiB7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRwYWRkaW5nLXRvcDogMTVweDtcblx0XHQvKiBGaXggZm9yIE11bHRpLXJvb3QgZWRpdG9yXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE1OTY5ICovXG5cdH1cblxuW2Rpcj1sdHJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSA6d2hlcmUoZmlndXJlLmltYWdlLCBmaWd1cmUudGFibGUpIGZpZ2NhcHRpb24ge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5GSUdDQVBUSU9OPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9cnRsXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgOndoZXJlKGZpZ3VyZS5pbWFnZSwgZmlndXJlLnRhYmxlKSBmaWdjYXB0aW9uIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+RklHQ0FQVElPTjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIDp3aGVyZShmaWd1cmUuaW1hZ2UsIGZpZ3VyZS50YWJsZSkgZmlnY2FwdGlvbjpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCk6bm90KC5jay13aWRnZXQ6aG92ZXIpIHtcblx0XHRvdXRsaW5lOiAxcHggZGFzaGVkIHZhcigtLWNrLXNob3ctYmxvY2tzLWJvcmRlci1jb2xvcik7XG5cdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgOndoZXJlKGZpZ3VyZS5pbWFnZSwgZmlndXJlLnRhYmxlKSBmaWdjYXB0aW9uIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+RklHQ0FQVElPTjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSA6d2hlcmUoZmlndXJlLmltYWdlLCBmaWd1cmUudGFibGUpIGZpZ2NhcHRpb24ge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5GSUdDQVBUSU9OPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSB2aXN1YWwgc3R5bGUgb2YgZm9jdXNlZCBlbGVtZW50J3MgYm9yZGVyLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIGhlbHBlciB0byBjb21iaW5lIG11bHRpcGxlIHNoYWRvd3MuXG4gKi9cbi8qKlxuICogR2l2ZXMgYW4gZWxlbWVudCBhIGRyb3Agc2hhZG93IHNvIGl0IGxvb2tzIGxpa2UgYSBmbG9hdGluZyBwYW5lbC5cbiAqL1xuXG4uY2stc291cmNlLWVkaXRpbmctYXJlYSB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmNrLXNvdXJjZS1lZGl0aW5nLWFyZWE6OmFmdGVyLFxuLmNrLXNvdXJjZS1lZGl0aW5nLWFyZWEgdGV4dGFyZWEge1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0bWFyZ2luOiAwO1xuXHRib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0bGluZS1oZWlnaHQ6IHZhcigtLWNrLWxpbmUtaGVpZ2h0LWJhc2UpO1xuXHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS1ub3JtYWwpO1xuXHRmb250LWZhbWlseTogbW9ub3NwYWNlO1xuXHR3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG59XG5cbi5jay1zb3VyY2UtZWRpdGluZy1hcmVhOjphZnRlciB7XG5cdGNvbnRlbnQ6IGF0dHIoZGF0YS12YWx1ZSkgXCIgXCI7XG5cdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi5jay1zb3VyY2UtZWRpdGluZy1hcmVhIHRleHRhcmVhIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRyZXNpemU6IG5vbmU7XG5cdG91dGxpbmU6IG5vbmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cblx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cblx0Ym9yZGVyLXJhZGl1czogMDtcbn1cblxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2stc291cmNlLWVkaXRpbmctYXJlYSB0ZXh0YXJlYSxcblx0LmNrLXNvdXJjZS1lZGl0aW5nLWFyZWEgdGV4dGFyZWEuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG5cbi5jay1zb3VyY2UtZWRpdGluZy1hcmVhIHRleHRhcmVhOm5vdChbcmVhZG9ubHldKTpmb2N1cyB7XG5cdFx0LyogRGlzYWJsZSBuYXRpdmUgb3V0bGluZS4gKi9cblx0XHRvdXRsaW5lOiBub25lO1xuXHRcdGJvcmRlcjogdmFyKC0tY2stZm9jdXMtcmluZyk7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0tY2staW5uZXItc2hhZG93KSwgMCAwO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1jaGFyYWN0ZXItZ3JpZCB7XG5cdG1heC13aWR0aDogMTAwJTtcbn1cblxuLmNrLmNrLWNoYXJhY3Rlci1ncmlkIC5jay1jaGFyYWN0ZXItZ3JpZF9fdGlsZXMge1xuXHRcdGRpc3BsYXk6IGdyaWQ7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWNoYXJhY3Rlci1pbmZvIHtcblx0ZGlzcGxheTogZmxleDtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKlxuICogTm90ZTogVGhpcyBmaWxlIHNob3VsZCBjb250YWluIHRoZSB3aXJlZnJhbWUgc3R5bGVzIG9ubHkuIEJ1dCBzaW5jZSB0aGVyZSBhcmUgbm8gc3VjaCBzdHlsZXMsXG4gKiBpdCBhY3RzIGFzIGEgbWVzc2FnZSB0byB0aGUgYnVpbGRlciB0ZWxsaW5nIHRoYXQgaXQgc2hvdWxkIGxvb2sgZm9yIHRoZSBjb3JyZXNwb25kaW5nIHN0eWxlc1xuICogKippbiB0aGUgdGhlbWUqKiB3aGVuIGNvbXBpbGluZyB0aGUgZWRpdG9yLlxuICovXG5cbi5jay5jay1zcGVjaWFsLWNoYXJhY3RlcnMgPiAuY2stZGlhbG9nX19jb250ZW50ID4gZGl2IHtcblx0XHR3aWR0aDogMzUwcHg7XG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblxuXHRcdGRpc3BsYXk6IGdyaWQ7XG5cdFx0Z3JpZC1jb2x1bW4tZ2FwOiAwcHg7XG5cdFx0Z3JpZC1yb3ctZ2FwOiAwcHg7XG5cdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG5cdFx0Z3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIDFmciBhdXRvO1xuXHR9XG5cbi5jay5jay1zcGVjaWFsLWNoYXJhY3RlcnMgPiAuY2stZGlhbG9nX19jb250ZW50ID4gZGl2ID4gLmNrLWNoYXJhY3Rlci1jYXRlZ29yaWVzIHtcblx0XHRcdGdyaWQtYXJlYTogMSAvIDEgLyAyIC8gMjtcblx0XHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHR9XG5cbi5jay5jay1zcGVjaWFsLWNoYXJhY3RlcnMgPiAuY2stZGlhbG9nX19jb250ZW50ID4gZGl2ID4gLmNrLWNoYXJhY3Rlci1jYXRlZ29yaWVzID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0XHRcdHBhZGRpbmctdG9wOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHR9XG5cbi5jay5jay1zcGVjaWFsLWNoYXJhY3RlcnMgPiAuY2stZGlhbG9nX19jb250ZW50ID4gZGl2ID4gLmNrLWNoYXJhY3Rlci1jYXRlZ29yaWVzID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXMge1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtZXJyb3IpO1xuXHRcdFx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRcdFx0XHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRcdFx0XHRtaW4td2lkdGg6IHZhcigtLWNrLXRhYmxlLXByb3BlcnRpZXMtbWluLWVycm9yLXdpZHRoKTtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0XHRcdFx0XHRhbmltYXRpb246IGNrLXRhYmxlLWZvcm0tbGFiZWxlZC12aWV3LXN0YXR1cy1hcHBlYXIgLjE1cyBlYXNlIGJvdGg7XG5cblx0XHRcdFx0XHQvKiBUaGUgYXJyb3cgcG9pbnRpbmcgdG93YXJkcyB0aGUgZmllbGQuICovXG5cdFx0XHRcdH1cblxuLmNrLmNrLXNwZWNpYWwtY2hhcmFjdGVycyA+IC5jay1kaWFsb2dfX2NvbnRlbnQgPiBkaXYgPiAuY2stY2hhcmFjdGVyLWNhdGVnb3JpZXMgPiAuY2stbGFiZWxlZC1maWVsZC12aWV3IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX3N0YXR1czo6YWZ0ZXIge1xuXHRcdFx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS1jay1jb2xvci1iYXNlLWVycm9yKSB0cmFuc3BhcmVudDtcblx0XHRcdFx0XHRcdGJvcmRlci13aWR0aDogMCB2YXIoLS1jay10YWJsZS1wcm9wZXJ0aWVzLWVycm9yLWFycm93LXNpemUpIHZhcigtLWNrLXRhYmxlLXByb3BlcnRpZXMtZXJyb3ItYXJyb3ctc2l6ZSkgdmFyKC0tY2stdGFibGUtcHJvcGVydGllcy1lcnJvci1hcnJvdy1zaXplKTtcblx0XHRcdFx0XHRcdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdFx0XHRcdFx0fVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXG4uY2suY2stc3BlY2lhbC1jaGFyYWN0ZXJzID4gLmNrLWRpYWxvZ19fY29udGVudCA+IGRpdiA+IC5jay1jaGFyYWN0ZXItY2F0ZWdvcmllcyA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19fc3RhdHVzIHtcblx0XHRcdFx0XHRcdGFuaW1hdGlvbjogbm9uZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuLyogSGlkZSB0aGUgZXJyb3IgYmFsbG9vbiB3aGVuIHRoZSBmaWVsZCBpcyBibHVycmVkLiBNYWtlcyB0aGUgZXhwZXJpZW5jZSBtdWNoIG1vcmUgY2xlYXIuICovXG5cbi5jay5jay1zcGVjaWFsLWNoYXJhY3RlcnMgPiAuY2stZGlhbG9nX19jb250ZW50ID4gZGl2ID4gLmNrLWNoYXJhY3Rlci1jYXRlZ29yaWVzID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2staW5wdXQuY2stZXJyb3I6bm90KDpmb2N1cykgKyAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXMge1xuXHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdH1cblxuLmNrLmNrLXNwZWNpYWwtY2hhcmFjdGVycyA+IC5jay1kaWFsb2dfX2NvbnRlbnQgPiBkaXYgPiAuY2stY2hhcmFjdGVyLWNhdGVnb3JpZXMgPiAuY2stbGFiZWxlZC1maWVsZC12aWV3ID4gLmNrLWxhYmVsIHtcblx0XHRcdFx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS10aW55KTtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdH1cblxuLmNrLmNrLXNwZWNpYWwtY2hhcmFjdGVycyA+IC5jay1kaWFsb2dfX2NvbnRlbnQgPiBkaXYgPiAuY2stY2hhcmFjdGVyLWNhdGVnb3JpZXMgLmNrLWRyb3Bkb3duIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0fVxuXG4uY2suY2stc3BlY2lhbC1jaGFyYWN0ZXJzID4gLmNrLWRpYWxvZ19fY29udGVudCA+IGRpdiA+IC5jay1jaGFyYWN0ZXItY2F0ZWdvcmllcyAuY2stZHJvcGRvd24gPiBidXR0b246bm90KDpmb2N1cykge1xuXHRcdFx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdFx0XHRcdH1cblxuLmNrLmNrLXNwZWNpYWwtY2hhcmFjdGVycyA+IC5jay1kaWFsb2dfX2NvbnRlbnQgPiBkaXYgPiAuY2stY2hhcmFjdGVyLWNhdGVnb3JpZXMgLmNrLWRyb3Bkb3duID4gYnV0dG9uID4gc3BhbiB7XG5cdFx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0XHR9XG5cbi5jay5jay1zcGVjaWFsLWNoYXJhY3RlcnMgPiAuY2stZGlhbG9nX19jb250ZW50ID4gZGl2ID4gLmNrLWNoYXJhY3Rlci1ncmlkIHtcblx0XHRcdGdyaWQtYXJlYTogMiAvIDEgLyAzIC8gMjtcblx0XHRcdG1heC1oZWlnaHQ6IDIwMHB4O1xuXHRcdH1cblxuLmNrLmNrLXNwZWNpYWwtY2hhcmFjdGVycyA+IC5jay1kaWFsb2dfX2NvbnRlbnQgPiBkaXYgPiAuY2stY2hhcmFjdGVyLWluZm8ge1xuXHRcdFx0Z3JpZC1hcmVhOiAzIC8gMSAvIDQgLyAyO1xuXHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLXN0eWxlLXBhbmVsLWNvbHVtbnM6IDM7XG59XG5cbi5jay5jay1zdHlsZS1wYW5lbCAuY2stc3R5bGUtZ3JpZCB7XG5cdGRpc3BsYXk6IGdyaWQ7XG5cdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNrLXN0eWxlLXBhbmVsLWNvbHVtbnMpLGF1dG8pO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0O1xufVxuXG4uY2suY2stc3R5bGUtcGFuZWwgLmNrLXN0eWxlLWdyaWQgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbiB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0fVxuXG4uY2suY2stc3R5bGUtcGFuZWwgLmNrLXN0eWxlLWdyaWQgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbiAuY2stc3R5bGUtZ3JpZF9fYnV0dG9uX19wcmV2aWV3IHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRhbGlnbi1jb250ZW50OiBjZW50ZXI7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0ZmxleC1ncm93OiAxO1xuXHRcdFx0ZmxleC1iYXNpczogMTAwJTtcblx0XHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qIFRleHQgYWxpZ25tZW50IG9mIHRoZSB0YWJsZSBoZWFkZXIgc2hvdWxkIG1hdGNoIHRoZSBlZGl0b3Igc2V0dGluZ3MgYW5kIG92ZXJyaWRlIHRoZSBuYXRpdmUgYnJvd3NlciBzdHlsaW5nLFxuXHR3aGVuIGNvbnRlbnQgaXMgYXZhaWxhYmxlIG91dHNpZGUgdGhlIGVkaXRvci4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzY2MzggKi9cblxuLmNrLWNvbnRlbnRbZGlyPVwicnRsXCJdIC50YWJsZSB0aCB7XG5cdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdH1cblxuLmNrLWNvbnRlbnRbZGlyPVwibHRyXCJdIC50YWJsZSB0aCB7XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0fVxuXG4uY2stY29udGVudCBmaWd1cmUudGFibGU6bm90KC5sYXlvdXQtdGFibGUpIHtcblx0XHRkaXNwbGF5OiB0YWJsZTtcblx0fVxuXG4uY2stY29udGVudCBmaWd1cmUudGFibGU6bm90KC5sYXlvdXQtdGFibGUpID4gdGFibGUge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0fVxuXG4uY2stY29udGVudCAudGFibGU6bm90KC5sYXlvdXQtdGFibGUpIHtcblx0XHQvKiBHaXZlIHRoZSB0YWJsZSB3aWRnZXQgc29tZSBhaXIgYW5kIGNlbnRlciBpdCBob3Jpem9udGFsbHkgKi9cblx0XHQvKiBUaGUgZmlyc3QgdmFsdWUgc2hvdWxkIGJlIGVxdWFsIHRvIC0tY2stc3BhY2luZy1sYXJnZSB2YXJpYWJsZSBpZiB1c2VkIGluIHRoZSBlZGl0b3IgY29udGV4dFxuXHRcdHRvIGF2b2lkIHRoZSBjb250ZW50IGp1bXBpbmcgKFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85ODI1KS4gKi9cblx0XHRtYXJnaW46IDAuOWVtIGF1dG87XG5cdH1cblxuLmNrLWNvbnRlbnQgdGFibGUudGFibGU6bm90KC5sYXlvdXQtdGFibGUpLFxuXHQuY2stY29udGVudCBmaWd1cmUudGFibGU6bm90KC5sYXlvdXQtdGFibGUpID4gdGFibGUge1xuXHRcdC8qIFRoZSB0YWJsZSBjZWxscyBzaG91bGQgaGF2ZSBzbGlnaHQgYm9yZGVycyAqL1xuXHRcdGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG5cdFx0Ym9yZGVyLXNwYWNpbmc6IDA7XG5cblx0XHQvKiBUaGUgb3V0ZXIgYm9yZGVyIG9mIHRoZSB0YWJsZSBzaG91bGQgYmUgc2xpZ2h0bHkgZGFya2VyIHRoYW4gdGhlIGlubmVyIGxpbmVzLlxuXHRcdEFsc28gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGFibGUvaXNzdWVzLzUwLiAqL1xuXHRcdGJvcmRlcjogMXB4IGRvdWJsZSBoc2woMCwgMCUsIDcwJSk7XG5cdH1cblxuLyogVGhlIGxpbnRlciBpcyBkaXNhYmxlZCBoZXJlIGJlY2F1c2UgbGludGVyIGlzIGNvbmZ1c2VkIHdoZW4gcmVzb2x2aW5nIHRoZSBgdGFibGUudGFibGU6bm90KC5sYXlvdXQtdGFibGUpYFxuXHRcdFx0YW5kIGBmaWd1cmUudGFibGU6bm90KC5sYXlvdXQtdGFibGUpID4gdGFibGVgIHNlbGVjdG9ycyBjb21iaW5lZCB3aXRoIGJlbG93IHNlbGVjdG9ycy5cblx0XHRcdFRoZXJlIGlzIG5vIG5lZWQgdG8gc3BsaXQgaXQgaW50byB0d28gbGFyZ2Ugc3RydWN0dXJlcyB3aXRoIHNhbWUgY29kZSBqdXN0IHRvIG1ha2UgbGludGVyIGhhcHB5LiAqL1xuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG5cbi5jay1jb250ZW50IHRhYmxlLnRhYmxlOm5vdCgubGF5b3V0LXRhYmxlKSA+IHRoZWFkID4gdHIgPiB0aCwgLmNrLWNvbnRlbnQgZmlndXJlLnRhYmxlOm5vdCgubGF5b3V0LXRhYmxlKSA+IHRhYmxlID4gdGhlYWQgPiB0ciA+IHRoLCAuY2stY29udGVudCB0YWJsZS50YWJsZTpub3QoLmxheW91dC10YWJsZSkgPiB0Ym9keSA+IHRyID4gdGgsIC5jay1jb250ZW50IGZpZ3VyZS50YWJsZTpub3QoLmxheW91dC10YWJsZSkgPiB0YWJsZSA+IHRib2R5ID4gdHIgPiB0aCB7XG5cdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogaHNsYSgwLCAwJSwgMCUsIDUlKTtcblx0XHRcdFx0fVxuXG4uY2stY29udGVudCB0YWJsZS50YWJsZTpub3QoLmxheW91dC10YWJsZSkgPiB0aGVhZCA+IHRyID4gdGQsXG5cdFx0XHRcdC5jay1jb250ZW50IGZpZ3VyZS50YWJsZTpub3QoLmxheW91dC10YWJsZSkgPiB0YWJsZSA+IHRoZWFkID4gdHIgPiB0ZCxcblx0XHRcdFx0LmNrLWNvbnRlbnQgdGFibGUudGFibGU6bm90KC5sYXlvdXQtdGFibGUpID4gdGJvZHkgPiB0ciA+IHRkLFxuXHRcdFx0XHQuY2stY29udGVudCBmaWd1cmUudGFibGU6bm90KC5sYXlvdXQtdGFibGUpID4gdGFibGUgPiB0Ym9keSA+IHRyID4gdGQsXG5cdFx0XHRcdC5jay1jb250ZW50IHRhYmxlLnRhYmxlOm5vdCgubGF5b3V0LXRhYmxlKSA+IHRoZWFkID4gdHIgPiB0aCxcblx0XHRcdFx0LmNrLWNvbnRlbnQgZmlndXJlLnRhYmxlOm5vdCgubGF5b3V0LXRhYmxlKSA+IHRhYmxlID4gdGhlYWQgPiB0ciA+IHRoLFxuXHRcdFx0XHQuY2stY29udGVudCB0YWJsZS50YWJsZTpub3QoLmxheW91dC10YWJsZSkgPiB0Ym9keSA+IHRyID4gdGgsXG5cdFx0XHRcdC5jay1jb250ZW50IGZpZ3VyZS50YWJsZTpub3QoLmxheW91dC10YWJsZSkgPiB0YWJsZSA+IHRib2R5ID4gdHIgPiB0aCB7XG5cdFx0XHRcdFx0Lyogc3R5bGVsaW50LWVuYWJsZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG5cdFx0XHRcdFx0bWluLXdpZHRoOiAyZW07XG5cdFx0XHRcdFx0cGFkZGluZzogLjRlbTtcblxuXHRcdFx0XHRcdC8qIFRoZSBib3JkZXIgaXMgaW5oZXJpdGVkIGZyb20gLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlIHN0eWxlcywgc28gdGhlb3JldGljYWxseSBpdCdzIG5vdCBuZWNlc3NhcnkgaGVyZS5cblx0XHRcdFx0XHRIb3dldmVyLCB0aGUgYm9yZGVyIGlzIGEgY29udGVudCBzdHlsZSwgc28gaXQgc2hvdWxkIHVzZSAuY2stY29udGVudCAoc28gaXQgd29ya3Mgb3V0c2lkZSB0aGUgZWRpdG9yKS5cblx0XHRcdFx0XHRIZW5jZSwgdGhlIGR1cGxpY2F0aW9uLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNjMxNCAqL1xuXHRcdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIGhzbCgwLCAwJSwgNzUlKTtcblx0XHRcdFx0fVxuXG5AbWVkaWEgcHJpbnQge1xuXHRcdC8qKlxuXHRcdCAqIFNvbWV0aW1lcyBDaHJvbWUgaW5jb3JyZWN0bHkgY2FsY3VsYXRlcyB0aGUgaGVpZ2h0IG9mIHRoZSBsYXN0IHRhYmxlIHJvdyBhbmQgc29tZVxuXHRcdCAqIG9mIHRoZSBjb250ZW50IG92ZXJsYXBzIHRoZSBwYXJhZ3JhcGggdGhhdCBpcyBwbGFjZWQgZGlyZWN0bHkgYWZ0ZXIgdGhlIHRhYmxlLiBJdCBhZmZlY3RzXG5cdFx0ICogdGhlIGNvbHVtbiBzcGxpdCBtb2RlIHBhZ2luYXRpb24gY2FsY3VsYXRpb24gd2hpY2ggY2F1c2VzIG1pc21hdGNoIGJldHdlZW4gdGhlIHByaW50IG1vZGUgYW5kXG5cdFx0ICogdGhlIHByZXZpZXcgbW9kZS5cblx0XHQgKlxuXHRcdCAqIFRoaXMgaXNzdWUgaGFwcGVucyBvbmx5IGlmOlxuXHRcdCAqXG5cdFx0ICogXHQqIFRoZSB0YWJsZSBpcyBpbnNpZGUgYSBmaWd1cmUgZWxlbWVudC5cblx0XHQgKiBcdCogVGhlIHRhYmxlIGhhcyBgZGlzcGxheTogdGFibGVgIHN0eWxlIHNldC5cblx0XHQgKiBcdCogVGhlIGJsb2NrIGVsZW1lbnQgaXMgcGxhY2VkIGRpcmVjdGx5IGFmdGVyIHRoZSB0YWJsZS5cblx0XHQgKi9cblx0XHQuY2stY29udGVudCBmaWd1cmUudGFibGU6bm90KC5sYXlvdXQtdGFibGUpOmhhcyg+IHRhYmxlKSB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cblx0XHQvKipcblx0XHQgKiBFeHBhbmRpbmcgdGhlIHRhYmxlIHRvIHRoZSBmdWxsIGhlaWdodCBvZiB0aGUgcGFyZW50IGNvbnRhaW5lciBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0YWJsZXNcblx0XHQgKiBhcmUgcmVuZGVyZWQgaW5zaWRlIDxmaWd1cmU+IGVsZW1lbnRzLCB3aGljaCBpcyBraW5kYSBidWdneSBpbiB0YWJsZSBoZWlnaHQgY2FsY3VsYXRpb24uXG5cdFx0ICogV2hpbGUgc2V0dGluZyBgaGVpZ2h0OiAxMDAlYCBmaXhlcyB0aGUgaXNzdWUgaW4gdGhlIGVkaXRpbmcgbW9kZSBkZXNjcmliZWQgaGVyZTpcblx0XHQgKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy82MTg2XG5cdFx0ICpcblx0XHQgKiBpdCdzIGNhdXNpbmcgYW5vdGhlciBpc3N1ZSB3aXRoIHRoZSB0YWJsZSBoZWlnaHQgaW4gdGhlIHByaW50IHByZXZpZXcgbW9kZSBoZXJlOlxuXHRcdCAqIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE2ODU2XG5cdFx0ICpcblx0XHQgKiBGb3Igbm93LCByZXNldHRpbmcgdGhlIGhlaWdodCB0byBgaW5pdGlhbGAgaW4gdGhlIHByaW50IG1vZGUgd29ya3MgYXMgYSB3b3JrYXJvdW5kLlxuXHRcdCAqL1xuXHRcdC5jay1jb250ZW50IGZpZ3VyZS50YWJsZTpub3QoLmxheW91dC10YWJsZSkgPiB0YWJsZSB7XG5cdFx0XHRoZWlnaHQ6IGluaXRpYWw7XG5cdFx0fVxufVxuXG4uY2stZWRpdG9yX19lZGl0YWJsZSAuY2stdGFibGUtYm9ndXMtcGFyYWdyYXBoIHtcblx0Lypcblx0ICogVXNlIGRpc3BsYXk6aW5saW5lLWJsb2NrIHRvIGZvcmNlIENocm9tZS9TYWZhcmkgdG8gbGltaXQgdGV4dCBtdXRhdGlvbnMgdG8gdGhpcyBlbGVtZW50LlxuXHQgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNjA2Mi5cblx0ICovXG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuXHQvKlxuXHQgKiBJbmxpbmUgSFRNTCBlbGVtZW50cyBuZXN0ZWQgaW4gdGhlIHNwYW4gc2hvdWxkIGFsd2F5cyBiZSBkaW1lbnNpb25lZCBpbiByZWxhdGlvbiB0byB0aGUgd2hvbGUgY2VsbCB3aWR0aC5cblx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzkxMTcuXG5cdCAqL1xuXHR3aWR0aDogMTAwJTtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrIC5jay1pbnNlcnQtdGFibGUtZHJvcGRvd25fX2dyaWQge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtX19hbGlnbm1lbnQtcm93IHtcblx0XHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHR9XG5cbi5jay5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtX19hbGlnbm1lbnQtcm93IC5jay5jay10b29sYmFyOmZpcnN0LW9mLXR5cGUge1xuXHRcdFx0XHRcdC8qIDQgYnV0dG9ucyBvdXQgb2YgNyAoaC1hbGlnbm1lbnQgKyB2LWFsaWdubWVudCkgPSAwLjU3ICovXG5cdFx0XHRcdFx0ZmxleC1ncm93OiAwLjU3O1xuXHRcdFx0XHR9XG5cbi5jay5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtX19hbGlnbm1lbnQtcm93IC5jay5jay10b29sYmFyOmxhc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0LyogMyBidXR0b25zIG91dCBvZiA3IChoLWFsaWdubWVudCArIHYtYWxpZ25tZW50KSA9IDAuNDMgKi9cblx0XHRcdFx0XHRmbGV4LWdyb3c6IDAuNDM7XG5cdFx0XHRcdH1cblxuLmNrLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtIC5jay1mb3JtX19yb3cuY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm1fX2FsaWdubWVudC1yb3cgLmNrLmNrLXRvb2xiYXIgLmNrLWJ1dHRvbiB7XG5cdFx0XHRcdFx0ZmxleC1ncm93OiAxO1xuXHRcdFx0XHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1pbnB1dC1jb2xvciB7XG5cdHdpZHRoOiAxMDAlO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG59XG5cbi5jay5jay1pbnB1dC1jb2xvciA+IGlucHV0LmNrLmNrLWlucHV0LXRleHQge1xuXHRcdG1pbi13aWR0aDogYXV0bztcblx0XHRmbGV4LWdyb3c6IDE7XG5cdH1cblxuLmNrLmNrLWlucHV0LWNvbG9yID4gZGl2LmNrLmNrLWRyb3Bkb3duIHtcblx0XHRtaW4td2lkdGg6IGF1dG87XG5cblx0XHQvKiBUaGlzIGRyb3Bkb3duIGhhcyBubyBhcnJvdyBidXQgYSBjb2xvciBwcmV2aWV3IGluc3RlYWQuICovXG5cdH1cblxuLmNrLmNrLWlucHV0LWNvbG9yID4gZGl2LmNrLmNrLWRyb3Bkb3duID4gLmNrLWlucHV0LWNvbG9yX19idXR0b24gLmNrLWRyb3Bkb3duX19hcnJvdyB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblxuLmNrLmNrLWlucHV0LWNvbG9yIC5jay5jay1pbnB1dC1jb2xvcl9fYnV0dG9uIHtcblx0XHQvKiBSZXNvbHZpbmcgaXNzdWUgd2l0aCBtaXNhbGlnbmVkIGJ1dHRvbnMgb24gU2FmYXJpIChzZWUgIzEwNTg5KSAqL1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdH1cblxuLmNrLmNrLWlucHV0LWNvbG9yIC5jay5jay1pbnB1dC1jb2xvcl9fYnV0dG9uIC5jay5jay1pbnB1dC1jb2xvcl9fYnV0dG9uX19wcmV2aWV3IHtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0fVxuXG4uY2suY2staW5wdXQtY29sb3IgLmNrLmNrLWlucHV0LWNvbG9yX19idXR0b24gLmNrLmNrLWlucHV0LWNvbG9yX19idXR0b25fX3ByZXZpZXcgPiAuY2suY2staW5wdXQtY29sb3JfX2J1dHRvbl9fcHJldmlld19fbm8tY29sb3ItaW5kaWNhdG9yIHtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUgPiAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUubGF5b3V0LXRhYmxlOmZpcnN0LWNoaWxkIHtcblx0XHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0XHR9XG5cbi8qXG5cdFx0XHQqIFRoaXMgdmFsdWUgc2hvdWxkIG1hdGNoIHdpdGggdGhlIGRlZmF1bHQgbWFyZ2lucyBvZiB0aGUgYmxvY2sgZWxlbWVudHMgKGxpa2UgLm1lZGlhLCAuaW1hZ2Ugb3IgLnRhYmxlKVxuXHRcdFx0KiB0byBhdm9pZCBhIGNvbnRlbnQganVtcGluZyB3aGVuIHRoZSBmYWtlIHNlbGVjdGlvbiBjb250YWluZXIgc2hvd3MgdXAgKFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85ODI1KS5cblx0XHRcdCovXG5cbi5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lID4gLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlLmxheW91dC10YWJsZTpsYXN0LWNoaWxkLFxuXHRcdFx0XG5cdFx0XHQuY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZSA+IC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZS5sYXlvdXQtdGFibGU6bnRoLWxhc3QtY2hpbGQoMik6aGFzKCArIC5jay1mYWtlLXNlbGVjdGlvbi1jb250YWluZXIpIHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0XHR9XG5cbi5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZS5sYXlvdXQtdGFibGUge1xuXHRcdGRpc3BsYXk6IHRhYmxlO1xuXHRcdG1hcmdpbjogMDtcblxuXHRcdC8qIFdpZGdldCB0eXBlIGFyb3VuZCBvdmVycmlkZXMuICovXG5cdH1cblxuLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlLmxheW91dC10YWJsZS5jay13aWRnZXQ6aG92ZXIge1xuXHRcdFx0XHQvKiBUbyBwcmV2ZW50IHRoZSB3aWRnZXQgb3V0bGluZSBmcm9tIGJlaW5nIGN1dCBvZmYgYXQgdGhlIGJvdHRvbVxuXHRcdFx0XHR3aGVuIHRoZSBuZXh0IGNlbGwgb3IgdGFibGUgaGFzIGEgYmFja2dyb3VuZCBjb2xvciwgZm9yIGV4YW1wbGUuICovXG5cdFx0XHRcdHotaW5kZXg6IHZhcigtLWNrLXotZGVmYXVsdCk7XG5cdFx0XHR9XG5cbi5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZS5sYXlvdXQtdGFibGUuY2std2lkZ2V0OmhvdmVyID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0XHRcdG9wYWNpdHk6IDAuNzU7XG5cdFx0XHRcdHZpc2liaWxpdHk6IHZpc2libGU7XG5cdFx0XHR9XG5cbi5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZS5sYXlvdXQtdGFibGUuY2std2lkZ2V0OmhvdmVyID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZTpob3ZlciB7XG5cdFx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdFx0fVxuXG4vKiBCZWNhdXNlIG9mIHNldHRpbmcgdGhlIG9wYWNpdHkgdG8gMC43NSB0byB0aGUgc2VsZWN0aW9uIGhhbmRsZSBmb3IgdGhlIGxheW91dCB0YWJsZSxcblx0XHRcdGl0IG92ZXJyaWRlcyB0aGUgc2ltaWxhciBzZWxlY3RvciBpbiB3aWRnZXQgKHNwZWNpZmljaXR5IGlzIGhpZ2hlciksXG5cdFx0XHR0aGF0cyB3aHkgd2UgbXVzdCBvdmVycmlkZSBpdCBoZXJlIGFsc28uICovXG5cbi5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZS5sYXlvdXQtdGFibGUuY2std2lkZ2V0OmhhcyggLmNrLXdpZGdldC50YWJsZTpob3ZlciApID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0XHRcdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0XHRcdH1cblxuLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlLmxheW91dC10YWJsZS5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkIHtcblx0XHRcdFx0LyogVG8gcHJldmVudCB0aGUgd2lkZ2V0IG91dGxpbmUgZnJvbSBiZWluZyBjdXQgb2ZmIGF0IHRoZSBib3R0b21cblx0XHRcdFx0d2hlbiB0aGUgbmV4dCBjZWxsIG9yIHRhYmxlIGhhcyBhIGJhY2tncm91bmQgY29sb3IsIGZvciBleGFtcGxlLiAqL1xuXHRcdFx0XHR6LWluZGV4OiB2YXIoLS1jay16LWRlZmF1bHQpO1xuXHRcdFx0fVxuXG4uY2stY29udGVudCB0YWJsZS50YWJsZS5sYXlvdXQtdGFibGUsXG5cdC5jay1jb250ZW50IGZpZ3VyZS50YWJsZS5sYXlvdXQtdGFibGUge1xuXHRcdC8qIERvIG5vdCByZXNlcnZlIHNwYWNlIGFib3ZlIGFuZCBiZWxvdyB0aGUgbGF5b3V0IHRhYmxlLiAqL1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxuXG4uY2stY29udGVudCB0YWJsZS50YWJsZS5sYXlvdXQtdGFibGUsXG5cdC5jay1jb250ZW50IGZpZ3VyZS50YWJsZS5sYXlvdXQtdGFibGUgPiB0YWJsZSB7XG5cdFx0Ym9yZGVyLXNwYWNpbmc6IDA7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1mb3JtLWRlZmF1bHQtd2lkdGg6IDM0MHB4O1xufVxuXG4uY2suY2stZm9ybSB7XG5cdHBhZGRpbmc6IDAgMCB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcbn1cblxuLmNrLmNrLWZvcm0uY2stZm9ybV9kZWZhdWx0LXdpZHRoIHtcblx0XHR3aWR0aDogdmFyKC0tY2stZm9ybS1kZWZhdWx0LXdpZHRoKTtcblx0fVxuXG4uY2suY2stZm9ybTpmb2N1cyB7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0fVxuXG4uY2suY2stZm9ybSAuY2suY2staW5wdXQtdGV4dCxcblx0LmNrLmNrLWZvcm0gLmNrLmNrLWlucHV0LW51bWJlciB7XG5cdFx0bWluLXdpZHRoOiAxMDAlO1xuXHRcdHdpZHRoOiAwO1xuXHR9XG5cbi5jay5jay1mb3JtIC5jay5jay1kcm9wZG93biB7XG5cdFx0bWluLXdpZHRoOiAxMDAlO1xuXHR9XG5cbi5jay5jay1mb3JtIC5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX2J1dHRvbjpub3QoOmZvY3VzKSB7XG5cdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRcdH1cblxuLmNrLmNrLWZvcm0gLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fYnV0dG9uIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHR9XG5cbi8qIERlZmF1bHQgYGNrLXJlc3BvbnNpdmUtZm9ybWAgY3VzdG9taXphdGlvbiB3aGVuIGl0IGxpZXMgbmV4dCB0byBgY2stZm9ybWAgY2xhc3MgKi9cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcblxuLmNrLmNrLWZvcm0uY2stcmVzcG9uc2l2ZS1mb3JtIC5jay5jay1mb3JtX19yb3cuY2stZm9ybV9fcm93X3dpdGgtc3VibWl0IHtcblx0XHRcdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdFx0XHRcdGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuXHRcdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHR9XG5cdH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcblxuLmNrLmNrLWZvcm0uY2stcmVzcG9uc2l2ZS1mb3JtIC5jay5jay1mb3JtX19yb3cuY2stZm9ybV9fcm93X3dpdGgtc3VibWl0ID4gLmNrIHtcblx0XHRcdFx0XHRcdG1hcmdpbjogdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgMDtcblx0XHRcdFx0fVxuXHR9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG5cbi5jay5jay1mb3JtLmNrLXJlc3BvbnNpdmUtZm9ybSAuY2suY2stZm9ybV9fcm93LmNrLWZvcm1fX3Jvd193aXRoLXN1Ym1pdCAuY2stYnV0dG9uX3dpdGgtdGV4dCB7XG5cdFx0XHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdFx0fVxuXHR9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG5cbi5jay5jay1mb3JtLmNrLXJlc3BvbnNpdmUtZm9ybSAuY2suY2stZm9ybV9fcm93LmNrLWZvcm1fX3Jvd19sYXJnZS1ib3R0b20tcGFkZGluZyB7XG5cdFx0XHRcdFx0cGFkZGluZy1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdFx0fVxuXHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWZvcm0uY2stcmVzcG9uc2l2ZS1mb3JtID4gOm5vdCg6Zmlyc3QtY2hpbGQpIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWZvcm0uY2stcmVzcG9uc2l2ZS1mb3JtID4gOm5vdCg6bGFzdC1jaGlsZCkge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdH1cblxuLyogRW5kIG9mIGBjay1yZXNwb25zaXZlLWZvcm1gIGN1c3RvbWl6YXRpb24gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19hY3Rpb24tcm93IC5jay1idXR0b24tc2F2ZSxcblx0XHQuY2suY2stZm9ybV9fcm93LmNrLXRhYmxlLWZvcm1fX2FjdGlvbi1yb3cgLmNrLWJ1dHRvbi1jYW5jZWwge1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stdGFibGUtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWZvcm1fX2JvcmRlci1yb3cge1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdH1cblxuLmNrLmNrLXRhYmxlLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19iYWNrZ3JvdW5kLXJvdyB7XG5cdFx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0fVxuXG4uY2suY2stdGFibGUtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbnMtcm93IHtcblx0XHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0fVxuXG4uY2suY2stdGFibGUtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbnMtcm93IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG5cdFx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHR9XG5cbi5jay5jay10YWJsZS1mb3JtIC5jay1mb3JtX19yb3cuY2stdGFibGUtZm9ybV9fZGltZW5zaW9ucy1yb3cgLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2suY2stZHJvcGRvd24ge1xuXHRcdFx0XHRcdGZsZXgtZ3JvdzogMDtcblx0XHRcdFx0fVxuXG4uY2suY2stdGFibGUtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbnMtcm93IC5jay10YWJsZS1mb3JtX19kaW1lbnNpb24tb3BlcmF0b3Ige1xuXHRcdFx0XHRmbGV4LWdyb3c6IDA7XG5cdFx0XHR9XG5cbi8qIElnbm9yZSBsYWJlbHMgdGhhdCB3b3JrIGFzIGZpZWxkc2V0IGxlZ2VuZHMgKi9cblxuLyogRmFsbGJhY2sgZm9yIHRhYmxlIGRpbWVuc2lvbiBvcGVyYXRvciAqL1xuXG4uY2suY2stdGFibGUtZm9ybSAuY2stZm9ybV9fcm93ID4gKjpub3QoLmNrLWxhYmVsLCAuY2stdGFibGUtZm9ybV9fZGltZW5zaW9uLW9wZXJhdG9yKSB7XG5cdFx0XHRmbGV4LWdyb3c6IDE7XG5cdFx0fVxuXG4uY2suY2stdGFibGUtZm9ybSAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHQvKiBBbGxvdyBhYnNvbHV0ZSBwb3NpdGlvbmluZyBvZiB0aGUgc3RhdHVzIChlcnJvcikgYmFsbG9vbnMuICovXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR9XG5cbi5jay5jay10YWJsZS1mb3JtIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19fc3RhdHVzIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdGJvdHRvbTogY2FsYyggLTEgKiB2YXIoLS1jay10YWJsZS1wcm9wZXJ0aWVzLWVycm9yLWFycm93LXNpemUpICk7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLDEwMCUpO1xuXG5cdFx0XHQvKiBNYWtlIHN1cmUgdGhlIGJhbGxvb24gc3RhdHVzIHN0YXlzIG9uIHRvcCBvZiBvdGhlciBmb3JtIGVsZW1lbnRzLiAqL1xuXHRcdFx0ei1pbmRleDogMTtcblxuXHRcdFx0LyogVGhlIGFycm93IHBvaW50aW5nIHRvd2FyZHMgdGhlIGZpZWxkLiAqL1xuXHRcdH1cblxuLmNrLmNrLXRhYmxlLWZvcm0gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXM6OmFmdGVyIHtcblx0XHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IGNhbGMoIC0xICogdmFyKC0tY2stdGFibGUtcHJvcGVydGllcy1lcnJvci1hcnJvdy1zaXplKSApO1xuXHRcdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCggLTUwJSApO1xuXHRcdFx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stdGFibGUtcHJvcGVydGllcy1mb3JtIC5jay1mb3JtX19yb3cuY2stdGFibGUtcHJvcGVydGllcy1mb3JtX19hbGlnbm1lbnQtcm93IHtcblx0XHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRcdGZsZXgtYmFzaXM6IDA7XG5cdFx0XHRhbGlnbi1jb250ZW50OiBiYXNlbGluZTtcblx0XHR9XG5cbi5jay5jay10YWJsZS1wcm9wZXJ0aWVzLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1wcm9wZXJ0aWVzLWZvcm1fX2FsaWdubWVudC1yb3cgLmNrLmNrLXRvb2xiYXIgLmNrLXRvb2xiYXJfX2l0ZW1zIHtcblx0XHRcdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdFx0XHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1jb2xvci1zZWxlY3Rvci1jYXB0aW9uLWJhY2tncm91bmQ6IGhzbCgwLCAwJSwgOTclKTtcblx0LS1jay1jb2xvci1zZWxlY3Rvci1jYXB0aW9uLXRleHQ6IGhzbCgwLCAwJSwgMjAlKTtcblx0LS1jay1jb2xvci1zZWxlY3Rvci1jYXB0aW9uLWhpZ2hsaWdodGVkLWJhY2tncm91bmQ6IGhzbCg1MmRlZyAxMDAlIDUwJSk7XG59XG5cbi8qIENvbnRlbnQgc3R5bGVzICovXG4uY2stY29udGVudCAudGFibGUgPiBmaWdjYXB0aW9uIHtcblx0ZGlzcGxheTogdGFibGUtY2FwdGlvbjtcblx0Y2FwdGlvbi1zaWRlOiB0b3A7XG5cdHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLXNlbGVjdG9yLWNhcHRpb24tdGV4dCk7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLXNlbGVjdG9yLWNhcHRpb24tYmFja2dyb3VuZCk7XG5cdHBhZGRpbmc6IC42ZW07XG5cdGZvbnQtc2l6ZTogLjc1ZW07XG5cdG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xuXG5cdC8qIEltcHJvdmUgcGxhY2Vob2xkZXIgcmVuZGVyaW5nIGluIGhpZ2gtY29uc3RyYXN0IG1vZGUgKGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE0OTA3KS4gKi9cbn1cbkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG5cdFx0LmNrLWNvbnRlbnQgLnRhYmxlID4gZmlnY2FwdGlvbiB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cdFx0Y29sb3I6IHVuc2V0O1xuXHRcdH1cblx0fVxuXG4vKiBFZGl0aW5nIHN0eWxlcyAqL1xuQG1lZGlhIChmb3JjZWQtY29sb3JzOiBub25lKSB7XG5cdFx0LmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlID4gZmlnY2FwdGlvbi50YWJsZV9fY2FwdGlvbl9oaWdobGlnaHRlZCB7XG5cdFx0XHRhbmltYXRpb246IGNrLXRhYmxlLWNhcHRpb24taGlnaGxpZ2h0IC42cyBlYXNlLW91dDtcblx0XHR9XG5cdH1cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZSA+IGZpZ2NhcHRpb24uY2stcGxhY2Vob2xkZXI6OmJlZm9yZSB7XG5cdFx0cGFkZGluZy1sZWZ0OiBpbmhlcml0O1xuXHRcdHBhZGRpbmctcmlnaHQ6IGluaGVyaXQ7XG5cblx0XHQvKlxuXHRcdCAqIE1ha2Ugc3VyZSB0aGUgdGFibGUgY2FwdGlvbiBwbGFjZWhvbGRlciBkb2Vzbid0IG92ZXJmbG93IHRoZSBwbGFjZWhvbGRlciBhcmVhLlxuXHRcdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85MTYyLlxuXHRcdCAqL1xuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0fVxuXG5Aa2V5ZnJhbWVzIGNrLXRhYmxlLWNhcHRpb24taGlnaGxpZ2h0IHtcblx0MCUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLXNlbGVjdG9yLWNhcHRpb24taGlnaGxpZ2h0ZWQtYmFja2dyb3VuZCk7XG5cdH1cblxuXHQxMDAlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1zZWxlY3Rvci1jYXB0aW9uLWJhY2tncm91bmQpO1xuXHR9XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1jb2xvci1zZWxlY3Rvci1jb2x1bW4tcmVzaXplci1ob3ZlcjogdmFyKC0tY2stY29sb3ItYmFzZS1hY3RpdmUpO1xuXHQtLWNrLXRhYmxlLWNvbHVtbi1yZXNpemVyLXdpZHRoOiA3cHg7XG5cblx0LyogVGhlIG9mZnNldCB1c2VkIGZvciBhYnNvbHV0ZSBwb3NpdGlvbmluZyBvZiB0aGUgcmVzaXplciBlbGVtZW50LCBzbyB0aGF0IGl0IGlzIHBsYWNlZCBleGFjdGx5IGFib3ZlIHRoZSBjZWxsIGJvcmRlci5cblx0ICAgVGhlIHZhbHVlIGlzOiBtaW51cyBoYWxmIHRoZSB3aWR0aCBvZiB0aGUgcmVzaXplciBkZWNyZWFzZWQgYWRkaXRpb25hbHkgYnkgdGhlIGhhbGYgdGhlIHdpZHRoIG9mIHRoZSBib3JkZXIgKDAuNXB4KS4gKi9cblx0LS1jay10YWJsZS1jb2x1bW4tcmVzaXplci1wb3NpdGlvbi1vZmZzZXQ6IGNhbGModmFyKC0tY2stdGFibGUtY29sdW1uLXJlc2l6ZXItd2lkdGgpICogLTAuNSAtIDAuNXB4KTtcbn1cblxuLmNrLWNvbnRlbnQgLnRhYmxlIC5jay10YWJsZS1yZXNpemVkIHtcblx0dGFibGUtbGF5b3V0OiBmaXhlZDtcbn1cblxuLmNrLWNvbnRlbnQgLnRhYmxlIHRkLFxuLmNrLWNvbnRlbnQgLnRhYmxlIHRoIHtcblx0LyogVG8gcHJldmVudCB0ZXh0IG92ZXJmbG93aW5nIGJleW9uZCBpdHMgY2VsbCB3aGVuIGNvbHVtbnMgYXJlIHJlc2l6ZWQgYnkgcmVzaXplIGhhbmRsZXJcblx0KGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvcHVsbC8xNDM3OSNpc3N1ZWNvbW1lbnQtMTU4OTQ2MDk3OCkuICovXG5cdG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZSB0ZCxcbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZSB0aCB7XG5cdC8qIFRoZSByZXNpemVyIGVsZW1lbnQgaXMgcGxhY2VkIGluc2lkZSBlYWNoIGNlbGwsIHNvIGl0IG11c3QgYmUgcG9zaXRpb25lZCByZWxhdGl2ZWx5IHRvIHRoZSBjZWxsLiAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZSAuY2stdGFibGUtY29sdW1uLXJlc2l6ZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0Ym90dG9tOiAwO1xuXHRyaWdodDogdmFyKC0tY2stdGFibGUtY29sdW1uLXJlc2l6ZXItcG9zaXRpb24tb2Zmc2V0KTtcblx0d2lkdGg6IHZhcigtLWNrLXRhYmxlLWNvbHVtbi1yZXNpemVyLXdpZHRoKTtcblx0Y3Vyc29yOiBjb2wtcmVzaXplO1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcblx0ei1pbmRleDogdmFyKC0tY2stei1kZWZhdWx0KTtcbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stY29sdW1uLXJlc2l6ZV9kaXNhYmxlZCAudGFibGUgLmNrLXRhYmxlLWNvbHVtbi1yZXNpemVyIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLyogVGhlIHJlc2l6ZXIgZWxlbWVudHMsIHdoaWNoIGFyZSBleHRlbmRlZCB0byBhbiBleHRyZW1lbHkgaGlnaCBoZWlnaHQsIGJyZWFrIHRoZSBkcmFnICYgZHJvcCBmZWF0dXJlIGluIENocm9tZS4gVG8gbWFrZSBpdCB3b3JrIGFnYWluLFxuICAgYWxsIHJlc2l6ZXJzIG11c3QgYmUgaGlkZGVuIHdoaWxlIHRoZSB0YWJsZSBpcyBkcmFnZ2VkLiAqL1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlW2RyYWdnYWJsZV0gLmNrLXRhYmxlLWNvbHVtbi1yZXNpemVyIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlIC5jay10YWJsZS1jb2x1bW4tcmVzaXplcjpob3Zlcixcbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZSAuY2stdGFibGUtY29sdW1uLXJlc2l6ZXJfX2FjdGl2ZSB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLXNlbGVjdG9yLWNvbHVtbi1yZXNpemVyLWhvdmVyKTtcblx0b3BhY2l0eTogMC4yNTtcbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGVbZGlyPXJ0bF0gLnRhYmxlIC5jay10YWJsZS1jb2x1bW4tcmVzaXplciB7XG5cdGxlZnQ6IHZhcigtLWNrLXRhYmxlLWNvbHVtbi1yZXNpemVyLXBvc2l0aW9uLW9mZnNldCk7XG5cdHJpZ2h0OiB1bnNldDtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyoqXG4gKiBBIGNsYXNzIHdoaWNoIGhpZGVzIGFuIGVsZW1lbnQgaW4gRE9NLlxuICovXG5cbi5jay1oaWRkZW4ge1xuXHQvKiBPdmVycmlkZSBzZWxlY3RvciBzcGVjaWZpY2l0eS4gT3RoZXJ3aXNlLCBhbGwgZWxlbWVudHMgd2l0aCBzb21lIGRpc3BsYXlcblx0c3R5bGUgZGVmaW5lZCB3aWxsIG92ZXJyaWRlIHRoaXMgb25lLCB3aGljaCBpcyBub3QgYSBkZXNpcmVkIHJlc3VsdC4gKi9cblx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay16LWRlZmF1bHQ6IDE7XG5cdC0tY2stei1wYW5lbDogY2FsYyggdmFyKC0tY2stei1kZWZhdWx0KSArIDk5OSApO1xuXHQtLWNrLXotZGlhbG9nOiA5OTk5O1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBjbGFzcyB0aGF0IGRpc2FibGVzIGFsbCB0cmFuc2l0aW9ucyBvZiB0aGUgZWxlbWVudCBhbmQgaXRzIGNoaWxkcmVuLlxuICovXG4uY2stdHJhbnNpdGlvbnMtZGlzYWJsZWQsXG4uY2stdHJhbnNpdGlvbnMtZGlzYWJsZWQgKiB7XG5cdHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC8qIHdoZXJlIDcuNShweCkgaXMgdGhlIGZvbnQgc2l6ZSBvZiB0aGUgcG93ZXJlZCBieSBsYWJlbCBhbmQgMTMocHgpIGlzIHRoZSBiYXNlIGZvbnQgc2l6ZS4gKi9cblx0LS1jay1wb3dlcmVkLWJ5LWZvbnQtc2l6ZTogY2FsYyh2YXIoLS1jay1mb250LXNpemUtYmFzZSkgKiA3LjUgLyAxMyk7XG5cdC8qIHdoZXJlIDEwKHB4KSBpcyB0aGUgbGluZSBoZWlnaHQgb2YgdGhlIHBvd2VyZWQgYnkgbGFiZWwgYW5kIDEzKHB4KSBpcyB0aGUgYmFzZSBmb250IHNpemUuICovXG5cdC0tY2stcG93ZXJlZC1ieS1saW5lLWhlaWdodDogY2FsYyh2YXIoLS1jay1mb250LXNpemUtYmFzZSkgKiAxMCAvIDEzKTtcblx0Lyogd2hlcmUgLTAuMihweCkgaXMgdGhlIGxldHRlciBzcGFjaW5nIG9mIHRoZSBwb3dlcmVkIGJ5IGxhYmVsIGFuZCAxMyhweCkgaXMgdGhlIGJhc2UgZm9udCBzaXplLiAqL1xuXHQtLWNrLXBvd2VyZWQtYnktbGV0dGVyLXNwYWNpbmc6IGNhbGModmFyKC0tY2stZm9udC1zaXplLWJhc2UpICogLTAuMiAvIDEzKTtcblx0LS1jay1wb3dlcmVkLWJ5LXBhZGRpbmctdmVydGljYWw6IDJweDtcblx0LS1jay1wb3dlcmVkLWJ5LXBhZGRpbmctaG9yaXpvbnRhbDogNHB4O1xuXHQtLWNrLXBvd2VyZWQtYnktdGV4dC1jb2xvcjogaHNsKDAsIDAlLCAzMSUpO1xuXHQtLWNrLXBvd2VyZWQtYnktYm9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdC0tY2stcG93ZXJlZC1ieS1iYWNrZ3JvdW5kOiBoc2woMCwgMCUsIDEwMCUpO1xuXHQtLWNrLXBvd2VyZWQtYnktYm9yZGVyLWNvbG9yOiB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXG5cdC0tY2stcG93ZXJlZC1ieS1zdmctd2lkdGg6IDUzO1xuXHQtLWNrLXBvd2VyZWQtYnktc3ZnLWhlaWdodDogMTA7XG5cdC0tY2stcG93ZXJlZC1ieS1pY29uLXdpZHRoOiBjYWxjKHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSAqIHZhcigtLWNrLXBvd2VyZWQtYnktc3ZnLXdpZHRoKSAvIDEzKTtcblx0LS1jay1wb3dlcmVkLWJ5LWljb24taGVpZ2h0OiBjYWxjKHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSAqIHZhcigtLWNrLXBvd2VyZWQtYnktc3ZnLWhlaWdodCkgLyAxMyk7XG59XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1wb3dlcmVkLWJ5LWJhbGxvb24ge1xuXHQtLWNrLWJvcmRlci1yYWRpdXM6IHZhcigtLWNrLXBvd2VyZWQtYnktYm9yZGVyLXJhZGl1cyk7XG5cblx0Ym94LXNoYWRvdzogbm9uZTtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stcG93ZXJlZC1ieS1iYWNrZ3JvdW5kKTtcblx0bWluLWhlaWdodDogdW5zZXQ7XG5cdHotaW5kZXg6IGNhbGMoIHZhcigtLWNrLXotcGFuZWwpIC0gMSApO1xufVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stcG93ZXJlZC1ieS1iYWxsb29uIC5jay5jay1wb3dlcmVkLWJ5IHtcblx0XHRsaW5lLWhlaWdodDogdmFyKC0tY2stcG93ZXJlZC1ieS1saW5lLWhlaWdodCk7XG5cdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLXBvd2VyZWQtYnktYmFsbG9vbiAuY2suY2stcG93ZXJlZC1ieSBhIHtcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0b3BhY2l0eTogLjY2O1xuXHRcdFx0ZmlsdGVyOiBncmF5c2NhbGUoODAlKTtcblx0XHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1jay1wb3dlcmVkLWJ5LWxpbmUtaGVpZ2h0KTtcblx0XHRcdHBhZGRpbmc6IHZhcigtLWNrLXBvd2VyZWQtYnktcGFkZGluZy12ZXJ0aWNhbCkgdmFyKC0tY2stcG93ZXJlZC1ieS1wYWRkaW5nLWhvcml6b250YWwpO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLXBvd2VyZWQtYnktYmFsbG9vbiAuY2suY2stcG93ZXJlZC1ieSAuY2stcG93ZXJlZC1ieV9fbGFiZWwge1xuXHRcdFx0Zm9udC1zaXplOiB2YXIoLS1jay1wb3dlcmVkLWJ5LWZvbnQtc2l6ZSk7XG5cdFx0XHRsZXR0ZXItc3BhY2luZzogdmFyKC0tY2stcG93ZXJlZC1ieS1sZXR0ZXItc3BhY2luZyk7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDJweDtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdG1hcmdpbi1yaWdodDogNHB4O1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1wb3dlcmVkLWJ5LXRleHQtY29sb3IpO1xuXG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stcG93ZXJlZC1ieS1iYWxsb29uIC5jay5jay1wb3dlcmVkLWJ5IC5jay1pY29uIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0d2lkdGg6IHZhcigtLWNrLXBvd2VyZWQtYnktaWNvbi13aWR0aCk7XG5cdFx0XHRoZWlnaHQ6IHZhcigtLWNrLXBvd2VyZWQtYnktaWNvbi1oZWlnaHQpO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLXBvd2VyZWQtYnktYmFsbG9vbiAuY2suY2stcG93ZXJlZC1ieTpob3ZlciBhIHtcblx0XHRcdFx0ZmlsdGVyOiBncmF5c2NhbGUoMCUpO1xuXHRcdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stcG93ZXJlZC1ieS1iYWxsb29uW2NsYXNzKj1cInBvc2l0aW9uX2luc2lkZVwiXSB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stcG93ZXJlZC1ieS1iYWxsb29uW2NsYXNzKj1cInBvc2l0aW9uX2JvcmRlclwiXSB7XG5cdFx0Ym9yZGVyOiB2YXIoLS1jay1mb2N1cy1yaW5nKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLXBvd2VyZWQtYnktYm9yZGVyLWNvbG9yKTtcblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0Lyogd2hlcmUgNy41KHB4KSBpcyB0aGUgZm9udCBzaXplIG9mIHRoZSBldmFsdWF0aW9uIGJhZGdlIGxhYmVsIGFuZCAxMyhweCkgaXMgdGhlIGJhc2UgZm9udCBzaXplLiAqL1xuXHQtLWNrLWV2YWx1YXRpb24tYmFkZ2UtZm9udC1zaXplOiBjYWxjKHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSAqIDcuNSAvIDEzKTtcblx0Lyogd2hlcmUgNy41KHB4KSBpcyB0aGUgbGluZSBoZWlnaHQgb2YgdGhlIGV2YWx1YXRpb24gYmFkZ2UgbGFiZWwgYW5kIDEzKHB4KSBpcyB0aGUgYmFzZSBmb250IHNpemUuICovXG5cdC0tY2stZXZhbHVhdGlvbi1iYWRnZS1saW5lLWhlaWdodDogY2FsYyh2YXIoLS1jay1mb250LXNpemUtYmFzZSkgKiA3LjUgLyAxMyk7XG5cdC8qIHdoZXJlIC0wLjIocHgpIGlzIHRoZSBsZXR0ZXIgc3BhY2luZyBvZiB0aGUgZXZhbHVhdGlvbiBiYWRnZSBsYWJlbCBhbmQgMTMocHgpIGlzIHRoZSBiYXNlIGZvbnQgc2l6ZS4gKi9cblx0LS1jay1ldmFsdWF0aW9uLWJhZGdlLWxldHRlci1zcGFjaW5nOiBjYWxjKHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSAqIC0wLjIgLyAxMyk7XG5cdC0tY2stZXZhbHVhdGlvbi1iYWRnZS1wYWRkaW5nLXZlcnRpY2FsOiAycHg7XG5cdC0tY2stZXZhbHVhdGlvbi1iYWRnZS1wYWRkaW5nLWhvcml6b250YWw6IDRweDtcblx0LS1jay1ldmFsdWF0aW9uLWJhZGdlLXRleHQtY29sb3I6IGhzbCgwLCAwJSwgMzElKTtcblx0LS1jay1ldmFsdWF0aW9uLWJhZGdlLWJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHQtLWNrLWV2YWx1YXRpb24tYmFkZ2UtYmFja2dyb3VuZDogaHNsKDAsIDAlLCAxMDAlKTtcblx0LS1jay1ldmFsdWF0aW9uLWJhZGdlLWJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcbn1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWV2YWx1YXRpb24tYmFkZ2UtYmFsbG9vbiB7XG5cdC0tY2stYm9yZGVyLXJhZGl1czogdmFyKC0tY2stZXZhbHVhdGlvbi1iYWRnZS1ib3JkZXItcmFkaXVzKTtcblxuXHRib3gtc2hhZG93OiBub25lO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1ldmFsdWF0aW9uLWJhZGdlLWJhY2tncm91bmQpO1xuXHRtaW4taGVpZ2h0OiB1bnNldDtcblx0ei1pbmRleDogY2FsYyggdmFyKC0tY2stei1wYW5lbCkgLSAxICk7XG59XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1ldmFsdWF0aW9uLWJhZGdlLWJhbGxvb24gLmNrLmNrLWV2YWx1YXRpb24tYmFkZ2Uge1xuXHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1jay1ldmFsdWF0aW9uLWJhZGdlLWxpbmUtaGVpZ2h0KTtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1ldmFsdWF0aW9uLWJhZGdlLXBhZGRpbmctdmVydGljYWwpIHZhcigtLWNrLWV2YWx1YXRpb24tYmFkZ2UtcGFkZGluZy1ob3Jpem9udGFsKTtcblx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stZXZhbHVhdGlvbi1iYWRnZS1iYWxsb29uIC5jay5jay1ldmFsdWF0aW9uLWJhZGdlIC5jay1ldmFsdWF0aW9uLWJhZGdlX19sYWJlbCB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdHBhZGRpbmc6IDAgMnB4O1xuXHRcdFx0Zm9udC1zaXplOiB2YXIoLS1jay1ldmFsdWF0aW9uLWJhZGdlLWZvbnQtc2l6ZSk7XG5cdFx0XHRsZXR0ZXItc3BhY2luZzogdmFyKC0tY2stZXZhbHVhdGlvbi1iYWRnZS1sZXR0ZXItc3BhY2luZyk7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWV2YWx1YXRpb24tYmFkZ2UtdGV4dC1jb2xvcik7XG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stZXZhbHVhdGlvbi1iYWRnZS1iYWxsb29uW2NsYXNzKj1cInBvc2l0aW9uX2luc2lkZVwiXSB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stZXZhbHVhdGlvbi1iYWRnZS1iYWxsb29uW2NsYXNzKj1cInBvc2l0aW9uX2JvcmRlclwiXSB7XG5cdFx0Ym9yZGVyOiB2YXIoLS1jay1mb2N1cy1yaW5nKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWV2YWx1YXRpb24tYmFkZ2UtYm9yZGVyLWNvbG9yKTtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKipcbiAqIE1ha2VzIGVsZW1lbnQgdW5zZWxlY3RhYmxlLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stYnV0dG9uLFxuYS5jay5jay1idXR0b24ge1xuXHQtbW96LXVzZXItc2VsZWN0OiBub25lO1xuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuXHQtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdHVzZXItc2VsZWN0OiBub25lO1xuXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogaW5saW5lLWZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWJ1dHRvbiwgW2Rpcj1cImx0clwiXSBhLmNrLmNrLWJ1dHRvbiB7XG5cdFx0anVzdGlmeS1jb250ZW50OiBsZWZ0O1xuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWJ1dHRvbiwgW2Rpcj1cInJ0bFwiXSBhLmNrLmNrLWJ1dHRvbiB7XG5cdFx0anVzdGlmeS1jb250ZW50OiByaWdodDtcblx0fVxuXG4uY2suY2stYnV0dG9uIC5jay1idXR0b25fX2xhYmVsLCBhLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG4uY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLXRleHQgLmNrLWJ1dHRvbl9fbGFiZWwsIGEuY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLXRleHQgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdH1cblxuLyogQ2VudGVyIHRoZSBpY29uIGhvcml6b250YWxseSBpbiBhIGJ1dHRvbiB3aXRob3V0IHRleHQuICovXG5cbi5jay5jay1idXR0b246bm90KC5jay1idXR0b25fd2l0aC10ZXh0KSwgIGEuY2suY2stYnV0dG9uOm5vdCguY2stYnV0dG9uX3dpdGgtdGV4dCkgIHtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbiAuY2stYnV0dG9uX190b2dnbGUge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cbi5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIC5jay1idXR0b25fX3RvZ2dsZSAuY2stYnV0dG9uX190b2dnbGVfX2lubmVyIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWxpc3QtaXRlbS1idXR0b24ge1xuXHRtaW4taGVpZ2h0OiB1bnNldDtcblx0d2lkdGg6IDEwMCU7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWxpc3QtaXRlbS1idXR0b24ge1xuXHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stbGlzdC1pdGVtLWJ1dHRvbiB7XG5cdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stbGlzdC1pdGVtLWJ1dHRvbi5jay1saXN0LWl0ZW0tYnV0dG9uX3RvZ2dsZWFibGUge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1saXN0LWl0ZW0tYnV0dG9uLmNrLWxpc3QtaXRlbS1idXR0b25fdG9nZ2xlYWJsZSB7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuXG4uY2suY2stbGlzdC1pdGVtLWJ1dHRvbiAuY2stbGlzdC1pdGVtLWJ1dHRvbl9fY2hlY2staG9sZGVyIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcblx0XHR3aWR0aDogLjllbTtcblx0XHRoZWlnaHQ6IC45ZW07XG5cdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stbGlzdC1pdGVtLWJ1dHRvbiAuY2stbGlzdC1pdGVtLWJ1dHRvbl9fY2hlY2staG9sZGVyIHtcblx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stbGlzdC1pdGVtLWJ1dHRvbiAuY2stbGlzdC1pdGVtLWJ1dHRvbl9fY2hlY2staG9sZGVyIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuXG4uY2suY2stbGlzdC1pdGVtLWJ1dHRvbiAuY2stbGlzdC1pdGVtLWJ1dHRvbl9fY2hlY2staWNvbiB7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1jb2xsYXBzaWJsZS5jay1jb2xsYXBzaWJsZV9jb2xsYXBzZWQgPiAuY2stY29sbGFwc2libGVfX2NoaWxkcmVuIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1jb2xvci1ncmlkIHtcblx0ZGlzcGxheTogZ3JpZDtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNvbG9yLXBpY2tlci1oZXgtaW5wdXQge1xuXHR3aWR0aDogbWF4LWNvbnRlbnQ7XG59XG5cbi5jb2xvci1waWNrZXItaGV4LWlucHV0IC5jay5jay1pbnB1dCB7XG5cdFx0bWluLXdpZHRoOiB1bnNldDtcblx0fVxuXG4uY2suY2stY29sb3ItcGlja2VyX19yb3cge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRtYXJnaW46IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIDAgMDtcblx0d2lkdGg6IHVuc2V0O1xufVxuXG4uY2suY2stY29sb3ItcGlja2VyX19yb3cgLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0cGFkZGluZy10b3A6IHVuc2V0O1xuXHR9XG5cbi5jay5jay1jb2xvci1waWNrZXJfX3JvdyAuY2suY2staW5wdXQtdGV4dCB7XG5cdFx0d2lkdGg6IHVuc2V0O1xuXHR9XG5cbi5jay5jay1jb2xvci1waWNrZXJfX3JvdyAuY2stY29sb3ItcGlja2VyX19oYXNoLXZpZXcge1xuXHRcdHBhZGRpbmctdG9wOiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpO1xuXHRcdHBhZGRpbmctcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKiBWaWV3IGZyYWdtZW50IHdpdGggY29sb3IgZ3JpZHMuICovXG5cbi5jay5jay1jb2xvci1zZWxlY3RvciAuY2stY29sb3ItZ3JpZHMtZnJhZ21lbnQgLmNrLWJ1dHRvbi5jay1jb2xvci1zZWxlY3Rvcl9fcmVtb3ZlLWNvbG9yLFxuXHRcdC5jay5jay1jb2xvci1zZWxlY3RvciAuY2stY29sb3ItZ3JpZHMtZnJhZ21lbnQgLmNrLWJ1dHRvbi5jay1jb2xvci1zZWxlY3Rvcl9fY29sb3ItcGlja2VyIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stY29sb3Itc2VsZWN0b3IgLmNrLWNvbG9yLWdyaWRzLWZyYWdtZW50IC5jay1idXR0b24uY2stY29sb3Itc2VsZWN0b3JfX3JlbW92ZS1jb2xvciwgW2Rpcj1cInJ0bFwiXSAuY2suY2stY29sb3Itc2VsZWN0b3IgLmNrLWNvbG9yLWdyaWRzLWZyYWdtZW50IC5jay1idXR0b24uY2stY29sb3Itc2VsZWN0b3JfX2NvbG9yLXBpY2tlciB7XG5cdFx0XHRcdGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblx0fVxuXG4vKiBWaWV3IGZyYWdtZW50IHdpdGggYSBjb2xvciBwaWNrZXIuICovXG5cbi5jay5jay1jb2xvci1zZWxlY3RvciAuY2stY29sb3ItcGlja2VyLWZyYWdtZW50IC5jay5jay1jb2xvci1zZWxlY3Rvcl9hY3Rpb24tYmFyIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG5cdFx0fVxuXG4uY2suY2stY29sb3Itc2VsZWN0b3IgLmNrLWNvbG9yLXBpY2tlci1mcmFnbWVudCAuY2suY2stY29sb3Itc2VsZWN0b3JfYWN0aW9uLWJhciAuY2stYnV0dG9uLXNhdmUsXG5cdFx0XHQuY2suY2stY29sb3Itc2VsZWN0b3IgLmNrLWNvbG9yLXBpY2tlci1mcmFnbWVudCAuY2suY2stY29sb3Itc2VsZWN0b3JfYWN0aW9uLWJhciAuY2stYnV0dG9uLWNhbmNlbCB7XG5cdFx0XHRcdGZsZXg6IDFcblx0XHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWRpYWxvZyAuY2suY2stZGlhbG9nX19hY3Rpb25zIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWRpYWxvZy1vdmVybGF5IHtcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cdG92ZXJzY3JvbGwtYmVoYXZpb3I6IG5vbmU7XG5cblx0cG9zaXRpb246IGZpeGVkO1xuXHRib3R0b206IDA7XG5cdGxlZnQ6IDA7XG5cdHJpZ2h0OiAwO1xuXHR0b3A6IDA7XG59XG5cbi5jay5jay1kaWFsb2ctb3ZlcmxheS5jay1kaWFsb2ctb3ZlcmxheV9fdHJhbnNwYXJlbnQge1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdGFuaW1hdGlvbjogbm9uZTtcblx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHR9XG5cbi5jay5jay1kaWFsb2cge1xuXHRvdmVyc2Nyb2xsLWJlaGF2aW9yOiBub25lO1xuXHR3aWR0aDogZml0LWNvbnRlbnQ7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLmNrLmNrLWRpYWxvZyAuY2suY2stZm9ybV9faGVhZGVyICB7XG5cdFx0ZmxleC1zaHJpbms6IDA7XG5cdH1cblxuLyogTW9kYWxzIHNob3VsZCBub3QgYmUgZHJhZ2dhYmxlLiAqL1xuXG4uY2suY2stZGlhbG9nOm5vdCguY2stZGlhbG9nX21vZGFsKSAuY2suY2stZm9ybV9faGVhZGVyIC5jay1mb3JtX19oZWFkZXJfX2xhYmVsIHtcblx0XHRcdGN1cnNvcjogZ3JhYjtcblx0XHR9XG5cbi5jay5jay1kaWFsb2ctb3ZlcmxheS5jay1kaWFsb2ctb3ZlcmxheV9fdHJhbnNwYXJlbnQgLmNrLmNrLWRpYWxvZyB7XG5cdFx0cG9pbnRlci1ldmVudHM6IGFsbDtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stZHJvcGRvd24tbWF4LXdpZHRoOiA3NXZ3O1xufVxuXG4uY2suY2stZHJvcGRvd24ge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fYXJyb3cge1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdHotaW5kZXg6IHZhcigtLWNrLXotZGVmYXVsdCk7XG5cdH1cblxuLyogRHJvcGRvd24gYnV0dG9uIHNob3VsZCBzcGFuIGhvcml6b250YWxseSwgZS5nLiBpbiB2ZXJ0aWNhbCB0b29sYmFycyAqL1xuXG4uY2suY2stZHJvcGRvd24gLmNrLWJ1dHRvbi5jay1kcm9wZG93bl9fYnV0dG9uIHtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxuXG4uY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0XHR6LWluZGV4OiB2YXIoLS1jay16LXBhbmVsKTtcblx0XHRtYXgtd2lkdGg6IHZhcigtLWNrLWRyb3Bkb3duLW1heC13aWR0aCk7XG5cblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdH1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsLXZpc2libGUge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdH1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX25lLFxuXHRcdC5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9udyxcblx0XHQuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfbixcblx0XHQuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfbm13LFxuXHRcdC5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9ubWUge1xuXHRcdFx0Ym90dG9tOiAxMDAlO1xuXHRcdH1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX3NlLFxuXHRcdC5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9zdyxcblx0XHQuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfc213LFxuXHRcdC5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9zbWUsXG5cdFx0LmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX3Mge1xuXHRcdFx0Lypcblx0XHRcdCAqIFVzaW5nIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoIDAsIDEwMCUsIDAgKSBjYXVzZXMgYmx1cnJ5IGRyb3Bkb3duIG9uIENocm9tZSA2Ny03OCsgb24gbm9uLXJldGluYSBkaXNwbGF5cy5cblx0XHRcdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xMDUzLlxuXHRcdFx0ICovXG5cdFx0XHR0b3A6IDEwMCU7XG5cdFx0XHRib3R0b206IGF1dG87XG5cdFx0fVxuXG4uY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfbmUsXG5cdFx0LmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX3NlIHtcblx0XHRcdGxlZnQ6IDBweDtcblx0XHR9XG5cbi5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9udyxcblx0XHQuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfc3cge1xuXHRcdFx0cmlnaHQ6IDBweDtcblx0XHR9XG5cbi5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9zLFxuXHRcdC5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9uIHtcblx0XHRcdC8qIFBvc2l0aW9uaW5nIHBhbmVscyByZWxhdGl2ZSB0byB0aGUgY2VudGVyIG9mIHRoZSBidXR0b24gKi9cblx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblx0XHR9XG5cbi5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9ubXcsXG5cdFx0LmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX3NtdyB7XG5cdFx0XHQvKiBQb3NpdGlvbmluZyBwYW5lbHMgcmVsYXRpdmUgdG8gdGhlIG1pZGRsZS13ZXN0IG9mIHRoZSBidXR0b24gKi9cblx0XHRcdGxlZnQ6IDc1JTtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNzUlKTtcblx0XHR9XG5cbi5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9ubWUsXG5cdFx0LmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX3NtZSB7XG5cdFx0XHQvKiBQb3NpdGlvbmluZyBwYW5lbHMgcmVsYXRpdmUgdG8gdGhlIG1pZGRsZS1lYXN0IG9mIHRoZSBidXR0b24gKi9cblx0XHRcdGxlZnQ6IDI1JTtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjUlKTtcblx0XHR9XG5cbi8qXG4gKiBUb29sYmFyIGRyb3Bkb3duIHBhbmVscyBzaG91bGQgYmUgYWx3YXlzIGFib3ZlIHRoZSBVSSAoZWcuIG90aGVyIGRyb3Bkb3duIHBhbmVscykgZnJvbSB0aGUgZWRpdG9yJ3MgY29udGVudC5cbiAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy83ODc0XG4gKi9cbi5jay5jay10b29sYmFyIC5jay1kcm9wZG93bl9fcGFuZWwge1xuXHR6LWluZGV4OiBjYWxjKCB2YXIoLS1jay16LXBhbmVsKSArIDEgKTtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLXNwbGl0YnV0dG9uIHtcblx0LyogRW5hYmxlIGZvbnQgc2l6ZSBpbmhlcml0YW5jZSwgd2hpY2ggYWxsb3dzIGZsdWlkIFVJIHNjYWxpbmcuICovXG5cdGZvbnQtc2l6ZTogaW5oZXJpdDtcbn1cblxuLmNrLmNrLXNwbGl0YnV0dG9uIC5jay1zcGxpdGJ1dHRvbl9fYWN0aW9uOmZvY3VzIHtcblx0XHR6LWluZGV4OiBjYWxjKHZhcigtLWNrLXotZGVmYXVsdCkgKyAxKTtcblx0fVxuXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay10b29sYmFyLWRyb3Bkb3duLW1heC13aWR0aDogNjB2dztcbn1cblxuLmNrLmNrLXRvb2xiYXItZHJvcGRvd24gPiAuY2stZHJvcGRvd25fX3BhbmVsIHtcblx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNTU4NiAqL1xuXHR3aWR0aDogbWF4LWNvbnRlbnQ7XG5cdG1heC13aWR0aDogdmFyKC0tY2stdG9vbGJhci1kcm9wZG93bi1tYXgtd2lkdGgpO1xufVxuXG4uY2suY2stdG9vbGJhci1kcm9wZG93biA+IC5jay1kcm9wZG93bl9fcGFuZWwgLmNrLWJ1dHRvbjpmb2N1cyB7XG5cdFx0XHR6LWluZGV4OiBjYWxjKHZhcigtLWNrLXotZGVmYXVsdCkgKyAxKTtcblx0XHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b24gPiAuY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uX19hcnJvdyB7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHR6LWluZGV4OiB2YXIoLS1jay16LWRlZmF1bHQpO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1kcm9wZG93bi1tZW51X19uZXN0ZWQtbWVudV9fcGFuZWwge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdG1heC1oZWlnaHQ6IDMxNHB4OyAvKiBXaXRoIHRoZSBkZWZhdWx0IHNldHRpbmdzLCB0aGlzIGlzIGVxdWFsIHRvIDEwIG1lbnUgaXRlbXMuICovXG5cdG92ZXJmbG93LXk6IGF1dG87XG5cdHotaW5kZXg6IGNhbGModmFyKC0tY2stei1wYW5lbCkgKyAxKTtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnUge1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWFyaWEtbGl2ZS1hbm5vdW5jZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGxlZnQ6IC0xMDAwMHB4O1xuXHR0b3A6IC0xMDAwMHB4O1xufVxuXG4uY2suY2stYXJpYS1saXZlLXJlZ2lvbi1saXN0IHtcblx0bGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZm9ybV9fcm93IHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgMDtcbn1cblxuLmNrLmNrLWZvcm1fX3Jvdy5jay1mb3JtX19yb3dfbGFyZ2UtdG9wLXBhZGRpbmcge1xuXHRcdHBhZGRpbmctdG9wOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0fVxuXG4uY2suY2stZm9ybV9fcm93LmNrLWZvcm1fX3Jvd19sYXJnZS1ib3R0b20tcGFkZGluZyB7XG5cdFx0cGFkZGluZy1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHR9XG5cbi5jay5jay1mb3JtX19yb3cuY2stZm9ybV9fcm93X3dpdGgtc3VibWl0IHtcblx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0fVxuXG4uY2suY2stZm9ybV9fcm93LmNrLWZvcm1fX3Jvd193aXRoLXN1Ym1pdCA+ICo6bm90KDpmaXJzdC1jaGlsZCkge1xuXHRcdFx0bWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0fVxuXG4uY2suY2stZm9ybV9fcm93ID4gLmNrLmNrLWZvcm1fX3JvdyB7XG5cdFx0cGFkZGluZzogMDtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZm9ybV9faGVhZGVyIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiBub3dyYXA7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuLmNrLmNrLWZvcm1fX2hlYWRlciBoMi5jay1mb3JtX19oZWFkZXJfX2xhYmVsIHtcblx0XHRmbGV4LWdyb3c6IDE7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWljb24ge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stbGFiZWwge1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuLmNrLmNrLXZvaWNlLWxhYmVsIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR9XG5cbi5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLmNrLWxhYmVsIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyoqXG4gKiBNYWtlcyBlbGVtZW50IHVuc2VsZWN0YWJsZS5cbiAqL1xuXG4uY2suY2stbGlzdCB7XG5cdC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC1tcy11c2VyLXNlbGVjdDogbm9uZTtcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLmNrLmNrLWxpc3QgLmNrLWxpc3RfX2l0ZW0sXG5cdC5jay5jay1saXN0IC5jay1saXN0X19zZXBhcmF0b3Ige1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cbi8qIE1ha2Ugc3VyZSB0aGF0IHdoYXRldmVyIGNoaWxkIG9mIHRoZSBsaXN0IGl0ZW0gZ2V0cyBmb2N1cywgaXQgcmVtYWlucyBvbiB0aGVcblx0dG9wLiBUaGFua3MgdG8gdGhhdCwgc3R5bGVzIGxpa2UgYm94LXNoYWRvdywgb3V0bGluZSwgZXRjLiBhcmUgbm90IG1hc2tlZCBieVxuXHRhZGphY2VudCBsaXN0IGl0ZW1zLiAqL1xuXG4uY2suY2stbGlzdCAuY2stbGlzdF9faXRlbSA+ICo6Zm9jdXMge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR6LWluZGV4OiB2YXIoLS1jay16LWRlZmF1bHQpO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LyogTWFrZSBzdXJlIHRoZSBiYWxsb29uIGFycm93IGRvZXMgbm90IGZsb2F0IG92ZXIgaXRzIGNoaWxkcmVuLiAqL1xuXHQtLWNrLWJhbGxvb24tcGFuZWwtYXJyb3ctei1pbmRleDogY2FsYyh2YXIoLS1jay16LWRlZmF1bHQpIC0gMyk7XG59XG5cbi5jay5jay1iYWxsb29uLXBhbmVsIHtcblx0ZGlzcGxheTogbm9uZTtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXG5cdHotaW5kZXg6IHZhcigtLWNrLXotcGFuZWwpO1xufVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX3dpdGgtYXJyb3c6OmJlZm9yZSxcblx0XHQuY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX3dpdGgtYXJyb3c6OmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0fVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX3dpdGgtYXJyb3c6OmJlZm9yZSB7XG5cdFx0XHR6LWluZGV4OiB2YXIoLS1jay1iYWxsb29uLXBhbmVsLWFycm93LXotaW5kZXgpO1xuXHRcdH1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF93aXRoLWFycm93OjphZnRlciB7XG5cdFx0XHR6LWluZGV4OiBjYWxjKHZhcigtLWNrLWJhbGxvb24tcGFuZWwtYXJyb3ctei1pbmRleCkgKyAxKTtcblx0XHR9XG5cbi5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X25cIl06OmJlZm9yZSB7XG5cdFx0XHR6LWluZGV4OiB2YXIoLS1jay1iYWxsb29uLXBhbmVsLWFycm93LXotaW5kZXgpO1xuXHRcdH1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWxbY2xhc3MqPVwiYXJyb3dfblwiXTo6YWZ0ZXIge1xuXHRcdFx0ei1pbmRleDogY2FsYyh2YXIoLS1jay1iYWxsb29uLXBhbmVsLWFycm93LXotaW5kZXgpICsgMSk7XG5cdFx0fVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd19zXCJdOjpiZWZvcmUge1xuXHRcdFx0ei1pbmRleDogdmFyKC0tY2stYmFsbG9vbi1wYW5lbC1hcnJvdy16LWluZGV4KTtcblx0XHR9XG5cbi5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X3NcIl06OmFmdGVyIHtcblx0XHRcdHotaW5kZXg6IGNhbGModmFyKC0tY2stYmFsbG9vbi1wYW5lbC1hcnJvdy16LWluZGV4KSArIDEpO1xuXHRcdH1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF92aXNpYmxlIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2sgLmNrLWJhbGxvb24tcm90YXRvcl9fbmF2aWdhdGlvbiB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4vKiBCdXR0b25zIGluc2lkZSBhIHRvb2xiYXIgc2hvdWxkIGJlIGNlbnRlcmVkIHdoZW4gcm90YXRvciBiYXIgaXMgd2lkZXIuXG4gKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdWkvaXNzdWVzLzQ5NVxuICovXG4uY2sgLmNrLWJhbGxvb24tcm90YXRvcl9fY29udGVudCAuY2stdG9vbGJhciB7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2sgLmNrLWZha2UtcGFuZWwge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cblx0LyogRmFrZSBwYW5lbHMgc2hvdWxkIGJlIHBsYWNlZCB1bmRlciBtYWluIGJhbGxvb24gY29udGVudC4gKi9cblx0ei1pbmRleDogY2FsYyh2YXIoLS1jay16LXBhbmVsKSAtIDEpO1xufVxuXG4uY2sgLmNrLWZha2UtcGFuZWwgZGl2IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xufVxuXG4uY2sgLmNrLWZha2UtcGFuZWwgZGl2Om50aC1jaGlsZCggMSApIHtcblx0ei1pbmRleDogMjtcbn1cblxuLmNrIC5jay1mYWtlLXBhbmVsIGRpdjpudGgtY2hpbGQoIDIgKSB7XG5cdHotaW5kZXg6IDE7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1zdGlja3ktcGFuZWwgLmNrLXN0aWNreS1wYW5lbF9fY29udGVudF9zdGlja3kge1xuXHRcdHotaW5kZXg6IHZhcigtLWNrLXotcGFuZWwpOyAvKiAjMzE1ICovXG5cdFx0cG9zaXRpb246IGZpeGVkO1xuXHRcdHRvcDogMDtcblx0fVxuXG4uY2suY2stc3RpY2t5LXBhbmVsIC5jay1zdGlja3ktcGFuZWxfX2NvbnRlbnRfc3RpY2t5X2JvdHRvbS1saW1pdCB7XG5cdFx0dG9wOiBhdXRvO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stYXV0b2NvbXBsZXRlIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY2suY2stYXV0b2NvbXBsZXRlID4gLmNrLXNlYXJjaF9fcmVzdWx0cyB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHotaW5kZXg6IHZhcigtLWNrLXotcGFuZWwpO1xuXHR9XG5cbi5jay5jay1hdXRvY29tcGxldGUgPiAuY2stc2VhcmNoX19yZXN1bHRzLmNrLXNlYXJjaF9fcmVzdWx0c19uIHtcblx0XHRcdGJvdHRvbTogMTAwJTtcblx0XHR9XG5cbi5jay5jay1hdXRvY29tcGxldGUgPiAuY2stc2VhcmNoX19yZXN1bHRzLmNrLXNlYXJjaF9fcmVzdWx0c19zIHtcblx0XHRcdHRvcDogMTAwJTtcblx0XHRcdGJvdHRvbTogYXV0bztcblx0XHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1zZWFyY2ggPiAuY2stbGFiZWxlZC1maWVsZC12aWV3ID4gLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay1pY29uIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogNTAlO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHRcdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stc2VhcmNoID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldyA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2staWNvbiB7XG5cdFx0XHRcdGxlZnQ6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1zZWFyY2ggPiAuY2stbGFiZWxlZC1maWVsZC12aWV3ID4gLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay1pY29uIHtcblx0XHRcdFx0cmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0fVxuXG4uY2suY2stc2VhcmNoID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2stc2VhcmNoX19yZXNldCB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDUwJTtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblx0XHR9XG5cbi5jay5jay1zZWFyY2ggPiAuY2stc2VhcmNoX19yZXN1bHRzID4gLmNrLXNlYXJjaF9faW5mbyA+IHNwYW46Zmlyc3QtY2hpbGQge1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdH1cblxuLyogSGlkZSB0aGUgZmlsdGVyZWQgdmlldyB3aGVuIG5vdGhpbmcgd2FzIGZvdW5kICovXG5cbi5jay5jay1zZWFyY2ggPiAuY2stc2VhcmNoX19yZXN1bHRzID4gLmNrLXNlYXJjaF9faW5mbzpub3QoLmNrLWhpZGRlbikgfiAqIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWhpZ2hsaWdodGVkLXRleHQgbWFyayB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWhpZ2hsaWdodC1iYWNrZ3JvdW5kKTtcblx0dmVydGljYWwtYWxpZ246IGluaXRpYWw7XG5cdGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuXHRsaW5lLWhlaWdodDogaW5oZXJpdDtcblx0Zm9udC1zaXplOiBpbmhlcml0O1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKipcbiAqIE1ha2VzIGVsZW1lbnQgdW5zZWxlY3RhYmxlLlxuICovXG5cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLXRvb2x0aXAge1xuXHQtbW96LXVzZXItc2VsZWN0OiBub25lO1xuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuXHQtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdHVzZXItc2VsZWN0OiBub25lO1xuXG5cdHotaW5kZXg6IGNhbGMoIHZhcigtLWNrLXotZGlhbG9nKSArIDEwMCApO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stdG9vbGJhci1zcGlubmVyLXNpemU6IDE4cHg7XG59XG5cbi5jay5jay1zcGlubmVyLWNvbnRhaW5lciB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jay5jay1zcGlubmVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDUwJTtcblx0bGVmdDogMDtcblx0cmlnaHQ6IDA7XG5cdG1hcmdpbjogMCBhdXRvO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cdHotaW5kZXg6IDE7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qKlxuICogTWFrZXMgZWxlbWVudCB1bnNlbGVjdGFibGUuXG4gKi9cblxuLmNrLmNrLXRvb2xiYXIge1xuXHQtbW96LXVzZXItc2VsZWN0OiBub25lO1xuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuXHQtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdHVzZXItc2VsZWN0OiBub25lO1xuXG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZmxvdzogcm93IG5vd3JhcDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmNrLmNrLXRvb2xiYXIgPiAuY2stdG9vbGJhcl9faXRlbXMge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1mbG93OiByb3cgd3JhcDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGZsZXgtZ3JvdzogMTtcblxuXHR9XG5cbi5jay5jay10b29sYmFyIC5jay5jay10b29sYmFyX19zZXBhcmF0b3Ige1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuXHRcdC8qXG5cdFx0ICogQSBsZWFkaW5nIG9yIHRyYWlsaW5nIHNlcGFyYXRvciBtYWtlcyBubyBzZW5zZSAoc2VwYXJhdGVzIGZyb20gbm90aGluZyBvbiBvbmUgc2lkZSkuXG5cdFx0ICogRm9yIGluc3RhbmNlLCBpdCBjYW4gaGFwcGVuIHdoZW4gdG9vbGJhciBpdGVtcyAoYWxzbyBzZXBhcmF0b3JzKSBhcmUgZ2V0dGluZyBncm91cGVkIG9uZSBieSBvbmUgYW5kXG5cdFx0ICogbW92ZWQgdG8gYW5vdGhlciB0b29sYmFyIGluIHRoZSBkcm9wZG93bi5cblx0XHQgKi9cblx0fVxuXG4uY2suY2stdG9vbGJhciAuY2suY2stdG9vbGJhcl9fc2VwYXJhdG9yOmZpcnN0LWNoaWxkLFxuXHRcdC5jay5jay10b29sYmFyIC5jay5jay10b29sYmFyX19zZXBhcmF0b3I6bGFzdC1jaGlsZCB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblxuLmNrLmNrLXRvb2xiYXIgLmNrLXRvb2xiYXJfX2xpbmUtYnJlYWsge1xuXHRcdGZsZXgtYmFzaXM6IDEwMCU7XG5cdH1cblxuLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl9ncm91cGluZyA+IC5jay10b29sYmFyX19pdGVtcyB7XG5cdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdH1cblxuLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl92ZXJ0aWNhbCA+IC5jay10b29sYmFyX19pdGVtcyB7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0fVxuXG4uY2suY2stdG9vbGJhci5jay10b29sYmFyX2Zsb2F0aW5nID4gLmNrLXRvb2xiYXJfX2l0ZW1zIHtcblx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0fVxuXG4uY2suY2stdG9vbGJhciA+IC5jay5jay10b29sYmFyX19ncm91cGVkLWRyb3Bkb3duID4gLmNrLWRyb3Bkb3duX19idXR0b24gLmNrLWRyb3Bkb3duX19hcnJvdyB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWJsb2NrLXRvb2xiYXItYnV0dG9uIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiB2YXIoLS1jay16LWRlZmF1bHQpO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2stbWVudS1iYXJfX21lbnVfX2J1dHRvbiA+IC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uX19hcnJvdyB7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0ei1pbmRleDogdmFyKC0tY2stei1kZWZhdWx0KTtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stbWVudS1iYXItbWVudS1tYXgtd2lkdGg6IDc1dnc7XG5cdC0tY2stbWVudS1iYXItbmVzdGVkLW1lbnUtaG9yaXpvbnRhbC1vZmZzZXQ6IDVweDtcbn1cblxuLmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbCB7XG5cdHotaW5kZXg6IHZhcigtLWNrLXotcGFuZWwpO1xuXHRtYXgtd2lkdGg6IHZhcigtLWNrLW1lbnUtYmFyLW1lbnUtbWF4LXdpZHRoKTtcblx0cG9zaXRpb246IGFic29sdXRlO1xufVxuXG4uY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9uZSxcblx0LmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fbncge1xuXHRcdGJvdHRvbTogMTAwJTtcblx0fVxuXG4uY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9zZSxcblx0LmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fc3cge1xuXHRcdHRvcDogMTAwJTtcblx0XHRib3R0b206IGF1dG87XG5cdH1cblxuLmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fbmUsXG5cdC5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX3NlIHtcblx0XHRsZWZ0OiAwcHg7XG5cdH1cblxuLmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fbncsXG5cdC5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX3N3IHtcblx0XHRyaWdodDogMHB4O1xuXHR9XG5cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX2VzLFxuXHQuY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9lbiB7XG5cdFx0bGVmdDogY2FsYyggMTAwJSAtIHZhcigtLWNrLW1lbnUtYmFyLW5lc3RlZC1tZW51LWhvcml6b250YWwtb2Zmc2V0KSApO1xuXHR9XG5cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX2VzIHtcblx0XHR0b3A6IDBweDtcblx0fVxuXG4uY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9lbiB7XG5cdFx0Ym90dG9tOiAwcHg7XG5cdH1cblxuLmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fd3MsXG5cdC5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX3duIHtcblx0XHRyaWdodDogY2FsYyggMTAwJSAtIHZhcigtLWNrLW1lbnUtYmFyLW5lc3RlZC1tZW51LWhvcml6b250YWwtb2Zmc2V0KSApO1xuXHR9XG5cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX3dzIHtcblx0XHR0b3A6IDBweDtcblx0fVxuXG4uY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl93biB7XG5cdFx0Ym90dG9tOiAwcHg7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLW1lbnUtYmFyX19tZW51IHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLXJlc2l6ZXI6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdC0tY2stY29sb3ItcmVzaXplci10b29sdGlwLWJhY2tncm91bmQ6IGhzbCgwLCAwJSwgMTUlKTtcblx0LS1jay1jb2xvci1yZXNpemVyLXRvb2x0aXAtdGV4dDogaHNsKDAsIDAlLCA5NSUpO1xuXG5cdC0tY2stcmVzaXplci1ib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0LS1jay1yZXNpemVyLXRvb2x0aXAtb2Zmc2V0OiAxMHB4O1xuXHQtLWNrLXJlc2l6ZXItdG9vbHRpcC1oZWlnaHQ6IGNhbGModmFyKC0tY2stc3BhY2luZy1zbWFsbCkgKiAyICsgMTBweCk7XG59XG5cbi5jayAuY2std2lkZ2V0IHtcblx0LyogVGhpcyBpcyBuZWNjZXNzYXJ5IGZvciB0eXBlIGFyb3VuZCBVSSB0byBiZSBwb3NpdGlvbmVkIHByb3Blcmx5LiAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUge1xuXHQvKiBNYWtlIHRoZSB3aWRnZXQgd3JhcHBlciBhIHJlbGF0aXZlIHBvc2l0aW9uaW5nIGNvbnRhaW5lciBmb3IgdGhlIGRyYWcgaGFuZGxlLiAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUgLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHR9XG5cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUgLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSAuY2staWNvbiB7XG5cdFx0XHQvKiBNYWtlIHN1cmUgdGhlIGljb24gaW4gbm90IGEgc3ViamVjdCB0byBmb250LXNpemUgb3IgbGluZS1oZWlnaHQgdG8gYXZvaWRcblx0XHRcdHVubmVjZXNzYXJ5IHNwYWNpbmcgYXJvdW5kIGl0LiAqL1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0fVxuXG4vKiBTaG93IHRoZSBzZWxlY3Rpb24gaGFuZGxlIG9uIG1vdXNlIGhvdmVyIG92ZXIgdGhlIHdpZGdldCwgYnV0IG5vdCBmb3IgbmVzdGVkIHdpZGdldHMuICovXG5cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGU6aG92ZXIgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0XHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXHR9XG5cbi8qIFNob3cgdGhlIHNlbGVjdGlvbiBoYW5kbGUgd2hlbiB0aGUgd2lkZ2V0IGlzIHNlbGVjdGVkLCBidXQgbm90IGZvciBuZXN0ZWQgd2lkZ2V0cy4gKi9cblxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZS5jay13aWRnZXRfc2VsZWN0ZWQgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0XHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXHR9XG5cbi5jayAuY2stc2l6ZS12aWV3IHtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItcmVzaXplci10b29sdGlwLWJhY2tncm91bmQpO1xuXHRjb2xvcjogdmFyKC0tY2stY29sb3ItcmVzaXplci10b29sdGlwLXRleHQpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1yZXNpemVyLXRvb2x0aXAtdGV4dCk7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLXJlc2l6ZXItYm9yZGVyLXJhZGl1cyk7XG5cdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLXRpbnkpO1xuXHRkaXNwbGF5OiBibG9jaztcblx0cGFkZGluZzogMCB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0aGVpZ2h0OiB2YXIoLS1jay1yZXNpemVyLXRvb2x0aXAtaGVpZ2h0KTtcblx0bGluZS1oZWlnaHQ6IHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1oZWlnaHQpO1xufVxuXG4uY2sgLmNrLXNpemUtdmlldy5jay1vcmllbnRhdGlvbi10b3AtbGVmdCxcblx0LmNrIC5jay1zaXplLXZpZXcuY2stb3JpZW50YXRpb24tdG9wLXJpZ2h0LFxuXHQuY2sgLmNrLXNpemUtdmlldy5jay1vcmllbnRhdGlvbi1ib3R0b20tcmlnaHQsXG5cdC5jayAuY2stc2l6ZS12aWV3LmNrLW9yaWVudGF0aW9uLWJvdHRvbS1sZWZ0LFxuXHQuY2sgLmNrLXNpemUtdmlldy5jay1vcmllbnRhdGlvbi1hYm92ZS1jZW50ZXIge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0fVxuXG4uY2sgLmNrLXNpemUtdmlldy5jay1vcmllbnRhdGlvbi10b3AtbGVmdCB7XG5cdFx0dG9wOiB2YXIoLS1jay1yZXNpemVyLXRvb2x0aXAtb2Zmc2V0KTtcblx0XHRsZWZ0OiB2YXIoLS1jay1yZXNpemVyLXRvb2x0aXAtb2Zmc2V0KTtcblx0fVxuXG4uY2sgLmNrLXNpemUtdmlldy5jay1vcmllbnRhdGlvbi10b3AtcmlnaHQge1xuXHRcdHRvcDogdmFyKC0tY2stcmVzaXplci10b29sdGlwLW9mZnNldCk7XG5cdFx0cmlnaHQ6IHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQpO1xuXHR9XG5cbi5jayAuY2stc2l6ZS12aWV3LmNrLW9yaWVudGF0aW9uLWJvdHRvbS1yaWdodCB7XG5cdFx0Ym90dG9tOiB2YXIoLS1jay1yZXNpemVyLXRvb2x0aXAtb2Zmc2V0KTtcblx0XHRyaWdodDogdmFyKC0tY2stcmVzaXplci10b29sdGlwLW9mZnNldCk7XG5cdH1cblxuLmNrIC5jay1zaXplLXZpZXcuY2stb3JpZW50YXRpb24tYm90dG9tLWxlZnQge1xuXHRcdGJvdHRvbTogdmFyKC0tY2stcmVzaXplci10b29sdGlwLW9mZnNldCk7XG5cdFx0bGVmdDogdmFyKC0tY2stcmVzaXplci10b29sdGlwLW9mZnNldCk7XG5cdH1cblxuLyogQ2xhc3MgYXBwbGllZCBpZiB0aGUgd2lkZ2V0IGlzIHRvbyBzbWFsbCB0byBjb250YWluIHRoZSBzaXplIGxhYmVsICovXG5cbi5jayAuY2stc2l6ZS12aWV3LmNrLW9yaWVudGF0aW9uLWFib3ZlLWNlbnRlciB7XG5cdFx0dG9wOiBjYWxjKHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1oZWlnaHQpICogLTEpO1xuXHRcdGxlZnQ6IDUwJTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2sgLmNrLXdpZGdldF93aXRoLXJlc2l6ZXIge1xuXHQvKiBNYWtlIHRoZSB3aWRnZXQgd3JhcHBlciBhIHJlbGF0aXZlIHBvc2l0aW9uaW5nIGNvbnRhaW5lciBmb3IgdGhlIGRyYWcgaGFuZGxlLiAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jayAuY2std2lkZ2V0X19yZXNpemVyIHtcblx0ZGlzcGxheTogbm9uZTtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXG5cdC8qIFRoZSB3cmFwcGVyIGl0c2VsZiBzaG91bGQgbm90IGludGVyZmVyZSB3aXRoIHRoZSBwb2ludGVyIGRldmljZSwgb25seSB0aGUgaGFuZGxlcyBzaG91bGQuICovXG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG5cdGxlZnQ6IDA7XG5cdHRvcDogMDtcbn1cblxuLmNrLWZvY3VzZWQgLmNrLXdpZGdldF93aXRoLXJlc2l6ZXIuY2std2lkZ2V0X3NlbGVjdGVkID4gLmNrLXdpZGdldF9fcmVzaXplciB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblxuLmNrIC5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuXHQvKiBSZXNpemVycyBhcmUgdGhlIG9ubHkgVUkgZWxlbWVudHMgdGhhdCBzaG91bGQgaW50ZXJmZXJlIHdpdGggYSBwb2ludGVyIGRldmljZS4gKi9cblx0cG9pbnRlci1ldmVudHM6IGFsbDtcbn1cblxuLmNrIC5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS10b3AtbGVmdCxcblx0LmNrIC5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS1ib3R0b20tcmlnaHQge1xuXHRcdGN1cnNvcjogbndzZS1yZXNpemU7XG5cdH1cblxuLmNrIC5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS10b3AtcmlnaHQsXG5cdC5jayAuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUtYm90dG9tLWxlZnQge1xuXHRcdGN1cnNvcjogbmVzdy1yZXNpemU7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcblx0ICogU3R5bGVzIG9mIHRoZSB0eXBlIGFyb3VuZCBidXR0b25zXG5cdCAqL1xuXG4uY2sgLmNrLXdpZGdldCAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHR6LWluZGV4OiB2YXIoLS1jay16LWRlZmF1bHQpO1xuXHR9XG5cbi5jayAuY2std2lkZ2V0IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24gc3ZnIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogNTAlO1xuXHRcdFx0bGVmdDogNTAlO1xuXHRcdFx0ei1pbmRleDogY2FsYyh2YXIoLS1jay16LWRlZmF1bHQpICsgMik7XG5cdFx0fVxuXG4uY2sgLmNrLXdpZGdldCAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbl9iZWZvcmUge1xuXHRcdFx0LyogUGxhY2UgaXQgaW4gdGhlIG1pZGRsZSBvZiB0aGUgb3V0bGluZSAqL1xuXHRcdFx0dG9wOiBjYWxjKC0wLjUgKiB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpKTtcblx0XHRcdGxlZnQ6IG1pbigxMCUsIDMwcHgpO1xuXG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cdFx0fVxuXG4uY2sgLmNrLXdpZGdldCAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbl9hZnRlciB7XG5cdFx0XHQvKiBQbGFjZSBpdCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBvdXRsaW5lICovXG5cdFx0XHRib3R0b206IGNhbGMoLTAuNSAqIHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykpO1xuXHRcdFx0cmlnaHQ6IG1pbigxMCUsIDMwcHgpO1xuXG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTAlKTtcblx0XHR9XG5cbi8qXG5cdCAqIFN0eWxlcyBmb3IgdGhlIGJ1dHRvbnMgd2hlbjpcblx0ICogLSB0aGUgd2lkZ2V0IGlzIHNlbGVjdGVkLFxuXHQgKiAtIG9yIHRoZSBidXR0b24gaXMgYmVpbmcgaG92ZXJlZCAocmVnYXJkbGVzcyBvZiB0aGUgd2lkZ2V0IHN0YXRlKS5cblx0ICovXG5cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF9zZWxlY3RlZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbjo6YWZ0ZXIsIC5jayAuY2std2lkZ2V0ID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uOmhvdmVyOjphZnRlciB7XG5cdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDFweDtcblx0XHRcdGxlZnQ6IDFweDtcblx0XHRcdHotaW5kZXg6IGNhbGModmFyKC0tY2stei1kZWZhdWx0KSArIDEpO1xuXHRcdH1cblxuLypcblx0ICogU3R5bGVzIGZvciB0aGUgaG9yaXpvbnRhbCBcImZha2UgY2FyZXRcIiB3aGljaCBpcyBkaXNwbGF5ZWQgd2hlbiB0aGUgdXNlciBuYXZpZ2F0ZXMgdXNpbmcgdGhlIGtleWJvYXJkLlxuXHQgKi9cblxuLmNrIC5jay13aWRnZXQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19mYWtlLWNhcmV0IHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRsZWZ0OiAwO1xuXHRcdHJpZ2h0OiAwO1xuXHR9XG5cbi8qXG5cdCAqIFdoZW4gdGhlIHdpZGdldCBpcyBob3ZlcmVkIHRoZSBcImZha2UgY2FyZXRcIiB3b3VsZCBub3JtYWxseSBiZSBuYXJyb3dlciB0aGFuIHRoZVxuXHQgKiBleHRyYSBvdXRsaW5lIGRpc3BsYXllZCBhcm91bmQgdGhlIHdpZGdldC4gTGV0J3MgZXh0ZW5kIHRoZSBcImZha2UgY2FyZXRcIiB0byBtYXRjaFxuXHQgKiB0aGUgZnVsbCB3aWR0aCBvZiB0aGUgd2lkZ2V0LlxuXHQgKi9cblxuLmNrIC5jay13aWRnZXQ6aG92ZXIgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19mYWtlLWNhcmV0IHtcblx0XHRsZWZ0OiBjYWxjKCAtMSAqIHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykgKTtcblx0XHRyaWdodDogY2FsYyggLTEgKiB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpICk7XG5cdH1cblxuLypcblx0ICogU3R5bGVzIGZvciB0aGUgaG9yaXpvbnRhbCBcImZha2UgY2FyZXRcIiB3aGVuIGl0IHNob3VsZCBiZSBkaXNwbGF5ZWQgYmVmb3JlIHRoZSB3aWRnZXQgKGJhY2t3YXJkIGtleWJvYXJkIG5hdmlnYXRpb24pLlxuXHQgKi9cblxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9iZWZvcmUgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19mYWtlLWNhcmV0IHtcblx0XHR0b3A6IGNhbGMoIC0xICogdmFyKC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzKSAtIDFweCApO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cbi8qXG5cdCAqIFN0eWxlcyBmb3IgdGhlIGhvcml6b250YWwgXCJmYWtlIGNhcmV0XCIgd2hlbiBpdCBzaG91bGQgYmUgZGlzcGxheWVkIGFmdGVyIHRoZSB3aWRnZXQgKGZvcndhcmQga2V5Ym9hcmQgbmF2aWdhdGlvbikuXG5cdCAqL1xuXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfdHlwZS1hcm91bmRfc2hvdy1mYWtlLWNhcmV0X2FmdGVyID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fZmFrZS1jYXJldCB7XG5cdFx0Ym90dG9tOiBjYWxjKCAtMSAqIHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykgLSAxcHggKTtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG4vKlxuICogSW50ZWdyYXRpb24gd2l0aCB0aGUgcmVhZC1vbmx5IG1vZGUgb2YgdGhlIGVkaXRvci5cbiAqL1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stcmVhZC1vbmx5IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLypcbiAqIEludGVncmF0aW9uIHdpdGggdGhlIHJlc3RyaWN0ZWQgZWRpdGluZyBtb2RlIChmZWF0dXJlKSBvZiB0aGUgZWRpdG9yLlxuICovXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1yZXN0cmljdGVkLWVkaXRpbmdfbW9kZV9yZXN0cmljdGVkIC5jay13aWRnZXRfX3R5cGUtYXJvdW5kIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLypcbiAqIEludGVncmF0aW9uIHdpdGggdGhlICNpc0VuYWJsZWQgcHJvcGVydHkgb2YgdGhlIFdpZGdldFR5cGVBcm91bmQgcGx1Z2luLlxuICovXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay13aWRnZXRfX3R5cGUtYXJvdW5kX2Rpc2FibGVkIC5jay13aWRnZXRfX3R5cGUtYXJvdW5kIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLyojIHNvdXJjZU1hcHBpbmdVUkw9Y2tlZGl0b3I1LmNzcy5tYXAgKi8iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKiBSZXNldCAqL1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2dsb2JhbHMvZ2xvYmFscy5jc3NcIjtcblxuLyogQ29tcG9uZW50cyAqL1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9idXR0b24vc3dpdGNoYnV0dG9uLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvYnV0dG9uL2xpc3RpdGVtYnV0dG9uLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvY29sbGFwc2libGUvY29sbGFwc2libGUuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9jb2xvcmdyaWQvY29sb3JncmlkLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvY29sb3JzZWxlY3Rvci9jb2xvcnNlbGVjdG9yLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZGlhbG9nL2RpYWxvZy5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2RpYWxvZy9kaWFsb2dhY3Rpb25zLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9kcm9wZG93bi9saXN0ZHJvcGRvd24uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9kcm9wZG93bi9zcGxpdGJ1dHRvbi5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2Ryb3Bkb3duL3Rvb2xiYXJkcm9wZG93bi5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2Ryb3Bkb3duL21lbnUvZHJvcGRvd25tZW51YnV0dG9uLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZHJvcGRvd24vbWVudS9kcm9wZG93bm1lbnVsaXN0aXRlbS5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2Ryb3Bkb3duL21lbnUvZHJvcGRvd25tZW51bGlzdGl0ZW1idXR0b24uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9kcm9wZG93bi9tZW51L2Ryb3Bkb3dubWVudXBhbmVsLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZWRpdG9ydWkvYWNjZXNzaWJpbGl0eWhlbHAuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9lZGl0b3J1aS9lZGl0b3J1aS5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2Zvcm1oZWFkZXIvZm9ybWhlYWRlci5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2ljb24vaWNvbi5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2lucHV0L2lucHV0LmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvbGFiZWwvbGFiZWwuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9sYWJlbGVkZmllbGQvbGFiZWxlZGZpZWxkdmlldy5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2xhYmVsZWRpbnB1dC9sYWJlbGVkaW5wdXQuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9saXN0L2xpc3QuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9tZW51YmFyL21lbnViYXIuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9tZW51YmFyL21lbnViYXJtZW51LmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvbWVudWJhci9tZW51YmFybWVudWJ1dHRvbi5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL21lbnViYXIvbWVudWJhcm1lbnVsaXN0aXRlbS5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL21lbnViYXIvbWVudWJhcm1lbnVsaXN0aXRlbWJ1dHRvbi5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL21lbnViYXIvbWVudWJhcm1lbnVwYW5lbC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL3BhbmVsL2JhbGxvb25wYW5lbC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL3BhbmVsL2JhbGxvb25yb3RhdG9yLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvcGFuZWwvZmFrZXBhbmVsLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvcGFuZWwvc3RpY2t5cGFuZWwuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9mb3JtL2Zvcm0uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9yZXNwb25zaXZlLWZvcm0vcmVzcG9uc2l2ZWZvcm0uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9zZWFyY2gvc2VhcmNoLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvc3Bpbm5lci9zcGlubmVyLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvdGV4dGFyZWEvdGV4dGFyZWEuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy90b29sYmFyL2Jsb2NrdG9vbGJhci5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL3Rvb2xiYXIvdG9vbGJhci5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL3Rvb2x0aXAvdG9vbHRpcC5jc3NcIjtcblxuLyogRWRpdG9yICovXG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtZWRpdG9yLWNsYXNzaWMvY2xhc3NpY2VkaXRvci5jc3NcIjtcblxuLyogUGx1Z2lucyAqL1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LWJvb2ttYXJrL2Jvb2ttYXJrLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LWJvb2ttYXJrL2Jvb2ttYXJrZm9ybS5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1ib29rbWFyay9ib29rbWFya3Rvb2xiYXIuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtY2xpcGJvYXJkL2NsaXBib2FyZC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1jb2RlLWJsb2NrL2NvZGVibG9jay5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1lbmdpbmUvcGxhY2Vob2xkZXIuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtZmluZC1hbmQtcmVwbGFjZS9maW5kYW5kcmVwbGFjZWZvcm0uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtaGVhZGluZy9oZWFkaW5nLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LWhvcml6b250YWwtbGluZS9ob3Jpem9udGFsbGluZS5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1odG1sLWVtYmVkL2h0bWxlbWJlZC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1pbWFnZS9pbWFnZWluc2VydC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1pbWFnZS9pbWFnZXVwbG9hZC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1pbWFnZS9pbWFnZXVwbG9hZGljb24uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtaW1hZ2UvaW1hZ2V1cGxvYWRsb2FkZXIuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtaW1hZ2UvaW1hZ2V1cGxvYWRwcm9ncmVzcy5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1pbWFnZS90ZXh0YWx0ZXJuYXRpdmVmb3JtLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LWltYWdlL2ltYWdlY3VzdG9tcmVzaXplZm9ybS5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1saW5rL2xpbmsuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtbGluay9saW5rdG9vbGJhci5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1saW5rL2xpbmtmb3JtLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LWxpbmsvbGlua2ltYWdlLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LWxpbmsvbGlua3Byb3BlcnRpZXMuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtbGluay9saW5rcHJvdmlkZXJpdGVtcy5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1saXN0L2xpc3Rwcm9wZXJ0aWVzLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LWxpc3QvbGlzdHN0eWxlcy5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1tZWRpYS1lbWJlZC9tZWRpYWVtYmVkZWRpdGluZy5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1tZW50aW9uL21lbnRpb24uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtcmVzdHJpY3RlZC1lZGl0aW5nL3Jlc3RyaWN0ZWRlZGl0aW5nLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXNwZWNpYWwtY2hhcmFjdGVycy9jaGFyYWN0ZXJncmlkLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXNwZWNpYWwtY2hhcmFjdGVycy9jaGFyYWN0ZXJpbmZvLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXNwZWNpYWwtY2hhcmFjdGVycy9zcGVjaWFsY2hhcmFjdGVycy5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1zdHlsZS9zdHlsZS5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1zdHlsZS9zdHlsZWdyaWQuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtc3R5bGUvc3R5bGVncm91cC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1zdHlsZS9zdHlsZXBhbmVsLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXRhYmxlL2NvbG9yaW5wdXQuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdGFibGUvZm9ybXJvdy5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS10YWJsZS9pbnNlcnR0YWJsZS5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS10YWJsZS90YWJsZWNlbGxwcm9wZXJ0aWVzLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXRhYmxlL3RhYmxlZWRpdGluZy5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS10YWJsZS90YWJsZWZvcm0uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdGFibGUvdGFibGVwcm9wZXJ0aWVzLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXRhYmxlL3RhYmxlc2VsZWN0aW9uLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXRhYmxlL3RhYmxlbGF5b3V0LmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXdpZGdldC93aWRnZXQuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtd2lkZ2V0L3dpZGdldHJlc2l6ZS5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS13aWRnZXQvd2lkZ2V0dHlwZWFyb3VuZC5jc3NcIjtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuL19jb2xvcnMuY3NzXCI7XG5AaW1wb3J0IFwiLi9fZGlzYWJsZWQuY3NzXCI7XG5AaW1wb3J0IFwiLi9fZm9jdXMuY3NzXCI7XG5AaW1wb3J0IFwiLi9fZm9udHMuY3NzXCI7XG5AaW1wb3J0IFwiLi9fcmVzZXQuY3NzXCI7XG5AaW1wb3J0IFwiLi9fcm91bmRlZC5jc3NcIjtcbkBpbXBvcnQgXCIuL19zaGFkb3cuY3NzXCI7XG5AaW1wb3J0IFwiLi9fc3BhY2luZy5jc3NcIjtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1jb2xvci1iYXNlLWZvcmVncm91bmQ6IFx0XHRcdFx0XHRcdFx0XHRoc2woMCwgMCUsIDk4JSk7XG5cdC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRcdFx0aHNsKDAsIDAlLCAxMDAlKTtcblx0LS1jay1jb2xvci1iYXNlLWJvcmRlcjogXHRcdFx0XHRcdFx0XHRcdFx0aHNsKDIyMCwgNiUsIDgxJSk7XG5cdC0tY2stY29sb3ItYmFzZS1hY3Rpb246IFx0XHRcdFx0XHRcdFx0XHRcdGhzbCgxMDQsIDUwLjIlLCA0Mi41JSk7XG5cdC0tY2stY29sb3ItYmFzZS1mb2N1czogXHRcdFx0XHRcdFx0XHRcdFx0XHRoc2woMjA5LCA5MiUsIDcwJSk7XG5cdC0tY2stY29sb3ItYmFzZS10ZXh0OiBcdFx0XHRcdFx0XHRcdFx0XHRcdGhzbCgwLCAwJSwgMjAlKTtcblx0LS1jay1jb2xvci1iYXNlLWFjdGl2ZTogXHRcdFx0XHRcdFx0XHRcdFx0aHNsKDIxOC4xLCAxMDAlLCA1OCUpO1xuXHQtLWNrLWNvbG9yLWJhc2UtYWN0aXZlLWZvY3VzOlx0XHRcdFx0XHRcdFx0XHRoc2woMjE4LjIsIDEwMCUsIDUyLjUlKTtcblx0LS1jay1jb2xvci1iYXNlLWVycm9yOlx0XHRcdFx0XHRcdFx0XHRcdFx0aHNsKDE1LCAxMDAlLCA0MyUpO1xuXG5cdC8qIC0tIEdlbmVyaWMgY29sb3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItZm9jdXMtYm9yZGVyLWNvb3JkaW5hdGVzOiBcdFx0XHRcdFx0XHQyMTgsIDgxLjglLCA1Ni45JTtcblx0LS1jay1jb2xvci1mb2N1cy1ib3JkZXI6IFx0XHRcdFx0XHRcdFx0XHRcdGhzbCh2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXItY29vcmRpbmF0ZXMpKTtcblx0LS1jay1jb2xvci1mb2N1cy1vdXRlci1zaGFkb3c6XHRcdFx0XHRcdFx0XHRcdGhzbCgyMTIuNCwgODkuMyUsIDg5JSk7XG5cdC0tY2stY29sb3ItZm9jdXMtZGlzYWJsZWQtc2hhZG93Olx0XHRcdFx0XHRcdFx0aHNsYSgyMDksIDkwJSwgNzIlLC4zKTtcblx0LS1jay1jb2xvci1mb2N1cy1lcnJvci1zaGFkb3c6XHRcdFx0XHRcdFx0XHRcdGhzbGEoOSwxMDAlLDU2JSwuMyk7XG5cdC0tY2stY29sb3ItdGV4dDogXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtdGV4dCk7XG5cdC0tY2stY29sb3Itc2hhZG93LWRyb3A6IFx0XHRcdFx0XHRcdFx0XHRcdGhzbGEoMCwgMCUsIDAlLCAwLjE1KTtcblx0LS1jay1jb2xvci1zaGFkb3ctZHJvcC1hY3RpdmU6XHRcdFx0XHRcdFx0XHRcdGhzbGEoMCwgMCUsIDAlLCAwLjIpO1xuXHQtLWNrLWNvbG9yLXNoYWRvdy1pbm5lcjogXHRcdFx0XHRcdFx0XHRcdFx0aHNsYSgwLCAwJSwgMCUsIDAuMSk7XG5cblx0LyogLS0gQnV0dG9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHR0cmFuc3BhcmVudDtcblx0LS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1ob3Zlci1iYWNrZ3JvdW5kOiBcdFx0XHRcdGhzbCgwLCAwJSwgOTQuMSUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWFjdGl2ZS1iYWNrZ3JvdW5kOiBcdFx0XHRcdGhzbCgwLCAwJSwgOTQuMSUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWRpc2FibGVkLWJhY2tncm91bmQ6IFx0XHRcdFx0dHJhbnNwYXJlbnQ7XG5cblx0LS1jay1jb2xvci1idXR0b24tb24tYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0XHRoc2woMjEyLCAxMDAlLCA5Ny4xJSk7XG5cdC0tY2stY29sb3ItYnV0dG9uLW9uLWhvdmVyLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdGhzbCgyMTEuNywgMTAwJSwgOTIuOSUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1vbi1hY3RpdmUtYmFja2dyb3VuZDogXHRcdFx0XHRcdGhzbCgyMTEuNywgMTAwJSwgOTIuOSUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1vbi1kaXNhYmxlZC1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0aHNsKDIxMSwgMTUlLCA5NSUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1vbi1jb2xvcjpcdFx0XHRcdFx0XHRcdFx0XHRoc2woMjE4LjEsIDEwMCUsIDU4JSk7XG5cblxuXHQtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24tYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1hY3Rpb24pO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24taG92ZXItYmFja2dyb3VuZDogXHRcdFx0XHRcdGhzbCgxMDQsIDUzLjIlLCA0MC4yJSk7XG5cdC0tY2stY29sb3ItYnV0dG9uLWFjdGlvbi1hY3RpdmUtYmFja2dyb3VuZDogXHRcdFx0XHRoc2woMTA0LCA1My4yJSwgNDAuMiUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24tZGlzYWJsZWQtYmFja2dyb3VuZDogXHRcdFx0XHRoc2woMTA0LCA0NCUsIDU4JSk7XG5cdC0tY2stY29sb3ItYnV0dG9uLWFjdGlvbi10ZXh0OiBcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblxuXHQtLWNrLWNvbG9yLWJ1dHRvbi1zYXZlOiBcdFx0XHRcdFx0XHRcdFx0XHRoc2woMTIwLCAxMDAlLCAyNyUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1jYW5jZWw6IFx0XHRcdFx0XHRcdFx0XHRcdGhzbCgxNSwgMTAwJSwgNDMlKTtcblxuXHQtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24tb2ZmLWJhY2tncm91bmQ6XHRcdFx0XHRcdGhzbCgwLCAwJSwgNTcuNiUpO1xuXHQtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24tb2ZmLWhvdmVyLWJhY2tncm91bmQ6XHRcdFx0XHRoc2woMCwgMCUsIDQ5JSk7XG5cdC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1vbi1iYWNrZ3JvdW5kOlx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24tYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1vbi1ob3Zlci1iYWNrZ3JvdW5kOlx0XHRcdFx0aHNsKDEwNCwgNTMuMiUsIDQwLjIlKTtcblx0LS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLWlubmVyLWJhY2tncm91bmQ6XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1pbm5lci1zaGFkb3c6XHRcdFx0XHRcdFx0aHNsYSgwLCAwJSwgMCUsIDAuMSk7XG5cblx0LyogLS0gRHJvcGRvd24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1kcm9wZG93bi1wYW5lbC1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLWRyb3Bkb3duLXBhbmVsLWJvcmRlcjogXHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cblx0LyogLS0gRGlhbG9nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1kaWFsb2ctYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWN1c3RvbS1iYWNrZ3JvdW5kKTtcblx0LS1jay1jb2xvci1kaWFsb2ctZm9ybS1oZWFkZXItYm9yZGVyOiBcdFx0XHRcdFx0XHR2YXIoLS1jay1jdXN0b20tYm9yZGVyKTtcblxuXHQvKiAtLSBJbnB1dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLWlucHV0LWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLWlucHV0LWJvcmRlcjogXHRcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHQtLWNrLWNvbG9yLWlucHV0LWVycm9yLWJvcmRlcjpcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1lcnJvcik7XG5cdC0tY2stY29sb3ItaW5wdXQtdGV4dDogXHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLXRleHQpO1xuXHQtLWNrLWNvbG9yLWlucHV0LWRpc2FibGVkLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdGhzbCgwLCAwJSwgOTUlKTtcblx0LS1jay1jb2xvci1pbnB1dC1kaXNhYmxlZC1ib3JkZXI6IFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHQtLWNrLWNvbG9yLWlucHV0LWRpc2FibGVkLXRleHQ6IFx0XHRcdFx0XHRcdFx0aHNsKDAsIDAlLCA0NiUpO1xuXG5cdC8qIC0tIExpc3QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItbGlzdC1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0LS1jay1jb2xvci1saXN0LWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtaG92ZXItYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3ItbGlzdC1idXR0b24tb24tYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYnV0dG9uLW9uLWNvbG9yKTtcblx0LS1jay1jb2xvci1saXN0LWJ1dHRvbi1vbi1iYWNrZ3JvdW5kLWZvY3VzOiBcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1vbi1jb2xvcik7XG5cdC0tY2stY29sb3ItbGlzdC1idXR0b24tb24tdGV4dDpcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblxuXHQvKiAtLSBQYW5lbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLXBhbmVsLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLXBhbmVsLWJvcmRlcjogXHRcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXG5cdC8qIC0tIFRvb2xiYXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItdG9vbGJhci1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0LS1jay1jb2xvci10b29sYmFyLWJvcmRlcjogXHRcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXG5cdC8qIC0tIFRvb2x0aXAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItdG9vbHRpcC1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS10ZXh0KTtcblx0LS1jay1jb2xvci10b29sdGlwLXRleHQ6IFx0XHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cblx0LyogLS0gRW5naW5lIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1lbmdpbmUtcGxhY2Vob2xkZXItdGV4dDogXHRcdFx0XHRcdFx0aHNsKDAsIDAlLCA0NCUpO1xuXG5cdC8qIC0tIFVwbG9hZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItdXBsb2FkLWJhci1iYWNrZ3JvdW5kOlx0XHQgXHRcdFx0XHRcdGhzbCgyMDksIDkyJSwgNzAlKTtcblxuXHQvKiAtLSBMaW5rIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1saW5rLWRlZmF1bHQ6XHRcdFx0XHRcdFx0XHRcdFx0aHNsKDI0MCwgMTAwJSwgNDclKTtcblx0LS1jay1jb2xvci1saW5rLXNlbGVjdGVkLWJhY2tncm91bmQ6XHRcdFx0XHRcdFx0aHNsYSgyMDEsIDEwMCUsIDU2JSwgMC4xKTtcblx0LS1jay1jb2xvci1saW5rLWZha2Utc2VsZWN0aW9uOlx0XHRcdFx0XHRcdFx0XHRoc2xhKDIwMSwgMTAwJSwgNTYlLCAwLjMpO1xuXG5cdC8qIC0tIFNlYXJjaCByZXN1bHQgaGlnaGxpZ2h0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLWhpZ2hsaWdodC1iYWNrZ3JvdW5kOlx0XHRcdFx0XHRcdFx0aHNsKDYwLCAxMDAlLCA1MCUpO1xuXG5cdC8qIC0tIEdlbmVyaWMgY29sb3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLWxpZ2h0LXJlZDpcdFx0XHRcdFx0XHRcdFx0XHRcdGhzbCgwLCAxMDAlLCA5MCUpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQvKipcblx0ICogQW4gb3BhY2l0eSB2YWx1ZSBvZiBkaXNhYmxlZCBVSSBpdGVtLlxuXHQgKi9cblx0LS1jay1kaXNhYmxlZC1vcGFjaXR5OiAuNTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LyoqXG5cdCAqIFRoZSBnZW9tZXRyeSBvZiB0aGUgb2YgZm9jdXNlZCBlbGVtZW50J3Mgb3V0ZXIgc2hhZG93LlxuXHQgKi9cblx0LS1jay1mb2N1cy1vdXRlci1zaGFkb3ctZ2VvbWV0cnk6IDAgMCAwIDNweDtcblxuXHQvKipcblx0ICogQSB2aXN1YWwgc3R5bGUgb2YgZm9jdXNlZCBlbGVtZW50J3Mgb3V0ZXIgc2hhZG93LlxuXHQgKi9cblx0LS1jay1mb2N1cy1vdXRlci1zaGFkb3c6IHZhcigtLWNrLWZvY3VzLW91dGVyLXNoYWRvdy1nZW9tZXRyeSkgdmFyKC0tY2stY29sb3ItZm9jdXMtb3V0ZXItc2hhZG93KTtcblxuXHQvKipcblx0ICogQSB2aXN1YWwgc3R5bGUgb2YgZm9jdXNlZCBlbGVtZW50J3Mgb3V0ZXIgc2hhZG93ICh3aGVuIGRpc2FibGVkKS5cblx0ICovXG5cdC0tY2stZm9jdXMtZGlzYWJsZWQtb3V0ZXItc2hhZG93OiB2YXIoLS1jay1mb2N1cy1vdXRlci1zaGFkb3ctZ2VvbWV0cnkpIHZhcigtLWNrLWNvbG9yLWZvY3VzLWRpc2FibGVkLXNoYWRvdyk7XG5cblx0LyoqXG5cdCAqIEEgdmlzdWFsIHN0eWxlIG9mIGZvY3VzZWQgZWxlbWVudCdzIG91dGVyIHNoYWRvdyAod2hlbiBoYXMgZXJyb3JzKS5cblx0ICovXG5cdC0tY2stZm9jdXMtZXJyb3Itb3V0ZXItc2hhZG93OiB2YXIoLS1jay1mb2N1cy1vdXRlci1zaGFkb3ctZ2VvbWV0cnkpIHZhcigtLWNrLWNvbG9yLWZvY3VzLWVycm9yLXNoYWRvdyk7XG5cblx0LyoqXG5cdCAqIEEgdmlzdWFsIHN0eWxlIG9mIGZvY3VzZWQgZWxlbWVudCdzIGJvcmRlciBvciBvdXRsaW5lLlxuXHQgKi9cblx0LS1jay1mb2N1cy1yaW5nOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1mb250LXNpemUtYmFzZTogMTNweDtcblx0LS1jay1saW5lLWhlaWdodC1iYXNlOiAxLjg0NjE1O1xuXHQtLWNrLWZvbnQtZmFjZTogSGVsdmV0aWNhLCBBcmlhbCwgVGFob21hLCBWZXJkYW5hLCBTYW5zLVNlcmlmO1xuXG5cdC0tY2stZm9udC1zaXplLXRpbnk6IDAuN2VtO1xuXHQtLWNrLWZvbnQtc2l6ZS1zbWFsbDogMC43NWVtO1xuXHQtLWNrLWZvbnQtc2l6ZS1ub3JtYWw6IDFlbTtcblx0LS1jay1mb250LXNpemUtYmlnOiAxLjRlbTtcblx0LS1jay1mb250LXNpemUtbGFyZ2U6IDEuOGVtO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQvKiBUaGlzIGlzIHN1cGVyLWltcG9ydGFudC4gVGhpcyBpcyAqKm1hbnVhbGx5KiogYWRqdXN0ZWQgc28gYSBidXR0b24gd2l0aG91dCBhbiBpY29uXG5cdGlzIG5ldmVyIHNtYWxsZXIgdGhhbiBhIGJ1dHRvbiB3aXRoIGljb24sIGFkZGl0aW9uYWxseSBtYWtpbmcgc3VyZSB0aGF0IHRleHQtbGVzcyBidXR0b25zXG5cdGFyZSBwZXJmZWN0IHNxdWFyZXMuIFRoZSB2YWx1ZSBpcyBhbHNvIHNoYXJlZCBieSBvdGhlciBjb21wb25lbnRzIHdoaWNoIHNob3VsZCBzdGF5IFwiaW4tbGluZVwiXG5cdHdpdGggYnV0dG9ucy4gKi9cblx0LS1jay11aS1jb21wb25lbnQtbWluLWhlaWdodDogMi4zZW07XG59XG5cbi8qKlxuICogUmVzZXRzIGFuIGVsZW1lbnQsIGlnbm9yaW5nIGl0cyBjaGlsZHJlbi5cbiAqL1xuLmNrLmNrLXJlc2V0LFxuLmNrLmNrLXJlc2V0X2FsbCxcbi5jay1yZXNldF9hbGwgKjpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSB7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdHdpZHRoOiBhdXRvO1xuXHRoZWlnaHQ6IGF1dG87XG5cdHBvc2l0aW9uOiBzdGF0aWM7XG5cblx0LyogRG8gbm90IGluY2x1ZGUgaW5oZXJpdGFibGUgcnVsZXMgaGVyZS4gKi9cblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRib3JkZXI6IDA7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdHRyYW5zaXRpb246IG5vbmU7XG5cblx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy8xMDUgKi9cblx0d29yZC13cmFwOiBicmVhay13b3JkO1xufVxuXG4vKipcbiAqIFJlc2V0cyBhbiBlbGVtZW50IEFORCBpdHMgY2hpbGRyZW4uXG4gKi9cbi5jay5jay1yZXNldF9hbGwsXG4uY2stcmVzZXRfYWxsICo6bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKikge1xuXHQvKiBUaGVzZSBhcmUgcnVsZSBpbmhlcml0ZWQgYnkgYWxsIGNoaWxkcmVuIGVsZW1lbnRzLiAqL1xuXHRib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuXHRmb250OiBub3JtYWwgbm9ybWFsIG5vcm1hbCB2YXIoLS1jay1mb250LXNpemUtYmFzZSkvdmFyKC0tY2stbGluZS1oZWlnaHQtYmFzZSkgdmFyKC0tY2stZm9udC1mYWNlKTtcblx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLXRleHQpO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRjdXJzb3I6IGF1dG87XG5cdGZsb2F0OiBub25lO1xufVxuXG4uY2stcmVzZXRfYWxsIHtcblx0JiAuY2stcnRsICo6bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKikge1xuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHR9XG5cblx0JiBpZnJhbWU6bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKikge1xuXHRcdC8qIEZvciBJRSAqL1xuXHRcdHZlcnRpY2FsLWFsaWduOiBpbmhlcml0O1xuXHR9XG5cblx0JiB0ZXh0YXJlYTpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSB7XG5cdFx0d2hpdGUtc3BhY2U6IHByZS13cmFwO1xuXHR9XG5cblx0JiB0ZXh0YXJlYTpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSxcblx0JiBpbnB1dFt0eXBlPVwidGV4dFwiXTpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSxcblx0JiBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKikge1xuXHRcdGN1cnNvcjogdGV4dDtcblx0fVxuXG5cdCYgdGV4dGFyZWFbZGlzYWJsZWRdOm5vdCguY2stcmVzZXRfYWxsLWV4Y2x1ZGVkICopLFxuXHQmIGlucHV0W3R5cGU9XCJ0ZXh0XCJdW2Rpc2FibGVkXTpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSxcblx0JiBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl1bZGlzYWJsZWRdOm5vdCguY2stcmVzZXRfYWxsLWV4Y2x1ZGVkICopIHtcblx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cdH1cblxuXHQmIGZpZWxkc2V0Om5vdCguY2stcmVzZXRfYWxsLWV4Y2x1ZGVkICopIHtcblx0XHRwYWRkaW5nOiAxMHB4O1xuXHRcdGJvcmRlcjogMnB4IGdyb292ZSBoc2woMjU1LCA3JSwgODglKTtcblx0fVxuXG5cdCYgYnV0dG9uOm5vdCguY2stcmVzZXRfYWxsLWV4Y2x1ZGVkICopOjotbW96LWZvY3VzLWlubmVyIHtcblx0XHQvKiBTZWUgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy81NTE3NzQ0L3JlbW92ZS1leHRyYS1idXR0b24tc3BhY2luZy1wYWRkaW5nLWluLWZpcmVmb3ggKi9cblx0XHRwYWRkaW5nOiAwO1xuXHRcdGJvcmRlcjogMFxuXHR9XG59XG5cbi8qKlxuICogRGVmYXVsdCBVSSBydWxlcyBmb3IgUlRMIGxhbmd1YWdlcy5cbiAqL1xuLmNrW2Rpcj1cInJ0bFwiXSxcbi5ja1tkaXI9XCJydGxcIl0gLmNrIHtcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKipcbiAqIERlZmF1bHQgYm9yZGVyLXJhZGl1cyB2YWx1ZS5cbiAqL1xuOnJvb3R7XG5cdC0tY2stYm9yZGVyLXJhZGl1czogMnB4O1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQvKipcblx0ICogQSB2aXN1YWwgc3R5bGUgb2YgZWxlbWVudCdzIGlubmVyIHNoYWRvdyAoaS5lLiBpbnB1dCkuXG5cdCAqL1xuXHQtLWNrLWlubmVyLXNoYWRvdzogMnB4IDJweCAzcHggdmFyKC0tY2stY29sb3Itc2hhZG93LWlubmVyKSBpbnNldDtcblxuXHQvKipcblx0ICogQSB2aXN1YWwgc3R5bGUgb2YgZWxlbWVudCdzIGRyb3Agc2hhZG93IChpLmUuIHBhbmVsKS5cblx0ICovXG5cdC0tY2stZHJvcC1zaGFkb3c6IDAgMXB4IDJweCAxcHggdmFyKC0tY2stY29sb3Itc2hhZG93LWRyb3ApO1xuXG5cdC8qKlxuXHQgKiBBIHZpc3VhbCBzdHlsZSBvZiBlbGVtZW50J3MgYWN0aXZlIHNoYWRvdyAoaS5lLiBjb21tZW50IG9yIHN1Z2dlc3Rpb24pLlxuXHQgKi9cblx0LS1jay1kcm9wLXNoYWRvdy1hY3RpdmU6IDAgM3B4IDZweCAxcHggdmFyKC0tY2stY29sb3Itc2hhZG93LWRyb3AtYWN0aXZlKTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1zcGFjaW5nLXVuaXQ6IFx0XHRcdFx0XHRcdDAuNmVtO1xuXHQtLWNrLXNwYWNpbmctbGFyZ2U6IFx0XHRcdFx0XHRjYWxjKHZhcigtLWNrLXNwYWNpbmctdW5pdCkgKiAxLjUpO1xuXHQtLWNrLXNwYWNpbmctc3RhbmRhcmQ6IFx0XHRcdFx0XHR2YXIoLS1jay1zcGFjaW5nLXVuaXQpO1xuXHQtLWNrLXNwYWNpbmctbWVkaXVtOiBcdFx0XHRcdFx0Y2FsYyh2YXIoLS1jay1zcGFjaW5nLXVuaXQpICogMC44KTtcblx0LS1jay1zcGFjaW5nLXNtYWxsOiBcdFx0XHRcdFx0Y2FsYyh2YXIoLS1jay1zcGFjaW5nLXVuaXQpICogMC41KTtcblx0LS1jay1zcGFjaW5nLXRpbnk6IFx0XHRcdFx0XHRcdGNhbGModmFyKC0tY2stc3BhY2luZy11bml0KSAqIDAuMyk7XG5cdC0tY2stc3BhY2luZy1leHRyYS10aW55OiBcdFx0XHRcdGNhbGModmFyKC0tY2stc3BhY2luZy11bml0KSAqIDAuMTYpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9taXhpbnMvX3JvdW5kZWQuY3NzXCI7XG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL21peGlucy9fc2hhZG93LmNzc1wiO1xuXG4uY2suY2stYXV0b2NvbXBsZXRlIHtcblx0JiA+IC5jay1zZWFyY2hfX3Jlc3VsdHMge1xuXHRcdEBtaXhpbiBjay1yb3VuZGVkLWNvcm5lcnM7XG5cdFx0QG1peGluIGNrLWRyb3Atc2hhZG93O1xuXG5cdFx0bWF4LWhlaWdodDogMjAwcHg7XG5cdFx0b3ZlcmZsb3cteTogYXV0bztcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWRyb3Bkb3duLXBhbmVsLWJvcmRlcik7XG5cdFx0bWluLXdpZHRoOiBhdXRvO1xuXG5cdFx0Ji5jay1zZWFyY2hfX3Jlc3VsdHNfbiB7XG5cdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cblx0XHRcdC8qIFByZXZlbnQgZHVwbGljYXRlZCBib3JkZXJzIGJldHdlZW4gdGhlIGlucHV0IGFuZCB0aGUgcmVzdWx0cyBwYW5lLiAqL1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogLTFweDtcblx0XHR9XG5cblx0XHQmLmNrLXNlYXJjaF9fcmVzdWx0c19zIHtcblx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblxuXHRcdFx0LyogUHJldmVudCBkdXBsaWNhdGVkIGJvcmRlcnMgYmV0d2VlbiB0aGUgaW5wdXQgYW5kIHRoZSByZXN1bHRzIHBhbmUuICovXG5cdFx0XHRtYXJnaW4tdG9wOiAtMXB4O1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cbkBkZWZpbmUtbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzIHtcblx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHQuY2stcm91bmRlZC1jb3JuZXJzICYsXG5cdCYuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0XHRAbWl4aW4tY29udGVudDtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyoqXG4gKiBBIGhlbHBlciB0byBjb21iaW5lIG11bHRpcGxlIHNoYWRvd3MuXG4gKi9cbkBkZWZpbmUtbWl4aW4gY2stYm94LXNoYWRvdyAkc2hhZG93QSwgJHNoYWRvd0I6IDAgMCB7XG5cdGJveC1zaGFkb3c6ICRzaGFkb3dBLCAkc2hhZG93Qjtcbn1cblxuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG5AZGVmaW5lLW1peGluIGNrLWRyb3Atc2hhZG93IHtcblx0QG1peGluIGNrLWJveC1zaGFkb3cgdmFyKC0tY2stZHJvcC1zaGFkb3cpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cbkBkZWZpbmUtbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzIHtcblx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHQuY2stcm91bmRlZC1jb3JuZXJzICYsXG5cdCYuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0XHRAbWl4aW4tY29udGVudDtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyoqXG4gKiBBIGhlbHBlciB0byBjb21iaW5lIG11bHRpcGxlIHNoYWRvd3MuXG4gKi9cbkBkZWZpbmUtbWl4aW4gY2stYm94LXNoYWRvdyAkc2hhZG93QSwgJHNoYWRvd0I6IDAgMCB7XG5cdGJveC1zaGFkb3c6ICRzaGFkb3dBLCAkc2hhZG93Qjtcbn1cblxuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG5AZGVmaW5lLW1peGluIGNrLWRyb3Atc2hhZG93IHtcblx0QG1peGluIGNrLWJveC1zaGFkb3cgdmFyKC0tY2stZHJvcC1zaGFkb3cpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fZm9jdXMuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19zaGFkb3cuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19kaXNhYmxlZC5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3JvdW5kZWQuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vbWl4aW5zL19idXR0b24uY3NzXCI7XG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcblxuLmNrLmNrLWJ1dHRvbixcbmEuY2suY2stYnV0dG9uIHtcblx0QG1peGluIGNrLWJ1dHRvbi1jb2xvcnMgLS1jay1jb2xvci1idXR0b24tZGVmYXVsdDtcblx0QG1peGluIGNrLXJvdW5kZWQtY29ybmVycztcblxuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctdGlueSk7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHQvKiBBIHZlcnkgaW1wb3J0YW50IHBpZWNlIG9mIHN0eWxpbmcuIEdvIHRvIHZhcmlhYmxlIGRlY2xhcmF0aW9uIHRvIGxlYXJuIG1vcmUuICovXG5cdG1pbi13aWR0aDogdmFyKC0tY2stdWktY29tcG9uZW50LW1pbi1oZWlnaHQpO1xuXHRtaW4taGVpZ2h0OiB2YXIoLS1jay11aS1jb21wb25lbnQtbWluLWhlaWdodCk7XG5cblx0LyogTm9ybWFsaXplIHRoZSBoZWlnaHQgb2YgdGhlIGxpbmUuIFJlbW92aW5nIHRoaXMgd2lsbCBicmVhayBjb25zaXN0ZW50IGhlaWdodFxuXHRhbW9uZyB0ZXh0IGFuZCB0ZXh0LWxlc3MgYnV0dG9ucyAod2l0aCBpY29ucykuICovXG5cdGxpbmUtaGVpZ2h0OiAxO1xuXG5cdC8qIEVuYWJsZSBmb250IHNpemUgaW5oZXJpdGFuY2UsIHdoaWNoIGFsbG93cyBmbHVpZCBVSSBzY2FsaW5nLiAqL1xuXHRmb250LXNpemU6IGluaGVyaXQ7XG5cblx0LyogQXZvaWQgZmxpY2tlcmluZyB3aGVuIHRoZSBmb3VjcyBib3JkZXIgc2hvd3MgdXAuICovXG5cdGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG5cdC8qIEFwcGx5IHNvbWUgc21vb3RoIHRyYW5zaXRpb24gdG8gdGhlIGJveC1zaGFkb3cgYW5kIGJvcmRlci4gKi9cblx0dHJhbnNpdGlvbjogYm94LXNoYWRvdyAuMnMgZWFzZS1pbi1vdXQsIGJvcmRlciAuMnMgZWFzZS1pbi1vdXQ7XG5cblx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy8xODkgKi9cblx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXG5cdEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0fVxuXG5cdCY6YWN0aXZlLFxuXHQmOmZvY3VzIHtcblx0XHRAbWl4aW4gY2stZm9jdXMtcmluZztcblx0XHRAbWl4aW4gY2stYm94LXNoYWRvdyB2YXIoLS1jay1mb2N1cy1vdXRlci1zaGFkb3cpO1xuXHR9XG5cblx0LyogQWxsb3cgaWNvbiBjb2xvcmluZyB1c2luZyB0aGUgdGV4dCBcImNvbG9yXCIgcHJvcGVydHkuICovXG5cdCYgLmNrLWJ1dHRvbl9faWNvbiB7XG5cdFx0JiB1c2UsXG5cdFx0JiB1c2UgKiB7XG5cdFx0XHRjb2xvcjogaW5oZXJpdDtcblx0XHR9XG5cdH1cblxuXHQmIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHQvKiBFbmFibGUgZm9udCBzaXplIGluaGVyaXRhbmNlLCB3aGljaCBhbGxvd3MgZmx1aWQgVUkgc2NhbGluZy4gKi9cblx0XHRmb250LXNpemU6IGluaGVyaXQ7XG5cdFx0Zm9udC13ZWlnaHQ6IGluaGVyaXQ7XG5cdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0Y3Vyc29yOiBpbmhlcml0O1xuXG5cdFx0LyogTXVzdCBiZSBjb25zaXN0ZW50IHdpdGggLmNrLWljb24ncyB2ZXJ0aWNhbCBhbGlnbi4gT3RoZXJ3aXNlLCBidXR0b25zIHdpdGggYW5kXG5cdFx0d2l0aG91dCBsYWJlbHMgKGJ1dCB3aXRoIGljb25zKSBoYXZlIGRpZmZlcmVudCBzaXplcyBpbiBDaHJvbWUgKi9cblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG5cdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHR9XG5cblx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHR9XG5cdH1cblxuXHQmIC5jay1idXR0b25fX2tleXN0cm9rZSB7XG5cdFx0Y29sb3I6IGluaGVyaXQ7XG5cblx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0fVxuXG5cdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHR9XG5cblx0XHRvcGFjaXR5OiAuNTtcblx0fVxuXG5cdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvNzAgKi9cblx0Ji5jay1kaXNhYmxlZCB7XG5cdFx0JjphY3RpdmUsXG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHQvKiBUaGUgZGlzYWJsZWQgYnV0dG9uIHNob3VsZCBoYXZlIGEgc2xpZ2h0bHkgbGVzcyB2aXNpYmxlIHNoYWRvdyB3aGVuIGZvY3VzZWQuICovXG5cdFx0XHRAbWl4aW4gY2stYm94LXNoYWRvdyB2YXIoLS1jay1mb2N1cy1kaXNhYmxlZC1vdXRlci1zaGFkb3cpO1xuXHRcdH1cblxuXHRcdCYgLmNrLWJ1dHRvbl9faWNvbiB7XG5cdFx0XHRAbWl4aW4gY2stZGlzYWJsZWQ7XG5cdFx0fVxuXG5cdFx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy85OCAqL1xuXHRcdCYgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0QG1peGluIGNrLWRpc2FibGVkO1xuXHRcdH1cblxuXHRcdCYgLmNrLWJ1dHRvbl9fa2V5c3Ryb2tlIHtcblx0XHRcdG9wYWNpdHk6IC4zO1xuXHRcdH1cblx0fVxuXG5cdCYuY2stYnV0dG9uX3dpdGgtdGV4dCB7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy10aW55KSB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG5cdFx0JiAuY2stYnV0dG9uX19pY29uIHtcblx0XHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0XHR9XG5cblx0XHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmLmNrLWJ1dHRvbl93aXRoLWtleXN0cm9rZSB7XG5cdFx0Lyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cblx0XHQmIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdGZsZXgtZ3JvdzogMTtcblx0XHR9XG5cdH1cblxuXHQvKiBBIHN0eWxlIG9mIHRoZSBidXR0b24gd2hpY2ggaXMgY3VycmVudGx5IG9uLCBlLmcuIGl0cyBmZWF0dXJlIGlzIGFjdGl2ZS4gKi9cblx0Ji5jay1vbiB7XG5cdFx0QG1peGluIGNrLWJ1dHRvbi1jb2xvcnMgLS1jay1jb2xvci1idXR0b24tb247XG5cblx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYnV0dG9uLW9uLWNvbG9yKTtcblx0fVxuXG5cdCYuY2stYnV0dG9uLXNhdmUge1xuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1idXR0b24tc2F2ZSk7XG5cdH1cblxuXHQmLmNrLWJ1dHRvbi1jYW5jZWwge1xuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1idXR0b24tY2FuY2VsKTtcblx0fVxufVxuXG4vKiBBIHN0eWxlIG9mIHRoZSBidXR0b24gd2hpY2ggaGFuZGxlcyB0aGUgcHJpbWFyeSBhY3Rpb24uICovXG4uY2suY2stYnV0dG9uLWFjdGlvbixcbmEuY2suY2stYnV0dG9uLWFjdGlvbiB7XG5cdEBtaXhpbiBjay1idXR0b24tY29sb3JzIC0tY2stY29sb3ItYnV0dG9uLWFjdGlvbjtcblxuXHRjb2xvcjogdmFyKC0tY2stY29sb3ItYnV0dG9uLWFjdGlvbi10ZXh0KTtcbn1cblxuLmNrLmNrLWJ1dHRvbi1ib2xkLFxuYS5jay5jay1idXR0b24tYm9sZCB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyoqXG4gKiBBIHZpc3VhbCBzdHlsZSBvZiBmb2N1c2VkIGVsZW1lbnQncyBib3JkZXIuXG4gKi9cbkBkZWZpbmUtbWl4aW4gY2stZm9jdXMtcmluZyB7XG5cdC8qIERpc2FibGUgbmF0aXZlIG91dGxpbmUuICovXG5cdG91dGxpbmU6IG5vbmU7XG5cdGJvcmRlcjogdmFyKC0tY2stZm9jdXMtcmluZylcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qKlxuICogQSBjbGFzcyB3aGljaCBpbmRpY2F0ZXMgdGhhdCBhbiBlbGVtZW50IGhvbGRpbmcgaXQgaXMgZGlzYWJsZWQuXG4gKi9cbkBkZWZpbmUtbWl4aW4gY2stZGlzYWJsZWQge1xuXHRvcGFjaXR5OiB2YXIoLS1jay1kaXNhYmxlZC1vcGFjaXR5KTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qKlxuICogSW1wbGVtZW50cyBhIGJ1dHRvbiBvZiBnaXZlbiBiYWNrZ3JvdW5kIGNvbG9yLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSAkYmFja2dyb3VuZCAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbiAqIEBwYXJhbSB7U3RyaW5nfSAkYm9yZGVyIC0gQm9yZGVyIGNvbG9yIG9mIHRoZSBidXR0b24uXG4gKi9cbkBkZWZpbmUtbWl4aW4gY2stYnV0dG9uLWNvbG9ycyAkcHJlZml4IHtcblx0YmFja2dyb3VuZDogdmFyKCQocHJlZml4KS1iYWNrZ3JvdW5kKTtcblxuXHQmOm5vdCguY2stZGlzYWJsZWQpIHtcblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigkKHByZWZpeCktaG92ZXItYmFja2dyb3VuZCk7XG5cdFx0fVxuXG5cdFx0JjphY3RpdmUge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKCQocHJlZml4KS1hY3RpdmUtYmFja2dyb3VuZCk7XG5cdFx0fVxuXHR9XG5cblx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy85OCAqL1xuXHQmLmNrLWRpc2FibGVkIHtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoJChwcmVmaXgpLWRpc2FibGVkLWJhY2tncm91bmQpO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AZGVmaW5lLW1peGluIGNrLWRpciAkZGlyZWN0aW9uIHtcblx0W2Rpcj1cIiQoZGlyZWN0aW9uKVwiXSAmIHtcblx0XHRAbWl4aW4tY29udGVudDtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fcm91bmRlZC5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX2Rpc2FibGVkLmNzc1wiO1xuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzXCI7XG5cbi8qIE5vdGU6IFRvIGF2b2lkIHJlbmRlcmluZyBpc3N1ZXMgKGFsaWFzaW5nKSBidXQgdG8gcHJlc2VydmUgdGhlIHJlc3BvbnNpdmUgbmF0dXJlXG5vZiB0aGUgY29tcG9uZW50LCBmbG9hdGluZ+KAk3BvaW50IG51bWJlcnMgaGF2ZSBiZWVuIHVzZWQgd2hpY2gsIGZvciB0aGUgZGVmYXVsdCBmb250IHNpemVcbihzZWU6IC0tY2stZm9udC1zaXplLWJhc2UpLCB3aWxsIGdlbmVyYXRlIHNpbXBsZSBpbnRlZ2Vycy4gKi9cbjpyb290IHtcblx0LyogMzRweCBhdCAxM3B4IGZvbnQtc2l6ZSAqL1xuXHQtLWNrLXN3aXRjaC1idXR0b24tdG9nZ2xlLXdpZHRoOiAyLjYxNTM4NDYxNTRlbTtcblx0LyogMTRweCBhdCAxM3B4IGZvbnQtc2l6ZSAqL1xuXHQtLWNrLXN3aXRjaC1idXR0b24tdG9nZ2xlLWlubmVyLXNpemU6IGNhbGMoMS4wNzY5MjMwNzY5ZW0gKyAxcHgpO1xuXHQtLWNrLXN3aXRjaC1idXR0b24tdHJhbnNsYXRpb246IGNhbGMoXG5cdFx0dmFyKC0tY2stc3dpdGNoLWJ1dHRvbi10b2dnbGUtd2lkdGgpIC1cblx0XHR2YXIoLS1jay1zd2l0Y2gtYnV0dG9uLXRvZ2dsZS1pbm5lci1zaXplKSAtXG5cdFx0MnB4IC8qIEJvcmRlciAqL1xuXHQpO1xuXHQtLWNrLXN3aXRjaC1idXR0b24taW5uZXItaG92ZXItc2hhZG93OiAwIDAgMCA1cHggdmFyKC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1pbm5lci1zaGFkb3cpO1xufVxuXG4uY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbiB7XG5cdC8qIFVubGlrZSBhIHJlZ3VsYXIgYnV0dG9uLCB0aGUgc3dpdGNoIGJ1dHRvbiB0ZXh0IGNvbG9yIGFuZCBiYWNrZ3JvdW5kIHNob3VsZCBuZXZlciBjaGFuZ2UuXG5cdCAqIENoYW5naW5nIHRvZ2dsZSBzd2l0Y2ggKGJhY2tncm91bmQsIG91dGxpbmUpIGlzIGVub3VnaCB0byBjYXJyeSB0aGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlXG5cdCAqIHN0YXRlIG9mIHRoZSBlbnRpcmUgY29tcG9uZW50IChodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xMjUxOSlcblx0ICovXG5cdCYsICY6aG92ZXIsICY6Zm9jdXMsICY6YWN0aXZlLCAmLmNrLW9uOmhvdmVyLCAmLmNrLW9uOmZvY3VzLCAmLmNrLW9uOmFjdGl2ZSB7XG5cdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdH1cblxuXHQmIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHQvKiBTZXBhcmF0ZSB0aGUgbGFiZWwgZnJvbSB0aGUgc3dpdGNoICovXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGNhbGMoMiAqIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpKTtcblx0XHR9XG5cblx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHQvKiBTZXBhcmF0ZSB0aGUgbGFiZWwgZnJvbSB0aGUgc3dpdGNoICovXG5cdFx0XHRtYXJnaW4tbGVmdDogY2FsYygyICogdmFyKC0tY2stc3BhY2luZy1sYXJnZSkpO1xuXHRcdH1cblx0fVxuXG5cdCYgLmNrLWJ1dHRvbl9fdG9nZ2xlIHtcblx0XHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzO1xuXG5cdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0LyogTWFrZSBzdXJlIHRoZSB0b2dnbGUgaXMgYWx3YXlzIHRvIHRoZSByaWdodCBhcyBmYXIgYXMgcG9zc2libGUuICovXG5cdFx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0XHR9XG5cblx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHQvKiBNYWtlIHN1cmUgdGhlIHRvZ2dsZSBpcyBhbHdheXMgdG8gdGhlIGxlZnQgYXMgZmFyIGFzIHBvc3NpYmxlLiAqL1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xuXHRcdH1cblxuXHRcdC8qIEFwcGx5IHNvbWUgc21vb3RoIHRyYW5zaXRpb24gdG8gdGhlIGJveC1zaGFkb3cgYW5kIGJvcmRlci4gKi9cblx0XHQvKiBHZW50bHkgYW5pbWF0ZSB0aGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGUgdG9nZ2xlIHN3aXRjaCAqL1xuXHRcdHRyYW5zaXRpb246IGJhY2tncm91bmQgNDAwbXMgZWFzZSwgYm94LXNoYWRvdyAuMnMgZWFzZS1pbi1vdXQsIG91dGxpbmUgLjJzIGVhc2UtaW4tb3V0O1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRcdHdpZHRoOiB2YXIoLS1jay1zd2l0Y2gtYnV0dG9uLXRvZ2dsZS13aWR0aCk7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1vZmYtYmFja2dyb3VuZCk7XG5cblx0XHQmIC5jay1idXR0b25fX3RvZ2dsZV9faW5uZXIge1xuXHRcdFx0QG1peGluIGNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IGNhbGMoLjUgKiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKSk7XG5cdFx0XHR9XG5cblx0XHRcdHdpZHRoOiB2YXIoLS1jay1zd2l0Y2gtYnV0dG9uLXRvZ2dsZS1pbm5lci1zaXplKTtcblx0XHRcdGhlaWdodDogdmFyKC0tY2stc3dpdGNoLWJ1dHRvbi10b2dnbGUtaW5uZXItc2l6ZSk7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLWlubmVyLWJhY2tncm91bmQpO1xuXG5cdFx0XHQvKiBHZW50bHkgYW5pbWF0ZSB0aGUgaW5uZXIgcGFydCBvZiB0aGUgdG9nZ2xlIHN3aXRjaCAqL1xuXHRcdFx0dHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7XG5cblx0XHRcdEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cdFx0XHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLW9mZi1ob3Zlci1iYWNrZ3JvdW5kKTtcblxuXHRcdFx0JiAuY2stYnV0dG9uX190b2dnbGVfX2lubmVyIHtcblx0XHRcdFx0Ym94LXNoYWRvdzogdmFyKC0tY2stc3dpdGNoLWJ1dHRvbi1pbm5lci1ob3Zlci1zaGFkb3cpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCYuY2stZGlzYWJsZWQgLmNrLWJ1dHRvbl9fdG9nZ2xlIHtcblx0XHRAbWl4aW4gY2stZGlzYWJsZWQ7XG5cdH1cblxuXHQvKiBPdmVycmlkaW5nIGRlZmF1bHQgLmNrLWJ1dHRvbjpmb2N1cyBzdHlsZXMgKyBhbiBvdXRsaW5lIGFyb3VuZCB0aGUgdG9vZ2xlICovXG5cdCY6Zm9jdXMge1xuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0XHRib3gtc2hhZG93OiBub25lO1xuXG5cdFx0JiAuY2stYnV0dG9uX190b2dnbGUge1xuXHRcdFx0Ym94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCksIDAgMCAwIDVweCB2YXIoLS1jay1jb2xvci1mb2N1cy1vdXRlci1zaGFkb3cpO1xuXHRcdFx0b3V0bGluZS1vZmZzZXQ6IDFweDtcblx0XHRcdG91dGxpbmU6IHZhcigtLWNrLWZvY3VzLXJpbmcpO1xuXHRcdH1cblx0fVxuXG5cdC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG5cdCYuY2stb24ge1xuXHRcdCYgLmNrLWJ1dHRvbl9fdG9nZ2xlIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24tb24tYmFja2dyb3VuZCk7XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLW9uLWhvdmVyLWJhY2tncm91bmQpO1xuXHRcdFx0fVxuXG5cdFx0XHQmIC5jay1idXR0b25fX3RvZ2dsZV9faW5uZXIge1xuXHRcdFx0XHQvKlxuXHRcdFx0XHQqIE1vdmUgdGhlIHRvZ2dsZSBzd2l0Y2ggdG8gdGhlIHJpZ2h0LiBJdCB3aWxsIGJlIGFuaW1hdGVkLlxuXHRcdFx0XHQqL1xuXHRcdFx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKCB2YXIoIC0tY2stc3dpdGNoLWJ1dHRvbi10cmFuc2xhdGlvbiApICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKCBjYWxjKCAtMSAqIHZhciggLS1jay1zd2l0Y2gtYnV0dG9uLXRyYW5zbGF0aW9uICkgKSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcblxuLmNrLmNrLWJ1dHRvbi5jay1saXN0LWl0ZW0tYnV0dG9uIHtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy10aW55KSBjYWxjKDIgKiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSk7XG5cblx0Jixcblx0Ji5jay1vbiB7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGlzdC1iYWNrZ3JvdW5kKTtcblx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItdGV4dCk7XG5cdH1cblxuXHQmOmhhcyguY2stbGlzdC1pdGVtLWJ1dHRvbl9fY2hlY2staG9sZGVyKSB7XG5cdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG5cblx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG5cdH1cblxuXHQvKlxuXHQgKiBgLmNrLW9uYCBjbGFzcyBhbmQgYmFja2dyb3VuZCBzdHlsaW5nIGlzIG92ZXJyaWRkZW4gZm9yIGBjay1idXR0b25gIGluIG1hbnkgcGxhY2VzLlxuXHQgKiBUaGlzIGlzIGEgd29ya2Fyb3VuZCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgYmFja2dyb3VuZCBpcyBub3Qgb3ZlcnJpZGRlbiBhbmQgdXNlcyBzaW1pbGFyXG5cdCAqIHNlbGVjdG9yIHNwZWNpZmljaXR5IGFzIHRoZSBvdGhlciBvdmVycmlkZXMuXG5cdCAqL1xuXHQmOmhvdmVyOm5vdCguY2stZGlzYWJsZWQpLFxuXHQmLmNrLWJ1dHRvbi5jay1vbjpob3Zlcixcblx0Ji5jay1vbjpub3QoLmNrLWxpc3QtaXRlbS1idXR0b25fdG9nZ2xlYWJsZSksXG5cdCYuY2stb246aG92ZXIge1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWxpc3QtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQpO1xuXG5cdFx0Jjpub3QoLmNrLWRpc2FibGVkKSB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItdGV4dCk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stY29sbGFwc2libGUtYXJyb3ctc2l6ZTogY2FsYygwLjUgKiB2YXIoLS1jay1pY29uLXNpemUpKTtcbn1cblxuLmNrLmNrLWNvbGxhcHNpYmxlIHtcblx0JiA+IC5jay5jay1idXR0b24ge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0Y29sb3I6IGluaGVyaXQ7XG5cblx0XHQmOmZvY3VzIHtcblx0XHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdH1cblxuXHRcdCY6YWN0aXZlLCAmOm5vdCg6Zm9jdXMpLCAmOmhvdmVyOm5vdCg6Zm9jdXMpIHtcblx0XHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0fVxuXG5cdFx0JiA+IC5jay1pY29uIHtcblx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0d2lkdGg6IHZhcigtLWNrLWNvbGxhcHNpYmxlLWFycm93LXNpemUpO1xuXHRcdH1cblx0fVxuXG5cdCYgPiAuY2stY29sbGFwc2libGVfX2NoaWxkcmVuIHtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdH1cblxuXHQmLmNrLWNvbGxhcHNpYmxlX2NvbGxhcHNlZCB7XG5cdFx0JiA+IC5jay5jay1idXR0b24gLmNrLWljb24ge1xuXHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3JvdW5kZWQuY3NzXCI7XG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX21lZGlhY29sb3JzLmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stY29sb3ItZ3JpZC10aWxlLXNpemU6IDI0cHg7XG5cblx0LyogTm90IHVzaW5nIGdsb2JhbCBjb2xvcnMgaGVyZSBiZWNhdXNlIHRoZXNlIG1heSBjaGFuZ2UgYnV0IHNvbWUgY29sb3JzIGluIGEgcGFsbGV0dGVcblx0ICogcmVxdWlyZSBzcGVjaWFsIHRyZWF0bWVudC4gRm9yIGluc3RhbmNlLCB0aGlzIGVuc3VyZXMgbm8gbWF0dGVyIHdoYXQgdGhlIFVJIHRleHQgY29sb3IgaXMsXG5cdCAqIHRoZSBjaGVjayBpY29uIHdpbGwgbG9vayBnb29kIG9uIHRoZSBibGFjayBjb2xvciB0aWxlLiAqL1xuXHQtLWNrLWNvbG9yLWNvbG9yLWdyaWQtY2hlY2staWNvbjogaHNsKDIxMiwgODElLCA0NiUpO1xufVxuXG4uY2suY2stY29sb3ItZ3JpZCB7XG5cdGdyaWQtZ2FwOiA1cHg7XG5cdHBhZGRpbmc6IDhweDtcbn1cblxuLmNrLmNrLWNvbG9yLWdyaWRfX3RpbGUge1xuXHR0cmFuc2l0aW9uOiAuMnMgZWFzZSBib3gtc2hhZG93O1xuXG5cdEBtaXhpbiBjay1tZWRpYS1kZWZhdWx0LWNvbG9ycyB7XG5cdFx0d2lkdGg6IHZhcigtLWNrLWNvbG9yLWdyaWQtdGlsZS1zaXplKTtcblx0XHRoZWlnaHQ6IHZhcigtLWNrLWNvbG9yLWdyaWQtdGlsZS1zaXplKTtcblx0XHRtaW4td2lkdGg6IHZhcigtLWNrLWNvbG9yLWdyaWQtdGlsZS1zaXplKTtcblx0XHRtaW4taGVpZ2h0OiB2YXIoLS1jay1jb2xvci1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0cGFkZGluZzogMDtcblx0XHRib3JkZXI6IDA7XG5cblx0XHQmLmNrLW9uLFxuXHRcdCY6Zm9jdXM6bm90KCAuY2stZGlzYWJsZWQgKSxcblx0XHQmOmhvdmVyOm5vdCggLmNrLWRpc2FibGVkICkge1xuXHRcdFx0LyogRGlzYWJsZSB0aGUgZGVmYXVsdCAuY2stYnV0dG9uJ3MgYm9yZGVyIHJpbmcuICovXG5cdFx0XHRib3JkZXI6IDA7XG5cdFx0fVxuXG5cdFx0Ji5jay1jb2xvci1zZWxlY3Rvcl9fY29sb3ItdGlsZV9ib3JkZXJlZCB7XG5cdFx0XHRib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdH1cblxuXHRcdCYuY2stb24ge1xuXHRcdFx0Ym94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCksIDAgMCAwIDJweCB2YXIoLS1jay1jb2xvci1iYXNlLXRleHQpO1xuXHRcdH1cblxuXHRcdCY6Zm9jdXM6bm90KCAuY2stZGlzYWJsZWQgKSxcblx0XHQmOmhvdmVyOm5vdCggLmNrLWRpc2FibGVkICkge1xuXHRcdFx0Ym94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCksIDAgMCAwIDJweCB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHRcdH1cblx0fVxuXG5cdC8qXG5cdCAqIEluIGhpZ2ggY29udHJhc3QgbW9kZSwgdGhlIGNvbG9ycyBhcmUgcmVwbGFjZWQgd2l0aCB0ZXh0IGxhYmVscy5cblx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE0OTA3LlxuXHQgKi9cblx0QG1peGluIGNrLW1lZGlhLWZvcmNlZC1jb2xvcnMge1xuXHRcdHdpZHRoOiB1bnNldDtcblx0XHRoZWlnaHQ6IHVuc2V0O1xuXHRcdG1pbi13aWR0aDogdW5zZXQ7XG5cdFx0bWluLWhlaWdodDogdW5zZXQ7XG5cdFx0cGFkZGluZzogMCB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblxuXHRcdCYgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdH1cblx0fVxuXG5cdEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0fVxuXG5cdCYuY2stZGlzYWJsZWQge1xuXHRcdGN1cnNvcjogdW5zZXQ7XG5cdFx0dHJhbnNpdGlvbjogdW5zZXQ7XG5cdH1cblxuXHQmIC5jay5jay1pY29uIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1jb2xvci1ncmlkLWNoZWNrLWljb24pO1xuXHR9XG5cblx0Ji5jay1vbiB7XG5cdFx0JiAuY2suY2staWNvbiB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cdH1cbn1cblxuLmNrLmNrLWNvbG9yLWdyaWRfX2xhYmVsIHtcblx0cGFkZGluZzogMCB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBkZWZpbmUtbWl4aW4gY2stbWVkaWEtZm9yY2VkLWNvbG9ycyB7XG5cdEBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG5cdFx0JiB7XG5cdFx0XHRAbWl4aW4tY29udGVudDtcblx0XHR9XG5cdH1cbn1cblxuQGRlZmluZS1taXhpbiBjay1tZWRpYS1kZWZhdWx0LWNvbG9ycyB7XG5cdEBtZWRpYSAoZm9yY2VkLWNvbG9yczogbm9uZSkge1xuXHRcdCYge1xuXHRcdFx0QG1peGluLWNvbnRlbnQ7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcblxuLmNrLmNrLWNvbG9yLXNlbGVjdG9yIHtcblx0LyogVmlldyBmcmFnbWVudCB3aXRoIGNvbG9yIGdyaWRzLiAqL1xuXHQmIC5jay1jb2xvci1ncmlkcy1mcmFnbWVudCB7XG5cdFx0JiAuY2stYnV0dG9uLmNrLWNvbG9yLXNlbGVjdG9yX19yZW1vdmUtY29sb3IsXG5cdFx0JiAuY2stYnV0dG9uLmNrLWNvbG9yLXNlbGVjdG9yX19jb2xvci1waWNrZXIge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0fVxuXG5cdFx0JiAuY2stYnV0dG9uLmNrLWNvbG9yLXNlbGVjdG9yX19jb2xvci1waWNrZXIge1xuXHRcdFx0cGFkZGluZzogY2FsYyh2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSAvIDIpIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXG5cdFx0XHQmOm5vdCg6Zm9jdXMpIHtcblx0XHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRcdH1cblxuXHRcdFx0JiAuY2suY2staWNvbiB7XG5cdFx0XHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYgbGFiZWwuY2suY2stY29sb3ItZ3JpZF9fbGFiZWwge1xuXHRcdFx0Zm9udC13ZWlnaHQ6IHVuc2V0O1xuXHRcdH1cblx0fVxuXG5cdC8qIFZpZXcgZnJhZ21lbnQgd2l0aCBhIGNvbG9yIHBpY2tlci4gKi9cblx0JiAuY2stY29sb3ItcGlja2VyLWZyYWdtZW50IHtcblx0XHQmIC5jay5jay1jb2xvci1waWNrZXIge1xuXHRcdFx0cGFkZGluZzogOHB4O1xuXG5cdFx0XHQmIC5oZXgtY29sb3ItcGlja2VyIHtcblx0XHRcdFx0aGVpZ2h0OiAxMDBweDtcblx0XHRcdFx0bWluLXdpZHRoOiAxODBweDtcblxuXHRcdFx0XHQmOjpwYXJ0KHNhdHVyYXRpb24pIHtcblx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKSB2YXIoLS1jay1ib3JkZXItcmFkaXVzKSAwIDA7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmOjpwYXJ0KGh1ZSkge1xuXHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDAgMCB2YXIoLS1jay1ib3JkZXItcmFkaXVzKSB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdCY6OnBhcnQoc2F0dXJhdGlvbi1wb2ludGVyKSxcblx0XHRcdFx0Jjo6cGFydChodWUtcG9pbnRlcikge1xuXHRcdFx0XHRcdHdpZHRoOiAxNXB4O1xuXHRcdFx0XHRcdGhlaWdodDogMTVweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYgLmNrLmNrLWNvbG9yLXNlbGVjdG9yX2FjdGlvbi1iYXIge1xuXHRcdFx0cGFkZGluZzogMCA4cHggOHB4O1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fcm91bmRlZC5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3NoYWRvdy5jc3NcIjtcbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fcndkLmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stZGlhbG9nLW92ZXJsYXktYmFja2dyb3VuZC1jb2xvcjogaHNsYSggMCwgMCUsIDAlLCAuNSApO1xuXHQtLWNrLWRpYWxvZy1kcm9wLXNoYWRvdzogMHB4IDBweCA2cHggMnB4IGhzbCgwZGVnIDAlIDAlIC8gMTUlKTtcblx0LS1jay1kaWFsb2ctbWF4LXdpZHRoOiAxMDB2dztcblx0LS1jay1kaWFsb2ctbWF4LWhlaWdodDogOTB2aDtcblx0LS1jay1jb2xvci1kaWFsb2ctYmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0LS1jay1jb2xvci1kaWFsb2ctZm9ybS1oZWFkZXItYm9yZGVyOiB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG59XG5cbi5jay5jay1kaWFsb2ctb3ZlcmxheSB7XG5cdGFuaW1hdGlvbjogY2stZGlhbG9nLWZhZGUtaW4gLjNzO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1kaWFsb2ctb3ZlcmxheS1iYWNrZ3JvdW5kLWNvbG9yKTtcblx0ei1pbmRleDogdmFyKC0tY2stei1kaWFsb2cpO1xufVxuXG4uY2suY2stZGlhbG9nIHtcblx0QG1peGluIGNrLXJvdW5kZWQtY29ybmVycztcblx0QG1peGluIGNrLWRyb3Atc2hhZG93O1xuXG5cdC0tY2stZHJvcC1zaGFkb3c6IHZhcigtLWNrLWRpYWxvZy1kcm9wLXNoYWRvdyk7XG5cblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItZGlhbG9nLWJhY2tncm91bmQpO1xuXHRtYXgtaGVpZ2h0OiB2YXIoLS1jay1kaWFsb2ctbWF4LWhlaWdodCk7XG5cdG1heC13aWR0aDogdmFyKC0tY2stZGlhbG9nLW1heC13aWR0aCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0b3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcblxuXHQmIC5jay5jay1mb3JtX19oZWFkZXIge1xuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1kaWFsb2ctZm9ybS1oZWFkZXItYm9yZGVyKTtcblx0fVxufVxuXG4uY2stZGlhbG9nLXNjcm9sbC1sb2NrZWQge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5Aa2V5ZnJhbWVzIGNrLWRpYWxvZy1mYWRlLWluIHtcblx0MCUge1xuXHRcdGJhY2tncm91bmQ6IGhzbGEoIDAsIDAlLCAwJSwgMCApO1xuXHR9XG5cblx0MTAwJSB7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stZGlhbG9nLW92ZXJsYXktYmFja2dyb3VuZC1jb2xvcik7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBkZWZpbmUtbWl4aW4gY2stbWVkaWEtcGhvbmUge1xuXHRAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuXHRcdEBtaXhpbi1jb250ZW50O1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZGlhbG9nIHtcblx0JiAuY2suY2stZGlhbG9nX19hY3Rpb25zIHtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblxuXHRcdCYgPiAqICsgKiB7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19yb3VuZGVkLmNzc1wiO1xuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fZGlzYWJsZWQuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19zaGFkb3cuY3NzXCI7XG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLWRyb3Bkb3duLWFycm93LXNpemU6IGNhbGMoMC41ICogdmFyKC0tY2staWNvbi1zaXplKSk7XG59XG5cbi5jay5jay1kcm9wZG93biB7XG5cdC8qIEVuYWJsZSBmb250IHNpemUgaW5oZXJpdGFuY2UsIHdoaWNoIGFsbG93cyBmbHVpZCBVSSBzY2FsaW5nLiAqL1xuXHRmb250LXNpemU6IGluaGVyaXQ7XG5cblx0JiAuY2stZHJvcGRvd25fX2Fycm93IHtcblx0XHR3aWR0aDogdmFyKC0tY2stZHJvcGRvd24tYXJyb3ctc2l6ZSk7XG5cdH1cblxuXHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0JiAuY2stZHJvcGRvd25fX2Fycm93IHtcblx0XHRcdHJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdFx0LyogQSBzcGFjZSB0byBhY2NvbW1vZGF0ZSB0aGUgdHJpYW5nbGUuICovXG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0fVxuXHR9XG5cblx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdCYgLmNrLWRyb3Bkb3duX19hcnJvdyB7XG5cdFx0XHRsZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdFx0LyogQSBzcGFjZSB0byBhY2NvbW1vZGF0ZSB0aGUgdHJpYW5nbGUuICovXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdH1cblx0fVxuXG5cdCYuY2stZGlzYWJsZWQgLmNrLWRyb3Bkb3duX19hcnJvdyB7XG5cdFx0QG1peGluIGNrLWRpc2FibGVkO1xuXHR9XG5cblx0JiAuY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b24ge1xuXHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdCY6bm90KC5jay1idXR0b25fd2l0aC10ZXh0KSB7XG5cdFx0XHRcdC8qIE1ha2Ugc3VyZSBkcm9wZG93bnMgd2l0aCBqdXN0IGFuIGljb24gaGF2ZSB0aGUgcmlnaHQgaW5uZXIgc3BhY2luZyAqL1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdCY6bm90KC5jay1idXR0b25fd2l0aC10ZXh0KSB7XG5cdFx0XHRcdC8qIE1ha2Ugc3VyZSBkcm9wZG93bnMgd2l0aCBqdXN0IGFuIGljb24gaGF2ZSB0aGUgcmlnaHQgaW5uZXIgc3BhY2luZyAqL1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvKiAjMjMgKi9cblx0XHQmIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdHdpZHRoOiA3ZW07XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0fVxuXG5cdFx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy83MCAqL1xuXHRcdCYuY2stZGlzYWJsZWQgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0QG1peGluIGNrLWRpc2FibGVkO1xuXHRcdH1cblxuXHRcdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzgxNiAqL1xuXHRcdCYuY2stb24ge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHRcdH1cblxuXHRcdCYuY2stZHJvcGRvd25fX2J1dHRvbl9sYWJlbC13aWR0aF9hdXRvIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdHdpZHRoOiBhdXRvO1xuXHRcdH1cblxuXHRcdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzg2OTkgKi9cblx0XHQmLmNrLW9mZjphY3RpdmUsXG5cdFx0Ji5jay1vbjphY3RpdmUge1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblxuXHRcdFx0Jjpmb2N1cyB7XG5cdFx0XHRcdEBtaXhpbiBjay1ib3gtc2hhZG93IHZhcigtLWNrLWZvY3VzLW91dGVyLXNoYWRvdyk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5jay5jay1kcm9wZG93bl9fcGFuZWwge1xuXHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzO1xuXHRAbWl4aW4gY2stZHJvcC1zaGFkb3c7XG5cblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItZHJvcGRvd24tcGFuZWwtYmFja2dyb3VuZCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWRyb3Bkb3duLXBhbmVsLWJvcmRlcik7XG5cdGJvdHRvbTogMDtcblxuXHQvKiBNYWtlIHN1cmUgdGhlIHBhbmVsIGlzIGF0IGxlYXN0IGFzIHdpZGUgYXMgdGhlIGRyb3AtZG93bidzIGJ1dHRvbi4gKi9cblx0bWluLXdpZHRoOiAxMDAlO1xuXG5cdC8qIERpc2FibGVkIGNvcm5lciBib3JkZXIgcmFkaXVzIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgLmRyb3Bkb3duX19idXR0b25cblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvODE2ICovXG5cdCYuY2stZHJvcGRvd25fX3BhbmVsX3NlIHtcblx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHR9XG5cblx0Ji5jay1kcm9wZG93bl9fcGFuZWxfc3cge1xuXHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG5cblx0Ji5jay1kcm9wZG93bl9fcGFuZWxfbmUge1xuXHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdH1cblxuXHQmLmNrLWRyb3Bkb3duX19wYW5lbF9udyB7XG5cdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdH1cblxuXHQmOmZvY3VzIHtcblx0XHRvdXRsaW5lOiBub25lO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19yb3VuZGVkLmNzc1wiO1xuXG4uY2suY2stZHJvcGRvd24gPiAuY2stZHJvcGRvd25fX3BhbmVsID4gLmNrLWxpc3Qge1xuXHQvKiBEaXNhYmxlZCByYWRpdXMgb2YgdG9wLWxlZnQgYm9yZGVyIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCAuZHJvcGRvd25fX2J1dHRvblxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy84MTYgKi9cblx0QG1peGluIGNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0fVxuXG5cdC8qIE1ha2Ugc3VyZSB0aGUgYnV0dG9uIGJlbG9uZ2luZyB0byB0aGUgZmlyc3QvbGFzdCBjaGlsZCBvZiB0aGUgbGlzdCBnb2VzIHdlbGwgd2l0aCB0aGVcblx0Ym9yZGVyIHJhZGl1cyBvZiB0aGUgZW50aXJlIHBhbmVsLiAqL1xuXHQmIC5jay1saXN0X19pdGVtIHtcblx0XHQmOmZpcnN0LWNoaWxkID4gLmNrLWJ1dHRvbiB7XG5cdFx0XHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0JjpsYXN0LWNoaWxkID4gLmNrLWJ1dHRvbiB7XG5cdFx0XHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19yb3VuZGVkLmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stY29sb3Itc3BsaXQtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQ6IGhzbCgwLCAwJSwgOTIlKTtcblx0LS1jay1jb2xvci1zcGxpdC1idXR0b24taG92ZXItYm9yZGVyOiBoc2woMCwgMCUsIDcwJSk7XG59XG5cbi5jay5jay1zcGxpdGJ1dHRvbiB7XG5cdC8qXG5cdCAqIE5vdGU6IGNrLXJvdW5kZWQgYW5kIGNrLWRpciBtaXhpbnMgZG9uJ3QgZ28gdG9nZXRoZXIgKGJlY2F1c2UgdGhleSBib3RoIHVzZSBAbmVzdCkuXG5cdCAqL1xuXHQmOmhvdmVyID4gLmNrLXNwbGl0YnV0dG9uX19hY3Rpb24sXG5cdCYuY2stc3BsaXRidXR0b25fb3BlbiA+IC5jay1zcGxpdGJ1dHRvbl9fYWN0aW9uIHtcblx0XHRbZGlyPVwibHRyXCJdICYge1xuXHRcdFx0LyogRG9uJ3Qgcm91bmQgdGhlIGFjdGlvbiBidXR0b24gb24gdGhlIHJpZ2h0IHNpZGUgKi9cblx0XHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB1bnNldDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB1bnNldDtcblx0XHR9XG5cblx0XHRbZGlyPVwicnRsXCJdICYge1xuXHRcdFx0LyogRG9uJ3Qgcm91bmQgdGhlIGFjdGlvbiBidXR0b24gb24gdGhlIGxlZnQgc2lkZSAqL1xuXHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdW5zZXQ7XG5cdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB1bnNldDtcblx0XHR9XG5cdH1cblxuXHQmID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdyB7XG5cdFx0LyogSXQncyBhIHRleHQtbGVzcyBidXR0b24gYW5kIHNpbmNlIHRoZSBpY29uIGlzIHBvc2l0aW9uZWQgYWJzb2x1dGVseSBpbiBzdWNoIHNpdHVhdGlvbixcblx0XHRpdCBtdXN0IGdldCBzb21lIGFyYml0cmFyeSBtaW4td2lkdGguICovXG5cdFx0bWluLXdpZHRoOiB1bnNldDtcblxuXHRcdFtkaXI9XCJsdHJcIl0gJiB7XG5cdFx0XHQvKiBEb24ndCByb3VuZCB0aGUgYXJyb3cgYnV0dG9uIG9uIHRoZSBsZWZ0IHNpZGUgKi9cblx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHVuc2V0O1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdW5zZXQ7XG5cdFx0fVxuXG5cdFx0W2Rpcj1cInJ0bFwiXSAmIHtcblx0XHRcdC8qIERvbid0IHJvdW5kIHRoZSBhcnJvdyBidXR0b24gb24gdGhlIHJpZ2h0IHNpZGUgKi9cblx0XHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB1bnNldDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB1bnNldDtcblx0XHR9XG5cblx0XHQmIHN2ZyB7XG5cdFx0XHR3aWR0aDogdmFyKC0tY2stZHJvcGRvd24tYXJyb3ctc2l6ZSk7XG5cdFx0fVxuXHR9XG5cblx0LyogTWFrZSBzdXJlIHRoZSBkaXZpZGVyIHN0cmV0Y2hlcyAxMDAlIGhlaWdodCBvZiB0aGUgYnV0dG9uXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzEwOTM2ICovXG5cdCYgPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCg6Zm9jdXMpIHtcblx0XHRib3JkZXItdG9wLXdpZHRoOiAwcHg7XG5cdFx0Ym9yZGVyLWJvdHRvbS13aWR0aDogMHB4O1xuXHR9XG5cblx0LyogRG9uJ3Qgcm91bmQgdGhlIGJvdHRvbSBsZWZ0IGFuZCByaWdodCBjb3JuZXJzIG9mIHRoZSBidXR0b25zIHdoZW4gXCJvcGVuXCJcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvODE2ICovXG5cdCYuY2stc3BsaXRidXR0b25fb3BlbiB7XG5cdFx0QG1peGluIGNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0XHQmID4gLmNrLXNwbGl0YnV0dG9uX19hY3Rpb24ge1xuXHRcdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0fVxuXG5cdFx0XHQmID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdyB7XG5cdFx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qIFdoZW4gdGhlIHNwbGl0IGJ1dHRvbiBpcyBcIm9wZW5cIiAodGhlIGFycm93IGlzIG9uKSBvciBiZWluZyBob3ZlcmVkLCBpdCBzaG91bGQgZ2V0IHNvbWUgc3R5bGluZ1xuXHRhcyBhIHdob2xlLiBUaGUgYmFja2dyb3VuZCBvZiBib3RoIGJ1dHRvbnMgc2hvdWxkIHN0YW5kIG91dCBhbmQgdGhlcmUgc2hvdWxkIGJlIGEgdmlzdWFsXG5cdHNlcGFyYXRpb24gYmV0d2VlbiBib3RoIGJ1dHRvbnMuICovXG5cdCYuY2stc3BsaXRidXR0b25fb3Blbixcblx0Jjpob3ZlciB7XG5cdFx0LyogV2hlbiB0aGUgc3BsaXQgYnV0dG9uIGhvdmVyZWQgYXMgYSB3aG9sZSwgbm90IGFzIGluZGl2aWR1YWwgYnV0dG9ucy4gKi9cblx0XHQmID4gLmNrLWJ1dHRvbjpub3QoLmNrLW9uKTpub3QoLmNrLWRpc2FibGVkKTpub3QoOmhvdmVyKSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1zcGxpdC1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG5cdFx0fVxuXG5cdFx0LyogU3BsaXRidXR0b24gc2VwYXJhdG9yIG5lZWRzIHRvIGJlIHNldCB3aXRoIHRoZSA6OmFmdGVyIHBzZXVkb3NlbGVjdG9yXG5cdFx0dG8gZGlzcGxheSBwcm9wZXJseSB0aGUgYm9yZGVycyBvbiBmb2N1cyAqL1xuXHRcdCYgPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCguY2stZGlzYWJsZWQpOjphZnRlciB7XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHdpZHRoOiAxcHg7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1zcGxpdC1idXR0b24taG92ZXItYm9yZGVyKTtcblx0XHR9XG5cblx0XHQvKiBNYWtlIHN1cmUgdGhlIGRpdmlkZXIgYmV0d2VlbiB0aGUgYnV0dG9ucyBsb29rcyBmaW5lIHdoZW4gdGhlIGJ1dHRvbiBpcyBmb2N1c2VkICovXG5cdFx0JiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6Zm9jdXM6OmFmdGVyIHtcblx0XHRcdC0tY2stY29sb3Itc3BsaXQtYnV0dG9uLWhvdmVyLWJvcmRlcjogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0XHR9XG5cblx0XHRbZGlyPVwibHRyXCJdICYge1xuXHRcdFx0JiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCk6OmFmdGVyIHtcblx0XHRcdFx0bGVmdDogLTFweDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRbZGlyPVwicnRsXCJdICYge1xuXHRcdFx0JiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCk6OmFmdGVyIHtcblx0XHRcdFx0cmlnaHQ6IC0xcHg7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stdG9vbGJhci1kcm9wZG93biAuY2stdG9vbGJhciB7XG5cdGJvcmRlcjogMDtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi8uLi8uLi9taXhpbnMvX2Rpc2FibGVkLmNzc1wiO1xuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fYnV0dG9uLmNzc1wiO1xuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzXCI7XG5cbi8qXG4gKiBBbGwgbWVudSBidXR0b25zLlxuICovXG4uY2suY2stYnV0dG9uLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbiB7XG5cdHdpZHRoOiAxMDAlO1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpIGNhbGMoMiAqIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpKTtcblx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHQmOmZvY3VzIHtcblx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cblx0XHQmOm5vdCguY2stb24pIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWhvdmVyLWJhY2tncm91bmQpO1xuXHRcdH1cblx0fVxuXG5cdCYgPiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0ZmxleC1ncm93OiAxO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdH1cblxuXHQmLmNrLWRpc2FibGVkID4gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdEBtaXhpbiBjay1kaXNhYmxlZDtcblx0fVxuXG5cdC8qIFNwYWNpbmcgaW4gYnV0dG9ucyB0aGF0IG1pc3MgdGhlIGljb24uICovXG5cdCYuY2staWNvbi1zcGFjaW5nOm5vdCg6aGFzKC5jay1idXR0b25fX2ljb24pKSA+IC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1jay1pY29uLXNpemUpIC0gdmFyKC0tY2stc3BhY2luZy1zbWFsbCkpO1xuXHR9XG5cblx0JiA+IC5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b25fX2Fycm93IHtcblx0XHR3aWR0aDogdmFyKC0tY2stZHJvcGRvd24tYXJyb3ctc2l6ZSk7XG5cblx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuXG5cdFx0XHQvKiBOdWRnZSB0aGUgYXJyb3cgZ2VudGx5IHRvIHRoZSByaWdodCBiZWNhdXNlIGl0cyBjZW50ZXIgb2YgZ3Jhdml0eSBpcyB0byB0aGUgbGVmdCAqL1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBjYWxjKC0xICogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkpO1xuXHRcdH1cblxuXHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcblxuXHRcdFx0LyogTnVkZ2UgdGhlIGFycm93IGdlbnRseSB0byB0aGUgbGVmdCBiZWNhdXNlIGl0cyBjZW50ZXIgb2YgZ3Jhdml0eSBpcyB0byB0aGUgcmlnaHQgKGFmdGVyIHJvdGF0aW9uKS4gKi9cblx0XHRcdG1hcmdpbi1sZWZ0OiBjYWxjKC0xICogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkpO1xuXHRcdH1cblx0fVxuXG5cdCYuY2stZGlzYWJsZWQgPiAuY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uX19hcnJvdyB7XG5cdFx0QG1peGluIGNrLWRpc2FibGVkO1xuXHR9XG5cblx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdCY6bm90KC5jay1idXR0b25fd2l0aC10ZXh0KSB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdH1cblxuXHRcdCYgPiAuY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uX19hcnJvdyB7XG5cdFx0XHRyaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHRcdC8qIEEgc3BhY2UgdG8gYWNjb21tb2RhdGUgdGhlIHRyaWFuZ2xlLiAqL1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdH1cblx0fVxuXG5cdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHQmOm5vdCguY2stYnV0dG9uX3dpdGgtdGV4dCkge1xuXHRcdFx0cGFkZGluZy1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0fVxuXG5cdFx0JiA+IC5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b25fX2Fycm93IHtcblx0XHRcdGxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXG5cdFx0XHQvKiBBIHNwYWNlIHRvIGFjY29tbW9kYXRlIHRoZSB0cmlhbmdsZS4gKi9cblx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stZHJvcGRvd24tbWVudS1tZW51LWl0ZW0tbWluLXdpZHRoOiAxOGVtO1xufVxuXG4uY2suY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9faXRlbSB7XG5cdG1pbi13aWR0aDogdmFyKC0tY2stZHJvcGRvd24tbWVudS1tZW51LWl0ZW0tbWluLXdpZHRoKTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBMaXN0IGl0ZW0gYnV0dG9ucy5cbiAqL1xuLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19pdGVtX19idXR0b24ge1xuXHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdCYgPiAuY2stc3Bpbm5lci1jb250YWluZXIsXG5cdCYgPiAuY2stc3Bpbm5lci1jb250YWluZXIgLmNrLXNwaW5uZXIge1xuXHRcdC8qIFRoZXNlIHN0eWxlcyBjb3JyZXNwb25kIHRvIC5jay1pY29uIHNvIHRoYXQgdGhlIHNwaW5uZXIgc2VhbWxlc3NseSByZXBsYWNlcyB0aGUgaWNvbi4gKi9cblx0XHQtLWNrLXRvb2xiYXItc3Bpbm5lci1zaXplOiAyMHB4O1xuXHR9XG5cblx0JiA+IC5jay1zcGlubmVyLWNvbnRhaW5lciB7XG5cdFx0LyogVGhlc2UgbWFyZ2lucyBhcmUgdGhlIHNhbWUgYXMgZm9yIC5jay1pY29uLiAqL1xuXHRcdG1hcmdpbi1sZWZ0OiBjYWxjKC0xICogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkpO1xuXHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cblxuXHQvKlxuXHQgKiBIb3ZlcmVkIGl0ZW1zIGF1dG9tYXRpY2FsbHkgZ2V0IGZvY3VzZWQuIERlZmF1bHQgZm9jdXMgc3R5bGVzIGxvb2sgb2RkXG5cdCAqIHdoaWxlIG1vdmluZyBhY3Jvc3MgYSBodWdlIGxpc3Qgb2YgaXRlbXMgc28gbGV0J3MgZ2V0IHJpZCBvZiB0aGVtXG5cdCAqL1xuXHQmOmZvY3VzIHtcblx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cblx0XHQmOm5vdCguY2stb24pIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWhvdmVyLWJhY2tncm91bmQpO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uLy4uLy4uLy4uL21peGlucy9fcm91bmRlZC5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi8uLi9taXhpbnMvX3NoYWRvdy5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLWRyb3Bkb3duLW1lbnUtbWVudS1wYW5lbC1tYXgtd2lkdGg6IDc1dnc7XG59XG5cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWRyb3Bkb3duLW1lbnVfX25lc3RlZC1tZW51X19wYW5lbCB7XG5cdEBtaXhpbiBjay1kcm9wLXNoYWRvdztcblxuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1kcm9wZG93bi1wYW5lbC1iYWNrZ3JvdW5kKTtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItZHJvcGRvd24tcGFuZWwtYm9yZGVyKTtcblx0Ym90dG9tOiAwO1xuXHRoZWlnaHQ6IGZpdC1jb250ZW50O1xuXHRtYXgtd2lkdGg6IHZhcigtLWNrLWRyb3Bkb3duLW1lbnUtbWVudS1wYW5lbC1tYXgtd2lkdGgpO1xuXG5cdC8qIFJlc2V0IGJhbGxvb24gc3R5bGluZyAqL1xuXHQmOjphZnRlcixcblx0Jjo6YmVmb3JlIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0LyogQ29ybmVyIGJvcmRlciByYWRpdXMgY29uc2lzdGVudCB3aXRoIHRoZSBidXR0b24uICovXG5cdCYuY2stYmFsbG9vbi1wYW5lbF9lcyxcblx0Ji5jay1iYWxsb29uLXBhbmVsX3NlIHtcblx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHR9XG5cblx0Ji5jay1iYWxsb29uLXBhbmVsX3dzLFxuXHQmLmNrLWJhbGxvb24tcGFuZWxfc3cge1xuXHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG5cblx0Ji5jay1iYWxsb29uLXBhbmVsX2VuLFxuXHQmLmNrLWJhbGxvb24tcGFuZWxfbmUge1xuXHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdH1cblxuXHQmLmNrLWJhbGxvb24tcGFuZWxfd24sXG5cdCYuY2stYmFsbG9vbi1wYW5lbF9udyB7XG5cdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdH1cblxuXHQmOmZvY3VzIHtcblx0XHRvdXRsaW5lOiBub25lO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19mb2N1cy5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3NoYWRvdy5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2ctbWF4LXdpZHRoOiA2MDBweDtcblx0LS1jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nLW1heC1oZWlnaHQ6IDQwMHB4O1xuXHQtLWNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2ctYm9yZGVyLWNvbG9yOiBoc2woMjIwLCA2JSwgODElKTtcblx0LS1jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nLWNvZGUtYmFja2dyb3VuZC1jb2xvcjogaHNsKDBkZWcgMCUgOTIuOTQlKTtcblx0LS1jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nLWtiZC1zaGFkb3ctY29sb3I6IGhzbCgwZGVnIDAlIDYxJSk7XG59XG5cbi5jay5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nIC5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nX19jb250ZW50IHtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdG1heC13aWR0aDogdmFyKC0tY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZy1tYXgtd2lkdGgpO1xuXHRtYXgtaGVpZ2h0OiB2YXIoLS1jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nLW1heC1oZWlnaHQpO1xuXHRvdmVyZmxvdzogYXV0bztcblx0dXNlci1zZWxlY3Q6IHRleHQ7XG5cblx0Ym9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cblx0Jjpmb2N1cyB7XG5cdFx0QG1peGluIGNrLWZvY3VzLXJpbmc7XG5cdFx0QG1peGluIGNrLWJveC1zaGFkb3cgdmFyKC0tY2stZm9jdXMtb3V0ZXItc2hhZG93KTtcblx0fVxuXG5cdCoge1xuXHRcdHdoaXRlLXNwYWNlOiBub3JtYWw7XG5cdH1cblxuXHQvKiBIaWRlIHRoZSBtYWluIGxhYmVsIG9mIHRoZSBjb250ZW50IGNvbnRhaW5lci4gKi9cblx0JiAuY2stbGFiZWwge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHQmIGgzIHtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRmb250LXNpemU6IDEuMmVtO1xuXHR9XG5cblx0JiBoNCB7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0Zm9udC1zaXplOiAxZW07XG5cdH1cblxuXHQmIHAsXG5cdCYgaDMsXG5cdCYgaDQsXG5cdCYgdGFibGUge1xuXHRcdG1hcmdpbjogMWVtIDA7XG5cdH1cblxuXHQmIGRsIHtcblx0XHRkaXNwbGF5OiBncmlkO1xuXHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogMmZyIDFmcjtcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZy1ib3JkZXItY29sb3IpO1xuXHRcdGJvcmRlci1ib3R0b206IG5vbmU7XG5cblx0XHQmIGR0LCAmIGRkIHtcblx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nLWJvcmRlci1jb2xvcik7XG5cdFx0XHRwYWRkaW5nOiAuNGVtIDA7XG5cdFx0fVxuXG5cdFx0JiBkdCB7XG5cdFx0XHRncmlkLWNvbHVtbi1zdGFydDogMTtcblx0XHR9XG5cblx0XHQmIGRkIHtcblx0XHRcdGdyaWQtY29sdW1uLXN0YXJ0OiAyO1xuXHRcdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0fVxuXHR9XG5cblx0JiBrYmQsICYgY29kZSB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2ctY29kZS1iYWNrZ3JvdW5kLWNvbG9yKTtcblx0XHRwYWRkaW5nOiAuNGVtO1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0bGluZS1oZWlnaHQ6IDE7XG5cdFx0Ym9yZGVyLXJhZGl1czogMnB4O1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRmb250LXNpemU6IC45ZW07XG5cdH1cblxuXHQmIGNvZGUge1xuXHRcdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG5cdH1cblxuXHQmIGtiZCB7XG5cdFx0bWluLXdpZHRoOiAxLjhlbTtcblx0XHRib3gtc2hhZG93OiAwcHggMXB4IDFweCB2YXIoLS1jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nLWtiZC1zaGFkb3ctY29sb3IpO1xuXHRcdG1hcmdpbjogMCAxcHg7XG5cblx0XHQmICsga2JkIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAycHg7XG5cdFx0fVxuXHR9XG59XG5cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3JvdW5kZWQuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19kaXNhYmxlZC5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3NoYWRvdy5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX2ZvY3VzLmNzc1wiO1xuQGltcG9ydCBcIi4uLy4uL21peGlucy9fYnV0dG9uLmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stY29sb3ItZWRpdGFibGUtYmx1ci1zZWxlY3Rpb246IGhzbCgwLCAwJSwgODUlKTtcbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGU6bm90KC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZSkge1xuXHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzO1xuXG5cdCYuY2stZm9jdXNlZCB7XG5cdFx0QG1peGluIGNrLWZvY3VzLXJpbmc7XG5cdFx0QG1peGluIGNrLWJveC1zaGFkb3cgdmFyKC0tY2staW5uZXItc2hhZG93KTtcblx0fVxufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUge1xuXHRvdmVyZmxvdzogYXV0bztcblx0cGFkZGluZzogMCB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0Ym9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cblx0JltkaXI9XCJsdHJcIl0ge1xuXHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdH1cblxuXHQmW2Rpcj1cInJ0bFwiXSB7XG5cdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdH1cblxuXHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvaXNzdWVzLzExNiAqL1xuXHQmID4gKjpmaXJzdC1jaGlsZCB7XG5cdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdH1cblxuXHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy84NDcgKi9cblx0JiA+ICo6bGFzdC1jaGlsZCB7XG5cdFx0Lypcblx0XHQgKiBUaGlzIHZhbHVlIHNob3VsZCBtYXRjaCB3aXRoIHRoZSBkZWZhdWx0IG1hcmdpbnMgb2YgdGhlIGJsb2NrIGVsZW1lbnRzIChsaWtlIC5tZWRpYSBvciAuaW1hZ2UpXG5cdFx0ICogdG8gYXZvaWQgYSBjb250ZW50IGp1bXBpbmcgd2hlbiB0aGUgZmFrZSBzZWxlY3Rpb24gY29udGFpbmVyIHNob3dzIHVwIChTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTgyNSkuXG5cdFx0ICovXG5cdFx0bWFyZ2luLWJvdHRvbTogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdH1cblxuXHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy82NTE3ICovXG5cdCYuY2stYmx1cnJlZCA6OnNlbGVjdGlvbiB7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItZWRpdGFibGUtYmx1ci1zZWxlY3Rpb24pO1xuXHR9XG59XG5cbi8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvMTExICovXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay10b29sYmFyLWNvbnRhaW5lcltjbGFzcyo9XCJhcnJvd19uXCJdIHtcblx0Jjo6YWZ0ZXIge1xuXHRcdGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJhY2tncm91bmQpO1xuXHR9XG59XG5cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLXRvb2xiYXItY29udGFpbmVyW2NsYXNzKj1cImFycm93X3NcIl0ge1xuXHQmOjphZnRlciB7XG5cdFx0Ym9yZGVyLXRvcC1jb2xvcjogdmFyKC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZCk7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stZm9ybS1oZWFkZXItaGVpZ2h0OiA0NHB4O1xufVxuXG4uY2suY2stZm9ybV9faGVhZGVyIHtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdGhlaWdodDogdmFyKC0tY2stZm9ybS1oZWFkZXItaGVpZ2h0KTtcblx0bGluZS1oZWlnaHQ6IHZhcigtLWNrLWZvcm0taGVhZGVyLWhlaWdodCk7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cblx0JiA+IC5jay1pY29uIHtcblx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHR9XG5cblx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdH1cblx0fVxuXG5cdCYgLmNrLWZvcm1fX2hlYWRlcl9fbGFiZWwge1xuXHRcdC0tY2stZm9udC1zaXplLWJhc2U6IDE1cHg7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdH1cblxuXHQvKiBQYWRkaW5nIHdoZW4gYmFjayBidXR0b24gaXMgaGlkZGVuICovXG5cdCY6aGFzKC5jay1idXR0b24tYmFjay5jay1oaWRkZW4pIHtcblx0XHRwYWRkaW5nLWlubGluZTogdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdH1cblxuXHQvKiBQYWRkaW5nIHdoZW4gYmFjayBidXR0b24gaXMgdmlzaWJsZSAqL1xuXHQmOmhhcyguY2stYnV0dG9uLWJhY2s6bm90KC5jay1oaWRkZW4pKSB7XG5cdFx0cGFkZGluZy1pbmxpbmU6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpIHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG5cblx0JiA+IC5jay1idXR0b24tYmFjayB7XG5cdFx0bWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2staWNvbi1zaXplOiBjYWxjKHZhcigtLWNrLWxpbmUtaGVpZ2h0LWJhc2UpICogdmFyKC0tY2stZm9udC1zaXplLW5vcm1hbCkpO1xuXHQtLWNrLWljb24tZm9udC1zaXplOiAuODMzMzM1MDY5NGVtO1xufVxuXG4uY2suY2staWNvbiB7XG5cdHdpZHRoOiB2YXIoLS1jay1pY29uLXNpemUpO1xuXHRoZWlnaHQ6IHZhcigtLWNrLWljb24tc2l6ZSk7XG5cblx0LyogTXVsdGlwbGllZCBieSB0aGUgaGVpZ2h0IG9mIHRoZSBsaW5lIGluIFwicHhcIiBzaG91bGQgZ2l2ZSBTVkcgXCJ2aWV3cG9ydFwiIGRpbWVuc2lvbnMgKi9cblx0Zm9udC1zaXplOiB2YXIoLS1jay1pY29uLWZvbnQtc2l6ZSk7XG5cblx0LyogSW5oZXJpdCBjdXJzb3Igc3R5bGUgKCM1KS4gKi9cblx0Y3Vyc29yOiBpbmhlcml0O1xuXG5cdCYgKiB7XG5cdFx0LyogSW5oZXJpdCBjdXJzb3Igc3R5bGUgKCM1KS4gKi9cblx0XHRjdXJzb3I6IGluaGVyaXQ7XG5cdH1cblxuXHQvKiBBbGxvd3MgZHluYW1pYyBjb2xvcmluZyBvZiBhbiBpY29uIGJ5IGluaGVyaXRpbmcgaXRzIGNvbG9yIGZyb20gdGhlIHBhcmVudC4gKi9cblx0Ji5jay1pY29uX2luaGVyaXQtY29sb3Ige1xuXHRcdGNvbG9yOiBpbmhlcml0O1xuXG5cdFx0JiAqIHtcblx0XHRcdGNvbG9yOiBpbmhlcml0O1xuXG5cdFx0XHQmOm5vdChbZmlsbF0pIHtcblx0XHRcdFx0LyogTmVlZGVkIGJ5IEZGLiAqL1xuXHRcdFx0XHRmaWxsOiBjdXJyZW50Q29sb3I7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19yb3VuZGVkLmNzc1wiO1xuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fZm9jdXMuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19zaGFkb3cuY3NzXCI7XG5cbjpyb290IHtcblx0LS1jay1pbnB1dC13aWR0aDogMThlbTtcblxuXHQvKiBCYWNrd2FyZCBjb21wYXRpYmlsaXR5LiAqL1xuXHQtLWNrLWlucHV0LXRleHQtd2lkdGg6IHZhcigtLWNrLWlucHV0LXdpZHRoKTtcbn1cblxuLmNrLmNrLWlucHV0IHtcblx0QG1peGluIGNrLXJvdW5kZWQtY29ybmVycztcblxuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1pbnB1dC1iYWNrZ3JvdW5kKTtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItaW5wdXQtYm9yZGVyKTtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1leHRyYS10aW55KSB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdG1pbi13aWR0aDogdmFyKC0tY2staW5wdXQtd2lkdGgpO1xuXG5cdC8qIFRoaXMgaXMgaW1wb3J0YW50IHRvIHN0YXkgb2YgdGhlIHNhbWUgaGVpZ2h0IGFzIHN1cnJvdW5kaW5nIGJ1dHRvbnMgKi9cblx0bWluLWhlaWdodDogdmFyKC0tY2stdWktY29tcG9uZW50LW1pbi1oZWlnaHQpO1xuXG5cdC8qIEFwcGx5IHNvbWUgc21vb3RoIHRyYW5zaXRpb24gdG8gdGhlIGJveC1zaGFkb3cgYW5kIGJvcmRlci4gKi9cblx0dHJhbnNpdGlvbjogYm94LXNoYWRvdyAuMXMgZWFzZS1pbi1vdXQsIGJvcmRlciAuMXMgZWFzZS1pbi1vdXQ7XG5cblx0QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHR9XG5cblx0Jjpmb2N1cyB7XG5cdFx0QG1peGluIGNrLWZvY3VzLXJpbmc7XG5cdFx0QG1peGluIGNrLWJveC1zaGFkb3cgdmFyKC0tY2stZm9jdXMtb3V0ZXItc2hhZG93KTtcblx0fVxuXG5cdCZbcmVhZG9ubHldIHtcblx0XHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1pbnB1dC1kaXNhYmxlZC1ib3JkZXIpO1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWlucHV0LWRpc2FibGVkLWJhY2tncm91bmQpO1xuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1pbnB1dC1kaXNhYmxlZC10ZXh0KTtcblxuXHRcdCY6Zm9jdXMge1xuXHRcdFx0LyogVGhlIHJlYWQtb25seSBpbnB1dCBzaG91bGQgaGF2ZSBhIHNsaWdodGx5IGxlc3MgdmlzaWJsZSBzaGFkb3cgd2hlbiBmb2N1c2VkLiAqL1xuXHRcdFx0QG1peGluIGNrLWJveC1zaGFkb3cgdmFyKC0tY2stZm9jdXMtZGlzYWJsZWQtb3V0ZXItc2hhZG93KTtcblx0XHR9XG5cdH1cblxuXHQmLmNrLWVycm9yIHtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLWlucHV0LWVycm9yLWJvcmRlcik7XG5cdFx0YW5pbWF0aW9uOiBjay1pbnB1dC1zaGFrZSAuM3MgZWFzZSBib3RoO1xuXG5cdFx0QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblx0XHRcdGFuaW1hdGlvbjogbm9uZTtcblx0XHR9XG5cblx0XHQmOmZvY3VzIHtcblx0XHRcdEBtaXhpbiBjay1ib3gtc2hhZG93IHZhcigtLWNrLWZvY3VzLWVycm9yLW91dGVyLXNoYWRvdyk7XG5cdFx0fVxuXHR9XG59XG5cbkBrZXlmcmFtZXMgY2staW5wdXQtc2hha2Uge1xuXHQyMCUge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMnB4KTtcblx0fVxuXG5cdDQwJSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCk7XG5cdH1cblxuXHQ2MCUge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMXB4KTtcblx0fVxuXG5cdDgwJSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKDFweCk7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1sYWJlbCB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19yb3VuZGVkLmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stbGFiZWxlZC1maWVsZC12aWV3LXRyYW5zaXRpb246IC4xcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yNCwgMC45NSk7XG5cdC0tY2stbGFiZWxlZC1maWVsZC1lbXB0eS11bmZvY3VzZWQtbWF4LXdpZHRoOiAxMDAlIC0gMiAqIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0LS1jay1sYWJlbGVkLWZpZWxkLWxhYmVsLWRlZmF1bHQtcG9zaXRpb24teDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHQtLWNrLWxhYmVsZWQtZmllbGQtbGFiZWwtZGVmYXVsdC1wb3NpdGlvbi15OiBjYWxjKDAuNiAqIHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSk7XG5cdC0tY2stY29sb3ItbGFiZWxlZC1maWVsZC1sYWJlbC1iYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xufVxuXG4uY2suY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0QG1peGluIGNrLXJvdW5kZWQtY29ybmVycztcblxuXHQmID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cblx0XHQmID4gLmNrLmNrLWxhYmVsIHtcblx0XHRcdHRvcDogMHB4O1xuXG5cdFx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRcdGxlZnQ6IDBweDtcblx0XHRcdFx0dHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuXHRcdFx0XHQvKiBCeSBkZWZhdWx0LCBkaXNwbGF5IHRoZSBsYWJlbCBzY2FsZWQgZG93biBhYm92ZSB0aGUgZmllbGQuICovXG5cdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKSwgLTZweCkgc2NhbGUoLjc1KTtcblx0XHRcdH1cblxuXHRcdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0XHRyaWdodDogMHB4O1xuXHRcdFx0XHR0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDA7XG5cdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKGNhbGMoLTEgKiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSkpLCAtNnB4KSBzY2FsZSguNzUpO1xuXHRcdFx0fVxuXG5cdFx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblxuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGFiZWxlZC1maWVsZC1sYWJlbC1iYWNrZ3JvdW5kKTtcblx0XHRcdHBhZGRpbmc6IDAgY2FsYyguNSAqIHZhcigtLWNrLWZvbnQtc2l6ZS10aW55KSk7XG5cdFx0XHRsaW5lLWhlaWdodDogaW5pdGlhbDtcblx0XHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cblx0XHRcdC8qIFByZXZlbnQgb3ZlcmZsb3cgd2hlbiB0aGUgbGFiZWwgaXMgbG9uZ2VyIHRoYW4gdGhlIGlucHV0ICovXG5cdFx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cblx0XHRcdG1heC13aWR0aDogMTAwJTtcblxuXHRcdFx0dHJhbnNpdGlvbjpcblx0XHRcdFx0dHJhbnNmb3JtIHZhcigtLWNrLWxhYmVsZWQtZmllbGQtdmlldy10cmFuc2l0aW9uKSxcblx0XHRcdFx0cGFkZGluZyB2YXIoLS1jay1sYWJlbGVkLWZpZWxkLXZpZXctdHJhbnNpdGlvbiksXG5cdFx0XHRcdGJhY2tncm91bmQgdmFyKC0tY2stbGFiZWxlZC1maWVsZC12aWV3LXRyYW5zaXRpb24pO1xuXG5cdFx0XHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCYuY2stZXJyb3Ige1xuXHRcdCYgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLmNrLWxhYmVsIHtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWVycm9yKTtcblx0XHR9XG5cblx0XHQmIC5jay1pbnB1dDpub3QoW3JlYWRvbmx5XSkgKyAuY2suY2stbGFiZWwge1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtZXJyb3IpO1xuXHRcdH1cblx0fVxuXG5cdCYgLmNrLWxhYmVsZWQtZmllbGQtdmlld19fc3RhdHVzIHtcblx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS1zbWFsbCk7XG5cdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cblx0XHQvKiBMZXQgdGhlIGluZm8gd3JhcCB0byB0aGUgbmV4dCBsaW5lIHRvIGF2b2lkIHN0cmV0Y2hpbmcgdGhlIGxheW91dCBob3Jpem9udGFsbHkuXG5cdFx0VGhlIHN0YXR1cyBjb3VsZCBiZSB2ZXJ5IGxvbmcuICovXG5cdFx0d2hpdGUtc3BhY2U6IG5vcm1hbDtcblxuXHRcdCYuY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXNfZXJyb3Ige1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtZXJyb3IpO1xuXHRcdH1cblx0fVxuXG5cdC8qIERpc2FibGVkIGZpZWxkcyBhbmQgZmllbGRzIHRoYXQgaGF2ZSBubyBmb2N1cyBzaG91bGQgZmFkZSBvdXQuICovXG5cdCYuY2stZGlzYWJsZWQgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLmNrLWxhYmVsLFxuXHQmLmNrLWxhYmVsZWQtZmllbGQtdmlld19lbXB0eTpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlld19mb2N1c2VkKSA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2suY2stbGFiZWwge1xuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1pbnB1dC1kaXNhYmxlZC10ZXh0KTtcblx0fVxuXG5cdC8qIEZpZWxkcyB0aGF0IGFyZSBkaXNhYmxlZCBvciBub3QgZm9jdXNlZCBhbmQgd2l0aG91dCBhIHBsYWNlaG9sZGVyIHNob3VsZCBoYXZlIGZ1bGwtc2l6ZWQgbGFiZWxzLiAqL1xuXHQvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eSAqL1xuXHQmLmNrLWRpc2FibGVkLmNrLWxhYmVsZWQtZmllbGQtdmlld19lbXB0eTpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlld19wbGFjZWhvbGRlcikgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLmNrLWxhYmVsLFxuXHQmLmNrLWxhYmVsZWQtZmllbGQtdmlld19lbXB0eTpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlld19mb2N1c2VkKTpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlld19wbGFjZWhvbGRlcik6bm90KC5jay1lcnJvcikgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLmNrLWxhYmVsIHtcblx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS1jay1sYWJlbGVkLWZpZWxkLWxhYmVsLWRlZmF1bHQtcG9zaXRpb24teCksIHZhcigtLWNrLWxhYmVsZWQtZmllbGQtbGFiZWwtZGVmYXVsdC1wb3NpdGlvbi15KSkgc2NhbGUoMSk7XG5cdFx0fVxuXG5cdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoY2FsYygtMSAqIHZhcigtLWNrLWxhYmVsZWQtZmllbGQtbGFiZWwtZGVmYXVsdC1wb3NpdGlvbi14KSksIHZhcigtLWNrLWxhYmVsZWQtZmllbGQtbGFiZWwtZGVmYXVsdC1wb3NpdGlvbi15KSkgc2NhbGUoMSk7XG5cdFx0fVxuXG5cdFx0LyogQ29tcGVuc2F0ZSBmb3IgdGhlIGRlZmF1bHQgdHJhbnNsYXRlIHBvc2l0aW9uLiAqL1xuXHRcdG1heC13aWR0aDogY2FsYyh2YXIoLS1jay1sYWJlbGVkLWZpZWxkLWVtcHR5LXVuZm9jdXNlZC1tYXgtd2lkdGgpKTtcblxuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdHBhZGRpbmc6IDA7XG5cdH1cblxuXHQvKi0tLS0tLSBEcm9wZG93blZpZXcgaW50ZWdyYXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQvKiBNYWtlIHN1cmUgZHJvcGRvd24nIGJhY2tncm91bmQgY29sb3IgaW4gYW55IG9mIGRyb3Bkb3duJ3Mgc3RhdGUgZG9lcyBub3QgY29sbGlkZSB3aXRoIGxhYmVsZWQgZmllbGQuICovXG5cdCYgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLWRyb3Bkb3duID4gLmNrLmNrLWJ1dHRvbiB7XG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdH1cblxuXHQvKiBXaGVuIHRoZSBkcm9wZG93biBpcyBcImVtcHR5XCIsIHRoZSBsYWJlbGVkIGZpZWxkIGxhYmVsIHJlcGxhY2VzIGl0cyBsYWJlbC4gKi9cblx0Ji5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZW1wdHkgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLWRyb3Bkb3duID4gLmNrLWJ1dHRvbiA+IC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG5cblx0LyogTWFrZSBzdXJlIHRoZSBsYWJlbCBvZiB0aGUgZW1wdHksIHVuZm9jdXNlZCBpbnB1dCBkb2VzIG5vdCBjb3ZlciB0aGUgZHJvcGRvd24gYXJyb3cuICovXG5cdCYuY2stbGFiZWxlZC1maWVsZC12aWV3X2VtcHR5Om5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3X2ZvY3VzZWQpOm5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3X3BsYWNlaG9sZGVyKSA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2stZHJvcGRvd24gKyAuY2stbGFiZWwge1xuXHRcdG1heC13aWR0aDogY2FsYyh2YXIoLS1jay1sYWJlbGVkLWZpZWxkLWVtcHR5LXVuZm9jdXNlZC1tYXgtd2lkdGgpIC0gdmFyKC0tY2stZHJvcGRvd24tYXJyb3ctc2l6ZSkgLSB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSk7XG5cdH1cblxuXHQmLmNrLWxhYmVsZWQtZmllbGQtdmlld19mdWxsLXdpZHRoIHtcblx0XHRmbGV4LWdyb3c6IDE7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1sYWJlbGVkLWlucHV0IC5jay1sYWJlbGVkLWlucHV0X19zdGF0dXMge1xuXHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS1zbWFsbCk7XG5cdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXG5cdC8qIExldCB0aGUgaW5mbyB3cmFwIHRvIHRoZSBuZXh0IGxpbmUgdG8gYXZvaWQgc3RyZXRjaGluZyB0aGUgbGF5b3V0IGhvcml6b250YWxseS5cblx0VGhlIHN0YXR1cyBjb3VsZCBiZSB2ZXJ5IGxvbmcuICovXG5cdHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG5cbi5jay5jay1sYWJlbGVkLWlucHV0IC5jay1sYWJlbGVkLWlucHV0X19zdGF0dXNfZXJyb3Ige1xuXHRjb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1lcnJvcik7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19kaXNhYmxlZC5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3JvdW5kZWQuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19zaGFkb3cuY3NzXCI7XG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcblxuLmNrLmNrLWxpc3Qge1xuXHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzO1xuXG5cdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGlzdC1iYWNrZ3JvdW5kKTtcblxuXHQvKiBBIHNwYWNpbmcgYXQgdGhlIGJlZ2lubmluZyBhbmQgZW5kIG9mIHRoZSBsaXN0ICovXG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpIDA7XG59XG5cbi5jay5jay1saXN0X19pdGVtIHtcblx0Y3Vyc29yOiBkZWZhdWx0O1xuXG5cdC8qIEFsbW9zdCBhcyB3aWRlIGFzIG1lbnUgYmFyIGl0ZW1zLiAqL1xuXHRtaW4td2lkdGg6IDE1ZW07XG5cblx0JiA+IC5jay1idXR0b246bm90KC5jay1saXN0LWl0ZW0tYnV0dG9uKSB7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy10aW55KSBjYWxjKDIgKiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSk7XG5cdFx0bWluLWhlaWdodDogdW5zZXQ7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0fVxuXG5cdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0fVxuXG5cdFx0JiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LWhlYWRpbmcvaXNzdWVzLzYzICovXG5cdFx0XHRsaW5lLWhlaWdodDogY2FsYyh2YXIoLS1jay1saW5lLWhlaWdodC1iYXNlKSAqIHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSk7XG5cdFx0fVxuXG5cdFx0JjphY3RpdmUge1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHR9XG5cblx0XHQmLmNrLW9uIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWxpc3QtYnV0dG9uLW9uLWJhY2tncm91bmQpO1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWxpc3QtYnV0dG9uLW9uLXRleHQpO1xuXG5cdFx0XHQmOmFjdGl2ZSB7XG5cdFx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0XHR9XG5cblx0XHRcdCY6aG92ZXI6bm90KC5jay1kaXNhYmxlZCkge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saXN0LWJ1dHRvbi1vbi1iYWNrZ3JvdW5kLWZvY3VzKTtcblx0XHRcdH1cblxuXHRcdFx0Jjpmb2N1czpub3QoLmNrLWRpc2FibGVkKSB7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmOmhvdmVyOm5vdCguY2stZGlzYWJsZWQpIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWxpc3QtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQpO1xuXHRcdH1cblx0fVxuXG5cdC8qIEl0J3MgdW5uZWNlc3NhcnkgdG8gY2hhbmdlIHRoZSBiYWNrZ3JvdW5kL3RleHQgb2YgYSBzd2l0Y2ggdG9nZ2xlOyBpdCBoYXMgZGlmZmVyZW50IHdheXNcblx0b2YgY29udmV5aW5nIGl0cyBzdGF0ZSAobGlrZSB0aGUgc3dpdGNoZXIpICovXG5cdCYgPiAuY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbiB7XG5cdFx0Ji5jay1vbiB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saXN0LWJhY2tncm91bmQpO1xuXHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cblx0XHRcdCY6aG92ZXI6bm90KC5jay1kaXNhYmxlZCkge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saXN0LWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0XHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5jay1saXN0IC5jay1saXN0X19ncm91cCB7XG5cdHBhZGRpbmctdG9wOiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cblx0LyogTGlzdHMgY29tZSB3aXRoIGFuIGlubmVyIHZlcnRpY2FsIHBhZGRpbmcuIERvbid0IGR1cGxpY2F0ZSBpdC4gKi9cblx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0cGFkZGluZy10b3A6IDA7XG5cdH1cblxuXHQvKiBUaGUgZ3JvdXAgc2hvdWxkIGhhdmUgYSBib3JkZXIgd2hlbiBpdCdzIG5vdCB0aGUgZmlyc3QgaXRlbS4gKi9cblx0Kjpub3QoLmNrLWhpZGRlbikgfiAmIHtcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHR9XG5cblx0JiA+IC5jay1sYWJlbCB7XG5cdFx0Zm9udC1zaXplOiAxMXB4O1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSAwO1xuXHR9XG59XG5cbi5jay5jay1saXN0X19zZXBhcmF0b3Ige1xuXHRoZWlnaHQ6IDFweDtcblx0d2lkdGg6IDEwMCU7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblxuXHQvKiBHaXZlIHRoZSBzZXBhcmF0b3Igc29tZSBhaXIgKi9cblx0bWFyZ2luOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSAwO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLW1lbnUtYmFyIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC13cmFwOiB3cmFwO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRnYXA6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci10b29sYmFyLWJvcmRlcik7XG5cdHdpZHRoOiAxMDAlO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLW1lbnUtYmFyX19tZW51IHtcblx0LyogRW5hYmxlIGZvbnQgc2l6ZSBpbmhlcml0YW5jZSwgd2hpY2ggYWxsb3dzIGZsdWlkIFVJIHNjYWxpbmcuICovXG5cdGZvbnQtc2l6ZTogaW5oZXJpdDtcblxuXHQmLmNrLW1lbnUtYmFyX19tZW51X3RvcC1sZXZlbCB7XG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19kaXNhYmxlZC5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi9taXhpbnMvX2J1dHRvbi5jc3NcIjtcbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuXG4uY2suY2stbWVudS1iYXJfX21lbnUge1xuXHQvKlxuXHQgKiBBbGwgbWVudSBidXR0b25zLlxuXHQgKi9cblx0JiA+IC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uIHtcblx0XHR3aWR0aDogMTAwJTtcblxuXHRcdCYgPiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRmbGV4LWdyb3c6IDE7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0fVxuXG5cdFx0Ji5jay1kaXNhYmxlZCA+IC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdEBtaXhpbiBjay1kaXNhYmxlZDtcblx0XHR9XG5cblx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHQmOm5vdCguY2stYnV0dG9uX3dpdGgtdGV4dCkge1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdCY6bm90KC5jay1idXR0b25fd2l0aC10ZXh0KSB7XG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qXG5cdCAqIFRvcC1sZXZlbCBtZW51IGJ1dHRvbnMgb25seS5cblx0ICovXG5cdCYuY2stbWVudS1iYXJfX21lbnVfdG9wLWxldmVsID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b24ge1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRtaW4taGVpZ2h0OiB1bnNldDtcblxuXHRcdCYgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0d2lkdGg6IHVuc2V0O1xuXHRcdFx0bGluZS1oZWlnaHQ6IHVuc2V0O1xuXG5cdFx0XHQvKlxuXHRcdFx0ICogVG9wLWxldmVsIGJ1dHRvbnMgZG9uJ3QgdXNlIGVsbGlwc2lzIGFuZCBvdmVyZmxvdzogaGlkZGVuIGNsaXBzIGRlc2NlbmRlcnMuXG5cdFx0XHQgKiAgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE3NDIyLlxuXHRcdFx0ICovXG5cdFx0XHRvdmVyZmxvdzogdmlzaWJsZTtcblx0XHR9XG5cblx0XHQmLmNrLW9uIHtcblx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblx0XHR9XG5cblx0XHQmIC5jay1pY29uIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG5cblx0Lypcblx0ICogU3ViLW1lbnUgYnV0dG9ucy5cblx0ICovXG5cdCY6bm90KC5jay1tZW51LWJhcl9fbWVudV90b3AtbGV2ZWwpIC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uIHtcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdFx0JiA+IC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uX19hcnJvdyB7XG5cdFx0XHR3aWR0aDogdmFyKC0tY2stZHJvcGRvd24tYXJyb3ctc2l6ZSk7XG5cblx0XHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcblxuXHRcdFx0XHQvKiBBIHNwYWNlIHRvIGFjY29tbW9kYXRlIHRoZSB0cmlhbmdsZS4gKi9cblx0XHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXG5cdFx0XHRcdC8qIE51ZGdlIHRoZSBhcnJvdyBnZW50bHkgdG8gdGhlIHJpZ2h0IGJlY2F1c2UgaXRzIGNlbnRlciBvZiBncmF2aXR5IGlzIHRvIHRoZSBsZWZ0ICovXG5cdFx0XHRcdG1hcmdpbi1yaWdodDogY2FsYygtMSAqIHZhcigtLWNrLXNwYWNpbmctc21hbGwpKTtcblx0XHRcdH1cblxuXHRcdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG5cblx0XHRcdFx0bGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHRcdFx0LyogQSBzcGFjZSB0byBhY2NvbW1vZGF0ZSB0aGUgdHJpYW5nbGUuICovXG5cdFx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cblx0XHRcdFx0LyogTnVkZ2UgdGhlIGFycm93IGdlbnRseSB0byB0aGUgbGVmdCBiZWNhdXNlIGl0cyBjZW50ZXIgb2YgZ3Jhdml0eSBpcyB0byB0aGUgcmlnaHQgKGFmdGVyIHJvdGF0aW9uKS4gKi9cblx0XHRcdFx0bWFyZ2luLWxlZnQ6IGNhbGMoLTEgKiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ji5jay1kaXNhYmxlZCA+IC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uX19hcnJvdyB7XG5cdFx0XHRAbWl4aW4gY2stZGlzYWJsZWQ7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stbWVudS1iYXItbWVudS1pdGVtLW1pbi13aWR0aDogMThlbTtcbn1cblxuLmNrLmNrLW1lbnUtYmFyX19tZW51IC5jay5jay1tZW51LWJhcl9fbWVudV9faXRlbSB7XG5cdG1pbi13aWR0aDogdmFyKC0tY2stbWVudS1iYXItbWVudS1pdGVtLW1pbi13aWR0aCk7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcblxuLmNrLmNrLW1lbnUtYmFyX19tZW51IHtcblx0Lypcblx0ICogTGlzdCBpdGVtIGJ1dHRvbnMuXG5cdCAqL1xuXHQmIC5jay1idXR0b24uY2stbWVudS1iYXJfX21lbnVfX2l0ZW1fX2J1dHRvbiB7XG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHRcdCYgPiAuY2stc3Bpbm5lci1jb250YWluZXIsXG5cdFx0JiA+IC5jay1zcGlubmVyLWNvbnRhaW5lciAuY2stc3Bpbm5lciB7XG5cdFx0XHQvKiBUaGVzZSBzdHlsZXMgY29ycmVzcG9uZCB0byAuY2staWNvbiBzbyB0aGF0IHRoZSBzcGlubmVyIHNlYW1sZXNzbHkgcmVwbGFjZXMgdGhlIGljb24uICovXG5cdFx0XHQtLWNrLXRvb2xiYXItc3Bpbm5lci1zaXplOiAyMHB4O1xuXHRcdH1cblxuXHRcdCYgPiAuY2stc3Bpbm5lci1jb250YWluZXIge1xuXHRcdFx0LyogVGhpcyBlbnN1cmVzIG1hcmdpbnMgY29ycmVzcG9uZGluZyB0byB0aGUgLmNrLWljb24uICovXG5cdFx0XHRmb250LXNpemU6IHZhcigtLWNrLWljb24tZm9udC1zaXplKTtcblxuXHRcdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRcdH1cblxuXHRcdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3JvdW5kZWQuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19zaGFkb3cuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19mb2N1cy5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLW1lbnUtYmFyLW1lbnUtcGFuZWwtbWF4LXdpZHRoOiA3NXZ3O1xufVxuXG4uY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsIHtcblx0QG1peGluIGNrLXJvdW5kZWQtY29ybmVycztcblx0QG1peGluIGNrLWRyb3Atc2hhZG93O1xuXG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWRyb3Bkb3duLXBhbmVsLWJhY2tncm91bmQpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1kcm9wZG93bi1wYW5lbC1ib3JkZXIpO1xuXHRib3R0b206IDA7XG5cdGhlaWdodDogZml0LWNvbnRlbnQ7XG5cdG1heC13aWR0aDogdmFyKC0tY2stbWVudS1iYXItbWVudS1wYW5lbC1tYXgtd2lkdGgpO1xuXG5cdC8qIENvcm5lciBib3JkZXIgcmFkaXVzIGNvbnNpc3RlbnQgd2l0aCB0aGUgYnV0dG9uLiAqL1xuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9lcyxcblx0Ji5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fc2Uge1xuXHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdH1cblxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl93cyxcblx0Ji5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fc3cge1xuXHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG5cblx0Ji5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fZW4sXG5cdCYuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX25lIHtcblx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHR9XG5cblx0Ji5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fd24sXG5cdCYuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX253IHtcblx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblx0fVxuXG5cdCY6Zm9jdXMge1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdH1cbn1cblxuLmNrLmNrLW1lbnUtYmFyIHtcblx0JiAuY2stbGlzdC1pdGVtLWJ1dHRvbiB7XG5cdFx0Jjpmb2N1cyxcblx0XHQmOmFjdGl2ZSB7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHR9XG5cdH1cblxuXHQmLmNrLW1lbnUtYmFyX2ZvY3VzLWJvcmRlci1lbmFibGVkIC5jay1saXN0LWl0ZW0tYnV0dG9uIHtcblx0XHQmOmZvY3VzLFxuXHRcdCY6YWN0aXZlIHtcblx0XHRcdC8qIEZpeCB0cnVuY2F0ZWQgc2hhZG93cyBkdWUgdG8gcmVuZGVyaW5nIG9yZGVyLiAqL1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0ei1pbmRleDogMjtcblxuXHRcdFx0QG1peGluIGNrLWZvY3VzLXJpbmc7XG5cdFx0XHRAbWl4aW4gY2stYm94LXNoYWRvdyB2YXIoLS1jay1mb2N1cy1vdXRlci1zaGFkb3cpO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fcm91bmRlZC5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3NoYWRvdy5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoOiAxcHg7XG5cdC0tY2stYmFsbG9vbi1hcnJvdy1vZmZzZXQ6IDJweDtcblx0LS1jay1iYWxsb29uLWFycm93LWhlaWdodDogMTBweDtcblx0LS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGg6IDhweDtcblx0LS1jay1iYWxsb29uLWFycm93LWRyb3Atc2hhZG93OiAwIDJweCAycHggdmFyKC0tY2stY29sb3Itc2hhZG93LWRyb3ApO1xufVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbCB7XG5cdEBtaXhpbiBjay1yb3VuZGVkLWNvcm5lcnM7XG5cdEBtaXhpbiBjay1kcm9wLXNoYWRvdztcblxuXHRtaW4taGVpZ2h0OiAxNXB4O1xuXG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJhY2tncm91bmQpO1xuXHRib3JkZXI6IHZhcigtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1jay1jb2xvci1wYW5lbC1ib3JkZXIpO1xuXG5cdCYuY2stYmFsbG9vbi1wYW5lbF93aXRoLWFycm93IHtcblx0XHQmOjpiZWZvcmUsXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0d2lkdGg6IDA7XG5cdFx0XHRoZWlnaHQ6IDA7XG5cdFx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdH1cblx0fVxuXG5cdCZbY2xhc3MqPVwiYXJyb3dfblwiXSB7XG5cdFx0Jjo6YmVmb3JlLFxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGJvcmRlci13aWR0aDogMCB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpO1xuXHRcdH1cblxuXHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJvcmRlcikgdHJhbnNwYXJlbnQ7XG5cdFx0XHRtYXJnaW4tdG9wOiBjYWxjKCAtMSAqIHZhcigtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoKSApO1xuXHRcdH1cblxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdmFyKC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZCkgdHJhbnNwYXJlbnQ7XG5cdFx0XHRtYXJnaW4tdG9wOiBjYWxjKCB2YXIoLS1jay1iYWxsb29uLWFycm93LW9mZnNldCkgLSB2YXIoLS1jay1iYWxsb29uLWJvcmRlci13aWR0aCkgKTtcblx0XHR9XG5cdH1cblxuXHQmW2NsYXNzKj1cImFycm93X3NcIl0ge1xuXHRcdCY6OmJlZm9yZSxcblx0XHQmOjphZnRlciB7XG5cdFx0XHRib3JkZXItd2lkdGg6IHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpIDAgdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKTtcblx0XHR9XG5cblx0XHQmOjpiZWZvcmUge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1jb2xvci1wYW5lbC1ib3JkZXIpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuXHRcdFx0ZmlsdGVyOiBkcm9wLXNoYWRvdyh2YXIoLS1jay1iYWxsb29uLWFycm93LWRyb3Atc2hhZG93KSk7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiBjYWxjKCAtMSAqIHZhcigtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoKSApO1xuXHRcdH1cblxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZCkgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiBjYWxjKCB2YXIoLS1jay1iYWxsb29uLWFycm93LW9mZnNldCkgLSB2YXIoLS1jay1iYWxsb29uLWJvcmRlci13aWR0aCkgKTtcblx0XHR9XG5cdH1cblxuXHQmW2NsYXNzKj1cImFycm93X2VcIl0ge1xuXHRcdCY6OmJlZm9yZSxcblx0XHQmOjphZnRlciB7XG5cdFx0XHRib3JkZXItd2lkdGg6IHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkgMCB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KTtcblx0XHR9XG5cblx0XHQmOjpiZWZvcmUge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS1jay1jb2xvci1wYW5lbC1ib3JkZXIpO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBjYWxjKCAtMSAqIHZhcigtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoKSApO1xuXHRcdH1cblxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdmFyKC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZCk7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGNhbGMoIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctb2Zmc2V0KSAtIHZhcigtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoKSApO1xuXHRcdH1cblx0fVxuXG5cdCZbY2xhc3MqPVwiYXJyb3dfd1wiXSB7XG5cdFx0Jjo6YmVmb3JlLFxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGJvcmRlci13aWR0aDogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkgdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSAwO1xuXHRcdH1cblxuXHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJvcmRlcikgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRtYXJnaW4tbGVmdDogY2FsYyggLTEgKiB2YXIoLS1jay1iYWxsb29uLWJvcmRlci13aWR0aCkgKTtcblx0XHR9XG5cblx0XHQmOjphZnRlciB7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJhY2tncm91bmQpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuXHRcdFx0bWFyZ2luLWxlZnQ6IGNhbGMoIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctb2Zmc2V0KSAtIHZhcigtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoKSApO1xuXHRcdH1cblx0fVxuXG5cdCYuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19uIHtcblx0XHQmOjpiZWZvcmUsXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0bGVmdDogNTAlO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdHRvcDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0fVxuXHR9XG5cblx0Ji5jay1iYWxsb29uLXBhbmVsX2Fycm93X253IHtcblx0XHQmOjpiZWZvcmUsXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0bGVmdDogY2FsYygyICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHR0b3A6IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdH1cblx0fVxuXG5cdCYuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19uZSB7XG5cdFx0Jjo6YmVmb3JlLFxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdHJpZ2h0OiBjYWxjKDIgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdHRvcDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0fVxuXHR9XG5cblx0Ji5jay1iYWxsb29uLXBhbmVsX2Fycm93X3Mge1xuXHRcdCY6OmJlZm9yZSxcblx0XHQmOjphZnRlciB7XG5cdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHRtYXJnaW4tbGVmdDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0Ym90dG9tOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHR9XG5cdH1cblxuXHQmLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfc3cge1xuXHRcdCY6OmJlZm9yZSxcblx0XHQmOjphZnRlciB7XG5cdFx0XHRsZWZ0OiBjYWxjKDIgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdGJvdHRvbTogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0fVxuXHR9XG5cblx0Ji5jay1iYWxsb29uLXBhbmVsX2Fycm93X3NlIHtcblx0XHQmOjpiZWZvcmUsXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0cmlnaHQ6IGNhbGMoMiAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0Ym90dG9tOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHR9XG5cdH1cblxuXHQmLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfc21lIHtcblx0XHQmOjpiZWZvcmUsXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0cmlnaHQ6IDI1JTtcblx0XHRcdG1hcmdpbi1yaWdodDogY2FsYygyICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHRib3R0b206IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdH1cblx0fVxuXG5cdCYuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zbXcge1xuXHRcdCY6OmJlZm9yZSxcblx0XHQmOjphZnRlciB7XG5cdFx0XHRsZWZ0OiAyNSU7XG5cdFx0XHRtYXJnaW4tbGVmdDogY2FsYygyICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHRib3R0b206IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdH1cblx0fVxuXG5cdCYuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19ubWUge1xuXHRcdCY6OmJlZm9yZSxcblx0XHQmOjphZnRlciB7XG5cdFx0XHRyaWdodDogMjUlO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBjYWxjKDIgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdHRvcDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0fVxuXHR9XG5cblx0Ji5jay1iYWxsb29uLXBhbmVsX2Fycm93X25tdyB7XG5cdFx0Jjo6YmVmb3JlLFxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGxlZnQ6IDI1JTtcblx0XHRcdG1hcmdpbi1sZWZ0OiBjYWxjKDIgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdHRvcDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0fVxuXHR9XG5cblx0Ji5jay1iYWxsb29uLXBhbmVsX2Fycm93X2Uge1xuXHRcdCY6OmJlZm9yZSxcblx0XHQmOjphZnRlciB7XG5cdFx0XHRyaWdodDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0XHRtYXJnaW4tdG9wOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHR0b3A6IDUwJTtcblx0XHR9XG5cdH1cblxuXHQmLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfdyB7XG5cdFx0Jjo6YmVmb3JlLFxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGxlZnQ6IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdFx0bWFyZ2luLXRvcDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2sgLmNrLWJhbGxvb24tcm90YXRvcl9fbmF2aWdhdGlvbiB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXRvb2xiYXItYmFja2dyb3VuZCk7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci10b29sYmFyLWJvcmRlcik7XG5cdHBhZGRpbmc6IDAgdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cblx0LyogTGV0J3Mga2VlcCBzaW1pbGFyIGFwcGVhcmFuY2UgdG8gYGNrLXRvb2xiYXJgLiAqL1xuXHQmID4gKiB7XG5cdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHRtYXJnaW4tYm90dG9tOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuXG5cdC8qIEdpdmVzIGNvdW50ZXIgbW9yZSBicmVhdGggdGhhbiBidXR0b25zLiAqL1xuXHQmIC5jay1iYWxsb29uLXJvdGF0b3JfX2NvdW50ZXIge1xuXHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHQvKiBXZSBuZWVkIHRvIHVzZSBzbWFsbGVyIG1hcmdpbiBiZWNhdXNlIG9mIHByZXZpb3VzIGJ1dHRvbidzIHJpZ2h0IG1hcmdpbi4gKi9cblx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cbn1cblxuLmNrIC5jay1iYWxsb29uLXJvdGF0b3JfX2NvbnRlbnQge1xuXG5cdC8qIERpc2FibGUgZGVmYXVsdCBhbm5vdGF0aW9uIHNoYWRvdyBpbnNpZGUgcm90YXRvciB3aXRoIGZha2UgcGFuZWxzLiAqL1xuXHQmIC5jay5jay1hbm5vdGF0aW9uLXdyYXBwZXIge1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3NoYWRvdy5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtaG9yaXpvbnRhbDogNnB4O1xuXHQtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtdmVydGljYWw6IDZweDtcbn1cblxuLyogTGV0J3MgdXNlIGAuY2stYmFsbG9vbi1wYW5lbGAgYXBwZWFyYW5jZS4gU2VlOiBiYWxsb29ucGFuZWwuY3NzLiAqL1xuLmNrIC5jay1mYWtlLXBhbmVsIGRpdiB7XG5cdEBtaXhpbiBjay1kcm9wLXNoYWRvdztcblxuXHRtaW4taGVpZ2h0OiAxNXB4O1xuXG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJhY2tncm91bmQpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1wYW5lbC1ib3JkZXIpO1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblxuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xufVxuXG4uY2sgLmNrLWZha2UtcGFuZWwgZGl2Om50aC1jaGlsZCggMSApIHtcblx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtaG9yaXpvbnRhbCk7XG5cdG1hcmdpbi10b3A6IHZhcigtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtdmVydGljYWwpO1xufVxuXG4uY2sgLmNrLWZha2UtcGFuZWwgZGl2Om50aC1jaGlsZCggMiApIHtcblx0bWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC1ob3Jpem9udGFsKSAqIDIpO1xuXHRtYXJnaW4tdG9wOiBjYWxjKHZhcigtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtdmVydGljYWwpICogMik7XG59XG4uY2sgLmNrLWZha2UtcGFuZWwgZGl2Om50aC1jaGlsZCggMyApIHtcblx0bWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC1ob3Jpem9udGFsKSAqIDMpO1xuXHRtYXJnaW4tdG9wOiBjYWxjKHZhcigtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtdmVydGljYWwpICogMyk7XG59XG5cbi8qIElmIGJhbGxvb24gaXMgcG9zaXRpb25lZCBhYm92ZSBlbGVtZW50LCB3ZSBuZWVkIHRvIG1vdmUgZmFrZSBwYW5lbCB0byB0aGUgdG9wLiAqL1xuLmNrIC5jay1iYWxsb29uLXBhbmVsX2Fycm93X3MgKyAuY2stZmFrZS1wYW5lbCxcbi5jayAuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zZSArIC5jay1mYWtlLXBhbmVsLFxuLmNrIC5jay1iYWxsb29uLXBhbmVsX2Fycm93X3N3ICsgLmNrLWZha2UtcGFuZWwge1xuXHQtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtdmVydGljYWw6IC02cHg7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19zaGFkb3cuY3NzXCI7XG5cbi5jay5jay1zdGlja3ktcGFuZWwge1xuXHQmIC5jay1zdGlja3ktcGFuZWxfX2NvbnRlbnRfc3RpY2t5IHtcblx0XHRAbWl4aW4gY2stZHJvcC1zaGFkb3c7XG5cblx0XHRib3JkZXItd2lkdGg6IDAgMXB4IDFweDtcblx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19yd2QuY3NzXCI7XG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcblxuLmNrLXZlcnRpY2FsLWZvcm0gPiAuY2stYnV0dG9uOm50aC1sYXN0LWNoaWxkKDIpOjphZnRlciB7XG5cdGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcbn1cblxuLmNrLmNrLXJlc3BvbnNpdmUtZm9ybSB7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXG5cdCY6Zm9jdXMge1xuXHRcdC8qIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNDc3MyAqL1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdH1cblxuXHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0JiA+IDpub3QoOmZpcnN0LWNoaWxkKSB7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0fVxuXHR9XG5cblx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdCYgPiA6bm90KDpsYXN0LWNoaWxkKSB7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0fVxuXHR9XG5cblx0QG1peGluIGNrLW1lZGlhLXBob25lIHtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdHdpZHRoOiBjYWxjKC44ICogdmFyKC0tY2staW5wdXQtd2lkdGgpKTtcblxuXHRcdCYgLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0XHRtYXJnaW46IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIDA7XG5cblx0XHRcdCYgLmNrLWlucHV0LXRleHQsXG5cdFx0XHQmIC5jay1pbnB1dC1udW1iZXIge1xuXHRcdFx0XHRtaW4td2lkdGg6IDA7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0fVxuXG5cdFx0XHQvKiBMZXQgdGhlIGxvbmcgZXJyb3IgbWVzc2FnZXMgd3JhcCBpbiB0aGUgbmFycm93IGZvcm0uICovXG5cdFx0XHQmIC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2Vycm9yIHtcblx0XHRcdFx0d2hpdGUtc3BhY2U6IG5vcm1hbDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvKiBTdHlsZXMgZm9yIHR3byBsYXN0IGJ1dHRvbnMgaW4gdGhlIGZvcm0gKHNhdmUmY2FuY2VsLCBlZGl0JnVubGluaywgZXRjLikuICovXG5cdFx0JiA+IC5jay1idXR0b246bnRoLWxhc3QtY2hpbGQoMikge1xuXHRcdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0XHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0JiA+IC5jay1idXR0b246bnRoLWxhc3QtY2hpbGQoMSksXG5cdFx0JiA+IC5jay1idXR0b246bnRoLWxhc3QtY2hpbGQoMikge1xuXHRcdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cblx0XHRcdCY6bm90KDpmb2N1cykge1xuXHRcdFx0XHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdFx0fVxuXG5cdFx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdFx0fVxuXG5cdFx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXG5cdFx0XHRcdCY6bGFzdC1vZi10eXBlIHtcblx0XHRcdFx0XHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stc2VhcmNoLWZpZWxkLXZpZXctaG9yaXpvbnRhbC1zcGFjaW5nOiBjYWxjKHZhcigtLWNrLWljb24tc2l6ZSkgKyB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSkpO1xufVxuXG4uY2suY2stc2VhcmNoIHtcblx0JiA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdCYgLmNrLWlucHV0IHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdH1cblxuXHRcdCYuY2stc2VhcmNoX19xdWVyeV93aXRoLWljb24ge1xuXHRcdFx0LS1jay1sYWJlbGVkLWZpZWxkLWxhYmVsLWRlZmF1bHQtcG9zaXRpb24teDogdmFyKC0tY2stc2VhcmNoLWZpZWxkLXZpZXctaG9yaXpvbnRhbC1zcGFjaW5nKTtcblxuXHRcdFx0JiA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2staWNvbiB7XG5cdFx0XHRcdG9wYWNpdHk6IC41O1xuXHRcdFx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHRcdH1cblxuXHRcdFx0JiAuY2staW5wdXQge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblxuXHRcdFx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRcdFx0cGFkZGluZy1sZWZ0OiB2YXIoLS1jay1zZWFyY2gtZmllbGQtdmlldy1ob3Jpem9udGFsLXNwYWNpbmcpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0XHRcdCY6bm90KC5jay1pbnB1dC10ZXh0X2VtcHR5KSB7XG5cdFx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLWNrLXNlYXJjaC1maWVsZC12aWV3LWhvcml6b250YWwtc3BhY2luZyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ji5jay1zZWFyY2hfX3F1ZXJ5X3dpdGgtcmVzZXQge1xuXHRcdFx0LS1jay1sYWJlbGVkLWZpZWxkLWVtcHR5LXVuZm9jdXNlZC1tYXgtd2lkdGg6IDEwMCUgLSAyICogdmFyKC0tY2stc2VhcmNoLWZpZWxkLXZpZXctaG9yaXpvbnRhbC1zcGFjaW5nKTtcblxuXHRcdFx0Ji5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZW1wdHkge1xuXHRcdFx0XHQtLWNrLWxhYmVsZWQtZmllbGQtZW1wdHktdW5mb2N1c2VkLW1heC13aWR0aDogMTAwJSAtIHZhcigtLWNrLXNlYXJjaC1maWVsZC12aWV3LWhvcml6b250YWwtc3BhY2luZykgLSB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0XHR9XG5cblx0XHRcdCYgLmNrLXNlYXJjaF9fcmVzZXQge1xuXHRcdFx0XHRtaW4td2lkdGg6IGF1dG87XG5cdFx0XHRcdG1pbi1oZWlnaHQ6IGF1dG87XG5cblx0XHRcdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHRcdFx0b3BhY2l0eTogLjU7XG5cdFx0XHRcdHBhZGRpbmc6IDA7XG5cblx0XHRcdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0XHRcdHJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRcdFx0bGVmdDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQmIC5jay1pbnB1dCB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0XHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdFx0XHQmOm5vdCguY2staW5wdXQtdGV4dF9lbXB0eSkge1xuXHRcdFx0XHRcdFx0cGFkZGluZy1yaWdodDogdmFyKC0tY2stc2VhcmNoLWZpZWxkLXZpZXctaG9yaXpvbnRhbC1zcGFjaW5nKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRcdFx0cGFkZGluZy1yaWdodDogdmFyKC0tY2stc2VhcmNoLWZpZWxkLXZpZXctaG9yaXpvbnRhbC1zcGFjaW5nKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCYgPiAuY2stc2VhcmNoX19yZXN1bHRzIHtcblx0XHRtaW4td2lkdGg6IDEwMCU7XG5cblx0XHQmID4gLmNrLXNlYXJjaF9faW5mbyB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblxuXHRcdFx0JiAqIHtcblx0XHRcdFx0d2hpdGUtc3BhY2U6IG5vcm1hbDtcblx0XHRcdH1cblxuXHRcdFx0JiA+IHNwYW46Zmlyc3QtY2hpbGQge1xuXHRcdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdH1cblxuXHRcdFx0JiA+IHNwYW46bGFzdC1jaGlsZCB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLXRvb2xiYXItc3Bpbm5lci1zaXplOiAxOHB4O1xufVxuXG4uY2suY2stc3Bpbm5lci1jb250YWluZXIge1xuXHR3aWR0aDogdmFyKC0tY2stdG9vbGJhci1zcGlubmVyLXNpemUpO1xuXHRoZWlnaHQ6IHZhcigtLWNrLXRvb2xiYXItc3Bpbm5lci1zaXplKTtcblx0YW5pbWF0aW9uOiAxLjVzIGluZmluaXRlIGNrLXNwaW5uZXItcm90YXRlIGxpbmVhcjtcblxuXHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdGFuaW1hdGlvbi1kdXJhdGlvbjogM3M7XG5cdH1cbn1cblxuLmNrLmNrLXNwaW5uZXIge1xuXHR3aWR0aDogdmFyKC0tY2stdG9vbGJhci1zcGlubmVyLXNpemUpO1xuXHRoZWlnaHQ6IHZhcigtLWNrLXRvb2xiYXItc3Bpbm5lci1zaXplKTtcblx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jay1jb2xvci10ZXh0KTtcblx0Ym9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbkBrZXlmcmFtZXMgY2stc3Bpbm5lci1yb3RhdGUge1xuXHR0byB7XG5cdFx0dHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKlxuICogVGhpcyBmaXhlcyBhIHByb2JsZW0gaW4gRmlyZWZveCB3aGVuIHRoZSBpbml0aWFsIGhlaWdodCBvZiB0aGUgY29tcGxlbWVudCBkb2VzIG5vdCBtYXRjaCB0aGUgbnVtYmVyIG9mIHJvd3MuXG4gKiBUaGlzIGJ1ZyBpcyBlc3BlY2lhbGx5IHZpc2libGUgd2hlbiByb3dzPTEuXG4gKi9cbi5jay10ZXh0YXJlYSB7XG5cdG92ZXJmbG93LXg6IGhpZGRlblxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLWJsb2NrLXRvb2xiYXItYnV0dG9uOiB2YXIoLS1jay1jb2xvci10ZXh0KTtcblx0LS1jay1ibG9jay10b29sYmFyLWJ1dHRvbi1zaXplOiB2YXIoLS1jay1mb250LXNpemUtbm9ybWFsKTtcbn1cblxuLmNrLmNrLWJsb2NrLXRvb2xiYXItYnV0dG9uIHtcblx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJsb2NrLXRvb2xiYXItYnV0dG9uKTtcblx0Zm9udC1zaXplOiB2YXIoLS1jay1ibG9jay10b29sYmFyLXNpemUpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fcm91bmRlZC5jc3NcIjtcbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuXG4uY2suY2stdG9vbGJhciB7XG5cdEBtaXhpbiBjay1yb3VuZGVkLWNvcm5lcnM7XG5cblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItdG9vbGJhci1iYWNrZ3JvdW5kKTtcblx0cGFkZGluZzogMCB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItdG9vbGJhci1ib3JkZXIpO1xuXG5cdCYgLmNrLmNrLXRvb2xiYXJfX3NlcGFyYXRvciB7XG5cdFx0aGVpZ2h0OiB2YXIoLS1jay1pY29uLXNpemUpO1xuXHRcdHdpZHRoOiAxcHg7XG5cdFx0bWluLXdpZHRoOiAxcHg7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItdG9vbGJhci1ib3JkZXIpO1xuXG5cdFx0Lypcblx0XHQgKiBUaGVzZSBtYXJnaW5zIG1ha2UgdGhlIHNlcGFyYXRvcnMgbG9vayBiZXR0ZXIgaW4gYmFsbG9vbiB0b29sYmFycyAod2hlbiBhbGlnbmVkIHdpdGggdGhlIFwidGlwXCIpLlxuXHRcdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy83NDkzLlxuXHRcdCAqL1xuXHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdG1hcmdpbi1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG5cblx0JiAuY2stdG9vbGJhcl9fbGluZS1icmVhayB7XG5cdFx0aGVpZ2h0OiAwO1xuXHR9XG5cblx0JiA+IC5jay10b29sYmFyX19pdGVtcyB7XG5cdFx0JiA+ICo6bm90KC5jay10b29sYmFyX19saW5lLWJyZWFrKSB7XG5cdFx0XHQvKiAoIzExKSBTZXBhcmF0ZSB0b29sYmFyIGl0ZW1zLiAqL1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG5cblx0XHQvKiBEb24ndCBkaXNwbGF5IGEgc2VwYXJhdG9yIGFmdGVyIGFuIGVtcHR5IGl0ZW1zIGNvbnRhaW5lciwgZm9yIGluc3RhbmNlLFxuXHRcdHdoZW4gYWxsIGl0ZW1zIHdlcmUgZ3JvdXBlZCAqL1xuXHRcdCY6ZW1wdHkgKyAuY2suY2stdG9vbGJhcl9fc2VwYXJhdG9yIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG5cblx0JiA+IC5jay10b29sYmFyX19pdGVtcyA+ICo6bm90KC5jay10b29sYmFyX19saW5lLWJyZWFrKSxcblx0JiA+IC5jay5jay10b29sYmFyX19ncm91cGVkLWRyb3Bkb3duIHtcblx0XHQvKiBNYWtlIHN1cmUgaXRlbXMgd3JhcHBlZCB0byB0aGUgbmV4dCBsaW5lIGhhdmUgdi1zcGFjaW5nICovXG5cdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0bWFyZ2luLWJvdHRvbTogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cblxuXHQmLmNrLXRvb2xiYXJfdmVydGljYWwge1xuXHRcdC8qIEl0ZW1zIGluIGEgdmVydGljYWwgdG9vbGJhciBzcGFuIHRoZSBlbnRpcmUgd2lkdGguICovXG5cdFx0cGFkZGluZzogMDtcblxuXHRcdC8qIFNwZWNpZmljaXR5IG1hdHRlcnMgaGVyZS4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvMTY4LiAqL1xuXHRcdCYgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2sge1xuXHRcdFx0LyogSXRlbXMgaW4gYSB2ZXJ0aWNhbCB0b29sYmFyIHNob3VsZCBzcGFuIHRoZSBob3Jpem9udGFsIHNwYWNlLiAqL1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cblx0XHRcdC8qIEl0ZW1zIGluIGEgdmVydGljYWwgdG9vbGJhciBzaG91bGQgaGF2ZSBubyBtYXJnaW4uICovXG5cdFx0XHRtYXJnaW46IDA7XG5cblx0XHRcdC8qIEl0ZW1zIGluIGEgdmVydGljYWwgdG9vbGJhciBzcGFuIHRoZSBlbnRpcmUgd2lkdGggc28gcm91bmRlZCBjb3JuZXJzIGFyZSBwb2ludGxlc3MuICovXG5cdFx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHRcdH1cblx0fVxuXG5cdCYuY2stdG9vbGJhcl9jb21wYWN0IHtcblx0XHQvKiBObyBzcGFjaW5nIGFyb3VuZCBpdGVtcy4gKi9cblx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0JiA+IC5jay10b29sYmFyX19pdGVtcyA+ICoge1xuXHRcdFx0LyogQ29tcGFjdCB0b29sYmFyIGl0ZW1zIGhhdmUgbm8gc3BhY2luZyBiZXR3ZWVuIHRoZW0uICovXG5cdFx0XHRtYXJnaW46IDA7XG5cblx0XHRcdC8qIFwiTWlkZGxlXCIgY2hpbGRyZW4gc2hvdWxkIGhhdmUgbm8gcm91bmRlZCBjb3JuZXJzLiAqL1xuXHRcdFx0Jjpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpIHtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmID4gLmNrLmNrLXRvb2xiYXJfX2dyb3VwZWQtZHJvcGRvd24ge1xuXHRcdC8qXG5cdFx0ICogRHJvcGRvd24gYnV0dG9uIGhhcyBhc3ltbWV0cmljIHBhZGRpbmcgdG8gZml0IHRoZSBhcnJvdy5cblx0XHQgKiBUaGlzIGJ1dHRvbiBoYXMgbm8gYXJyb3cgc28gbGV0J3MgcmV2ZXJ0IHRoYXQgcGFkZGluZyBiYWNrIHRvIG5vcm1hbC5cblx0XHQgKi9cblx0XHQmID4gLmNrLmNrLWJ1dHRvbi5jay1kcm9wZG93bl9fYnV0dG9uIHtcblx0XHRcdHBhZGRpbmctbGVmdDogdmFyKC0tY2stc3BhY2luZy10aW55KTtcblx0XHR9XG5cdH1cblxuXHQvKiBBIGRyb3AtZG93biBjb250YWluaW5nIHRoZSBuZXN0ZWQgdG9vbGJhciB3aXRoIGNvbmZpZ3VyZWQgaXRlbXMuICovXG5cdCYgLmNrLXRvb2xiYXJfX25lc3RlZC10b29sYmFyLWRyb3Bkb3duIHtcblx0XHQvKiBQcmV2ZW50IGVtcHR5IHNwYWNlIGluIHRoZSBwYW5lbCB3aGVuIHRoZSBkcm9wZG93biBsYWJlbCBpcyB2aXNpYmxlIGFuZCBsb25nIGJ1dCB0aGUgdG9vbGJhciBoYXMgZmV3IGl0ZW1zLiAqL1xuXHRcdCYgPiAuY2stZHJvcGRvd25fX3BhbmVsIHtcblx0XHRcdG1pbi13aWR0aDogYXV0bztcblx0XHR9XG5cblx0XHQmID4gLmNrLWJ1dHRvbiA+IC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdG1heC13aWR0aDogN2VtO1xuXHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0fVxuXHR9XG5cblx0Jjpmb2N1cyB7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0fVxuXG5cdC5jay10b29sYmFyLWNvbnRhaW5lciAmIHtcblx0XHRib3JkZXI6IDA7XG5cdH1cbn1cblxuLyogc3R5bGVsaW50LWRpc2FibGUgKi9cblxuLypcbiAqIFN0eWxlcyBmb3IgUlRMIHRvb2xiYXJzLlxuICpcbiAqIE5vdGU6IEluIHNvbWUgY2FzZXMgKGUuZy4gYSBkZWNvdXBsZWQgZWRpdG9yKSwgdGhlIHRvb2xiYXIgaGFzIGl0cyBvd24gXCJkaXJcIlxuICogYmVjYXVzZSBpdHMgcGFyZW50IGlzIG5vdCBjb250cm9sbGVkIGJ5IHRoZSBlZGl0b3IgZnJhbWV3b3JrLlxuICovXG5bZGlyPVwicnRsXCJdIC5jay5jay10b29sYmFyLFxuLmNrLmNrLXRvb2xiYXJbZGlyPVwicnRsXCJdIHtcblx0JiA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jayB7XG5cdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHR9XG5cblx0Jjpub3QoLmNrLXRvb2xiYXJfY29tcGFjdCkgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2sge1xuXHRcdC8qICgjMTEpIFNlcGFyYXRlIHRvb2xiYXIgaXRlbXMuICovXG5cdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG5cblx0JiA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jazpsYXN0LWNoaWxkIHtcblx0XHRtYXJnaW4tbGVmdDogMDtcblx0fVxuXG5cdCYuY2stdG9vbGJhcl9jb21wYWN0ID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrIHtcblx0XHQvKiBObyByb3VuZGVkIGNvcm5lcnMgb24gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIGZpcnN0IGNoaWxkLiAqL1xuXHRcdCY6Zmlyc3QtY2hpbGQge1xuXHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0fVxuXG5cdFx0LyogTm8gcm91bmRlZCBjb3JuZXJzIG9uIHRoZSBsZWZ0IHNpZGUgb2YgdGhlIGxhc3QgY2hpbGQuICovXG5cdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdFx0fVxuXHR9XG5cblx0LyogU2VwYXJhdGUgdGhlIHRoZSBzZXBhcmF0b3IgZm9ybSB0aGUgZ3JvdXBpbmcgZHJvcGRvd24gd2hlbiBzb21lIGl0ZW1zIGFyZSBncm91cGVkLiAqL1xuXHQmID4gLmNrLmNrLXRvb2xiYXJfX3NlcGFyYXRvciB7XG5cdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG5cblx0LyogU29tZSBzcGFjaW5nIGJldHdlZW4gdGhlIGl0ZW1zIGFuZCB0aGUgc2VwYXJhdG9yIGJlZm9yZSB0aGUgZ3JvdXBlZCBpdGVtcyBkcm9wZG93bi4gKi9cblx0Ji5jay10b29sYmFyX2dyb3VwaW5nID4gLmNrLXRvb2xiYXJfX2l0ZW1zOm5vdCg6ZW1wdHkpOm5vdCg6b25seS1jaGlsZCkge1xuXHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxufVxuXG4vKlxuICogU3R5bGVzIGZvciBMVFIgdG9vbGJhcnMuXG4gKlxuICogTm90ZTogSW4gc29tZSBjYXNlcyAoZS5nLiBhIGRlY291cGxlZCBlZGl0b3IpLCB0aGUgdG9vbGJhciBoYXMgaXRzIG93biBcImRpclwiXG4gKiBiZWNhdXNlIGl0cyBwYXJlbnQgaXMgbm90IGNvbnRyb2xsZWQgYnkgdGhlIGVkaXRvciBmcmFtZXdvcmsuXG4gKi9cbltkaXI9XCJsdHJcIl0gLmNrLmNrLXRvb2xiYXIsXG4uY2suY2stdG9vbGJhcltkaXI9XCJsdHJcIl0ge1xuXHQmID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrOmxhc3QtY2hpbGQge1xuXHRcdG1hcmdpbi1yaWdodDogMDtcblx0fVxuXG5cdCYuY2stdG9vbGJhcl9jb21wYWN0ID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrIHtcblx0XHQvKiBObyByb3VuZGVkIGNvcm5lcnMgb24gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIGZpcnN0IGNoaWxkLiAqL1xuXHRcdCY6Zmlyc3QtY2hpbGQge1xuXHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblx0XHR9XG5cblx0XHQvKiBObyByb3VuZGVkIGNvcm5lcnMgb24gdGhlIGxlZnQgc2lkZSBvZiB0aGUgbGFzdCBjaGlsZC4gKi9cblx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0fVxuXHR9XG5cblx0LyogU2VwYXJhdGUgdGhlIHRoZSBzZXBhcmF0b3IgZm9ybSB0aGUgZ3JvdXBpbmcgZHJvcGRvd24gd2hlbiBzb21lIGl0ZW1zIGFyZSBncm91cGVkLiAqL1xuXHQmID4gLmNrLmNrLXRvb2xiYXJfX3NlcGFyYXRvciB7XG5cdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuXG5cdC8qIFNvbWUgc3BhY2luZyBiZXR3ZWVuIHRoZSBpdGVtcyBhbmQgdGhlIHNlcGFyYXRvciBiZWZvcmUgdGhlIGdyb3VwZWQgaXRlbXMgZHJvcGRvd24uICovXG5cdCYuY2stdG9vbGJhcl9ncm91cGluZyA+IC5jay10b29sYmFyX19pdGVtczpub3QoOmVtcHR5KTpub3QoOm9ubHktY2hpbGQpIHtcblx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG59XG5cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3JvdW5kZWQuY3NzXCI7XG5cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLXRvb2x0aXAge1xuXHQtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoOiAwcHg7XG5cdC0tY2stYmFsbG9vbi1hcnJvdy1vZmZzZXQ6IDBweDtcblx0LS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGg6IDRweDtcblx0LS1jay1iYWxsb29uLWFycm93LWhlaWdodDogNHB4O1xuXHQtLWNrLXRvb2x0aXAtdGV4dC1wYWRkaW5nOiA0cHg7XG5cdC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItdG9vbHRpcC1iYWNrZ3JvdW5kKTtcblxuXHRwYWRkaW5nOiAwIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblxuXHQmIC5jay10b29sdGlwX190ZXh0IHtcblx0XHRmb250LXNpemU6IC45ZW07XG5cdFx0bGluZS1oZWlnaHQ6IDEuNTtcblx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItdG9vbHRpcC10ZXh0KTtcblx0fVxuXG5cdCYuY2stdG9vbHRpcF9tdWx0aS1saW5lIC5jay10b29sdGlwX190ZXh0IHtcblx0XHR3aGl0ZS1zcGFjZTogYnJlYWstc3BhY2VzO1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRwYWRkaW5nOiB2YXIoLS1jay10b29sdGlwLXRleHQtcGFkZGluZykgMDtcblx0XHRtYXgtd2lkdGg6IDIwMHB4O1xuXHR9XG5cblx0LyogUmVzZXQgYmFsbG9vbiBwYW5lbCBzdHlsZXMgKi9cblx0Ym94LXNoYWRvdzogbm9uZTtcblxuXHQvKiBIaWRlIHRoZSBkZWZhdWx0IHNoYWRvdyBvZiB0aGUgLmNrLWJhbGxvb24tcGFuZWwgdGlwICovXG5cdCY6OmJlZm9yZSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uL21peGlucy9fcm91bmRlZC5jc3NcIjtcblxuLmNrLmNrLWVkaXRvcl9fdG9wIHtcblx0JiAuY2stc3RpY2t5LXBhbmVsIHtcblx0XHQmIC5jay1zdGlja3ktcGFuZWxfX2NvbnRlbnQge1xuXHRcdFx0QG1peGluIGNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHRcdFx0fVxuXG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0XHRib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuXG5cdFx0XHQmLmNrLXN0aWNreS1wYW5lbF9fY29udGVudF9zdGlja3kge1xuXHRcdFx0XHRib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XG5cdFx0XHR9XG5cblx0XHRcdCYgLmNrLW1lbnUtYmFyIHtcblx0XHRcdFx0Ym9yZGVyOiAwO1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdFx0fVxuXG5cdFx0XHQmIC5jay10b29sYmFyIHtcblx0XHRcdFx0Ym9yZGVyOiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4vKiBOb3RlOiBVc2UgY2stZWRpdG9yX19tYWluIHRvIG1ha2Ugc3VyZSB0aGVzZSBzdHlsZXMgZG9uJ3QgYXBwbHkgdG8gb3RoZXIgZWRpdG9yIHR5cGVzICovXG4uY2suY2stZWRpdG9yX19tYWluID4gLmNrLWVkaXRvcl9fZWRpdGFibGUge1xuXHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvaXNzdWVzLzExMyAqL1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXG5cdEBtaXhpbiBjay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdH1cblxuXHQmOm5vdCguY2stZm9jdXNlZCkge1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stYm9va21hcmstaWNvbi1ob3Zlci1maWxsLWNvbG9yOiB2YXIoLS1jay1jb2xvci13aWRnZXQtaG92ZXItYm9yZGVyKTtcblx0LS1jay1ib29rbWFyay1pY29uLXNlbGVjdGVkLWZpbGwtY29sb3I6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdC0tY2stYm9va21hcmstaWNvbi1hbmltYXRpb24tZHVyYXRpb246IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1kdXJhdGlvbik7XG5cdC0tY2stYm9va21hcmstaWNvbi1hbmltYXRpb24tY3VydmU6IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSk7XG59XG5cbi5jayAuY2stYm9va21hcmsge1xuXHQmLmNrLXdpZGdldCB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cblx0XHQmIC5jay1ib29rbWFya19faWNvbiAuY2staWNvbl9fZmlsbCB7XG5cdFx0XHR0cmFuc2l0aW9uOiBmaWxsIHZhcigtLWNrLWJvb2ttYXJrLWljb24tYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1jay1ib29rbWFyay1pY29uLWFuaW1hdGlvbi1jdXJ2ZSk7XG5cdFx0fVxuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHQmIC5jay1ib29rbWFya19faWNvbiAuY2staWNvbl9fZmlsbCB7XG5cdFx0XHRcdGZpbGw6IHZhcigtLWNrLWJvb2ttYXJrLWljb24taG92ZXItZmlsbC1jb2xvcik7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ji5jay13aWRnZXRfc2VsZWN0ZWQge1xuXHRcdFx0LmNrLWJvb2ttYXJrX19pY29uIC5jay1pY29uX19maWxsIHtcblx0XHRcdFx0ZmlsbDogdmFyKC0tY2stYm9va21hcmstaWNvbi1zZWxlY3RlZC1maWxsLWNvbG9yKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLmNrLXdpZGdldF9zZWxlY3RlZCxcblx0XHQmLmNrLXdpZGdldF9zZWxlY3RlZDpob3ZlciB7XG5cdFx0XHRvdXRsaW5lOiBub25lO1xuXHRcdH1cblxuXHRcdCYgLmNrLWJvb2ttYXJrX19pY29uIHtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0LyogVG8gbWFrZSBpdCBhbGlnbiB3aXRoIHRleHQgYmFzZWxpbmUuICovXG5cdFx0XHR0b3A6IC0wLjFlbTtcblxuXHRcdFx0JiAuY2staWNvbiB7XG5cdFx0XHRcdGhlaWdodDogMS4yZW07XG5cdFx0XHRcdHdpZHRoOiBhdXRvO1xuXHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4vKlxuICogQ2xhc3NlcyB1c2VkIGJ5IHRoZSBcImZha2UgdmlzdWFsIHNlbGVjdGlvblwiIGRpc3BsYXllZCBpbiB0aGUgY29udGVudCB3aGVuIGFuIGlucHV0XG4gKiBpbiB0aGUgYm9va21hcmsgVUkgaGFzIGZvY3VzICh0aGUgYnJvd3NlciBkb2VzIG5vdCByZW5kZXIgdGhlIG5hdGl2ZSBzZWxlY3Rpb24gaW4gdGhpcyBzdGF0ZSkuXG4gKi9cbi5jayAuY2stZmFrZS1ib29rbWFyay1zZWxlY3Rpb24ge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saW5rLWZha2Utc2VsZWN0aW9uKTtcbn1cblxuLyogQSBjb2xsYXBzZWQgZmFrZSB2aXN1YWwgc2VsZWN0aW9uLiAqL1xuLmNrIC5jay1mYWtlLWJvb2ttYXJrLXNlbGVjdGlvbl9jb2xsYXBzZWQge1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtdGV4dCk7XG5cdG1hcmdpbi1yaWdodDogLTFweDtcblx0b3V0bGluZTogc29saWQgMXB4IGhzbGEoMCwgMCUsIDEwMCUsIC41KTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fcndkLmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stYm9va21hcmstZm9ybS13aWR0aDogMzQwcHg7XG59XG5cbkBtaXhpbiBjay1tZWRpYS1waG9uZSB7XG5cdDpyb290IHtcblx0XHQtLWNrLWJvb2ttYXJrLWZvcm0td2lkdGg6IDMwMHB4O1xuXHR9XG59XG5cbi5jay5jay1ib29rbWFyay1mb3JtIHtcblx0d2lkdGg6IHZhcigtLWNrLWJvb2ttYXJrLWZvcm0td2lkdGgpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL191bnNlbGVjdGFibGUuY3NzXCI7XG5cbi5jay5jay1ib29rbWFyay1iYWxsb29uIHtcblx0JiAuY2suY2stdG9vbGJhciB7XG5cdFx0JiA+IC5jay10b29sYmFyX19pdGVtcyB7XG5cdFx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0XHR9XG5cdH1cbn1cblxuLmNrLmNrLWJvb2ttYXJrLXRvb2xiYXJfX3ByZXZpZXcge1xuXHRwYWRkaW5nOiAwIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0bWF4LXdpZHRoOiB2YXIoLS1jay1pbnB1dC13aWR0aCk7XG5cdG1pbi13aWR0aDogM2VtO1xuXHRmb250LXdlaWdodDogbm9ybWFsO1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdEBtaXhpbiBjay11bnNlbGVjdGFibGU7XG5cdGN1cnNvcjogZGVmYXVsdDtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qKlxuICogTWFrZXMgZWxlbWVudCB1bnNlbGVjdGFibGUuXG4gKi9cbkBkZWZpbmUtbWl4aW4gY2stdW5zZWxlY3RhYmxlIHtcblx0LW1vei11c2VyLXNlbGVjdDogbm9uZTtcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcblx0LW1zLXVzZXItc2VsZWN0OiBub25lO1xuXHR1c2VyLXNlbGVjdDogbm9uZVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzXCI7XG5cbjpyb290IHtcblx0LS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LXdpZHRoOiAxMnB4O1xuXHQtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3QtaGVpZ2h0OiA4cHg7XG5cdC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWNvbG9yOiB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSB7XG5cdC8qXG5cdCAqIFZlcnRpY2FsIGRyb3AgdGFyZ2V0IChpbiB0ZXh0KS5cblx0ICovXG5cdCYgLmNrLmNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1wb3NpdGlvbiB7XG5cdFx0JiBzcGFuIHtcblx0XHRcdGJvdHRvbTogY2FsYygtLjUgKiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LWhlaWdodCkpO1xuXHRcdFx0dG9wOiBjYWxjKC0uNSAqIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3QtaGVpZ2h0KSk7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtY29sb3IpO1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWNvbG9yKTtcblx0XHRcdG1hcmdpbi1sZWZ0OiAtMXB4O1xuXG5cdFx0XHQvKiBUaGUgdHJpYW5nbGUgYWJvdmUgdGhlIG1hcmtlciAqL1xuXHRcdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0XHRjb250ZW50OiAnJztcblx0XHRcdFx0d2lkdGg6IDA7XG5cdFx0XHRcdGhlaWdodDogMDtcblxuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHRcdHRvcDogY2FsYygtLjUgKiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LWhlaWdodCkpO1xuXG5cdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtY29sb3IpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuXHRcdFx0XHRib3JkZXItd2lkdGg6IGNhbGModmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC1oZWlnaHQpKSBjYWxjKC41ICogdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC13aWR0aCkpIDAgY2FsYyguNSAqIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3Qtd2lkdGgpKTtcblx0XHRcdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvKlxuXHQgKiBTdHlsZXMgb2YgdGhlIHdpZGdldCB0aGF0IGl0IGEgZHJvcCB0YXJnZXQuXG5cdCAqL1xuXHQmIC5jay13aWRnZXQuY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LXJhbmdlIHtcblx0XHRvdXRsaW5lOiB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpIHNvbGlkIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcikgIWltcG9ydGFudDtcblx0fVxuXG5cdC8qXG5cdCAqIFN0eWxlcyBvZiB0aGUgd2lkZ2V0IGJlaW5nIGRyYWdnZWQgKGl0cyBwcmV2aWV3KS5cblx0ICovXG5cdCYgLmNrLXdpZGdldDotd2Via2l0LWRyYWcge1xuXHRcdHpvb206IDAuNjtcblx0XHRvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuLmNrLmNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1saW5lIHtcblx0aGVpZ2h0OiAwO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtY29sb3IpO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtY29sb3IpO1xuXHRtYXJnaW4tdG9wOiAtMXB4O1xuXG5cdCY6OmJlZm9yZSB7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogY2FsYygtLjUgKiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LXdpZHRoKSk7XG5cdFx0d2lkdGg6IDA7XG5cdFx0aGVpZ2h0OiAwO1xuXHRcdGJvcmRlci1zdHlsZTogc29saWQ7XG5cblx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRsZWZ0OiAtMXB4O1xuXG5cdFx0XHRib3JkZXItd2lkdGg6IGNhbGMoLjUgKiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LXdpZHRoKSkgMCBjYWxjKC41ICogdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC13aWR0aCkpIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3QtaGVpZ2h0KTtcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWNvbG9yKTtcblx0XHR9XG5cblx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRyaWdodDogLTFweDtcblxuXHRcdFx0Ym9yZGVyLXdpZHRoOmNhbGMoLjUgKiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LXdpZHRoKSkgdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC1oZWlnaHQpIGNhbGMoLjUgKiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LXdpZHRoKSkgMDtcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWNvbG9yKSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1jb2xvci1jb2RlLWJsb2NrLWxhYmVsLWJhY2tncm91bmQ6IGhzbCgwLCAwJSwgNDYlKTtcbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgcHJlW2RhdGEtbGFuZ3VhZ2VdOjphZnRlciB7XG5cdHRvcDogLTFweDtcblx0cmlnaHQ6IDEwcHg7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWNvZGUtYmxvY2stbGFiZWwtYmFja2dyb3VuZCk7XG5cblx0Zm9udC1zaXplOiAxMHB4O1xuXHRmb250LWZhbWlseTogdmFyKC0tY2stZm9udC1mYWNlKTtcblx0bGluZS1oZWlnaHQ6IDE2cHg7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctdGlueSkgdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRjb2xvcjogaHNsKDAsIDAlLCAxMDAlKTtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmNrLmNrLWNvZGUtYmxvY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbCB7XG5cdC8qIFRoZXJlIGNvdWxkIGJlIGRvemVucyBvZiBsYW5ndWFnZXMgYXZhaWxhYmxlLiBVc2Ugc2Nyb2xsIHRvIHByZXZlbnQgYSAxMGU2cHggZHJvcGRvd24uICovXG5cdG1heC1oZWlnaHQ6IDI1MHB4O1xuXHRvdmVyZmxvdy15OiBhdXRvO1xuXHRvdmVyZmxvdy14OiBoaWRkZW47XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX21lZGlhY29sb3JzLmNzc1wiO1xuXG4vKiBTZWUgY2tlZGl0b3IvY2tlZGl0b3I1IzkzNi4gKi9cbi5jay5jay1wbGFjZWhvbGRlciwgLmNrIC5jay1wbGFjZWhvbGRlciB7XG5cdEBtaXhpbiBjay1tZWRpYS1mb3JjZWQtY29sb3JzIHtcblx0XHQvKlxuXHRcdCAqIFRoaXMgaXMgbmVlZGVkIGZvciBFZGdlIG9uIFdpbmRvd3MgdG8gdXNlIHRoZSByaWdodCBjb2xvciBmb3IgdGhlIHBsYWNlaG9sZGVyIGNvbnRlbnQgKDo6YmVmb3JlKS5cblx0XHQgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTQ5MDcuXG5cdFx0ICovXG5cdFx0Zm9yY2VkLWNvbG9yLWFkanVzdDogcHJlc2VydmUtcGFyZW50LWNvbG9yO1xuXHR9XG5cblx0Jjo6YmVmb3JlIHtcblx0XHRjdXJzb3I6IHRleHQ7XG5cblx0XHRAbWl4aW4gY2stbWVkaWEtZGVmYXVsdC1jb2xvcnMge1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWVuZ2luZS1wbGFjZWhvbGRlci10ZXh0KTtcblx0XHR9XG5cblx0XHRAbWl4aW4gY2stbWVkaWEtZm9yY2VkLWNvbG9ycyB7XG5cdFx0XHQvKlxuXHRcdFx0ICogSW4gdGhlIGhpZ2ggY29udHJhc3QgbW9kZSB0aGVyZSBpcyBubyB0ZWxsaW5nIGJldHdlZW4gcmVndWxhciBhbmQgcGxhY2Vob2xkZXIgdGV4dC4gVXNpbmdcblx0XHRcdCAqIGl0YWxpYyB0ZXh0IHRvIGFkZHJlc3MgdGhhdCBpc3N1ZS4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE0OTA3LlxuXHRcdFx0ICovXG5cdFx0XHRmb250LXN0eWxlOiBpdGFsaWM7XG5cblx0XHRcdC8qXG5cdFx0XHQgKiBXaXRob3V0IHRoaXMgbWFyZ2luLCB0aGUgY2FyZXQgd2lsbCBub3Qgc2hvdyB1cCBhbmQgYmxpbmsgd2hlbiB0aGUgdXNlciBwdXRzIHRoZSBzZWxlY3Rpb25cblx0XHRcdCAqIGluIHRoZSBwbGFjZWhvbGRlciAoRWRnZSBvbiBXaW5kb3dzKS4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE0OTA3LlxuXHRcdFx0ICovXG5cdFx0XHRtYXJnaW4tbGVmdDogMXB4O1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19yd2QuY3NzXCI7XG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcblxuLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSB7XG5cdHdpZHRoOiA0MDBweDtcblxuXHQvKlxuXHQgKiBUaGUgPGZvcm0+IG5lZWRzIHRhYmluZGV4PVwiLTFcIiBmb3IgcHJvcGVyIEVzYyBoYW5kbGluZyBhZnRlciBiZWluZyBjbGlja2VkXG5cdCAqIGJ1dCB0aGUgc2lkZSBlZmZlY3QgaXMgdGhhdCB0aGlzIGNyZWF0ZXMgYSBuYXN0eSBmb2N1cyBvdXRsaW5lIGluIHNvbWUgYnJvd3NlcnMuXG5cdCAqL1xuXHQmOmZvY3VzIHtcblx0XHRvdXRsaW5lOiBub25lO1xuXHR9XG5cblx0LyogR2VuZXJpYyBzdHlsZXMgZm9yIHRoZSBmb3JtIGlucHV0cyBhbmQgYWN0aW9ucy4gKi9cblx0JiAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dHMsXG5cdCYgLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9fYWN0aW9ucyB7XG5cdFx0ZmxleDogMSAxIGF1dG87XG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRhbGlnbi1jb250ZW50OiBzdHJldGNoO1xuXG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0bWFyZ2luOiAwO1xuXG5cdFx0JiA+IC5jay1idXR0b24ge1xuXHRcdFx0ZmxleDogMCAwIGF1dG87XG5cdFx0fVxuXG5cdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0JiA+ICogKyAqIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdCYgPiAqICsgKiB7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0JiAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRcdGZsZXg6IDEgMSBhdXRvO1xuXG5cdFx0XHQmIC5jay1pbnB1dCB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRtaW4td2lkdGg6IDUwcHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdH1cblxuXHQvKiBTdHlsZXMgc3BlY2lmaWMgZm9yIGlucHV0cyBhcmVhLiAqL1xuXHQmIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0cyB7XG5cdFx0LyogVG8gZGlzcGxheSBhbGwgY29udHJvbHMgaW4gbGluZSB3aGVuIHRoZXJlJ3MgYW4gZXJyb3IgdW5kZXIgdGhlIGlucHV0ICovXG5cdFx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cblx0XHQmID4gLmNrLWJ1dHRvbi1wcmV2ID4gLmNrLWljb24ge1xuXHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuXHRcdH1cblxuXHRcdCYgPiAuY2stYnV0dG9uLW5leHQgPiAuY2staWNvbiB7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuXHRcdH1cblxuXHRcdCYgLmNrLXJlc3VsdHMtY291bnRlciB7XG5cdFx0XHR0b3A6IDUwJTtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblxuXHRcdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0XHRyaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHR9XG5cblx0XHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdFx0bGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHR9XG5cblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0fVxuXG5cdFx0JiA+IC5jay1sYWJlbGVkLWZpZWxkLXJlcGxhY2Uge1xuXHRcdFx0ZmxleDogMCAwIDEwMCU7XG5cdFx0XHRwYWRkaW5nLXRvcDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHR9XG5cblx0XHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qIFN0eWxlcyBzcGVjaWZpYyBmb3IgYWN0aW9ucyBhcmVhLiAqL1xuXHQmIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMge1xuXHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXHRcdG1hcmdpbi10b3A6IGNhbGMoIC0xICogdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgKTtcblxuXHRcdCYgPiAuY2stYnV0dG9uLWZpbmQge1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cblx0XHRcdC8qIEJlZWYgdGhlIGZpbmQgYnV0dG9uIHVwIGEgbGl0dGxlLiBJdCdzIHRoZSBtYWluIGFjdGlvbiBidXR0b24gaW4gdGhlIGZvcm0gKi9cblx0XHRcdCYgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmIC5jay1zd2l0Y2hidXR0b24ge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0fVxufVxuXG5AbWl4aW4gY2stbWVkaWEtcGhvbmUge1xuXHQuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIHtcblx0XHR3aWR0aDogMzAwcHg7XG5cblx0XHQvKiBEb24ndCBsZXQgdGhlIGZvcm0gb3ZlcmZsb3cgZnJvbSB0aGUgZGlhbG9nIChodHRwczovL2dpdGh1Yi5jb20vY2tzb3VyY2UvY2tlZGl0b3I1LWNvbW1lcmNpYWwvaXNzdWVzLzU5MTMpICovXG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xuXG5cdFx0LyogU3R5bGVzIHNwZWNpZmljIGZvciBpbnB1dHMgYXJlYS4gKi9cblx0XHQmLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXQge1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXG5cdFx0XHQmIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdFx0XHRmbGV4OiAxIDAgYXV0bztcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdFx0fVxuXG5cdFx0XHQmID4gLmNrLWJ1dHRvbiB7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdFx0XHQmOmZpcnN0LW9mLXR5cGUge1xuXHRcdFx0XHRcdGZsZXg6IDEgMSBhdXRvO1xuXG5cdFx0XHRcdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCYgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LyogU3R5bGVzIHNwZWNpZmljIGZvciBhY3Rpb25zIGFyZWEuICovXG5cdFx0Ji5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMgPiA6bm90KC5jay1sYWJlbGVkLWZpZWxkLXZpZXcpIHtcblx0XHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRcdGZsZXg6IDEgMSBhdXRvO1xuXG5cdFx0XHQmID4gLmNrLWJ1dHRvbiB7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdFx0XHQmOmZpcnN0LW9mLXR5cGUge1xuXHRcdFx0XHRcdGZsZXg6IDEgMSBhdXRvO1xuXG5cdFx0XHRcdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdCYgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyogUmVzaXplIGRyb3Bkb3duJ3MgYnV0dG9uIGxhYmVsLiAqL1xuLmNrLmNrLWRyb3Bkb3duLmNrLWhlYWRpbmctZHJvcGRvd24ge1xuXHQmIC5jay1kcm9wZG93bl9fYnV0dG9uIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHR3aWR0aDogOGVtO1xuXHR9XG5cblx0JiAuY2stZHJvcGRvd25fX3BhbmVsIC5jay1saXN0X19pdGVtIHtcblx0XHRtaW4td2lkdGg6IDE4ZW07XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBOb3RlOiBUaGlzIGZpbGUgc2hvdWxkIGNvbnRhaW4gdGhlIHdpcmVmcmFtZSBzdHlsZXMgb25seS4gQnV0IHNpbmNlIHRoZXJlIGFyZSBubyBzdWNoIHN0eWxlcyxcbiAqIGl0IGFjdHMgYXMgYSBtZXNzYWdlIHRvIHRoZSBidWlsZGVyIHRlbGxpbmcgdGhhdCBpdCBzaG91bGQgbG9vayBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgc3R5bGVzXG4gKiAqKmluIHRoZSB0aGVtZSoqIHdoZW4gY29tcGlsaW5nIHRoZSBlZGl0b3IuXG4gKi9cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1odG1sLWVtYmVkLWNvbnRlbnQtd2lkdGg6IGNhbGMoMTAwJSAtIDEuNSAqIHZhcigtLWNrLWljb24tc2l6ZSkpO1xuXHQtLWNrLWh0bWwtZW1iZWQtc291cmNlLWhlaWdodDogMTBlbTtcblx0LS1jay1odG1sLWVtYmVkLXVuZm9jdXNlZC1vdXRsaW5lLXdpZHRoOiAxcHg7XG5cdC0tY2staHRtbC1lbWJlZC1jb250ZW50LW1pbi1oZWlnaHQ6IGNhbGModmFyKC0tY2staWNvbi1zaXplKSArIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpKTtcblxuXHQtLWNrLWh0bWwtZW1iZWQtc291cmNlLWRpc2FibGVkLWJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtZm9yZWdyb3VuZCk7XG5cdC0tY2staHRtbC1lbWJlZC1zb3VyY2UtZGlzYWJsZWQtY29sb3I6IGhzbCgwZGVnIDAlIDQ1JSk7XG59XG5cbi8qIFRoZSBmZWF0dXJlIGNvbnRhaW5lci4gKi9cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQge1xuXHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1mb3JlZ3JvdW5kKTtcblxuXHQmOm5vdCguY2std2lkZ2V0X3NlbGVjdGVkKTpub3QoOmhvdmVyKSB7XG5cdFx0b3V0bGluZTogdmFyKC0tY2staHRtbC1lbWJlZC11bmZvY3VzZWQtb3V0bGluZS13aWR0aCkgZGFzaGVkIHZhcigtLWNrLWNvbG9yLXdpZGdldC1ibHVycmVkLWJvcmRlcik7XG5cdH1cblxuXHQvKiBIVE1MIGVtYmVkIHdpZGdldCBpdHNlbGYgc2hvdWxkIHJlc3BlY3QgVUkgbGFuZ3VhZ2UgZGlyZWN0aW9uICovXG5cdCZbZGlyPVwibHRyXCJdIHtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHR9XG5cblx0JltkaXI9XCJydGxcIl0ge1xuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHR9XG5cblx0LyogLS0tLS0gRW1iZWQgbGFiZWwgaW4gdGhlIHVwcGVyIGxlZnQgY29ybmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0Jjo6YmVmb3JlIHtcblx0XHRjb250ZW50OiBhdHRyKGRhdGEtaHRtbC1lbWJlZC1sYWJlbCk7XG5cdFx0dG9wOiBjYWxjKC0xICogdmFyKC0tY2staHRtbC1lbWJlZC11bmZvY3VzZWQtb3V0bGluZS13aWR0aCkpO1xuXHRcdGxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdGJhY2tncm91bmQ6IGhzbCgwZGVnIDAlIDYwJSk7XG5cdFx0dHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSk7XG5cdFx0cGFkZGluZzogY2FsYyh2YXIoLS1jay1zcGFjaW5nLXRpbnkpICsgdmFyKC0tY2staHRtbC1lbWJlZC11bmZvY3VzZWQtb3V0bGluZS13aWR0aCkpIHZhcigtLWNrLXNwYWNpbmctc21hbGwpIHZhcigtLWNrLXNwYWNpbmctdGlueSk7XG5cdFx0Ym9yZGVyLXJhZGl1czogMCAwIHZhcigtLWNrLWJvcmRlci1yYWRpdXMpIHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLXRpbnkpO1xuXHRcdGZvbnQtZmFtaWx5OiB2YXIoLS1jay1mb250LWZhY2UpO1xuXHR9XG5cblx0JltkaXI9XCJydGxcIl06OmJlZm9yZSB7XG5cdFx0bGVmdDogYXV0bztcblx0XHRyaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdH1cblxuXHQvKiBNYWtlIHNwYWNlIGZvciBsYWJlbCBidXQgaXQgb25seSBjb2xsaWRlcyBpbiBMVFIgbGFuZ3VhZ2VzICovXG5cdCZbZGlyPVwibHRyXCJdIC5jay13aWRnZXRfX3R5cGUtYXJvdW5kIC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24uY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uX2JlZm9yZSB7XG5cdFx0bWFyZ2luLWxlZnQ6IDUwcHg7XG5cdH1cblxuXHQuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1ibHVycmVkICYuY2std2lkZ2V0X3NlbGVjdGVkOjpiZWZvcmUge1xuXHRcdHRvcDogMHB4O1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctdGlueSkgdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cblxuXHQuY2suY2stZWRpdG9yX19lZGl0YWJsZTpub3QoLmNrLWJsdXJyZWQpICYuY2std2lkZ2V0X3NlbGVjdGVkOjpiZWZvcmUge1xuXHRcdHRvcDogMDtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpIHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdH1cblxuXHQuY2suY2stZWRpdG9yX19lZGl0YWJsZSAmOm5vdCguY2std2lkZ2V0X3NlbGVjdGVkKTpob3Zlcjo6YmVmb3JlIHtcblx0XHR0b3A6IDBweDtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpIHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG5cblx0LyogLS0tLS0gRW1lYmVkIGludGVybmFscyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQmIC5yYXctaHRtbC1lbWJlZF9fY29udGVudC13cmFwcGVyIHtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0fVxuXG5cdC8qIFRoZSBzd2l0Y2ggbW9kZSBidXR0b24gd3JhcHBlci4gKi9cblx0JiAucmF3LWh0bWwtZW1iZWRfX2J1dHRvbnMtd3JhcHBlciB7XG5cdFx0dG9wOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRyaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHQmIC5jay1idXR0b24ucmF3LWh0bWwtZW1iZWRfX3NhdmUtYnV0dG9uIHtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1idXR0b24tc2F2ZSk7XG5cdFx0fVxuXG5cdFx0JiAuY2stYnV0dG9uLnJhdy1odG1sLWVtYmVkX19jYW5jZWwtYnV0dG9uIHtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1idXR0b24tY2FuY2VsKTtcblx0XHR9XG5cblx0XHQmIC5jay1idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuXHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0fVxuXHR9XG5cblx0JltkaXI9XCJydGxcIl0gLnJhdy1odG1sLWVtYmVkX19idXR0b25zLXdyYXBwZXIge1xuXHRcdGxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdHJpZ2h0OiBhdXRvO1xuXHR9XG5cblx0LyogVGhlIGVkaXQgc291cmNlIGVsZW1lbnQuICovXG5cdCYgLnJhdy1odG1sLWVtYmVkX19zb3VyY2Uge1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0aGVpZ2h0OiB2YXIoLS1jay1odG1sLWVtYmVkLXNvdXJjZS1oZWlnaHQpO1xuXHRcdHdpZHRoOiB2YXIoLS1jay1odG1sLWVtYmVkLWNvbnRlbnQtd2lkdGgpO1xuXHRcdHJlc2l6ZTogbm9uZTtcblx0XHRtaW4td2lkdGg6IDA7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHRmb250LWZhbWlseTogbW9ub3NwYWNlO1xuXHRcdHRhYi1zaXplOiA0O1xuXHRcdHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcblx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKTsgLyogU2FmYXJpIG5lZWRzIHRoaXMuICovXG5cblx0XHQvKiBIVE1MIGNvZGUgaXMgZGlyZWN0aW9u4oCTYWdub3N0aWMuICovXG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRkaXJlY3Rpb246IGx0cjtcblxuXHRcdCZbZGlzYWJsZWRdIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWh0bWwtZW1iZWQtc291cmNlLWRpc2FibGVkLWJhY2tncm91bmQpO1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWh0bWwtZW1iZWQtc291cmNlLWRpc2FibGVkLWNvbG9yKTtcblxuXHRcdFx0LyogU2FmYXJpIG5lZWRzIHRoaXMgZm9yIHRoZSBwcm9wZXIgdGV4dCBjb2xvciBpbiBkaXNhYmxlZCBpbnB1dCAoaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvODMyMCkuICovXG5cdFx0XHQtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdmFyKC0tY2staHRtbC1lbWJlZC1zb3VyY2UtZGlzYWJsZWQtY29sb3IpO1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHR9XG5cdH1cblxuXHQvKiBUaGUgcHJldmlldyBkYXRhIGNvbnRhaW5lci4gKi9cblx0JiAucmF3LWh0bWwtZW1iZWRfX3ByZXZpZXcge1xuXHRcdG1pbi1oZWlnaHQ6IHZhcigtLWNrLWh0bWwtZW1iZWQtY29udGVudC1taW4taGVpZ2h0KTtcblx0XHR3aWR0aDogdmFyKC0tY2staHRtbC1lbWJlZC1jb250ZW50LXdpZHRoKTtcblxuXHRcdC8qIERpc2FibGUgYWxsIG1vdXNlIGludGVyYWN0aW9uIGFzIGxvbmcgYXMgdGhlIGVkaXRvciBpcyBub3QgcmVhZOKAk29ubHkuICovXG5cdFx0LmNrLWVkaXRvcl9fZWRpdGFibGU6bm90KC5jay1yZWFkLW9ubHkpICYge1xuXHRcdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0fVxuXHR9XG5cblx0JiAucmF3LWh0bWwtZW1iZWRfX3ByZXZpZXctY29udGVudCB7XG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWZvcmVncm91bmQpO1xuXG5cdFx0JiA+ICoge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdFx0fVxuXHR9XG5cblx0JiAucmF3LWh0bWwtZW1iZWRfX3ByZXZpZXctcGxhY2Vob2xkZXIge1xuXHRcdGNvbG9yOiB2YXIoLS1jay1odG1sLWVtYmVkLXNvdXJjZS1kaXNhYmxlZC1jb2xvcilcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzXCI7XG5cbjpyb290IHtcblx0LS1jay1pbWFnZS1pbnNlcnQtaW5zZXJ0LWJ5LXVybC13aWR0aDogMjUwcHg7XG59XG5cbi5jay5jay1pbWFnZS1pbnNlcnQtdXJsIHtcblx0LS1jay1pbnB1dC13aWR0aDogMTAwJTtcblxuXHQmIC5jay1pbWFnZS1pbnNlcnQtdXJsX19hY3Rpb24tcm93IHtcblx0XHRncmlkLWNvbHVtbi1nYXA6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXG5cdFx0JiAuY2stYnV0dG9uLXNhdmUsXG5cdFx0JiAuY2stYnV0dG9uLWNhbmNlbCB7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdG1pbi13aWR0aDogYXV0bztcblx0XHR9XG5cblx0XHQmIC5jay1idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLXRleHQpO1xuXHRcdH1cblx0fVxufVxuXG4uY2suY2staW1hZ2UtaW5zZXJ0LWZvcm0ge1xuXHQmID4gLmNrLmNrLWJ1dHRvbiB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0d2lkdGg6IDEwMCU7XG5cblx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdH1cblxuXHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdH1cblx0fVxuXG5cdCYgPiAuY2suY2stY29sbGFwc2libGUge1xuXHRcdCY6bm90KDpmaXJzdC1jaGlsZCkge1xuXHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHR9XG5cblx0XHQmOm5vdCg6bGFzdC1jaGlsZCkge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHR9XG5cblx0XHRtaW4td2lkdGg6IHZhcigtLWNrLWltYWdlLWluc2VydC1pbnNlcnQtYnktdXJsLXdpZHRoKTtcblx0fVxuXG5cdC8qIFRoaXMgaXMgdGhlIGNhc2Ugd2hlbiB0aGVyZSBhcmUgbm8gb3RoZXIgaW50ZWdyYXRpb25zIGNvbmZpZ3VyZWQgdGhhbiBpbnNlcnQgYnkgVVJMICovXG5cdCYgPiAuY2suY2staW1hZ2UtaW5zZXJ0LXVybCB7XG5cdFx0bWluLXdpZHRoOiB2YXIoLS1jay1pbWFnZS1pbnNlcnQtaW5zZXJ0LWJ5LXVybC13aWR0aCk7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdH1cblxuXHQmOmZvY3VzIHtcblx0XHRvdXRsaW5lOiBub25lO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLWltYWdlLXVwbG9hZC1pY29uOiBoc2woMCwgMCUsIDEwMCUpO1xuXHQtLWNrLWNvbG9yLWltYWdlLXVwbG9hZC1pY29uLWJhY2tncm91bmQ6IGhzbCgxMjAsIDEwMCUsIDI3JSk7XG5cblx0LyogTWF0Y2ggdGhlIGljb24gc2l6ZSB3aXRoIHRoZSBsaW5rZWQgaW1hZ2UgaW5kaWNhdG9yIGJyb3VnaHQgYnkgdGhlIGxpbmsgaW1hZ2UgZmVhdHVyZS4gKi9cblx0LS1jay1pbWFnZS11cGxvYWQtaWNvbi1zaXplOiAyMDtcblx0LS1jay1pbWFnZS11cGxvYWQtaWNvbi13aWR0aDogMnB4O1xuXHQtLWNrLWltYWdlLXVwbG9hZC1pY29uLWlzLXZpc2libGU6IGNsYW1wKDBweCwgMTAwJSAtIDUwcHgsIDFweCk7XG59XG5cbi5jay1pbWFnZS11cGxvYWQtY29tcGxldGUtaWNvbiB7XG5cdG9wYWNpdHk6IDA7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWltYWdlLXVwbG9hZC1pY29uLWJhY2tncm91bmQpO1xuXHRhbmltYXRpb24tbmFtZTogY2stdXBsb2FkLWNvbXBsZXRlLWljb24tc2hvdywgY2stdXBsb2FkLWNvbXBsZXRlLWljb24taGlkZTtcblx0YW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHMsIGZvcndhcmRzO1xuXHRhbmltYXRpb24tZHVyYXRpb246IDUwMG1zLCA1MDBtcztcblxuXHQvKiBUbyBtYWtlIGFuaW1hdGlvbiBzY2FsYWJsZS4gKi9cblx0Zm9udC1zaXplOiBjYWxjKDFweCAqIHZhcigtLWNrLWltYWdlLXVwbG9hZC1pY29uLXNpemUpKTtcblxuXHQvKiBIaWRlIGNvbXBsZXRlZCB1cGxvYWQgaWNvbiBhZnRlciAzIHNlY29uZHMuICovXG5cdGFuaW1hdGlvbi1kZWxheTogMG1zLCAzMDAwbXM7XG5cblx0Lypcblx0ICogVXNlIENTUyBtYXRoIHRvIHNpbXVsYXRlIGNvbnRhaW5lciBxdWVyaWVzLlxuXHQgKiBodHRwczovL2Nzcy10cmlja3MuY29tL3RoZS1yYXZlbi10ZWNobmlxdWUtb25lLXN0ZXAtY2xvc2VyLXRvLWNvbnRhaW5lci1xdWVyaWVzLyN3aGF0LWFib3V0LXNob3dpbmctYW5kLWhpZGluZy10aGluZ3Ncblx0ICovXG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHdpZHRoOiBjYWxjKHZhcigtLWNrLWltYWdlLXVwbG9hZC1pY29uLWlzLXZpc2libGUpICogdmFyKC0tY2staW1hZ2UtdXBsb2FkLWljb24tc2l6ZSkpO1xuXHRoZWlnaHQ6IGNhbGModmFyKC0tY2staW1hZ2UtdXBsb2FkLWljb24taXMtdmlzaWJsZSkgKiB2YXIoLS1jay1pbWFnZS11cGxvYWQtaWNvbi1zaXplKSk7XG5cblx0LyogVGhpcyBpcyBjaGVjayBpY29uIGVsZW1lbnQgbWFkZSBmcm9tIGJvcmRlci13aWR0aCBtaXhlZCB3aXRoIGFuaW1hdGlvbnMuICovXG5cdCY6OmFmdGVyIHtcblx0XHQvKiBCZWNhdXNlIG9mIGJvcmRlciB0cmFuc2Zvcm1hdGlvbiB3ZSBuZWVkIHRvIFwiaGFyZCBjb2RlXCIgbGVmdCBwb3NpdGlvbi4gKi9cblx0XHRsZWZ0OiAyNSU7XG5cblx0XHR0b3A6IDUwJTtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdGhlaWdodDogMDtcblx0XHR3aWR0aDogMDtcblxuXHRcdHRyYW5zZm9ybTogc2NhbGVYKC0xKSByb3RhdGUoMTM1ZGVnKTtcblx0XHR0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcblx0XHRib3JkZXItdG9wOiB2YXIoLS1jay1pbWFnZS11cGxvYWQtaWNvbi13aWR0aCkgc29saWQgdmFyKC0tY2stY29sb3ItaW1hZ2UtdXBsb2FkLWljb24pO1xuXHRcdGJvcmRlci1yaWdodDogdmFyKC0tY2staW1hZ2UtdXBsb2FkLWljb24td2lkdGgpIHNvbGlkIHZhcigtLWNrLWNvbG9yLWltYWdlLXVwbG9hZC1pY29uKTtcblxuXHRcdGFuaW1hdGlvbi1uYW1lOiBjay11cGxvYWQtY29tcGxldGUtaWNvbi1jaGVjaztcblx0XHRhbmltYXRpb24tZHVyYXRpb246IDUwMG1zO1xuXHRcdGFuaW1hdGlvbi1kZWxheTogNTAwbXM7XG5cdFx0YW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XG5cblx0XHQvKiAjMTA5NS4gV2hpbGUgcmVzZXQgaXMgbm90IHByb3ZpZGluZyBwcm9wZXIgYm94LXNpemluZyBmb3IgcHNldWRvZWxlbWVudHMsIHdlIG5lZWQgdG8gaGFuZGxlIGl0LiAqL1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdH1cblxuXHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdGFuaW1hdGlvbi1kdXJhdGlvbjogMG1zO1xuXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0YW5pbWF0aW9uOiBub25lO1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdHdpZHRoOiAwLjNlbTtcblx0XHRcdGhlaWdodDogMC40NWVtO1xuXHRcdH1cblx0fVxufVxuXG5Aa2V5ZnJhbWVzIGNrLXVwbG9hZC1jb21wbGV0ZS1pY29uLXNob3cge1xuXHRmcm9tIHtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG5cblx0dG8ge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cbn1cblxuQGtleWZyYW1lcyBjay11cGxvYWQtY29tcGxldGUtaWNvbi1oaWRlIHtcblx0ZnJvbSB7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxuXG5cdHRvIHtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgY2stdXBsb2FkLWNvbXBsZXRlLWljb24tY2hlY2sge1xuXHQwJSB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHR3aWR0aDogMDtcblx0XHRoZWlnaHQ6IDA7XG5cdH1cblx0MzMlIHtcblx0XHR3aWR0aDogMC4zZW07XG5cdFx0aGVpZ2h0OiAwO1xuXHR9XG5cdDEwMCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0d2lkdGg6IDAuM2VtO1xuXHRcdGhlaWdodDogMC40NWVtO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stY29sb3ItdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlcjogaHNsKDAsIDAlLCA3MCUpO1xuXHQtLWNrLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXItc2l6ZTogMzJweDtcblx0LS1jay11cGxvYWQtcGxhY2Vob2xkZXItaW1hZ2UtYXNwZWN0LXJhdGlvOiAyLjg7XG59XG5cbi5jayAuY2staW1hZ2UtdXBsb2FkLXBsYWNlaG9sZGVyIHtcblx0LyogV2UgbmVlZCB0byBjb250cm9sIHRoZSBmdWxsIHdpZHRoIG9mIHRoZSBTVkcgZ3JheSBiYWNrZ3JvdW5kLiAqL1xuXHR3aWR0aDogMTAwJTtcblx0bWFyZ2luOiAwO1xuXG5cdCYuaW1hZ2UtaW5saW5lIHtcblx0XHR3aWR0aDogY2FsYyggMiAqIHZhcigtLWNrLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXItc2l6ZSkgKiB2YXIoLS1jay11cGxvYWQtcGxhY2Vob2xkZXItaW1hZ2UtYXNwZWN0LXJhdGlvKSApO1xuXHR9XG5cblx0JiBpbWcge1xuXHRcdC8qXG5cdFx0ICogVGhpcyBpcyBhbiBhcmJpdHJhcnkgYXNwZWN0IGZvciBhIDF4MSBweCBHSUYgdG8gZGlzcGxheSB0byB0aGUgdXNlci4gTm90IHRvbyB0YWxsLCBub3QgdG9vIHNob3J0LlxuXHRcdCAqIFRoZXJlJ3Mgbm90aGluZyBzcGVjaWFsIGFib3V0IHRoaXMgbnVtYmVyIGV4Y2VwdCB0aGF0IGl0IHNob3VsZCBtYWtlIHRoZSBpbWFnZSBwbGFjZWhvbGRlciBsb29rIGxpa2Vcblx0XHQgKiBhIHJlYWwgaW1hZ2UgZHVyaW5nIHRoaXMgc2hvcnQgcGVyaW9kIGFmdGVyIHRoZSB1cGxvYWQgc3RhcnRlZCBhbmQgYmVmb3JlIHRoZSBpbWFnZSB3YXMgcmVhZCBmcm9tIHRoZVxuXHRcdCAqIGZpbGUgc3lzdGVtIChhbmQgYSByaWNoIHByZXZpZXcgd2FzIGxvYWRlZCkuXG5cdFx0ICovXG5cdFx0YXNwZWN0LXJhdGlvOiB2YXIoLS1jay11cGxvYWQtcGxhY2Vob2xkZXItaW1hZ2UtYXNwZWN0LXJhdGlvKTtcblx0fVxufVxuXG4uY2sgLmNrLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXIge1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXG5cdCY6OmJlZm9yZSB7XG5cdFx0d2lkdGg6IHZhcigtLWNrLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXItc2l6ZSk7XG5cdFx0aGVpZ2h0OiB2YXIoLS1jay11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyLXNpemUpO1xuXHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHRib3JkZXItdG9wOiAzcHggc29saWQgdmFyKC0tY2stY29sb3ItdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlcik7XG5cdFx0Ym9yZGVyLXJpZ2h0OiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0YW5pbWF0aW9uOiBjay11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyIDFzIGxpbmVhciBpbmZpbml0ZTtcblx0fVxufVxuXG5Aa2V5ZnJhbWVzIGNrLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXIge1xuXHR0byB7XG5cdFx0dHJhbnNmb3JtOiByb3RhdGUoIDM2MGRlZyApO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSB7XG5cdCYgLmltYWdlLFxuXHQmIC5pbWFnZS1pbmxpbmUge1xuXHRcdC8qIFNob3dpbmcgYW5pbWF0aW9uLiAqL1xuXHRcdCYuY2stYXBwZWFyIHtcblx0XHRcdGFuaW1hdGlvbjogZmFkZUluIDcwMG1zO1xuXG5cdFx0XHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0XHRhbmltYXRpb246IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyogVXBsb2FkIHByb2dyZXNzIGJhci4gKi9cblx0JiAuaW1hZ2UgLmNrLXByb2dyZXNzLWJhcixcblx0JiAuaW1hZ2UtaW5saW5lIC5jay1wcm9ncmVzcy1iYXIge1xuXHRcdGhlaWdodDogMnB4O1xuXHRcdHdpZHRoOiAwO1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXVwbG9hZC1iYXItYmFja2dyb3VuZCk7XG5cdFx0dHJhbnNpdGlvbjogd2lkdGggMTAwbXM7XG5cdH1cbn1cblxuQGtleWZyYW1lcyBmYWRlSW4ge1xuXHRmcm9tIHsgb3BhY2l0eTogMDsgfVxuXHR0byAgIHsgb3BhY2l0eTogMTsgfVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19yd2QuY3NzXCI7XG5cbjpyb290IHtcblx0LS1jay10ZXh0LWFsdGVybmF0aXZlLWZvcm0td2lkdGg6IDM0MHB4O1xufVxuXG5AbWl4aW4gY2stbWVkaWEtcGhvbmUge1xuXHQ6cm9vdCB7XG5cdFx0LS1jay10ZXh0LWFsdGVybmF0aXZlLWZvcm0td2lkdGg6IDMwMHB4O1xuXHR9XG59XG5cbi5jay5jay10ZXh0LWFsdGVybmF0aXZlLWZvcm0ge1xuXHQmLmNrLXJlc3BvbnNpdmUtZm9ybSB7XG5cdFx0d2lkdGg6IHZhcigtLWNrLXRleHQtYWx0ZXJuYXRpdmUtZm9ybS13aWR0aCk7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fcndkLmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2staW1hZ2UtY3VzdG9tLXJlc2l6ZS1mb3JtLXdpZHRoOiAzNDBweDtcbn1cblxuQG1peGluIGNrLW1lZGlhLXBob25lIHtcblx0OnJvb3Qge1xuXHRcdC0tY2staW1hZ2UtY3VzdG9tLXJlc2l6ZS1mb3JtLXdpZHRoOiAzMDBweDtcblx0fVxufVxuXG4uY2suY2staW1hZ2UtY3VzdG9tLXJlc2l6ZS1mb3JtIHtcblx0Ji5jay1yZXNwb25zaXZlLWZvcm0ge1xuXHRcdHdpZHRoOiB2YXIoLS1jay1pbWFnZS1jdXN0b20tcmVzaXplLWZvcm0td2lkdGgpO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKiBDbGFzcyBhZGRlZCB0byBzcGFuIGVsZW1lbnQgc3Vycm91bmRpbmcgY3VycmVudGx5IHNlbGVjdGVkIGxpbmsuICovXG4uY2sgLmNrLWxpbmtfc2VsZWN0ZWQge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saW5rLXNlbGVjdGVkLWJhY2tncm91bmQpO1xuXG5cdC8qIEdpdmUgbGlua2VkIGlubGluZSBpbWFnZXMgc29tZSBvdXRsaW5lIHRvIGxldCB0aGUgdXNlciBrbm93IHRoZXkgYXJlIGFsc28gcGFydCBvZiB0aGUgbGluay4gKi9cblx0JiBzcGFuLmltYWdlLWlubGluZSB7XG5cdFx0b3V0bGluZTogdmFyKC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzKSBzb2xpZCB2YXIoLS1jay1jb2xvci1saW5rLXNlbGVjdGVkLWJhY2tncm91bmQpO1xuXHR9XG59XG5cbi8qXG4gKiBDbGFzc2VzIHVzZWQgYnkgdGhlIFwiZmFrZSB2aXN1YWwgc2VsZWN0aW9uXCIgZGlzcGxheWVkIGluIHRoZSBjb250ZW50IHdoZW4gYW4gaW5wdXRcbiAqIGluIHRoZSBsaW5rIFVJIGhhcyBmb2N1cyAodGhlIGJyb3dzZXIgZG9lcyBub3QgcmVuZGVyIHRoZSBuYXRpdmUgc2VsZWN0aW9uIGluIHRoaXMgc3RhdGUpLlxuICovXG4uY2sgLmNrLWZha2UtbGluay1zZWxlY3Rpb24ge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saW5rLWZha2Utc2VsZWN0aW9uKTtcbn1cblxuLyogQSBjb2xsYXBzZWQgZmFrZSB2aXN1YWwgc2VsZWN0aW9uLiAqL1xuLmNrIC5jay1mYWtlLWxpbmstc2VsZWN0aW9uX2NvbGxhcHNlZCB7XG5cdGhlaWdodDogMTAwJTtcblx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS10ZXh0KTtcblx0bWFyZ2luLXJpZ2h0OiAtMXB4O1xuXHRvdXRsaW5lOiBzb2xpZCAxcHggaHNsYSgwLCAwJSwgMTAwJSwgLjUpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzXCI7XG5cbjpyb290IHtcblx0LS1jay1saW5rLWJvb2ttYXJrLWljb24tc2l6ZTogY2FsYyggdmFyKC0tY2staWNvbi1zaXplKSAqIDAuNyk7IC8qIDAuNyA9IDE0LzIwIGNhdXNlIGRlZmF1bHQgdGhlIGljb24gc2l6ZSBpcyAyMHB4ICovXG59XG5cbi5jay5jay10b29sYmFyLmNrLWxpbmstdG9vbGJhciB7XG5cdCYgPiAuY2stdG9vbGJhcl9faXRlbXMge1xuXHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHR9XG59XG5cbmEuY2suY2stYnV0dG9uLmNrLWxpbmstdG9vbGJhcl9fcHJldmlldyB7XG5cdHBhZGRpbmc6IDAgdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRjb2xvcjogdmFyKC0tY2stY29sb3ItbGluay1kZWZhdWx0KTtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuXHQmIC5jay5jay1idXR0b25fX2xhYmVsIHtcblx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblxuXHRcdC8qIE1hdGNoIHRoZSBib3ggbW9kZWwgb2YgdGhlIGxpbmsgZWRpdG9yIGZvcm0ncyBpbnB1dCBzbyB0aGUgYmFsbG9vblxuXHRcdGRvZXMgbm90IGNoYW5nZSB3aWR0aCB3aGVuIG1vdmluZyBiZXR3ZWVuIGFjdGlvbnMgYW5kIHRoZSBmb3JtLiAqL1xuXHRcdG1heC13aWR0aDogdmFyKC0tY2staW5wdXQtd2lkdGgpO1xuXHR9XG5cblx0Jixcblx0Jjpob3Zlcixcblx0Jjpmb2N1cyxcblx0JjphY3RpdmUge1xuXHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdH1cblxuXHQmOmFjdGl2ZSB7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0fVxuXG5cdCY6aG92ZXIsXG5cdCY6Zm9jdXMge1xuXHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHR9XG5cblx0Ji5jay1idXR0b25fd2l0aC10ZXh0IC5jay5jay1pY29uLmNrLWJ1dHRvbl9faWNvbiB7XG5cdFx0d2lkdGg6IHZhcigtLWNrLWxpbmstYm9va21hcmstaWNvbi1zaXplKTtcblx0XHRoZWlnaHQ6IHZhcigtLWNrLWxpbmstYm9va21hcmstaWNvbi1zaXplKTtcblxuXHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy10aW55KTtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG5cblx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy10aW55KTtcblx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0fVxuXHR9XG5cblx0JjpoYXMoIC5jay1pY29uICkge1xuXHRcdHBhZGRpbmctbGVmdDogdmFyKC0tY2stc3BhY2luZy1leHRyYS10aW55ICk7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19yd2QuY3NzXCI7XG5cbjpyb290IHtcblx0LS1jay1saW5rLXBhbmVsLXdpZHRoOiAzNDBweDtcblx0LyogVGhlIGhlaWdodCBvZiB0aGUgdGV4dCBpbnNpZGUgdGhlIGxpbmsgcHJvdmlkZXJzIGxpc3QgYnV0dG9uLiAqL1xuXHQtLWNrLWxpbmstcHJvdmlkZXItbGlzdC1pdGVtLXRleHQtaGVpZ2h0OiBjYWxjKHZhcigtLWNrLWxpbmUtaGVpZ2h0LWJhc2UpICogdmFyKC0tY2stZm9udC1zaXplLWJhc2UpKTtcblx0LyogVGhlIGhlaWdodCBvZiB0aGUgbGluayBwcm92aWRlcnMgbGlzdCBpdGVtIGNvbnRhaW5lZCBwYWRkaW5ncy4gKi9cblx0LS1jay1saW5rLXByb3ZpZGVyLWxpc3QtaXRlbS1oZWlnaHQ6IGNhbGModmFyKC0tY2stbGluay1wcm92aWRlci1saXN0LWl0ZW0tdGV4dC1oZWlnaHQpICsgdmFyKC0tY2stc3BhY2luZy1zbWFsbCkgKyB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSk7XG59XG5cbkBtaXhpbiBjay1tZWRpYS1waG9uZSB7XG5cdDpyb290IHtcblx0XHQtLWNrLWxpbmstcGFuZWwtd2lkdGg6IDMwMHB4O1xuXHR9XG59XG5cbi8qIEdlbmVyaWMgY2xhc3MgdGhhdCB3cmFwcyBlYWNoIGxpbmsgYmFsbG9vbiB2aWV3LiAqL1xuLmNrLmNrLWZvcm0uY2stbGluay1mb3JtIHtcblx0d2lkdGg6IHZhcigtLWNrLWxpbmstcGFuZWwtd2lkdGgpO1xuXHRwYWRkaW5nLWJvdHRvbTogMDtcblxuXHQmLmNrLXJlc3BvbnNpdmUtZm9ybSB7XG5cdFx0JiAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRcdEBtaXhpbiBjay1tZWRpYS1waG9uZSB7XG5cdFx0XHRcdG1hcmdpbjogMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmIC5jay1saW5rLWZvcm1fX3Byb3ZpZGVycy1saXN0IHtcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXG5cdFx0LyogVGhlIGxpc3Qgc2hvdWxkIGJlIHNjcm9sbGFibGUgd2hlbiB0aGVyZSBhcmUgbW9yZSB0aGFuIDQgaXRlbXMuICovXG5cdFx0JjpoYXMoLmNrLWxpc3RfX2l0ZW06bnRoLWNoaWxkKG4gKyA1KSkge1xuXHRcdFx0b3ZlcmZsb3c6IGF1dG87XG5cdFx0XHQvKiBTY3JvbGwgc2hvdWxkIGFwcGVhciB3aGVuIHRoZXJlIGFyZSBtb3JlIHRoYW4gNSBpdGVtIG9uIHRoZSBsaXN0LlxuXHRcdFx0KiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSAtIGlzIGEgZm9ybSBwYWRkaW5nLlxuXHRcdFx0KiAxcHggLSBpcyBhIGJvcmRlciB3aWR0aC4gKi9cblx0XHRcdG1heC1oZWlnaHQ6IGNhbGModmFyKC0tY2stbGluay1wcm92aWRlci1saXN0LWl0ZW0taGVpZ2h0KSAqIDQgKyB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSArIDFweCk7XG5cdFx0fVxuXG5cdFx0JiAuY2stbGlua19fYnV0dG9uIHtcblx0XHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHRcdFx0JiA+IC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC8qIE1hdGNoIHRoZSBpY29uIHNpemUgd2l0aCB0aGUgdXBsb2FkIGluZGljYXRvciBicm91Z2h0IGJ5IHRoZSBpbWFnZSB1cGxvYWQgZmVhdHVyZS4gKi9cblx0LS1jay1saW5rLWltYWdlLWluZGljYXRvci1pY29uLXNpemU6IDIwO1xuXHQtLWNrLWxpbmstaW1hZ2UtaW5kaWNhdG9yLWljb24taXMtdmlzaWJsZTogY2xhbXAoMHB4LCAxMDAlIC0gNTBweCwgMXB4KTtcbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUge1xuXHQvKiBMaW5rZWQgaW1hZ2UgaW5kaWNhdG9yICovXG5cdCYgZmlndXJlLmltYWdlID4gYSxcblx0JiBhIHNwYW4uaW1hZ2UtaW5saW5lIHtcblx0XHQmOjphZnRlciB7XG5cdFx0XHRjb250ZW50OiBcIlwiO1xuXG5cdFx0XHQvKlxuXHRcdFx0ICogU21hbGxlciBpbWFnZXMgc2hvdWxkIGhhdmUgdGhlIGljb24gY2xvc2VyIHRvIHRoZSBib3JkZXIuXG5cdFx0XHQgKiBNYXRjaCB0aGUgaWNvbiBwb3NpdGlvbiB3aXRoIHRoZSB1cGxvYWQgaW5kaWNhdG9yIGJyb3VnaHQgYnkgdGhlIGltYWdlIHVwbG9hZCBmZWF0dXJlLlxuXHRcdFx0ICovXG5cdFx0XHR0b3A6IG1pbih2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSksIDYlKTtcblx0XHRcdHJpZ2h0OiBtaW4odmFyKC0tY2stc3BhY2luZy1tZWRpdW0pLCA2JSk7XG5cblx0XHRcdGJhY2tncm91bmQtY29sb3I6IGhzbGEoMCwgMCUsIDAlLCAuNCk7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIyYVdWM1FtOTRQU0l3SURBZ01qQWdNakFpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUkrUEhCaGRHZ2dabWxzYkQwaUkyWm1aaUlnWkQwaWJURXhMakEzTnlBeE5TQXVPVGt4TFRFdU5ERTJZUzQzTlM0M05TQXdJREVnTVNBeExqSXlPUzQ0Tm13dE1TNHhORGdnTVM0Mk5HRXVOelE0TGpjME9DQXdJREFnTVMwdU1qRTNMakl3TmlBMUxqSTFNU0ExTGpJMU1TQXdJREFnTVMwNExqVXdNeTAxTGprMU5TNDNOREV1TnpReElEQWdNQ0F4SUM0eE1pMHVNamMwYkRFdU1UUTNMVEV1TmpNNVlTNDNOUzQzTlNBd0lERWdNU0F4TGpJeU9DNDROa3cwTGprek15QXhNQzQzYkM0d01EWXVNREF6WVRNdU56VWdNeTQzTlNBd0lEQWdNQ0EyTGpFek1pQTBMakk1Tkd3dU1EQTJMakF3TkhwdE5TNDBPVFF0TlM0ek16VmhMamMwT0M0M05EZ2dNQ0F3SURFdExqRXlMakkzTkd3dE1TNHhORGNnTVM0Mk16bGhMamMxTGpjMUlEQWdNU0F4TFRFdU1qSTRMUzQ0Tm13dU9EWXRNUzR5TTJFekxqYzFJRE11TnpVZ01DQXdJREF0Tmk0eE5EUXROQzR6TURGc0xTNDROaUF4TGpJeU9XRXVOelV1TnpVZ01DQXdJREV0TVM0eU1qa3RMamcyYkRFdU1UUTRMVEV1TmpSaExqYzBPQzQzTkRnZ01DQXdJREVnTGpJeE55MHVNakEySURVdU1qVXhJRFV1TWpVeElEQWdNQ0F4SURndU5UQXpJRFV1T1RVMWVtMHROQzQxTmpNdE1pNDFNekpoTGpjMUxqYzFJREFnTUNBeElDNHhPRFFnTVM0d05EVnNMVE11TVRVMUlEUXVOVEExWVM0M05TNDNOU0F3SURFZ01TMHhMakl5T1MwdU9EWnNNeTR4TlRVdE5DNDFNRFpoTGpjMUxqYzFJREFnTUNBeElERXVNRFExTFM0eE9EUjZJaTgrUEM5emRtYytcIik7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDE0cHg7XG5cdFx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMTAwJTtcblxuXHRcdFx0Lypcblx0XHRcdCogVXNlIENTUyBtYXRoIHRvIHNpbXVsYXRlIGNvbnRhaW5lciBxdWVyaWVzLlxuXHRcdFx0KiBodHRwczovL2Nzcy10cmlja3MuY29tL3RoZS1yYXZlbi10ZWNobmlxdWUtb25lLXN0ZXAtY2xvc2VyLXRvLWNvbnRhaW5lci1xdWVyaWVzLyN3aGF0LWFib3V0LXNob3dpbmctYW5kLWhpZGluZy10aGluZ3Ncblx0XHRcdCovXG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0d2lkdGg6IGNhbGModmFyKC0tY2stbGluay1pbWFnZS1pbmRpY2F0b3ItaWNvbi1pcy12aXNpYmxlKSAqIHZhcigtLWNrLWxpbmstaW1hZ2UtaW5kaWNhdG9yLWljb24tc2l6ZSkpO1xuXHRcdFx0aGVpZ2h0OiBjYWxjKHZhcigtLWNrLWxpbmstaW1hZ2UtaW5kaWNhdG9yLWljb24taXMtdmlzaWJsZSkgKiB2YXIoLS1jay1saW5rLWltYWdlLWluZGljYXRvci1pY29uLXNpemUpKTtcblx0XHR9XG5cdH1cbn1cblxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19yd2QuY3NzXCI7XG5cbjpyb290IHtcblx0LS1jay1saW5rLXByb3BlcnRpZXMtd2lkdGg6IDM0MHB4O1xufVxuXG5AbWl4aW4gY2stbWVkaWEtcGhvbmUge1xuXHQ6cm9vdCB7XG5cdFx0LS1jay1saW5rLXByb3BlcnRpZXMtd2lkdGg6IDMwMHB4O1xuXHR9XG59XG5cbi5jay5jay1saW5rLXByb3BlcnRpZXMge1xuXHR3aWR0aDogdmFyKC0tY2stbGluay1wcm9wZXJ0aWVzLXdpZHRoKTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fcndkLmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stbGluay1wcm92aWRlcnMtd2lkdGg6IDM0MHB4O1xuXHQtLWNrLWxpbmstbGlzdC12aWV3LW1heC1oZWlnaHQ6IDI0MHB4O1xuXHQtLWNrLWxpbmstbGlzdC12aWV3LWljb24tc2l6ZTogY2FsYyggdmFyKC0tY2staWNvbi1zaXplKSAqIDAuOCk7IC8qIDAuOCA9IDE2LzIwIGNhdXNlIGRlZmF1bHQgdGhlIGljb24gc2l6ZSBpcyAyMHB4ICovXG59XG5cbkBtaXhpbiBjay1tZWRpYS1waG9uZSB7XG5cdDpyb290IHtcblx0XHQtLWNrLWxpbmstcHJvdmlkZXJzLXdpZHRoOiAzMDBweDtcblx0fVxufVxuXG4uY2suY2stbGluay1wcm92aWRlcnMge1xuXHR3aWR0aDogdmFyKC0tY2stbGluay1wcm92aWRlcnMtd2lkdGgpO1xuXG5cdCYgLmNrLWZvcm1fX2hlYWRlcl9fbGFiZWwge1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdH1cblxuXHQmID4gLmNrLWxpbmstcHJvdmlkZXJzX19saXN0IHtcblx0XHRtYXgtaGVpZ2h0OiBtaW4oIHZhcigtLWNrLWxpbmstbGlzdC12aWV3LW1heC1oZWlnaHQpLCA0MHZoICk7XG5cblx0XHQmIC5jay1idXR0b24ge1xuXHRcdFx0JiA+IC5jay1pY29uIHtcblx0XHRcdFx0d2lkdGg6IHZhcigtLWNrLWxpbmstbGlzdC12aWV3LWljb24tc2l6ZSk7XG5cdFx0XHRcdGhlaWdodDogdmFyKC0tY2stbGluay1saXN0LXZpZXctaWNvbi1zaXplKTtcblx0XHRcdH1cblxuXHRcdFx0JiA+IC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0XHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0JiAuY2stbGlua19fZW1wdHktbGlzdC1pbmZvIHtcblx0XHRwYWRkaW5nOiBjYWxjKCAyICogdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgKSB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWxpc3QtcHJvcGVydGllcyB7XG5cdC8qIFdoZW4gdGhlcmUgYXJlIG5vIGxpc3Qgc3R5bGVzIGFuZCB0aGVyZSBpcyBubyBjb2xsYXBzaWJsZS4gKi9cblx0Ji5jay1saXN0LXByb3BlcnRpZXNfd2l0aG91dC1zdHlsZXMge1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXG5cdFx0JiA+ICoge1xuXHRcdFx0bWluLXdpZHRoOiAxNGVtO1xuXG5cdFx0XHQmICsgKiB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qXG5cdCAqIFdoZW4gdGhlIG51bWJlcmVkIGxpc3QgcHJvcGVydHkgZmllbGRzIChzdGFydCBhdCwgcmV2ZXJzZWQpIHNob3VsZCBiZSBkaXNwbGF5ZWQsXG5cdCAqIG1vcmUgaG9yaXpvbnRhbCBzcGFjZSBpcyBuZWVkZWQuIFJlY29uZmlndXJlIHRoZSBzdHlsZSBncmlkIHRvIGNyZWF0ZSB0aGF0IHNwYWNlLlxuXHQgKi9cblx0Ji5jay1saXN0LXByb3BlcnRpZXNfd2l0aC1udW1iZXJlZC1wcm9wZXJ0aWVzIHtcblx0XHQmID4gLmNrLWxpc3Qtc3R5bGVzLWxpc3Qge1xuXHRcdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoIDQsIGF1dG8gKTtcblx0XHR9XG5cblx0XHQvKiBXaGVuIGxpc3Qgc3R5bGVzIGFyZSByZW5kZXJlZCBhbmQgcHJvcGVydHkgZmllbGRzIGFyZSBpbiBhIGNvbGxhcHNpYmxlLiAqL1xuXHRcdCYgPiAuY2stY29sbGFwc2libGUge1xuXHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblxuXHRcdFx0JiA+IC5jay1jb2xsYXBzaWJsZV9fY2hpbGRyZW4ge1xuXHRcdFx0XHQmID4gKiB7XG5cdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cblx0XHRcdFx0XHQmICsgKiB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmIC5jay5jay1udW1iZXJlZC1saXN0LXByb3BlcnRpZXNfX3N0YXJ0LWluZGV4IC5jay1pbnB1dCB7XG5cdFx0bWluLXdpZHRoOiBhdXRvO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cblx0JiAuY2suY2stbnVtYmVyZWQtbGlzdC1wcm9wZXJ0aWVzX19yZXZlcnNlZC1vcmRlciB7XG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHRcdHBhZGRpbmctcmlnaHQ6IDA7XG5cdFx0bWFyZ2luLWJvdHRvbTogY2FsYygtMSAqIHZhcigtLWNrLXNwYWNpbmctdGlueSkpO1xuXG5cdFx0JjphY3RpdmUsICY6aG92ZXIge1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWxpc3Qtc3R5bGUtYnV0dG9uLXNpemU6IDQ0cHg7XG59XG5cbi5jay5jay1saXN0LXN0eWxlcy1saXN0IHtcblx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoIDMsIGF1dG8gKTtcblx0cm93LWdhcDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRjb2x1bW4tZ2FwOiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXG5cdCYgLmNrLWJ1dHRvbiB7XG5cdFx0LyogTWFrZSB0aGUgYnV0dG9uIGxvb2sgbGlrZSBhIHRodW1ibmFpbCAodGhlIGljb24gXCJ0YWtlcyBpdCBhbGxcIikuICovXG5cdFx0d2lkdGg6IHZhcigtLWNrLWxpc3Qtc3R5bGUtYnV0dG9uLXNpemUpO1xuXHRcdGhlaWdodDogdmFyKC0tY2stbGlzdC1zdHlsZS1idXR0b24tc2l6ZSk7XG5cdFx0cGFkZGluZzogMDtcblxuXHRcdC8qXG5cdFx0ICogQnV0dG9ucyBhcmUgYWxpZ25lZCBieSB0aGUgZ3JpZCBzbyBkaXNhYmxlIGRlZmF1bHQgYnV0dG9uIG1hcmdpbnMgdG8gbm90IGNvbGxpZGUgd2l0aCB0aGVcblx0XHQgKiBnYXBzIGluIHRoZSBncmlkLlxuXHRcdCAqL1xuXHRcdG1hcmdpbjogMDtcblxuXHRcdC8qXG5cdFx0ICogTWFrZSBzdXJlIHRoZSBidXR0b24gYm9yZGVyICh3aGljaCBpcyBkaXNwbGF5ZWQgb24gZm9jdXMsIEJUVykgZG9lcyBub3Qgc3RlYWwgcGl4ZWxzXG5cdFx0ICogZnJvbSB0aGUgYnV0dG9uIGRpbWVuc2lvbnMgYW5kLCBhcyBhIHJlc3VsdCwgZGVjcmVhc2UgdGhlIHNpemUgb2YgdGhlIGljb25cblx0XHQgKiAod2hpY2ggYmVjb21lcyBibHVycnkgYXMgaXQgc2NhbGVzIGRvd24pLlxuXHRcdCAqL1xuXHRcdGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuXG5cdFx0JiAuY2staWNvbiB7XG5cdFx0XHR3aWR0aDogdmFyKC0tY2stbGlzdC1zdHlsZS1idXR0b24tc2l6ZSk7XG5cdFx0XHRoZWlnaHQ6IHZhcigtLWNrLWxpc3Qtc3R5bGUtYnV0dG9uLXNpemUpO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLW1lZGlhLWVtYmVkLXBsYWNlaG9sZGVyLWljb24tc2l6ZTogM2VtO1xuXG5cdC0tY2stY29sb3ItbWVkaWEtZW1iZWQtcGxhY2Vob2xkZXItdXJsLXRleHQ6IGhzbCgwLCAwJSwgNDYlKTtcblx0LS1jay1jb2xvci1tZWRpYS1lbWJlZC1wbGFjZWhvbGRlci11cmwtdGV4dC1ob3ZlcjogdmFyKC0tY2stY29sb3ItYmFzZS10ZXh0KTtcbn1cblxuLmNrLW1lZGlhX193cmFwcGVyIHtcblx0bWFyZ2luOiAwIGF1dG87XG5cblx0JiAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIHtcblx0XHRwYWRkaW5nOiBjYWxjKCAzICogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkgKTtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWZvcmVncm91bmQpO1xuXG5cdFx0JiAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uIHtcblx0XHRcdG1pbi13aWR0aDogdmFyKC0tY2stbWVkaWEtZW1iZWQtcGxhY2Vob2xkZXItaWNvbi1zaXplKTtcblx0XHRcdGhlaWdodDogdmFyKC0tY2stbWVkaWEtZW1iZWQtcGxhY2Vob2xkZXItaWNvbi1zaXplKTtcblx0XHRcdG1hcmdpbi1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuXHRcdFx0YmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcblxuXHRcdFx0JiAuY2staWNvbiB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0JiAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX191cmxfX3RleHQge1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLW1lZGlhLWVtYmVkLXBsYWNlaG9sZGVyLXVybC10ZXh0KTtcblx0XHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRmb250LXN0eWxlOiBpdGFsaWM7XG5cdFx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1tZWRpYS1lbWJlZC1wbGFjZWhvbGRlci11cmwtdGV4dC1ob3Zlcik7XG5cdFx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0JltkYXRhLW9lbWJlZC11cmwqPVwib3Blbi5zcG90aWZ5LmNvbVwiXSB7XG5cdFx0bWF4LXdpZHRoOiAzMDBweDtcblx0XHRtYXgtaGVpZ2h0OiAzODBweDtcblx0fVxuXG5cdCZbZGF0YS1vZW1iZWQtdXJsKj1cImdvb2dsZS5jb20vbWFwc1wiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uLFxuXHQmW2RhdGEtb2VtYmVkLXVybCo9XCJnb28uZ2wvbWFwc1wiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uLFxuXHQmW2RhdGEtb2VtYmVkLXVybCo9XCJtYXBzLmdvb2dsZS5jb21cIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbixcblx0JltkYXRhLW9lbWJlZC11cmwqPVwibWFwcy5hcHAuZ29vLmdsXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24ge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGRwWkhSb1BTSXlOVEF1TXpjNElpQm9aV2xuYUhROUlqSTFOQzR4TmpjaUlIWnBaWGRDYjNnOUlqQWdNQ0EyTmk0eU5EWWdOamN1TWpRNElqNDhaeUIwY21GdWMyWnZjbTA5SW5SeVlXNXpiR0YwWlNndE1UY3lMalV6TVNBdE1qRTRMalExTlNrZ2MyTmhiR1VvTGprNE1ERXlLU0krUEhKbFkzUWdjbms5SWpVdU1qTTRJaUJ5ZUQwaU5TNHlNemdpSUhrOUlqSXpNUzR6T1RraUlIZzlJakUzTmk0d016RWlJR2hsYVdkb2REMGlOakF1TURrNUlpQjNhV1IwYUQwaU5qQXVNRGs1SWlCbWFXeHNQU0lqTXpSaE5qWTRJaUJ3WVdsdWRDMXZjbVJsY2owaWJXRnlhMlZ5Y3lCemRISnZhMlVnWm1sc2JDSXZQanh3WVhSb0lHUTlJazB5TURZdU5EYzNJREkyTUM0NWJDMHlPQzQ1T0RjZ01qZ3VPVGczWVRVdU1qRTRJRFV1TWpFNElEQWdNQ0F3SURNdU56Z2dNUzQyTVdnME9TNDJNakZqTVM0Mk9UUWdNQ0F6TGpFNUxTNDNPVGdnTkM0eE5EWXRNaTR3TXpkNklpQm1hV3hzUFNJak5XTTRPR00xSWk4K1BIQmhkR2dnWkQwaVRUSXlOaTQzTkRJZ01qSXlMams0T0dNdE9TNHlOallnTUMweE5pNDNOemNnTnk0eE55MHhOaTQzTnpjZ01UWXVNREUwTGpBd055QXlMamMyTWk0Mk5qTWdOUzQwTnpRZ01pNHdPVE1nTnk0NE56VXVORE11TnpBekxqZ3pJREV1TkRBNElERXVNVGtnTWk0eE1EY3VNek16TGpVd01pNDJOU0F4TGpBd05TNDVOU0F4TGpVd09DNHpORE11TkRjM0xqWTNNeTQ1TlRjdU9UZzRJREV1TkRRZ01TNHpNU0F4TGpjMk9TQXlMalVnTXk0MU1ESWdNeTQyTXpjZ05TNHhOamd1TnpreklERXVNamMxSURFdU5qZ3pJREl1TmpRZ01pNDBOallnTXk0NU9TQXlMak0yTXlBMExqQTVOQ0EwTGpBd055QTRMakE1TWlBMExqWWdNVE11T1RFMGRpNHdNVEpqTGpFNE1pNDBNVEl1TlRFMkxqWTJOaTQ0TnprdU5qWTNMalF3TXkwdU1EQXhMamMyT0MwdU16RTBMamt6TFM0M09Ua3VOakF6TFRVdU56VTJJREl1TWpNNExUa3VOekk1SURRdU5UZzFMVEV6TGpjNU5DNDNPREl0TVM0ek5TQXhMalkzTXkweUxqY3hOU0F5TGpRMk5TMHpMams1SURFdU1UTTNMVEV1TmpZMklESXVNekk0TFRNdU5DQXpMall6T0MwMUxqRTJPUzR6TVRVdExqUTRNaTQyTkRVdExqazJNaTQ1T0RndE1TNDBNemt1TXkwdU5UQXpMall4TnkweExqQXdOaTQ1TlMweExqVXdPQzR6TlRrdExqY3VOell0TVM0ME1EUWdNUzR4T1MweUxqRXdOeUF4TGpReU5pMHlMalF3TWlBeUxUVXVNVEUwSURJdU1EQTBMVGN1T0RjMUlEQXRPQzQ0TkRRdE55NDFNVEV0TVRZdU1ERTBMVEUyTGpjM05pMHhOaTR3TVRSNklpQm1hV3hzUFNJalpHUTBZak5sSWlCd1lXbHVkQzF2Y21SbGNqMGliV0Z5YTJWeWN5QnpkSEp2YTJVZ1ptbHNiQ0l2UGp4bGJHeHBjSE5sSUhKNVBTSTFMalUyTkNJZ2NuZzlJalV1T0RJNElpQmplVDBpTWpNNUxqQXdNaUlnWTNnOUlqSXlOaTQzTkRJaUlHWnBiR3c5SWlNNE1ESmtNamNpSUhCaGFXNTBMVzl5WkdWeVBTSnRZWEpyWlhKeklITjBjbTlyWlNCbWFXeHNJaTgrUEhCaGRHZ2daRDBpVFRFNU1DNHpNREVnTWpNM0xqSTRNMk10TkM0Mk55QXdMVGd1TkRVM0lETXVPRFV6TFRndU5EVTNJRGd1TmpBMmN6TXVOemcySURndU5qQTNJRGd1TkRVM0lEZ3VOakEzWXpNdU1EUXpJREFnTkM0NE1EWXRMamsxT0NBMkxqTXpOeTB5TGpVeE5pQXhMalV6TFRFdU5UVTNJREl1TURnM0xUTXVPVEV6SURJdU1EZzNMVFl1TWprZ01DMHVNell5TFM0d01qTXRMamN5TWkwdU1EWTBMVEV1TURjNWFDMDRMakkxTjNZekxqQTBNMmcwTGpnMVl5MHVNVGszTGpjMU9TMHVOVE14SURFdU5EVXRNUzR3TlRnZ01TNDVPRFl0TGprME1pNDVOVGd0TWk0d01qZ2dNUzQxTkRndE15NDVNREVnTVM0MU5EZ3RNaTQ0TnpZZ01DMDFMakl3T0MweUxqTTNNaTAxTGpJd09DMDFMakk1T1NBd0xUSXVPVEkySURJdU16TXlMVFV1TWprNUlEVXVNakE0TFRVdU1qazVJREV1TXprNUlEQWdNaTQyTVRndU5EQTNJRE11TlRnMElERXVNamt6YkRJdU16Z3hMVEl1TXpoak1DMHVNREF5TFM0d01ETXRMakF3TkMwdU1EQTBMUzR3TURVdE1TNDFPRGd0TVM0MU1qUXRNeTQyTWkweUxqSXhOUzAxTGprMU5TMHlMakl4TlhwdE5DNDBNeUExTGpZMmJDNHdNRE11TURBMmRpMHVNREF6ZWlJZ1ptbHNiRDBpSTJabVppSWdjR0ZwYm5RdGIzSmtaWEk5SW0xaGNtdGxjbk1nYzNSeWIydGxJR1pwYkd3aUx6NDhjR0YwYUNCa1BTSk5NakUxTGpFNE5DQXlOVEV1T1RJNWJDMDNMams0SURjdU9UYzVJREk0TGpRM055QXlPQzQwTnpWakxqSTROeTB1TmpRNUxqUTBPUzB4TGpNMk5pNDBORGt0TWk0eE1qTjJMVE14TGpFMk5XTXRMalEyT1M0Mk56VXRMamt6TkNBeExqTTBPUzB4TGpNNE1pQXlMakF3TlMwdU56a3lJREV1TWpjMUxURXVOamd5SURJdU5qUXRNaTQwTmpVZ015NDVPUzB5TGpNME55QTBMakEyTlMwekxqazRNaUE0TGpBek9DMDBMalU0TlNBeE15NDNPVFF0TGpFMk1pNDBPRFV0TGpVeU55NDNPVGd0TGprekxqYzVPUzB1TXpZekxTNHdNREV0TGpZNU55MHVNalUxTFM0NE56a3RMalkyTjNZdExqQXhNbU10TGpVNU15MDFMamd5TWkweUxqSXpOeTA1TGpneUxUUXVOaTB4TXk0NU1UUXRMamM0TXkweExqTTFMVEV1TmpjekxUSXVOekUxTFRJdU5EWTJMVE11T1RrdE1TNHhNemN0TVM0Mk5qWXRNaTR6TWpjdE15NDBMVE11TmpNM0xUVXVNVFk1YkMwdU1EQXlMUzR3TURONklpQm1hV3hzUFNJall6TmpNMk16SWk4K1BIQmhkR2dnWkQwaVRUSXhNaTQ1T0RNZ01qUTRMalE1Tld3dE16WXVPVFV5SURNMkxqazFNM1l1T0RFeVlUVXVNakkzSURVdU1qSTNJREFnTUNBd0lEVXVNak00SURVdU1qTTRhREV1TURFMWJETTFMalkyTmkwek5TNDJOalpoTVRNMkxqSTNOU0F4TXpZdU1qYzFJREFnTUNBd0xUSXVOelkwTFRNdU9TQXpOeTQxTnpVZ016Y3VOVGMxSURBZ01DQXdMUzQ1T0RrdE1TNDBOR010TGpJNU9TMHVOVEF6TFM0Mk1UWXRNUzR3TURZdExqazFMVEV1TlRBNExTNHdPRE10TGpFMk1pMHVNVGMyTFM0ek1qWXRMakkyTkMwdU5EZzVlaUlnWm1sc2JEMGlJMlprWkdNMFppSWdjR0ZwYm5RdGIzSmtaWEk5SW0xaGNtdGxjbk1nYzNSeWIydGxJR1pwYkd3aUx6NDhjR0YwYUNCa1BTSk5NakV4TGprNU9DQXlOakV1TURnemJDMDJMakUxTWlBMkxqRTFNU0F5TkM0eU5qUWdNalF1TWpZMGFDNDNPREZoTlM0eU1qY2dOUzR5TWpjZ01DQXdJREFnTlM0eU16a3ROUzR5TXpoMkxURXVNRFExZWlJZ1ptbHNiRDBpSTJabVppSWdjR0ZwYm5RdGIzSmtaWEk5SW0xaGNtdGxjbk1nYzNSeWIydGxJR1pwYkd3aUx6NDhMMmMrUEM5emRtYyspO1xuXHR9XG5cblx0JltkYXRhLW9lbWJlZC11cmwqPVwiZmFjZWJvb2suY29tXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIge1xuXHRcdGJhY2tncm91bmQ6IGhzbCgyMjAsIDQ2JSwgNDglKTtcblxuXHRcdCYgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiB7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpVlZSR0xUZ2lQejQ4YzNabklIZHBaSFJvUFNJeE1ESTBjSGdpSUdobGFXZG9kRDBpTVRBeU5IQjRJaUIyYVdWM1FtOTRQU0l3SURBZ01UQXlOQ0F4TURJMElpQjJaWEp6YVc5dVBTSXhMakVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lQaUFnSUNBZ0lDQWdQSFJwZEd4bFBrWnBiR3dnTVR3dmRHbDBiR1UrSUNBZ0lEeGtaWE5qUGtOeVpXRjBaV1FnZDJsMGFDQlRhMlYwWTJndVBDOWtaWE5qUGlBZ0lDQThaR1ZtY3o0OEwyUmxabk0rSUNBZ0lEeG5JR2xrUFNKUVlXZGxMVEVpSUhOMGNtOXJaVDBpYm05dVpTSWdjM1J5YjJ0bExYZHBaSFJvUFNJeElpQm1hV3hzUFNKdWIyNWxJaUJtYVd4c0xYSjFiR1U5SW1WMlpXNXZaR1FpUGlBZ0lDQWdJQ0FnUEdjZ2FXUTlJbVpNYjJkdlgxZG9hWFJsSWlCbWFXeHNQU0lqUmtaR1JrWkZJajRnSUNBZ0lDQWdJQ0FnSUNBOGNHRjBhQ0JrUFNKTk9UWTNMalE0TkN3d0lFdzFOaTQxTVRjc01DQkRNalV1TXpBMExEQWdNQ3d5TlM0ek1EUWdNQ3cxTmk0MU1UY2dUREFzT1RZM0xqUTRNeUJETUN3NU9UZ3VOamswSURJMUxqSTVOeXd4TURJMElEVTJMalV5TWl3eE1ESTBJRXcxTkRjc01UQXlOQ0JNTlRRM0xEWXlPQ0JNTkRFMExEWXlPQ0JNTkRFMExEUTNNeUJNTlRRM0xEUTNNeUJNTlRRM0xETTFPUzR3TWprZ1F6VTBOeXd5TWpZdU56WTNJRFl5Tnk0M056TXNNVFUwTGpjME55QTNORFV1TnpVMkxERTFOQzQzTkRjZ1F6Z3dNaTR5Tmprc01UVTBMamMwTnlBNE5UQXVPRFF5TERFMU9DNDVOVFVnT0RZMUxERTJNQzQ0TXpZZ1REZzJOU3d5T1RrZ1REYzRNeTR6T0RRc01qazVMakF6TnlCRE56RTVMak01TVN3eU9Ua3VNRE0zSURjd055d3pNamt1TlRJNUlEY3dOeXd6TnpRdU1qY3pJRXczTURjc05EY3pJRXc0TmpBdU5EZzNMRFEzTXlCTU9EUXdMalV3TVN3Mk1qZ2dURGN3Tnl3Mk1qZ2dURGN3Tnl3eE1ESTBJRXc1TmpjdU5EZzBMREV3TWpRZ1F6azVPQzQyT1Rjc01UQXlOQ0F4TURJMExEazVPQzQyT1RjZ01UQXlOQ3c1TmpjdU5EZzBJRXd4TURJMExEVTJMalV4TlNCRE1UQXlOQ3d5TlM0ek1ETWdPVGs0TGpZNU55d3dJRGsyTnk0ME9EUXNNQ0lnYVdROUlrWnBiR3d0TVNJK1BDOXdZWFJvUGlBZ0lDQWdJQ0FnUEM5blBpQWdJQ0E4TDJjK1BDOXpkbWMrKTtcblx0XHR9XG5cblx0XHQmIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybF9fdGV4dCB7XG5cdFx0XHRjb2xvcjogaHNsKDIyMCwgMTAwJSwgOTAlKTtcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGNvbG9yOiBoc2woMCwgMCUsIDEwMCUpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCZbZGF0YS1vZW1iZWQtdXJsKj1cImluc3RhZ3JhbS5jb21cIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlciB7XG5cdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KC0xMzVkZWcsaHNsKDI0NiwgMTAwJSwgMzklKSxoc2woMzAyLCAxMDAlLCAzNiUpLGhzbCgwLCAxMDAlLCA0OCUpKTtcblxuXHRcdCYgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiB7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpVlZSR0xUZ2lQejQ4YzNabklIZHBaSFJvUFNJMU1EUndlQ0lnYUdWcFoyaDBQU0kxTURSd2VDSWdkbWxsZDBKdmVEMGlNQ0F3SURVd05DQTFNRFFpSUhabGNuTnBiMjQ5SWpFdU1TSWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklpQjRiV3h1Y3pwNGJHbHVhejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TVRrNU9TOTRiR2x1YXlJK0lDQWdJQ0FnSUNBOGRHbDBiR1UrWjJ4NWNHZ3RiRzluYjE5TllYa3lNREUyUEM5MGFYUnNaVDRnSUNBZ1BHUmxjMk0rUTNKbFlYUmxaQ0IzYVhSb0lGTnJaWFJqYUM0OEwyUmxjMk0rSUNBZ0lEeGtaV1p6UGlBZ0lDQWdJQ0FnUEhCdmJIbG5iMjRnYVdROUluQmhkR2d0TVNJZ2NHOXBiblJ6UFNJd0lEQXVNVFU1SURVd015NDROREVnTUM0eE5Ua2dOVEF6TGpnME1TQTFNRE11T1RRZ01DQTFNRE11T1RRaVBqd3ZjRzlzZVdkdmJqNGdJQ0FnUEM5a1pXWnpQaUFnSUNBOFp5QnBaRDBpWjJ4NWNHZ3RiRzluYjE5TllYa3lNREUySWlCemRISnZhMlU5SW01dmJtVWlJSE4wY205clpTMTNhV1IwYUQwaU1TSWdabWxzYkQwaWJtOXVaU0lnWm1sc2JDMXlkV3hsUFNKbGRtVnViMlJrSWo0Z0lDQWdJQ0FnSUR4bklHbGtQU0pIY205MWNDMHpJajRnSUNBZ0lDQWdJQ0FnSUNBOGJXRnpheUJwWkQwaWJXRnpheTB5SWlCbWFXeHNQU0ozYUdsMFpTSStJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeDFjMlVnZUd4cGJtczZhSEpsWmowaUkzQmhkR2d0TVNJK1BDOTFjMlUrSUNBZ0lDQWdJQ0FnSUNBZ1BDOXRZWE5yUGlBZ0lDQWdJQ0FnSUNBZ0lEeG5JR2xrUFNKRGJHbHdMVElpUGp3dlp6NGdJQ0FnSUNBZ0lDQWdJQ0E4Y0dGMGFDQmtQU0pOTWpVeExqa3lNU3d3TGpFMU9TQkRNVGd6TGpVd015d3dMakUxT1NBeE56UXVPVEkwTERBdU5EUTVJREUwT0M0d05UUXNNUzQyTnpVZ1F6RXlNUzR5TkN3eUxqZzVPQ0F4TURJdU9USTNMRGN1TVRVM0lEZzJMamt3TXl3eE15NHpPRFVnUXpjd0xqTXpOeXd4T1M0NE1qSWdOVFl1TWpnNExESTRMalF6TmlBME1pNHlPRElzTkRJdU5EUXhJRU15T0M0eU56Y3NOVFl1TkRRM0lERTVMalkyTXl3M01DNDBPVFlnTVRNdU1qSTJMRGczTGpBMk1pQkROaTQ1T1Rnc01UQXpMakE0TmlBeUxqY3pPU3d4TWpFdU16azVJREV1TlRFMkxERTBPQzR5TVRNZ1F6QXVNamtzTVRjMUxqQTRNeUF3TERFNE15NDJOaklnTUN3eU5USXVNRGdnUXpBc016SXdMalE1TnlBd0xqSTVMRE15T1M0d056WWdNUzQxTVRZc016VTFMamswTmlCRE1pNDNNemtzTXpneUxqYzJJRFl1T1RrNExEUXdNUzR3TnpNZ01UTXVNakkyTERReE55NHdPVGNnUXpFNUxqWTJNeXcwTXpNdU5qWXpJREk0TGpJM055dzBORGN1TnpFeUlEUXlMakk0TWl3ME5qRXVOekU0SUVNMU5pNHlPRGdzTkRjMUxqY3lNeUEzTUM0ek16Y3NORGcwTGpNek55QTROaTQ1TURNc05Ea3dMamMzTlNCRE1UQXlMamt5Tnl3ME9UY3VNREF5SURFeU1TNHlOQ3cxTURFdU1qWXhJREUwT0M0d05UUXNOVEF5TGpRNE5DQkRNVGMwTGpreU5DdzFNRE11TnpFZ01UZ3pMalV3TXl3MU1EUWdNalV4TGpreU1TdzFNRFFnUXpNeU1DNHpNemdzTlRBMElETXlPQzQ1TVRjc05UQXpMamN4SURNMU5TNDNPRGNzTlRBeUxqUTROQ0JETXpneUxqWXdNU3cxTURFdU1qWXhJRFF3TUM0NU1UUXNORGszTGpBd01pQTBNVFl1T1RNNExEUTVNQzQzTnpVZ1F6UXpNeTQxTURRc05EZzBMak16TnlBME5EY3VOVFV6TERRM05TNDNNak1nTkRZeExqVTFPU3cwTmpFdU56RTRJRU0wTnpVdU5UWTBMRFEwTnk0M01USWdORGcwTGpFM09DdzBNek11TmpZeklEUTVNQzQyTVRZc05ERTNMakE1TnlCRE5EazJMamcwTXl3ME1ERXVNRGN6SURVd01TNHhNRElzTXpneUxqYzJJRFV3TWk0ek1qVXNNelUxTGprME5pQkROVEF6TGpVMU1Td3pNamt1TURjMklEVXdNeTQ0TkRFc016SXdMalE1TnlBMU1ETXVPRFF4TERJMU1pNHdPQ0JETlRBekxqZzBNU3d4T0RNdU5qWXlJRFV3TXk0MU5URXNNVGMxTGpBNE15QTFNREl1TXpJMUxERTBPQzR5TVRNZ1F6VXdNUzR4TURJc01USXhMak01T1NBME9UWXVPRFF6TERFd015NHdPRFlnTkRrd0xqWXhOaXc0Tnk0d05qSWdRelE0TkM0eE56Z3NOekF1TkRrMklEUTNOUzQxTmpRc05UWXVORFEzSURRMk1TNDFOVGtzTkRJdU5EUXhJRU0wTkRjdU5UVXpMREk0TGpRek5pQTBNek11TlRBMExERTVMamd5TWlBME1UWXVPVE00TERFekxqTTROU0JETkRBd0xqa3hOQ3czTGpFMU55QXpPREl1TmpBeExESXVPRGs0SURNMU5TNDNPRGNzTVM0Mk56VWdRek15T0M0NU1UY3NNQzQwTkRrZ016SXdMak16T0N3d0xqRTFPU0F5TlRFdU9USXhMREF1TVRVNUlGb2dUVEkxTVM0NU1qRXNORFV1TlRVZ1F6TXhPUzR4T0RZc05EVXVOVFVnTXpJM0xqRTFOQ3cwTlM0NE1EY2dNelV6TGpjeE9DdzBOeTR3TVRrZ1F6TTNPQzR5T0N3ME9DNHhNemtnTXpreExqWXhPU3cxTWk0eU5ETWdOREF3TGpRNU5pdzFOUzQyT1RNZ1F6UXhNaTR5TlRVc05qQXVNall6SURReU1DNDJORGNzTmpVdU56SXlJRFF5T1M0ME5qSXNOelF1TlRNNElFTTBNemd1TWpjNExEZ3pMak0xTXlBME5ETXVOek0zTERreExqYzBOU0EwTkRndU16QTNMREV3TXk0MU1EUWdRelExTVM0M05UY3NNVEV5TGpNNE1TQTBOVFV1T0RZeExERXlOUzQzTWlBME5UWXVPVGd4TERFMU1DNHlPRElnUXpRMU9DNHhPVE1zTVRjMkxqZzBOaUEwTlRndU5EVXNNVGcwTGpneE5DQTBOVGd1TkRVc01qVXlMakE0SUVNME5UZ3VORFVzTXpFNUxqTTBOU0EwTlRndU1Ua3pMRE15Tnk0ek1UTWdORFUyTGprNE1Td3pOVE11T0RjM0lFTTBOVFV1T0RZeExETTNPQzQwTXprZ05EVXhMamMxTnl3ek9URXVOemM0SURRME9DNHpNRGNzTkRBd0xqWTFOU0JETkRRekxqY3pOeXcwTVRJdU5ERTBJRFF6T0M0eU56Z3NOREl3TGpnd05pQTBNamt1TkRZeUxEUXlPUzQyTWpFZ1F6UXlNQzQyTkRjc05ETTRMalF6TnlBME1USXVNalUxTERRME15NDRPVFlnTkRBd0xqUTVOaXcwTkRndU5EWTJJRU16T1RFdU5qRTVMRFExTVM0NU1UWWdNemM0TGpJNExEUTFOaTR3TWlBek5UTXVOekU0TERRMU55NHhOQ0JETXpJM0xqRTFPQ3cwTlRndU16VXlJRE14T1M0eE9URXNORFU0TGpZd09TQXlOVEV1T1RJeExEUTFPQzQyTURrZ1F6RTROQzQyTlN3ME5UZ3VOakE1SURFM05pNDJPRFFzTkRVNExqTTFNaUF4TlRBdU1USXpMRFExTnk0eE5DQkRNVEkxTGpVMk1TdzBOVFl1TURJZ01URXlMakl5TWl3ME5URXVPVEUySURFd015NHpORFVzTkRRNExqUTJOaUJET1RFdU5UZzJMRFEwTXk0NE9UWWdPRE11TVRrMExEUXpPQzQwTXpjZ056UXVNemM1TERReU9TNDJNakVnUXpZMUxqVTJOQ3cwTWpBdU9EQTJJRFl3TGpFd05DdzBNVEl1TkRFMElEVTFMalV6TkN3ME1EQXVOalUxSUVNMU1pNHdPRFFzTXpreExqYzNPQ0EwTnk0NU9Dd3pOemd1TkRNNUlEUTJMamcyTERNMU15NDROemNnUXpRMUxqWTBPQ3d6TWpjdU16RXpJRFExTGpNNU1Td3pNVGt1TXpRMUlEUTFMak01TVN3eU5USXVNRGdnUXpRMUxqTTVNU3d4T0RRdU9ERTBJRFExTGpZME9Dd3hOell1T0RRMklEUTJMamcyTERFMU1DNHlPRElnUXpRM0xqazRMREV5TlM0M01pQTFNaTR3T0RRc01URXlMak00TVNBMU5TNDFNelFzTVRBekxqVXdOQ0JETmpBdU1UQTBMRGt4TGpjME5TQTJOUzQxTmpNc09ETXVNelV6SURjMExqTTNPU3czTkM0MU16Z2dRemd6TGpFNU5DdzJOUzQzTWpJZ09URXVOVGcyTERZd0xqSTJNeUF4TURNdU16UTFMRFUxTGpZNU15QkRNVEV5TGpJeU1pdzFNaTR5TkRNZ01USTFMalUyTVN3ME9DNHhNemtnTVRVd0xqRXlNeXcwTnk0d01Ua2dRekUzTmk0Mk9EY3NORFV1T0RBM0lERTROQzQyTlRVc05EVXVOVFVnTWpVeExqa3lNU3cwTlM0MU5TQmFJaUJwWkQwaVJtbHNiQzB4SWlCbWFXeHNQU0lqUmtaR1JrWkdJaUJ0WVhOclBTSjFjbXdvSTIxaGMyc3RNaWtpUGp3dmNHRjBhRDRnSUNBZ0lDQWdJRHd2Wno0Z0lDQWdJQ0FnSUR4d1lYUm9JR1E5SWsweU5URXVPVEl4TERNek5pNHdOVE1nUXpJd05TNDFORE1zTXpNMkxqQTFNeUF4TmpjdU9UUTNMREk1T0M0ME5UY2dNVFkzTGprME55d3lOVEl1TURnZ1F6RTJOeTQ1TkRjc01qQTFMamN3TWlBeU1EVXVOVFF6TERFMk9DNHhNRFlnTWpVeExqa3lNU3d4TmpndU1UQTJJRU15T1RndU1qazRMREUyT0M0eE1EWWdNek0xTGpnNU5Dd3lNRFV1TnpBeUlETXpOUzQ0T1RRc01qVXlMakE0SUVNek16VXVPRGswTERJNU9DNDBOVGNnTWprNExqSTVPQ3d6TXpZdU1EVXpJREkxTVM0NU1qRXNNek0yTGpBMU15QmFJRTB5TlRFdU9USXhMREV5TWk0M01UVWdRekU0TUM0ME56UXNNVEl5TGpjeE5TQXhNakl1TlRVMkxERTRNQzQyTXpNZ01USXlMalUxTml3eU5USXVNRGdnUXpFeU1pNDFOVFlzTXpJekxqVXlOaUF4T0RBdU5EYzBMRE00TVM0ME5EUWdNalV4TGpreU1Td3pPREV1TkRRMElFTXpNak11TXpZM0xETTRNUzQwTkRRZ016Z3hMakk0TlN3ek1qTXVOVEkySURNNE1TNHlPRFVzTWpVeUxqQTRJRU16T0RFdU1qZzFMREU0TUM0Mk16TWdNekl6TGpNMk55d3hNakl1TnpFMUlESTFNUzQ1TWpFc01USXlMamN4TlNCYUlpQnBaRDBpUm1sc2JDMDBJaUJtYVd4c1BTSWpSa1pHUmtaR0lqNDhMM0JoZEdnK0lDQWdJQ0FnSUNBOGNHRjBhQ0JrUFNKTk5ERTJMall5Tnl3eE1UY3VOakEwSUVNME1UWXVOakkzTERFek5DNHpJRFF3TXk0d09USXNNVFEzTGpnek5DQXpPRFl1TXprMkxERTBOeTQ0TXpRZ1F6TTJPUzQzTURFc01UUTNMamd6TkNBek5UWXVNVFkyTERFek5DNHpJRE0xTmk0eE5qWXNNVEUzTGpZd05DQkRNelUyTGpFMk5pd3hNREF1T1RBNElETTJPUzQzTURFc09EY3VNemN6SURNNE5pNHpPVFlzT0RjdU16Y3pJRU0wTURNdU1Ea3lMRGczTGpNM015QTBNVFl1TmpJM0xERXdNQzQ1TURnZ05ERTJMall5Tnl3eE1UY3VOakEwSWlCcFpEMGlSbWxzYkMwMUlpQm1hV3hzUFNJalJrWkdSa1pHSWo0OEwzQmhkR2crSUNBZ0lEd3ZaejQ4TDNOMlp6ND0pO1xuXHRcdH1cblxuXHRcdC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG5cdFx0JiAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX191cmxfX3RleHQge1xuXHRcdFx0Y29sb3I6IGhzbCgzMDIsIDEwMCUsIDk0JSk7XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRjb2xvcjogaHNsKDAsIDAlLCAxMDAlKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmW2RhdGEtb2VtYmVkLXVybCo9XCJ0d2l0dGVyLmNvbVwiXSAuY2suY2stbWVkaWFfX3BsYWNlaG9sZGVyIHtcblx0XHQvKiBVc2UgZ3JhZGllbnQgdG8gY29udHJhc3Qgd2l0aCBmb2N1c2VkIHdpZGdldCAoY2tlZGl0b3IvY2tlZGl0b3I1LW1lZGlhLWVtYmVkIzIyKS4gKi9cblx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoIHRvIHJpZ2h0LCBoc2woMjAxLCA4NSUsIDcwJSksIGhzbCgyMDEsIDg1JSwgMzUlKSApO1xuXG5cdFx0JiAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uIHtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQmxibU52WkdsdVp6MGlkWFJtTFRnaVB6NDhjM1puSUhabGNuTnBiMjQ5SWpFdU1TSWdhV1E5SWxkb2FYUmxJaUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGh0Ykc1ek9uaHNhVzVyUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMM2hzYVc1cklpQjRQU0l3Y0hnaUlIazlJakJ3ZUNJZ2RtbGxkMEp2ZUQwaU1DQXdJRFF3TUNBME1EQWlJSE4wZVd4bFBTSmxibUZpYkdVdFltRmphMmR5YjNWdVpEcHVaWGNnTUNBd0lEUXdNQ0EwTURBN0lpQjRiV3c2YzNCaFkyVTlJbkJ5WlhObGNuWmxJajQ4YzNSNWJHVWdkSGx3WlQwaWRHVjRkQzlqYzNNaVBpNXpkREI3Wm1sc2JEb2pSa1pHUmtaR08zMDhMM04wZVd4bFBqeHdZWFJvSUdOc1lYTnpQU0p6ZERBaUlHUTlJazAwTURBc01qQXdZekFzTVRFd0xqVXRPRGt1TlN3eU1EQXRNakF3TERJd01GTXdMRE14TUM0MUxEQXNNakF3VXpnNUxqVXNNQ3d5TURBc01GTTBNREFzT0RrdU5TdzBNREFzTWpBd2VpQk5NVFl6TGpRc016QTFMalZqT0RndU55d3dMREV6Tnk0eUxUY3pMalVzTVRNM0xqSXRNVE0zTGpKak1DMHlMakVzTUMwMExqSXRNQzR4TFRZdU1tTTVMalF0Tmk0NExERTNMall0TVRVdU15d3lOQzR4TFRJMVl5MDRMallzTXk0NExURTNMamtzTmk0MExUSTNMamNzTnk0Mll6RXdMVFlzTVRjdU5pMHhOUzQwTERJeExqSXRNall1TjJNdE9TNHpMRFV1TlMweE9TNDJMRGt1TlMwek1DNDJMREV4TGpkakxUZ3VPQzA1TGpRdE1qRXVNeTB4TlM0eUxUTTFMakl0TVRVdU1tTXRNall1Tml3d0xUUTRMaklzTWpFdU5pMDBPQzR5TERRNExqSmpNQ3d6TGpnc01DNDBMRGN1TlN3eExqTXNNVEZqTFRRd0xqRXRNaTAzTlM0MkxUSXhMakl0T1RrdU5DMDFNQzQwWXkwMExqRXNOeTR4TFRZdU5Td3hOUzQwTFRZdU5Td3lOQzR5WXpBc01UWXVOeXc0TGpVc016RXVOU3d5TVM0MUxEUXdMakZqTFRjdU9TMHdMakl0TVRVdU15MHlMalF0TWpFdU9DMDJZekFzTUM0eUxEQXNNQzQwTERBc01DNDJZekFzTWpNdU5Dd3hOaTQyTERReUxqZ3NNemd1Tnl3ME55NHpZeTAwTERFdU1TMDRMak1zTVM0M0xURXlMamNzTVM0M1l5MHpMakVzTUMwMkxqRXRNQzR6TFRrdU1TMHdMamxqTmk0eExERTVMaklzTWpNdU9Td3pNeTR4TERRMUxETXpMalZqTFRFMkxqVXNNVEl1T1Mwek55NHpMREl3TGpZdE5Ua3VPU3d5TUM0Mll5MHpMamtzTUMwM0xqY3RNQzR5TFRFeExqVXRNQzQzUXpFeE1DNDRMREk1Tnk0MUxERXpOaTR5TERNd05TNDFMREUyTXk0MExETXdOUzQxSWk4K1BDOXpkbWMrKTtcblx0XHR9XG5cblx0XHQmIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybF9fdGV4dCB7XG5cdFx0XHRjb2xvcjogaHNsKDIwMSwgMTAwJSwgODYlKTtcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGNvbG9yOiBoc2woMCwgMCUsIDEwMCUpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLW1lbnRpb24tYmFja2dyb3VuZDogaHNsYSgzNDEsIDEwMCUsIDMwJSwgMC4xKTtcblx0LS1jay1jb2xvci1tZW50aW9uLXRleHQ6IGhzbCgzNDEsIDEwMCUsIDMwJSk7XG59XG5cbi5jay1jb250ZW50IC5tZW50aW9uIHtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbWVudGlvbi1iYWNrZ3JvdW5kKTtcblx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLW1lbnRpb24tdGV4dCk7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbi1iYWNrZ3JvdW5kOiBoc2xhKDMxLCAxMDAlLCA2NSUsIC4yKTtcblx0LS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uLWhvdmVyLWJhY2tncm91bmQ6IGhzbGEoMzEsIDEwMCUsIDY1JSwgLjM1KTtcblx0LS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uLWJyYWNrZXRzOiBoc2xhKDMxLCAxMDAlLCA0MCUsIC40KTtcblx0LS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctc2VsZWN0ZWQtZXhjZXB0aW9uLWJhY2tncm91bmQ6IGhzbGEoMzEsIDEwMCUsIDY1JSwgLjUpO1xuXHQtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1zZWxlY3RlZC1leGNlcHRpb24tYnJhY2tldHM6IGhzbGEoMzEsIDEwMCUsIDQwJSwgLjYpO1xufVxuXG4uY2stZWRpdG9yX19lZGl0YWJsZSAucmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbiB7XG5cdHRyYW5zaXRpb246IC4ycyBlYXNlLWluLW91dCBiYWNrZ3JvdW5kO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uLWJhY2tncm91bmQpO1xuXHRib3JkZXI6IDFweCBzb2xpZDtcblx0Ym9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoXG5cdFx0dG8gcmlnaHQsXG5cdFx0dmFyKC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbi1icmFja2V0cykgMCUsXG5cdFx0dmFyKC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbi1icmFja2V0cykgNXB4LFxuXHRcdGhzbGEoMCwgMCUsIDAlLCAwKSA2cHgsXG5cdFx0aHNsYSgwLCAwJSwgMCUsIDApIGNhbGMoMTAwJSAtIDZweCksXG5cdFx0dmFyKC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbi1icmFja2V0cykgY2FsYygxMDAlIC0gNXB4KSxcblx0XHR2YXIoLS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uLWJyYWNrZXRzKSAxMDAlXG5cdCkgMTtcblxuXHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdH1cblxuXHQmLnJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb25fc2VsZWN0ZWQge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1zZWxlY3RlZC1leGNlcHRpb24tYmFja2dyb3VuZCk7XG5cdFx0Ym9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoXG5cdFx0XHR0byByaWdodCxcblx0XHRcdHZhcigtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1zZWxlY3RlZC1leGNlcHRpb24tYnJhY2tldHMpIDAlLFxuXHRcdFx0dmFyKC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLXNlbGVjdGVkLWV4Y2VwdGlvbi1icmFja2V0cykgNXB4LFxuXHRcdFx0dmFyKC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLXNlbGVjdGVkLWV4Y2VwdGlvbi1icmFja2V0cykgY2FsYygxMDAlIC0gNXB4KSxcblx0XHRcdHZhcigtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1zZWxlY3RlZC1leGNlcHRpb24tYnJhY2tldHMpIDEwMCVcblx0XHQpIDE7XG5cdH1cblxuXHQmLnJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb25fY29sbGFwc2VkIHtcblx0XHQvKiBFbXB0eSBleGNlcHRpb24gc2hvdWxkIGhhdmUgdGhlIHNhbWUgd2lkdGggYXMgZXhjZXB0aW9uIHdpdGggYXQgbGVhc3QgMSBjaGFyICovXG5cdFx0cGFkZGluZy1sZWZ0OiAxY2g7XG5cdH1cbn1cblxuLmNrLXJlc3RyaWN0ZWQtZWRpdGluZ19tb2RlX3Jlc3RyaWN0ZWQge1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG5cblx0LyogV2UgYWxzbyBoYXZlIHRvIG92ZXJyaWRlIGFsbCBlbGVtZW50cyBpbnNpZGUgdGhlIHJlc3RyaWN0ZWQgZWRpdGFibGUgdG8gcHJldmVudCBjdXJzb3Igc3dpdGNoaW5nIGJldHdlZW4gZGVmYXVsdCBhbmQgdGV4dFxuXHRkdXJpbmcgdGhlIHBvaW50ZXIgbW92ZW1lbnQuICovXG5cdCYgKiB7XG5cdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXHR9XG5cblx0JiAucmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbiB7XG5cdFx0Y3Vyc29yOiB0ZXh0O1xuXG5cdFx0JiAqIHtcblx0XHRcdGN1cnNvcjogdGV4dDtcblx0XHR9XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24taG92ZXItYmFja2dyb3VuZCk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX3J3ZC5jc3NcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnMvX3JvdW5kZWQuY3NzXCI7XG5cbjpyb290IHtcblx0LS1jay1jaGFyYWN0ZXItZ3JpZC10aWxlLXNpemU6IDI0cHg7XG59XG5cbi5jay5jay1jaGFyYWN0ZXItZ3JpZCB7XG5cdG92ZXJmbG93LXk6IGF1dG87XG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcblxuXHQmIC5jay1jaGFyYWN0ZXItZ3JpZF9fdGlsZXMge1xuXHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KHZhcigtLWNrLWNoYXJhY3Rlci1ncmlkLXRpbGUtc2l6ZSksIDFmcikpO1xuXHRcdG1hcmdpbjogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0Z3JpZC1nYXA6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHR9XG5cblx0JiAuY2stY2hhcmFjdGVyLWdyaWRfX3RpbGUge1xuXHRcdHdpZHRoOiB2YXIoLS1jay1jaGFyYWN0ZXItZ3JpZC10aWxlLXNpemUpO1xuXHRcdGhlaWdodDogdmFyKC0tY2stY2hhcmFjdGVyLWdyaWQtdGlsZS1zaXplKTtcblx0XHRtaW4td2lkdGg6IHZhcigtLWNrLWNoYXJhY3Rlci1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0bWluLWhlaWdodDogdmFyKC0tY2stY2hhcmFjdGVyLWdyaWQtdGlsZS1zaXplKTtcblx0XHRmb250LXNpemU6IDEuNWVtO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0dHJhbnNpdGlvbjogLjJzIGVhc2UgYm94LXNoYWRvdztcblx0XHRib3JkZXI6IDA7XG5cblx0XHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0XHR9XG5cblx0XHQmOmZvY3VzOm5vdCggLmNrLWRpc2FibGVkICksXG5cdFx0Jjpob3Zlcjpub3QoIC5jay1kaXNhYmxlZCApIHtcblx0XHRcdC8qIERpc2FibGUgdGhlIGRlZmF1bHQgLmNrLWJ1dHRvbidzIGJvcmRlciByaW5nLiAqL1xuXHRcdFx0Ym9yZGVyOiAwO1xuXHRcdFx0Ym94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCksIDAgMCAwIDJweCB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHRcdH1cblxuXHRcdC8qIE1ha2Ugc3VyZSB0aGUgZ2x5cGggaXMgcmVuZGVyZWQgaW4gdGhlIGNlbnRlciBvZiB0aGUgYnV0dG9uICovXG5cdFx0JiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRsaW5lLWhlaWdodDogdmFyKC0tY2stY2hhcmFjdGVyLWdyaWQtdGlsZS1zaXplKTtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19yd2QuY3NzXCI7XG5cbi5jay5jay1jaGFyYWN0ZXItaW5mbyB7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXG5cdCYgPiAqIHtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLXNtYWxsKTtcblx0fVxuXG5cdCYgLmNrLWNoYXJhY3Rlci1pbmZvX19uYW1lIHtcblx0XHRtYXgtd2lkdGg6IDI4MHB4O1xuXHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdH1cblxuXHQmIC5jay1jaGFyYWN0ZXItaW5mb19fY29kZSB7XG5cdFx0b3BhY2l0eTogLjY7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19yd2QuY3NzXCI7XG5cbi5jay5jay1zcGVjaWFsLWNoYXJhY3RlcnMtbmF2aWdhdGlvbiB7XG5cblx0JiA+IC5jay1sYWJlbCB7XG5cdFx0bWF4LXdpZHRoOiAxNjBweDtcblx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHR9XG5cblx0JiA+IC5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsIHtcblx0XHQvKiBUaGVyZSBjb3VsZCBiZSBkb3plbnMgb2YgY2F0ZWdvcmllcyBhdmFpbGFibGUuIFVzZSBzY3JvbGwgdG8gcHJldmVudCBhIDEwZTZweCBkcm9wZG93bi4gKi9cblx0XHRtYXgtaGVpZ2h0OiAyNTBweDtcblx0XHRvdmVyZmxvdy15OiBhdXRvO1xuXHRcdG92ZXJmbG93LXg6IGhpZGRlbjtcblx0fVxuXG5cdEBtaXhpbiBjay1tZWRpYS1waG9uZSB7XG5cdFx0bWF4LXdpZHRoOiAxOTBweDtcblxuXHRcdCYgPiAuY2stZm9ybV9faGVhZGVyX19sYWJlbCB7XG5cdFx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZHJvcGRvd24uY2stc3R5bGUtZHJvcGRvd24uY2stc3R5bGUtZHJvcGRvd25fbXVsdGlwbGUtYWN0aXZlID4gLmNrLWJ1dHRvbiA+IC5jay1idXR0b25fX2xhYmVsIHtcblx0Zm9udC1zdHlsZTogaXRhbGljO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLXN0eWxlLXBhbmVsLWJ1dHRvbi13aWR0aDogMTIwcHg7XG5cdC0tY2stc3R5bGUtcGFuZWwtYnV0dG9uLWhlaWdodDogODBweDtcblx0LS1jay1zdHlsZS1wYW5lbC1idXR0b24tbGFiZWwtYmFja2dyb3VuZDogaHNsKDAsIDAlLCA5NC4xJSk7XG5cdC0tY2stc3R5bGUtcGFuZWwtYnV0dG9uLWhvdmVyLWxhYmVsLWJhY2tncm91bmQ6IGhzbCgwLCAwJSwgOTIuMSUpO1xuXHQtLWNrLXN0eWxlLXBhbmVsLWJ1dHRvbi1ob3Zlci1ib3JkZXItY29sb3I6IGhzbCgwLCAwJSwgNzAlKTtcbn1cblxuLmNrLmNrLXN0eWxlLXBhbmVsIC5jay1zdHlsZS1ncmlkIHtcblx0cm93LWdhcDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdGNvbHVtbi1nYXA6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXG5cdCYgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbiB7XG5cdFx0LS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1ob3Zlci1iYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRcdC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtYWN0aXZlLWJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cblx0XHRwYWRkaW5nOiAwO1xuXHRcdHdpZHRoOiB2YXIoLS1jay1zdHlsZS1wYW5lbC1idXR0b24td2lkdGgpO1xuXHRcdGhlaWdodDogdmFyKC0tY2stc3R5bGUtcGFuZWwtYnV0dG9uLWhlaWdodCk7XG5cblx0XHQvKiBMZXQgZGVmYXVsdCAuY2stYnV0dG9uIDpmb2N1cyBzdHlsZXMgYXBwbHkgKi9cblx0XHQmOm5vdCg6Zm9jdXMpIHtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHR9XG5cblx0XHQmIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdGhlaWdodDogMjJweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAyMnB4O1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRwYWRkaW5nOiAwIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHRcdGZsZXgtc2hyaW5rOiAwO1xuXHRcdH1cblxuXHRcdCYgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbl9fcHJldmlldyB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHRvcGFjaXR5OiAuOTtcblxuXHRcdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHRcdGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdFx0fVxuXG5cdFx0Ji5jay1kaXNhYmxlZCB7XG5cdFx0XHQtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWRpc2FibGVkLWJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtZm9yZWdyb3VuZCk7XG5cblx0XHRcdC8qIExldCBkZWZhdWx0IC5jay1idXR0b24gOmZvY3VzIHN0eWxlcyBhcHBseSAqL1xuXHRcdFx0Jjpub3QoOmZvY3VzKSB7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stc3R5bGUtcGFuZWwtYnV0dG9uLWxhYmVsLWJhY2tncm91bmQpO1xuXHRcdFx0fVxuXG5cdFx0XHQmIC5jay1zdHlsZS1ncmlkX19idXR0b25fX3ByZXZpZXcge1xuXHRcdFx0XHRvcGFjaXR5OiAuNDtcblxuXHRcdFx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtZm9yZWdyb3VuZCk7XG5cdFx0XHRcdGZpbHRlcjogc2F0dXJhdGUoLjMpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYuY2stb24ge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWFjdGl2ZSk7XG5cblx0XHRcdCYgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRib3gtc2hhZG93OiAwIC0xcHggMCB2YXIoLS1jay1jb2xvci1iYXNlLWFjdGl2ZSk7XG5cdFx0XHRcdHotaW5kZXg6IDE7IC8qIFN0YXkgb24gdG9wIG9mIHRoZSBwcmV2aWV3IHdpdGggdGhlIHNoYWRvdy4gKi9cblx0XHRcdH1cblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1hY3RpdmUtZm9jdXMpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCY6bm90KC5jay1vbikge1xuXHRcdFx0JiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLXN0eWxlLXBhbmVsLWJ1dHRvbi1sYWJlbC1iYWNrZ3JvdW5kKTtcblx0XHRcdH1cblxuXHRcdFx0Jjpob3ZlciAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLXN0eWxlLXBhbmVsLWJ1dHRvbi1ob3Zlci1sYWJlbC1iYWNrZ3JvdW5kKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmOmhvdmVyOm5vdCguY2stZGlzYWJsZWQpOm5vdCguY2stb24pIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stc3R5bGUtcGFuZWwtYnV0dG9uLWhvdmVyLWJvcmRlci1jb2xvcik7XG5cblx0XHRcdCYgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbl9fcHJldmlldyB7XG5cdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stc3R5bGUtcGFuZWwgLmNrLXN0eWxlLXBhbmVsX19zdHlsZS1ncm91cCB7XG5cdCYgPiAuY2stbGFiZWwge1xuXHRcdG1hcmdpbjogdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgMDtcblx0fVxuXG5cdCY6Zmlyc3QtY2hpbGQge1xuXHRcdCYgPiAuY2stbGFiZWwge1xuXHRcdFx0bWFyZ2luLXRvcDogMDtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1zdHlsZS1wYW5lbC1tYXgtaGVpZ2h0OiA0NzBweDtcbn1cblxuLmNrLmNrLXN0eWxlLXBhbmVsIHtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdG92ZXJmbG93LXk6IGF1dG87XG5cdG1heC1oZWlnaHQ6IHZhcigtLWNrLXN0eWxlLXBhbmVsLW1heC1oZWlnaHQpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzXCI7XG5AaW1wb3J0IFwiLi4vbWl4aW5zL19yb3VuZGVkLmNzc1wiO1xuXG4uY2suY2staW5wdXQtY29sb3Ige1xuXHQmID4gLmNrLmNrLWlucHV0LXRleHQge1xuXHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdFx0fVxuXG5cdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0fVxuXG5cdFx0LyogTWFrZSBzdXJlIHRoZSBmb2N1c2VkIGlucHV0IGlzIGFsd2F5cyBvbiB0b3Agb2YgdGhlIGRyb3Bkb3duIGJ1dHRvbiBzbyBpdHNcblx0XHQgICBvdXRsaW5lIGFuZCBib3JkZXIgYXJlIG5ldmVyIGNyb3BwZWQgKGFsc28gd2hlbiB0aGUgaW5wdXQgaXMgcmVhZC1vbmx5KS4gKi9cblx0XHQmOmZvY3VzIHtcblx0XHRcdHotaW5kZXg6IDA7XG5cdFx0fVxuXHR9XG5cblx0JiA+IC5jay5jay1kcm9wZG93biB7XG5cdFx0JiA+IC5jay5jay1idXR0b24uY2staW5wdXQtY29sb3JfX2J1dHRvbiB7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cblx0XHRcdFx0Jjpub3QoOmZvY3VzKSB7XG5cdFx0XHRcdFx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHRcdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblxuXHRcdFx0XHQmOm5vdCg6Zm9jdXMpIHtcblx0XHRcdFx0XHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQmLmNrLWRpc2FibGVkIHtcblx0XHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItaW5wdXQtZGlzYWJsZWQtYmFja2dyb3VuZCk7XG5cdFx0XHR9XG5cblx0XHRcdCYgPiAuY2suY2staW5wdXQtY29sb3JfX2J1dHRvbl9fcHJldmlldyB7XG5cdFx0XHRcdEBtaXhpbiBjay1yb3VuZGVkLWNvcm5lcnM7XG5cblx0XHRcdFx0d2lkdGg6IDIwcHg7XG5cdFx0XHRcdGhlaWdodDogMjBweDtcblx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItaW5wdXQtYm9yZGVyKTtcblxuXHRcdFx0XHQmID4gLmNrLmNrLWlucHV0LWNvbG9yX19idXR0b25fX3ByZXZpZXdfX25vLWNvbG9yLWluZGljYXRvciB7XG5cdFx0XHRcdFx0dG9wOiAtMzAlO1xuXHRcdFx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdFx0XHRoZWlnaHQ6IDE1MCU7XG5cdFx0XHRcdFx0d2lkdGg6IDglO1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6IGhzbCgwLCAxMDAlLCA1MCUpO1xuXHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDJweDtcblx0XHRcdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG5cdFx0XHRcdFx0dHJhbnNmb3JtLW9yaWdpbjogNTAlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0JiAuY2suY2staW5wdXQtY29sb3JfX3JlbW92ZS1jb2xvciB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0cGFkZGluZzogY2FsYyh2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSAvIDIpIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXG5cdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblxuXHRcdCY6bm90KDpmb2N1cykge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWlucHV0LWJvcmRlcik7XG5cdFx0fVxuXG5cdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdFx0fVxuXG5cdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHR9XG5cblx0XHQmIC5jay5jay1pY29uIHtcblx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcblxuLmNrLmNrLWZvcm1fX3JvdyB7XG5cdC8qIElnbm9yZSBsYWJlbHMgdGhhdCB3b3JrIGFzIGZpZWxkc2V0IGxlZ2VuZHMgKi9cblx0JiA+ICo6bm90KC5jay1sYWJlbCkge1xuXHRcdCYgKyAqIHtcblx0XHRcdG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdH1cblx0fVxuXG5cdCYgPiAuY2stbGFiZWwge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdG1pbi13aWR0aDogMTAwJTtcblx0fVxuXG5cdCYuY2stdGFibGUtZm9ybV9fYWN0aW9uLXJvdyB7XG5cdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cblx0XHQmIC5jay1idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLXRleHQpO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1wYWRkaW5nOiAxMHB4O1xuXHQtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1ib3gtaGVpZ2h0OiAxMXB4O1xuXHQtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1ib3gtd2lkdGg6IDEycHg7XG5cdC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWJveC1tYXJnaW46IDFweDtcbn1cblxuLmNrIC5jay1pbnNlcnQtdGFibGUtZHJvcGRvd25fX2dyaWQge1xuXHQvKiBUaGUgd2lkdGggb2YgYSBjb250YWluZXIgc2hvdWxkIG1hdGNoIDEwIGl0ZW1zIGluIGEgcm93IHNvIHRoZXJlIHdpbGwgYmUgYSAxMHgxMCBncmlkLiAqL1xuXHR3aWR0aDogY2FsYyh2YXIoLS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LXdpZHRoKSAqIDEwICsgdmFyKC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWJveC1tYXJnaW4pICogMjAgKyB2YXIoLS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tcGFkZGluZykgKiAyKTtcblx0cGFkZGluZzogdmFyKC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLXBhZGRpbmcpIHZhcigtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1wYWRkaW5nKSAwO1xufVxuXG4uY2sgLmNrLWluc2VydC10YWJsZS1kcm9wZG93bl9fbGFiZWwsXG4uY2tbZGlyPXJ0bF0gLmNrLWluc2VydC10YWJsZS1kcm9wZG93bl9fbGFiZWwge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5jayAuY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWdyaWQtYm94IHtcblx0bWluLXdpZHRoOiB2YXIoLS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LXdpZHRoKTtcblx0bWluLWhlaWdodDogdmFyKC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWJveC1oZWlnaHQpO1xuXHRtYXJnaW46IHZhcigtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1ib3gtbWFyZ2luKTtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRib3JkZXItcmFkaXVzOiAxcHg7XG5cdG91dGxpbmU6IG5vbmU7XG5cdHRyYW5zaXRpb246IG5vbmU7XG5cblx0QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHR9XG5cblx0Jjpmb2N1cyB7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0fVxuXG5cdCYuY2stb24ge1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1mb2N1cy1vdXRlci1zaGFkb3cpO1xuXHR9XG59XG5cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybSB7XG5cdHdpZHRoOiAzMjBweDtcblxuXHQmIC5jay1mb3JtX19yb3cge1xuXHRcdCYuY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm1fX3BhZGRpbmctcm93IHtcblx0XHRcdGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHRcdHdpZHRoOiAyNSU7XG5cdFx0fVxuXG5cdFx0Ji5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybV9fYWxpZ25tZW50LXJvdyB7XG5cdFx0XHQmIC5jay5jay10b29sYmFyIHtcblx0XHRcdFx0YmFja2dyb3VuZDogbm9uZTtcblxuXHRcdFx0XHQvKiBDb21wZW5zYXRlIGZvciBtaXNzaW5nIGlucHV0IGxhYmVsIHRoYXQgd291bGQgcHVzaCB0aGUgbWFyZ2luICh0b29sYmFyIGhhcyBubyBpbnB1dHMpLiAqL1xuXHRcdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1jb2xvci1zZWxlY3Rvci1mb2N1c2VkLWNlbGwtYmFja2dyb3VuZDogaHNsYSgyMTIsIDkwJSwgODAlLCAuMyk7XG5cdC0tY2stdGFibGUtY29udGVudC1kZWZhdWx0LWJvcmRlci1jb2xvcjogaHNsKDAsIDAlLCA4MyUpO1xufVxuXG4uY2std2lkZ2V0LnRhYmxlIHtcblx0LyogRGFzaGVkIG91dGxpbmUgZm9yIHRhYmxlIHdpdGhvdXQgYW55IGJvcmRlci4gKi9cblx0JiB0YWJsZVtzdHlsZSo9XCJib3JkZXI6bm9uZVwiXSxcblx0JiB0YWJsZVtzdHlsZSo9XCJib3JkZXItc3R5bGU6bm9uZVwiXSB7XG5cdFx0b3V0bGluZTogdmFyKC0tY2stdGFibGUtY29udGVudC1kZWZhdWx0LWJvcmRlci1jb2xvcikgMXB4IGRhc2hlZDtcblx0fVxuXG5cdCYgdGQsXG5cdCYgdGgge1xuXHRcdC8qKlxuXHRcdCAqIFdoaWxlIHNldHRpbmcgb3V0bGluZSBpcyBmaW5lLCB0aGUgYm9yZGVyIHNob3VsZCBub3QgYmUgbW9kaWZpZWQgaGVyZVxuXHRcdCAqIGJlY2F1c2UgaXQgb3ZlcnJpZGVzIHRoZSBkZWZhdWx0IHRhYmxlIGNlbGwgYm9yZGVyIGNvbG9yIHdoaWNoIGlzIG5vdCBleHBlY3RlZC5cblx0XHQgKiBTbyBkbyBub3QgdXNlIGBAbWl4aW4gY2stZm9jdXMtcmluZztgIGhlcmUsIG9yIGFueSBvdGhlciBib3JkZXIgc3R5bGVzLlxuXHRcdCAqIFNlZSBtb3JlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNjk3OVxuXHRcdCAqL1xuXHRcdCYuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUge1xuXHRcdFx0b3V0bGluZTogdW5zZXQ7XG5cblx0XHRcdCY6bm90KC5jay1lZGl0b3JfX2VkaXRhYmxlX3NlbGVjdGVkKSB7XG5cdFx0XHRcdCYuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGVfZm9jdXNlZCxcblx0XHRcdFx0Jjpmb2N1cyB7XG5cdFx0XHRcdFx0LyogQSB2ZXJ5IHNsaWdodCBiYWNrZ3JvdW5kIHRvIGhpZ2hsaWdodCB0aGUgZm9jdXNlZCBjZWxsICovXG5cdFx0XHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itc2VsZWN0b3ItZm9jdXNlZC1jZWxsLWJhY2tncm91bmQpO1xuXHRcdFx0XHRcdG91dGxpbmU6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHRcdFx0XHRcdG91dGxpbmUtb2Zmc2V0OiAtMXB4OyAvKiBwcm9ncmVzc2l2ZSBlbmhhbmNlbWVudCAtIG5vIElFIHN1cHBvcnQgKi9cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uL21peGlucy9fcm91bmRlZC5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLXRhYmxlLXByb3BlcnRpZXMtZXJyb3ItYXJyb3ctc2l6ZTogNnB4O1xuXHQtLWNrLXRhYmxlLXByb3BlcnRpZXMtbWluLWVycm9yLXdpZHRoOiAxNTBweDtcbn1cblxuLmNrLmNrLXRhYmxlLWZvcm0ge1xuXHQmIC5jay1mb3JtX19yb3cge1xuXHRcdCYuY2stdGFibGUtZm9ybV9fYm9yZGVyLXJvdyB7XG5cdFx0XHQmIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdFx0XHQmID4gLmNrLWxhYmVsIHtcblx0XHRcdFx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS10aW55KTtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0JiAuY2stdGFibGUtZm9ybV9fYm9yZGVyLXN0eWxlLFxuXHRcdFx0JiAuY2stdGFibGUtZm9ybV9fYm9yZGVyLXdpZHRoIHtcblx0XHRcdFx0d2lkdGg6IDgwcHg7XG5cdFx0XHRcdG1pbi13aWR0aDogODBweDtcblx0XHRcdFx0bWF4LXdpZHRoOiA4MHB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYuY2stdGFibGUtZm9ybV9fZGltZW5zaW9ucy1yb3cge1xuXHRcdFx0cGFkZGluZzogMDtcblxuXHRcdFx0JiAuY2stdGFibGUtZm9ybV9fZGltZW5zaW9ucy1yb3dfX3dpZHRoLFxuXHRcdFx0JiAuY2stdGFibGUtZm9ybV9fZGltZW5zaW9ucy1yb3dfX2hlaWdodCB7XG5cdFx0XHRcdG1hcmdpbjogMFxuXHRcdFx0fVxuXG5cdFx0XHQmIC5jay10YWJsZS1mb3JtX19kaW1lbnNpb24tb3BlcmF0b3Ige1xuXHRcdFx0XHRhbGlnbi1zZWxmOiBmbGV4LWVuZDtcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0XHRoZWlnaHQ6IHZhcigtLWNrLXVpLWNvbXBvbmVudC1taW4taGVpZ2h0KTtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IHZhcigtLWNrLXVpLWNvbXBvbmVudC1taW4taGVpZ2h0KTtcblx0XHRcdFx0bWFyZ2luOiAwIHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCYgLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0cGFkZGluZy10b3A6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXG5cdFx0JiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXMge1xuXHRcdFx0QG1peGluIGNrLXJvdW5kZWQtY29ybmVycztcblxuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1lcnJvcik7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRcdG1pbi13aWR0aDogdmFyKC0tY2stdGFibGUtcHJvcGVydGllcy1taW4tZXJyb3Itd2lkdGgpO1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0XHQvKiBUaGUgYXJyb3cgcG9pbnRpbmcgdG93YXJkcyB0aGUgZmllbGQuICovXG5cdFx0XHQmOjphZnRlciB7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdmFyKC0tY2stY29sb3ItYmFzZS1lcnJvcikgdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdGJvcmRlci13aWR0aDogMCB2YXIoLS1jay10YWJsZS1wcm9wZXJ0aWVzLWVycm9yLWFycm93LXNpemUpIHZhcigtLWNrLXRhYmxlLXByb3BlcnRpZXMtZXJyb3ItYXJyb3ctc2l6ZSkgdmFyKC0tY2stdGFibGUtcHJvcGVydGllcy1lcnJvci1hcnJvdy1zaXplKTtcblx0XHRcdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0XHRcdH1cblxuXHRcdFx0YW5pbWF0aW9uOiBjay10YWJsZS1mb3JtLWxhYmVsZWQtdmlldy1zdGF0dXMtYXBwZWFyIC4xNXMgZWFzZSBib3RoO1xuXG5cdFx0XHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdFx0XHRhbmltYXRpb246IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LyogSGlkZSB0aGUgZXJyb3IgYmFsbG9vbiB3aGVuIHRoZSBmaWVsZCBpcyBibHVycmVkLiBNYWtlcyB0aGUgZXhwZXJpZW5jZSBtdWNoIG1vcmUgY2xlYXIuICovXG5cdFx0JiAuY2staW5wdXQuY2stZXJyb3I6bm90KDpmb2N1cykgKyAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXMge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cbn1cblxuQGtleWZyYW1lcyBjay10YWJsZS1mb3JtLWxhYmVsZWQtdmlldy1zdGF0dXMtYXBwZWFyIHtcblx0MCUge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cblxuXHQxMDAlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stdGFibGUtcHJvcGVydGllcy1mb3JtIHtcblx0d2lkdGg6IDMyMHB4O1xuXG5cdCYgLmNrLWZvcm1fX3JvdyB7XG5cdFx0Ji5jay10YWJsZS1wcm9wZXJ0aWVzLWZvcm1fX2FsaWdubWVudC1yb3cge1xuXHRcdFx0YWxpZ24tc2VsZjogZmxleC1lbmQ7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0XHQmIC5jay5jay10b29sYmFyIHtcblx0XHRcdFx0YmFja2dyb3VuZDogbm9uZTtcblxuXHRcdFx0XHQvKiBDb21wZW5zYXRlIGZvciBtaXNzaW5nIGlucHV0IGxhYmVsIHRoYXQgd291bGQgcHVzaCB0aGUgbWFyZ2luICh0b29sYmFyIGhhcyBubyBpbnB1dHMpLiAqL1xuXHRcdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdFx0XHQmIC5jay10b29sYmFyX19pdGVtcyA+ICoge1xuXHRcdFx0XHRcdHdpZHRoOiA0MHB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stdGFibGUtc2VsZWN0ZWQtY2VsbC1iYWNrZ3JvdW5kOiBoc2xhKDIwOCwgOTAlLCA4MCUsIC4zKTtcbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlIHRhYmxlIHtcblx0JiB0ZC5jay1lZGl0b3JfX2VkaXRhYmxlX3NlbGVjdGVkLFxuXHQmIHRoLmNrLWVkaXRvcl9fZWRpdGFibGVfc2VsZWN0ZWQge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRjYXJldC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0Ym94LXNoYWRvdzogdW5zZXQ7XG5cblx0XHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy82NDQ2ICovXG5cdFx0JjphZnRlciB7XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stdGFibGUtc2VsZWN0ZWQtY2VsbC1iYWNrZ3JvdW5kKTtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogMDtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRyaWdodDogMDtcblx0XHRcdGJvdHRvbTogMDtcblx0XHR9XG5cblx0XHQmIDo6c2VsZWN0aW9uLFxuXHRcdCY6Zm9jdXMge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0fVxuXG5cdFx0Lypcblx0XHQgKiBUbyByZWR1Y2UgdGhlIGFtb3VudCBvZiBub2lzZSwgYWxsIHdpZGdldHMgaW4gdGhlIHRhYmxlIHNlbGVjdGlvbiBoYXZlIG5vIG91dGxpbmUgYW5kIG5vIHNlbGVjdGlvbiBoYW5kbGUuXG5cdFx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzk0OTEuXG5cdFx0ICovXG5cdFx0JiAuY2std2lkZ2V0IHtcblx0XHRcdG91dGxpbmU6IHVuc2V0O1xuXG5cdFx0XHQmID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stdGFibGUtbGF5b3V0LXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tc2l6ZTogMTZweDtcblx0LS1jay10YWJsZS1sYXlvdXQtd2lkZ2V0LXR5cGUtYXJvdW5kLWljb24td2lkdGg6IDEwcHg7XG5cdC0tY2stdGFibGUtbGF5b3V0LXdpZGdldC10eXBlLWFyb3VuZC1pY29uLWhlaWdodDogOHB4O1xuXHQtLWNrLXRhYmxlLWxheW91dC13aWRnZXQtaGFuZGxlci1pY29uLXNpemU6IDEwcHg7XG5cdC0tY2stdGFibGUtbGF5b3V0LWRlZmF1bHQtYm9yZGVyLWNvbG9yOiBoc2woMCwgMCUsIDgzJSk7XG5cbn1cblxuLmNrLWVkaXRvcl9fZWRpdGFibGUge1xuXHQmIC50YWJsZS5sYXlvdXQtdGFibGUge1xuXHRcdCYgPiB0YWJsZSB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGhlaWdodDogMTAwJTtcblxuXHRcdFx0LyogUmVzZXR0aW5nIGBib3JkZXItY29sbGFwc2VgIHByb3BlcnR5IHRvIHRoZSB1c2VyIGFnZW50IHN0eWxlcy4gKi9cblx0XHRcdGJvcmRlci1jb2xsYXBzZTogcmV2ZXJ0O1xuXG5cdFx0XHQvKiBUaGUgZGVmYXVsdCB0YWJsZSBsYXlvdXQgc3R5bGUgaW4gdGhlIGVkaXRpbmcgdmlldyB3aGVuIHRoZSBib3JkZXIgaXMgdW5zZXQuICovXG5cdFx0XHQmOm5vdChcblx0XHRcdFtzdHlsZSo9XCJib3JkZXI6XCJdLFxuXHRcdFx0W3N0eWxlKj1cImJvcmRlci10b3BcIl0sXG5cdFx0XHRbc3R5bGUqPVwiYm9yZGVyLWJvdHRvbVwiXSxcblx0XHRcdFtzdHlsZSo9XCJib3JkZXItbGVmdFwiXSxcblx0XHRcdFtzdHlsZSo9XCJib3JkZXItcmlnaHRcIl0sXG5cdFx0XHRbc3R5bGUqPVwiYm9yZGVyLXdpZHRoXCJdLFxuXHRcdFx0W3N0eWxlKj1cImJvcmRlci1zdHlsZVwiXSxcblx0XHRcdFtzdHlsZSo9XCJib3JkZXItY29sb3JcIl0pIHtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRcdFx0Ym9yZGVyLXdpZHRoOiAwO1xuXHRcdFx0XHRvdXRsaW5lOiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYgPiB0YWJsZSA+IHRib2R5ID4gdHIgPiB0ZCB7XG5cdFx0XHRib3gtc2hhZG93OiByZXZlcnQ7XG5cdFx0XHRwYWRkaW5nOiByZXZlcnQ7XG5cdFx0XHRtaW4td2lkdGg6IDJlbTtcblx0XHRcdC8qIFRvIG1ha2UgdGhlIGNhcmV0IHZpc2libGUuICovXG5cdFx0XHR0ZXh0LWluZGVudDogMXB4O1xuXG5cdFx0XHQvKiBSZXNldHMgdGhlIGBtaW4td2lkdGhgIHN0eWxlIGF0dHJpYnV0ZSB0aGF0IHdhcyBhZGRlZCBieSB0aGUgY29udGVudCB0YWJsZSBzdHlsZS4gKi9cblx0XHRcdCZbc3R5bGVePVwid2lkdGg6XCJdLFxuXHRcdFx0JltzdHlsZSo9XCIgd2lkdGg6XCJdLFxuXHRcdFx0JltzdHlsZSo9XCI7d2lkdGg6XCJdLFxuXHRcdFx0JltzdHlsZSo9XCInd2lkdGg6XCJdIHtcblx0XHRcdFx0bWluLXdpZHRoOiBhdXRvO1xuXHRcdFx0fVxuXG5cdFx0XHQvKiBSZW1vdmUgdGhlIGRlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmcm9tIHRoZSBmb2N1c2VkIHRhYmxlIGNlbGwuICovXG5cdFx0XHQmOmZvY3VzIHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0XHR9XG5cblx0XHRcdC8qIFRoZSBkZWZhdWx0IHRhYmxlIGxheW91dCBjZWxsIHN0eWxlIGluIHRoZSBlZGl0aW5nIHZpZXcgd2hlbiB0aGUgYm9yZGVyIGlzIHVuc2V0LlxuXHRcdFx0QnV0IGl0IG5lZWQgdG8gYmUgbW9yZSBzdHJpY3QgY2F1c2Ugb2Ygc3R5bGUgYXR0cmlidXRlcyBsaWtlIGBib3JkZXItY29sbGFwc2VgLCBgYm9yZGVyLXNwYWNpbmdgLCBldGMuICovXG5cdFx0XHQmOm5vdChcblx0XHRcdFtzdHlsZSo9XCJib3JkZXI6XCJdLFxuXHRcdFx0W3N0eWxlKj1cImJvcmRlci10b3BcIl0sXG5cdFx0XHRbc3R5bGUqPVwiYm9yZGVyLWJvdHRvbVwiXSxcblx0XHRcdFtzdHlsZSo9XCJib3JkZXItbGVmdFwiXSxcblx0XHRcdFtzdHlsZSo9XCJib3JkZXItcmlnaHRcIl0sXG5cdFx0XHRbc3R5bGUqPVwiYm9yZGVyLXdpZHRoXCJdLFxuXHRcdFx0W3N0eWxlKj1cImJvcmRlci1zdHlsZVwiXSxcblx0XHRcdFtzdHlsZSo9XCJib3JkZXItY29sb3JcIl0pIHtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRcdFx0LyogUmVzZXR0aW5nIGBib3JkZXItd2lkdGhgIHByb3BlcnR5IHRvIHRoZSB1c2VyIGFnZW50IHN0eWxlcy4gKi9cblx0XHRcdFx0Ym9yZGVyLXdpZHRoOiAwO1xuXHRcdFx0XHRvdXRsaW5lOiB2YXIoLS1jay10YWJsZS1sYXlvdXQtZGVmYXVsdC1ib3JkZXItY29sb3IpIDFweCBkYXNoZWQ7XG5cdFx0XHRcdG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xuXG5cdFx0XHRcdCY6Zm9jdXMge1xuXHRcdFx0XHRcdG91dGxpbmU6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcikgMXB4IHNvbGlkO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8qIFJlc2V0IHRoZSBgd2lkdGhgIGFuZCBgdGV4dC1pbmRlbnRgIG9mIHRoZSBib2d1cyBwYXJhZ3JhcGggYmVjYXVzZSA8dGQ+IGhhcyAxcHggdGV4dCBpbmRlbnQuICovXG5cdFx0XHQmID4gLmNrLXRhYmxlLWJvZ3VzLXBhcmFncmFwaCB7XG5cdFx0XHRcdHdpZHRoOiBjYWxjKDEwMCUgLSAxcHgpO1xuXHRcdFx0XHR0ZXh0LWluZGVudDogMDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvKiBXaWRnZXQgdHlwZSBhcm91bmQgb3ZlcnJpZGVzLiAqL1xuXHRcdCYuY2std2lkZ2V0IHtcblx0XHRcdCYgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCB7XG5cdFx0XHRcdC0tY2std2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1zaXplOiB2YXIoLS1jay10YWJsZS1sYXlvdXQtd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1zaXplKTtcblxuXHRcdFx0XHQmID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiB7XG5cdFx0XHRcdFx0Ji5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b25fYmVmb3JlLFxuXHRcdFx0XHRcdCYuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uX2FmdGVyIHtcblx0XHRcdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcblx0XHRcdFx0XHRcdC8qIFNhbWUgdmFsdWUgYXMgaW5saW5lLWltYWdlIHdpZGdldCBiZWNhdXNlIGl0IGlzIGFmdGVyIHRoZSBpbmxpbmUtaW1hZ2UgaW4gSFRNTCBzdHJ1Y3R1cmUgKi9cblx0XHRcdFx0XHRcdHotaW5kZXg6IDI7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ji5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b25fYmVmb3JlIHtcblx0XHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay10YWJsZS1sYXlvdXQtd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1zaXplKTtcblx0XHRcdFx0XHRcdGxlZnQ6IG1pbigxMCUsIDMwcHgpO1xuXHRcdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMCAwIDEwMHB4IDEwMHB4O1xuXG5cdFx0XHRcdFx0XHQmOjphZnRlciB7XG5cdFx0XHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDAgMCAxMDBweCAxMDBweDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQmLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbl9hZnRlciB7XG5cdFx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiAxMDBweCAxMDBweCAwIDA7XG5cblx0XHRcdFx0XHRcdCY6OmFmdGVyIHtcblx0XHRcdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMTAwcHggMTAwcHggMCAwO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCYgc3ZnIHtcblx0XHRcdFx0XHRcdHdpZHRoOiB2YXIoLS1jay10YWJsZS1sYXlvdXQtd2lkZ2V0LXR5cGUtYXJvdW5kLWljb24td2lkdGgpO1xuXHRcdFx0XHRcdFx0aGVpZ2h0OiB2YXIoLS1jay10YWJsZS1sYXlvdXQtd2lkZ2V0LXR5cGUtYXJvdW5kLWljb24taGVpZ2h0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ji5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlIHtcblx0XHRcdFx0JiA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRcdFx0XHRcdC0tY2std2lkZ2V0LWhhbmRsZXItaWNvbi1zaXplOiB2YXIoLS1jay10YWJsZS1sYXlvdXQtd2lkZ2V0LWhhbmRsZXItaWNvbi1zaXplKTtcblxuXHRcdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKDBweCAtIHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykpKTtcblx0XHRcdFx0XHQvKiBWYWx1ZSBpbmNyZWFzZWQgYnkgMSBhcyBpbiBzZWxlY3RlZCBpbmxpbmUtaW1hZ2Ugd2lkZ2V0XG5cdFx0XHRcdFx0YmVjYXVzZSBpdCBpcyBiZWZvcmUgdGhlIGlubGluZS1pbWFnZSBpbiBIVE1MIHN0cnVjdHVyZS4gKi9cblx0XHRcdFx0XHR6LWluZGV4OiAzO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8qIFNob3cgZmFrZSBjYXJldCBvbiBib3JkZXIgbm90IGFib3ZlLiAqL1xuXHRcdFx0Ji5jay13aWRnZXRfdHlwZS1hcm91bmRfc2hvdy1mYWtlLWNhcmV0X2JlZm9yZSB7XG5cdFx0XHRcdCYgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCB7XG5cdFx0XHRcdFx0JiA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19mYWtlLWNhcmV0IHtcblx0XHRcdFx0XHRcdHRvcDogMDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0LyogU2hvdyBmYWtlIGNhcmV0IG9uIGJvcmRlciBub3QgYmVsb3cuICovXG5cdFx0XHQmLmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYWZ0ZXIge1xuXHRcdFx0XHQmID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQge1xuXHRcdFx0XHRcdCYgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fZmFrZS1jYXJldCB7XG5cdFx0XHRcdFx0XHRib3R0b206IDA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vbWl4aW5zL19mb2N1cy5jc3NcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnMvX3NoYWRvdy5jc3NcIjtcbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fbWVkaWFjb2xvcnMuY3NzXCI7XG5cbjpyb290IHtcblx0LS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3M6IDNweDtcblx0LS1jay13aWRnZXQtaGFuZGxlci1pY29uLXNpemU6IDE2cHg7XG5cdC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWR1cmF0aW9uOiAyMDBtcztcblx0LS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tY3VydmU6IGVhc2U7XG5cblx0LS1jay1jb2xvci13aWRnZXQtYmx1cnJlZC1ib3JkZXI6IGhzbCgwLCAwJSwgODclKTtcblx0LS1jay1jb2xvci13aWRnZXQtaG92ZXItYm9yZGVyOiBoc2woNDMsIDEwMCUsIDYyJSk7XG5cdC0tY2stY29sb3Itd2lkZ2V0LWVkaXRhYmxlLWZvY3VzLWJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3Itd2lkZ2V0LWRyYWctaGFuZGxlci1pY29uLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xufVxuXG4uY2sgLmNrLXdpZGdldCB7XG5cdG91dGxpbmUtd2lkdGg6IHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcyk7XG5cdG91dGxpbmUtc3R5bGU6IHNvbGlkO1xuXHRvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0dHJhbnNpdGlvbjogb3V0bGluZS1jb2xvciB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSk7XG5cblx0QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHR9XG5cblx0Ji5jay13aWRnZXRfc2VsZWN0ZWQsXG5cdCYuY2std2lkZ2V0X3NlbGVjdGVkOmhvdmVyIHtcblx0XHRvdXRsaW5lOiB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpIHNvbGlkIHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdH1cblxuXHQmOmhvdmVyIHtcblx0XHRvdXRsaW5lLWNvbG9yOiB2YXIoLS1jay1jb2xvci13aWRnZXQtaG92ZXItYm9yZGVyKTtcblx0fVxufVxuXG4uY2sgLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlIHtcblx0Ym9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cblx0LyogVGhlIDpmb2N1cyBzdHlsZSBpcyBhcHBsaWVkIGJlZm9yZSAuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGVfZm9jdXNlZCBjbGFzcyBpcyByZW5kZXJlZCBpbiB0aGUgdmlldy5cblx0VGhlc2Ugc3R5bGVzIHNob3cgYSBkaWZmZXJlbnQgYm9yZGVyIGZvciBhIGJsaW5rIG9mIGFuIGV5ZSwgc28gYDpmb2N1c2AgbmVlZCB0byBoYXZlIHNhbWUgc3R5bGVzIGFwcGxpZWQuICovXG5cdCYuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGVfZm9jdXNlZCxcblx0Jjpmb2N1cyB7XG5cdFx0QG1peGluIGNrLWJveC1zaGFkb3cgdmFyKC0tY2staW5uZXItc2hhZG93KTtcblx0XHRAbWl4aW4gY2stbWVkaWEtZGVmYXVsdC1jb2xvcnMge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWVkaXRhYmxlLWZvY3VzLWJhY2tncm91bmQpO1xuXHRcdH1cblxuXHRcdC8qKlxuXHRcdCAqIEZvY3VzIGJvcmRlciBzaG91bGQgbm90IGJlIGFwcGxpZWQgdG8gdGFibGUgY2VsbHMgYmVjYXVzZSBpdCBvdmVycmlkZXMgdGhlIGRlZmF1bHQgdGFibGUgY2VsbCBib3JkZXIgY29sb3IuXG5cdFx0ICogSW4gb3RoZXIgd29yZHMgLSBpbiBzb21lIHNjZW5hcmlvcywgdGhlIHBhcnQgb2YgdGhlIHRhYmxlIGNlbGwgYm9yZGVyIGhhcyBmb2N1cyBjb2xvciBzdHlsZSwgd2hpY2ggaXMgbm90IGV4cGVjdGVkIGJlaGF2aW9yXG5cdFx0ICogYmVjYXVzZSBpdCBzaG91bGQgYmUgdGhlIHNhbWUgYXMgdGhlIHRhYmxlIGNlbGwgYm9yZGVyIGNvbG9yLlxuXHRcdCAqL1xuXHRcdCY6bm90KHRkLCB0aCkge1xuXHRcdFx0QG1peGluIGNrLWZvY3VzLXJpbmc7XG5cdFx0fVxuXHR9XG59XG5cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUge1xuXHQmIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRcdHBhZGRpbmc6IDRweDtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG5cdFx0LyogQmFja2dyb3VuZCBhbmQgb3BhY2l0eSB3aWxsIGJlIGFuaW1hdGVkIGFzIHRoZSBoYW5kbGVyIHNob3dzIHVwIG9yIHRoZSB3aWRnZXQgZ2V0cyBzZWxlY3RlZC4gKi9cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRvcGFjaXR5OiAwO1xuXG5cdFx0LyogVHJhbnNpdGlvbjpcblx0XHQgICAqIGJhY2tncm91bmQtY29sb3IgZm9yIHRoZSAuY2std2lkZ2V0X3NlbGVjdGVkIHN0YXRlIGNoYW5nZSxcblx0XHQgICAqIHZpc2liaWxpdHkgZm9yIGhpZGluZyB0aGUgaGFuZGxlcixcblx0XHQgICAqIG9wYWNpdHkgZm9yIHRoZSBwcm9wZXIgbG9vayBvZiB0aGUgaWNvbiB3aGVuIHRoZSBoYW5kbGVyIGRpc2FwcGVhcnMuICovXG5cdFx0dHJhbnNpdGlvbjpcblx0XHRcdGJhY2tncm91bmQtY29sb3IgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tY3VydmUpLFxuXHRcdFx0dmlzaWJpbGl0eSB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSksXG5cdFx0XHRvcGFjaXR5IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlKTtcblxuXHRcdC8qIE1ha2Ugb25seSB0b3AgY29ybmVycyByb3VuZC4gKi9cblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKSB2YXIoLS1jay1ib3JkZXItcmFkaXVzKSAwIDA7XG5cblx0XHQvKiBQbGFjZSB0aGUgZHJhZyBoYW5kbGVyIG91dHNpZGUgdGhlIHdpZGdldCB3cmFwcGVyLiAqL1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG5cdFx0bGVmdDogY2FsYygwcHggLSB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpKTtcblx0XHR0b3A6IDA7XG5cblx0XHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0XHR9XG5cblx0XHQmIC5jay1pY29uIHtcblx0XHRcdC8qIE1ha2Ugc3VyZSB0aGUgZGltZW5zaW9ucyBvZiB0aGUgaWNvbiBhcmUgaW5kZXBlbmRlbnQgb2YgdGhlIGZvbi1zaXplIG9mIHRoZSBjb250ZW50LiAqL1xuXHRcdFx0d2lkdGg6IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWljb24tc2l6ZSk7XG5cdFx0XHRoZWlnaHQ6IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWljb24tc2l6ZSk7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWRyYWctaGFuZGxlci1pY29uLWNvbG9yKTtcblxuXHRcdFx0LyogVGhlIFwic2VsZWN0ZWRcIiBwYXJ0IG9mIHRoZSBpY29uIGlzIGludmlzaWJsZSBieSBkZWZhdWx0ICovXG5cdFx0XHQmIC5jay1pY29uX19zZWxlY3RlZC1pbmRpY2F0b3Ige1xuXHRcdFx0XHRvcGFjaXR5OiAwO1xuXG5cdFx0XHRcdC8qIE5vdGU6IFRoZSBhbmltYXRpb24gaXMgbG9uZ2VyIG9uIHB1cnBvc2UuIFNpbXBseSBmZWVscyBiZXR0ZXIuICovXG5cdFx0XHRcdHRyYW5zaXRpb246IG9wYWNpdHkgMzAwbXMgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlKTtcblxuXHRcdFx0XHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdFx0XHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQvKiBBZHZlcnRpc2UgdXNpbmcgdGhlIGxvb2sgb2YgdGhlIGljb24gdGhhdCBvbmNlIGNsaWNrZWQgdGhlIGhhbmRsZXIsIHRoZSB3aWRnZXQgd2lsbCBiZSBzZWxlY3RlZC4gKi9cblx0XHQmOmhvdmVyIC5jay1pY29uIC5jay1pY29uX19zZWxlY3RlZC1pbmRpY2F0b3Ige1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHR9XG5cdH1cblxuXHQvKiBTaG93IHRoZSBzZWxlY3Rpb24gaGFuZGxlciBvbiBtb3VzZSBob3ZlciBvdmVyIHRoZSB3aWRnZXQsIGJ1dCBub3QgZm9yIG5lc3RlZCB3aWRnZXRzLiAqL1xuXHQmOmhvdmVyID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci13aWRnZXQtaG92ZXItYm9yZGVyKTtcblx0fVxuXG5cdC8qIFNob3cgdGhlIHNlbGVjdGlvbiBoYW5kbGVyIHdoZW4gdGhlIHdpZGdldCBpcyBzZWxlY3RlZCwgYnV0IG5vdCBmb3IgbmVzdGVkIHdpZGdldHMuICovXG5cdCYuY2std2lkZ2V0X3NlbGVjdGVkLFxuXHQmLmNrLXdpZGdldF9zZWxlY3RlZDpob3ZlciB7XG5cdFx0JiA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cblx0XHRcdC8qIFdoZW4gdGhlIHdpZGdldCBpcyBzZWxlY3RlZCwgbm90aWZ5IHRoZSB1c2VyIHVzaW5nIHRoZSBwcm9wZXIgbG9vayBvZiB0aGUgaWNvbi4gKi9cblx0XHRcdCYgLmNrLWljb24gLmNrLWljb25fX3NlbGVjdGVkLWluZGljYXRvciB7XG5cdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi8qIEluIGEgUlRMIGVudmlyb25tZW50LCBhbGlnbiB0aGUgc2VsZWN0aW9uIGhhbmRsZXIgdG8gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIHdpZGdldCAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cbi5ja1tkaXI9XCJydGxcIl0gLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRsZWZ0OiBhdXRvO1xuXHRyaWdodDogY2FsYygwcHggLSB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpKTtcbn1cblxuLyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNjQxNSAqL1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stcmVhZC1vbmx5IC5jay13aWRnZXQge1xuXHQvKiBQcmV2ZW50IHRoZSA6aG92ZXIgb3V0bGluZSBmcm9tIHNob3dpbmcgdXAgYmVjYXVzZSBvZiB0aGUgdXNlZCBvdXRsaW5lLWNvbG9yIHRyYW5zaXRpb24uICovXG5cdHRyYW5zaXRpb246IG5vbmU7XG5cblx0Jjpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCkge1xuXHRcdC8qIERpc2FibGUgdmlzdWFsIGVmZmVjdHMgb2YgaG92ZXIvYWN0aXZlIHdpZGdldCB3aGVuIENLRWRpdG9yIGlzIGluIHJlYWRPbmx5IG1vZGUuXG5cdFx0ICogU2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xMjYxXG5cdFx0ICpcblx0XHQgKiBMZWF2ZSB0aGUgdW5pdCBiZWNhdXNlIHRoaXMgY3VzdG9tIHByb3BlcnR5IGlzIHVzZWQgaW4gY2FsYygpIGJ5IG90aGVyIGZlYXR1cmVzLlxuXHRcdCAqIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNjc3NVxuXHRcdCAqL1xuXHRcdC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzOiAwcHg7XG5cdH1cblxuXHQmLmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUge1xuXHRcdCYgLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSxcblx0XHQmIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGU6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWJsdXJyZWQtYm9yZGVyKTtcblx0XHR9XG5cdH1cbn1cblxuLypcbiogSGlkZSB0aGUgb3V0bGluZSBvZiBhbGwgd2lkZ2V0IHBhcmVudHMgd2hlbiB0aGUgd2lkZ2V0IGlzIGJlaW5nIGhvdmVyZWQuXG4qL1xuLmNrIC5jay13aWRnZXQ6aGFzKCAuY2std2lkZ2V0LnRhYmxlOmhvdmVyICkge1xuXHRvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyogSGlkZSB0aGUgc2VsZWN0aW9uIGhhbmRsZSBvbiBtb3VzZSBob3ZlciBvdmVyIHRoZSB3aWRnZXQgb2YgYWxsIHRoZSB3aWRnZXQgcGFyZW50cy4gKi9cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGU6aGFzKCAuY2std2lkZ2V0LnRhYmxlOmhvdmVyICkgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0b3BhY2l0eTogMDtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vKiBTdHlsZSB0aGUgd2lkZ2V0IHdoZW4gaXQncyBzZWxlY3RlZCBidXQgdGhlIGVkaXRhYmxlIGl0IGJlbG9uZ3MgdG8gbG9zdCBmb2N1cy4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1ibHVycmVkIC5jay13aWRnZXQge1xuXHQmLmNrLXdpZGdldF9zZWxlY3RlZCxcblx0Ji5jay13aWRnZXRfc2VsZWN0ZWQ6aG92ZXIge1xuXHRcdG91dGxpbmUtY29sb3I6IHZhcigtLWNrLWNvbG9yLXdpZGdldC1ibHVycmVkLWJvcmRlcik7XG5cblx0XHQmLmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUge1xuXHRcdFx0JiA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUsXG5cdFx0XHQmID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZTpob3ZlciB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXdpZGdldC1ibHVycmVkLWJvcmRlcik7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlID4gLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlOmZpcnN0LWNoaWxkLFxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgYmxvY2txdW90ZSA+IC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZTpmaXJzdC1jaGlsZCB7XG5cdC8qIERvIG5vdCBjcm9wIHNlbGVjdGlvbiBoYW5kbGVyIGlmIGEgd2lkZ2V0IGlzIGEgZmlyc3QtY2hpbGQgaW4gdGhlIGJsb2NrcXVvdGUgb3IgaW4gdGhlIHJvb3QgZWRpdGFibGUuXG5cdEluIGZhY3QsIGFueXRoaW5nIHdpdGggb3ZlcmZsb3c6IGhpZGRlbi5cblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1ibG9jay1xdW90ZS9pc3N1ZXMvMjhcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS13aWRnZXQvaXNzdWVzLzQ0XG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtd2lkZ2V0L2lzc3Vlcy82NiAqL1xuXHRtYXJnaW4tdG9wOiBjYWxjKDFlbSArIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWljb24tc2l6ZSkpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLXJlc2l6ZXItc2l6ZTogMTBweDtcblxuXHQvKiBTZXQgdGhlIHJlc2l6ZXIgd2l0aCBhIDUwJSBvZmZzZXQuICovXG5cdC0tY2stcmVzaXplci1vZmZzZXQ6IGNhbGMoICggdmFyKC0tY2stcmVzaXplci1zaXplKSAvIC0yICkgLSAycHgpO1xuXHQtLWNrLXJlc2l6ZXItYm9yZGVyLXdpZHRoOiAxcHg7XG59XG5cbi5jayAuY2std2lkZ2V0X19yZXNpemVyIHtcblx0b3V0bGluZTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLXJlc2l6ZXIpO1xufVxuXG4uY2sgLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlIHtcblx0d2lkdGg6IHZhcigtLWNrLXJlc2l6ZXItc2l6ZSk7XG5cdGhlaWdodDogdmFyKC0tY2stcmVzaXplci1zaXplKTtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0Ym9yZGVyOiB2YXIoLS1jay1yZXNpemVyLWJvcmRlci13aWR0aCkgc29saWQgaHNsKDAsIDAlLCAxMDAlKTtcblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stcmVzaXplci1ib3JkZXItcmFkaXVzKTtcblxuXHQmLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLXRvcC1sZWZ0IHtcblx0XHR0b3A6IHZhcigtLWNrLXJlc2l6ZXItb2Zmc2V0KTtcblx0XHRsZWZ0OiB2YXIoLS1jay1yZXNpemVyLW9mZnNldCk7XG5cdH1cblxuXHQmLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLXRvcC1yaWdodCB7XG5cdFx0dG9wOiB2YXIoLS1jay1yZXNpemVyLW9mZnNldCk7XG5cdFx0cmlnaHQ6IHZhcigtLWNrLXJlc2l6ZXItb2Zmc2V0KTtcblx0fVxuXG5cdCYuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUtYm90dG9tLXJpZ2h0IHtcblx0XHRib3R0b206IHZhcigtLWNrLXJlc2l6ZXItb2Zmc2V0KTtcblx0XHRyaWdodDogdmFyKC0tY2stcmVzaXplci1vZmZzZXQpO1xuXHR9XG5cblx0Ji5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS1ib3R0b20tbGVmdCB7XG5cdFx0Ym90dG9tOiB2YXIoLS1jay1yZXNpemVyLW9mZnNldCk7XG5cdFx0bGVmdDogdmFyKC0tY2stcmVzaXplci1vZmZzZXQpO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2std2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1zaXplOiAyMHB4O1xuXHQtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tYWN0aXZlOiB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHQtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24taG92ZXI6IHZhcigtLWNrLWNvbG9yLXdpZGdldC1ob3Zlci1ib3JkZXIpO1xuXHQtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tYmx1cnJlZC1lZGl0YWJsZTogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWJsdXJyZWQtYm9yZGVyKTtcblx0LS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXJhZGFyLXN0YXJ0LWFscGhhOiAwO1xuXHQtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tcmFkYXItZW5kLWFscGhhOiAuMztcblx0LS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLWljb246IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG59XG5cbkBkZWZpbmUtbWl4aW4gY2std2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi12aXNpYmxlIHtcblx0b3BhY2l0eTogMTtcblx0cG9pbnRlci1ldmVudHM6IGF1dG87XG59XG5cbkBkZWZpbmUtbWl4aW4gY2std2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1oaWRkZW4ge1xuXHRvcGFjaXR5OiAwO1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmNrIC5jay13aWRnZXQge1xuXHQvKlxuXHQgKiBTdHlsZXMgb2YgdGhlIHR5cGUgYXJvdW5kIGJ1dHRvbnNcblx0ICovXG5cdCYgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiB7XG5cdFx0d2lkdGg6IHZhcigtLWNrLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tc2l6ZSk7XG5cdFx0aGVpZ2h0OiB2YXIoLS1jay13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXNpemUpO1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24pO1xuXHRcdGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuXHRcdHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tY3VydmUpLCBiYWNrZ3JvdW5kIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlKTtcblxuXHRcdEBtaXhpbiBjay13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLWhpZGRlbjtcblxuXHRcdEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cdFx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHRcdH1cblxuXHRcdCYgc3ZnIHtcblx0XHRcdHdpZHRoOiAxMHB4O1xuXHRcdFx0aGVpZ2h0OiA4cHg7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLC01MCUpO1xuXHRcdFx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIC41cyBlYXNlO1xuXHRcdFx0bWFyZ2luLXRvcDogMXB4O1xuXG5cdFx0XHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHRcdFx0fVxuXG5cdFx0XHQmICoge1xuXHRcdFx0XHRzdHJva2UtZGFzaGFycmF5OiAxMDtcblx0XHRcdFx0c3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XG5cblx0XHRcdFx0ZmlsbDogbm9uZTtcblx0XHRcdFx0c3Ryb2tlOiB2YXIoLS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLWljb24pO1xuXHRcdFx0XHRzdHJva2Utd2lkdGg6IDEuNXB4O1xuXHRcdFx0XHRzdHJva2UtbGluZWNhcDogcm91bmQ7XG5cdFx0XHRcdHN0cm9rZS1saW5lam9pbjogcm91bmQ7XG5cdFx0XHR9XG5cblx0XHRcdCYgbGluZSB7XG5cdFx0XHRcdHN0cm9rZS1kYXNoYXJyYXk6IDc7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHQvKlxuXHRcdFx0ICogRGlzcGxheSB0aGUgXCJzb25hclwiIGFyb3VuZCB0aGUgYnV0dG9uIHdoZW4gaG92ZXJlZC5cblx0XHRcdCAqL1xuXHRcdFx0YW5pbWF0aW9uOiBjay13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXNvbmFyIDFzIGVhc2UgaW5maW5pdGU7XG5cblx0XHRcdC8qXG5cdFx0XHQgKiBBbmltYXRlIGFjdGl2ZSBidXR0b24ncyBpY29uLlxuXHRcdFx0ICovXG5cdFx0XHQmIHN2ZyB7XG5cdFx0XHRcdCYgcG9seWxpbmUge1xuXHRcdFx0XHRcdGFuaW1hdGlvbjogY2std2lkZ2V0LXR5cGUtYXJvdW5kLWFycm93LWRhc2ggMnMgbGluZWFyO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0JiBsaW5lIHtcblx0XHRcdFx0XHRhbmltYXRpb246IGNrLXdpZGdldC10eXBlLWFyb3VuZC1hcnJvdy10aXAtZGFzaCAycyBsaW5lYXI7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblx0XHRcdFx0YW5pbWF0aW9uOiBub25lO1xuXG5cdFx0XHRcdCYgc3ZnIHtcblx0XHRcdFx0XHQmIHBvbHlsaW5lIHtcblx0XHRcdFx0XHRcdGFuaW1hdGlvbjogbm9uZTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQmIGxpbmUge1xuXHRcdFx0XHRcdFx0YW5pbWF0aW9uOiBub25lO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qXG5cdCAqIFNob3cgdHlwZSBhcm91bmQgYnV0dG9ucyB3aGVuIHRoZSB3aWRnZXQgaXMgYmVpbmcgaG92ZXJlZC5cblx0ICovXG5cdCY6aG92ZXIge1xuXHRcdCYgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24ge1xuXHRcdFx0QG1peGluIGNrLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tdmlzaWJsZTtcblx0XHR9XG5cdH1cblxuXHQvKlxuXHQgKiBTdHlsZXMgZm9yIHRoZSBidXR0b25zIHdoZW4gdGhlIHdpZGdldCBpcyBOT1Qgc2VsZWN0ZWQgKGJ1dCB0aGUgYnV0dG9ucyBhcmUgdmlzaWJsZVxuXHQgKiBhbmQgc3RpbGwgY2FuIGJlIGhvdmVyZWQpLlxuXHQgKi9cblx0Jjpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCkgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24ge1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24taG92ZXIpO1xuXHR9XG5cblx0Lypcblx0ICogU3R5bGVzIGZvciB0aGUgYnV0dG9ucyB3aGVuOlxuXHQgKiAtIHRoZSB3aWRnZXQgaXMgc2VsZWN0ZWQsXG5cdCAqIC0gb3IgdGhlIGJ1dHRvbiBpcyBiZWluZyBob3ZlcmVkIChyZWdhcmRsZXNzIG9mIHRoZSB3aWRnZXQgc3RhdGUpLlxuXHQgKi9cblx0Ji5jay13aWRnZXRfc2VsZWN0ZWQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24sXG5cdCYgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b246aG92ZXIge1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tYWN0aXZlKTtcblxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdHdpZHRoOiBjYWxjKHZhcigtLWNrLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tc2l6ZSkgLSAycHgpO1xuXHRcdFx0aGVpZ2h0OiBjYWxjKHZhcigtLWNrLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tc2l6ZSkgLSAycHgpO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMTAwcHg7XG5cdFx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCBoc2xhKDAsMCUsMTAwJSwwKSAwJSwgaHNsYSgwLDAlLDEwMCUsLjMpIDEwMCUpO1xuXHRcdH1cblx0fVxuXG5cdCYuY2std2lkZ2V0X3NlbGVjdGVkIHtcblx0XHQvKlxuXHRcdCogU3R5bGVzIG9mIHRoZSB3aWRnZXQgd2hlbiB0aGUgXCJmYWtlIGNhcmV0XCIgaXMgYmxpbmtpbmcgKGUuZy4gdXBvbiBrZXlib2FyZCBuYXZpZ2F0aW9uKS5cblx0XHQqIERlc3BpdGUgdGhlIHdpZGdldCBiZWluZyBwaHlzaWNhbGx5IHNlbGVjdGVkIGluIHRoZSBtb2RlbCwgaXRzIG91dGxpbmUgc2hvdWxkIGRpc2FwcGVhci5cblx0XHQqL1xuXHRcdCYuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9iZWZvcmUsXG5cdFx0Ji5jay13aWRnZXRfdHlwZS1hcm91bmRfc2hvdy1mYWtlLWNhcmV0X2FmdGVyIHtcblx0XHRcdG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdH1cblxuXHRcdC8qXG5cdFx0KiBTaG93IHR5cGUgYXJvdW5kIGJ1dHRvbnMgd2hlbiB0aGUgd2lkZ2V0IGdldHMgc2VsZWN0ZWQuXG5cdFx0Ki9cblx0XHQmID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uIHtcblx0XHRcdEBtaXhpbiBjay13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXZpc2libGU7XG5cdFx0fVxuXHR9XG5cblx0Lypcblx0ICogU3R5bGVzIGZvciB0aGUgXCJiZWZvcmVcIiBidXR0b24gd2hlbiB0aGUgd2lkZ2V0IGhhcyBhIHNlbGVjdGlvbiBoYW5kbGUuIEJlY2F1c2Ugc29tZSBzcGFjZVxuXHQgKiBpcyBjb25zdW1lZCBieSB0aGUgaGFuZGxlLCB0aGUgYnV0dG9uIG11c3QgYmUgbW92ZWQgc2xpZ2h0bHkgdG8gdGhlIHJpZ2h0IHRvIGxldCBpdCBicmVhdGhlLlxuXHQgKi9cblx0Ji5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uX2JlZm9yZSB7XG5cdFx0bWFyZ2luLWxlZnQ6IDIwcHg7XG5cdH1cblxuXHQvKlxuXHQgKiBTdHlsZXMgZm9yIHRoZSBob3Jpem9udGFsIFwiZmFrZSBjYXJldFwiIHdoaWNoIGlzIGRpc3BsYXllZCB3aGVuIHRoZSB1c2VyIG5hdmlnYXRlcyB1c2luZyB0aGUga2V5Ym9hcmQuXG5cdCAqL1xuXHQmIC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19mYWtlLWNhcmV0IHtcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHRoZWlnaHQ6IDFweDtcblx0XHRhbmltYXRpb246IGNrLXdpZGdldC10eXBlLWFyb3VuZC1mYWtlLWNhcmV0LXB1bHNlIGxpbmVhciAxcyBpbmZpbml0ZSBub3JtYWwgZm9yd2FyZHM7XG5cblx0XHQvKlxuXHRcdCAqIFRoZSBzZW1pLXRyYW5zcGFyZW50LW91dGxpbmUrYmFja2dyb3VuZCBjb21ibyBpbXByb3ZlcyB0aGUgY29udHJhc3Rcblx0XHQgKiB3aGVuIHRoZSBiYWNrZ3JvdW5kIHVuZGVybmVhdGggdGhlIGZha2UgY2FyZXQgaXMgZGFyay5cblx0XHQgKi9cblx0XHRvdXRsaW5lOiBzb2xpZCAxcHggaHNsYSgwLCAwJSwgMTAwJSwgLjUpO1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtdGV4dCk7XG5cdH1cblxuXHQmLmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYmVmb3JlLFxuXHQmLmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYWZ0ZXIge1xuXHRcdC8qXG5cdFx0ICogV2hlbiB0aGUgXCJmYWtlIGNhcmV0XCIgaXMgdmlzaWJsZSB3ZSBzaW11bGF0ZSB0aGF0IHRoZSB3aWRnZXQgaXMgbm90IHNlbGVjdGVkXG5cdFx0ICogKGRlc3BpdGUgYmVpbmcgcGh5c2ljYWxseSBzZWxlY3RlZCksIHNvIHRoZSBvdXRsaW5lIGNvbG9yIHNob3VsZCBiZSBmb3IgdGhlXG5cdFx0ICogdW5zZWxlY3RlZCB3aWRnZXQuXG5cdFx0ICovXG5cdFx0Ji5jay13aWRnZXRfc2VsZWN0ZWQ6aG92ZXIge1xuXHRcdFx0b3V0bGluZS1jb2xvcjogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWhvdmVyLWJvcmRlcik7XG5cdFx0fVxuXG5cdFx0Lypcblx0XHQgKiBTdHlsZXMgb2YgdGhlIHR5cGUgYXJvdW5kIGJ1dHRvbnMgd2hlbiB0aGUgXCJmYWtlIGNhcmV0XCIgaXMgYmxpbmtpbmcgKGUuZy4gdXBvbiBrZXlib2FyZCBuYXZpZ2F0aW9uKS5cblx0XHQgKiBJbiB0aGlzIHN0YXRlLCB0aGUgdHlwZSBhcm91bmQgYnV0dG9ucyB3b3VsZCBjb2xsaWRlIHdpdGggdGhlIGZha2UgY2FyZXRzIHNvIHRoZXkgc2hvdWxkIGRpc2FwcGVhci5cblx0XHQgKi9cblx0XHQmID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uIHtcblx0XHRcdEBtaXhpbiBjay13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLWhpZGRlbjtcblx0XHR9XG5cblx0XHQvKlxuXHRcdCAqIEZha2UgaG9yaXpvbnRhbCBjYXJldCBpbnRlZ3JhdGlvbiB3aXRoIHRoZSBzZWxlY3Rpb24gaGFuZGxlLiBXaGVuIHRoZSBjYXJldCBpcyB2aXNpYmxlLCBzaW1wbHlcblx0XHQgKiBoaWRlIHRoZSBoYW5kbGUgYmVjYXVzZSBpdCBpbnRlcnNlY3RzIHdpdGggdGhlIGNhcmV0IChhbmQgZG9lcyBub3QgbWFrZSBtdWNoIHNlbnNlIGFueXdheSkuXG5cdFx0ICovXG5cdFx0Ji5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlIHtcblx0XHRcdCYuY2std2lkZ2V0X3NlbGVjdGVkLFxuXHRcdFx0Ji5jay13aWRnZXRfc2VsZWN0ZWQ6aG92ZXIge1xuXHRcdFx0XHQmID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0XHRcdFx0b3BhY2l0eTogMFxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Lypcblx0XHQgKiBGYWtlIGhvcml6b250YWwgY2FyZXQgaW50ZWdyYXRpb24gd2l0aCB0aGUgcmVzaXplIFVJLiBXaGVuIHRoZSBjYXJldCBpcyB2aXNpYmxlLCBzaW1wbHlcblx0XHQgKiBoaWRlIHRoZSByZXNpemUgVUkgYmVjYXVzZSBpdCBjcmVhdGVzIHRvbyBtdWNoIG5vaXNlLiBJdCBjYW4gYmUgdmlzaWJsZSB3aGVuIHRoZSB1c2VyXG5cdFx0ICogaG92ZXJzIHRoZSB3aWRnZXQsIHRob3VnaC5cblx0XHQgKi9cblx0XHQmLmNrLXdpZGdldF9zZWxlY3RlZC5jay13aWRnZXRfd2l0aC1yZXNpemVyID4gLmNrLXdpZGdldF9fcmVzaXplciB7XG5cdFx0XHRvcGFjaXR5OiAwXG5cdFx0fVxuXHR9XG59XG5cbi8qXG4gKiBTdHlsZXMgZm9yIHRoZSBcImJlZm9yZVwiIGJ1dHRvbiB3aGVuIHRoZSB3aWRnZXQgaGFzIGEgc2VsZWN0aW9uIGhhbmRsZSBpbiBhbiBSVEwgZW52aXJvbm1lbnQuXG4gKiBUaGUgc2VsZWN0aW9uIGhhbmRsZXIgaXMgYWxpZ25lZCB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgd2lkZ2V0IHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8gY3JlYXRlXG4gKiBhZGRpdGlvbmFsIHNwYWNlIGZvciBpdCBuZXh0IHRvIHRoZSBcImJlZm9yZVwiIGJ1dHRvbi5cbiAqL1xuLmNrW2Rpcj1cInJ0bFwiXSAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUgLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uX2JlZm9yZSB7XG5cdG1hcmdpbi1sZWZ0OiAwO1xuXHRtYXJnaW4tcmlnaHQ6IDIwcHg7XG59XG5cbi8qXG4gKiBIaWRlIHR5cGUgYXJvdW5kIGJ1dHRvbnMgd2hlbiB0aGUgd2lkZ2V0IGlzIHNlbGVjdGVkIGFzIGEgY2hpbGQgb2YgYSBzZWxlY3RlZFxuICogbmVzdGVkIGVkaXRhYmxlIChlLmcuIG11bGl0LWNlbGwgdGFibGUgc2VsZWN0aW9uKS5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNzI2My5cbiAqL1xuLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfc2VsZWN0ZWQge1xuXHQvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eSAqL1xuXHQmIC5jay13aWRnZXQge1xuXHRcdCYuY2std2lkZ2V0X3NlbGVjdGVkLFxuXHRcdCY6aG92ZXIge1xuXHRcdFx0JiA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiB7XG5cdFx0XHRcdEBtaXhpbiBjay13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLWhpZGRlbjtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLypcbiAqIEhpZGUgdHlwZSBhcm91bmQgYnV0dG9ucyBvZiBhbGwgd2lkZ2V0IHBhcmVudHMgd2hlbiB0aGUgd2lkZ2V0IGlzIGJlaW5nIGhvdmVyZWQuXG4gKi9cbi5jayAuY2std2lkZ2V0OmhhcyggLmNrLXdpZGdldC50YWJsZTpob3ZlciApIHtcblx0JiA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiB7XG5cdFx0QG1peGluIGNrLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24taGlkZGVuO1xuXHR9XG59XG5cbi8qXG4gKiBTdHlsZXMgZm9yIHRoZSBidXR0b25zIHdoZW4gdGhlIHdpZGdldCBpcyBzZWxlY3RlZCBidXQgdGhlIHVzZXIgY2xpY2tlZCBvdXRzaWRlIG9mIHRoZSBlZGl0b3IgKGJsdXJyZWQgdGhlIGVkaXRvcikuXG4gKi9cbi5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWJsdXJyZWQgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b246bm90KDpob3Zlcikge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLWJsdXJyZWQtZWRpdGFibGUpO1xuXG5cdCYgc3ZnICoge1xuXHRcdHN0cm9rZTogaHNsKDAsMCUsNjAlKTtcblx0fVxufVxuXG5Aa2V5ZnJhbWVzIGNrLXdpZGdldC10eXBlLWFyb3VuZC1hcnJvdy1kYXNoIHtcblx0MCUge1xuXHRcdHN0cm9rZS1kYXNob2Zmc2V0OiAxMDtcblx0fVxuXHQyMCUsIDEwMCUge1xuXHRcdHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgY2std2lkZ2V0LXR5cGUtYXJvdW5kLWFycm93LXRpcC1kYXNoIHtcblx0MCUsIDIwJSB7XG5cdFx0c3Ryb2tlLWRhc2hvZmZzZXQ6IDc7XG5cdH1cblx0NDAlLCAxMDAlIHtcblx0XHRzdHJva2UtZGFzaG9mZnNldDogMDtcblx0fVxufVxuXG5Aa2V5ZnJhbWVzIGNrLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tc29uYXIge1xuXHQwJSB7XG5cdFx0Ym94LXNoYWRvdzogMCAwIDAgMCBoc2xhKHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlci1jb29yZGluYXRlcyksIHZhcigtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tcmFkYXItc3RhcnQtYWxwaGEpKTtcblx0fVxuXHQ1MCUge1xuXHRcdGJveC1zaGFkb3c6IDAgMCAwIDVweCBoc2xhKHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlci1jb29yZGluYXRlcyksIHZhcigtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tcmFkYXItZW5kLWFscGhhKSk7XG5cdH1cblx0MTAwJSB7XG5cdFx0Ym94LXNoYWRvdzogMCAwIDAgNXB4IGhzbGEodmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyLWNvb3JkaW5hdGVzKSwgdmFyKC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1yYWRhci1zdGFydC1hbHBoYSkpO1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgY2std2lkZ2V0LXR5cGUtYXJvdW5kLWZha2UtY2FyZXQtcHVsc2Uge1xuXHQwJSB7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxuXHQ0OSUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cblx0NTAlIHtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG5cdDk5JSB7XG5cdFx0b3BhY2l0eTogMDtcblx0fVxuXHQxMDAlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2stY29udGVudCBjb2RlIHtcblx0YmFja2dyb3VuZC1jb2xvcjogaHNsYSgwLCAwJSwgNzglLCAwLjMpO1xuXHRwYWRkaW5nOiAuMTVlbTtcblx0Ym9yZGVyLXJhZGl1czogMnB4O1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuY2stY29kZV9zZWxlY3RlZCAge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiBoc2xhKDAsIDAlLCA3OCUsIDAuNSk7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2stY29udGVudCBibG9ja3F1b3RlIHtcblx0LyogU2VlICMxMiAqL1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtYmxvY2stcXVvdGUvaXNzdWVzLzE1ICovXG5cdHBhZGRpbmctcmlnaHQ6IDEuNWVtO1xuXHRwYWRkaW5nLWxlZnQ6IDEuNWVtO1xuXG5cdG1hcmdpbi1sZWZ0OiAwO1xuXHRtYXJnaW4tcmlnaHQ6IDA7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0Ym9yZGVyLWxlZnQ6IHNvbGlkIDVweCBoc2woMCwgMCUsIDgwJSk7XG59XG5cbi5jay1jb250ZW50W2Rpcj1cInJ0bFwiXSBibG9ja3F1b3RlIHtcblx0Ym9yZGVyLWxlZnQ6IDA7XG5cdGJvcmRlci1yaWdodDogc29saWQgNXB4IGhzbCgwLCAwJSwgODAlKTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LyogQmFzZWQgb24gZGVmYXVsdCBDS0JveCB0aGVtZSBjb2xvcnMgKi9cblx0LS1jay1pbWFnZS1wcm9jZXNzaW5nLWhpZ2hsaWdodC1jb2xvcjogaHNsKDIyMCwgMTAlLCA5OCUpO1xuXHQtLWNrLWltYWdlLXByb2Nlc3NpbmctYmFja2dyb3VuZC1jb2xvcjogaHNsKDIyMCwgMTAlLCA5MCUpO1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSB7XG5cdCYgLmltYWdlIHtcblx0XHQmLmltYWdlLXByb2Nlc3Npbmcge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdGNvbnRlbnQ6ICcnO1xuXG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0dG9wOiAwO1xuXHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0XHR6LWluZGV4OiAxO1xuXG5cdFx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cblx0XHRcdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuXHRcdFx0XHRcdDkwZGVnLFxuXHRcdFx0XHRcdHZhcigtLWNrLWltYWdlLXByb2Nlc3NpbmctYmFja2dyb3VuZC1jb2xvciksXG5cdFx0XHRcdFx0dmFyKC0tY2staW1hZ2UtcHJvY2Vzc2luZy1oaWdobGlnaHQtY29sb3IpLFxuXHRcdFx0XHRcdHZhcigtLWNrLWltYWdlLXByb2Nlc3NpbmctYmFja2dyb3VuZC1jb2xvcilcblx0XHRcdFx0KTtcblx0XHRcdFx0YmFja2dyb3VuZC1zaXplOiAyMDAlIDEwMCU7XG5cblx0XHRcdFx0YW5pbWF0aW9uOiBjay1pbWFnZS1wcm9jZXNzaW5nLWFuaW1hdGlvbiAycyBsaW5lYXIgaW5maW5pdGU7XG5cdFx0XHR9XG5cblx0XHRcdCYgaW1nIHtcblx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5Aa2V5ZnJhbWVzIGNrLWltYWdlLXByb2Nlc3NpbmctYW5pbWF0aW9uIHtcblx0MCUge1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDIwMCUgMDtcblx0fVxuXHQxMDAlIHtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjAwJSAwO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSB7XG5cdC8qXG5cdCAqIFZlcnRpY2FsIGRyb3AgdGFyZ2V0IChpbiB0ZXh0KS5cblx0ICovXG5cdCYgLmNrLmNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1wb3NpdGlvbiB7XG5cdFx0ZGlzcGxheTogaW5saW5lO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblxuXHRcdCYgc3BhbiB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR3aWR0aDogMDtcblx0XHR9XG5cdH1cblxuXHQvKlxuXHQgKiBTdHlsZXMgb2YgdGhlIHdpZGdldCBiZWluZyBkcmFnZ2VkIChpdHMgcHJldmlldykuXG5cdCAqL1xuXHQmIC5jay13aWRnZXQ6LXdlYmtpdC1kcmFnIHtcblx0XHQmID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblxuXHRcdCYgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxufVxuXG4uY2suY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWxpbmUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLWNvbnRlbnQgcHJlIHtcblx0cGFkZGluZzogMWVtO1xuXHRjb2xvcjogaHNsKDAsIDAlLCAyMC44JSk7XG5cdGJhY2tncm91bmQ6IGhzbGEoMCwgMCUsIDc4JSwgMC4zKTtcblx0Ym9yZGVyOiAxcHggc29saWQgaHNsKDAsIDAlLCA3NyUpO1xuXHRib3JkZXItcmFkaXVzOiAycHg7XG5cblx0LyogQ29kZSBibG9jayBhcmUgbGFuZ3VhZ2UgZGlyZWN0aW9u4oCTYWdub3N0aWMuICovXG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdGRpcmVjdGlvbjogbHRyO1xuXG5cdHRhYi1zaXplOiA0O1xuXHR3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG5cblx0LyogRG9uJ3QgaW5oZXJpdCB0aGUgc3R5bGUsIGUuZy4gd2hlbiBpbiBhIGJsb2NrIHF1b3RlLiAqL1xuXHRmb250LXN0eWxlOiBub3JtYWw7XG5cblx0LyogRG9uJ3QgbGV0IHRoZSBjb2RlIGJlIHNxdWFzaGVkIGUuZy4gd2hlbiBpbiBhIHRhYmxlIGNlbGwuICovXG5cdG1pbi13aWR0aDogMjAwcHg7XG5cblx0JiBjb2RlIHtcblx0XHRiYWNrZ3JvdW5kOiB1bnNldDtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdH1cbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgcHJlIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdCZbZGF0YS1sYW5ndWFnZV06OmFmdGVyIHtcblx0XHRjb250ZW50OiBhdHRyKGRhdGEtbGFuZ3VhZ2UpO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWVkaXRvciB7XG5cdC8qIEFsbCB0aGUgZWxlbWVudHMgd2l0aGluIGAuY2stZWRpdG9yYCBhcmUgcG9zaXRpb25lZCByZWxhdGl2ZWx5IHRvIGl0LlxuXHQgSWYgYW55IGVsZW1lbnQgbmVlZHMgdG8gYmUgcG9zaXRpb25lZCB3aXRoIHJlc3BlY3QgdG8gdGhlIDxib2R5PiwgZXRjLixcblx0IGl0IG11c3QgbGFuZCBvdXRzaWRlIG9mIHRoZSBgLmNrLWVkaXRvcmAgaW4gRE9NLiAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0JiAuY2stZWRpdG9yX190b3AgLmNrLXN0aWNreS1wYW5lbCAuY2stdG9vbGJhciB7XG5cdFx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1lZGl0b3ItY2xhc3NpYy9pc3N1ZXMvNjIgKi9cblx0XHR6LWluZGV4OiB2YXIoLS1jay16LXBhbmVsKTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLW1lbnUtYmFyIHtcblx0Ym9yZGVyOiBub25lO1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItdG9vbGJhci1ib3JkZXIpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWVtb2ppLWdyaWQtdGlsZS1zaXplOiAyN3B4O1xufVxuXG4uY2suY2stZW1vamkge1xuXHQmIC5jay5jay1lbW9qaV9fdGlsZXMge1xuXHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRtYXgtaGVpZ2h0OiBtaW4oMjY1cHgsIDQwdmgpO1xuXG5cdFx0b3ZlcmZsb3cteTogYXV0bztcblx0XHRvdmVyZmxvdy14OiBoaWRkZW47XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblxuXHRcdCYgLmNrLWVtb2ppX19ncmlkIHtcblx0XHRcdGRpc3BsYXk6IGdyaWQ7XG5cdFx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCh2YXIoLS1jay1lbW9qaS1ncmlkLXRpbGUtc2l6ZSksIDFmcikpO1xuXHRcdFx0bWFyZ2luOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHRcdGdyaWQtZ2FwOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG5cblx0XHQmIC5jay1lbW9qaV9fdGlsZSB7XG5cdFx0XHR3aWR0aDogdmFyKC0tY2stZW1vamktZ3JpZC10aWxlLXNpemUpO1xuXHRcdFx0aGVpZ2h0OiB2YXIoLS1jay1lbW9qaS1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0XHRtaW4td2lkdGg6IHZhcigtLWNrLWVtb2ppLWdyaWQtdGlsZS1zaXplKTtcblx0XHRcdG1pbi1oZWlnaHQ6IHZhcigtLWNrLWVtb2ppLWdyaWQtdGlsZS1zaXplKTtcblx0XHRcdGZvbnQtc2l6ZTogMS41ZW07XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0dHJhbnNpdGlvbjogLjJzIGVhc2UgYm94LXNoYWRvdztcblx0XHRcdGJvcmRlcjogMDtcblxuXHRcdFx0QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblx0XHRcdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0XHRcdH1cblxuXHRcdFx0Jjpmb2N1czpub3QoLmNrLWRpc2FibGVkKSxcblx0XHRcdCY6aG92ZXI6bm90KC5jay1kaXNhYmxlZCkge1xuXHRcdFx0XHQvKiBEaXNhYmxlIHRoZSBkZWZhdWx0IC5jay1idXR0b24ncyBib3JkZXIgcmluZy4gKi9cblx0XHRcdFx0Ym9yZGVyOiAwO1xuXHRcdFx0XHRib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKSwgMCAwIDAgMnB4IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdFx0XHR9XG5cblx0XHRcdC8qIE1ha2Ugc3VyZSB0aGUgZ2x5cGggaXMgcmVuZGVyZWQgaW4gdGhlIGNlbnRlciBvZiB0aGUgYnV0dG9uICovXG5cdFx0XHQmIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IHZhcigtLWNrLWVtb2ppLWdyaWQtdGlsZS1zaXplKTtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1lbW9qaV9fY2F0ZWdvcmllcy1saXN0IHtcblx0ZGlzcGxheTogZmxleDtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRtYXJnaW46IDAgdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cblx0PiAuY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLXRleHQge1xuXHRcdGJvcmRlci13aWR0aDogMDtcblx0XHRib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG5cdFx0Ym9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG5cdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0cGFkZGluZzogMDtcblx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS1iaWcpO1xuXHRcdG1pbi13aWR0aDogdmFyKC0tY2stZm9udC1zaXplLWJpZyk7XG5cdFx0bWluLWhlaWdodDogdmFyKC0tY2stZm9udC1zaXplLWJpZyk7XG5cblx0XHQmLmNrLWVtb2ppX19jYXRlZ29yeS1pdGVtLmNrLW9uIHtcblx0XHRcdGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtYWN0aXZlKTtcblx0XHR9XG5cblx0XHQ+IHNwYW4ge1xuXHRcdFx0bWFyZ2luOiBhdXRvO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWVtb2ppX19za2luLXRvbmUge1xuXHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0PiAuY2suY2stZHJvcGRvd24ge1xuXG5cdFx0LmNrLmNrLWxpc3RfX2l0ZW0ge1xuXHRcdFx0bWluLXdpZHRoOiAxZW07XG5cdFx0fVxuXG5cdFx0LmNrLWJ1dHRvbi5jay1kcm9wZG93bl9fYnV0dG9uIHtcblx0XHRcdC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0d2lkdGg6IGluaXRpYWw7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZm9ybS5jay1lbW9qaS1waWNrZXItZm9ybSB7XG5cdHBhZGRpbmctYm90dG9tOiAwO1xuXG5cdC8qXG5cdCAqIGAuY2stZm9ybWAgb3ZlcnJpZGVzIHN0eWxpbmcgb2YgYWxsIGRyb3Bkb3ducyBieSBhZGRpbmcgYm9yZGVyIGFyb3VuZCB0aGVtLlxuXHQgKiBUaGUgYm9yZGVyIGlzIG5vdCBuZWVkZWQgaW4gdGhlIGVtb2ppIHBpY2tlciBmb3JtIHNvIHRyeSB0byByZW1vdmUgaXQga2VlcGluZ1xuXHQgKiBzcGVjaWZpY2l0eSBoaWdoIGVub3VnaCB0byBvdmVycmlkZSB0aGUgZm9ybSBzdHlsaW5nLlxuXHQgKi9cblx0JiAuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19idXR0b246bm90KDpmb2N1cykge1xuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1lbW9qaSB7XG5cdHdpZHRoOiAzMjBweDtcbn1cblxuLmNrIC5jay5jay1lbW9qaV9fc2VhcmNoIHtcblx0ZGlzcGxheTogZmxleDtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdHBhZGRpbmctYm90dG9tOiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXHQmID4gLmNrLmNrLXNlYXJjaCB7XG5cdFx0ZmxleDogMTtcblx0fVxufVxuXG4vKlxuICogQ2xhc3NlcyB1c2VkIGJ5IHRoZSBcImZha2UgdmlzdWFsIHNlbGVjdGlvblwiIGRpc3BsYXllZCBpbiB0aGUgY29udGVudCB3aGVuIGFuIGlucHV0XG4gKiBpbiB0aGUgZW1vamkgcGlja2VyIFVJIGhhcyBmb2N1cyAodGhlIGJyb3dzZXIgZG9lcyBub3QgcmVuZGVyIHRoZSBuYXRpdmUgc2VsZWN0aW9uIGluIHRoaXMgc3RhdGUpLlxuICovXG4uY2sgLmNrLWZha2UtZW1vamktc2VsZWN0aW9uIHtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGluay1mYWtlLXNlbGVjdGlvbik7XG59XG5cbi8qIEEgY29sbGFwc2VkIGZha2UgdmlzdWFsIHNlbGVjdGlvbi4gKi9cbi5jayAuY2stZmFrZS1lbW9qaS1zZWxlY3Rpb25fY29sbGFwc2VkIHtcblx0aGVpZ2h0OiAxMDAlO1xuXHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLXRleHQpO1xuXHRtYXJnaW4tcmlnaHQ6IC0xcHg7XG5cdG91dGxpbmU6IHNvbGlkIDFweCBoc2xhKDAsIDAlLCAxMDAlLCAuNSk7XG59XG5cbmRpdi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWVtb2ppLXBpY2tlci1iYWxsb29uIHtcblx0ei1pbmRleDogY2FsYyggdmFyKCAtLWNrLXotZGlhbG9nICkgKyAxICk7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKiBTZWUgY2tlZGl0b3IvY2tlZGl0b3I1IzkzNi4gKi9cbi5jay5jay1wbGFjZWhvbGRlcixcbi5jayAuY2stcGxhY2Vob2xkZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0Jjo6YmVmb3JlIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0bGVmdDogMDtcblx0XHRyaWdodDogMDtcblx0XHRjb250ZW50OiBhdHRyKGRhdGEtcGxhY2Vob2xkZXIpO1xuXG5cdFx0LyogU2VlIGNrZWRpdG9yL2NrZWRpdG9yNSM0NjkuICovXG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdH1cbn1cblxuLyogU2VlIGNrZWRpdG9yL2NrZWRpdG9yNSMxOTg3LiAqL1xuLmNrLmNrLXJlYWQtb25seSAuY2stcGxhY2Vob2xkZXIge1xuXHQmOjpiZWZvcmUge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cblxuLypcbiAqIFJ1bGVzIGZvciB0aGUgYGNrLXBsYWNlaG9sZGVyYCBhcmUgbG9hZGVkIGJlZm9yZSB0aGUgcnVsZXMgZm9yIGBjay1yZXNldF9hbGxgIGluIHRoZSBiYXNlIENLRWRpdG9yIDUgRExMIGJ1aWxkLlxuICogVGhpcyBmaXggb3ZlcndyaXRlcyB0aGUgaW5jb3JyZWN0bHkgc2V0IGBwb3NpdGlvbjogc3RhdGljYCBmcm9tIGBjay1yZXNldF9hbGxgLlxuICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzExNDE4LlxuICovXG4uY2suY2stcmVzZXRfYWxsIC5jay1wbGFjZWhvbGRlciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qIEVsZW1lbnRzIG1hcmtlZCBieSB0aGUgUmVuZGVyZXIgYXMgaGlkZGVuIHNob3VsZCBiZSBpbnZpc2libGUgaW4gdGhlIGVkaXRvci4gKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIHNwYW5bZGF0YS1jay11bnNhZmUtZWxlbWVudF0ge1xuXHRkaXNwbGF5OiBub25lO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLWZpbmQtcmVzdWx0IHtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItaGlnaGxpZ2h0LWJhY2tncm91bmQpO1xuXHRjb2xvcjogdmFyKC0tY2stY29sb3ItdGV4dCk7XG59XG5cbi5jay1maW5kLXJlc3VsdF9zZWxlY3RlZCB7XG5cdGJhY2tncm91bmQ6IGhzbCgyOSwgMTAwJSwgNjAlKTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0ge1xuXHRtYXgtd2lkdGg6IDEwMCU7XG5cblx0JiAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dHMsIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cblx0XHQvKiBUaGUgaW5wdXRzIGFyZWEgc3R5bGVzICovXG5cdFx0Ji5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0cyAuY2stcmVzdWx0cy1jb3VudGVyIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qIFRoZSB2YWx1ZXMgc2hvdWxkIGJlIHN5bmNocm9uaXplZCB3aXRoIHRoZSBcIkZPTlRfU0laRV9QUkVTRVRfVU5JVFNcIiBvYmplY3QgaW4gdGhlIFwiL3NyYy9mb250c2l6ZS91dGlscy5qc1wiIGZpbGUuICovXG5cbi8qIFN0eWxlcyBzaG91bGQgYmUgcHJlZml4ZWQgd2l0aCB0aGUgYC5jay1jb250ZW50YCBjbGFzcy5cblNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy82NjM2ICovXG4uY2stY29udGVudCB7XG5cdCYgLnRleHQtdGlueSB7XG5cdFx0Zm9udC1zaXplOiAuN2VtO1xuXHR9XG5cblx0JiAudGV4dC1zbWFsbCB7XG5cdFx0Zm9udC1zaXplOiAuODVlbTtcblx0fVxuXG5cdCYgLnRleHQtYmlnIHtcblx0XHRmb250LXNpemU6IDEuNGVtO1xuXHR9XG5cblx0JiAudGV4dC1odWdlIHtcblx0XHRmb250LXNpemU6IDEuOGVtO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKiBJbmNyZWFzZSB6LWluZGV4IG9mIGV2ZXJ5dGhpbmcgdG8gbWFrZSBzdXJlIG5vdGhpbmcgc3RpY2tzIGluIGZyb250IG9mIHRoZSBlZGl0b3IuXG5EaXNhYmxlIHNjcm9sbGJhcnMgdGhhdCBjYW4gYmUgcHJlc2VudCBkdWUgdG8gdGhlIHJlc3Qgb2YgdGhlIHdlYnNpdGUgY29udGVudC4gKi9cbmh0bWwuY2stZnVsbHNjcmVlbixcbmJvZHkuY2stZnVsbHNjcmVlbiB7XG5cdC0tY2stei1mdWxsc2NyZWVuOiAxMDAwMDtcblxuXHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdC0tY2stei1kZWZhdWx0OiBjYWxjKHZhcigtLWNrLXotZnVsbHNjcmVlbikgKyAxKTtcblx0LS1jay16LXBhbmVsOiBjYWxjKHZhcigtLWNrLXotZGVmYXVsdCkgKyA5OTkpO1xuXHQtLWNrLXotZGlhbG9nOiAxMDAwMDA7XG5cblx0LyogQ0tCb3ggd3JhcHBlcnMgaGF2ZSB6LWluZGV4IG9mIDk5OTksIGxldCdzIGJ1bXAgdGhlbSBvdmVyIHRoZSBkaWFsb2cncyB0byBlbnN1cmUgdmlzaWJpbGl0eSBsaWtlIG91dHNpZGUgZnVsbHNjcmVlbiBtb2RlLiAqL1xuXHQmIC5ja2JveC1yZXNldDpub3QoI24pPi5ja2JveC0tZGlhbG9nIHtcblx0XHQtLWNrYm94LXotaW5kZXgtcm9vdDogY2FsYyh2YXIoLS1jay16LWRpYWxvZykgKyAxKTtcblx0fVxuXG5cdCYgLmNrYm94Om5vdCgjbikgLmNrYm94LWltZy1lZGl0b3Ige1xuXHRcdC0tY2tib3gtei1pbmRleC1wcmV2aWV3OiBjYWxjKHZhcigtLWNrLXotZGlhbG9nKSArIDEpO1xuXHR9XG5cblx0JiAuY2stcGFnaW5hdGlvbi12aWV3LWxpbmUge1xuXHRcdHotaW5kZXg6IGNhbGModmFyKC0tY2stei1mdWxsc2NyZWVuKSArIDEpO1xuXHR9XG5cblx0JiAucGFnZS1icmVha19fbGFiZWwge1xuXHRcdC8qIE5lZWRzIHRvIGJlIGhpZ2hlciB0aGFuIGZvciAuY2stcGFnaW5hdGlvbi12aWV3LWxpbmUgdG8gYmUgZGlzcGxheWVkIG9uIHRvcCBvZiB0aGUgbGluZS4gKi9cblx0XHR6LWluZGV4OiBjYWxjKHZhcigtLWNrLXotZnVsbHNjcmVlbikgKyAyKTtcblx0fVxufVxuXG4vKlxuRnVsbHNjcmVlbiBsYXlvdXQ6XG5cbjxkaXYgY2xhc3M9XCJjayBjay1mdWxsc2NyZWVuX19tYWluLXdyYXBwZXJcIj5cblx0PGRpdiBjbGFzcz1cImNrIGNrLWZ1bGxzY3JlZW5fX3RvcC13cmFwcGVyIGNrLXJlc2V0X2FsbFwiPlxuXHRcdDxkaXYgY2xhc3M9XCJjayBjay1mdWxsc2NyZWVuX19tZW51LWJhclwiIGRhdGEtY2stZnVsbHNjcmVlbj1cIm1lbnUtYmFyXCI+PC9kaXY+XG5cdFx0PGRpdiBjbGFzcz1cImNrIGNrLWZ1bGxzY3JlZW5fX3Rvb2xiYXJcIiBkYXRhLWNrLWZ1bGxzY3JlZW49XCJ0b29sYmFyXCI+PC9kaXY+XG5cdDwvZGl2PlxuXHQ8ZGl2IGNsYXNzPVwiY2sgY2stZnVsbHNjcmVlbl9fZWRpdGFibGUtd3JhcHBlclwiPlxuXHRcdDxkaXYgY2xhc3M9XCJjayBjay1mdWxsc2NyZWVuX19zaWRlYmFyIGNrLWZ1bGxzY3JlZW5fX2xlZnQtc2lkZWJhclwiIGRhdGEtY2stZnVsbHNjcmVlbj1cImxlZnQtc2lkZWJhclwiPjwvZGl2PlxuXHRcdDxkaXYgY2xhc3M9XCJjayBjay1mdWxsc2NyZWVuX19lZGl0YWJsZVwiIGRhdGEtY2stZnVsbHNjcmVlbj1cImVkaXRhYmxlXCI+PC9kaXY+XG5cdFx0PGRpdiBjbGFzcz1cImNrIGNrLWZ1bGxzY3JlZW5fX3NpZGViYXIgY2stZnVsbHNjcmVlbl9fcmlnaHQtc2lkZWJhclwiIGRhdGEtY2stZnVsbHNjcmVlbj1cInJpZ2h0LXNpZGViYXJcIj48L2Rpdj5cblx0PC9kaXY+XG5cdDxkaXYgY2xhc3M9XCJjayBjay1mdWxsc2NyZWVuX19ib3R0b20td3JhcHBlclwiPlxuXHRcdDxkaXYgY2xhc3M9XCJjayBjay1mdWxsc2NyZWVuX19ib2R5LXdyYXBwZXJcIiBkYXRhLWNrLWZ1bGxzY3JlZW49XCJib2R5LXdyYXBwZXJcIj48L2Rpdj5cblx0PC9kaXY+XG48L2Rpdj5cbiovXG5cbi5jay5jay1mdWxsc2NyZWVuX19tYWluLXdyYXBwZXIge1xuXHQvKiBgcG9zaXRpb246IGZpeGVkYCBwcmV2ZW50cyB0aGUgb3ZlcnNjcm9sbCBvbiBtYWNvcyB0aGF0IHdvdWxkIGhhcHBlbiB3aXRoIGBwb3NpdGlvbjogYWJzb2x1dGVgLiAqL1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0ei1pbmRleDogdmFyKC0tY2stei1mdWxsc2NyZWVuKTtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1mb3JlZ3JvdW5kKTtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuXHQmIC5jay5jay1yZXZpc2lvbi1oaXN0b3J5LXVpX19jaGFuZ2VzLW5hdmlnYXRpb24ge1xuXHRcdG1hcmdpbi10b3A6IDBweDtcblx0XHRtYXJnaW4tYm90dG9tOiAwcHg7XG5cdH1cbn1cblxuLyogSWYgdGhlIGZ1bGxzY3JlZW4gY29udGFpbmVyIGlzIG5vdCBkaXJlY3RseSBpbiB0aGUgYm9keSwgd2UgbmVlZCB0byBtYWtlIHN1cmUgaXQncyBwb3NpdGlvbmVkIGFic29sdXRlbHkuICovXG46bm90KGJvZHk+IC5jay1mdWxsc2NyZWVuX19tYWluLXdyYXBwZXIpLmNrLWZ1bGxzY3JlZW5fX21haW4td3JhcHBlciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuXHQmIC5jay1mdWxsc2NyZWVuX190b3Atd3JhcHBlciB7XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cykgMDtcblx0fVxufVxuXG4uY2stZnVsbHNjcmVlbl9fbWVudS1iYXIgLmNrLmNrLW1lbnUtYmFyIHtcblx0Ym9yZGVyOiBub25lO1xufVxuXG4uY2suY2stZnVsbHNjcmVlbl9fdG9vbGJhciAuY2stdG9vbGJhciB7XG5cdGJvcmRlci1sZWZ0OiAwO1xuXHRib3JkZXItcmlnaHQ6IDA7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi5jay1mdWxsc2NyZWVuX19tYWluLXdyYXBwZXIgLmNrLWZ1bGxzY3JlZW5fX2VkaXRhYmxlLXdyYXBwZXIge1xuXHQtLWNrLWZ1bGxzY3JlZW4tZWRpdG9yLXRvcC1tYXJnaW46IDI4cHg7XG5cdC0tY2stZnVsbHNjcmVlbi1lZGl0b3ItYm90dG9tLW1hcmdpbjogMjhweDtcblx0ZGlzcGxheTogZmxleDtcblx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXHRvdmVyZmxvdzogYXV0bztcblx0bWF4LWhlaWdodDogMTAwJTtcbn1cblxuLmNrLWZ1bGxzY3JlZW5fX21haW4td3JhcHBlciAuY2stZnVsbHNjcmVlbl9fZWRpdGFibGUge1xuXHRtYXJnaW4tdG9wOiB2YXIoLS1jay1mdWxsc2NyZWVuLWVkaXRvci10b3AtbWFyZ2luKTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRtYXJnaW4tbGVmdDogYXV0bztcblxuXHQmOjphZnRlciB7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0aGVpZ2h0OiB2YXIoLS1jay1mdWxsc2NyZWVuLWVkaXRvci1ib3R0b20tbWFyZ2luKTtcblx0fVxufVxuXG4uY2stZnVsbHNjcmVlbl9fbWFpbi13cmFwcGVyIC5jay1mdWxsc2NyZWVuX19lZGl0YWJsZSAuY2suY2stZWRpdG9yX19lZGl0YWJsZTpub3QoLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlKSB7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdC8qIE1ha2Ugc3VyZSB0aGUgYm9yZGVyIGlzIHRha2VuIGludG8gYWNjb3VudC4gKi9cblx0d2lkdGg6IGNhbGMoMjEwbW0gKyAycHgpO1xuXHQvKiBNYWtlIHN1cmUgdGhlIGJvcmRlciBpcyB0YWtlbiBpbnRvIGFjY291bnQuICovXG5cdG1heC13aWR0aDogY2FsYygyMTBtbSArIDJweCk7XG5cdG1pbi1oZWlnaHQ6IDI5N21tO1xuXHRoZWlnaHQ6IGZpdC1jb250ZW50O1xuXHQvKiBSZXNldCBtYXJnaW5zIHRoYXQgbWF5IGJlIHByZXNlbnQgb24gZWRpdGFibGUuIFdlIGFkZCB0aGVtIGluIG90aGVyIHBsYWNlcy4gKi9cblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAyMG1tIDEybW07XG5cdGJvcmRlcjogMXB4IHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKSBzb2xpZDtcblx0YmFja2dyb3VuZDogaHNsKDAsIDAlLCAxMDAlKTtcblx0Ym94LXNoYWRvdzogMCAycHggM3B4IGhzbGEoMCwgMCUsIDAlLCAwLjA3OCk7XG59XG5cbi5jay1mdWxsc2NyZWVuX19tYWluLXdyYXBwZXIgLmNrLWZ1bGxzY3JlZW5fX2VkaXRhYmxlIC5jay1zb3VyY2UtZWRpdGluZy1hcmVhIHtcblx0d2lkdGg6IGNhbGMoMjEwbW0gKyAycHgpO1xufVxuXG4uY2stZnVsbHNjcmVlbl9fc2lkZWJhciB7XG5cdHdpZHRoOiAzMDBweDtcblx0bWFyZ2luLXRvcDogdmFyKC0tY2stZnVsbHNjcmVlbi1lZGl0b3ItdG9wLW1hcmdpbik7XG5cdG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4uY2stZnVsbHNjcmVlbl9fbGVmdC1zaWRlYmFyIHtcblx0Zm9udC1mYW1pbHk6IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG5cdC0tY2stdXNlci1hdmF0YXItc2l6ZTogMjhweDtcblx0cG9zaXRpb246IHN0aWNreTtcblx0YWxpZ24tc2VsZjogZmxleC1zdGFydDtcblx0dG9wOiAwO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRtYXJnaW4tdG9wOiAwcHg7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cblx0PiA6Zmlyc3QtY2hpbGQge1xuXHRcdC8qIFNldCBtaW5pbWFsIHdpZHRoIGlmIHRoZXJlIGlzIGFueSBpdGVtIGluIHRoZSBzaWRlYmFyLiAqL1xuXHRcdG1pbi13aWR0aDogMzAwcHg7XG5cdFx0LyogV2UgaGF2ZSB0byB1c2UgcGFkZGluZy10b3AgaW5zdGVhZCBvZiBtYXJnaW4tdG9wIGJlY2F1c2UgbWFyZ2luIGlzIHNjcm9sbGFibGUuICovXG5cdFx0cGFkZGluZy10b3A6IHZhcigtLWNrLWZ1bGxzY3JlZW4tZWRpdG9yLXRvcC1tYXJnaW4pO1xuXHR9XG59XG5cbi5jay1mdWxsc2NyZWVuX19sZWZ0LXNpZGViYXIgLmNrLmNrLXByZXNlbmNlLWxpc3QtLWNvbGxhcHNlZCB7XG5cdC0tY2stdXNlci1hdmF0YXItc2l6ZTogMzJweDtcbn1cblxuLmNrLWZ1bGxzY3JlZW5fX2xlZnQtc2lkZWJhciAuY2stdXNlciB7XG5cdGZvbnQtc2l6ZTogMC44NWVtO1xufVxuXG4uY2stZnVsbHNjcmVlbl9fbGVmdC1zaWRlYmFyIC5jay1wcmVzZW5jZS1saXN0X191c2Vycy1jb3VudGVyX190ZXh0IHtcblx0Zm9udC1zaXplOiAwLjg1ZW07XG59XG5cbi5jay1mdWxsc2NyZWVuX19sZWZ0LXNpZGViYXItaXRlbSB7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0bWFyZ2luLWJvdHRvbTogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXG5cdC8qIEZpcnN0IGhlYWRlciBzaG91bGQgbm90IGhhdmUgdG9wIHBhZGRpbmcuICovXG5cdCY6Zmlyc3QtY2hpbGQge1xuXHRcdHBhZGRpbmctdG9wOiAwO1xuXHR9XG5cblx0JjpsYXN0LWNoaWxkIHtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHR9XG59XG5cbi5jay1mdWxsc2NyZWVuX19sZWZ0LXNpZGViYXItaGVhZGVyIHtcblx0LS1jay1mdWxsc2NyZWVuLXByZXNlbmNlLWxpc3QtaGVhZGVyLWZvbnQtc2l6ZTogMC44NzVlbTtcblx0Zm9udC1zaXplOiB2YXIoLS1jay1mdWxsc2NyZWVuLXByZXNlbmNlLWxpc3QtaGVhZGVyLWZvbnQtc2l6ZSk7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRjb2xvcjogdmFyKC0tY2stZG9jdW1lbnQtb3V0bGluZS1pdGVtLWRlZmF1bHQtY29sb3IpO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmNrLWZ1bGxzY3JlZW5fX2xlZnQtc2lkZWJhci0tc3RpY2t5IHtcblx0cG9zaXRpb246IHN0aWNreTtcblx0dG9wOiAwO1xuXG5cdCYgPiA6Zmlyc3QtY2hpbGQge1xuXHRcdHBhZGRpbmctdG9wOiAwO1xuXHR9XG59XG5cbi5jay1mdWxsc2NyZWVuX19wcmVzZW5jZS1saXN0IHtcblx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xufVxuXG4uY2stZnVsbHNjcmVlbl9fbGVmdC1zaWRlYmFyLWl0ZW0tLW5vLW1hcmdpbiB7XG5cdG1hcmdpbjogMDtcbn1cblxuLmNrLWZ1bGxzY3JlZW5fX2xlZnQtc2lkZWJhciAuY2suY2stZG9jdW1lbnQtb3V0bGluZSB7XG5cdHBhZGRpbmctdG9wOiAwO1xuXHRwYWRkaW5nLWxlZnQ6IDA7XG5cdHBhZGRpbmctcmlnaHQ6IDA7XG59XG5cbi5jay1mdWxsc2NyZWVuX19kb2N1bWVudC1vdXRsaW5lLXdyYXBwZXIge1xuXHRwYWRkaW5nLXRvcDogMDtcblx0b3ZlcmZsb3cteTogYXV0bztcbn1cblxuLmNrLWZ1bGxzY3JlZW5fX3NpZGViYXIuY2stZnVsbHNjcmVlbl9fcmlnaHQtc2lkZWJhciB7XG5cdG1hcmdpbi10b3A6IHZhcigtLWNrLWZ1bGxzY3JlZW4tZWRpdG9yLXRvcC1tYXJnaW4pO1xuXHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cblx0Jj4gOmZpcnN0LWNoaWxkIHtcblx0XHQvKiBTZXQgbWluaW1hbCB3aWR0aCBpZiB0aGVyZSBpcyBhbnkgaXRlbSBpbiB0aGUgc2lkZWJhci4gKi9cblx0XHRtaW4td2lkdGg6IDMwMHB4O1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2staGVhZGluZ19oZWFkaW5nMSAuY2stYnV0dG9uX19sYWJlbCB7XG5cdGZvbnQtc2l6ZTogMjBweDtcbn1cblxuLmNrLmNrLWhlYWRpbmdfaGVhZGluZzIgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRmb250LXNpemU6IDE3cHg7XG59XG5cbi5jay5jay1oZWFkaW5nX2hlYWRpbmczIC5jay1idXR0b25fX2xhYmVsIHtcblx0Zm9udC1zaXplOiAxNHB4O1xufVxuXG4uY2tbY2xhc3MqPVwiY2staGVhZGluZ19oZWFkaW5nXCJdIHtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2staGlnaGxpZ2h0LW1hcmtlci15ZWxsb3c6IGhzbCg2MCwgOTclLCA3MyUpO1xuXHQtLWNrLWhpZ2hsaWdodC1tYXJrZXItZ3JlZW46IGhzbCgxMjAsIDkzJSwgNjglKTtcblx0LS1jay1oaWdobGlnaHQtbWFya2VyLXBpbms6IGhzbCgzNDUsIDk2JSwgNzMlKTtcblx0LS1jay1oaWdobGlnaHQtbWFya2VyLWJsdWU6IGhzbCgyMDEsIDk3JSwgNzIlKTtcblx0LS1jay1oaWdobGlnaHQtcGVuLXJlZDogaHNsKDAsIDg1JSwgNDklKTtcblx0LS1jay1oaWdobGlnaHQtcGVuLWdyZWVuOiBoc2woMTEyLCAxMDAlLCAyNyUpO1xufVxuXG5AZGVmaW5lLW1peGluIGhpZ2hsaWdodC1tYXJrZXItY29sb3IgJGNvbG9yIHtcblx0LmNrLWNvbnRlbnQgLm1hcmtlci0kY29sb3Ige1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWhpZ2hsaWdodC1tYXJrZXItJGNvbG9yKTtcblx0fVxufVxuXG5AZGVmaW5lLW1peGluIGhpZ2hsaWdodC1wZW4tY29sb3IgJGNvbG9yIHtcblx0LmNrLWNvbnRlbnQgLnBlbi0kY29sb3Ige1xuXHRcdGNvbG9yOiB2YXIoLS1jay1oaWdobGlnaHQtcGVuLSRjb2xvcik7XG5cblx0XHQvKiBPdmVycmlkZSBkZWZhdWx0IHllbGxvdyBiYWNrZ3JvdW5kIG9mIGA8bWFyaz5gIGZyb20gdXNlciBhZ2VudCBzdHlsZXNoZWV0ICovXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdH1cbn1cblxuQG1peGluIGhpZ2hsaWdodC1tYXJrZXItY29sb3IgeWVsbG93O1xuQG1peGluIGhpZ2hsaWdodC1tYXJrZXItY29sb3IgZ3JlZW47XG5AbWl4aW4gaGlnaGxpZ2h0LW1hcmtlci1jb2xvciBwaW5rO1xuQG1peGluIGhpZ2hsaWdodC1tYXJrZXItY29sb3IgYmx1ZTtcblxuQG1peGluIGhpZ2hsaWdodC1wZW4tY29sb3IgcmVkO1xuQG1peGluIGhpZ2hsaWdodC1wZW4tY29sb3IgZ3JlZW47XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5cbi5jay1lZGl0b3JfX2VkaXRhYmxlIC5jay1ob3Jpem9udGFsLWxpbmUge1xuXHQvKiBOZWNlc3NhcnkgdG8gcmVuZGVyIHByb3Blcmx5IG5leHQgdG8gZmxvYXRlZCBvYmplY3RzLCBlLmcuIHNpZGUgaW1hZ2UgY2FzZS4gKi9cblx0ZGlzcGxheTogZmxvdy1yb290O1xufVxuXG4uY2stY29udGVudCBociB7XG5cdG1hcmdpbjogMTVweCAwO1xuXHRoZWlnaHQ6IDRweDtcblx0YmFja2dyb3VuZDogaHNsKDAsIDAlLCA4NyUpO1xuXHRib3JkZXI6IDA7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKiBUaGUgZmVhdHVyZSBjb250YWluZXIuICovXG4uY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkIHtcblx0LyogR2l2ZSB0aGUgZW1iZWQgc29tZSBhaXIuICovXG5cdC8qIFRoZSBmaXJzdCB2YWx1ZSBzaG91bGQgYmUgZXF1YWwgdG8gLS1jay1zcGFjaW5nLWxhcmdlIHZhcmlhYmxlIGlmIHVzZWQgaW4gdGhlIGVkaXRvciBjb250ZXh0XG5cdHRvIGF2b2lkIHRoZSBjb250ZW50IGp1bXBpbmcgKFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85ODI1KS4gKi9cblx0bWFyZ2luOiAwLjllbSBhdXRvO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGRpc3BsYXk6IGZsb3ctcm9vdDtcblxuXHQvKiBHaXZlIHRoZSBodG1sIGVtYmVkIHNvbWUgbWluaW1hbCB3aWR0aCBpbiB0aGUgY29udGVudCB0byBwcmV2ZW50IHRoZW1cblx0ZnJvbSBiZWluZyBcInNxdWFzaGVkXCIgaW4gdGlnaHQgc3BhY2VzLCBlLmcuIGluIHRhYmxlIGNlbGxzIChodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy84MzMxKSAqL1xuXHRtaW4td2lkdGg6IDE1ZW07XG5cblx0LyogRG9uJ3QgaW5oZXJpdCB0aGUgc3R5bGUsIGUuZy4gd2hlbiBpbiBhIGJsb2NrIHF1b3RlLiAqL1xuXHRmb250LXN0eWxlOiBub3JtYWw7XG5cblx0LyogLS0tLS0gRW1lYmVkIGxhYmVsIGluIHRoZSB1cHBlciBsZWZ0IGNvcm5lciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdCY6OmJlZm9yZSB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXG5cdFx0LyogTWFrZSBzdXJlIHRoZSBjb250ZW50IGRvZXMgbm90IGNvdmVyIHRoZSBsYWJlbC4gKi9cblx0XHR6LWluZGV4OiAxO1xuXHR9XG5cblx0LyogLS0tLS0gRW1lYmVkIGludGVybmFscyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQvKiBUaGUgc3dpdGNoIG1vZGUgYnV0dG9uIHdyYXBwZXIuICovXG5cdCYgLnJhdy1odG1sLWVtYmVkX19idXR0b25zLXdyYXBwZXIge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdH1cblxuXHQmIC5yYXctaHRtbC1lbWJlZF9fcHJldmlldyB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0ZGlzcGxheTogZmxleDtcblx0fVxuXG5cdCYgLnJhdy1odG1sLWVtYmVkX19wcmV2aWV3LWNvbnRlbnQge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRtYXJnaW46IGF1dG87XG5cblx0XHQvKiBHaXZlcyBzcGFjaW5nIHRvIHRoZSBzbWFsbCByZW5kZXJhYmxlIGVsZW1lbnRzLCBzbyB0aGV5IGFsd2F5cyBjb3ZlciB0aGUgcGxhY2Vob2xkZXIuICovXG5cdFx0ZGlzcGxheTogdGFibGU7XG5cdFx0Ym9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcblx0XHRib3JkZXItc3BhY2luZzogN3B4O1xuXHR9XG5cblx0JiAucmF3LWh0bWwtZW1iZWRfX3ByZXZpZXctcGxhY2Vob2xkZXIge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRsZWZ0OiAwO1xuXHRcdHRvcDogMDtcblx0XHRyaWdodDogMDtcblx0XHRib3R0b206IDA7XG5cblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1odG1sLW9iamVjdC1lbWJlZC11bmZvY3VzZWQtb3V0bGluZS13aWR0aDogMXB4O1xufVxuXG4uY2std2lkZ2V0Lmh0bWwtb2JqZWN0LWVtYmVkIHtcblx0Zm9udC1zaXplOiB2YXIoLS1jay1mb250LXNpemUtYmFzZSk7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtZm9yZWdyb3VuZCk7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHQvKiBMZWF2ZSBzcGFjZSBmb3IgbGFiZWwgKi9cblx0cGFkZGluZy10b3A6IGNhbGModmFyKC0tY2stZm9udC1zaXplLXRpbnkpICsgdmFyKC0tY2stc3BhY2luZy1sYXJnZSkpO1xuXHRtaW4td2lkdGg6IGNhbGMoNzZweCArIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpKTtcblxuXHQmOm5vdCguY2std2lkZ2V0X3NlbGVjdGVkKTpub3QoOmhvdmVyKSB7XG5cdFx0b3V0bGluZTogdmFyKC0tY2staHRtbC1vYmplY3QtZW1iZWQtdW5mb2N1c2VkLW91dGxpbmUtd2lkdGgpIGRhc2hlZCB2YXIoLS1jay1jb2xvci13aWRnZXQtYmx1cnJlZC1ib3JkZXIpO1xuXHR9XG5cblx0Jjo6YmVmb3JlIHtcblx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdGZvbnQtc3R5bGU6IG5vcm1hbDtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Y29udGVudDogYXR0cihkYXRhLWh0bWwtb2JqZWN0LWVtYmVkLWxhYmVsKTtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0YmFja2dyb3VuZDogaHNsKDBkZWcgMCUgNjAlKTtcblx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlKTtcblx0XHRwYWRkaW5nOiBjYWxjKHZhcigtLWNrLXNwYWNpbmctdGlueSkgKyB2YXIoLS1jay1odG1sLW9iamVjdC1lbWJlZC11bmZvY3VzZWQtb3V0bGluZS13aWR0aCkpIHZhcigtLWNrLXNwYWNpbmctc21hbGwpIHZhcigtLWNrLXNwYWNpbmctdGlueSk7XG5cdFx0Ym9yZGVyLXJhZGl1czogMCAwIHZhcigtLWNrLWJvcmRlci1yYWRpdXMpIHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLXRpbnkpO1xuXHRcdGZvbnQtZmFtaWx5OiB2YXIoLS1jay1mb250LWZhY2UpO1xuXHR9XG5cblx0LyogTWFrZSBzcGFjZSBmb3IgbGFiZWwuICovXG5cdCYgLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbi5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b25fYmVmb3JlIHtcblx0XHRtYXJnaW4tbGVmdDogNTBweDtcblx0fVxuXG5cdCYgLmh0bWwtb2JqZWN0LWVtYmVkX19jb250ZW50IHtcblx0XHQvKiBEaXNhYmxlIHVzZXIgaW50ZXJhY3Rpb24gd2l0aCBlbWJlZCBjb250ZW50ICovXG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdH1cbn1cblxuZGl2LmNrLXdpZGdldC5odG1sLW9iamVjdC1lbWJlZCB7XG5cdG1hcmdpbjogMWVtIGF1dG87XG59XG5cbnNwYW4uY2std2lkZ2V0Lmh0bWwtb2JqZWN0LWVtYmVkIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX21lZGlhY29sb3JzLmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stY29sb3ItaW1hZ2UtY2FwdGlvbi1iYWNrZ3JvdW5kOiBoc2woMCwgMCUsIDk3JSk7XG5cdC0tY2stY29sb3ItaW1hZ2UtY2FwdGlvbi10ZXh0OiBoc2woMCwgMCUsIDIwJSk7XG5cdC0tY2stY29sb3ItaW1hZ2UtY2FwdGlvbi1oaWdobGlnaHRlZC1iYWNrZ3JvdW5kOiBoc2woNTJkZWcgMTAwJSA1MCUpO1xufVxuXG4vKiBDb250ZW50IHN0eWxlcyAqL1xuLmNrLWNvbnRlbnQgLmltYWdlID4gZmlnY2FwdGlvbiB7XG5cdGRpc3BsYXk6IHRhYmxlLWNhcHRpb247XG5cdGNhcHRpb24tc2lkZTogYm90dG9tO1xuXHR3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuXHRjb2xvcjogdmFyKC0tY2stY29sb3ItaW1hZ2UtY2FwdGlvbi10ZXh0KTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3ItaW1hZ2UtY2FwdGlvbi1iYWNrZ3JvdW5kKTtcblx0cGFkZGluZzogLjZlbTtcblx0Zm9udC1zaXplOiAuNzVlbTtcblx0b3V0bGluZS1vZmZzZXQ6IC0xcHg7XG5cblx0LyogSW1wcm92ZSBwbGFjZWhvbGRlciByZW5kZXJpbmcgaW4gaGlnaC1jb25zdHJhc3QgbW9kZSAoaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTQ5MDcpLiAqL1xuXHRAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuXHRcdGNvbG9yOiB1bnNldDtcblx0fVxufVxuXG4vKiBFZGl0aW5nIHN0eWxlcyAqL1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlID4gZmlnY2FwdGlvbi5pbWFnZV9fY2FwdGlvbl9oaWdobGlnaHRlZCB7XG5cdEBtaXhpbiBjay1tZWRpYS1kZWZhdWx0LWNvbG9ycyB7XG5cdFx0YW5pbWF0aW9uOiBjay1pbWFnZS1jYXB0aW9uLWhpZ2hsaWdodCAuNnMgZWFzZS1vdXQ7XG5cdH1cblxuXHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdGFuaW1hdGlvbjogbm9uZTtcblx0fVxufVxuXG5Aa2V5ZnJhbWVzIGNrLWltYWdlLWNhcHRpb24taGlnaGxpZ2h0IHtcblx0MCUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLWltYWdlLWNhcHRpb24taGlnaGxpZ2h0ZWQtYmFja2dyb3VuZCk7XG5cdH1cblxuXHQxMDAlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1pbWFnZS1jYXB0aW9uLWJhY2tncm91bmQpO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2staW1hZ2UtaW5zZXJ0LXVybCB7XG5cdHdpZHRoOiA0MDBweDtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgMDtcblxuXHQmIC5jay1pbWFnZS1pbnNlcnQtdXJsX19hY3Rpb24tcm93IHtcblx0XHRkaXNwbGF5OiBncmlkO1xuXHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qIFByZXNlcnZlIGFzcGVjdCByYXRpbyBvZiB0aGUgcmVzaXplZCBpbWFnZSBhZnRlciBpbnRyb2R1Y2luZyBpbWFnZSBoZWlnaHQgYXR0cmlidXRlLiAqL1xuLmNrLWNvbnRlbnQgaW1nLmltYWdlX3Jlc2l6ZWQge1xuXHRoZWlnaHQ6IGF1dG87XG59XG5cbi5jay1jb250ZW50IC5pbWFnZS5pbWFnZV9yZXNpemVkIHtcblx0bWF4LXdpZHRoOiAxMDAlO1xuXHQvKlxuXHRUaGUgYDxmaWd1cmU+YCBlbGVtZW50IGZvciByZXNpemVkIGltYWdlcyBtdXN0IG5vdCB1c2UgYGRpc3BsYXk6dGFibGVgIGFzIGJyb3dzZXJzIGRvIG5vdCBzdXBwb3J0IGBtYXgtd2lkdGhgIGZvciBpdCB3ZWxsLlxuXHRTZWUgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDAxOTYwNC9jaHJvbWUtc2FmYXJpLWlnbm9yaW5nLW1heC13aWR0aC1pbi10YWJsZS8xNDQyMDY5MSMxNDQyMDY5MSBmb3IgbW9yZS5cblx0Rm9ydHVuYXRlbHksIHNpbmNlIHdlIGNvbnRyb2wgdGhlIHdpZHRoLCB0aGVyZSBpcyBubyByaXNrIHRoYXQgdGhlIGltYWdlIHdpbGwgbG9vayBiYWQuXG5cdCovXG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG5cdCYgaW1nIHtcblx0XHQvKiBGb3IgcmVzaXplZCBpbWFnZXMgaXQgaXMgdGhlIGA8ZmlndXJlPmAgZWxlbWVudCB0aGF0IGRldGVybWluZXMgdGhlIGltYWdlIHdpZHRoLiAqL1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cblx0JiA+IGZpZ2NhcHRpb24ge1xuXHRcdC8qIFRoZSBgPGZpZ3VyZT5gIGVsZW1lbnQgdXNlcyBgZGlzcGxheTpibG9ja2AsIHNvIGA8ZmlnY2FwdGlvbj5gIGFsc28gaGFzIHRvLiAqL1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIHtcblx0LyogVGhlIHJlc2l6ZWQgaW5saW5lIGltYWdlIG5lc3RlZCBpbiB0aGUgdGFibGUgc2hvdWxkIHJlc3BlY3QgaXRzIHBhcmVudCBzaXplLlxuXHRTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTExNy4gKi9cblx0JiB0ZCxcblx0JiB0aCB7XG5cdFx0JiAuaW1hZ2UtaW5saW5lLmltYWdlX3Jlc2l6ZWQgaW1nIHtcblx0XHRcdG1heC13aWR0aDogMTAwJTtcblx0XHR9XG5cdH1cbn1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLXRleHQuY2stcmVzaXplLWltYWdlLWJ1dHRvbiAuY2stYnV0dG9uX19pY29uIHtcblx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcbn1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLXRleHQuY2stcmVzaXplLWltYWdlLWJ1dHRvbiAuY2stYnV0dG9uX19pY29uIHtcblx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xufVxuXG4uY2suY2stZHJvcGRvd24gLmNrLWJ1dHRvbi5jay1yZXNpemUtaW1hZ2UtYnV0dG9uIC5jay1idXR0b25fX2xhYmVsIHtcblx0d2lkdGg6IDRlbTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1pbWFnZS1zdHlsZS1zcGFjaW5nOiAxLjVlbTtcblx0LS1jay1pbmxpbmUtaW1hZ2Utc3R5bGUtc3BhY2luZzogY2FsYyh2YXIoLS1jay1pbWFnZS1zdHlsZS1zcGFjaW5nKSAvIDIpO1xufVxuXG4uY2stY29udGVudCB7XG5cdC8qIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTYzMTcgKi9cblx0JiAuaW1hZ2Uge1xuXHRcdC8qIFByb3ZpZGVzIGEgbWluaW1hbCBzaWRlIG1hcmdpbiBmb3IgdGhlIGxlZnQgYW5kIHJpZ2h0IGFsaWduZWQgaW1hZ2VzLCBzbyB0aGF0IHRoZSB1c2VyIGhhcyBhIHZpc3VhbCBmZWVkYmFja1xuXHRcdGNvbmZpcm1pbmcgc3VjY2Vzc2Z1bCBhcHBsaWNhdGlvbiBvZiB0aGUgc3R5bGUgaWYgaW1hZ2Ugd2lkdGggZXhjZWVkcyB0aGUgZWRpdG9yJ3Mgc2l6ZS5cblx0XHRTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTM0MiAqL1xuXHRcdCYuaW1hZ2Utc3R5bGUtYmxvY2stYWxpZ24tbGVmdCxcblx0XHQmLmltYWdlLXN0eWxlLWJsb2NrLWFsaWduLXJpZ2h0IHtcblx0XHRcdG1heC13aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tY2staW1hZ2Utc3R5bGUtc3BhY2luZykpO1xuXHRcdH1cblxuXHRcdC8qIEFsbG93cyBkaXNwbGF5aW5nIG11bHRpcGxlIGZsb2F0aW5nIGltYWdlcyBpbiB0aGUgc2FtZSBsaW5lLlxuXHRcdFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85MTgzI2lzc3VlY29tbWVudC04MDQ5ODgxMzIgKi9cblx0XHQmLmltYWdlLXN0eWxlLWFsaWduLWxlZnQsXG5cdFx0Ji5pbWFnZS1zdHlsZS1hbGlnbi1yaWdodCB7XG5cdFx0XHRjbGVhcjogbm9uZTtcblx0XHR9XG5cblx0XHQmLmltYWdlLXN0eWxlLXNpZGUge1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLWltYWdlLXN0eWxlLXNwYWNpbmcpO1xuXHRcdFx0bWF4LXdpZHRoOiA1MCU7XG5cdFx0fVxuXG5cdFx0Ji5pbWFnZS1zdHlsZS1hbGlnbi1sZWZ0IHtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1pbWFnZS1zdHlsZS1zcGFjaW5nKTtcblx0XHR9XG5cblx0XHQmLmltYWdlLXN0eWxlLWFsaWduLXJpZ2h0IHtcblx0XHRcdGZsb2F0OiByaWdodDtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1pbWFnZS1zdHlsZS1zcGFjaW5nKTtcblx0XHR9XG5cblx0XHQmLmltYWdlLXN0eWxlLWJsb2NrLWFsaWduLXJpZ2h0IHtcblx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcdH1cblxuXHRcdCYuaW1hZ2Utc3R5bGUtYmxvY2stYWxpZ24tbGVmdCB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdG1hcmdpbi1yaWdodDogYXV0bztcblx0XHR9XG5cdH1cblxuXHQmIC5pbWFnZS1zdHlsZS1hbGlnbi1jZW50ZXIge1xuXHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcdG1hcmdpbi1yaWdodDogYXV0bztcblx0fVxuXG5cdCYgLmltYWdlLXN0eWxlLWFsaWduLWxlZnQge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2staW1hZ2Utc3R5bGUtc3BhY2luZyk7XG5cdH1cblxuXHQmIC5pbWFnZS1zdHlsZS1hbGlnbi1yaWdodCB7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1pbWFnZS1zdHlsZS1zcGFjaW5nKTtcblx0fVxuXG5cdC8qIFNpbXVsYXRlcyBtYXJnaW4gY29sbGFwc2luZyB3aXRoIHRoZSBwcmVjZWRpbmcgcGFyYWdyYXBoLCB3aGljaCBkb2VzIG5vdCB3b3JrIGZvciB0aGUgZmxvYXRpbmcgZWxlbWVudHMuICovXG5cdCYgcCArIC5pbWFnZS5pbWFnZS1zdHlsZS1hbGlnbi1sZWZ0LFxuXHQmIHAgKyAuaW1hZ2UuaW1hZ2Utc3R5bGUtYWxpZ24tcmlnaHQsXG5cdCYgcCArIC5pbWFnZS5pbWFnZS1zdHlsZS1zaWRlIHtcblx0XHRtYXJnaW4tdG9wOiAwO1xuXHR9XG5cblx0JiAuaW1hZ2UtaW5saW5lIHtcblx0XHQmLmltYWdlLXN0eWxlLWFsaWduLWxlZnQsXG5cdFx0Ji5pbWFnZS1zdHlsZS1hbGlnbi1yaWdodCB7XG5cdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1pbmxpbmUtaW1hZ2Utc3R5bGUtc3BhY2luZyk7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiB2YXIoLS1jay1pbmxpbmUtaW1hZ2Utc3R5bGUtc3BhY2luZyk7XG5cdFx0fVxuXG5cdFx0Ji5pbWFnZS1zdHlsZS1hbGlnbi1sZWZ0IHtcblx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2staW5saW5lLWltYWdlLXN0eWxlLXNwYWNpbmcpO1xuXHRcdH1cblxuXHRcdCYuaW1hZ2Utc3R5bGUtYWxpZ24tcmlnaHQge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLWlubGluZS1pbWFnZS1zdHlsZS1zcGFjaW5nKTtcblx0XHR9XG5cdH1cbn1cblxuLmNrLmNrLXNwbGl0YnV0dG9uIHtcblx0LyogVGhlIGJ1dHRvbiBzaG91bGQgZGlzcGxheSBhcyBhIHJlZ3VsYXIgZHJvcC1kb3duIGlmIHRoZSBhY3Rpb24gYnV0dG9uXG5cdGlzIGZvcmNlZCB0byBmaXJlIHRoZSBzYW1lIGFjdGlvbiBhcyB0aGUgYXJyb3cgYnV0dG9uLiAqL1xuXHQmLmNrLXNwbGl0YnV0dG9uX2ZsYXR0ZW4ge1xuXHRcdCY6aG92ZXIsXG5cdFx0Ji5jay1zcGxpdGJ1dHRvbl9vcGVuIHtcblx0XHRcdCYgPiAuY2stc3BsaXRidXR0b25fX2FjdGlvbjpub3QoLmNrLWRpc2FibGVkKSxcblx0XHRcdCYgPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCguY2stZGlzYWJsZWQpLFxuXHRcdFx0JiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCk6bm90KDpob3Zlcikge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1idXR0b24tb24tYmFja2dyb3VuZCk7XG5cblx0XHRcdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLmNrLXNwbGl0YnV0dG9uX29wZW46aG92ZXIge1xuXHRcdFx0JiA+IC5jay1zcGxpdGJ1dHRvbl9fYWN0aW9uOm5vdCguY2stZGlzYWJsZWQpLFxuXHRcdFx0JiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCksXG5cdFx0XHQmID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpub3QoLmNrLWRpc2FibGVkKTpub3QoOmhvdmVyKSB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1vbi1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIHtcblx0JiAuaW1hZ2UsXG5cdCYgLmltYWdlLWlubGluZSB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR9XG5cblx0LyogVXBsb2FkIHByb2dyZXNzIGJhci4gKi9cblx0JiAuaW1hZ2UgLmNrLXByb2dyZXNzLWJhcixcblx0JiAuaW1hZ2UtaW5saW5lIC5jay1wcm9ncmVzcy1iYXIge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogMDtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLWltYWdlLXVwbG9hZC1jb21wbGV0ZS1pY29uIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuXHQvKlxuXHQgKiBTbWFsbGVyIGltYWdlcyBzaG91bGQgaGF2ZSB0aGUgaWNvbiBjbG9zZXIgdG8gdGhlIGJvcmRlci5cblx0ICogTWF0Y2ggdGhlIGljb24gcG9zaXRpb24gd2l0aCB0aGUgbGlua2VkIGltYWdlIGluZGljYXRvciBicm91Z2h0IGJ5IHRoZSBsaW5rIGltYWdlIGZlYXR1cmUuXG5cdCAqL1xuXHR0b3A6IG1pbih2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSksIDYlKTtcblx0cmlnaHQ6IG1pbih2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSksIDYlKTtcblx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHR6LWluZGV4OiAxO1xuXG5cdCY6OmFmdGVyIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrIC5jay11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXG5cdCY6OmJlZm9yZSB7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2stY29udGVudCB7XG5cdCYgLmltYWdlIHtcblx0XHRkaXNwbGF5OiB0YWJsZTtcblx0XHRjbGVhcjogYm90aDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0XHQvKiBNYWtlIHN1cmUgdGhlcmUgaXMgc29tZSBzcGFjZSBiZXR3ZWVuIHRoZSBjb250ZW50IGFuZCB0aGUgaW1hZ2UuIENlbnRlciBpbWFnZSBieSBkZWZhdWx0LiAqL1xuXHRcdC8qIFRoZSBmaXJzdCB2YWx1ZSBzaG91bGQgYmUgZXF1YWwgdG8gLS1jay1zcGFjaW5nLWxhcmdlIHZhcmlhYmxlIGlmIHVzZWQgaW4gdGhlIGVkaXRvciBjb250ZXh0XG5cdCBcdHRvIGF2b2lkIHRoZSBjb250ZW50IGp1bXBpbmcgKFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85ODI1KS4gKi9cblx0XHRtYXJnaW46IDAuOWVtIGF1dG87XG5cblx0XHQvKiBNYWtlIHN1cmUgdGhlIGNhcHRpb24gd2lsbCBiZSBkaXNwbGF5ZWQgcHJvcGVybHkgKFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTg3MCkuICovXG5cdFx0bWluLXdpZHRoOiA1MHB4O1xuXG5cdFx0JiBpbWcge1xuXHRcdFx0LyogUHJldmVudCB1bm5lY2Vzc2FyeSBtYXJnaW5zIGNhdXNlZCBieSBsaW5lLWhlaWdodCAoc2VlICM0NCkuICovXG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblxuXHRcdFx0LyogQ2VudGVyIHRoZSBpbWFnZSBpZiBpdHMgd2lkdGggaXMgc21hbGxlciB0aGFuIHRoZSBjb250ZW50J3Mgd2lkdGguICovXG5cdFx0XHRtYXJnaW46IDAgYXV0bztcblxuXHRcdFx0LyogTWFrZSBzdXJlIHRoZSBpbWFnZSBuZXZlciBleGNlZWRzIHRoZSBzaXplIG9mIHRoZSBwYXJlbnQgY29udGFpbmVyIChja2VkaXRvci9ja2VkaXRvcjUtdWkjNjcpLiAqL1xuXHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xuXG5cdFx0XHQvKiBNYWtlIHN1cmUgdGhlIGltYWdlIGlzIG5ldmVyIHNtYWxsZXIgdGhhbiB0aGUgcGFyZW50IGNvbnRhaW5lciAoU2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85MzAwKS4gKi9cblx0XHRcdG1pbi13aWR0aDogMTAwJTtcblxuXHRcdFx0LyogS2VlcCBwcm9wb3J0aW9ucyBvZiB0aGUgYmxvY2sgaW1hZ2UgaWYgdGhlIGhlaWdodCBpcyBzZXQgYW5kIHRoZSBpbWFnZSBpcyB3aWRlciB0aGFuIHRoZSBlZGl0b3Igd2lkdGguXG5cdFx0XHRTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTQ1NDIuICovXG5cdFx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0fVxuXHR9XG5cblx0JiAuaW1hZ2UtaW5saW5lIHtcblx0XHQvKlxuXHRcdCAqIE5vcm1hbGx5LCB0aGUgLmltYWdlLWlubGluZSB3b3VsZCBoYXZlIFwiZGlzcGxheTogaW5saW5lLWJsb2NrXCIgYW5kIFwiaW1nIHsgd2lkdGg6IDEwMCUgfVwiICh0byBmb2xsb3cgdGhlIHdyYXBwZXIgd2hpbGUgcmVzaXppbmcpLlxuXHRcdCAqIFVuZm9ydHVuYXRlbHksIHRvZ2V0aGVyIHdpdGggXCJzcmNzZXRcIiwgaXQgZ2V0cyBhdXRvbWF0aWNhbGx5IHN0cmV0Y2hlZCB1cCB0byB0aGUgd2lkdGggb2YgdGhlIGVkaXRpbmcgcm9vdC5cblx0XHQgKiBUaGlzIHN0cmFuZ2UgYmVoYXZpb3IgZG9lcyBub3QgaGFwcGVuIHdpdGggaW5saW5lLWZsZXguXG5cdFx0ICovXG5cdFx0ZGlzcGxheTogaW5saW5lLWZsZXg7XG5cblx0XHQvKiBXaGlsZSBiZWluZyByZXNpemVkLCBkb24ndCBhbGxvdyB0aGUgaW1hZ2UgdG8gZXhjZWVkIHRoZSB3aWR0aCBvZiB0aGUgZWRpdGluZyByb290LiAqL1xuXHRcdG1heC13aWR0aDogMTAwJTtcblxuXHRcdC8qIFRoaXMgaXMgcmVxdWlyZWQgYnkgU2FmYXJpIHRvIHJlc2l6ZSBpbWFnZXMgaW4gYSBzZW5zaWJsZSB3YXkuIFdpdGhvdXQgdGhpcywgdGhlIGJyb3dzZXIgYnJlYWtzIHRoZSByYXRpby4gKi9cblx0XHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuXHRcdC8qIFdoZW4gdGhlIHBpY3R1cmUgaXMgcHJlc2VudCBpdCBtdXN0IGFjdCBhcyBhIGZsZXggY29udGFpbmVyIHRvIGxldCB0aGUgaW1nIHJlc2l6ZSBwcm9wZXJseSAqL1xuXHRcdCYgcGljdHVyZSB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdH1cblxuXHRcdC8qIFdoZW4gdGhlIHBpY3R1cmUgaXMgcHJlc2VudCwgaXQgbXVzdCBhY3QgbGlrZSBhIHJlc2l6YWJsZSBpbWcuICovXG5cdFx0JiBwaWN0dXJlLFxuXHRcdCYgaW1nIHtcblx0XHRcdC8qIFRoaXMgaXMgbmVjZXNzYXJ5IGZvciB0aGUgaW1nIHRvIHNwYW4gdGhlIGVudGlyZSAuaW1hZ2UtaW5saW5lIHdyYXBwZXIgYW5kIHRvIHJlc2l6ZSBwcm9wZXJseS4gKi9cblx0XHRcdGZsZXgtZ3JvdzogMTtcblx0XHRcdGZsZXgtc2hyaW5rOiAxO1xuXG5cdFx0XHQvKiBQcmV2ZW50cyBvdmVyZmxvd2luZyB0aGUgZWRpdGluZyByb290IGJvdW5kYXJpZXMgd2hlbiBhbiBpbmxpbmUgaW1hZ2UgaXMgdmVyeSB3aWRlLiAqL1xuXHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHRcdH1cblx0fVxufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSB7XG5cdC8qXG5cdCAqIEluaGVydGl0IHRoZSBjb250ZW50IHN0eWxlcyBwYWRkaW5nIG9mIHRoZSA8ZmlnY2FwdGlvbj4gaW4gY2FzZSB0aGUgaW50ZWdyYXRpb24gb3ZlcnJpZGVzIGB0ZXh0LWFsaWduOiBjZW50ZXJgXG5cdCAqIG9mIGAuaW1hZ2VgIChlLmcuIHRvIHRoZSBsZWZ0L3JpZ2h0KS4gVGhpcyBlbnN1cmVzIHRoZSBwbGFjZWhvbGRlciBzdGF5cyBhdCB0aGUgcGFkZGluZyBqdXN0IGxpa2UgdGhlIG5hdGl2ZVxuXHQgKiBjYXJldCBkb2VzLCBhbmQgbm90IGF0IHRoZSBlZGdlIG9mIDxmaWdjYXB0aW9uPi5cblx0ICovXG5cdCYgLmltYWdlID4gZmlnY2FwdGlvbi5jay1wbGFjZWhvbGRlcjo6YmVmb3JlIHtcblx0XHRwYWRkaW5nLWxlZnQ6IGluaGVyaXQ7XG5cdFx0cGFkZGluZy1yaWdodDogaW5oZXJpdDtcblxuXHRcdC8qXG5cdFx0ICogTWFrZSBzdXJlIHRoZSBpbWFnZSBjYXB0aW9uIHBsYWNlaG9sZGVyIGRvZXNuJ3Qgb3ZlcmZsb3cgdGhlIHBsYWNlaG9sZGVyIGFyZWEuXG5cdFx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzkxNjIuXG5cdFx0ICovXG5cdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHR9XG5cblx0Lypcblx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE1MTE1LlxuXHQgKi9cblx0JiAuaW1hZ2Uge1xuXHRcdHotaW5kZXg6IDE7XG5cblx0XHQvKlxuXHRcdCAqIE1ha2Ugc3VyZSB0aGUgc2VsZWN0ZWQgaW1hZ2UgYWx3YXlzIHN0YXlzIG9uIHRvcCBvZiBpdHMgc2libGluZ3MuXG5cdFx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzkxMDguXG5cdFx0ICovXG5cdFx0Ji5jay13aWRnZXRfc2VsZWN0ZWQge1xuXHRcdFx0ei1pbmRleDogMjtcblx0XHR9XG5cdH1cblxuXHQvKlxuXHQgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTUxMTUuXG5cdCAqL1xuXHQmIC5pbWFnZS1pbmxpbmUge1xuXHRcdHotaW5kZXg6IDE7XG5cblx0XHQvKlxuXHRcdCAqIE1ha2Ugc3VyZSB0aGUgc2VsZWN0ZWQgaW5saW5lIGltYWdlIGFsd2F5cyBzdGF5cyBvbiB0b3Agb2YgaXRzIHNpYmxpbmdzLlxuXHRcdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85MTA4LlxuXHRcdCAqL1xuXHRcdCYuY2std2lkZ2V0X3NlbGVjdGVkIHtcblx0XHRcdHotaW5kZXg6IDI7XG5cblx0XHRcdC8qXG5cdFx0XHQgKiBNYWtlIHN1cmUgdGhlIG5hdGl2ZSBicm93c2VyIHNlbGVjdGlvbiBzdHlsZSBpcyBub3QgZGlzcGxheWVkLlxuXHRcdFx0ICogSW5saW5lIGltYWdlIHdpZGdldHMgaGF2ZSB0aGVpciBvd24gc3R5bGVzIGZvciB0aGUgc2VsZWN0ZWQgc3RhdGUgYW5kXG5cdFx0XHQgKiBsZWF2aW5nIHRoaXMgdXAgdG8gdGhlIGJyb3dzZXIgaXMgYXNraW5nIGZvciBhIHZpc3VhbCBjb2xsaXNpb24uXG5cdFx0XHQgKi9cblx0XHRcdCYgOjpzZWxlY3Rpb24ge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qIEtlZXAgcHJvcG9ydGlvbnMgb2YgdGhlIGlubGluZSBpbWFnZSBpZiB0aGUgaGVpZ2h0IGlzIHNldCBhbmQgdGhlIGltYWdlIGlzIHdpZGVyIHRoYW4gdGhlIGVkaXRvciB3aWR0aC5cblx0U2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE0NTQyLiAqL1xuXHQmIC5pbWFnZS1pbmxpbmUgaW1nIHtcblx0XHRoZWlnaHQ6IGF1dG87XG5cdH1cblxuXHQvKiBUaGUgaW5saW5lIGltYWdlIG5lc3RlZCBpbiB0aGUgdGFibGUgc2hvdWxkIGhhdmUgaXRzIG9yaWdpbmFsIHNpemUgaWYgbm90IHJlc2l6ZWQuXG5cdFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85MTE3LiAqL1xuXHQmIHRkLFxuXHQmIHRoIHtcblx0XHQmIC5pbWFnZS1pbmxpbmUgaW1nIHtcblx0XHRcdG1heC13aWR0aDogbm9uZTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIHtcblx0JiBpbWcuaW1hZ2VfcGxhY2Vob2xkZXIge1xuXHRcdGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stbGluay1wcm92aWRlcnMge1xuXHQmID4gLmNrLWxpbmstcHJvdmlkZXJzX19saXN0IHtcblx0XHRvdmVyZmxvdy14OiBoaWRkZW47XG5cdFx0b3ZlcmZsb3cteTogYXV0bztcblx0XHRvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuXG5cdFx0JiAuY2stYnV0dG9uIHtcblx0XHRcdCYgPiAuY2staWNvbiB7XG5cdFx0XHRcdGZsZXgtc2hyaW5rOiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWxpbmstdG9vbGJhcl9fcHJldmlldyB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuXHQmIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSB7XG5cdC8qIExpbmtlZCBpbWFnZSBpbmRpY2F0b3IgKi9cblx0JiBmaWd1cmUuaW1hZ2UgPiBhLFxuXHQmIGEgc3Bhbi5pbWFnZS1pbmxpbmUge1xuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdH1cblx0fVxufVxuXG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX3J3ZC5jc3NcIjtcblxuLyogR2VuZXJpYyBjbGFzcyB0aGF0IHdyYXBzIGVhY2ggbGluayBiYWxsb29uIHZpZXcuICovXG4uY2suY2stbGluay1mb3JtIHtcblx0JiAuY2stbGluay1mb3JtX19wcm92aWRlcnMtbGlzdCB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG5cdFx0JiAuY2stbGlua19fYnV0dG9uIHtcblx0XHRcdCYgPiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRcdGZsZXgtZ3JvdzogMTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmIC5jay1saW5rX19pdGVtczplbXB0eSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLWVkaXRvcl9fZWRpdGFibGUgLmNrLWxpc3QtYm9ndXMtcGFyYWdyYXBoIHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stbGlzdC1zdHlsZXMtbGlzdCB7XG5cdGRpc3BsYXk6IGdyaWQ7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2stY29udGVudCBvbCB7XG5cdGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDtcblxuXHQmIG9sIHtcblx0XHRsaXN0LXN0eWxlLXR5cGU6IGxvd2VyLWxhdGluO1xuXG5cdFx0JiBvbCB7XG5cdFx0XHRsaXN0LXN0eWxlLXR5cGU6IGxvd2VyLXJvbWFuO1xuXG5cdFx0XHQmIG9sIHtcblx0XHRcdFx0bGlzdC1zdHlsZS10eXBlOiB1cHBlci1sYXRpbjtcblxuXHRcdFx0XHQmIG9sIHtcblx0XHRcdFx0XHRsaXN0LXN0eWxlLXR5cGU6IHVwcGVyLXJvbWFuO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5jay1jb250ZW50IHVsIHtcblx0bGlzdC1zdHlsZS10eXBlOiBkaXNjO1xuXG5cdCYgdWwge1xuXHRcdGxpc3Qtc3R5bGUtdHlwZTogY2lyY2xlO1xuXG5cdFx0JiB1bCB7XG5cdFx0XHRsaXN0LXN0eWxlLXR5cGU6IHNxdWFyZTtcblxuXHRcdFx0JiB1bCB7XG5cdFx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogc3F1YXJlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZTogMTZweDtcbn1cblxuQGRlZmluZS1taXhpbiB0b2RvLWxpc3QtY2hlY2tib3gge1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aWR0aDogdmFyKC0tY2stdG9kby1saXN0LWNoZWNrbWFyay1zaXplKTtcblx0aGVpZ2h0OiB2YXIoLS1jay10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemUpO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG5cdC8qIE5lZWRlZCBvbiBpT1MgKi9cblx0Ym9yZGVyOiAwO1xuXG5cdC8qIExUUiBzdHlsZXMgKi9cblx0bGVmdDogLTI1cHg7XG5cdG1hcmdpbi1yaWdodDogLTE1cHg7XG5cdHJpZ2h0OiAwO1xuXHRtYXJnaW4tbGVmdDogMDtcblxuXHQvKiBSVEwgc3R5bGVzICovXG5cdFtkaXI9cnRsXSYge1xuXHRcdGxlZnQ6IDA7XG5cdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdHJpZ2h0OiAtMjVweDtcblx0XHRtYXJnaW4tbGVmdDogLTE1cHg7XG5cdH1cblxuXHQmOjpiZWZvcmUge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRib3JkZXI6IDFweCBzb2xpZCBoc2woMCwgMCUsIDIwJSk7XG5cdFx0Ym9yZGVyLXJhZGl1czogMnB4O1xuXHRcdHRyYW5zaXRpb246IDI1MG1zIGVhc2UtaW4tb3V0IGJveC1zaGFkb3c7XG5cblx0XHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0XHR9XG5cdH1cblxuXHQmOjphZnRlciB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdGNvbnRlbnQ6ICcnO1xuXG5cdFx0LyogQ2FsY3VsYXRlIHRpY2sgcG9zaXRpb24sIHNpemUgYW5kIGJvcmRlci13aWR0aCBwcm9wb3J0aW9uYWwgdG8gdGhlIGNoZWNrbWFyayBzaXplLiAqL1xuXHRcdGxlZnQ6IGNhbGMoIHZhcigtLWNrLXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSkgLyAzICk7XG5cdFx0dG9wOiBjYWxjKCB2YXIoLS1jay10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemUpIC8gNS4zICk7XG5cdFx0d2lkdGg6IGNhbGMoIHZhcigtLWNrLXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSkgLyA1LjMgKTtcblx0XHRoZWlnaHQ6IGNhbGMoIHZhcigtLWNrLXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSkgLyAyLjYgKTtcblx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0Ym9yZGVyLXdpZHRoOiAwIGNhbGMoIHZhcigtLWNrLXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSkgLyA4ICkgY2FsYyggdmFyKC0tY2stdG9kby1saXN0LWNoZWNrbWFyay1zaXplKSAvIDggKSAwO1xuXHRcdHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcblx0fVxuXG5cdCZbY2hlY2tlZF0ge1xuXHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiBoc2woMTI2LCA2NCUsIDQxJSk7XG5cdFx0XHRib3JkZXItY29sb3I6IGhzbCgxMjYsIDY0JSwgNDElKTtcblx0XHR9XG5cblx0XHQmOjphZnRlciB7XG5cdFx0XHRib3JkZXItY29sb3I6IGhzbCgwLCAwJSwgMTAwJSk7XG5cdFx0fVxuXHR9XG59XG5cbi8qXG4gKiBUby1kbyBsaXN0IGNvbnRlbnQgc3R5bGVzLlxuICovXG4uY2stY29udGVudCAudG9kby1saXN0IHtcblx0bGlzdC1zdHlsZTogbm9uZTtcblxuXHQmIGxpIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0bWFyZ2luLWJvdHRvbTogNXB4O1xuXG5cdFx0JiAudG9kby1saXN0IHtcblx0XHRcdG1hcmdpbi10b3A6IDVweDtcblx0XHR9XG5cdH1cblxuXHQmIC50b2RvLWxpc3RfX2xhYmVsIHtcblx0XHQmID4gaW5wdXQge1xuXHRcdFx0QG1peGluIHRvZG8tbGlzdC1jaGVja2JveDtcblx0XHR9XG5cblx0XHQmIC50b2RvLWxpc3RfX2xhYmVsX19kZXNjcmlwdGlvbiB7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdH1cblxuXHRcdCYudG9kby1saXN0X19sYWJlbF93aXRob3V0LWRlc2NyaXB0aW9uIGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR9XG5cdH1cbn1cblxuLypcbiAqIFRvLWRvIGxpc3QgZWRpdGluZyB2aWV3IHN0eWxlcy5cbiAqL1xuLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsIHtcblx0Lypcblx0ICogVG8tZG8gbGlzdCBzaG91bGQgYmUgaW50ZXJhY3RpdmUgb25seSBkdXJpbmcgdGhlIGVkaXRpbmdcblx0ICogKGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzIwOTApLlxuXHQgKi9cblx0JiA+IGlucHV0LFxuXHQmID4gc3Bhbltjb250ZW50ZWRpdGFibGU9ZmFsc2VdID4gaW5wdXQge1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdCY6aG92ZXI6OmJlZm9yZSB7XG5cdFx0XHRib3gtc2hhZG93OiAwIDAgMCA1cHggaHNsYSgwLCAwJSwgMCUsIDAuMSk7XG5cdFx0fVxuXHR9XG5cblx0Lypcblx0ICogRG9jdW1lbnQgTGlzdHMgLSBlZGl0aW5nIHZpZXcgaGFzIGFuIGFkZGl0aW9uYWwgc3BhbiBhcm91bmQgY2hlY2tib3guXG5cdCAqL1xuXHQmID4gc3Bhbltjb250ZW50ZWRpdGFibGU9ZmFsc2VdID4gaW5wdXQge1xuXHRcdEBtaXhpbiB0b2RvLWxpc3QtY2hlY2tib3g7XG5cdH1cblxuXHQmLnRvZG8tbGlzdF9fbGFiZWxfd2l0aG91dC1kZXNjcmlwdGlvbiB7XG5cdFx0JiBpbnB1dFt0eXBlPWNoZWNrYm94XSB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2stY29udGVudCAubWVkaWEge1xuXHQvKiBEb24ndCBhbGxvdyBmbG9hdGVkIGNvbnRlbnQgb3ZlcmxhcCB0aGUgbWVkaWEuXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtbWVkaWEtZW1iZWQvaXNzdWVzLzUzICovXG5cdGNsZWFyOiBib3RoO1xuXG5cdC8qIE1ha2Ugc3VyZSB0aGVyZSBpcyBzb21lIHNwYWNlIGJldHdlZW4gdGhlIGNvbnRlbnQgYW5kIHRoZSBtZWRpYS4gKi9cblx0LyogVGhlIGZpcnN0IHZhbHVlIHNob3VsZCBiZSBlcXVhbCB0byAtLWNrLXNwYWNpbmctbGFyZ2UgdmFyaWFibGUgaWYgdXNlZCBpbiB0aGUgZWRpdG9yIGNvbnRleHRcblx0dG8gYXZvaWQgdGhlIGNvbnRlbnQganVtcGluZyAoU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzk4MjUpLiAqL1xuXHRtYXJnaW46IDAuOWVtIDA7XG5cblx0LyogTWFrZSBzdXJlIG1lZGlhIGlzIG5vdCBvdmVycmlkZW4gd2l0aCBCb290c3RyYXAgZGVmYXVsdCBgZmxleGAgdmFsdWUuXG5cdFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTM3My4gKi9cblx0ZGlzcGxheTogYmxvY2s7XG5cblx0LyogR2l2ZSB0aGUgbWVkaWEgc29tZSBtaW5pbWFsIHdpZHRoIGluIHRoZSBjb250ZW50IHRvIHByZXZlbnQgdGhlbVxuXHRmcm9tIGJlaW5nIFwic3F1YXNoZWRcIiBpbiB0aWdodCBzcGFjZXMsIGUuZy4gaW4gdGFibGUgY2VsbHMgKCM0NCkgKi9cblx0bWluLXdpZHRoOiAxNWVtO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLW1lZGlhX193cmFwcGVyIHtcblx0JiAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXHRcdCYgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9fdXJsIHtcblx0XHRcdC8qIE90aGVyd2lzZSB0aGUgVVJMIHdpbGwgb3ZlcmZsb3cgd2hlbiB0aGUgY29udGVudCBpcyB2ZXJ5IG5hcnJvdy4gKi9cblx0XHRcdG1heC13aWR0aDogMTAwJTtcblxuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0XHQmIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybF9fdGV4dCB7XG5cdFx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCZbZGF0YS1vZW1iZWQtdXJsKj1cInR3aXR0ZXIuY29tXCJdLFxuXHQmW2RhdGEtb2VtYmVkLXVybCo9XCJnb29nbGUuY29tL21hcHNcIl0sXG5cdCZbZGF0YS1vZW1iZWQtdXJsKj1cImdvby5nbC9tYXBzXCJdLFxuXHQmW2RhdGEtb2VtYmVkLXVybCo9XCJtYXBzLmdvb2dsZS5jb21cIl0sXG5cdCZbZGF0YS1vZW1iZWQtdXJsKj1cIm1hcHMuYXBwLmdvby5nbFwiXSxcblx0JltkYXRhLW9lbWJlZC11cmwqPVwiZmFjZWJvb2suY29tXCJdLFxuXHQmW2RhdGEtb2VtYmVkLXVybCo9XCJpbnN0YWdyYW0uY29tXCJdIHtcblx0XHQmIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24gKiB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxufVxuXG4vKiBEaXNhYmxlIGFsbCBtb3VzZSBpbnRlcmFjdGlvbiBhcyBsb25nIGFzIHRoZSBlZGl0b3IgaXMgbm90IHJlYWTigJNvbmx5LlxuICAgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1tZWRpYS1lbWJlZC9pc3N1ZXMvNTggKi9cbi5jay1lZGl0b3JfX2VkaXRhYmxlOm5vdCguY2stcmVhZC1vbmx5KSAuY2stbWVkaWFfX3dyYXBwZXIgPiAqOm5vdCguY2stbWVkaWFfX3BsYWNlaG9sZGVyKSB7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vKiBEaXNhYmxlIGFsbCBtb3VzZSBpbnRlcmFjdGlvbiB3aGVuIHRoZSB3aWRnZXQgaXMgbm90IHNlbGVjdGVkIChlLmcuIHRvIGF2b2lkIG9wZW5pbmcgbGlua3MgYnkgYWNjaWRlbnQpLlxuICAgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1tZWRpYS1lbWJlZC9pc3N1ZXMvMTggKi9cbi5jay1lZGl0b3JfX2VkaXRhYmxlOm5vdCguY2stcmVhZC1vbmx5KSAuY2std2lkZ2V0Om5vdCguY2std2lkZ2V0X3NlbGVjdGVkKSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIHtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX3J3ZC5jc3NcIjtcblxuLmNrLXZlcnRpY2FsLWZvcm0gLmNrLWJ1dHRvbiB7XG5cdCY6OmFmdGVyIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdHdpZHRoOiAwO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRyaWdodDogLTFweDtcblx0XHR0b3A6IC0xcHg7XG5cdFx0Ym90dG9tOiAtMXB4O1xuXHRcdHotaW5kZXg6IDE7XG5cdH1cblxuXHQmOmZvY3VzOjphZnRlciB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuXG4uY2suY2stcmVzcG9uc2l2ZS1mb3JtIHtcblx0QG1peGluIGNrLW1lZGlhLXBob25lIHtcblx0XHQmIC5jay1idXR0b24ge1xuXHRcdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0XHR3aWR0aDogMDtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRyaWdodDogLTFweDtcblx0XHRcdFx0dG9wOiAtMXB4O1xuXHRcdFx0XHRib3R0b206IC0xcHg7XG5cdFx0XHRcdHotaW5kZXg6IDE7XG5cdFx0XHR9XG5cblx0XHRcdCY6Zm9jdXM6OmFmdGVyIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fcndkLmNzc1wiO1xuXG4uY2suY2stbWVkaWEtZm9ybSB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0d2lkdGg6IDQwMHB4O1xuXG5cdCYgLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cblx0JiAuY2stbGFiZWwge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHQmIC5jay1pbnB1dCB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblxuXHRAbWl4aW4gY2stbWVkaWEtcGhvbmUge1xuXHRcdGZsZXgtd3JhcDogd3JhcDtcblxuXHRcdCYgLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0XHRmbGV4LWJhc2lzOiAxMDAlO1xuXHRcdH1cblxuXHRcdCYgLmNrLWJ1dHRvbiB7XG5cdFx0XHRmbGV4LWJhc2lzOiA1MCU7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stbWVudGlvbi1saXN0LW1heC1oZWlnaHQ6IDMwMHB4O1xufVxuXG4uY2suY2stbWVudGlvbnMge1xuXHRtYXgtaGVpZ2h0OiB2YXIoLS1jay1tZW50aW9uLWxpc3QtbWF4LWhlaWdodCk7XG5cblx0b3ZlcmZsb3cteTogYXV0bztcblxuXHQvKiBQcmV2ZW50IHVubmVjZXNzYXJ5IGhvcml6b250YWwgc2Nyb2xsYmFyIGluIFNhZmFyaVxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LW1lbnRpb24vaXNzdWVzLzQxICovXG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcblxuXHRvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuXG5cdC8qIFByZXZlbnQgdW5uZWNlc3NhcnkgdmVydGljYWwgc2Nyb2xsYmFyIGluIFNhZmFyaVxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LW1lbnRpb24vaXNzdWVzLzQxICovXG5cdCYgPiAuY2stbGlzdF9faXRlbSB7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRmbGV4LXNocmluazogMDtcblx0fVxufVxuXG5kaXYuY2suY2stYmFsbG9vbi1wYW5lbC5jay1tZW50aW9uLWJhbGxvb24ge1xuXHR6LWluZGV4OiBjYWxjKCB2YXIoIC0tY2stei1kaWFsb2cgKSArIDEgKTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1jb2xvci1taW5pbWFwLXRyYWNrZXItYmFja2dyb3VuZDogMjA4LCAwJSwgNTElO1xuXHQtLWNrLWNvbG9yLW1pbmltYXAtaWZyYW1lLW91dGxpbmU6IGhzbCgwZGVnIDAlIDc1JSk7XG5cdC0tY2stY29sb3ItbWluaW1hcC1pZnJhbWUtc2hhZG93OiBoc2woMGRlZyAwJSAwJSAvIDExJSk7XG5cdC0tY2stY29sb3ItbWluaW1hcC1wcm9ncmVzcy1iYWNrZ3JvdW5kOiBoc2woMCwwJSw0MCUpO1xufVxuXG4uY2suY2stbWluaW1hcCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cblx0Jixcblx0JiBpZnJhbWUge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblx0fVxuXG5cdCYgaWZyYW1lIHtcblx0XHRib3JkZXI6IDA7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdG91dGxpbmU6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1taW5pbWFwLWlmcmFtZS1vdXRsaW5lKTtcblx0XHRib3gtc2hhZG93OiAwIDJweCA1cHggdmFyKC0tY2stY29sb3ItbWluaW1hcC1pZnJhbWUtc2hhZG93KTtcblx0XHRtYXJnaW46IDA7XG5cdH1cblxuXHQmIC5jay5jay1taW5pbWFwX19wb3NpdGlvbi10cmFja2VyIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0dG9wOiAwO1xuXHRcdGJhY2tncm91bmQ6IGhzbGEoIHZhcigtLWNrLWNvbG9yLW1pbmltYXAtdHJhY2tlci1iYWNrZ3JvdW5kKSwgLjIgKTtcblx0XHR6LWluZGV4OiAxO1xuXHRcdHRyYW5zaXRpb246IGJhY2tncm91bmQgMTAwbXMgZWFzZS1pbi1vdXQ7XG5cblxuXHRcdEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cdFx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHRcdH1cblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZDpoc2xhKCB2YXIoLS1jay1jb2xvci1taW5pbWFwLXRyYWNrZXItYmFja2dyb3VuZCksIC4zICk7XG5cdFx0fVxuXG5cdFx0Ji5jay1taW5pbWFwX19wb3NpdGlvbi10cmFja2VyX2RyYWdnaW5nLFxuXHRcdCYuY2stbWluaW1hcF9fcG9zaXRpb24tdHJhY2tlcl9kcmFnZ2luZzpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOmhzbGEoIHZhcigtLWNrLWNvbG9yLW1pbmltYXAtdHJhY2tlci1iYWNrZ3JvdW5kKSwgLjQgKTtcblxuXHRcdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6IGF0dHIoZGF0YS1wcm9ncmVzcykgXCIlXCI7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDVweDtcblx0XHRcdHJpZ2h0OiA1cHg7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1taW5pbWFwLXByb2dyZXNzLWJhY2tncm91bmQpO1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRcdFx0cGFkZGluZzogMnB4IDRweDtcblx0XHRcdGZvbnQtc2l6ZTogMTBweDtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDEwMG1zIGVhc2UtaW4tb3V0O1xuXG5cblx0XHRcdEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cdFx0XHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay1jb250ZW50IC5wYWdlLWJyZWFrIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRjbGVhcjogYm90aDtcblx0cGFkZGluZzogNXB4IDA7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG5cdCY6OmFmdGVyIHtcblx0XHRjb250ZW50OiAnJztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Ym9yZGVyLWJvdHRvbTogMnB4IGRhc2hlZCBoc2woMCwgMCUsIDc3JSk7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cbn1cblxuLmNrLWNvbnRlbnQgLnBhZ2UtYnJlYWtfX2xhYmVsIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR6LWluZGV4OiAxO1xuXHRwYWRkaW5nOiAuM2VtIC42ZW07XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRib3JkZXI6IDFweCBzb2xpZCBoc2woMCwgMCUsIDc3JSk7XG5cdGJvcmRlci1yYWRpdXM6IDJweDtcblx0Zm9udC1mYW1pbHk6IEhlbHZldGljYSwgQXJpYWwsIFRhaG9tYSwgVmVyZGFuYSwgU2Fucy1TZXJpZjtcblx0Zm9udC1zaXplOiAwLjc1ZW07XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRjb2xvcjogaHNsKDAsIDAlLCAyMCUpO1xuXHRiYWNrZ3JvdW5kOiBoc2woMCwgMCUsIDEwMCUpO1xuXHRib3gtc2hhZG93OiAycHggMnB4IDFweCBoc2xhKDAsIDAlLCAwJSwgMC4xNSk7XG5cblx0LyogRGlzYWJsZSB0aGUgcG9zc2liaWxpdHkgdG8gc2VsZWN0IHRoZSBsYWJlbCB0ZXh0IGJ5IHRoZSB1c2VyLiAqL1xuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuXHQtbW96LXVzZXItc2VsZWN0OiBub25lO1xuXHQtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4vKiBEbyBub3Qgc2hvdyB0aGUgcGFnZSBicmVhayBlbGVtZW50IGluc2lkZSB0aGUgcHJpbnQgcHJldmlldyB3aW5kb3cuICovXG5AbWVkaWEgcHJpbnQge1xuXHQuY2stY29udGVudCAucGFnZS1icmVhayB7XG5cdFx0cGFkZGluZzogMDtcblxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG5cblx0Lypcblx0ICogRnJvbSB0aW1lIHRvIHRpbWUgcGxhY2luZyBwYWdlLWJyZWFrIGRpcmVjdGx5IGFmdGVyIGEgYmxvY2sgZWxlbWVudCB3aXRoIG1hcmdpbiBjYXVzZXMgYXBwZW5kaW5nIGEgbmV3IGJsYW5rIHBhZ2UgaW4gcGFnaW5hdGlvbiBtb2RlLlxuXHQgKiBSZW1vdmluZyBtYXJnaW4tYm90dG9tIGZyb20gdGhlIGJsb2NrIGVsZW1lbnQgZml4ZXMgdGhhdCBpc3N1ZSBhbmQgdGhlIG1hcmdpbiBpcyBub3QgYmVpbmcgbW92ZWQgdG8gdGhlIG5leHQgYmxhbmsgcGFnZS5cblx0ICpcblx0ICogS2VlcCB0aGlzIGluIHN5bmMgd2l0aCB0aGUgcGFnaW5hdGlvbiBwbHVnaW5zLlxuXHQgKi9cblx0LmNrLWNvbnRlbnQgKjpoYXMoKyAucGFnZS1icmVhaykge1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stc2hvdy1ibG9ja3MtYm9yZGVyLWNvbG9yOiBoc2woMCwgMCUsIDQ2JSk7XG59XG5cbkBkZWZpbmUtbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kLWx0ciAkdGV4dCB7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz4kKHRleHQpPC90ZXh0Pjwvc3ZnPlwiKTtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcbn1cblxuQGRlZmluZS1taXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQtcnRsICR0ZXh0IHtcblx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPiQodGV4dCk8L3RleHQ+PC9zdmc+XCIpO1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcbn1cblxuQGRlZmluZS1taXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQgJHRleHQge1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRwYWRkaW5nLXRvcDogMTVweDtcblxuXHQvKiBGaXggZm9yIE11bHRpLXJvb3QgZWRpdG9yXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE1OTY5ICovXG5cdFtkaXI9bHRyXSAmIHtcblx0XHRAbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kLWx0ciAkdGV4dDtcblx0fVxuXHRbZGlyPXJ0bF0gJiB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZC1ydGwgJHRleHQ7XG5cdH1cblxuXHQmOm5vdCguY2std2lkZ2V0X3NlbGVjdGVkKTpub3QoLmNrLXdpZGdldDpob3Zlcikge1xuXHRcdG91dGxpbmU6IDFweCBkYXNoZWQgdmFyKC0tY2stc2hvdy1ibG9ja3MtYm9yZGVyLWNvbG9yKTtcblx0fVxuXG5cdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRAbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kLWx0ciAkdGV4dDtcblx0fVxuXHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZC1ydGwgJHRleHQ7XG5cdH1cbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIHtcblx0JiBhZGRyZXNzIHtcblx0XHRAbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kIEFERFJFU1M7XG5cdH1cblxuXHQmIGFzaWRlIHtcblx0XHRAbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kIEFTSURFO1xuXHR9XG5cblx0JiBibG9ja3F1b3RlIHtcblx0XHRAbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kIEJMT0NLUVVPVEU7XG5cdH1cblxuXHQmIGRldGFpbHMge1xuXHRcdEBtaXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQgREVUQUlMUztcblx0fVxuXG5cdCYgZGl2Om5vdCguY2std2lkZ2V0LCAuY2std2lkZ2V0ICopIHtcblx0XHRAbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kIERJVjtcblx0fVxuXG5cdCYgZm9vdGVyIHtcblx0XHRAbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kIEZPT1RFUjtcblx0fVxuXG5cdCYgaDEge1xuXHRcdEBtaXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQgSDE7XG5cdH1cblxuXHQmIGgyIHtcblx0XHRAbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kIEgyO1xuXHR9XG5cblx0JiBoMyB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZCBIMztcblx0fVxuXG5cdCYgaDQge1xuXHRcdEBtaXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQgSDQ7XG5cdH1cblxuXHQmIGg1IHtcblx0XHRAbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kIEg1O1xuXHR9XG5cblx0JiBoNiB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZCBINjtcblx0fVxuXG5cdCYgaGVhZGVyIHtcblx0XHRAbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kIEhFQURFUjtcblx0fVxuXG5cdCYgbWFpbiB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZCBNQUlOO1xuXHR9XG5cblx0JiBuYXYge1xuXHRcdEBtaXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQgTkFWO1xuXHR9XG5cblx0JiBwcmUge1xuXHRcdEBtaXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQgUFJFO1xuXHR9XG5cblx0JiBvbCB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZCBPTDtcblx0fVxuXG5cdCYgdWwge1xuXHRcdEBtaXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQgVUw7XG5cdH1cblxuXHQmIHAge1xuXHRcdEBtaXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQgUDtcblx0fVxuXG5cdCYgc2VjdGlvbiB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZCBTRUNUSU9OO1xuXHR9XG5cblx0JiA6d2hlcmUoZmlndXJlLmltYWdlLCBmaWd1cmUudGFibGUpIGZpZ2NhcHRpb24ge1xuXHRcdEBtaXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQgRklHQ0FQVElPTjtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9taXhpbnMvX3JvdW5kZWQuY3NzXCI7XG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL21peGlucy9fZm9jdXMuY3NzXCI7XG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL21peGlucy9fc2hhZG93LmNzc1wiO1xuXG4uY2stc291cmNlLWVkaXRpbmctYXJlYSB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmNrLXNvdXJjZS1lZGl0aW5nLWFyZWE6OmFmdGVyLFxuLmNrLXNvdXJjZS1lZGl0aW5nLWFyZWEgdGV4dGFyZWEge1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0bWFyZ2luOiAwO1xuXHRib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0bGluZS1oZWlnaHQ6IHZhcigtLWNrLWxpbmUtaGVpZ2h0LWJhc2UpO1xuXHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS1ub3JtYWwpO1xuXHRmb250LWZhbWlseTogbW9ub3NwYWNlO1xuXHR3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG59XG5cbi5jay1zb3VyY2UtZWRpdGluZy1hcmVhOjphZnRlciB7XG5cdGNvbnRlbnQ6IGF0dHIoZGF0YS12YWx1ZSkgXCIgXCI7XG5cdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi5jay1zb3VyY2UtZWRpdGluZy1hcmVhIHRleHRhcmVhIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRyZXNpemU6IG5vbmU7XG5cdG91dGxpbmU6IG5vbmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cblx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cblx0QG1peGluIGNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0fVxuXG5cdCY6bm90KFtyZWFkb25seV0pOmZvY3VzIHtcblx0XHRAbWl4aW4gY2stZm9jdXMtcmluZztcblx0XHRAbWl4aW4gY2stYm94LXNoYWRvdyB2YXIoLS1jay1pbm5lci1zaGFkb3cpO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKipcbiAqIEEgdmlzdWFsIHN0eWxlIG9mIGZvY3VzZWQgZWxlbWVudCdzIGJvcmRlci5cbiAqL1xuQGRlZmluZS1taXhpbiBjay1mb2N1cy1yaW5nIHtcblx0LyogRGlzYWJsZSBuYXRpdmUgb3V0bGluZS4gKi9cblx0b3V0bGluZTogbm9uZTtcblx0Ym9yZGVyOiB2YXIoLS1jay1mb2N1cy1yaW5nKVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWNoYXJhY3Rlci1ncmlkIHtcblx0bWF4LXdpZHRoOiAxMDAlO1xuXG5cdCYgLmNrLWNoYXJhY3Rlci1ncmlkX190aWxlcyB7XG5cdFx0ZGlzcGxheTogZ3JpZDtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWNoYXJhY3Rlci1pbmZvIHtcblx0ZGlzcGxheTogZmxleDtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcbiAqIE5vdGU6IFRoaXMgZmlsZSBzaG91bGQgY29udGFpbiB0aGUgd2lyZWZyYW1lIHN0eWxlcyBvbmx5LiBCdXQgc2luY2UgdGhlcmUgYXJlIG5vIHN1Y2ggc3R5bGVzLFxuICogaXQgYWN0cyBhcyBhIG1lc3NhZ2UgdG8gdGhlIGJ1aWxkZXIgdGVsbGluZyB0aGF0IGl0IHNob3VsZCBsb29rIGZvciB0aGUgY29ycmVzcG9uZGluZyBzdHlsZXNcbiAqICoqaW4gdGhlIHRoZW1lKiogd2hlbiBjb21waWxpbmcgdGhlIGVkaXRvci5cbiAqL1xuXG4uY2suY2stc3BlY2lhbC1jaGFyYWN0ZXJzIHtcblx0JiA+IC5jay1kaWFsb2dfX2NvbnRlbnQgPiBkaXYge1xuXHRcdHdpZHRoOiAzNTBweDtcblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXG5cdFx0ZGlzcGxheTogZ3JpZDtcblx0XHRncmlkLWNvbHVtbi1nYXA6IDBweDtcblx0XHRncmlkLXJvdy1nYXA6IDBweDtcblx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcblx0XHRncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gMWZyIGF1dG87XG5cblx0XHQmID4gLmNrLWNoYXJhY3Rlci1jYXRlZ29yaWVzIHtcblx0XHRcdGdyaWQtYXJlYTogMSAvIDEgLyAyIC8gMjtcblx0XHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblxuXHRcdFx0JiA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdFx0XHRwYWRkaW5nLXRvcDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0XHRcdCYgLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19fc3RhdHVzIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWVycm9yKTtcblx0XHRcdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHRcdFx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0XHRcdFx0bWluLXdpZHRoOiB2YXIoLS1jay10YWJsZS1wcm9wZXJ0aWVzLW1pbi1lcnJvci13aWR0aCk7XG5cdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0XHRcdFx0LyogVGhlIGFycm93IHBvaW50aW5nIHRvd2FyZHMgdGhlIGZpZWxkLiAqL1xuXHRcdFx0XHRcdCY6OmFmdGVyIHtcblx0XHRcdFx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdmFyKC0tY2stY29sb3ItYmFzZS1lcnJvcikgdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdFx0XHRib3JkZXItd2lkdGg6IDAgdmFyKC0tY2stdGFibGUtcHJvcGVydGllcy1lcnJvci1hcnJvdy1zaXplKSB2YXIoLS1jay10YWJsZS1wcm9wZXJ0aWVzLWVycm9yLWFycm93LXNpemUpIHZhcigtLWNrLXRhYmxlLXByb3BlcnRpZXMtZXJyb3ItYXJyb3ctc2l6ZSk7XG5cdFx0XHRcdFx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGFuaW1hdGlvbjogY2stdGFibGUtZm9ybS1sYWJlbGVkLXZpZXctc3RhdHVzLWFwcGVhciAuMTVzIGVhc2UgYm90aDtcblxuXHRcdFx0XHRcdEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cdFx0XHRcdFx0XHRhbmltYXRpb246IG5vbmU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0LyogSGlkZSB0aGUgZXJyb3IgYmFsbG9vbiB3aGVuIHRoZSBmaWVsZCBpcyBibHVycmVkLiBNYWtlcyB0aGUgZXhwZXJpZW5jZSBtdWNoIG1vcmUgY2xlYXIuICovXG5cdFx0XHRcdCYgLmNrLWlucHV0LmNrLWVycm9yOm5vdCg6Zm9jdXMpICsgLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19fc3RhdHVzIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0JiA+IC5jay1sYWJlbCB7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiB2YXIoLS1jay1mb250LXNpemUtdGlueSk7XG5cdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC5jay1kcm9wZG93biB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblxuXHRcdFx0XHQmID4gYnV0dG9uIHtcblx0XHRcdFx0XHQmOm5vdCg6Zm9jdXMpIHtcblx0XHRcdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQmID4gc3BhbiB7XG5cdFx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQmID4gLmNrLWNoYXJhY3Rlci1ncmlkIHtcblx0XHRcdGdyaWQtYXJlYTogMiAvIDEgLyAzIC8gMjtcblx0XHRcdG1heC1oZWlnaHQ6IDIwMHB4O1xuXHRcdH1cblxuXHRcdCYgPiAuY2stY2hhcmFjdGVyLWluZm8ge1xuXHRcdFx0Z3JpZC1hcmVhOiAzIC8gMSAvIDQgLyAyO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLXN0eWxlLXBhbmVsLWNvbHVtbnM6IDM7XG59XG5cbi5jay5jay1zdHlsZS1wYW5lbCAuY2stc3R5bGUtZ3JpZCB7XG5cdGRpc3BsYXk6IGdyaWQ7XG5cdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNrLXN0eWxlLXBhbmVsLWNvbHVtbnMpLGF1dG8pO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0O1xuXG5cdCYgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbiB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuXHRcdCYgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbl9fcHJldmlldyB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24tY29udGVudDogY2VudGVyO1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdGZsZXgtZ3JvdzogMTtcblx0XHRcdGZsZXgtYmFzaXM6IDEwMCU7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2stY29udGVudCB7XG5cdC8qIFRleHQgYWxpZ25tZW50IG9mIHRoZSB0YWJsZSBoZWFkZXIgc2hvdWxkIG1hdGNoIHRoZSBlZGl0b3Igc2V0dGluZ3MgYW5kIG92ZXJyaWRlIHRoZSBuYXRpdmUgYnJvd3NlciBzdHlsaW5nLFxuXHR3aGVuIGNvbnRlbnQgaXMgYXZhaWxhYmxlIG91dHNpZGUgdGhlIGVkaXRvci4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzY2MzggKi9cblx0JltkaXI9XCJydGxcIl0gLnRhYmxlIHRoIHtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0fVxuXG5cdCZbZGlyPVwibHRyXCJdIC50YWJsZSB0aCB7XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0fVxuXG5cdCYgZmlndXJlLnRhYmxlOm5vdCgubGF5b3V0LXRhYmxlKSB7XG5cdFx0ZGlzcGxheTogdGFibGU7XG5cblx0XHQmID4gdGFibGUge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0fVxuXHR9XG5cblx0JiAudGFibGU6bm90KC5sYXlvdXQtdGFibGUpIHtcblx0XHQvKiBHaXZlIHRoZSB0YWJsZSB3aWRnZXQgc29tZSBhaXIgYW5kIGNlbnRlciBpdCBob3Jpem9udGFsbHkgKi9cblx0XHQvKiBUaGUgZmlyc3QgdmFsdWUgc2hvdWxkIGJlIGVxdWFsIHRvIC0tY2stc3BhY2luZy1sYXJnZSB2YXJpYWJsZSBpZiB1c2VkIGluIHRoZSBlZGl0b3IgY29udGV4dFxuXHRcdHRvIGF2b2lkIHRoZSBjb250ZW50IGp1bXBpbmcgKFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85ODI1KS4gKi9cblx0XHRtYXJnaW46IDAuOWVtIGF1dG87XG5cdH1cblxuXHQmIHRhYmxlLnRhYmxlOm5vdCgubGF5b3V0LXRhYmxlKSxcblx0JiBmaWd1cmUudGFibGU6bm90KC5sYXlvdXQtdGFibGUpID4gdGFibGUge1xuXHRcdC8qIFRoZSB0YWJsZSBjZWxscyBzaG91bGQgaGF2ZSBzbGlnaHQgYm9yZGVycyAqL1xuXHRcdGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG5cdFx0Ym9yZGVyLXNwYWNpbmc6IDA7XG5cblx0XHQvKiBUaGUgb3V0ZXIgYm9yZGVyIG9mIHRoZSB0YWJsZSBzaG91bGQgYmUgc2xpZ2h0bHkgZGFya2VyIHRoYW4gdGhlIGlubmVyIGxpbmVzLlxuXHRcdEFsc28gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGFibGUvaXNzdWVzLzUwLiAqL1xuXHRcdGJvcmRlcjogMXB4IGRvdWJsZSBoc2woMCwgMCUsIDcwJSk7XG5cblx0XHQmID4gdGhlYWQsXG5cdFx0JiA+IHRib2R5IHtcblx0XHRcdC8qIFRoZSBsaW50ZXIgaXMgZGlzYWJsZWQgaGVyZSBiZWNhdXNlIGxpbnRlciBpcyBjb25mdXNlZCB3aGVuIHJlc29sdmluZyB0aGUgYHRhYmxlLnRhYmxlOm5vdCgubGF5b3V0LXRhYmxlKWBcblx0XHRcdGFuZCBgZmlndXJlLnRhYmxlOm5vdCgubGF5b3V0LXRhYmxlKSA+IHRhYmxlYCBzZWxlY3RvcnMgY29tYmluZWQgd2l0aCBiZWxvdyBzZWxlY3RvcnMuXG5cdFx0XHRUaGVyZSBpcyBubyBuZWVkIHRvIHNwbGl0IGl0IGludG8gdHdvIGxhcmdlIHN0cnVjdHVyZXMgd2l0aCBzYW1lIGNvZGUganVzdCB0byBtYWtlIGxpbnRlciBoYXBweS4gKi9cblx0XHRcdC8qIHN0eWxlbGludC1kaXNhYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cblx0XHRcdCYgPiB0ciB7XG5cdFx0XHRcdCYgPiB0aCB7XG5cdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogaHNsYSgwLCAwJSwgMCUsIDUlKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdCYgPiB0ZCxcblx0XHRcdFx0JiA+IHRoIHtcblx0XHRcdFx0XHQvKiBzdHlsZWxpbnQtZW5hYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cblx0XHRcdFx0XHRtaW4td2lkdGg6IDJlbTtcblx0XHRcdFx0XHRwYWRkaW5nOiAuNGVtO1xuXG5cdFx0XHRcdFx0LyogVGhlIGJvcmRlciBpcyBpbmhlcml0ZWQgZnJvbSAuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUgc3R5bGVzLCBzbyB0aGVvcmV0aWNhbGx5IGl0J3Mgbm90IG5lY2Vzc2FyeSBoZXJlLlxuXHRcdFx0XHRcdEhvd2V2ZXIsIHRoZSBib3JkZXIgaXMgYSBjb250ZW50IHN0eWxlLCBzbyBpdCBzaG91bGQgdXNlIC5jay1jb250ZW50IChzbyBpdCB3b3JrcyBvdXRzaWRlIHRoZSBlZGl0b3IpLlxuXHRcdFx0XHRcdEhlbmNlLCB0aGUgZHVwbGljYXRpb24uIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy82MzE0ICovXG5cdFx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgaHNsKDAsIDAlLCA3NSUpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbkBtZWRpYSBwcmludCB7XG5cdC5jay1jb250ZW50IGZpZ3VyZS50YWJsZSB7XG5cdFx0LyoqXG5cdFx0ICogU29tZXRpbWVzIENocm9tZSBpbmNvcnJlY3RseSBjYWxjdWxhdGVzIHRoZSBoZWlnaHQgb2YgdGhlIGxhc3QgdGFibGUgcm93IGFuZCBzb21lXG5cdFx0ICogb2YgdGhlIGNvbnRlbnQgb3ZlcmxhcHMgdGhlIHBhcmFncmFwaCB0aGF0IGlzIHBsYWNlZCBkaXJlY3RseSBhZnRlciB0aGUgdGFibGUuIEl0IGFmZmVjdHNcblx0XHQgKiB0aGUgY29sdW1uIHNwbGl0IG1vZGUgcGFnaW5hdGlvbiBjYWxjdWxhdGlvbiB3aGljaCBjYXVzZXMgbWlzbWF0Y2ggYmV0d2VlbiB0aGUgcHJpbnQgbW9kZSBhbmRcblx0XHQgKiB0aGUgcHJldmlldyBtb2RlLlxuXHRcdCAqXG5cdFx0ICogVGhpcyBpc3N1ZSBoYXBwZW5zIG9ubHkgaWY6XG5cdFx0ICpcblx0XHQgKiBcdCogVGhlIHRhYmxlIGlzIGluc2lkZSBhIGZpZ3VyZSBlbGVtZW50LlxuXHRcdCAqIFx0KiBUaGUgdGFibGUgaGFzIGBkaXNwbGF5OiB0YWJsZWAgc3R5bGUgc2V0LlxuXHRcdCAqIFx0KiBUaGUgYmxvY2sgZWxlbWVudCBpcyBwbGFjZWQgZGlyZWN0bHkgYWZ0ZXIgdGhlIHRhYmxlLlxuXHRcdCAqL1xuXHRcdCY6bm90KC5sYXlvdXQtdGFibGUpOmhhcyg+IHRhYmxlKSB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cblx0XHQvKipcblx0XHQgKiBFeHBhbmRpbmcgdGhlIHRhYmxlIHRvIHRoZSBmdWxsIGhlaWdodCBvZiB0aGUgcGFyZW50IGNvbnRhaW5lciBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0YWJsZXNcblx0XHQgKiBhcmUgcmVuZGVyZWQgaW5zaWRlIDxmaWd1cmU+IGVsZW1lbnRzLCB3aGljaCBpcyBraW5kYSBidWdneSBpbiB0YWJsZSBoZWlnaHQgY2FsY3VsYXRpb24uXG5cdFx0ICogV2hpbGUgc2V0dGluZyBgaGVpZ2h0OiAxMDAlYCBmaXhlcyB0aGUgaXNzdWUgaW4gdGhlIGVkaXRpbmcgbW9kZSBkZXNjcmliZWQgaGVyZTpcblx0XHQgKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy82MTg2XG5cdFx0ICpcblx0XHQgKiBpdCdzIGNhdXNpbmcgYW5vdGhlciBpc3N1ZSB3aXRoIHRoZSB0YWJsZSBoZWlnaHQgaW4gdGhlIHByaW50IHByZXZpZXcgbW9kZSBoZXJlOlxuXHRcdCAqIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE2ODU2XG5cdFx0ICpcblx0XHQgKiBGb3Igbm93LCByZXNldHRpbmcgdGhlIGhlaWdodCB0byBgaW5pdGlhbGAgaW4gdGhlIHByaW50IG1vZGUgd29ya3MgYXMgYSB3b3JrYXJvdW5kLlxuXHRcdCAqL1xuXHRcdCY6bm90KC5sYXlvdXQtdGFibGUpID4gdGFibGUge1xuXHRcdFx0aGVpZ2h0OiBpbml0aWFsO1xuXHRcdH1cblx0fVxufVxuXG4uY2stZWRpdG9yX19lZGl0YWJsZSAuY2stdGFibGUtYm9ndXMtcGFyYWdyYXBoIHtcblx0Lypcblx0ICogVXNlIGRpc3BsYXk6aW5saW5lLWJsb2NrIHRvIGZvcmNlIENocm9tZS9TYWZhcmkgdG8gbGltaXQgdGV4dCBtdXRhdGlvbnMgdG8gdGhpcyBlbGVtZW50LlxuXHQgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNjA2Mi5cblx0ICovXG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuXHQvKlxuXHQgKiBJbmxpbmUgSFRNTCBlbGVtZW50cyBuZXN0ZWQgaW4gdGhlIHNwYW4gc2hvdWxkIGFsd2F5cyBiZSBkaW1lbnNpb25lZCBpbiByZWxhdGlvbiB0byB0aGUgd2hvbGUgY2VsbCB3aWR0aC5cblx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzkxMTcuXG5cdCAqL1xuXHR3aWR0aDogMTAwJTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jayAuY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duX19ncmlkIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiB3cmFwO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtIHtcblx0JiAuY2stZm9ybV9fcm93IHtcblx0XHQmLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtX19hbGlnbm1lbnQtcm93IHtcblx0XHRcdGZsZXgtd3JhcDogd3JhcDtcblxuXHRcdFx0JiAuY2suY2stdG9vbGJhciB7XG5cdFx0XHRcdCY6Zmlyc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0LyogNCBidXR0b25zIG91dCBvZiA3IChoLWFsaWdubWVudCArIHYtYWxpZ25tZW50KSA9IDAuNTcgKi9cblx0XHRcdFx0XHRmbGV4LWdyb3c6IDAuNTc7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmOmxhc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0LyogMyBidXR0b25zIG91dCBvZiA3IChoLWFsaWdubWVudCArIHYtYWxpZ25tZW50KSA9IDAuNDMgKi9cblx0XHRcdFx0XHRmbGV4LWdyb3c6IDAuNDM7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmIC5jay1idXR0b24ge1xuXHRcdFx0XHRcdGZsZXgtZ3JvdzogMTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWlucHV0LWNvbG9yIHtcblx0d2lkdGg6IDEwMCU7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcblxuXHQmID4gaW5wdXQuY2suY2staW5wdXQtdGV4dCB7XG5cdFx0bWluLXdpZHRoOiBhdXRvO1xuXHRcdGZsZXgtZ3JvdzogMTtcblx0fVxuXG5cdCYgPiBkaXYuY2suY2stZHJvcGRvd24ge1xuXHRcdG1pbi13aWR0aDogYXV0bztcblxuXHRcdC8qIFRoaXMgZHJvcGRvd24gaGFzIG5vIGFycm93IGJ1dCBhIGNvbG9yIHByZXZpZXcgaW5zdGVhZC4gKi9cblx0XHQmID4gLmNrLWlucHV0LWNvbG9yX19idXR0b24gLmNrLWRyb3Bkb3duX19hcnJvdyB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxuXG5cdCYgLmNrLmNrLWlucHV0LWNvbG9yX19idXR0b24ge1xuXHRcdC8qIFJlc29sdmluZyBpc3N1ZSB3aXRoIG1pc2FsaWduZWQgYnV0dG9ucyBvbiBTYWZhcmkgKHNlZSAjMTA1ODkpICovXG5cdFx0ZGlzcGxheTogZmxleDtcblxuXHRcdCYgLmNrLmNrLWlucHV0LWNvbG9yX19idXR0b25fX3ByZXZpZXcge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblxuXHRcdFx0JiA+IC5jay5jay1pbnB1dC1jb2xvcl9fYnV0dG9uX19wcmV2aWV3X19uby1jb2xvci1pbmRpY2F0b3Ige1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLWVkaXRvcl9fZWRpdGFibGUge1xuXHQmLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lIHtcblx0XHQmID4gLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlLmxheW91dC10YWJsZSB7XG5cdFx0XHQmOmZpcnN0LWNoaWxkIHtcblx0XHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0XHR9XG5cdFx0XHQvKlxuXHRcdFx0KiBUaGlzIHZhbHVlIHNob3VsZCBtYXRjaCB3aXRoIHRoZSBkZWZhdWx0IG1hcmdpbnMgb2YgdGhlIGJsb2NrIGVsZW1lbnRzIChsaWtlIC5tZWRpYSwgLmltYWdlIG9yIC50YWJsZSlcblx0XHRcdCogdG8gYXZvaWQgYSBjb250ZW50IGp1bXBpbmcgd2hlbiB0aGUgZmFrZSBzZWxlY3Rpb24gY29udGFpbmVyIHNob3dzIHVwIChTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTgyNSkuXG5cdFx0XHQqL1xuXHRcdFx0JjpsYXN0LWNoaWxkLFxuXHRcdFx0LyogRmFsbGJhY2sgZm9yIGhpZGRlbiBmYWtlIHNlbGVjdGlvbiBkaXYgKi9cblx0XHRcdCY6bnRoLWxhc3QtY2hpbGQoMik6aGFzKCArIC5jay1mYWtlLXNlbGVjdGlvbi1jb250YWluZXIpIHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0JiAudGFibGUubGF5b3V0LXRhYmxlIHtcblx0XHRkaXNwbGF5OiB0YWJsZTtcblx0XHRtYXJnaW46IDA7XG5cblx0XHQvKiBXaWRnZXQgdHlwZSBhcm91bmQgb3ZlcnJpZGVzLiAqL1xuXHRcdCYuY2std2lkZ2V0IHtcblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHQvKiBUbyBwcmV2ZW50IHRoZSB3aWRnZXQgb3V0bGluZSBmcm9tIGJlaW5nIGN1dCBvZmYgYXQgdGhlIGJvdHRvbVxuXHRcdFx0XHR3aGVuIHRoZSBuZXh0IGNlbGwgb3IgdGFibGUgaGFzIGEgYmFja2dyb3VuZCBjb2xvciwgZm9yIGV4YW1wbGUuICovXG5cdFx0XHRcdHotaW5kZXg6IHZhcigtLWNrLXotZGVmYXVsdCk7XG5cdFx0XHR9XG5cblx0XHRcdCY6aG92ZXIgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0XHRcdFx0b3BhY2l0eTogMC43NTtcblx0XHRcdFx0dmlzaWJpbGl0eTogdmlzaWJsZTtcblxuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8qIEJlY2F1c2Ugb2Ygc2V0dGluZyB0aGUgb3BhY2l0eSB0byAwLjc1IHRvIHRoZSBzZWxlY3Rpb24gaGFuZGxlIGZvciB0aGUgbGF5b3V0IHRhYmxlLFxuXHRcdFx0aXQgb3ZlcnJpZGVzIHRoZSBzaW1pbGFyIHNlbGVjdG9yIGluIHdpZGdldCAoc3BlY2lmaWNpdHkgaXMgaGlnaGVyKSxcblx0XHRcdHRoYXRzIHdoeSB3ZSBtdXN0IG92ZXJyaWRlIGl0IGhlcmUgYWxzby4gKi9cblx0XHRcdCY6aGFzKCAuY2std2lkZ2V0LnRhYmxlOmhvdmVyICkgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0XHRcdFx0b3BhY2l0eTogMDtcblx0XHRcdFx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHRcdFx0fVxuXG5cdFx0XHQmLmNrLXdpZGdldF9zZWxlY3RlZCB7XG5cdFx0XHRcdC8qIFRvIHByZXZlbnQgdGhlIHdpZGdldCBvdXRsaW5lIGZyb20gYmVpbmcgY3V0IG9mZiBhdCB0aGUgYm90dG9tXG5cdFx0XHRcdHdoZW4gdGhlIG5leHQgY2VsbCBvciB0YWJsZSBoYXMgYSBiYWNrZ3JvdW5kIGNvbG9yLCBmb3IgZXhhbXBsZS4gKi9cblx0XHRcdFx0ei1pbmRleDogdmFyKC0tY2stei1kZWZhdWx0KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLmNrLWNvbnRlbnQge1xuXHQmIHRhYmxlLnRhYmxlLmxheW91dC10YWJsZSxcblx0JiBmaWd1cmUudGFibGUubGF5b3V0LXRhYmxlIHtcblx0XHQvKiBEbyBub3QgcmVzZXJ2ZSBzcGFjZSBhYm92ZSBhbmQgYmVsb3cgdGhlIGxheW91dCB0YWJsZS4gKi9cblx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cblxuXHQmIHRhYmxlLnRhYmxlLmxheW91dC10YWJsZSxcblx0JiBmaWd1cmUudGFibGUubGF5b3V0LXRhYmxlID4gdGFibGUge1xuXHRcdGJvcmRlci1zcGFjaW5nOiAwO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX3J3ZC5jc3NcIjtcbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stZm9ybS1kZWZhdWx0LXdpZHRoOiAzNDBweDtcbn1cblxuLmNrLmNrLWZvcm0ge1xuXHRwYWRkaW5nOiAwIDAgdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cblx0Ji5jay1mb3JtX2RlZmF1bHQtd2lkdGgge1xuXHRcdHdpZHRoOiB2YXIoLS1jay1mb3JtLWRlZmF1bHQtd2lkdGgpO1xuXHR9XG5cblx0Jjpmb2N1cyB7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0fVxuXG5cdCYgLmNrLmNrLWlucHV0LXRleHQsXG5cdCYgLmNrLmNrLWlucHV0LW51bWJlciB7XG5cdFx0bWluLXdpZHRoOiAxMDAlO1xuXHRcdHdpZHRoOiAwO1xuXHR9XG5cblx0JiAuY2suY2stZHJvcGRvd24ge1xuXHRcdG1pbi13aWR0aDogMTAwJTtcblxuXHRcdCYgLmNrLWRyb3Bkb3duX19idXR0b24ge1xuXHRcdFx0Jjpub3QoOmZvY3VzKSB7XG5cdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRcdH1cblxuXHRcdFx0JiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qIERlZmF1bHQgYGNrLXJlc3BvbnNpdmUtZm9ybWAgY3VzdG9taXphdGlvbiB3aGVuIGl0IGxpZXMgbmV4dCB0byBgY2stZm9ybWAgY2xhc3MgKi9cblx0Ji5jay1yZXNwb25zaXZlLWZvcm0ge1xuXHRcdCYgLmNrLmNrLWZvcm1fX3JvdyB7XG5cdFx0XHQmLmNrLWZvcm1fX3Jvd193aXRoLXN1Ym1pdCB7XG5cdFx0XHRcdEBtaXhpbiBjay1tZWRpYS1waG9uZSB7XG5cdFx0XHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRcdFx0XHRhbGlnbi1pdGVtczogc3RyZXRjaDtcblx0XHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0PiAuY2sge1xuXHRcdFx0XHRcdEBtaXhpbiBjay1tZWRpYS1waG9uZSB7XG5cdFx0XHRcdFx0XHRtYXJnaW46IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIDA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0LmNrLWJ1dHRvbl93aXRoLXRleHQge1xuXHRcdFx0XHRcdEBtaXhpbiBjay1tZWRpYS1waG9uZSB7XG5cdFx0XHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ji5jay1mb3JtX19yb3dfbGFyZ2UtYm90dG9tLXBhZGRpbmcge1xuXHRcdFx0XHRAbWl4aW4gY2stbWVkaWEtcGhvbmUge1xuXHRcdFx0XHRcdHBhZGRpbmctYm90dG9tOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdCYgPiA6bm90KDpmaXJzdC1jaGlsZCkge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHQmID4gOm5vdCg6bGFzdC1jaGlsZCkge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0LyogRW5kIG9mIGBjay1yZXNwb25zaXZlLWZvcm1gIGN1c3RvbWl6YXRpb24gKi9cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1mb3JtX19yb3cge1xuXHQmLmNrLXRhYmxlLWZvcm1fX2FjdGlvbi1yb3cge1xuXHRcdCYgLmNrLWJ1dHRvbi1zYXZlLFxuXHRcdCYgLmNrLWJ1dHRvbi1jYW5jZWwge1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stdGFibGUtZm9ybSB7XG5cdCYgLmNrLWZvcm1fX3JvdyB7XG5cdFx0Ji5jay10YWJsZS1mb3JtX19ib3JkZXItcm93IHtcblx0XHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHR9XG5cblx0XHQmLmNrLXRhYmxlLWZvcm1fX2JhY2tncm91bmQtcm93IHtcblx0XHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHR9XG5cblx0XHQmLmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbnMtcm93IHtcblx0XHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cblx0XHRcdCYgLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcblx0XHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXHRcdFx0XHQmIC5jay5jay1kcm9wZG93biB7XG5cdFx0XHRcdFx0ZmxleC1ncm93OiAwO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdCYgLmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbi1vcGVyYXRvciB7XG5cdFx0XHRcdGZsZXgtZ3JvdzogMDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvKiBJZ25vcmUgbGFiZWxzIHRoYXQgd29yayBhcyBmaWVsZHNldCBsZWdlbmRzICovXG5cdFx0LyogRmFsbGJhY2sgZm9yIHRhYmxlIGRpbWVuc2lvbiBvcGVyYXRvciAqL1xuXHRcdCYgPiAqOm5vdCguY2stbGFiZWwsIC5jay10YWJsZS1mb3JtX19kaW1lbnNpb24tb3BlcmF0b3IpIHtcblx0XHRcdGZsZXgtZ3JvdzogMTtcblx0XHR9XG5cdH1cblxuXHQmIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdC8qIEFsbG93IGFic29sdXRlIHBvc2l0aW9uaW5nIG9mIHRoZSBzdGF0dXMgKGVycm9yKSBiYWxsb29ucy4gKi9cblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHQmIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX3N0YXR1cyB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHRib3R0b206IGNhbGMoIC0xICogdmFyKC0tY2stdGFibGUtcHJvcGVydGllcy1lcnJvci1hcnJvdy1zaXplKSApO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwxMDAlKTtcblxuXHRcdFx0LyogTWFrZSBzdXJlIHRoZSBiYWxsb29uIHN0YXR1cyBzdGF5cyBvbiB0b3Agb2Ygb3RoZXIgZm9ybSBlbGVtZW50cy4gKi9cblx0XHRcdHotaW5kZXg6IDE7XG5cblx0XHRcdC8qIFRoZSBhcnJvdyBwb2ludGluZyB0b3dhcmRzIHRoZSBmaWVsZC4gKi9cblx0XHRcdCY6OmFmdGVyIHtcblx0XHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IGNhbGMoIC0xICogdmFyKC0tY2stdGFibGUtcHJvcGVydGllcy1lcnJvci1hcnJvdy1zaXplKSApO1xuXHRcdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCggLTUwJSApO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybSB7XG5cdCYgLmNrLWZvcm1fX3JvdyB7XG5cdFx0Ji5jay10YWJsZS1wcm9wZXJ0aWVzLWZvcm1fX2FsaWdubWVudC1yb3cge1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdFx0ZmxleC1iYXNpczogMDtcblx0XHRcdGFsaWduLWNvbnRlbnQ6IGJhc2VsaW5lO1xuXG5cdFx0XHQmIC5jay5jay10b29sYmFyIC5jay10b29sYmFyX19pdGVtcyB7XG5cdFx0XHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19tZWRpYWNvbG9ycy5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLXNlbGVjdG9yLWNhcHRpb24tYmFja2dyb3VuZDogaHNsKDAsIDAlLCA5NyUpO1xuXHQtLWNrLWNvbG9yLXNlbGVjdG9yLWNhcHRpb24tdGV4dDogaHNsKDAsIDAlLCAyMCUpO1xuXHQtLWNrLWNvbG9yLXNlbGVjdG9yLWNhcHRpb24taGlnaGxpZ2h0ZWQtYmFja2dyb3VuZDogaHNsKDUyZGVnIDEwMCUgNTAlKTtcbn1cblxuLyogQ29udGVudCBzdHlsZXMgKi9cbi5jay1jb250ZW50IC50YWJsZSA+IGZpZ2NhcHRpb24ge1xuXHRkaXNwbGF5OiB0YWJsZS1jYXB0aW9uO1xuXHRjYXB0aW9uLXNpZGU6IHRvcDtcblx0d29yZC1icmVhazogYnJlYWstd29yZDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRjb2xvcjogdmFyKC0tY2stY29sb3Itc2VsZWN0b3ItY2FwdGlvbi10ZXh0KTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3Itc2VsZWN0b3ItY2FwdGlvbi1iYWNrZ3JvdW5kKTtcblx0cGFkZGluZzogLjZlbTtcblx0Zm9udC1zaXplOiAuNzVlbTtcblx0b3V0bGluZS1vZmZzZXQ6IC0xcHg7XG5cblx0LyogSW1wcm92ZSBwbGFjZWhvbGRlciByZW5kZXJpbmcgaW4gaGlnaC1jb25zdHJhc3QgbW9kZSAoaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTQ5MDcpLiAqL1xuXHRAbWl4aW4gY2stbWVkaWEtZm9yY2VkLWNvbG9ycyB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cdFx0Y29sb3I6IHVuc2V0O1xuXHR9XG59XG5cbi8qIEVkaXRpbmcgc3R5bGVzICovXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgPiBmaWdjYXB0aW9uIHtcblx0QG1peGluIGNrLW1lZGlhLWRlZmF1bHQtY29sb3JzIHtcblx0XHQmLnRhYmxlX19jYXB0aW9uX2hpZ2hsaWdodGVkIHtcblx0XHRcdGFuaW1hdGlvbjogY2stdGFibGUtY2FwdGlvbi1oaWdobGlnaHQgLjZzIGVhc2Utb3V0O1xuXHRcdH1cblx0fVxuXG5cdCYuY2stcGxhY2Vob2xkZXI6OmJlZm9yZSB7XG5cdFx0cGFkZGluZy1sZWZ0OiBpbmhlcml0O1xuXHRcdHBhZGRpbmctcmlnaHQ6IGluaGVyaXQ7XG5cblx0XHQvKlxuXHRcdCAqIE1ha2Ugc3VyZSB0aGUgdGFibGUgY2FwdGlvbiBwbGFjZWhvbGRlciBkb2Vzbid0IG92ZXJmbG93IHRoZSBwbGFjZWhvbGRlciBhcmVhLlxuXHRcdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85MTYyLlxuXHRcdCAqL1xuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0fVxufVxuXG5Aa2V5ZnJhbWVzIGNrLXRhYmxlLWNhcHRpb24taGlnaGxpZ2h0IHtcblx0MCUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLXNlbGVjdG9yLWNhcHRpb24taGlnaGxpZ2h0ZWQtYmFja2dyb3VuZCk7XG5cdH1cblxuXHQxMDAlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1zZWxlY3Rvci1jYXB0aW9uLWJhY2tncm91bmQpO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stY29sb3Itc2VsZWN0b3ItY29sdW1uLXJlc2l6ZXItaG92ZXI6IHZhcigtLWNrLWNvbG9yLWJhc2UtYWN0aXZlKTtcblx0LS1jay10YWJsZS1jb2x1bW4tcmVzaXplci13aWR0aDogN3B4O1xuXG5cdC8qIFRoZSBvZmZzZXQgdXNlZCBmb3IgYWJzb2x1dGUgcG9zaXRpb25pbmcgb2YgdGhlIHJlc2l6ZXIgZWxlbWVudCwgc28gdGhhdCBpdCBpcyBwbGFjZWQgZXhhY3RseSBhYm92ZSB0aGUgY2VsbCBib3JkZXIuXG5cdCAgIFRoZSB2YWx1ZSBpczogbWludXMgaGFsZiB0aGUgd2lkdGggb2YgdGhlIHJlc2l6ZXIgZGVjcmVhc2VkIGFkZGl0aW9uYWx5IGJ5IHRoZSBoYWxmIHRoZSB3aWR0aCBvZiB0aGUgYm9yZGVyICgwLjVweCkuICovXG5cdC0tY2stdGFibGUtY29sdW1uLXJlc2l6ZXItcG9zaXRpb24tb2Zmc2V0OiBjYWxjKHZhcigtLWNrLXRhYmxlLWNvbHVtbi1yZXNpemVyLXdpZHRoKSAqIC0wLjUgLSAwLjVweCk7XG59XG5cbi5jay1jb250ZW50IC50YWJsZSAuY2stdGFibGUtcmVzaXplZCB7XG5cdHRhYmxlLWxheW91dDogZml4ZWQ7XG59XG5cbi5jay1jb250ZW50IC50YWJsZSB0ZCxcbi5jay1jb250ZW50IC50YWJsZSB0aCB7XG5cdC8qIFRvIHByZXZlbnQgdGV4dCBvdmVyZmxvd2luZyBiZXlvbmQgaXRzIGNlbGwgd2hlbiBjb2x1bW5zIGFyZSByZXNpemVkIGJ5IHJlc2l6ZSBoYW5kbGVyXG5cdChodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L3B1bGwvMTQzNzkjaXNzdWVjb21tZW50LTE1ODk0NjA5NzgpLiAqL1xuXHRvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgdGQsXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgdGgge1xuXHQvKiBUaGUgcmVzaXplciBlbGVtZW50IGlzIHBsYWNlZCBpbnNpZGUgZWFjaCBjZWxsLCBzbyBpdCBtdXN0IGJlIHBvc2l0aW9uZWQgcmVsYXRpdmVseSB0byB0aGUgY2VsbC4gKi9cblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgLmNrLXRhYmxlLWNvbHVtbi1yZXNpemVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGJvdHRvbTogMDtcblx0cmlnaHQ6IHZhcigtLWNrLXRhYmxlLWNvbHVtbi1yZXNpemVyLXBvc2l0aW9uLW9mZnNldCk7XG5cdHdpZHRoOiB2YXIoLS1jay10YWJsZS1jb2x1bW4tcmVzaXplci13aWR0aCk7XG5cdGN1cnNvcjogY29sLXJlc2l6ZTtcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cdHotaW5kZXg6IHZhcigtLWNrLXotZGVmYXVsdCk7XG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWNvbHVtbi1yZXNpemVfZGlzYWJsZWQgLnRhYmxlIC5jay10YWJsZS1jb2x1bW4tcmVzaXplciB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIFRoZSByZXNpemVyIGVsZW1lbnRzLCB3aGljaCBhcmUgZXh0ZW5kZWQgdG8gYW4gZXh0cmVtZWx5IGhpZ2ggaGVpZ2h0LCBicmVhayB0aGUgZHJhZyAmIGRyb3AgZmVhdHVyZSBpbiBDaHJvbWUuIFRvIG1ha2UgaXQgd29yayBhZ2FpbixcbiAgIGFsbCByZXNpemVycyBtdXN0IGJlIGhpZGRlbiB3aGlsZSB0aGUgdGFibGUgaXMgZHJhZ2dlZC4gKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZVtkcmFnZ2FibGVdIC5jay10YWJsZS1jb2x1bW4tcmVzaXplciB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZSAuY2stdGFibGUtY29sdW1uLXJlc2l6ZXI6aG92ZXIsXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgLmNrLXRhYmxlLWNvbHVtbi1yZXNpemVyX19hY3RpdmUge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1zZWxlY3Rvci1jb2x1bW4tcmVzaXplci1ob3Zlcik7XG5cdG9wYWNpdHk6IDAuMjU7XG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlW2Rpcj1ydGxdIC50YWJsZSAuY2stdGFibGUtY29sdW1uLXJlc2l6ZXIge1xuXHRsZWZ0OiB2YXIoLS1jay10YWJsZS1jb2x1bW4tcmVzaXplci1wb3NpdGlvbi1vZmZzZXQpO1xuXHRyaWdodDogdW5zZXQ7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi9faGlkZGVuLmNzc1wiO1xuQGltcG9ydCBcIi4vX3ppbmRleC5jc3NcIjtcbkBpbXBvcnQgXCIuL190cmFuc2l0aW9uLmNzc1wiO1xuQGltcG9ydCBcIi4vX3Bvd2VyZWRieS5jc3NcIjtcbkBpbXBvcnQgXCIuL19ldmFsdWF0aW9uYmFkZ2UuY3NzXCI7XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKipcbiAqIEEgY2xhc3Mgd2hpY2ggaGlkZXMgYW4gZWxlbWVudCBpbiBET00uXG4gKi9cbi5jay1oaWRkZW4ge1xuXHQvKiBPdmVycmlkZSBzZWxlY3RvciBzcGVjaWZpY2l0eS4gT3RoZXJ3aXNlLCBhbGwgZWxlbWVudHMgd2l0aCBzb21lIGRpc3BsYXlcblx0c3R5bGUgZGVmaW5lZCB3aWxsIG92ZXJyaWRlIHRoaXMgb25lLCB3aGljaCBpcyBub3QgYSBkZXNpcmVkIHJlc3VsdC4gKi9cblx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLXotZGVmYXVsdDogMTtcblx0LS1jay16LXBhbmVsOiBjYWxjKCB2YXIoLS1jay16LWRlZmF1bHQpICsgOTk5ICk7XG5cdC0tY2stei1kaWFsb2c6IDk5OTk7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKipcbiAqIEEgY2xhc3MgdGhhdCBkaXNhYmxlcyBhbGwgdHJhbnNpdGlvbnMgb2YgdGhlIGVsZW1lbnQgYW5kIGl0cyBjaGlsZHJlbi5cbiAqL1xuLmNrLXRyYW5zaXRpb25zLWRpc2FibGVkLFxuLmNrLXRyYW5zaXRpb25zLWRpc2FibGVkICoge1xuXHR0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC8qIHdoZXJlIDcuNShweCkgaXMgdGhlIGZvbnQgc2l6ZSBvZiB0aGUgcG93ZXJlZCBieSBsYWJlbCBhbmQgMTMocHgpIGlzIHRoZSBiYXNlIGZvbnQgc2l6ZS4gKi9cblx0LS1jay1wb3dlcmVkLWJ5LWZvbnQtc2l6ZTogY2FsYyh2YXIoLS1jay1mb250LXNpemUtYmFzZSkgKiA3LjUgLyAxMyk7XG5cdC8qIHdoZXJlIDEwKHB4KSBpcyB0aGUgbGluZSBoZWlnaHQgb2YgdGhlIHBvd2VyZWQgYnkgbGFiZWwgYW5kIDEzKHB4KSBpcyB0aGUgYmFzZSBmb250IHNpemUuICovXG5cdC0tY2stcG93ZXJlZC1ieS1saW5lLWhlaWdodDogY2FsYyh2YXIoLS1jay1mb250LXNpemUtYmFzZSkgKiAxMCAvIDEzKTtcblx0Lyogd2hlcmUgLTAuMihweCkgaXMgdGhlIGxldHRlciBzcGFjaW5nIG9mIHRoZSBwb3dlcmVkIGJ5IGxhYmVsIGFuZCAxMyhweCkgaXMgdGhlIGJhc2UgZm9udCBzaXplLiAqL1xuXHQtLWNrLXBvd2VyZWQtYnktbGV0dGVyLXNwYWNpbmc6IGNhbGModmFyKC0tY2stZm9udC1zaXplLWJhc2UpICogLTAuMiAvIDEzKTtcblx0LS1jay1wb3dlcmVkLWJ5LXBhZGRpbmctdmVydGljYWw6IDJweDtcblx0LS1jay1wb3dlcmVkLWJ5LXBhZGRpbmctaG9yaXpvbnRhbDogNHB4O1xuXHQtLWNrLXBvd2VyZWQtYnktdGV4dC1jb2xvcjogaHNsKDAsIDAlLCAzMSUpO1xuXHQtLWNrLXBvd2VyZWQtYnktYm9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdC0tY2stcG93ZXJlZC1ieS1iYWNrZ3JvdW5kOiBoc2woMCwgMCUsIDEwMCUpO1xuXHQtLWNrLXBvd2VyZWQtYnktYm9yZGVyLWNvbG9yOiB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXG5cdC0tY2stcG93ZXJlZC1ieS1zdmctd2lkdGg6IDUzO1xuXHQtLWNrLXBvd2VyZWQtYnktc3ZnLWhlaWdodDogMTA7XG5cdC0tY2stcG93ZXJlZC1ieS1pY29uLXdpZHRoOiBjYWxjKHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSAqIHZhcigtLWNrLXBvd2VyZWQtYnktc3ZnLXdpZHRoKSAvIDEzKTtcblx0LS1jay1wb3dlcmVkLWJ5LWljb24taGVpZ2h0OiBjYWxjKHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSAqIHZhcigtLWNrLXBvd2VyZWQtYnktc3ZnLWhlaWdodCkgLyAxMyk7XG59XG5cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLXBvd2VyZWQtYnktYmFsbG9vbiB7XG5cdC0tY2stYm9yZGVyLXJhZGl1czogdmFyKC0tY2stcG93ZXJlZC1ieS1ib3JkZXItcmFkaXVzKTtcblxuXHRib3gtc2hhZG93OiBub25lO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1wb3dlcmVkLWJ5LWJhY2tncm91bmQpO1xuXHRtaW4taGVpZ2h0OiB1bnNldDtcblx0ei1pbmRleDogY2FsYyggdmFyKC0tY2stei1wYW5lbCkgLSAxICk7XG5cblx0JiAuY2suY2stcG93ZXJlZC1ieSB7XG5cdFx0bGluZS1oZWlnaHQ6IHZhcigtLWNrLXBvd2VyZWQtYnktbGluZS1oZWlnaHQpO1xuXG5cdFx0JiBhIHtcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0b3BhY2l0eTogLjY2O1xuXHRcdFx0ZmlsdGVyOiBncmF5c2NhbGUoODAlKTtcblx0XHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1jay1wb3dlcmVkLWJ5LWxpbmUtaGVpZ2h0KTtcblx0XHRcdHBhZGRpbmc6IHZhcigtLWNrLXBvd2VyZWQtYnktcGFkZGluZy12ZXJ0aWNhbCkgdmFyKC0tY2stcG93ZXJlZC1ieS1wYWRkaW5nLWhvcml6b250YWwpO1xuXHRcdH1cblxuXHRcdCYgLmNrLXBvd2VyZWQtYnlfX2xhYmVsIHtcblx0XHRcdGZvbnQtc2l6ZTogdmFyKC0tY2stcG93ZXJlZC1ieS1mb250LXNpemUpO1xuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IHZhcigtLWNrLXBvd2VyZWQtYnktbGV0dGVyLXNwYWNpbmcpO1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAycHg7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDRweDtcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stcG93ZXJlZC1ieS10ZXh0LWNvbG9yKTtcblxuXHRcdH1cblxuXHRcdCYgLmNrLWljb24ge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHR3aWR0aDogdmFyKC0tY2stcG93ZXJlZC1ieS1pY29uLXdpZHRoKTtcblx0XHRcdGhlaWdodDogdmFyKC0tY2stcG93ZXJlZC1ieS1pY29uLWhlaWdodCk7XG5cdFx0fVxuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHQmIGEge1xuXHRcdFx0XHRmaWx0ZXI6IGdyYXlzY2FsZSgwJSk7XG5cdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0JltjbGFzcyo9XCJwb3NpdGlvbl9pbnNpZGVcIl0ge1xuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdH1cblxuXHQmW2NsYXNzKj1cInBvc2l0aW9uX2JvcmRlclwiXSB7XG5cdFx0Ym9yZGVyOiB2YXIoLS1jay1mb2N1cy1yaW5nKTtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLXBvd2VyZWQtYnktYm9yZGVyLWNvbG9yKTtcblx0fVxufVxuXG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC8qIHdoZXJlIDcuNShweCkgaXMgdGhlIGZvbnQgc2l6ZSBvZiB0aGUgZXZhbHVhdGlvbiBiYWRnZSBsYWJlbCBhbmQgMTMocHgpIGlzIHRoZSBiYXNlIGZvbnQgc2l6ZS4gKi9cblx0LS1jay1ldmFsdWF0aW9uLWJhZGdlLWZvbnQtc2l6ZTogY2FsYyh2YXIoLS1jay1mb250LXNpemUtYmFzZSkgKiA3LjUgLyAxMyk7XG5cdC8qIHdoZXJlIDcuNShweCkgaXMgdGhlIGxpbmUgaGVpZ2h0IG9mIHRoZSBldmFsdWF0aW9uIGJhZGdlIGxhYmVsIGFuZCAxMyhweCkgaXMgdGhlIGJhc2UgZm9udCBzaXplLiAqL1xuXHQtLWNrLWV2YWx1YXRpb24tYmFkZ2UtbGluZS1oZWlnaHQ6IGNhbGModmFyKC0tY2stZm9udC1zaXplLWJhc2UpICogNy41IC8gMTMpO1xuXHQvKiB3aGVyZSAtMC4yKHB4KSBpcyB0aGUgbGV0dGVyIHNwYWNpbmcgb2YgdGhlIGV2YWx1YXRpb24gYmFkZ2UgbGFiZWwgYW5kIDEzKHB4KSBpcyB0aGUgYmFzZSBmb250IHNpemUuICovXG5cdC0tY2stZXZhbHVhdGlvbi1iYWRnZS1sZXR0ZXItc3BhY2luZzogY2FsYyh2YXIoLS1jay1mb250LXNpemUtYmFzZSkgKiAtMC4yIC8gMTMpO1xuXHQtLWNrLWV2YWx1YXRpb24tYmFkZ2UtcGFkZGluZy12ZXJ0aWNhbDogMnB4O1xuXHQtLWNrLWV2YWx1YXRpb24tYmFkZ2UtcGFkZGluZy1ob3Jpem9udGFsOiA0cHg7XG5cdC0tY2stZXZhbHVhdGlvbi1iYWRnZS10ZXh0LWNvbG9yOiBoc2woMCwgMCUsIDMxJSk7XG5cdC0tY2stZXZhbHVhdGlvbi1iYWRnZS1ib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0LS1jay1ldmFsdWF0aW9uLWJhZGdlLWJhY2tncm91bmQ6IGhzbCgwLCAwJSwgMTAwJSk7XG5cdC0tY2stZXZhbHVhdGlvbi1iYWRnZS1ib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG59XG5cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWV2YWx1YXRpb24tYmFkZ2UtYmFsbG9vbiB7XG5cdC0tY2stYm9yZGVyLXJhZGl1czogdmFyKC0tY2stZXZhbHVhdGlvbi1iYWRnZS1ib3JkZXItcmFkaXVzKTtcblxuXHRib3gtc2hhZG93OiBub25lO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1ldmFsdWF0aW9uLWJhZGdlLWJhY2tncm91bmQpO1xuXHRtaW4taGVpZ2h0OiB1bnNldDtcblx0ei1pbmRleDogY2FsYyggdmFyKC0tY2stei1wYW5lbCkgLSAxICk7XG5cblx0JiAuY2suY2stZXZhbHVhdGlvbi1iYWRnZSB7XG5cdFx0bGluZS1oZWlnaHQ6IHZhcigtLWNrLWV2YWx1YXRpb24tYmFkZ2UtbGluZS1oZWlnaHQpO1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLWV2YWx1YXRpb24tYmFkZ2UtcGFkZGluZy12ZXJ0aWNhbCkgdmFyKC0tY2stZXZhbHVhdGlvbi1iYWRnZS1wYWRkaW5nLWhvcml6b250YWwpO1xuXG5cdFx0JiAuY2stZXZhbHVhdGlvbi1iYWRnZV9fbGFiZWwge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRwYWRkaW5nOiAwIDJweDtcblx0XHRcdGZvbnQtc2l6ZTogdmFyKC0tY2stZXZhbHVhdGlvbi1iYWRnZS1mb250LXNpemUpO1xuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IHZhcigtLWNrLWV2YWx1YXRpb24tYmFkZ2UtbGV0dGVyLXNwYWNpbmcpO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRsaW5lLWhlaWdodDogbm9ybWFsO1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1ldmFsdWF0aW9uLWJhZGdlLXRleHQtY29sb3IpO1xuXHRcdH1cblx0fVxuXG5cdCZbY2xhc3MqPVwicG9zaXRpb25faW5zaWRlXCJdIHtcblx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHR9XG5cblx0JltjbGFzcyo9XCJwb3NpdGlvbl9ib3JkZXJcIl0ge1xuXHRcdGJvcmRlcjogdmFyKC0tY2stZm9jdXMtcmluZyk7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1ldmFsdWF0aW9uLWJhZGdlLWJvcmRlci1jb2xvcik7XG5cdH1cbn1cblxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uLy4uL21peGlucy9fdW5zZWxlY3RhYmxlLmNzc1wiO1xuQGltcG9ydCBcIi4uLy4uL21peGlucy9fZGlyLmNzc1wiO1xuXG4uY2suY2stYnV0dG9uLFxuYS5jay5jay1idXR0b24ge1xuXHRAbWl4aW4gY2stdW5zZWxlY3RhYmxlO1xuXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogaW5saW5lLWZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cblx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdGp1c3RpZnktY29udGVudDogbGVmdDtcblx0fVxuXG5cdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHJpZ2h0O1xuXHR9XG5cblx0JiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdCYuY2stYnV0dG9uX3dpdGgtdGV4dCB7XG5cdFx0JiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0fVxuXHR9XG5cblx0LyogQ2VudGVyIHRoZSBpY29uIGhvcml6b250YWxseSBpbiBhIGJ1dHRvbiB3aXRob3V0IHRleHQuICovXG5cdCY6bm90KC5jay1idXR0b25fd2l0aC10ZXh0KSAge1xuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKipcbiAqIE1ha2VzIGVsZW1lbnQgdW5zZWxlY3RhYmxlLlxuICovXG5AZGVmaW5lLW1peGluIGNrLXVuc2VsZWN0YWJsZSB7XG5cdC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC1tcy11c2VyLXNlbGVjdDogbm9uZTtcblx0dXNlci1zZWxlY3Q6IG5vbmVcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBkZWZpbmUtbWl4aW4gY2stZGlyICRkaXJlY3Rpb24ge1xuXHRbZGlyPVwiJChkaXJlY3Rpb24pXCJdICYge1xuXHRcdEBtaXhpbi1jb250ZW50O1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbiB7XG5cdCYgLmNrLWJ1dHRvbl9fdG9nZ2xlIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblxuXHRcdCYgLmNrLWJ1dHRvbl9fdG9nZ2xlX19pbm5lciB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi9taXhpbnMvX2Rpci5jc3NcIjtcblxuLmNrLmNrLWxpc3QtaXRlbS1idXR0b24ge1xuXHRtaW4taGVpZ2h0OiB1bnNldDtcblx0d2lkdGg6IDEwMCU7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG5cblx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdH1cblxuXHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdH1cblxuXHQmLmNrLWxpc3QtaXRlbS1idXR0b25fdG9nZ2xlYWJsZSB7XG5cdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG5cblx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG5cdH1cblxuXHQmIC5jay1saXN0LWl0ZW0tYnV0dG9uX19jaGVjay1ob2xkZXIge1xuXHRcdGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXHRcdHdpZHRoOiAuOWVtO1xuXHRcdGhlaWdodDogLjllbTtcblxuXHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0fVxuXG5cdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdH1cblx0fVxuXG5cdCYgLmNrLWxpc3QtaXRlbS1idXR0b25fX2NoZWNrLWljb24ge1xuXHRcdGhlaWdodDogMTAwJTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWNvbGxhcHNpYmxlLmNrLWNvbGxhcHNpYmxlX2NvbGxhcHNlZCB7XG5cdCYgPiAuY2stY29sbGFwc2libGVfX2NoaWxkcmVuIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stY29sb3ItZ3JpZCB7XG5cdGRpc3BsYXk6IGdyaWQ7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY29sb3ItcGlja2VyLWhleC1pbnB1dCB7XG5cdHdpZHRoOiBtYXgtY29udGVudDtcblxuXHQmIC5jay5jay1pbnB1dCB7XG5cdFx0bWluLXdpZHRoOiB1bnNldDtcblx0fVxufVxuXG4uY2suY2stY29sb3ItcGlja2VyX19yb3cge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRtYXJnaW46IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIDAgMDtcblx0d2lkdGg6IHVuc2V0O1xuXG5cdCYgLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0cGFkZGluZy10b3A6IHVuc2V0O1xuXHR9XG5cblx0JiAuY2suY2staW5wdXQtdGV4dCB7XG5cdFx0d2lkdGg6IHVuc2V0O1xuXHR9XG5cblx0JiAuY2stY29sb3ItcGlja2VyX19oYXNoLXZpZXcge1xuXHRcdHBhZGRpbmctdG9wOiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpO1xuXHRcdHBhZGRpbmctcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzXCI7XG5cbi5jay5jay1jb2xvci1zZWxlY3RvciB7XG5cdC8qIFZpZXcgZnJhZ21lbnQgd2l0aCBjb2xvciBncmlkcy4gKi9cblx0JiAuY2stY29sb3ItZ3JpZHMtZnJhZ21lbnQge1xuXHRcdCYgLmNrLWJ1dHRvbi5jay1jb2xvci1zZWxlY3Rvcl9fcmVtb3ZlLWNvbG9yLFxuXHRcdCYgLmNrLWJ1dHRvbi5jay1jb2xvci1zZWxlY3Rvcl9fY29sb3ItcGlja2VyIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXG5cdFx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRcdGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvKiBWaWV3IGZyYWdtZW50IHdpdGggYSBjb2xvciBwaWNrZXIuICovXG5cdCYgLmNrLWNvbG9yLXBpY2tlci1mcmFnbWVudCB7XG5cdFx0JiAuY2suY2stY29sb3Itc2VsZWN0b3JfYWN0aW9uLWJhciB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuXG5cdFx0XHQmIC5jay1idXR0b24tc2F2ZSxcblx0XHRcdCYgLmNrLWJ1dHRvbi1jYW5jZWwge1xuXHRcdFx0XHRmbGV4OiAxXG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZGlhbG9nIHtcblx0JiAuY2suY2stZGlhbG9nX19hY3Rpb25zIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1kaWFsb2ctb3ZlcmxheSB7XG5cdHVzZXItc2VsZWN0OiBub25lO1xuXHRvdmVyc2Nyb2xsLWJlaGF2aW9yOiBub25lO1xuXG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0Ym90dG9tOiAwO1xuXHRsZWZ0OiAwO1xuXHRyaWdodDogMDtcblx0dG9wOiAwO1xuXG5cdCYuY2stZGlhbG9nLW92ZXJsYXlfX3RyYW5zcGFyZW50IHtcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHRhbmltYXRpb246IG5vbmU7XG5cdFx0YmFja2dyb3VuZDogbm9uZTtcblx0fVxufVxuXG4uY2suY2stZGlhbG9nIHtcblx0b3ZlcnNjcm9sbC1iZWhhdmlvcjogbm9uZTtcblx0d2lkdGg6IGZpdC1jb250ZW50O1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cblx0JiAuY2suY2stZm9ybV9faGVhZGVyICB7XG5cdFx0ZmxleC1zaHJpbms6IDA7XG5cdH1cblxuXHQvKiBNb2RhbHMgc2hvdWxkIG5vdCBiZSBkcmFnZ2FibGUuICovXG5cdCY6bm90KC5jay1kaWFsb2dfbW9kYWwpIHtcblx0XHQmIC5jay5jay1mb3JtX19oZWFkZXIgLmNrLWZvcm1fX2hlYWRlcl9fbGFiZWwge1xuXHRcdFx0Y3Vyc29yOiBncmFiO1xuXHRcdH1cblx0fVxuXG5cdC5jay5jay1kaWFsb2ctb3ZlcmxheS5jay1kaWFsb2ctb3ZlcmxheV9fdHJhbnNwYXJlbnQgJiB7XG5cdFx0cG9pbnRlci1ldmVudHM6IGFsbDtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWRyb3Bkb3duLW1heC13aWR0aDogNzV2dztcbn1cblxuLmNrLmNrLWRyb3Bkb3duIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0JiAuY2stZHJvcGRvd25fX2Fycm93IHtcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHR6LWluZGV4OiB2YXIoLS1jay16LWRlZmF1bHQpO1xuXHR9XG5cblx0LyogRHJvcGRvd24gYnV0dG9uIHNob3VsZCBzcGFuIGhvcml6b250YWxseSwgZS5nLiBpbiB2ZXJ0aWNhbCB0b29sYmFycyAqL1xuXHQmIC5jay1idXR0b24uY2stZHJvcGRvd25fX2J1dHRvbiB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblxuXHQmIC5jay1kcm9wZG93bl9fcGFuZWwge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0ei1pbmRleDogdmFyKC0tY2stei1wYW5lbCk7XG5cdFx0bWF4LXdpZHRoOiB2YXIoLS1jay1kcm9wZG93bi1tYXgtd2lkdGgpO1xuXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXG5cdFx0Ji5jay1kcm9wZG93bl9fcGFuZWwtdmlzaWJsZSB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0fVxuXG5cdFx0Ji5jay1kcm9wZG93bl9fcGFuZWxfbmUsXG5cdFx0Ji5jay1kcm9wZG93bl9fcGFuZWxfbncsXG5cdFx0Ji5jay1kcm9wZG93bl9fcGFuZWxfbixcblx0XHQmLmNrLWRyb3Bkb3duX19wYW5lbF9ubXcsXG5cdFx0Ji5jay1kcm9wZG93bl9fcGFuZWxfbm1lIHtcblx0XHRcdGJvdHRvbTogMTAwJTtcblx0XHR9XG5cblx0XHQmLmNrLWRyb3Bkb3duX19wYW5lbF9zZSxcblx0XHQmLmNrLWRyb3Bkb3duX19wYW5lbF9zdyxcblx0XHQmLmNrLWRyb3Bkb3duX19wYW5lbF9zbXcsXG5cdFx0Ji5jay1kcm9wZG93bl9fcGFuZWxfc21lLFxuXHRcdCYuY2stZHJvcGRvd25fX3BhbmVsX3Mge1xuXHRcdFx0Lypcblx0XHRcdCAqIFVzaW5nIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoIDAsIDEwMCUsIDAgKSBjYXVzZXMgYmx1cnJ5IGRyb3Bkb3duIG9uIENocm9tZSA2Ny03OCsgb24gbm9uLXJldGluYSBkaXNwbGF5cy5cblx0XHRcdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xMDUzLlxuXHRcdFx0ICovXG5cdFx0XHR0b3A6IDEwMCU7XG5cdFx0XHRib3R0b206IGF1dG87XG5cdFx0fVxuXG5cdFx0Ji5jay1kcm9wZG93bl9fcGFuZWxfbmUsXG5cdFx0Ji5jay1kcm9wZG93bl9fcGFuZWxfc2Uge1xuXHRcdFx0bGVmdDogMHB4O1xuXHRcdH1cblxuXHRcdCYuY2stZHJvcGRvd25fX3BhbmVsX253LFxuXHRcdCYuY2stZHJvcGRvd25fX3BhbmVsX3N3IHtcblx0XHRcdHJpZ2h0OiAwcHg7XG5cdFx0fVxuXG5cdFx0Ji5jay1kcm9wZG93bl9fcGFuZWxfcyxcblx0XHQmLmNrLWRyb3Bkb3duX19wYW5lbF9uIHtcblx0XHRcdC8qIFBvc2l0aW9uaW5nIHBhbmVscyByZWxhdGl2ZSB0byB0aGUgY2VudGVyIG9mIHRoZSBidXR0b24gKi9cblx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblx0XHR9XG5cblx0XHQmLmNrLWRyb3Bkb3duX19wYW5lbF9ubXcsXG5cdFx0Ji5jay1kcm9wZG93bl9fcGFuZWxfc213IHtcblx0XHRcdC8qIFBvc2l0aW9uaW5nIHBhbmVscyByZWxhdGl2ZSB0byB0aGUgbWlkZGxlLXdlc3Qgb2YgdGhlIGJ1dHRvbiAqL1xuXHRcdFx0bGVmdDogNzUlO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC03NSUpO1xuXHRcdH1cblxuXHRcdCYuY2stZHJvcGRvd25fX3BhbmVsX25tZSxcblx0XHQmLmNrLWRyb3Bkb3duX19wYW5lbF9zbWUge1xuXHRcdFx0LyogUG9zaXRpb25pbmcgcGFuZWxzIHJlbGF0aXZlIHRvIHRoZSBtaWRkbGUtZWFzdCBvZiB0aGUgYnV0dG9uICovXG5cdFx0XHRsZWZ0OiAyNSU7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI1JSk7XG5cdFx0fVxuXHR9XG59XG5cbi8qXG4gKiBUb29sYmFyIGRyb3Bkb3duIHBhbmVscyBzaG91bGQgYmUgYWx3YXlzIGFib3ZlIHRoZSBVSSAoZWcuIG90aGVyIGRyb3Bkb3duIHBhbmVscykgZnJvbSB0aGUgZWRpdG9yJ3MgY29udGVudC5cbiAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy83ODc0XG4gKi9cbi5jay5jay10b29sYmFyIC5jay1kcm9wZG93bl9fcGFuZWwge1xuXHR6LWluZGV4OiBjYWxjKCB2YXIoLS1jay16LXBhbmVsKSArIDEgKTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1zcGxpdGJ1dHRvbiB7XG5cdC8qIEVuYWJsZSBmb250IHNpemUgaW5oZXJpdGFuY2UsIHdoaWNoIGFsbG93cyBmbHVpZCBVSSBzY2FsaW5nLiAqL1xuXHRmb250LXNpemU6IGluaGVyaXQ7XG5cblx0JiAuY2stc3BsaXRidXR0b25fX2FjdGlvbjpmb2N1cyB7XG5cdFx0ei1pbmRleDogY2FsYyh2YXIoLS1jay16LWRlZmF1bHQpICsgMSk7XG5cdH1cbn1cblxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLXRvb2xiYXItZHJvcGRvd24tbWF4LXdpZHRoOiA2MHZ3O1xufVxuXG4uY2suY2stdG9vbGJhci1kcm9wZG93biA+IC5jay1kcm9wZG93bl9fcGFuZWwge1xuXHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy81NTg2ICovXG5cdHdpZHRoOiBtYXgtY29udGVudDtcblx0bWF4LXdpZHRoOiB2YXIoLS1jay10b29sYmFyLWRyb3Bkb3duLW1heC13aWR0aCk7XG5cblx0JiAuY2stYnV0dG9uIHtcblx0XHQmOmZvY3VzIHtcblx0XHRcdHotaW5kZXg6IGNhbGModmFyKC0tY2stei1kZWZhdWx0KSArIDEpO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbiA+IC5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b25fX2Fycm93IHtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdHotaW5kZXg6IHZhcigtLWNrLXotZGVmYXVsdCk7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1kcm9wZG93bi1tZW51X19uZXN0ZWQtbWVudV9fcGFuZWwge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdG1heC1oZWlnaHQ6IDMxNHB4OyAvKiBXaXRoIHRoZSBkZWZhdWx0IHNldHRpbmdzLCB0aGlzIGlzIGVxdWFsIHRvIDEwIG1lbnUgaXRlbXMuICovXG5cdG92ZXJmbG93LXk6IGF1dG87XG5cdHotaW5kZXg6IGNhbGModmFyKC0tY2stei1wYW5lbCkgKyAxKTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51IHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stYXJpYS1saXZlLWFubm91bmNlciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogLTEwMDAwcHg7XG5cdHRvcDogLTEwMDAwcHg7XG59XG5cbi5jay5jay1hcmlhLWxpdmUtcmVnaW9uLWxpc3Qge1xuXHRsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZm9ybV9fcm93IHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgMDtcblxuXHQmLmNrLWZvcm1fX3Jvd19sYXJnZS10b3AtcGFkZGluZyB7XG5cdFx0cGFkZGluZy10b3A6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHR9XG5cblx0Ji5jay1mb3JtX19yb3dfbGFyZ2UtYm90dG9tLXBhZGRpbmcge1xuXHRcdHBhZGRpbmctYm90dG9tOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0fVxuXG5cdCYuY2stZm9ybV9fcm93X3dpdGgtc3VibWl0IHtcblx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblxuXHRcdCYgPiAqOm5vdCg6Zmlyc3QtY2hpbGQpIHtcblx0XHRcdG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdH1cblx0fVxuXG5cdCYgPiAuY2suY2stZm9ybV9fcm93IHtcblx0XHRwYWRkaW5nOiAwO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZm9ybV9faGVhZGVyIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiBub3dyYXA7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuXHQmIGgyLmNrLWZvcm1fX2hlYWRlcl9fbGFiZWwge1xuXHRcdGZsZXgtZ3JvdzogMTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWljb24ge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWxhYmVsIHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi5jay5jay12b2ljZS1sYWJlbCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0JiA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR9XG5cblx0JiAuY2suY2stbGFiZWwge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uLy4uL21peGlucy9fdW5zZWxlY3RhYmxlLmNzc1wiO1xuXG4uY2suY2stbGlzdCB7XG5cdEBtaXhpbiBjay11bnNlbGVjdGFibGU7XG5cblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuXHQmIC5jay1saXN0X19pdGVtLFxuXHQmIC5jay1saXN0X19zZXBhcmF0b3Ige1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cblx0LyogTWFrZSBzdXJlIHRoYXQgd2hhdGV2ZXIgY2hpbGQgb2YgdGhlIGxpc3QgaXRlbSBnZXRzIGZvY3VzLCBpdCByZW1haW5zIG9uIHRoZVxuXHR0b3AuIFRoYW5rcyB0byB0aGF0LCBzdHlsZXMgbGlrZSBib3gtc2hhZG93LCBvdXRsaW5lLCBldGMuIGFyZSBub3QgbWFza2VkIGJ5XG5cdGFkamFjZW50IGxpc3QgaXRlbXMuICovXG5cdCYgLmNrLWxpc3RfX2l0ZW0gPiAqOmZvY3VzIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0ei1pbmRleDogdmFyKC0tY2stei1kZWZhdWx0KTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQvKiBNYWtlIHN1cmUgdGhlIGJhbGxvb24gYXJyb3cgZG9lcyBub3QgZmxvYXQgb3ZlciBpdHMgY2hpbGRyZW4uICovXG5cdC0tY2stYmFsbG9vbi1wYW5lbC1hcnJvdy16LWluZGV4OiBjYWxjKHZhcigtLWNrLXotZGVmYXVsdCkgLSAzKTtcbn1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWwge1xuXHRkaXNwbGF5OiBub25lO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cblx0ei1pbmRleDogdmFyKC0tY2stei1wYW5lbCk7XG5cblx0Ji5jay1iYWxsb29uLXBhbmVsX3dpdGgtYXJyb3cge1xuXHRcdCY6OmJlZm9yZSxcblx0XHQmOjphZnRlciB7XG5cdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdH1cblxuXHRcdCY6OmJlZm9yZSB7XG5cdFx0XHR6LWluZGV4OiB2YXIoLS1jay1iYWxsb29uLXBhbmVsLWFycm93LXotaW5kZXgpO1xuXHRcdH1cblxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdHotaW5kZXg6IGNhbGModmFyKC0tY2stYmFsbG9vbi1wYW5lbC1hcnJvdy16LWluZGV4KSArIDEpO1xuXHRcdH1cblx0fVxuXG5cdCZbY2xhc3MqPVwiYXJyb3dfblwiXSB7XG5cdFx0Jjo6YmVmb3JlIHtcblx0XHRcdHotaW5kZXg6IHZhcigtLWNrLWJhbGxvb24tcGFuZWwtYXJyb3ctei1pbmRleCk7XG5cdFx0fVxuXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0ei1pbmRleDogY2FsYyh2YXIoLS1jay1iYWxsb29uLXBhbmVsLWFycm93LXotaW5kZXgpICsgMSk7XG5cdFx0fVxuXHR9XG5cblx0JltjbGFzcyo9XCJhcnJvd19zXCJdIHtcblx0XHQmOjpiZWZvcmUge1xuXHRcdFx0ei1pbmRleDogdmFyKC0tY2stYmFsbG9vbi1wYW5lbC1hcnJvdy16LWluZGV4KTtcblx0XHR9XG5cblx0XHQmOjphZnRlciB7XG5cdFx0XHR6LWluZGV4OiBjYWxjKHZhcigtLWNrLWJhbGxvb24tcGFuZWwtYXJyb3ctei1pbmRleCkgKyAxKTtcblx0XHR9XG5cdH1cblxuXHQmLmNrLWJhbGxvb24tcGFuZWxfdmlzaWJsZSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jayAuY2stYmFsbG9vbi1yb3RhdG9yX19uYXZpZ2F0aW9uIHtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi8qIEJ1dHRvbnMgaW5zaWRlIGEgdG9vbGJhciBzaG91bGQgYmUgY2VudGVyZWQgd2hlbiByb3RhdG9yIGJhciBpcyB3aWRlci5cbiAqIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS11aS9pc3N1ZXMvNDk1XG4gKi9cbi5jayAuY2stYmFsbG9vbi1yb3RhdG9yX19jb250ZW50IC5jay10b29sYmFyIHtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2sgLmNrLWZha2UtcGFuZWwge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cblx0LyogRmFrZSBwYW5lbHMgc2hvdWxkIGJlIHBsYWNlZCB1bmRlciBtYWluIGJhbGxvb24gY29udGVudC4gKi9cblx0ei1pbmRleDogY2FsYyh2YXIoLS1jay16LXBhbmVsKSAtIDEpO1xufVxuXG4uY2sgLmNrLWZha2UtcGFuZWwgZGl2IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xufVxuXG4uY2sgLmNrLWZha2UtcGFuZWwgZGl2Om50aC1jaGlsZCggMSApIHtcblx0ei1pbmRleDogMjtcbn1cblxuLmNrIC5jay1mYWtlLXBhbmVsIGRpdjpudGgtY2hpbGQoIDIgKSB7XG5cdHotaW5kZXg6IDE7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stc3RpY2t5LXBhbmVsIHtcblx0JiAuY2stc3RpY2t5LXBhbmVsX19jb250ZW50X3N0aWNreSB7XG5cdFx0ei1pbmRleDogdmFyKC0tY2stei1wYW5lbCk7IC8qICMzMTUgKi9cblx0XHRwb3NpdGlvbjogZml4ZWQ7XG5cdFx0dG9wOiAwO1xuXHR9XG5cblx0JiAuY2stc3RpY2t5LXBhbmVsX19jb250ZW50X3N0aWNreV9ib3R0b20tbGltaXQge1xuXHRcdHRvcDogYXV0bztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1hdXRvY29tcGxldGUge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0JiA+IC5jay1zZWFyY2hfX3Jlc3VsdHMge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR6LWluZGV4OiB2YXIoLS1jay16LXBhbmVsKTtcblxuXHRcdCYuY2stc2VhcmNoX19yZXN1bHRzX24ge1xuXHRcdFx0Ym90dG9tOiAxMDAlO1xuXHRcdH1cblxuXHRcdCYuY2stc2VhcmNoX19yZXN1bHRzX3Mge1xuXHRcdFx0dG9wOiAxMDAlO1xuXHRcdFx0Ym90dG9tOiBhdXRvO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzXCI7XG5cbi5jay5jay1zZWFyY2gge1xuXHQmID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0JiA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2staWNvbiB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDUwJTtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblxuXHRcdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0XHRsZWZ0OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0XHR9XG5cblx0XHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdFx0cmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmIC5jay1zZWFyY2hfX3Jlc2V0IHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogNTAlO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHRcdH1cblx0fVxuXG5cdCYgPiAuY2stc2VhcmNoX19yZXN1bHRzIHtcblx0XHQmID4gLmNrLXNlYXJjaF9faW5mbyB7XG5cdFx0XHQmID4gc3BhbjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0fVxuXG5cdFx0XHQvKiBIaWRlIHRoZSBmaWx0ZXJlZCB2aWV3IHdoZW4gbm90aGluZyB3YXMgZm91bmQgKi9cblx0XHRcdCY6bm90KC5jay1oaWRkZW4pIH4gKiB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2staGlnaGxpZ2h0ZWQtdGV4dCBtYXJrIHtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItaGlnaGxpZ2h0LWJhY2tncm91bmQpO1xuXHR2ZXJ0aWNhbC1hbGlnbjogaW5pdGlhbDtcblx0Zm9udC13ZWlnaHQ6IGluaGVyaXQ7XG5cdGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuXHRmb250LXNpemU6IGluaGVyaXQ7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vbWl4aW5zL191bnNlbGVjdGFibGUuY3NzXCI7XG5cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLXRvb2x0aXAge1xuXHRAbWl4aW4gY2stdW5zZWxlY3RhYmxlO1xuXG5cdHotaW5kZXg6IGNhbGMoIHZhcigtLWNrLXotZGlhbG9nKSArIDEwMCApO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLXRvb2xiYXItc3Bpbm5lci1zaXplOiAxOHB4O1xufVxuXG4uY2suY2stc3Bpbm5lci1jb250YWluZXIge1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY2suY2stc3Bpbm5lciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiA1MCU7XG5cdGxlZnQ6IDA7XG5cdHJpZ2h0OiAwO1xuXHRtYXJnaW46IDAgYXV0bztcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHR6LWluZGV4OiAxO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uLy4uL21peGlucy9fdW5zZWxlY3RhYmxlLmNzc1wiO1xuXG4uY2suY2stdG9vbGJhciB7XG5cdEBtaXhpbiBjay11bnNlbGVjdGFibGU7XG5cblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1mbG93OiByb3cgbm93cmFwO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXG5cdCYgPiAuY2stdG9vbGJhcl9faXRlbXMge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1mbG93OiByb3cgd3JhcDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGZsZXgtZ3JvdzogMTtcblxuXHR9XG5cblx0JiAuY2suY2stdG9vbGJhcl9fc2VwYXJhdG9yIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cblx0XHQvKlxuXHRcdCAqIEEgbGVhZGluZyBvciB0cmFpbGluZyBzZXBhcmF0b3IgbWFrZXMgbm8gc2Vuc2UgKHNlcGFyYXRlcyBmcm9tIG5vdGhpbmcgb24gb25lIHNpZGUpLlxuXHRcdCAqIEZvciBpbnN0YW5jZSwgaXQgY2FuIGhhcHBlbiB3aGVuIHRvb2xiYXIgaXRlbXMgKGFsc28gc2VwYXJhdG9ycykgYXJlIGdldHRpbmcgZ3JvdXBlZCBvbmUgYnkgb25lIGFuZFxuXHRcdCAqIG1vdmVkIHRvIGFub3RoZXIgdG9vbGJhciBpbiB0aGUgZHJvcGRvd24uXG5cdFx0ICovXG5cdFx0JjpmaXJzdC1jaGlsZCxcblx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cblxuXHQmIC5jay10b29sYmFyX19saW5lLWJyZWFrIHtcblx0XHRmbGV4LWJhc2lzOiAxMDAlO1xuXHR9XG5cblx0Ji5jay10b29sYmFyX2dyb3VwaW5nID4gLmNrLXRvb2xiYXJfX2l0ZW1zIHtcblx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0fVxuXG5cdCYuY2stdG9vbGJhcl92ZXJ0aWNhbCA+IC5jay10b29sYmFyX19pdGVtcyB7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0fVxuXG5cdCYuY2stdG9vbGJhcl9mbG9hdGluZyA+IC5jay10b29sYmFyX19pdGVtcyB7XG5cdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdH1cblxuXHQmID4gLmNrLmNrLXRvb2xiYXJfX2dyb3VwZWQtZHJvcGRvd24ge1xuXHRcdCYgPiAuY2stZHJvcGRvd25fX2J1dHRvbiAuY2stZHJvcGRvd25fX2Fycm93IHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stYmxvY2stdG9vbGJhci1idXR0b24ge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHotaW5kZXg6IHZhcigtLWNrLXotZGVmYXVsdCk7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stbWVudS1iYXJfX21lbnUgIHtcblx0JiA+IC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b25fX2Fycm93IHtcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHR6LWluZGV4OiB2YXIoLS1jay16LWRlZmF1bHQpO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stbWVudS1iYXItbWVudS1tYXgtd2lkdGg6IDc1dnc7XG5cdC0tY2stbWVudS1iYXItbmVzdGVkLW1lbnUtaG9yaXpvbnRhbC1vZmZzZXQ6IDVweDtcbn1cblxuLmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbCB7XG5cdHotaW5kZXg6IHZhcigtLWNrLXotcGFuZWwpO1xuXHRtYXgtd2lkdGg6IHZhcigtLWNrLW1lbnUtYmFyLW1lbnUtbWF4LXdpZHRoKTtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXG5cdCYuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX25lLFxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9udyB7XG5cdFx0Ym90dG9tOiAxMDAlO1xuXHR9XG5cblx0Ji5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fc2UsXG5cdCYuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX3N3IHtcblx0XHR0b3A6IDEwMCU7XG5cdFx0Ym90dG9tOiBhdXRvO1xuXHR9XG5cblx0Ji5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fbmUsXG5cdCYuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX3NlIHtcblx0XHRsZWZ0OiAwcHg7XG5cdH1cblxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9udyxcblx0Ji5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fc3cge1xuXHRcdHJpZ2h0OiAwcHg7XG5cdH1cblxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9lcyxcblx0Ji5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fZW4ge1xuXHRcdGxlZnQ6IGNhbGMoIDEwMCUgLSB2YXIoLS1jay1tZW51LWJhci1uZXN0ZWQtbWVudS1ob3Jpem9udGFsLW9mZnNldCkgKTtcblx0fVxuXG5cdCYuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX2VzIHtcblx0XHR0b3A6IDBweDtcblx0fVxuXG5cdCYuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX2VuIHtcblx0XHRib3R0b206IDBweDtcblx0fVxuXG5cdCYuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX3dzLFxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl93biB7XG5cdFx0cmlnaHQ6IGNhbGMoIDEwMCUgLSB2YXIoLS1jay1tZW51LWJhci1uZXN0ZWQtbWVudS1ob3Jpem9udGFsLW9mZnNldCkgKTtcblx0fVxuXG5cdCYuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX3dzIHtcblx0XHR0b3A6IDBweDtcblx0fVxuXG5cdCYuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX3duIHtcblx0XHRib3R0b206IDBweDtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLW1lbnUtYmFyX19tZW51IHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1jb2xvci1yZXNpemVyOiB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHQtLWNrLWNvbG9yLXJlc2l6ZXItdG9vbHRpcC1iYWNrZ3JvdW5kOiBoc2woMCwgMCUsIDE1JSk7XG5cdC0tY2stY29sb3ItcmVzaXplci10b29sdGlwLXRleHQ6IGhzbCgwLCAwJSwgOTUlKTtcblxuXHQtLWNrLXJlc2l6ZXItYm9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdC0tY2stcmVzaXplci10b29sdGlwLW9mZnNldDogMTBweDtcblx0LS1jay1yZXNpemVyLXRvb2x0aXAtaGVpZ2h0OiBjYWxjKHZhcigtLWNrLXNwYWNpbmctc21hbGwpICogMiArIDEwcHgpO1xufVxuXG4uY2sgLmNrLXdpZGdldCB7XG5cdC8qIFRoaXMgaXMgbmVjY2Vzc2FyeSBmb3IgdHlwZSBhcm91bmQgVUkgdG8gYmUgcG9zaXRpb25lZCBwcm9wZXJseS4gKi9cblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlIHtcblx0LyogTWFrZSB0aGUgd2lkZ2V0IHdyYXBwZXIgYSByZWxhdGl2ZSBwb3NpdGlvbmluZyBjb250YWluZXIgZm9yIHRoZSBkcmFnIGhhbmRsZS4gKi9cblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdCYgLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXG5cdFx0JiAuY2staWNvbiB7XG5cdFx0XHQvKiBNYWtlIHN1cmUgdGhlIGljb24gaW4gbm90IGEgc3ViamVjdCB0byBmb250LXNpemUgb3IgbGluZS1oZWlnaHQgdG8gYXZvaWRcblx0XHRcdHVubmVjZXNzYXJ5IHNwYWNpbmcgYXJvdW5kIGl0LiAqL1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0fVxuXHR9XG5cblx0LyogU2hvdyB0aGUgc2VsZWN0aW9uIGhhbmRsZSBvbiBtb3VzZSBob3ZlciBvdmVyIHRoZSB3aWRnZXQsIGJ1dCBub3QgZm9yIG5lc3RlZCB3aWRnZXRzLiAqL1xuXHQmOmhvdmVyID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0dmlzaWJpbGl0eTogdmlzaWJsZTtcblx0fVxuXG5cdC8qIFNob3cgdGhlIHNlbGVjdGlvbiBoYW5kbGUgd2hlbiB0aGUgd2lkZ2V0IGlzIHNlbGVjdGVkLCBidXQgbm90IGZvciBuZXN0ZWQgd2lkZ2V0cy4gKi9cblx0Ji5jay13aWRnZXRfc2VsZWN0ZWQgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0XHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXHR9XG59XG5cbi5jayAuY2stc2l6ZS12aWV3IHtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItcmVzaXplci10b29sdGlwLWJhY2tncm91bmQpO1xuXHRjb2xvcjogdmFyKC0tY2stY29sb3ItcmVzaXplci10b29sdGlwLXRleHQpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1yZXNpemVyLXRvb2x0aXAtdGV4dCk7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLXJlc2l6ZXItYm9yZGVyLXJhZGl1cyk7XG5cdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLXRpbnkpO1xuXHRkaXNwbGF5OiBibG9jaztcblx0cGFkZGluZzogMCB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0aGVpZ2h0OiB2YXIoLS1jay1yZXNpemVyLXRvb2x0aXAtaGVpZ2h0KTtcblx0bGluZS1oZWlnaHQ6IHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1oZWlnaHQpO1xuXG5cdCYuY2stb3JpZW50YXRpb24tdG9wLWxlZnQsXG5cdCYuY2stb3JpZW50YXRpb24tdG9wLXJpZ2h0LFxuXHQmLmNrLW9yaWVudGF0aW9uLWJvdHRvbS1yaWdodCxcblx0Ji5jay1vcmllbnRhdGlvbi1ib3R0b20tbGVmdCxcblx0Ji5jay1vcmllbnRhdGlvbi1hYm92ZS1jZW50ZXIge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0fVxuXG5cdCYuY2stb3JpZW50YXRpb24tdG9wLWxlZnQge1xuXHRcdHRvcDogdmFyKC0tY2stcmVzaXplci10b29sdGlwLW9mZnNldCk7XG5cdFx0bGVmdDogdmFyKC0tY2stcmVzaXplci10b29sdGlwLW9mZnNldCk7XG5cdH1cblxuXHQmLmNrLW9yaWVudGF0aW9uLXRvcC1yaWdodCB7XG5cdFx0dG9wOiB2YXIoLS1jay1yZXNpemVyLXRvb2x0aXAtb2Zmc2V0KTtcblx0XHRyaWdodDogdmFyKC0tY2stcmVzaXplci10b29sdGlwLW9mZnNldCk7XG5cdH1cblxuXHQmLmNrLW9yaWVudGF0aW9uLWJvdHRvbS1yaWdodCB7XG5cdFx0Ym90dG9tOiB2YXIoLS1jay1yZXNpemVyLXRvb2x0aXAtb2Zmc2V0KTtcblx0XHRyaWdodDogdmFyKC0tY2stcmVzaXplci10b29sdGlwLW9mZnNldCk7XG5cdH1cblxuXHQmLmNrLW9yaWVudGF0aW9uLWJvdHRvbS1sZWZ0IHtcblx0XHRib3R0b206IHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQpO1xuXHRcdGxlZnQ6IHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQpO1xuXHR9XG5cblx0LyogQ2xhc3MgYXBwbGllZCBpZiB0aGUgd2lkZ2V0IGlzIHRvbyBzbWFsbCB0byBjb250YWluIHRoZSBzaXplIGxhYmVsICovXG5cdCYuY2stb3JpZW50YXRpb24tYWJvdmUtY2VudGVyIHtcblx0XHR0b3A6IGNhbGModmFyKC0tY2stcmVzaXplci10b29sdGlwLWhlaWdodCkgKiAtMSk7XG5cdFx0bGVmdDogNTAlO1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2sgLmNrLXdpZGdldF93aXRoLXJlc2l6ZXIge1xuXHQvKiBNYWtlIHRoZSB3aWRnZXQgd3JhcHBlciBhIHJlbGF0aXZlIHBvc2l0aW9uaW5nIGNvbnRhaW5lciBmb3IgdGhlIGRyYWcgaGFuZGxlLiAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jayAuY2std2lkZ2V0X19yZXNpemVyIHtcblx0ZGlzcGxheTogbm9uZTtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXG5cdC8qIFRoZSB3cmFwcGVyIGl0c2VsZiBzaG91bGQgbm90IGludGVyZmVyZSB3aXRoIHRoZSBwb2ludGVyIGRldmljZSwgb25seSB0aGUgaGFuZGxlcyBzaG91bGQuICovXG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG5cdGxlZnQ6IDA7XG5cdHRvcDogMDtcbn1cblxuLmNrLWZvY3VzZWQgLmNrLXdpZGdldF93aXRoLXJlc2l6ZXIuY2std2lkZ2V0X3NlbGVjdGVkIHtcblx0JiA+IC5jay13aWRnZXRfX3Jlc2l6ZXIge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG59XG5cbi5jayAuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cblx0LyogUmVzaXplcnMgYXJlIHRoZSBvbmx5IFVJIGVsZW1lbnRzIHRoYXQgc2hvdWxkIGludGVyZmVyZSB3aXRoIGEgcG9pbnRlciBkZXZpY2UuICovXG5cdHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cblx0Ji5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS10b3AtbGVmdCxcblx0Ji5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS1ib3R0b20tcmlnaHQge1xuXHRcdGN1cnNvcjogbndzZS1yZXNpemU7XG5cdH1cblxuXHQmLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLXRvcC1yaWdodCxcblx0Ji5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS1ib3R0b20tbGVmdCB7XG5cdFx0Y3Vyc29yOiBuZXN3LXJlc2l6ZTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrIC5jay13aWRnZXQge1xuXHQvKlxuXHQgKiBTdHlsZXMgb2YgdGhlIHR5cGUgYXJvdW5kIGJ1dHRvbnNcblx0ICovXG5cdCYgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0ei1pbmRleDogdmFyKC0tY2stei1kZWZhdWx0KTtcblxuXHRcdCYgc3ZnIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogNTAlO1xuXHRcdFx0bGVmdDogNTAlO1xuXHRcdFx0ei1pbmRleDogY2FsYyh2YXIoLS1jay16LWRlZmF1bHQpICsgMik7XG5cdFx0fVxuXG5cdFx0Ji5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b25fYmVmb3JlIHtcblx0XHRcdC8qIFBsYWNlIGl0IGluIHRoZSBtaWRkbGUgb2YgdGhlIG91dGxpbmUgKi9cblx0XHRcdHRvcDogY2FsYygtMC41ICogdmFyKC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzKSk7XG5cdFx0XHRsZWZ0OiBtaW4oMTAlLCAzMHB4KTtcblxuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHRcdH1cblxuXHRcdCYuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uX2FmdGVyIHtcblx0XHRcdC8qIFBsYWNlIGl0IGluIHRoZSBtaWRkbGUgb2YgdGhlIG91dGxpbmUgKi9cblx0XHRcdGJvdHRvbTogY2FsYygtMC41ICogdmFyKC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzKSk7XG5cdFx0XHRyaWdodDogbWluKDEwJSwgMzBweCk7XG5cblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1MCUpO1xuXHRcdH1cblx0fVxuXG5cdC8qXG5cdCAqIFN0eWxlcyBmb3IgdGhlIGJ1dHRvbnMgd2hlbjpcblx0ICogLSB0aGUgd2lkZ2V0IGlzIHNlbGVjdGVkLFxuXHQgKiAtIG9yIHRoZSBidXR0b24gaXMgYmVpbmcgaG92ZXJlZCAocmVnYXJkbGVzcyBvZiB0aGUgd2lkZ2V0IHN0YXRlKS5cblx0ICovXG5cdCYuY2std2lkZ2V0X3NlbGVjdGVkID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uLFxuXHQmID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uOmhvdmVyIHtcblx0XHQmOjphZnRlciB7XG5cdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDFweDtcblx0XHRcdGxlZnQ6IDFweDtcblx0XHRcdHotaW5kZXg6IGNhbGModmFyKC0tY2stei1kZWZhdWx0KSArIDEpO1xuXHRcdH1cblx0fVxuXG5cdC8qXG5cdCAqIFN0eWxlcyBmb3IgdGhlIGhvcml6b250YWwgXCJmYWtlIGNhcmV0XCIgd2hpY2ggaXMgZGlzcGxheWVkIHdoZW4gdGhlIHVzZXIgbmF2aWdhdGVzIHVzaW5nIHRoZSBrZXlib2FyZC5cblx0ICovXG5cdCYgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19mYWtlLWNhcmV0IHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRsZWZ0OiAwO1xuXHRcdHJpZ2h0OiAwO1xuXHR9XG5cblx0Lypcblx0ICogV2hlbiB0aGUgd2lkZ2V0IGlzIGhvdmVyZWQgdGhlIFwiZmFrZSBjYXJldFwiIHdvdWxkIG5vcm1hbGx5IGJlIG5hcnJvd2VyIHRoYW4gdGhlXG5cdCAqIGV4dHJhIG91dGxpbmUgZGlzcGxheWVkIGFyb3VuZCB0aGUgd2lkZ2V0LiBMZXQncyBleHRlbmQgdGhlIFwiZmFrZSBjYXJldFwiIHRvIG1hdGNoXG5cdCAqIHRoZSBmdWxsIHdpZHRoIG9mIHRoZSB3aWRnZXQuXG5cdCAqL1xuXHQmOmhvdmVyID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fZmFrZS1jYXJldCB7XG5cdFx0bGVmdDogY2FsYyggLTEgKiB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpICk7XG5cdFx0cmlnaHQ6IGNhbGMoIC0xICogdmFyKC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzKSApO1xuXHR9XG5cblx0Lypcblx0ICogU3R5bGVzIGZvciB0aGUgaG9yaXpvbnRhbCBcImZha2UgY2FyZXRcIiB3aGVuIGl0IHNob3VsZCBiZSBkaXNwbGF5ZWQgYmVmb3JlIHRoZSB3aWRnZXQgKGJhY2t3YXJkIGtleWJvYXJkIG5hdmlnYXRpb24pLlxuXHQgKi9cblx0Ji5jay13aWRnZXRfdHlwZS1hcm91bmRfc2hvdy1mYWtlLWNhcmV0X2JlZm9yZSA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2Zha2UtY2FyZXQge1xuXHRcdHRvcDogY2FsYyggLTEgKiB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpIC0gMXB4ICk7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblxuXHQvKlxuXHQgKiBTdHlsZXMgZm9yIHRoZSBob3Jpem9udGFsIFwiZmFrZSBjYXJldFwiIHdoZW4gaXQgc2hvdWxkIGJlIGRpc3BsYXllZCBhZnRlciB0aGUgd2lkZ2V0IChmb3J3YXJkIGtleWJvYXJkIG5hdmlnYXRpb24pLlxuXHQgKi9cblx0Ji5jay13aWRnZXRfdHlwZS1hcm91bmRfc2hvdy1mYWtlLWNhcmV0X2FmdGVyID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fZmFrZS1jYXJldCB7XG5cdFx0Ym90dG9tOiBjYWxjKCAtMSAqIHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykgLSAxcHggKTtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxufVxuXG4vKlxuICogSW50ZWdyYXRpb24gd2l0aCB0aGUgcmVhZC1vbmx5IG1vZGUgb2YgdGhlIGVkaXRvci5cbiAqL1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stcmVhZC1vbmx5IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLypcbiAqIEludGVncmF0aW9uIHdpdGggdGhlIHJlc3RyaWN0ZWQgZWRpdGluZyBtb2RlIChmZWF0dXJlKSBvZiB0aGUgZWRpdG9yLlxuICovXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1yZXN0cmljdGVkLWVkaXRpbmdfbW9kZV9yZXN0cmljdGVkIC5jay13aWRnZXRfX3R5cGUtYXJvdW5kIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLypcbiAqIEludGVncmF0aW9uIHdpdGggdGhlICNpc0VuYWJsZWQgcHJvcGVydHkgb2YgdGhlIFdpZGdldFR5cGVBcm91bmQgcGx1Z2luLlxuICovXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay13aWRnZXRfX3R5cGUtYXJvdW5kX2Rpc2FibGVkIC5jay13aWRnZXRfX3R5cGUtYXJvdW5kIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/